@remotion/lambda 4.0.0-oops.3 → 4.0.0-publish.10
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/dist/admin/make-layer-public.js +4 -4
- package/dist/api/bucket-exists.d.ts +1 -1
- package/dist/api/clean-items.d.ts +1 -1
- package/dist/api/clean-items.js +2 -5
- package/dist/api/create-bucket.d.ts +1 -1
- package/dist/api/create-function.d.ts +4 -3
- package/dist/api/create-function.js +3 -2
- package/dist/api/delete-function.d.ts +1 -1
- package/dist/api/delete-site.d.ts +1 -1
- package/dist/api/deploy-function.d.ts +3 -2
- package/dist/api/deploy-function.js +3 -0
- package/dist/api/deploy-site.d.ts +3 -3
- package/dist/api/download-media.d.ts +2 -2
- package/dist/api/enable-s3-website.d.ts +1 -1
- package/dist/api/estimate-price.d.ts +2 -2
- package/dist/api/get-aws-client.d.ts +2 -2
- package/dist/api/get-aws-client.js +5 -1
- package/dist/api/get-buckets.d.ts +1 -1
- package/dist/api/get-function-info.d.ts +2 -2
- package/dist/api/get-functions.d.ts +2 -2
- package/dist/api/get-or-create-bucket.d.ts +1 -1
- package/dist/api/get-regions.d.ts +1 -1
- package/dist/api/get-render-progress.d.ts +2 -2
- package/dist/api/get-sites.d.ts +2 -2
- package/dist/api/iam-validation/role-permissions.d.ts +2 -1
- package/dist/api/iam-validation/simulate-rule.d.ts +1 -1
- package/dist/api/iam-validation/simulate.d.ts +2 -2
- package/dist/api/mock-functions.d.ts +3 -3
- package/dist/api/presign-url.d.ts +1 -1
- package/dist/api/render-media-on-lambda.d.ts +3 -3
- package/dist/api/render-still-on-lambda.d.ts +4 -4
- package/dist/api/upload-dir.d.ts +2 -2
- package/dist/api/upload-dir.js +4 -3
- package/dist/cli/args.d.ts +4 -3
- package/dist/cli/commands/functions/deploy.js +6 -2
- package/dist/cli/commands/render/progress.d.ts +3 -3
- package/dist/cli/commands/render/progress.js +11 -3
- package/dist/cli/commands/render/render.js +9 -2
- package/dist/cli/commands/sites/ls.js +1 -2
- package/dist/cli/commands/sites/rm.js +2 -3
- package/dist/cli/commands/sites/rmall.js +2 -3
- package/dist/cli/commands/still.js +1 -2
- package/dist/cli/get-aws-region.d.ts +1 -1
- package/dist/cli/helpers/get-cloudwatch-stream-url.d.ts +2 -2
- package/dist/cli/helpers/progress-bar.js +1 -2
- package/dist/cli/index.js +10 -0
- package/dist/defaults.js +5 -1
- package/dist/functions/chunk-optimization/can-use-optimization.d.ts +1 -1
- package/dist/functions/chunk-optimization/collect-data.d.ts +1 -1
- package/dist/functions/chunk-optimization/get-frame-ranges-from-profile.d.ts +1 -1
- package/dist/functions/chunk-optimization/get-profile-duration.d.ts +1 -1
- package/dist/functions/chunk-optimization/is-valid-profile.d.ts +1 -1
- package/dist/functions/chunk-optimization/optimize-invocation-order.d.ts +1 -1
- package/dist/functions/chunk-optimization/optimize-profile.d.ts +1 -1
- package/dist/functions/chunk-optimization/plan-frame-ranges.d.ts +1 -1
- package/dist/functions/chunk-optimization/s3-optimization-file.d.ts +2 -2
- package/dist/functions/chunk-optimization/simulate-frame-ranges.d.ts +1 -1
- package/dist/functions/chunk-optimization/sort-by-duration.d.ts +1 -1
- package/dist/functions/chunk-optimization/types.d.ts +1 -1
- package/dist/functions/helpers/calculate-chunk-times.d.ts +1 -1
- package/dist/functions/helpers/calculate-price-from-bucket.d.ts +4 -4
- package/dist/functions/helpers/concat-videos.d.ts +4 -3
- package/dist/functions/helpers/concat-videos.js +7 -2
- package/dist/functions/helpers/create-post-render-data.d.ts +6 -6
- package/dist/functions/helpers/create-post-render-data.js +5 -5
- package/dist/functions/helpers/delete-chunks.d.ts +3 -3
- package/dist/functions/helpers/expected-out-name.d.ts +1 -1
- package/dist/functions/helpers/find-output-file-in-bucket.d.ts +2 -2
- package/dist/functions/helpers/format-costs-info.d.ts +1 -1
- package/dist/functions/helpers/get-browser-instance.d.ts +2 -1
- package/dist/functions/helpers/get-browser-instance.js +3 -1
- package/dist/functions/helpers/get-cleanup-progress.d.ts +2 -2
- package/dist/functions/helpers/get-current-architecture.d.ts +1 -1
- package/dist/functions/helpers/get-encoding-metadata.d.ts +2 -2
- package/dist/functions/helpers/get-files-to-delete.js +2 -2
- package/dist/functions/helpers/get-final-encoding-status.d.ts +2 -2
- package/dist/functions/helpers/get-lambdas-invoked-stats.d.ts +1 -1
- package/dist/functions/helpers/get-output-url-from-metadata.d.ts +1 -1
- package/dist/functions/helpers/get-post-render-data.d.ts +2 -2
- package/dist/functions/helpers/get-progress.d.ts +2 -2
- package/dist/functions/helpers/get-progress.js +14 -11
- package/dist/functions/helpers/get-render-metadata.d.ts +2 -2
- package/dist/functions/helpers/get-retry-stats.d.ts +1 -1
- package/dist/functions/helpers/get-time-to-finish.d.ts +1 -1
- package/dist/functions/helpers/inspect-errors.d.ts +3 -3
- package/dist/functions/helpers/io.d.ts +5 -5
- package/dist/functions/helpers/io.js +5 -0
- package/dist/functions/helpers/print-cloudwatch-helper.d.ts +1 -1
- package/dist/functions/helpers/read-with-progress.d.ts +4 -3
- package/dist/functions/helpers/read-with-progress.js +6 -1
- package/dist/functions/helpers/validate-composition.d.ts +9 -4
- package/dist/functions/helpers/validate-composition.js +6 -1
- package/dist/functions/helpers/write-lambda-error.d.ts +1 -1
- package/dist/functions/helpers/write-post-render-data.d.ts +2 -2
- package/dist/functions/index.d.ts +3 -2
- package/dist/functions/info.d.ts +1 -1
- package/dist/functions/launch.d.ts +1 -1
- package/dist/functions/launch.js +6 -0
- package/dist/functions/progress.d.ts +1 -1
- package/dist/functions/renderer.d.ts +1 -1
- package/dist/functions/renderer.js +3 -0
- package/dist/functions/start.d.ts +1 -1
- package/dist/functions/still.d.ts +1 -1
- package/dist/functions/still.js +6 -0
- package/dist/index.d.ts +33 -18
- package/dist/pricing/price-per-1-s.d.ts +1 -1
- package/dist/shared/aws-clients.d.ts +1 -1
- package/dist/shared/call-lambda.d.ts +3 -3
- package/dist/shared/constants.d.ts +10 -7
- package/dist/shared/constants.js +1 -1
- package/dist/shared/convert-to-serve-url.d.ts +1 -1
- package/dist/shared/get-account-id.d.ts +1 -1
- package/dist/shared/get-function-version.d.ts +2 -2
- package/dist/shared/get-most-expensive-chunks.d.ts +8 -0
- package/dist/shared/get-most-expensive-chunks.js +25 -0
- package/dist/shared/hosted-layers.d.ts +2 -2
- package/dist/shared/hosted-layers.js +80 -80
- package/dist/shared/make-s3-key.d.ts +1 -0
- package/dist/shared/make-s3-key.js +11 -0
- package/dist/shared/make-s3-url.d.ts +1 -1
- package/dist/shared/p-limit.d.ts +1 -0
- package/dist/shared/p-limit.js +57 -0
- package/dist/shared/random-hash.d.ts +2 -2
- package/dist/shared/random-hash.js +1 -1
- package/dist/shared/return-values.d.ts +7 -7
- package/dist/shared/return-values.js +0 -1
- package/dist/shared/stream-to-string.d.ts +2 -1
- package/dist/shared/validate-aws-region.d.ts +1 -1
- package/dist/shared/validate-custom-role-arn.d.ts +1 -0
- package/dist/shared/validate-custom-role-arn.js +11 -0
- package/dist/shared/validate-frames-per-lambda.js +1 -1
- package/dist/shared/validate-outname.d.ts +1 -1
- package/dist/shared/validate-privacy.d.ts +1 -1
- package/package.json +11 -13
- package/remotionlambda.zip +0 -0
|
@@ -35,7 +35,7 @@ const layerInfo = {
|
|
|
35
35
|
},
|
|
36
36
|
};
|
|
37
37
|
const makeLayerPublic = async () => {
|
|
38
|
-
const layers = ['
|
|
38
|
+
const layers = ['fonts', 'ffmpeg', 'chromium'];
|
|
39
39
|
for (const architecture of archictures) {
|
|
40
40
|
for (const region of (0, __1.getRegions)()) {
|
|
41
41
|
for (const layer of layers) {
|
|
@@ -43,14 +43,14 @@ const makeLayerPublic = async () => {
|
|
|
43
43
|
const { Version, LayerArn } = await (0, aws_clients_1.getLambdaClient)(region).send(new client_lambda_1.PublishLayerVersionCommand({
|
|
44
44
|
Content: {
|
|
45
45
|
S3Bucket: 'remotionlambda-binaries-' + region,
|
|
46
|
-
S3Key: `remotion-layer-${layer}-
|
|
46
|
+
S3Key: `remotion-layer-${layer}-v6-${architecture}.zip`,
|
|
47
47
|
},
|
|
48
48
|
LayerName: layerName,
|
|
49
49
|
LicenseInfo: layer === 'chromium'
|
|
50
|
-
? '
|
|
50
|
+
? 'Chromium 101, compiled from source. Read Chromium License: https://chromium.googlesource.com/chromium/src/+/refs/heads/main/LICENSE'
|
|
51
51
|
: layer === 'ffmpeg'
|
|
52
52
|
? 'Compiled from FFMPEG source. Read FFMPEG license: https://ffmpeg.org/legal.html'
|
|
53
|
-
: 'Contains
|
|
53
|
+
: 'Contains Noto Sans font. Read Noto Sans License: https://fonts.google.com/noto/specimen/Noto+Sans/about',
|
|
54
54
|
CompatibleRuntimes: runtimes,
|
|
55
55
|
Description: constants_1.CURRENT_VERSION,
|
|
56
56
|
}));
|
package/dist/api/clean-items.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.cleanItems = void 0;
|
|
7
4
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
8
|
-
const p_limit_1 = __importDefault(require("p-limit"));
|
|
9
5
|
const aws_clients_1 = require("../shared/aws-clients");
|
|
10
|
-
const
|
|
6
|
+
const p_limit_1 = require("../shared/p-limit");
|
|
7
|
+
const limit = (0, p_limit_1.pLimit)(10);
|
|
11
8
|
const cleanItems = async ({ bucket, onAfterItemDeleted, onBeforeItemDeleted, region, list, }) => {
|
|
12
9
|
return Promise.all(list.map((object) => limit(async () => {
|
|
13
10
|
onBeforeItemDeleted({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
-
import { LambdaArchitecture } from '../shared/validate-architecture';
|
|
3
|
-
export declare const createFunction: ({ createCloudWatchLogGroup, region, zipFile, functionName, accountId, memorySizeInMb, timeoutInSeconds, alreadyCreated, retentionInDays, architecture, ephemerealStorageInMb, }: {
|
|
1
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
+
import type { LambdaArchitecture } from '../shared/validate-architecture';
|
|
3
|
+
export declare const createFunction: ({ createCloudWatchLogGroup, region, zipFile, functionName, accountId, memorySizeInMb, timeoutInSeconds, alreadyCreated, retentionInDays, architecture, ephemerealStorageInMb, customRoleArn, }: {
|
|
4
4
|
createCloudWatchLogGroup: boolean;
|
|
5
5
|
region: AwsRegion;
|
|
6
6
|
zipFile: string;
|
|
@@ -12,6 +12,7 @@ export declare const createFunction: ({ createCloudWatchLogGroup, region, zipFil
|
|
|
12
12
|
retentionInDays: number;
|
|
13
13
|
ephemerealStorageInMb: number;
|
|
14
14
|
architecture: LambdaArchitecture;
|
|
15
|
+
customRoleArn: string;
|
|
15
16
|
}) => Promise<{
|
|
16
17
|
FunctionName: string;
|
|
17
18
|
}>;
|
|
@@ -8,7 +8,7 @@ const defaults_1 = require("../defaults");
|
|
|
8
8
|
const aws_clients_1 = require("../shared/aws-clients");
|
|
9
9
|
const hosted_layers_1 = require("../shared/hosted-layers");
|
|
10
10
|
const suggested_policy_1 = require("./iam-validation/suggested-policy");
|
|
11
|
-
const createFunction = async ({ createCloudWatchLogGroup, region, zipFile, functionName, accountId, memorySizeInMb, timeoutInSeconds, alreadyCreated, retentionInDays, architecture, ephemerealStorageInMb, }) => {
|
|
11
|
+
const createFunction = async ({ createCloudWatchLogGroup, region, zipFile, functionName, accountId, memorySizeInMb, timeoutInSeconds, alreadyCreated, retentionInDays, architecture, ephemerealStorageInMb, customRoleArn, }) => {
|
|
12
12
|
if (createCloudWatchLogGroup) {
|
|
13
13
|
try {
|
|
14
14
|
await (0, aws_clients_1.getCloudWatchLogsClient)(region).send(new client_cloudwatch_logs_1.CreateLogGroupCommand({
|
|
@@ -29,13 +29,14 @@ const createFunction = async ({ createCloudWatchLogGroup, region, zipFile, funct
|
|
|
29
29
|
if (alreadyCreated) {
|
|
30
30
|
return { FunctionName: functionName };
|
|
31
31
|
}
|
|
32
|
+
const defaultRoleName = `arn:aws:iam::${accountId}:role/${suggested_policy_1.ROLE_NAME}`;
|
|
32
33
|
const { FunctionName } = await (0, aws_clients_1.getLambdaClient)(region).send(new client_lambda_1.CreateFunctionCommand({
|
|
33
34
|
Code: {
|
|
34
35
|
ZipFile: (0, fs_1.readFileSync)(zipFile),
|
|
35
36
|
},
|
|
36
37
|
FunctionName: functionName,
|
|
37
38
|
Handler: 'index.handler',
|
|
38
|
-
Role:
|
|
39
|
+
Role: customRoleArn !== null && customRoleArn !== void 0 ? customRoleArn : defaultRoleName,
|
|
39
40
|
Runtime: 'nodejs14.x',
|
|
40
41
|
Description: 'Renders a Remotion video.',
|
|
41
42
|
MemorySize: memorySizeInMb,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
-
import { LambdaArchitecture } from '../shared/validate-architecture';
|
|
1
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
+
import type { LambdaArchitecture } from '../shared/validate-architecture';
|
|
3
3
|
export declare type DeployFunctionInput = {
|
|
4
4
|
createCloudWatchLogGroup: boolean;
|
|
5
5
|
cloudWatchLogRetentionPeriodInDays?: number;
|
|
@@ -8,6 +8,7 @@ export declare type DeployFunctionInput = {
|
|
|
8
8
|
memorySizeInMb: number;
|
|
9
9
|
architecture: LambdaArchitecture;
|
|
10
10
|
diskSizeInMb?: number;
|
|
11
|
+
customRoleArn?: string;
|
|
11
12
|
};
|
|
12
13
|
export declare type DeployFunctionOutput = {
|
|
13
14
|
functionName: string;
|
|
@@ -7,6 +7,7 @@ const function_zip_path_1 = require("../shared/function-zip-path");
|
|
|
7
7
|
const get_account_id_1 = require("../shared/get-account-id");
|
|
8
8
|
const validate_architecture_1 = require("../shared/validate-architecture");
|
|
9
9
|
const validate_aws_region_1 = require("../shared/validate-aws-region");
|
|
10
|
+
const validate_custom_role_arn_1 = require("../shared/validate-custom-role-arn");
|
|
10
11
|
const validate_disk_size_in_mb_1 = require("../shared/validate-disk-size-in-mb");
|
|
11
12
|
const validate_memory_size_1 = require("../shared/validate-memory-size");
|
|
12
13
|
const validate_retention_period_1 = require("../shared/validate-retention-period");
|
|
@@ -33,6 +34,7 @@ const deployFunction = async (options) => {
|
|
|
33
34
|
(0, validate_retention_period_1.validateCloudWatchRetentionPeriod)(options.cloudWatchLogRetentionPeriodInDays);
|
|
34
35
|
(0, validate_architecture_1.validateArchitecture)(options.architecture);
|
|
35
36
|
(0, validate_disk_size_in_mb_1.validateDiskSizeInMb)(diskSizeInMb);
|
|
37
|
+
(0, validate_custom_role_arn_1.validateCustomRoleArn)(options.customRoleArn);
|
|
36
38
|
const fnNameRender = [
|
|
37
39
|
`${constants_1.RENDER_FN_PREFIX}${constants_1.CURRENT_VERSION}`,
|
|
38
40
|
`mem${options.memorySizeInMb}mb`,
|
|
@@ -60,6 +62,7 @@ const deployFunction = async (options) => {
|
|
|
60
62
|
alreadyCreated: Boolean(alreadyDeployed),
|
|
61
63
|
architecture: options.architecture,
|
|
62
64
|
ephemerealStorageInMb: diskSizeInMb,
|
|
65
|
+
customRoleArn: options.customRoleArn,
|
|
63
66
|
});
|
|
64
67
|
if (!created.FunctionName) {
|
|
65
68
|
throw new Error('Lambda was created but has no name');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { WebpackOverrideFn } from 'remotion';
|
|
2
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
3
|
-
import { UploadDirProgress } from './upload-dir';
|
|
1
|
+
import type { WebpackOverrideFn } from 'remotion';
|
|
2
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
3
|
+
import type { UploadDirProgress } from './upload-dir';
|
|
4
4
|
export declare type DeploySiteInput = {
|
|
5
5
|
entryPoint: string;
|
|
6
6
|
bucketName: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { LambdaReadFileProgress } from '../functions/helpers/read-with-progress';
|
|
2
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
1
|
+
import type { LambdaReadFileProgress } from '../functions/helpers/read-with-progress';
|
|
2
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
3
3
|
export declare type DownloadMediaInput = {
|
|
4
4
|
region: AwsRegion;
|
|
5
5
|
bucketName: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
-
import { LambdaArchitecture } from '../shared/validate-architecture';
|
|
1
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
+
import type { LambdaArchitecture } from '../shared/validate-architecture';
|
|
3
3
|
export declare type EstimatePriceInput = {
|
|
4
4
|
region: AwsRegion;
|
|
5
5
|
durationInMiliseconds: number;
|
|
@@ -3,8 +3,8 @@ import * as IamSdk from '@aws-sdk/client-iam';
|
|
|
3
3
|
import * as LambdaSDK from '@aws-sdk/client-lambda';
|
|
4
4
|
import * as S3SDK from '@aws-sdk/client-s3';
|
|
5
5
|
import * as ServiceQuotasSDK from '@aws-sdk/client-service-quotas';
|
|
6
|
-
import { AwsRegion } from '../client';
|
|
7
|
-
import { ServiceMapping } from '../shared/aws-clients';
|
|
6
|
+
import type { AwsRegion } from '../client';
|
|
7
|
+
import type { ServiceMapping } from '../shared/aws-clients';
|
|
8
8
|
export declare type GetAwsClientInput<T extends keyof ServiceMapping> = {
|
|
9
9
|
region: AwsRegion;
|
|
10
10
|
service: T;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
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);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
-
import { LambdaVersions } from '../shared/constants';
|
|
1
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
+
import type { LambdaVersions } from '../shared/constants';
|
|
3
3
|
export declare type FunctionInfo = {
|
|
4
4
|
functionName: string;
|
|
5
5
|
timeoutInSeconds: number;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
-
import { FunctionInfo } from './get-function-info';
|
|
1
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
+
import type { FunctionInfo } from './get-function-info';
|
|
3
3
|
export declare type GetFunctionsInput = {
|
|
4
4
|
region: AwsRegion;
|
|
5
5
|
compatibleOnly: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
-
import { RenderProgress } from '../shared/constants';
|
|
1
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
+
import type { RenderProgress } from '../shared/constants';
|
|
3
3
|
export declare type GetRenderInput = {
|
|
4
4
|
functionName: string;
|
|
5
5
|
bucketName: string;
|
package/dist/api/get-sites.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
-
import { BucketWithLocation } from './get-buckets';
|
|
1
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
+
import type { BucketWithLocation } from './get-buckets';
|
|
3
3
|
declare type Site = {
|
|
4
4
|
sizeInBytes: number;
|
|
5
5
|
lastModified: number | null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
-
import { SimulationResult } from './simulate-rule';
|
|
1
|
+
import type { AwsRegion } from '../../pricing/aws-regions';
|
|
2
|
+
import type { SimulationResult } from './simulate-rule';
|
|
3
3
|
export declare const logPermissionOutput: (output: SimulationResult) => string;
|
|
4
4
|
export declare type SimulatePermissionsInput = {
|
|
5
5
|
region: AwsRegion;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
-
import { LambdaVersions } from '../shared/constants';
|
|
3
|
-
import { FunctionInfo } from './get-function-info';
|
|
1
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
2
|
+
import type { LambdaVersions } from '../shared/constants';
|
|
3
|
+
import type { FunctionInfo } from './get-function-info';
|
|
4
4
|
export declare let mockFunctionsStore: (FunctionInfo & {
|
|
5
5
|
region: AwsRegion;
|
|
6
6
|
version: LambdaVersions;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ChromiumOptions } from '@remotion/renderer';
|
|
2
|
-
import { FrameRange, ImageFormat, LogLevel, PixelFormat, ProResProfile } from 'remotion';
|
|
3
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
4
|
-
import { Privacy } from '../shared/constants';
|
|
2
|
+
import type { FrameRange, ImageFormat, LogLevel, PixelFormat, ProResProfile } from 'remotion';
|
|
3
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
4
|
+
import type { Privacy } from '../shared/constants';
|
|
5
5
|
export declare type RenderMediaOnLambdaInput = {
|
|
6
6
|
region: AwsRegion;
|
|
7
7
|
functionName: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ChromiumOptions } from '@remotion/renderer';
|
|
2
|
-
import { LogLevel, StillImageFormat } from 'remotion';
|
|
3
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
4
|
-
import { CostsInfo } from '../shared/constants';
|
|
1
|
+
import type { ChromiumOptions } from '@remotion/renderer';
|
|
2
|
+
import type { LogLevel, StillImageFormat } from 'remotion';
|
|
3
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
4
|
+
import type { CostsInfo } from '../shared/constants';
|
|
5
5
|
export declare type RenderStillOnLambdaInput = {
|
|
6
6
|
region: AwsRegion;
|
|
7
7
|
functionName: string;
|
package/dist/api/upload-dir.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Privacy } from '../defaults';
|
|
2
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
1
|
+
import type { Privacy } from '../defaults';
|
|
2
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
3
3
|
export declare type UploadDirProgress = {
|
|
4
4
|
totalFiles: number;
|
|
5
5
|
filesUploaded: number;
|
package/dist/api/upload-dir.js
CHANGED
|
@@ -6,10 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.uploadDir = exports.getDirFiles = void 0;
|
|
7
7
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
8
8
|
const lib_storage_1 = require("@aws-sdk/lib-storage");
|
|
9
|
-
const bundler_1 = require("@remotion/bundler");
|
|
10
9
|
const fs_1 = require("fs");
|
|
10
|
+
const mime_types_1 = __importDefault(require("mime-types"));
|
|
11
11
|
const path_1 = __importDefault(require("path"));
|
|
12
12
|
const aws_clients_1 = require("../shared/aws-clients");
|
|
13
|
+
const make_s3_key_1 = require("../shared/make-s3-key");
|
|
13
14
|
const getDirFiles = (entry) => {
|
|
14
15
|
throw new TypeError('should only be executed in test ' + JSON.stringify(entry));
|
|
15
16
|
};
|
|
@@ -38,9 +39,9 @@ const uploadDir = async ({ bucket, region, dir, onProgress, folder, privacy, })
|
|
|
38
39
|
}
|
|
39
40
|
const client = (0, aws_clients_1.getS3Client)(region);
|
|
40
41
|
const uploads = files.map(async (filePath) => {
|
|
41
|
-
const Key =
|
|
42
|
+
const Key = (0, make_s3_key_1.makeS3Key)(folder, dir, filePath.name);
|
|
42
43
|
const Body = (0, fs_1.createReadStream)(filePath.name);
|
|
43
|
-
const ContentType =
|
|
44
|
+
const ContentType = mime_types_1.default.lookup(Key) || 'application/octet-stream';
|
|
44
45
|
const ACL = privacy === 'private' ? 'private' : 'public-read';
|
|
45
46
|
if (filePath.size > 5 * 1024 * 1024) {
|
|
46
47
|
const paralellUploads3 = new lib_storage_1.Upload({
|
package/dist/cli/args.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import minimist from 'minimist';
|
|
2
|
-
import { AwsRegion } from '../pricing/aws-regions';
|
|
3
|
-
import { Privacy } from '../shared/constants';
|
|
4
|
-
import { LambdaArchitecture } from '../shared/validate-architecture';
|
|
2
|
+
import type { AwsRegion } from '../pricing/aws-regions';
|
|
3
|
+
import type { Privacy } from '../shared/constants';
|
|
4
|
+
import type { LambdaArchitecture } from '../shared/validate-architecture';
|
|
5
5
|
declare type LambdaCommandLineOptions = {
|
|
6
6
|
help: boolean;
|
|
7
7
|
region: AwsRegion;
|
|
@@ -21,6 +21,7 @@ declare type LambdaCommandLineOptions = {
|
|
|
21
21
|
['frames-per-lambda']: number;
|
|
22
22
|
['out-name']: string | undefined;
|
|
23
23
|
['architecture']: LambdaArchitecture;
|
|
24
|
+
['custom-role-arn']: string | undefined;
|
|
24
25
|
privacy: Privacy;
|
|
25
26
|
};
|
|
26
27
|
export declare const parsedLambdaCli: LambdaCommandLineOptions & minimist.ParsedArgs;
|
|
@@ -6,6 +6,7 @@ const log_1 = require("@remotion/cli/dist/log");
|
|
|
6
6
|
const deploy_function_1 = require("../../../api/deploy-function");
|
|
7
7
|
const constants_1 = require("../../../shared/constants");
|
|
8
8
|
const validate_architecture_1 = require("../../../shared/validate-architecture");
|
|
9
|
+
const validate_custom_role_arn_1 = require("../../../shared/validate-custom-role-arn");
|
|
9
10
|
const validate_disk_size_in_mb_1 = require("../../../shared/validate-disk-size-in-mb");
|
|
10
11
|
const validate_memory_size_1 = require("../../../shared/validate-memory-size");
|
|
11
12
|
const validate_timeout_1 = require("../../../shared/validate-timeout");
|
|
@@ -13,18 +14,20 @@ const args_1 = require("../../args");
|
|
|
13
14
|
const get_aws_region_1 = require("../../get-aws-region");
|
|
14
15
|
exports.FUNCTIONS_DEPLOY_SUBCOMMAND = 'deploy';
|
|
15
16
|
const functionsDeploySubcommand = async () => {
|
|
16
|
-
var _a, _b, _c, _d, _e;
|
|
17
|
+
var _a, _b, _c, _d, _e, _f;
|
|
17
18
|
const region = (0, get_aws_region_1.getAwsRegion)();
|
|
18
19
|
const timeoutInSeconds = (_a = args_1.parsedLambdaCli.timeout) !== null && _a !== void 0 ? _a : constants_1.DEFAULT_TIMEOUT;
|
|
19
20
|
const memorySizeInMb = (_b = args_1.parsedLambdaCli.memory) !== null && _b !== void 0 ? _b : constants_1.DEFAULT_MEMORY_SIZE;
|
|
20
21
|
const diskSizeInMb = (_c = args_1.parsedLambdaCli.disk) !== null && _c !== void 0 ? _c : constants_1.DEFAULT_EPHEMERAL_STORAGE_IN_MB;
|
|
21
22
|
const architecture = (_d = args_1.parsedLambdaCli.architecture) !== null && _d !== void 0 ? _d : constants_1.DEFAULT_ARCHITECTURE;
|
|
23
|
+
const customRoleArn = (_e = args_1.parsedLambdaCli['custom-role-arn']) !== null && _e !== void 0 ? _e : undefined;
|
|
22
24
|
const createCloudWatchLogGroup = !args_1.parsedLambdaCli['disable-cloudwatch'];
|
|
23
|
-
const cloudWatchLogRetentionPeriodInDays = (
|
|
25
|
+
const cloudWatchLogRetentionPeriodInDays = (_f = args_1.parsedLambdaCli['retention-period']) !== null && _f !== void 0 ? _f : constants_1.DEFAULT_CLOUDWATCH_RETENTION_PERIOD;
|
|
24
26
|
(0, validate_memory_size_1.validateMemorySize)(memorySizeInMb);
|
|
25
27
|
(0, validate_timeout_1.validateTimeout)(timeoutInSeconds);
|
|
26
28
|
(0, validate_architecture_1.validateArchitecture)(architecture);
|
|
27
29
|
(0, validate_disk_size_in_mb_1.validateDiskSizeInMb)(diskSizeInMb);
|
|
30
|
+
(0, validate_custom_role_arn_1.validateCustomRoleArn)(customRoleArn);
|
|
28
31
|
if (!cli_1.CliInternals.quietFlagProvided()) {
|
|
29
32
|
log_1.Log.info(cli_1.CliInternals.chalk.gray(`
|
|
30
33
|
Region = ${region}
|
|
@@ -47,6 +50,7 @@ CloudWatch Retention Period = ${cloudWatchLogRetentionPeriodInDays} days
|
|
|
47
50
|
cloudWatchLogRetentionPeriodInDays,
|
|
48
51
|
architecture,
|
|
49
52
|
diskSizeInMb,
|
|
53
|
+
customRoleArn,
|
|
50
54
|
});
|
|
51
55
|
if (cli_1.CliInternals.quietFlagProvided()) {
|
|
52
56
|
log_1.Log.info(functionName);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CleanupInfo, EncodingProgress, RenderProgress } from '../../../defaults';
|
|
2
|
-
import { ChunkRetry } from '../../../functions/helpers/get-retry-stats';
|
|
1
|
+
import type { CleanupInfo, EncodingProgress, RenderProgress } from '../../../defaults';
|
|
2
|
+
import type { ChunkRetry } from '../../../functions/helpers/get-retry-stats';
|
|
3
3
|
declare type LambdaInvokeProgress = {
|
|
4
4
|
totalLambdas: number | null;
|
|
5
5
|
lambdasInvoked: number;
|
|
@@ -18,7 +18,7 @@ export declare type MultiRenderProgress = {
|
|
|
18
18
|
};
|
|
19
19
|
export declare const makeMultiProgressFromStatus: (status: RenderProgress) => MultiRenderProgress;
|
|
20
20
|
declare type DownloadedInfo = {
|
|
21
|
-
totalSize: number;
|
|
21
|
+
totalSize: number | null;
|
|
22
22
|
downloaded: number;
|
|
23
23
|
doneIn: number | null;
|
|
24
24
|
};
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.makeProgressString = exports.makeMultiProgressFromStatus = void 0;
|
|
4
4
|
const cli_1 = require("@remotion/cli");
|
|
5
5
|
const remotion_1 = require("remotion");
|
|
6
|
-
const format_bytes_1 = require("../../helpers/format-bytes");
|
|
7
6
|
const makeInvokeProgress = (invokeProgress, totalSteps, retriesInfo) => {
|
|
8
7
|
const { lambdasInvoked, totalLambdas, doneIn } = invokeProgress;
|
|
9
8
|
const progress = doneIn
|
|
@@ -78,10 +77,19 @@ const makeDownloadProgress = (downloadInfo, totalSteps) => {
|
|
|
78
77
|
return [
|
|
79
78
|
'💾',
|
|
80
79
|
`(5/${totalSteps})`,
|
|
81
|
-
|
|
80
|
+
downloadInfo.totalSize === null
|
|
81
|
+
? cli_1.CliInternals.getFileSizeDownloadBar(downloadInfo.downloaded)
|
|
82
|
+
: cli_1.CliInternals.makeProgressBar(downloadInfo.downloaded / downloadInfo.totalSize),
|
|
82
83
|
`${downloadInfo.doneIn === null ? 'Downloading' : 'Downloaded'} video`,
|
|
83
84
|
downloadInfo.doneIn === null
|
|
84
|
-
?
|
|
85
|
+
? [
|
|
86
|
+
`${cli_1.CliInternals.formatBytes(downloadInfo.downloaded)}`,
|
|
87
|
+
downloadInfo.totalSize === null
|
|
88
|
+
? null
|
|
89
|
+
: `${cli_1.CliInternals.formatBytes(downloadInfo.totalSize)}`,
|
|
90
|
+
]
|
|
91
|
+
.filter(remotion_1.Internals.truthy)
|
|
92
|
+
.join('/')
|
|
85
93
|
: cli_1.CliInternals.chalk.gray(`${downloadInfo.doneIn}ms`),
|
|
86
94
|
].join(' ');
|
|
87
95
|
};
|
|
@@ -14,7 +14,6 @@ const validate_retries_1 = require("../../../shared/validate-retries");
|
|
|
14
14
|
const args_1 = require("../../args");
|
|
15
15
|
const get_aws_region_1 = require("../../get-aws-region");
|
|
16
16
|
const find_function_name_1 = require("../../helpers/find-function-name");
|
|
17
|
-
const format_bytes_1 = require("../../helpers/format-bytes");
|
|
18
17
|
const get_cloudwatch_stream_url_1 = require("../../helpers/get-cloudwatch-stream-url");
|
|
19
18
|
const quit_1 = require("../../helpers/quit");
|
|
20
19
|
const log_1 = require("../../log");
|
|
@@ -151,7 +150,7 @@ const renderCommand = async (args) => {
|
|
|
151
150
|
}));
|
|
152
151
|
log_1.Log.info();
|
|
153
152
|
log_1.Log.info();
|
|
154
|
-
log_1.Log.info('Done!', outputPath,
|
|
153
|
+
log_1.Log.info('Done!', outputPath, cli_1.CliInternals.formatBytes(sizeInBytes));
|
|
155
154
|
}
|
|
156
155
|
else {
|
|
157
156
|
log_1.Log.info();
|
|
@@ -169,6 +168,14 @@ const renderCommand = async (args) => {
|
|
|
169
168
|
]
|
|
170
169
|
.filter(Boolean)
|
|
171
170
|
.join(', '));
|
|
171
|
+
if (newStatus.mostExpensiveFrameRanges) {
|
|
172
|
+
log_1.Log.verbose('Most expensive frame ranges:');
|
|
173
|
+
log_1.Log.verbose(newStatus.mostExpensiveFrameRanges
|
|
174
|
+
.map((f) => {
|
|
175
|
+
return `${f.frameRange[0]}-${f.frameRange[1]} (${f.timeInMilliseconds}ms)`;
|
|
176
|
+
})
|
|
177
|
+
.join(', '));
|
|
178
|
+
}
|
|
172
179
|
(0, quit_1.quit)(0);
|
|
173
180
|
}
|
|
174
181
|
if (newStatus.fatalErrorEncountered) {
|
|
@@ -6,7 +6,6 @@ const log_1 = require("@remotion/cli/dist/log");
|
|
|
6
6
|
const get_sites_1 = require("../../../api/get-sites");
|
|
7
7
|
const get_aws_region_1 = require("../../get-aws-region");
|
|
8
8
|
const date_string_1 = require("../../helpers/date-string");
|
|
9
|
-
const format_bytes_1 = require("../../helpers/format-bytes");
|
|
10
9
|
exports.SITES_LS_SUBCOMMAND = 'ls';
|
|
11
10
|
const COLS = [20, 30, 10, 15];
|
|
12
11
|
const logRow = (data) => {
|
|
@@ -40,7 +39,7 @@ const sitesLsSubcommand = async () => {
|
|
|
40
39
|
log_1.Log.info(logRow([
|
|
41
40
|
site.id,
|
|
42
41
|
site.bucketName,
|
|
43
|
-
|
|
42
|
+
cli_1.CliInternals.formatBytes(site.sizeInBytes),
|
|
44
43
|
site.lastModified ? (0, date_string_1.dateString)(new Date(site.lastModified)) : 'n/a',
|
|
45
44
|
]));
|
|
46
45
|
log_1.Log.info(site.serveUrl);
|
|
@@ -7,7 +7,6 @@ const get_buckets_1 = require("../../../api/get-buckets");
|
|
|
7
7
|
const get_sites_1 = require("../../../api/get-sites");
|
|
8
8
|
const get_aws_region_1 = require("../../get-aws-region");
|
|
9
9
|
const confirm_1 = require("../../helpers/confirm");
|
|
10
|
-
const format_bytes_1 = require("../../helpers/format-bytes");
|
|
11
10
|
const quit_1 = require("../../helpers/quit");
|
|
12
11
|
const log_1 = require("../../log");
|
|
13
12
|
exports.SITES_RM_COMMAND = 'rm';
|
|
@@ -44,7 +43,7 @@ const sitesRmSubcommand = async (args) => {
|
|
|
44
43
|
return (0, quit_1.quit)(1);
|
|
45
44
|
}
|
|
46
45
|
await (0, confirm_1.confirmCli)({
|
|
47
|
-
delMessage: `Site ${site.id} in bucket ${site.bucketName} (${
|
|
46
|
+
delMessage: `Site ${site.id} in bucket ${site.bucketName} (${cli_1.CliInternals.formatBytes(site.sizeInBytes)}): Delete? (Y/n)`,
|
|
48
47
|
allowForceFlag: true,
|
|
49
48
|
});
|
|
50
49
|
const { totalSizeInBytes: totalSize } = await (0, delete_site_1.deleteSite)({
|
|
@@ -55,7 +54,7 @@ const sitesRmSubcommand = async (args) => {
|
|
|
55
54
|
log_1.Log.info(cli_1.CliInternals.chalk.gray(`Deleted ${itemName}`));
|
|
56
55
|
},
|
|
57
56
|
});
|
|
58
|
-
log_1.Log.info(`Deleted site ${siteName} and freed up ${
|
|
57
|
+
log_1.Log.info(`Deleted site ${siteName} and freed up ${cli_1.CliInternals.formatBytes(totalSize)}.`);
|
|
59
58
|
}
|
|
60
59
|
};
|
|
61
60
|
exports.sitesRmSubcommand = sitesRmSubcommand;
|
|
@@ -7,7 +7,6 @@ const get_buckets_1 = require("../../../api/get-buckets");
|
|
|
7
7
|
const get_sites_1 = require("../../../api/get-sites");
|
|
8
8
|
const get_aws_region_1 = require("../../get-aws-region");
|
|
9
9
|
const confirm_1 = require("../../helpers/confirm");
|
|
10
|
-
const format_bytes_1 = require("../../helpers/format-bytes");
|
|
11
10
|
const quit_1 = require("../../helpers/quit");
|
|
12
11
|
const log_1 = require("../../log");
|
|
13
12
|
exports.SITES_RMALL_COMMAND = 'rmall';
|
|
@@ -31,7 +30,7 @@ const sitesRmallSubcommand = async () => {
|
|
|
31
30
|
}
|
|
32
31
|
for (const site of deployedSites.sites) {
|
|
33
32
|
await (0, confirm_1.confirmCli)({
|
|
34
|
-
delMessage: `Site ${site.id} in bucket ${site.bucketName} (${
|
|
33
|
+
delMessage: `Site ${site.id} in bucket ${site.bucketName} (${cli_1.CliInternals.formatBytes(site.sizeInBytes)}): Delete? (Y/n)`,
|
|
35
34
|
allowForceFlag: true,
|
|
36
35
|
});
|
|
37
36
|
const { totalSizeInBytes: totalSize } = await (0, delete_site_1.deleteSite)({
|
|
@@ -42,7 +41,7 @@ const sitesRmallSubcommand = async () => {
|
|
|
42
41
|
log_1.Log.info(cli_1.CliInternals.chalk.gray(`Deleted ${itemName}`));
|
|
43
42
|
},
|
|
44
43
|
});
|
|
45
|
-
log_1.Log.info(`Deleted site ${site.id} and freed up ${
|
|
44
|
+
log_1.Log.info(`Deleted site ${site.id} and freed up ${cli_1.CliInternals.formatBytes(totalSize)}.`);
|
|
46
45
|
}
|
|
47
46
|
};
|
|
48
47
|
exports.sitesRmallSubcommand = sitesRmallSubcommand;
|
|
@@ -11,7 +11,6 @@ const validate_retries_1 = require("../../shared/validate-retries");
|
|
|
11
11
|
const args_1 = require("../args");
|
|
12
12
|
const get_aws_region_1 = require("../get-aws-region");
|
|
13
13
|
const find_function_name_1 = require("../helpers/find-function-name");
|
|
14
|
-
const format_bytes_1 = require("../helpers/format-bytes");
|
|
15
14
|
const get_cloudwatch_stream_url_1 = require("../helpers/get-cloudwatch-stream-url");
|
|
16
15
|
const quit_1 = require("../helpers/quit");
|
|
17
16
|
const log_1 = require("../log");
|
|
@@ -78,7 +77,7 @@ const stillCommand = async (args) => {
|
|
|
78
77
|
region: (0, get_aws_region_1.getAwsRegion)(),
|
|
79
78
|
renderId: res.renderId,
|
|
80
79
|
});
|
|
81
|
-
log_1.Log.info('Done!', outputPath,
|
|
80
|
+
log_1.Log.info('Done!', outputPath, cli_1.CliInternals.formatBytes(sizeInBytes));
|
|
82
81
|
}
|
|
83
82
|
else {
|
|
84
83
|
log_1.Log.info(`Finished still!`);
|