@remotion/lambda 4.0.256 → 4.0.258

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 (134) hide show
  1. package/dist/cli/get-aws-region.js +2 -1
  2. package/dist/cli/index.js +5 -4
  3. package/dist/shared/check-credentials.js +7 -6
  4. package/dist/shared/get-credentials.js +25 -23
  5. package/dist/shared/get-env-variable.d.ts +1 -0
  6. package/dist/shared/get-env-variable.js +15 -0
  7. package/dist/shared/get-service-client.js +16 -15
  8. package/dist/shared/is-likely-to-have-aws-profile.js +7 -1
  9. package/package.json +21 -21
  10. package/remotionlambda-arm64.zip +0 -0
  11. package/dist/api/__mocks__/clean-items.d.ts +0 -2
  12. package/dist/api/__mocks__/clean-items.js +0 -24
  13. package/dist/api/__mocks__/create-function.d.ts +0 -2
  14. package/dist/api/__mocks__/create-function.js +0 -21
  15. package/dist/api/__mocks__/delete-function.d.ts +0 -2
  16. package/dist/api/__mocks__/delete-function.js +0 -9
  17. package/dist/api/__mocks__/get-functions.d.ts +0 -2
  18. package/dist/api/__mocks__/get-functions.js +0 -9
  19. package/dist/api/__mocks__/upload-dir.d.ts +0 -3
  20. package/dist/api/__mocks__/upload-dir.js +0 -47
  21. package/dist/api/mock-functions.d.ts +0 -18
  22. package/dist/api/mock-functions.js +0 -36
  23. package/dist/cli/helpers/__mocks__/quit.d.ts +0 -1
  24. package/dist/cli/helpers/__mocks__/quit.js +0 -7
  25. package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +0 -7
  26. package/dist/functions/chunk-optimization/plan-frame-ranges.js +0 -17
  27. package/dist/functions/chunk-optimization/types.d.ts +0 -8
  28. package/dist/functions/chunk-optimization/types.js +0 -2
  29. package/dist/functions/helpers/__mocks__/get-browser-instance.d.ts +0 -3
  30. package/dist/functions/helpers/__mocks__/get-browser-instance.js +0 -12
  31. package/dist/functions/helpers/__mocks__/leak-detection.d.ts +0 -4
  32. package/dist/functions/helpers/__mocks__/leak-detection.js +0 -9
  33. package/dist/functions/helpers/__mocks__/timer.d.ts +0 -2
  34. package/dist/functions/helpers/__mocks__/timer.js +0 -10
  35. package/dist/functions/helpers/best-frames-per-lambda-param.d.ts +0 -1
  36. package/dist/functions/helpers/best-frames-per-lambda-param.js +0 -17
  37. package/dist/functions/helpers/calculate-chunk-times.d.ts +0 -5
  38. package/dist/functions/helpers/calculate-chunk-times.js +0 -29
  39. package/dist/functions/helpers/calculate-price-from-bucket.d.ts +0 -15
  40. package/dist/functions/helpers/calculate-price-from-bucket.js +0 -30
  41. package/dist/functions/helpers/can-concat-seamlessly.d.ts +0 -3
  42. package/dist/functions/helpers/can-concat-seamlessly.js +0 -17
  43. package/dist/functions/helpers/cleanup-props.d.ts +0 -8
  44. package/dist/functions/helpers/cleanup-props.js +0 -23
  45. package/dist/functions/helpers/concat-videos.d.ts +0 -23
  46. package/dist/functions/helpers/concat-videos.js +0 -54
  47. package/dist/functions/helpers/create-post-render-data.d.ts +0 -17
  48. package/dist/functions/helpers/create-post-render-data.js +0 -67
  49. package/dist/functions/helpers/find-output-file-in-bucket.d.ts +0 -14
  50. package/dist/functions/helpers/find-output-file-in-bucket.js +0 -38
  51. package/dist/functions/helpers/format-costs-info.d.ts +0 -2
  52. package/dist/functions/helpers/format-costs-info.js +0 -23
  53. package/dist/functions/helpers/get-overall-progress-s3.d.ts +0 -10
  54. package/dist/functions/helpers/get-overall-progress-s3.js +0 -24
  55. package/dist/functions/helpers/get-overall-progress.d.ts +0 -9
  56. package/dist/functions/helpers/get-overall-progress.js +0 -23
  57. package/dist/functions/helpers/get-progress.d.ts +0 -15
  58. package/dist/functions/helpers/get-progress.js +0 -254
  59. package/dist/functions/helpers/get-retry-stats.d.ts +0 -5
  60. package/dist/functions/helpers/get-retry-stats.js +0 -2
  61. package/dist/functions/helpers/inspect-errors.d.ts +0 -4
  62. package/dist/functions/helpers/inspect-errors.js +0 -39
  63. package/dist/functions/helpers/is-warm.d.ts +0 -2
  64. package/dist/functions/helpers/is-warm.js +0 -10
  65. package/dist/functions/helpers/leak-detection.d.ts +0 -4
  66. package/dist/functions/helpers/leak-detection.js +0 -40
  67. package/dist/functions/helpers/make-timeout-error.d.ts +0 -10
  68. package/dist/functions/helpers/make-timeout-error.js +0 -31
  69. package/dist/functions/helpers/make-timeout-message.d.ts +0 -10
  70. package/dist/functions/helpers/make-timeout-message.js +0 -75
  71. package/dist/functions/helpers/merge-chunks.d.ts +0 -36
  72. package/dist/functions/helpers/merge-chunks.js +0 -84
  73. package/dist/functions/helpers/min-max.d.ts +0 -2
  74. package/dist/functions/helpers/min-max.js +0 -33
  75. package/dist/functions/helpers/on-downloads-logger.d.ts +0 -2
  76. package/dist/functions/helpers/on-downloads-logger.js +0 -29
  77. package/dist/functions/helpers/overall-render-progress.d.ts +0 -59
  78. package/dist/functions/helpers/overall-render-progress.js +0 -180
  79. package/dist/functions/helpers/print-concurrency-curve.d.ts +0 -1
  80. package/dist/functions/helpers/print-concurrency-curve.js +0 -8
  81. package/dist/functions/helpers/print-logging-helper.d.ts +0 -4
  82. package/dist/functions/helpers/print-logging-helper.js +0 -12
  83. package/dist/functions/helpers/render-has-audio-video.d.ts +0 -6
  84. package/dist/functions/helpers/render-has-audio-video.js +0 -21
  85. package/dist/functions/helpers/request-context.d.ts +0 -5
  86. package/dist/functions/helpers/request-context.js +0 -2
  87. package/dist/functions/helpers/stream-renderer.d.ts +0 -17
  88. package/dist/functions/helpers/stream-renderer.js +0 -148
  89. package/dist/functions/launch.d.ts +0 -10
  90. package/dist/functions/launch.js +0 -595
  91. package/dist/functions/progress.d.ts +0 -11
  92. package/dist/functions/progress.js +0 -51
  93. package/dist/functions/renderer.d.ts +0 -17
  94. package/dist/functions/renderer.js +0 -341
  95. package/dist/functions/start.d.ts +0 -13
  96. package/dist/functions/start.js +0 -112
  97. package/dist/functions/still.d.ts +0 -19
  98. package/dist/functions/still.js +0 -329
  99. package/dist/shared/__mocks__/aws-clients.d.ts +0 -2
  100. package/dist/shared/__mocks__/aws-clients.js +0 -62
  101. package/dist/shared/__mocks__/bundle-site.d.ts +0 -2
  102. package/dist/shared/__mocks__/bundle-site.js +0 -32
  103. package/dist/shared/__mocks__/check-credentials.d.ts +0 -1
  104. package/dist/shared/__mocks__/check-credentials.js +0 -5
  105. package/dist/shared/__mocks__/get-account-id.d.ts +0 -2
  106. package/dist/shared/__mocks__/get-account-id.js +0 -11
  107. package/dist/shared/__mocks__/read-dir.d.ts +0 -2
  108. package/dist/shared/__mocks__/read-dir.js +0 -13
  109. package/dist/shared/call-lambda.d.ts +0 -16
  110. package/dist/shared/call-lambda.js +0 -149
  111. package/dist/shared/cleanup-serialized-input-props.d.ts +0 -14
  112. package/dist/shared/cleanup-serialized-input-props.js +0 -34
  113. package/dist/shared/docs-url.d.ts +0 -1
  114. package/dist/shared/docs-url.js +0 -4
  115. package/dist/shared/get-most-expensive-chunks.d.ts +0 -8
  116. package/dist/shared/get-most-expensive-chunks.js +0 -28
  117. package/dist/shared/invoke-webhook.d.ts +0 -48
  118. package/dist/shared/invoke-webhook.js +0 -140
  119. package/dist/shared/parse-lambda-timings-key.d.ts +0 -5
  120. package/dist/shared/parse-lambda-timings-key.js +0 -2
  121. package/dist/shared/return-values.d.ts +0 -16
  122. package/dist/shared/return-values.js +0 -2
  123. package/dist/shared/stackback.d.ts +0 -6
  124. package/dist/shared/stackback.js +0 -59
  125. package/dist/shared/validate-download-behavior.d.ts +0 -1
  126. package/dist/shared/validate-download-behavior.js +0 -21
  127. package/dist/shared/validate-frames-per-lambda.d.ts +0 -4
  128. package/dist/shared/validate-frames-per-lambda.js +0 -29
  129. package/dist/shared/validate-privacy.d.ts +0 -2
  130. package/dist/shared/validate-privacy.js +0 -14
  131. package/dist/shared/validate.d.ts +0 -4
  132. package/dist/shared/validate.js +0 -8
  133. package/dist/shared/why-is-node-running.d.ts +0 -15
  134. package/dist/shared/why-is-node-running.js +0 -88
@@ -1,2 +0,0 @@
1
- import type { LogLevel, RenderMediaOnDownload } from '@remotion/renderer';
2
- export declare const onDownloadsHelper: (logLevel: LogLevel) => RenderMediaOnDownload;
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.onDownloadsHelper = void 0;
4
- const renderer_1 = require("@remotion/renderer");
5
- const onDownloadsHelper = (logLevel) => {
6
- const downloads = {};
7
- return (src) => {
8
- renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, 'Downloading', src);
9
- downloads[src] = 0;
10
- return ({ percent, downloaded }) => {
11
- if (percent === null) {
12
- renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, `Download progress (${src}): ${downloaded} bytes. Don't know final size of download, no Content-Length header.`);
13
- return;
14
- }
15
- if (
16
- // Only report every 10% change
17
- downloads[src] > percent - 0.1 &&
18
- percent !== 1) {
19
- return;
20
- }
21
- downloads[src] = percent;
22
- renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, `Download progress (${src}): ${downloaded} bytes, ${(percent * 100).toFixed(1)}%`);
23
- if (percent === 1) {
24
- renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, `Download complete: ${src}`);
25
- }
26
- };
27
- };
28
- };
29
- exports.onDownloadsHelper = onDownloadsHelper;
@@ -1,59 +0,0 @@
1
- import type { LogLevel } from '@remotion/renderer';
2
- import type { CloudProvider, LambdaErrorInfo, ProviderSpecifics, ReceivedArtifact } from '@remotion/serverless';
3
- import { type RenderMetadata } from '@remotion/serverless/client';
4
- import type { PostRenderData } from '../../shared/constants';
5
- import type { ParsedTiming } from '../../shared/parse-lambda-timings-key';
6
- import type { ChunkRetry } from './get-retry-stats';
7
- export type OverallRenderProgress<Provider extends CloudProvider> = {
8
- chunks: number[];
9
- framesRendered: number;
10
- framesEncoded: number;
11
- combinedFrames: number;
12
- timeToCombine: number | null;
13
- timeToEncode: number | null;
14
- timeToRenderFrames: number | null;
15
- lambdasInvoked: number;
16
- retries: ChunkRetry[];
17
- postRenderData: PostRenderData<Provider> | null;
18
- timings: ParsedTiming[];
19
- renderMetadata: RenderMetadata<Provider> | null;
20
- errors: LambdaErrorInfo[];
21
- timeoutTimestamp: number;
22
- functionLaunched: number;
23
- serveUrlOpened: number | null;
24
- compositionValidated: number | null;
25
- receivedArtifact: ReceivedArtifact<Provider>[];
26
- };
27
- export type OverallProgressHelper<Provider extends CloudProvider> = {
28
- upload: () => Promise<void>;
29
- setFrames: ({ encoded, rendered, index, }: {
30
- rendered: number;
31
- encoded: number;
32
- index: number;
33
- }) => void;
34
- setLambdaInvoked: (chunk: number) => void;
35
- addChunkCompleted: (chunkIndex: number, start: number, rendered: number) => void;
36
- setCombinedFrames: (framesEncoded: number) => void;
37
- setTimeToCombine: (timeToCombine: number) => void;
38
- addRetry: (retry: ChunkRetry) => void;
39
- setPostRenderData: (postRenderData: PostRenderData<Provider>) => void;
40
- setRenderMetadata: (renderMetadata: RenderMetadata<Provider>) => void;
41
- addErrorWithoutUpload: (errorInfo: LambdaErrorInfo) => void;
42
- setExpectedChunks: (expectedChunks: number) => void;
43
- get: () => OverallRenderProgress<Provider>;
44
- setServeUrlOpened: (timestamp: number) => void;
45
- setCompositionValidated: (timestamp: number) => void;
46
- addReceivedArtifact: (asset: ReceivedArtifact<Provider>) => void;
47
- getReceivedArtifacts: () => ReceivedArtifact<Provider>[];
48
- };
49
- export declare const makeInitialOverallRenderProgress: <Provider extends CloudProvider>(timeoutTimestamp: number) => OverallRenderProgress<Provider>;
50
- export declare const makeOverallRenderProgress: <Provider extends CloudProvider>({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, forcePathStyle, }: {
51
- renderId: string;
52
- bucketName: string;
53
- expectedBucketOwner: string;
54
- region: Provider["region"];
55
- timeoutTimestamp: number;
56
- logLevel: LogLevel;
57
- providerSpecifics: ProviderSpecifics<Provider>;
58
- forcePathStyle: boolean;
59
- }) => OverallProgressHelper<Provider>;
@@ -1,180 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeOverallRenderProgress = exports.makeInitialOverallRenderProgress = void 0;
4
- const renderer_1 = require("@remotion/renderer");
5
- const client_1 = require("@remotion/serverless/client");
6
- const makeInitialOverallRenderProgress = (timeoutTimestamp) => {
7
- return {
8
- chunks: [],
9
- framesRendered: 0,
10
- framesEncoded: 0,
11
- combinedFrames: 0,
12
- timeToCombine: null,
13
- timeToEncode: null,
14
- lambdasInvoked: 0,
15
- retries: [],
16
- postRenderData: null,
17
- timings: [],
18
- renderMetadata: null,
19
- errors: [],
20
- timeToRenderFrames: null,
21
- timeoutTimestamp,
22
- functionLaunched: Date.now(),
23
- serveUrlOpened: null,
24
- compositionValidated: null,
25
- receivedArtifact: [],
26
- };
27
- };
28
- exports.makeInitialOverallRenderProgress = makeInitialOverallRenderProgress;
29
- const makeOverallRenderProgress = ({ renderId, bucketName, expectedBucketOwner, region, timeoutTimestamp, logLevel, providerSpecifics, forcePathStyle, }) => {
30
- let framesRendered = [];
31
- let framesEncoded = [];
32
- let lambdasInvoked = [];
33
- const renderProgress = (0, exports.makeInitialOverallRenderProgress)(timeoutTimestamp);
34
- let currentUploadPromise = null;
35
- const getCurrentProgress = () => renderProgress;
36
- let latestUploadRequest = 0;
37
- const getLatestRequestId = () => latestUploadRequest;
38
- let encodeStartTime = null;
39
- let renderFramesStartTime = null;
40
- const upload = async () => {
41
- const uploadRequestId = ++latestUploadRequest;
42
- if (currentUploadPromise) {
43
- await currentUploadPromise;
44
- }
45
- // If request has been replaced by a new one
46
- if (getLatestRequestId() !== uploadRequestId) {
47
- return;
48
- }
49
- const toWrite = JSON.stringify(getCurrentProgress());
50
- const start = Date.now();
51
- currentUploadPromise = providerSpecifics
52
- .writeFile({
53
- body: toWrite,
54
- bucketName,
55
- customCredentials: null,
56
- downloadBehavior: null,
57
- expectedBucketOwner,
58
- key: (0, client_1.overallProgressKey)(renderId),
59
- privacy: 'private',
60
- region,
61
- forcePathStyle,
62
- })
63
- .then(() => {
64
- // By default, upload is way too fast (~20 requests per second)
65
- // Space out the requests a bit
66
- return new Promise((resolve) => {
67
- setTimeout(resolve, 250 - (Date.now() - start));
68
- });
69
- })
70
- .catch((err) => {
71
- // If an error occurs in uploading the state that contains the errors,
72
- // that is unfortunate. We just log it.
73
- renderer_1.RenderInternals.Log.error({ indent: false, logLevel }, 'Error uploading progress', err);
74
- });
75
- await currentUploadPromise;
76
- currentUploadPromise = null;
77
- };
78
- return {
79
- upload,
80
- setFrames: ({ encoded, rendered, index, }) => {
81
- if (framesRendered.length === 0) {
82
- throw new Error('Expected chunks to be set before frames are set');
83
- }
84
- if (framesEncoded.length === 0) {
85
- throw new Error('Expected chunks to be set before frames are set');
86
- }
87
- framesRendered[index] = rendered;
88
- framesEncoded[index] = encoded;
89
- const totalFramesEncoded = framesEncoded.reduce((a, b) => a + b, 0);
90
- const totalFramesRendered = framesRendered.reduce((a, b) => a + b, 0);
91
- if (renderProgress.framesEncoded === 0 && totalFramesEncoded > 0) {
92
- encodeStartTime = Date.now();
93
- }
94
- if (renderProgress.framesRendered === 0 && totalFramesRendered > 0) {
95
- renderFramesStartTime = Date.now();
96
- }
97
- if (renderProgress.timeToRenderFrames === null) {
98
- const frameCount = renderProgress.renderMetadata &&
99
- renderProgress.renderMetadata.type === 'video'
100
- ? renderer_1.RenderInternals.getFramesToRender(renderProgress.renderMetadata.frameRange, renderProgress.renderMetadata.everyNthFrame).length
101
- : null;
102
- if (frameCount === totalFramesRendered) {
103
- const timeToRenderFrames = Date.now() - (renderFramesStartTime !== null && renderFramesStartTime !== void 0 ? renderFramesStartTime : Date.now());
104
- renderProgress.timeToRenderFrames = timeToRenderFrames;
105
- }
106
- }
107
- renderProgress.framesRendered = totalFramesRendered;
108
- renderProgress.framesEncoded = totalFramesEncoded;
109
- upload();
110
- },
111
- addChunkCompleted: (chunkIndex, start, rendered) => {
112
- var _a;
113
- renderProgress.chunks.push(chunkIndex);
114
- if (renderProgress.chunks.length ===
115
- ((_a = renderProgress.renderMetadata) === null || _a === void 0 ? void 0 : _a.totalChunks)) {
116
- const timeToEncode = Date.now() - (encodeStartTime !== null && encodeStartTime !== void 0 ? encodeStartTime : Date.now());
117
- renderProgress.timeToEncode = timeToEncode;
118
- }
119
- renderProgress.timings.push({
120
- chunk: chunkIndex,
121
- start,
122
- rendered,
123
- });
124
- upload();
125
- },
126
- setCombinedFrames: (frames) => {
127
- renderProgress.combinedFrames = frames;
128
- upload();
129
- },
130
- setTimeToCombine: (timeToCombine) => {
131
- renderProgress.timeToCombine = timeToCombine;
132
- upload();
133
- },
134
- setLambdaInvoked(chunk) {
135
- if (lambdasInvoked.length === 0) {
136
- throw new Error('Expected chunks to be set before lambdas are set');
137
- }
138
- lambdasInvoked[chunk] = true;
139
- renderProgress.lambdasInvoked = lambdasInvoked.reduce((a, b) => a + Number(b), 0);
140
- upload();
141
- },
142
- setPostRenderData(postRenderData) {
143
- renderProgress.postRenderData = postRenderData;
144
- upload();
145
- },
146
- setRenderMetadata: (renderMetadata) => {
147
- renderProgress.renderMetadata = renderMetadata;
148
- upload();
149
- },
150
- addErrorWithoutUpload: (errorInfo) => {
151
- renderProgress.errors.push(errorInfo);
152
- },
153
- setExpectedChunks: (expectedChunks) => {
154
- framesRendered = new Array(expectedChunks).fill(0);
155
- framesEncoded = new Array(expectedChunks).fill(0);
156
- lambdasInvoked = new Array(expectedChunks).fill(false);
157
- },
158
- setCompositionValidated(timestamp) {
159
- renderProgress.compositionValidated = timestamp;
160
- upload();
161
- },
162
- setServeUrlOpened(timestamp) {
163
- renderProgress.serveUrlOpened = timestamp;
164
- upload();
165
- },
166
- addRetry(retry) {
167
- renderProgress.retries.push(retry);
168
- upload();
169
- },
170
- addReceivedArtifact(asset) {
171
- renderProgress.receivedArtifact.push(asset);
172
- upload();
173
- },
174
- getReceivedArtifacts() {
175
- return renderProgress.receivedArtifact;
176
- },
177
- get: () => renderProgress,
178
- };
179
- };
180
- exports.makeOverallRenderProgress = makeOverallRenderProgress;
@@ -1 +0,0 @@
1
- export {};
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const best_frames_per_lambda_param_1 = require("./best-frames-per-lambda-param");
4
- const entries = [];
5
- for (let i = 0; i < 18000; i += 100) {
6
- entries.push([i, (0, best_frames_per_lambda_param_1.bestFramesPerLambdaParam)(i)]);
7
- }
8
- console.log(entries.map((e) => e.join(',')).join('\n'));
@@ -1,4 +0,0 @@
1
- import type { LogLevel } from '@remotion/renderer';
2
- import type { ServerlessRoutines } from '@remotion/serverless/client';
3
- export type PrintLoggingHelper = (type: ServerlessRoutines, data: Record<string, string | boolean>, logLevel: LogLevel) => void;
4
- export declare const printLoggingGrepHelper: PrintLoggingHelper;
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.printLoggingGrepHelper = void 0;
4
- const renderer_1 = require("@remotion/renderer");
5
- const printLoggingGrepHelper = (type, data, logLevel) => {
6
- const d = Object.keys(data).reduce((a, b) => {
7
- return [...a, `${b}=${data[b]}`];
8
- }, []);
9
- const msg = [`method=${type}`, ...d].join(',');
10
- renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, msg);
11
- };
12
- exports.printLoggingGrepHelper = printLoggingGrepHelper;
@@ -1,6 +0,0 @@
1
- import type { CloudProvider } from '@remotion/serverless';
2
- import type { RenderMetadata } from '@remotion/serverless/client';
3
- export declare const lambdaRenderHasAudioVideo: <Provider extends CloudProvider>(renderMetadata: RenderMetadata<Provider>) => {
4
- hasAudio: boolean;
5
- hasVideo: boolean;
6
- };
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.lambdaRenderHasAudioVideo = void 0;
4
- const pure_1 = require("@remotion/renderer/pure");
5
- const lambdaRenderHasAudioVideo = (renderMetadata) => {
6
- if (renderMetadata.type === 'still') {
7
- throw new Error('Cannot merge stills');
8
- }
9
- const support = pure_1.NoReactAPIs.codecSupportsMedia(renderMetadata.codec);
10
- const hasVideo = renderMetadata
11
- ? !pure_1.NoReactAPIs.isAudioCodec(renderMetadata.codec)
12
- : false;
13
- const hasAudio = renderMetadata
14
- ? !renderMetadata.muted && support.audio
15
- : false;
16
- return {
17
- hasAudio,
18
- hasVideo,
19
- };
20
- };
21
- exports.lambdaRenderHasAudioVideo = lambdaRenderHasAudioVideo;
@@ -1,5 +0,0 @@
1
- export type RequestContext = {
2
- invokedFunctionArn: string;
3
- getRemainingTimeInMillis: () => number;
4
- awsRequestId: string;
5
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,17 +0,0 @@
1
- import type { EmittedArtifact, LogLevel } from '@remotion/renderer';
2
- import type { CloudProvider } from '@remotion/serverless';
3
- import { type ProviderSpecifics } from '@remotion/serverless';
4
- import type { ServerlessPayload } from '@remotion/serverless/client';
5
- import type { OverallProgressHelper } from './overall-render-progress';
6
- export declare const streamRendererFunctionWithRetry: <Provider extends CloudProvider>({ payload, files, functionName, outdir, overallProgress, logLevel, onArtifact, providerSpecifics, }: {
7
- payload: ServerlessPayload<Provider>;
8
- functionName: string;
9
- outdir: string;
10
- overallProgress: OverallProgressHelper<Provider>;
11
- files: string[];
12
- logLevel: LogLevel;
13
- onArtifact: (asset: EmittedArtifact) => {
14
- alreadyExisted: boolean;
15
- };
16
- providerSpecifics: ProviderSpecifics<Provider>;
17
- }) => Promise<unknown>;
@@ -1,148 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.streamRendererFunctionWithRetry = void 0;
4
- const renderer_1 = require("@remotion/renderer");
5
- const serverless_1 = require("@remotion/serverless");
6
- const client_1 = require("@remotion/serverless/client");
7
- const fs_1 = require("fs");
8
- const path_1 = require("path");
9
- const call_lambda_1 = require("../../shared/call-lambda");
10
- const streamRenderer = ({ payload, functionName, outdir, overallProgress, files, logLevel, onArtifact, providerSpecifics, }) => {
11
- if (payload.type !== client_1.ServerlessRoutines.renderer) {
12
- throw new Error('Expected renderer type');
13
- }
14
- return new Promise((resolve) => {
15
- const receivedStreamingPayload = ({ message }) => {
16
- if (message.type === 'lambda-invoked') {
17
- overallProgress.setLambdaInvoked(payload.chunk);
18
- return;
19
- }
20
- if (message.type === 'frames-rendered') {
21
- overallProgress.setFrames({
22
- index: payload.chunk,
23
- encoded: message.payload.encoded,
24
- rendered: message.payload.rendered,
25
- });
26
- return;
27
- }
28
- if (message.type === 'video-chunk-rendered') {
29
- const filename = (0, path_1.join)(outdir, `chunk:${String(payload.chunk).padStart(8, '0')}:video`);
30
- (0, fs_1.writeFileSync)(filename, message.payload);
31
- files.push(filename);
32
- renderer_1.RenderInternals.Log.verbose({ indent: false, logLevel }, `Received video chunk for chunk ${payload.chunk}`);
33
- return;
34
- }
35
- if (message.type === 'audio-chunk-rendered') {
36
- const filename = (0, path_1.join)(outdir, `chunk:${String(payload.chunk).padStart(8, '0')}:audio`);
37
- (0, fs_1.writeFileSync)(filename, message.payload);
38
- renderer_1.RenderInternals.Log.verbose({ indent: false, logLevel }, `Received audio chunk for chunk ${payload.chunk}`);
39
- files.push(filename);
40
- return;
41
- }
42
- if (message.type === 'chunk-complete') {
43
- renderer_1.RenderInternals.Log.verbose({ indent: false, logLevel }, `Finished chunk ${payload.chunk}`);
44
- overallProgress.addChunkCompleted(payload.chunk, message.payload.start, message.payload.rendered);
45
- return;
46
- }
47
- if (message.type === 'artifact-emitted') {
48
- const artifact = (0, serverless_1.deserializeArtifact)(message.payload.artifact);
49
- renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, `Received artifact on frame ${message.payload.artifact.frame}:`, artifact.filename, artifact.content.length + 'bytes.');
50
- const { alreadyExisted } = onArtifact(artifact);
51
- if (alreadyExisted) {
52
- return resolve({
53
- type: 'error',
54
- error: `Chunk ${payload.chunk} emitted an asset filename ${message.payload.artifact.filename} at frame ${message.payload.artifact.frame} but there is already another artifact with the same name. https://remotion.dev/docs/artifacts`,
55
- shouldRetry: false,
56
- });
57
- }
58
- return;
59
- }
60
- if (message.type === 'error-occurred') {
61
- overallProgress.addErrorWithoutUpload(message.payload.errorInfo);
62
- overallProgress.setFrames({
63
- encoded: 0,
64
- index: payload.chunk,
65
- rendered: 0,
66
- });
67
- renderer_1.RenderInternals.Log.error({
68
- indent: false,
69
- logLevel,
70
- }, `Renderer function of chunk ${payload.chunk} failed with error: ${message.payload.error}`);
71
- renderer_1.RenderInternals.Log.error({
72
- indent: false,
73
- logLevel,
74
- }, `Will retry chunk = ${message.payload.shouldRetry}`);
75
- resolve({
76
- type: 'error',
77
- error: message.payload.error,
78
- shouldRetry: message.payload.shouldRetry,
79
- });
80
- return;
81
- }
82
- throw new Error(`Unknown message type ${message.type}`);
83
- };
84
- (0, call_lambda_1.callLambdaWithStreaming)({
85
- functionName,
86
- payload,
87
- retriesRemaining: 1,
88
- region: providerSpecifics.getCurrentRegionInFunction(),
89
- timeoutInTest: 12000,
90
- type: client_1.ServerlessRoutines.renderer,
91
- receivedStreamingPayload,
92
- })
93
- .then(() => {
94
- resolve({
95
- type: 'success',
96
- });
97
- })
98
- .catch((err) => {
99
- var _a, _b;
100
- const shouldRetry = (_b = (_a = err.stack) === null || _a === void 0 ? void 0 : _a.includes('Error: aborted')) !== null && _b !== void 0 ? _b : false;
101
- resolve({
102
- type: 'error',
103
- error: err.stack,
104
- shouldRetry,
105
- });
106
- });
107
- });
108
- };
109
- const streamRendererFunctionWithRetry = async ({ payload, files, functionName, outdir, overallProgress, logLevel, onArtifact, providerSpecifics, }) => {
110
- if (payload.type !== client_1.ServerlessRoutines.renderer) {
111
- throw new Error('Expected renderer type');
112
- }
113
- const result = await streamRenderer({
114
- files,
115
- functionName,
116
- outdir,
117
- overallProgress,
118
- payload,
119
- logLevel,
120
- onArtifact,
121
- providerSpecifics,
122
- });
123
- if (result.type === 'error') {
124
- if (!result.shouldRetry) {
125
- throw new Error(result.error);
126
- }
127
- overallProgress.addRetry({
128
- attempt: payload.attempt + 1,
129
- time: Date.now(),
130
- chunk: payload.chunk,
131
- });
132
- return (0, exports.streamRendererFunctionWithRetry)({
133
- files,
134
- functionName,
135
- outdir,
136
- overallProgress,
137
- payload: {
138
- ...payload,
139
- attempt: payload.attempt + 1,
140
- retriesLeft: payload.retriesLeft - 1,
141
- },
142
- logLevel,
143
- onArtifact,
144
- providerSpecifics,
145
- });
146
- }
147
- };
148
- exports.streamRendererFunctionWithRetry = streamRendererFunctionWithRetry;
@@ -1,10 +0,0 @@
1
- import type { CloudProvider, ProviderSpecifics } from '@remotion/serverless';
2
- import type { ServerlessPayload } from '@remotion/serverless/client';
3
- type Options = {
4
- expectedBucketOwner: string;
5
- getRemainingTimeInMillis: () => number;
6
- };
7
- export declare const launchHandler: <Provider extends CloudProvider>(params: ServerlessPayload<Provider>, options: Options, providerSpecifics: ProviderSpecifics<Provider>) => Promise<{
8
- type: "success";
9
- }>;
10
- export {};