@remotion/webcodecs 4.0.240 → 4.0.241

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.
@@ -28,7 +28,7 @@ export type ConvertMediaOnVideoFrame = (options: {
28
28
  frame: VideoFrame;
29
29
  track: VideoTrack;
30
30
  }) => Promise<VideoFrame> | VideoFrame;
31
- export declare const convertMedia: <F extends Options<ParseMediaFields>>({ src, onVideoFrame, onProgress: onProgressDoNotCallDirectly, audioCodec, container, videoCodec, signal: userPassedAbortSignal, onAudioTrack: userAudioResolver, onVideoTrack: userVideoResolver, reader, fields, logLevel, writer, progressIntervalInMs, rotate, ...more }: {
31
+ export declare const convertMedia: <F extends Options<ParseMediaFields>>({ src, onVideoFrame, onProgress: onProgressDoNotCallDirectly, audioCodec, container, videoCodec, signal: userPassedAbortSignal, onAudioTrack: userAudioResolver, onVideoTrack: userVideoResolver, reader, fields, logLevel, writer, progressIntervalInMs, rotate, apiKey, ...more }: {
32
32
  src: ParseMediaOptions<F>["src"];
33
33
  container: ConvertMediaContainer;
34
34
  onVideoFrame?: ConvertMediaOnVideoFrame;
@@ -43,4 +43,5 @@ export declare const convertMedia: <F extends Options<ParseMediaFields>>({ src,
43
43
  writer?: WriterInterface;
44
44
  progressIntervalInMs?: number;
45
45
  rotate?: number;
46
+ apiKey?: string | null;
46
47
  } & ParseMediaDynamicOptions<F>) => Promise<ConvertMediaResult>;
@@ -13,11 +13,13 @@ const auto_select_writer_1 = require("./auto-select-writer");
13
13
  const calculate_progress_1 = require("./calculate-progress");
14
14
  const error_cause_1 = __importDefault(require("./error-cause"));
15
15
  const generate_output_filename_1 = require("./generate-output-filename");
16
+ const log_1 = require("./log");
16
17
  const on_audio_track_1 = require("./on-audio-track");
17
18
  const on_video_track_1 = require("./on-video-track");
18
19
  const select_container_creator_1 = require("./select-container-creator");
20
+ const send_telemetry_event_1 = require("./send-telemetry-event");
19
21
  const throttled_state_update_1 = require("./throttled-state-update");
20
- const convertMedia = async function ({ src, onVideoFrame, onProgress: onProgressDoNotCallDirectly, audioCodec, container, videoCodec, signal: userPassedAbortSignal, onAudioTrack: userAudioResolver, onVideoTrack: userVideoResolver, reader, fields, logLevel = 'info', writer, progressIntervalInMs, rotate, ...more }) {
22
+ const convertMedia = async function ({ src, onVideoFrame, onProgress: onProgressDoNotCallDirectly, audioCodec, container, videoCodec, signal: userPassedAbortSignal, onAudioTrack: userAudioResolver, onVideoTrack: userVideoResolver, reader, fields, logLevel = 'info', writer, progressIntervalInMs, rotate, apiKey, ...more }) {
21
23
  var _a, _b;
22
24
  if (userPassedAbortSignal === null || userPassedAbortSignal === void 0 ? void 0 : userPassedAbortSignal.aborted) {
23
25
  return Promise.reject(new error_cause_1.default('Aborted'));
@@ -145,8 +147,16 @@ const convertMedia = async function ({ src, onVideoFrame, onProgress: onProgress
145
147
  remove: state.remove,
146
148
  finalState: throttledState.get(),
147
149
  });
150
+ })
151
+ .then(() => {
152
+ (0, send_telemetry_event_1.sendUsageEvent)({ succeeded: true, apiKey: apiKey !== null && apiKey !== void 0 ? apiKey : null }).catch((err) => {
153
+ log_1.Log.error('Failed to send usage event', err);
154
+ });
148
155
  })
149
156
  .catch((err) => {
157
+ (0, send_telemetry_event_1.sendUsageEvent)({ succeeded: false, apiKey: apiKey !== null && apiKey !== void 0 ? apiKey : null }).catch((err2) => {
158
+ log_1.Log.error('Failed to send usage event hmm', err2);
159
+ });
150
160
  reject(err);
151
161
  })
152
162
  .finally(() => {
@@ -1,3 +1,97 @@
1
+ var __create = Object.create;
2
+ var __getProtoOf = Object.getPrototypeOf;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __toESM = (mod, isNodeMode, target) => {
7
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
8
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
9
+ for (let key of __getOwnPropNames(mod))
10
+ if (!__hasOwnProp.call(to, key))
11
+ __defProp(to, key, {
12
+ get: () => mod[key],
13
+ enumerable: true
14
+ });
15
+ return to;
16
+ };
17
+ var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
18
+
19
+ // ../licensing/dist/register-usage-point.js
20
+ var require_register_usage_point = __commonJS((exports) => {
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.registerUsageEvent = exports.HOST = undefined;
23
+ exports.HOST = "https://www.remotion.pro";
24
+ var registerUsageEvent = async ({ apiKey, host, succeeded, event }) => {
25
+ const res = await fetch(`${exports.HOST}/api/track/register-usage-point`, {
26
+ method: "POST",
27
+ body: JSON.stringify({
28
+ event,
29
+ apiKey,
30
+ host,
31
+ succeeded
32
+ }),
33
+ headers: {
34
+ "Content-Type": "application/json"
35
+ }
36
+ });
37
+ const json = await res.json();
38
+ if (json.success) {
39
+ return {
40
+ billable: json.billable,
41
+ classification: json.classification
42
+ };
43
+ }
44
+ if (!res.ok) {
45
+ throw new Error(json.error);
46
+ }
47
+ const read = await res.json();
48
+ return read;
49
+ };
50
+ exports.registerUsageEvent = registerUsageEvent;
51
+ });
52
+
53
+ // ../licensing/dist/get-usage.js
54
+ var require_get_usage = __commonJS((exports) => {
55
+ Object.defineProperty(exports, "__esModule", { value: true });
56
+ exports.getUsage = undefined;
57
+ var register_usage_point_1 = require_register_usage_point();
58
+ var getUsage = async ({ apiKey, since }) => {
59
+ const res = await fetch(`${register_usage_point_1.HOST}/api/track/get-usage`, {
60
+ method: "POST",
61
+ body: JSON.stringify({
62
+ apiKey,
63
+ since: since !== null && since !== undefined ? since : null
64
+ }),
65
+ headers: {
66
+ "Content-Type": "application/json"
67
+ }
68
+ });
69
+ const json = await res.json();
70
+ if (json.success) {
71
+ return {
72
+ cloudRenders: json.cloudRenders,
73
+ webcodecConversions: json.webcodecConversions
74
+ };
75
+ }
76
+ throw new Error(json.error);
77
+ };
78
+ exports.getUsage = getUsage;
79
+ });
80
+
81
+ // ../licensing/dist/index.js
82
+ var require_dist = __commonJS((exports) => {
83
+ Object.defineProperty(exports, "__esModule", { value: true });
84
+ exports.getUsage = exports.registerUsageEvent = undefined;
85
+ var register_usage_point_1 = require_register_usage_point();
86
+ Object.defineProperty(exports, "registerUsageEvent", { enumerable: true, get: function() {
87
+ return register_usage_point_1.registerUsageEvent;
88
+ } });
89
+ var get_usage_1 = require_get_usage();
90
+ Object.defineProperty(exports, "getUsage", { enumerable: true, get: function() {
91
+ return get_usage_1.getUsage;
92
+ } });
93
+ });
94
+
1
95
  // src/rotation.ts
2
96
  var calculateNewDimensionsFromDimensions = ({
3
97
  width,
@@ -1475,6 +1569,24 @@ var selectContainerCreator = (container) => {
1475
1569
  throw new Error(`Unsupported container: ${container}`);
1476
1570
  };
1477
1571
 
1572
+ // src/send-telemetry-event.ts
1573
+ var import_licensing = __toESM(require_dist(), 1);
1574
+ var sendUsageEvent = async ({
1575
+ apiKey,
1576
+ succeeded
1577
+ }) => {
1578
+ const host = typeof window === "undefined" ? null : typeof window.location === "undefined" ? null : window.location.origin ?? null;
1579
+ if (host === null) {
1580
+ return;
1581
+ }
1582
+ await import_licensing.registerUsageEvent({
1583
+ apiKey,
1584
+ event: "webcodec-conversion",
1585
+ host,
1586
+ succeeded
1587
+ });
1588
+ };
1589
+
1478
1590
  // src/throttled-state-update.ts
1479
1591
  var throttledStateUpdate = ({
1480
1592
  updateFn,
@@ -1544,6 +1656,7 @@ var convertMedia = async function({
1544
1656
  writer,
1545
1657
  progressIntervalInMs,
1546
1658
  rotate,
1659
+ apiKey,
1547
1660
  ...more
1548
1661
  }) {
1549
1662
  if (userPassedAbortSignal?.aborted) {
@@ -1667,7 +1780,14 @@ var convertMedia = async function({
1667
1780
  remove: state.remove,
1668
1781
  finalState: throttledState.get()
1669
1782
  });
1783
+ }).then(() => {
1784
+ sendUsageEvent({ succeeded: true, apiKey: apiKey ?? null }).catch((err) => {
1785
+ Log.error("Failed to send usage event", err);
1786
+ });
1670
1787
  }).catch((err) => {
1788
+ sendUsageEvent({ succeeded: false, apiKey: apiKey ?? null }).catch((err2) => {
1789
+ Log.error("Failed to send usage event hmm", err2);
1790
+ });
1671
1791
  reject(err);
1672
1792
  }).finally(() => {
1673
1793
  throttledState.stopAndGetLastProgress();
@@ -0,0 +1,4 @@
1
+ export declare const sendUsageEvent: ({ apiKey, succeeded, }: {
2
+ apiKey: string | null;
3
+ succeeded: boolean;
4
+ }) => Promise<void>;
@@ -0,0 +1,22 @@
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
+ var _a;
7
+ const host = typeof window === 'undefined'
8
+ ? null
9
+ : typeof window.location === 'undefined'
10
+ ? null
11
+ : ((_a = window.location.origin) !== null && _a !== void 0 ? _a : null);
12
+ if (host === null) {
13
+ return;
14
+ }
15
+ await (0, licensing_1.registerUsageEvent)({
16
+ apiKey,
17
+ event: 'webcodec-conversion',
18
+ host,
19
+ succeeded,
20
+ });
21
+ };
22
+ exports.sendUsageEvent = sendUsageEvent;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/webcodecs",
3
- "version": "4.0.240",
3
+ "version": "4.0.241",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "module": "dist/esm/index.mjs",
@@ -17,14 +17,15 @@
17
17
  "author": "Jonny Burger <jonny@remotion.dev>",
18
18
  "license": "Remotion License (See https://remotion.dev/docs/webcodecs#license)",
19
19
  "dependencies": {
20
- "@remotion/media-parser": "4.0.240"
20
+ "@remotion/media-parser": "4.0.241",
21
+ "@remotion/licensing": "4.0.241"
21
22
  },
22
23
  "peerDependencies": {},
23
24
  "devDependencies": {
24
25
  "@types/dom-webcodecs": "0.1.11",
25
26
  "eslint": "9.14.0",
26
- "@remotion/example-videos": "4.0.240",
27
- "@remotion/eslint-config-internal": "4.0.240"
27
+ "@remotion/example-videos": "4.0.241",
28
+ "@remotion/eslint-config-internal": "4.0.241"
28
29
  },
29
30
  "keywords": [],
30
31
  "publishConfig": {