@remotion/studio-server 4.0.537 → 4.0.539

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 (155) hide show
  1. package/dist/ansi-diff.js +3 -19
  2. package/dist/better-opn/index.d.ts +4 -2
  3. package/dist/canvas-capture/generate-canvas-capture-composition.d.ts +14 -0
  4. package/dist/canvas-capture/generate-canvas-capture-composition.js +239 -0
  5. package/dist/codemods/add-effect.d.ts +1 -0
  6. package/dist/codemods/add-effect.js +8 -0
  7. package/dist/codemods/apply-codemod-to-file.d.ts +7 -0
  8. package/dist/codemods/apply-codemod-to-file.js +171 -0
  9. package/dist/codemods/apply-visual-control.d.ts +8 -0
  10. package/dist/codemods/apply-visual-control.js +89 -0
  11. package/dist/codemods/delete-effect.d.ts +1 -0
  12. package/dist/codemods/delete-effect.js +6 -0
  13. package/dist/codemods/delete-jsx-node.d.ts +22 -0
  14. package/dist/codemods/delete-jsx-node.js +17 -0
  15. package/dist/codemods/delete-jsx-nodes.d.ts +13 -0
  16. package/dist/codemods/delete-jsx-nodes.js +10 -0
  17. package/dist/codemods/duplicate-composition.d.ts +2 -0
  18. package/dist/codemods/duplicate-composition.js +64 -0
  19. package/dist/codemods/duplicate-effect.d.ts +1 -0
  20. package/dist/codemods/duplicate-effect.js +6 -0
  21. package/dist/codemods/duplicate-jsx-node.d.ts +25 -0
  22. package/dist/codemods/duplicate-jsx-node.js +26 -0
  23. package/dist/codemods/effect-param-expression.d.ts +2 -2
  24. package/dist/codemods/format-file-content.d.ts +7 -0
  25. package/dist/codemods/format-file-content.js +80 -0
  26. package/dist/codemods/format-inline-content.d.ts +18 -0
  27. package/dist/codemods/format-inline-content.js +78 -0
  28. package/dist/codemods/get-node-path-remappings.d.ts +1 -12
  29. package/dist/codemods/get-node-path-remappings.js +1 -51
  30. package/dist/codemods/insert-video-layers.d.ts +11 -0
  31. package/dist/codemods/insert-video-layers.js +5 -0
  32. package/dist/codemods/paste-effects.d.ts +2 -15
  33. package/dist/codemods/recast-mods.d.ts +13 -0
  34. package/dist/codemods/recast-mods.js +902 -0
  35. package/dist/codemods/reorder-effect.d.ts +1 -0
  36. package/dist/codemods/reorder-effect.js +5 -0
  37. package/dist/codemods/reorder-sequence.d.ts +1 -0
  38. package/dist/codemods/reorder-sequence.js +5 -0
  39. package/dist/codemods/simple-diff.d.ts +5 -0
  40. package/dist/codemods/simple-diff.js +39 -0
  41. package/dist/codemods/split-jsx-sequence.d.ts +27 -0
  42. package/dist/codemods/split-jsx-sequence.js +19 -0
  43. package/dist/codemods/split-video-from-audio.d.ts +1 -0
  44. package/dist/codemods/split-video-from-audio.js +5 -0
  45. package/dist/codemods/update-default-props.d.ts +1 -0
  46. package/dist/codemods/update-default-props.js +6 -0
  47. package/dist/codemods/update-effect-props/update-effect-props.d.ts +2 -2
  48. package/dist/codemods/update-inline-caption-patches.d.ts +1 -0
  49. package/dist/codemods/update-inline-caption-patches.js +5 -0
  50. package/dist/codemods/update-keyframes/ensure-imports-and-frame-hook.d.ts +1 -0
  51. package/dist/codemods/update-keyframes/ensure-imports-and-frame-hook.js +7 -0
  52. package/dist/codemods/update-keyframes/update-keyframes.d.ts +3 -3
  53. package/dist/codemods/update-nested-prop.d.ts +1 -1
  54. package/dist/detect-outdated-remotion-skills.d.ts +3 -3
  55. package/dist/figma/figma-to-svg.d.ts +1 -1
  56. package/dist/file-watcher.d.ts +1 -1
  57. package/dist/helpers/coding-agent-registry.d.ts +3 -3
  58. package/dist/helpers/css-shorthand-properties.d.ts +8 -7
  59. package/dist/helpers/custom-editor.d.ts +2 -2
  60. package/dist/helpers/editor-registry.d.ts +2 -2
  61. package/dist/helpers/get-ast-node-path.d.ts +2 -1
  62. package/dist/helpers/import-agnostic-node-path.js +22 -13
  63. package/dist/helpers/open-in-app.d.ts +3 -3
  64. package/dist/helpers/open-in-editor.d.ts +2 -2
  65. package/dist/helpers/package-manager-spawn-options.d.ts +1 -1
  66. package/dist/helpers/read-source-file.d.ts +4 -0
  67. package/dist/helpers/read-source-file.js +14 -0
  68. package/dist/helpers/recently-used-apps.d.ts +2 -2
  69. package/dist/helpers/resolve-composition-component.d.ts +2 -2
  70. package/dist/helpers/resolve-editor.d.ts +3 -3
  71. package/dist/helpers/terminal-artwork.d.ts +4 -4
  72. package/dist/helpers/video-config-values.d.ts +4 -0
  73. package/dist/helpers/video-config-values.js +11 -3
  74. package/dist/index.d.ts +39 -100
  75. package/dist/index.js +1 -1
  76. package/dist/maybe-open-browser.d.ts +2 -1
  77. package/dist/open-browser-shortcut.d.ts +9 -0
  78. package/dist/open-browser-shortcut.js +121 -0
  79. package/dist/preview-server/api-types.d.ts +1 -1
  80. package/dist/preview-server/dev-middleware/index.d.ts +2 -1
  81. package/dist/preview-server/dev-middleware/middleware.d.ts +1 -1
  82. package/dist/preview-server/dev-middleware/middleware.js +14 -17
  83. package/dist/preview-server/element-install-state.d.ts +1 -1
  84. package/dist/preview-server/get-package-manager.d.ts +3 -2
  85. package/dist/preview-server/handler.d.ts +4 -4
  86. package/dist/preview-server/hmr-timing.d.ts +2 -1
  87. package/dist/preview-server/hot-middleware/index.d.ts +2 -1
  88. package/dist/preview-server/hot-middleware/types.d.ts +2 -0
  89. package/dist/preview-server/hot-middleware/types.js +2 -0
  90. package/dist/preview-server/jsx-component-identity.d.ts +4 -3
  91. package/dist/preview-server/live-events.d.ts +3 -2
  92. package/dist/preview-server/public-folder.js +11 -2
  93. package/dist/preview-server/routes/add-keyframes.d.ts +2 -1
  94. package/dist/preview-server/routes/app-icon.d.ts +1 -1
  95. package/dist/preview-server/routes/apply-codemod.d.ts +4 -0
  96. package/dist/preview-server/routes/apply-codemod.js +272 -0
  97. package/dist/preview-server/routes/apply-visual-control-change.js +1 -4
  98. package/dist/preview-server/routes/batch-update-keyframe-settings.d.ts +2 -1
  99. package/dist/preview-server/routes/can-update-default-props.d.ts +2 -1
  100. package/dist/preview-server/routes/can-update-effect-props.d.ts +2 -6
  101. package/dist/preview-server/routes/can-update-sequence-props.d.ts +17 -13
  102. package/dist/preview-server/routes/can-update-sequence-props.js +21 -25
  103. package/dist/preview-server/routes/delete-jsx-node.d.ts +3 -0
  104. package/dist/preview-server/routes/delete-jsx-node.js +126 -0
  105. package/dist/preview-server/routes/delete-jsx-nodes.d.ts +3 -0
  106. package/dist/preview-server/routes/delete-jsx-nodes.js +137 -0
  107. package/dist/preview-server/routes/delete-keyframes.d.ts +4 -6
  108. package/dist/preview-server/routes/delete-keyframes.js +4 -66
  109. package/dist/preview-server/routes/duplicate-jsx-node.d.ts +3 -0
  110. package/dist/preview-server/routes/duplicate-jsx-node.js +118 -0
  111. package/dist/preview-server/routes/element-install-plan.d.ts +3 -3
  112. package/dist/preview-server/routes/find-in-file.d.ts +2 -9
  113. package/dist/preview-server/routes/insert-element.js +1 -4
  114. package/dist/preview-server/routes/insert-jsx-element.d.ts +3 -0
  115. package/dist/preview-server/routes/insert-jsx-element.js +231 -0
  116. package/dist/preview-server/routes/insert-video-layers.d.ts +3 -0
  117. package/dist/preview-server/routes/insert-video-layers.js +68 -0
  118. package/dist/preview-server/routes/install-dependency.d.ts +2 -14
  119. package/dist/preview-server/routes/log-updates/log-effect-update.d.ts +2 -1
  120. package/dist/preview-server/routes/log-updates/log-update.d.ts +3 -2
  121. package/dist/preview-server/routes/move-keyframes.d.ts +2 -1
  122. package/dist/preview-server/routes/open-in-editor.d.ts +2 -2
  123. package/dist/preview-server/routes/remotion-skills-info.d.ts +1 -1
  124. package/dist/preview-server/routes/save-multiple-effect-props.js +25 -8
  125. package/dist/preview-server/routes/save-sequence-props.d.ts +2 -2
  126. package/dist/preview-server/routes/source-file-write-queue.d.ts +3 -2
  127. package/dist/preview-server/routes/split-jsx-sequence.d.ts +3 -0
  128. package/dist/preview-server/routes/split-jsx-sequence.js +117 -0
  129. package/dist/preview-server/routes/subscribe-to-sequence-props.js +55 -34
  130. package/dist/preview-server/routes/update-public-license.d.ts +11 -0
  131. package/dist/preview-server/routes/update-public-license.js +97 -0
  132. package/dist/preview-server/routes/wrap-jsx-node.d.ts +3 -0
  133. package/dist/preview-server/routes/wrap-jsx-node.js +97 -0
  134. package/dist/preview-server/sequence-node-path-mutation.d.ts +2 -6
  135. package/dist/preview-server/sequence-props-watchers.d.ts +7 -5
  136. package/dist/preview-server/sequence-props-watchers.js +7 -2
  137. package/dist/preview-server/serve-static.d.ts +1 -1
  138. package/dist/preview-server/serve-static.js +18 -1
  139. package/dist/preview-server/start-server.d.ts +3 -3
  140. package/dist/preview-server/studio-protocol/handle-discovery.d.ts +1 -1
  141. package/dist/preview-server/studio-protocol/handle-element-library.d.ts +1 -1
  142. package/dist/preview-server/studio-protocol/handle-install.d.ts +1 -1
  143. package/dist/preview-server/studio-protocol/handle-license-key.d.ts +1 -1
  144. package/dist/preview-server/studio-protocol/origin-policy.d.ts +2 -2
  145. package/dist/preview-server/studio-protocol/protocol-response.d.ts +1 -1
  146. package/dist/preview-server/undo-stack.d.ts +3 -3
  147. package/dist/preview-server/undo-stack.js +9 -0
  148. package/dist/preview-server/update-available.d.ts +3 -2
  149. package/dist/preview-server/validate-same-origin.js +2 -1
  150. package/dist/remotion-skill-names.d.ts +1 -1
  151. package/dist/routes.d.ts +4 -4
  152. package/dist/server-ready.d.ts +2 -1
  153. package/dist/start-studio.d.ts +3 -3
  154. package/dist/studio-shortcuts.d.ts +3 -3
  155. package/package.json +10 -10
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteJsxNodes = exports.getJsxElementTagLabel = exports.findJsxElementPathForDeletion = exports.deleteJsxElementAtPath = void 0;
4
+ const codemods_1 = require("@remotion/codemods");
5
+ const { deleteJsxElementAtPath, deleteJsxNodes: deleteJsxNodesCodemod, findJsxElementPathForDeletion, getJsxElementTagLabel, } = codemods_1.CodemodsInternals;
6
+ const deleteJsxNodes = ({ input, nodePaths, }) => deleteJsxNodesCodemod({
7
+ input,
8
+ nodePaths,
9
+ });
10
+ exports.deleteJsxNodes = deleteJsxNodes;
@@ -0,0 +1,2 @@
1
+ export { parseAndApplyCodemod } from '@remotion/studio-codemods';
2
+ export declare const formatOutput: (tsContent: string) => Promise<string>;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
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);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.formatOutput = exports.parseAndApplyCodemod = void 0;
37
+ const studio_codemods_1 = require("@remotion/studio-codemods");
38
+ Object.defineProperty(exports, "parseAndApplyCodemod", { enumerable: true, get: function () { return studio_codemods_1.parseAndApplyCodemod; } });
39
+ const getPrettier = async () => {
40
+ try {
41
+ return await Promise.resolve().then(() => __importStar(require('prettier')));
42
+ }
43
+ catch (_a) {
44
+ throw new Error('Prettier cannot be found in the current project.');
45
+ }
46
+ };
47
+ const formatOutput = async (tsContent) => {
48
+ const prettier = await getPrettier();
49
+ const { format, resolveConfig, resolveConfigFile } = prettier;
50
+ const configFilePath = await resolveConfigFile();
51
+ if (!configFilePath) {
52
+ throw new Error('The Prettier config file was not found. For this feature, the "prettier" package must be installed and a .prettierrc file must exist.');
53
+ }
54
+ const prettierConfig = await resolveConfig(configFilePath);
55
+ if (!prettierConfig) {
56
+ throw new Error(`The Prettier config at ${configFilePath} could not be read`);
57
+ }
58
+ const newContents = await format(tsContent, {
59
+ ...prettierConfig,
60
+ filepath: 'test.tsx',
61
+ });
62
+ return newContents;
63
+ };
64
+ exports.formatOutput = formatOutput;
@@ -0,0 +1 @@
1
+ export { duplicateEffect, duplicateEffects, type EffectTarget as EffectDuplicationTarget, } from '@remotion/studio-codemods';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.duplicateEffects = exports.duplicateEffect = void 0;
4
+ const studio_codemods_1 = require("@remotion/studio-codemods");
5
+ Object.defineProperty(exports, "duplicateEffect", { enumerable: true, get: function () { return studio_codemods_1.duplicateEffect; } });
6
+ Object.defineProperty(exports, "duplicateEffects", { enumerable: true, get: function () { return studio_codemods_1.duplicateEffects; } });
@@ -0,0 +1,25 @@
1
+ import { duplicateJsxElementAtPath } from '@remotion/studio-codemods';
2
+ import type { SequenceNodePath } from 'remotion';
3
+ export { duplicateJsxElementAtPath };
4
+ export declare const duplicateJsxNode: ({ input, nodePath, prettierConfigOverride, }: {
5
+ input: string;
6
+ nodePath: SequenceNodePath;
7
+ prettierConfigOverride?: Record<string, unknown> | null | undefined;
8
+ }) => Promise<{
9
+ output: string;
10
+ formatted: boolean;
11
+ nodeLabel: string;
12
+ logLine: number;
13
+ nodePathRemappings: import("@remotion/studio-shared").SequenceNodePathRemapping[];
14
+ }>;
15
+ export declare const duplicateJsxNodes: ({ input, nodePaths, prettierConfigOverride, }: {
16
+ input: string;
17
+ nodePaths: SequenceNodePath[];
18
+ prettierConfigOverride?: Record<string, unknown> | null | undefined;
19
+ }) => Promise<{
20
+ output: string;
21
+ formatted: boolean;
22
+ nodeLabels: string[];
23
+ logLines: number[];
24
+ nodePathRemappings: import("@remotion/studio-shared").SequenceNodePathRemapping[];
25
+ }>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.duplicateJsxNodes = exports.duplicateJsxNode = exports.duplicateJsxElementAtPath = void 0;
4
+ const studio_codemods_1 = require("@remotion/studio-codemods");
5
+ Object.defineProperty(exports, "duplicateJsxElementAtPath", { enumerable: true, get: function () { return studio_codemods_1.duplicateJsxElementAtPath; } });
6
+ const format_file_content_1 = require("./format-file-content");
7
+ const duplicateJsxNode = ({ input, nodePath, prettierConfigOverride, }) => (0, studio_codemods_1.duplicateJsxNode)({
8
+ input,
9
+ nodePath,
10
+ formatFile: ({ contents, prettierConfigOverride: override }) => (0, format_file_content_1.formatFileContent)({
11
+ input: contents,
12
+ prettierConfigOverride: override,
13
+ }),
14
+ prettierConfigOverride,
15
+ });
16
+ exports.duplicateJsxNode = duplicateJsxNode;
17
+ const duplicateJsxNodes = ({ input, nodePaths, prettierConfigOverride, }) => (0, studio_codemods_1.duplicateJsxNodes)({
18
+ input,
19
+ nodePaths,
20
+ formatFile: ({ contents, prettierConfigOverride: override }) => (0, format_file_content_1.formatFileContent)({
21
+ input: contents,
22
+ prettierConfigOverride: override,
23
+ }),
24
+ prettierConfigOverride,
25
+ });
26
+ exports.duplicateJsxNodes = duplicateJsxNodes;
@@ -8,8 +8,8 @@ export declare const getRequiredRemotionImports: (effects: EffectClipboardSnapsh
8
8
  export declare const ensureRemotionImportLocalNames: ({ ast, requiredImports, }: {
9
9
  ast: File;
10
10
  requiredImports: Set<RemotionImportName>;
11
- }) => Partial<Record<RemotionImportName, string>>;
11
+ }) => RemotionLocalNames;
12
12
  export declare const makeParamExpression: ({ param, remotionLocalNames, }: {
13
13
  param: EffectClipboardParam;
14
- remotionLocalNames: Partial<Record<RemotionImportName, string>>;
14
+ remotionLocalNames: RemotionLocalNames;
15
15
  }) => ExpressionKind;
@@ -0,0 +1,7 @@
1
+ export declare const formatFileContent: ({ input, prettierConfigOverride, }: {
2
+ input: string;
3
+ prettierConfigOverride?: Record<string, unknown> | null | undefined;
4
+ }) => Promise<{
5
+ output: string;
6
+ formatted: boolean;
7
+ }>;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
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);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.formatFileContent = void 0;
37
+ const formatFileContent = async ({ input, prettierConfigOverride, }) => {
38
+ let prettier = null;
39
+ try {
40
+ prettier = await Promise.resolve().then(() => __importStar(require('prettier')));
41
+ }
42
+ catch (_a) {
43
+ return {
44
+ output: input,
45
+ formatted: false,
46
+ };
47
+ }
48
+ const { format, resolveConfig, resolveConfigFile } = prettier;
49
+ let prettierConfig;
50
+ if (prettierConfigOverride !== undefined && prettierConfigOverride !== null) {
51
+ prettierConfig = prettierConfigOverride;
52
+ }
53
+ else {
54
+ const configFilePath = await resolveConfigFile();
55
+ if (!configFilePath) {
56
+ return {
57
+ output: input,
58
+ formatted: false,
59
+ };
60
+ }
61
+ prettierConfig = await resolveConfig(configFilePath);
62
+ }
63
+ if (!prettierConfig) {
64
+ return {
65
+ output: input,
66
+ formatted: false,
67
+ };
68
+ }
69
+ const prettified = await format(input, {
70
+ ...prettierConfig,
71
+ filepath: 'test.tsx',
72
+ plugins: [],
73
+ endOfLine: 'lf',
74
+ });
75
+ return {
76
+ output: prettified,
77
+ formatted: true,
78
+ };
79
+ };
80
+ exports.formatFileContent = formatFileContent;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Instead of running prettier on the entire file (which is slow),
3
+ * format only a small snippet of inline content (e.g. stringified defaultProps).
4
+ *
5
+ * @param inlineContent - The raw content to format (e.g. stringified props)
6
+ * @param linePrefix - Everything from the start of the line to where
7
+ * inlineContent will appear (used to calculate column offset and indentation)
8
+ * @param endOfLine - Prettier endOfLine option
9
+ */
10
+ export declare const formatInlineContent: ({ inlineContent, linePrefix, endOfLine, prettierConfigOverride, }: {
11
+ inlineContent: string;
12
+ linePrefix: string;
13
+ endOfLine: "auto" | "lf";
14
+ prettierConfigOverride?: Record<string, unknown> | null | undefined;
15
+ }) => Promise<{
16
+ formatted: string;
17
+ didFormat: boolean;
18
+ }>;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
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);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.formatInlineContent = void 0;
37
+ const studio_codemods_1 = require("@remotion/studio-codemods");
38
+ /**
39
+ * Instead of running prettier on the entire file (which is slow),
40
+ * format only a small snippet of inline content (e.g. stringified defaultProps).
41
+ *
42
+ * @param inlineContent - The raw content to format (e.g. stringified props)
43
+ * @param linePrefix - Everything from the start of the line to where
44
+ * inlineContent will appear (used to calculate column offset and indentation)
45
+ * @param endOfLine - Prettier endOfLine option
46
+ */
47
+ const formatInlineContent = async ({ inlineContent, linePrefix, endOfLine, prettierConfigOverride, }) => {
48
+ let prettier = null;
49
+ try {
50
+ prettier = await Promise.resolve().then(() => __importStar(require('prettier')));
51
+ }
52
+ catch (_a) {
53
+ return { formatted: inlineContent, didFormat: false };
54
+ }
55
+ const { format, resolveConfig, resolveConfigFile } = prettier;
56
+ let prettierConfig;
57
+ if (prettierConfigOverride !== undefined && prettierConfigOverride !== null) {
58
+ prettierConfig = prettierConfigOverride;
59
+ }
60
+ else {
61
+ const configFilePath = await resolveConfigFile();
62
+ if (!configFilePath) {
63
+ return { formatted: inlineContent, didFormat: false };
64
+ }
65
+ prettierConfig = await resolveConfig(configFilePath);
66
+ if (!prettierConfig) {
67
+ return { formatted: inlineContent, didFormat: false };
68
+ }
69
+ }
70
+ return (0, studio_codemods_1.formatInlineContentWithFormatter)({
71
+ inlineContent,
72
+ linePrefix,
73
+ endOfLine,
74
+ prettierConfig,
75
+ format: (source, options) => format(source, { ...options, plugins: [] }),
76
+ });
77
+ };
78
+ exports.formatInlineContent = formatInlineContent;
@@ -1,17 +1,6 @@
1
- import type { File, JSXOpeningElement } from '@babel/types';
2
- import type { SequenceNodePathRemapping } from '@remotion/studio-shared';
1
+ import type { File } from '@babel/types';
3
2
  import type { SequenceNodePath } from 'remotion';
4
3
  export type CapturedJsxNodePath = {
5
- node: JSXOpeningElement;
6
4
  nodePath: SequenceNodePath;
7
- signature: string;
8
5
  };
9
6
  export declare const captureJsxNodePaths: (ast: File) => CapturedJsxNodePath[];
10
- export declare const getNodePathRemappings: ({ ast, captured, output, }: {
11
- ast: File;
12
- captured: CapturedJsxNodePath[];
13
- output: string;
14
- }) => {
15
- nodePathRemappings: SequenceNodePathRemapping[];
16
- finalNodePathByNode: Map<JSXOpeningElement, SequenceNodePath>;
17
- };
@@ -33,18 +33,15 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.getNodePathRemappings = exports.captureJsxNodePaths = void 0;
36
+ exports.captureJsxNodePaths = void 0;
37
37
  const recast = __importStar(require("recast"));
38
38
  const can_update_sequence_props_1 = require("../preview-server/routes/can-update-sequence-props");
39
- const parse_ast_1 = require("./parse-ast");
40
39
  const captureJsxNodePaths = (ast) => {
41
40
  const captured = [];
42
41
  recast.visit(ast, {
43
42
  visitJSXOpeningElement(path) {
44
43
  captured.push({
45
- node: path.node,
46
44
  nodePath: (0, can_update_sequence_props_1.getNodePathForRecastPath)(path, ast),
47
- signature: recast.prettyPrint(path.node).code,
48
45
  });
49
46
  return this.traverse(path);
50
47
  },
@@ -52,50 +49,3 @@ const captureJsxNodePaths = (ast) => {
52
49
  return captured;
53
50
  };
54
51
  exports.captureJsxNodePaths = captureJsxNodePaths;
55
- const getNodePathRemappings = ({ ast, captured, output, }) => {
56
- const nodesAfterMutation = [];
57
- recast.visit(ast, {
58
- visitJSXOpeningElement(path) {
59
- nodesAfterMutation.push(path.node);
60
- return this.traverse(path);
61
- },
62
- });
63
- const finalAst = (0, parse_ast_1.parseAst)(output);
64
- const finalNodePaths = [];
65
- recast.visit(finalAst, {
66
- visitJSXOpeningElement(path) {
67
- finalNodePaths.push((0, can_update_sequence_props_1.getNodePathForRecastPath)(path, finalAst));
68
- return this.traverse(path);
69
- },
70
- });
71
- if (nodesAfterMutation.length !== finalNodePaths.length) {
72
- throw new Error('Could not map JSX node paths after modifying JSX nodes');
73
- }
74
- const finalNodePathByNode = new Map();
75
- for (let i = 0; i < nodesAfterMutation.length; i++) {
76
- finalNodePathByNode.set(nodesAfterMutation[i], finalNodePaths[i]);
77
- }
78
- const capturedNodes = new Set(captured.map(({ node }) => node));
79
- const nodePathRemappings = captured.flatMap(({ node, nodePath, signature }) => {
80
- var _a;
81
- const newNodePath = (_a = finalNodePathByNode.get(node)) !== null && _a !== void 0 ? _a : null;
82
- if (newNodePath !== null &&
83
- JSON.stringify(nodePath) === JSON.stringify(newNodePath) &&
84
- recast.prettyPrint(node).code === signature) {
85
- return [];
86
- }
87
- return [{ oldNodePath: nodePath, newNodePath }];
88
- });
89
- for (const node of nodesAfterMutation) {
90
- if (capturedNodes.has(node)) {
91
- continue;
92
- }
93
- const newNodePath = finalNodePathByNode.get(node);
94
- if (!newNodePath) {
95
- throw new Error('Could not map inserted JSX node path');
96
- }
97
- nodePathRemappings.push({ oldNodePath: null, newNodePath });
98
- }
99
- return { finalNodePathByNode, nodePathRemappings };
100
- };
101
- exports.getNodePathRemappings = getNodePathRemappings;
@@ -0,0 +1,11 @@
1
+ export declare const insertVideoLayers: ({ input, nodePath, baseSrc, foregroundSrc, prettierConfigOverride, }: {
2
+ input: string;
3
+ nodePath: import("remotion").SequenceNodePath;
4
+ baseSrc: string;
5
+ foregroundSrc: string;
6
+ prettierConfigOverride?: Record<string, unknown> | null | undefined;
7
+ }) => {
8
+ output: string;
9
+ logLine: number;
10
+ nodePathRemappings: import("@remotion/studio-shared").SequenceNodePathRemapping[];
11
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.insertVideoLayers = void 0;
4
+ const codemods_1 = require("@remotion/codemods");
5
+ ({ insertVideoLayers: exports.insertVideoLayers } = codemods_1.CodemodsInternals);
@@ -1,18 +1,5 @@
1
- declare const pasteEffectsCodemod: ({ effects, input, insertAtIndices, prettierConfigOverride, targetSequenceNodePath, type, }: {
2
- effects: import("@remotion/studio-shared").EffectClipboardSnapshot[];
3
- input: string;
4
- insertAtIndices: number[] | null;
5
- targetSequenceNodePath: import("remotion").SequenceNodePath;
6
- type: import("@remotion/studio-shared").EffectClipboardPasteType;
7
- } & {
8
- formatFile?: import("@remotion/codemods").FormatEffectFile | undefined;
9
- prettierConfigOverride?: Record<string, unknown> | null | undefined;
10
- }) => Promise<{
11
- output: string;
12
- formatted: boolean;
13
- effectLabels: string[];
14
- logLine: number;
15
- }>;
1
+ import { CodemodsInternals } from '@remotion/codemods';
2
+ declare const { pasteEffects: pasteEffectsCodemod }: typeof CodemodsInternals;
16
3
  type PasteEffectsInput = Parameters<typeof pasteEffectsCodemod>[0] & {
17
4
  readonly targetFileName: string;
18
5
  };
@@ -0,0 +1,13 @@
1
+ import type { File } from '@babel/types';
2
+ import type { RecastCodemod } from '@remotion/studio-shared';
3
+ export type Change = {
4
+ description: string;
5
+ };
6
+ export type ApplyCodeModReturnType = {
7
+ newAst: File;
8
+ changesMade: Change[];
9
+ };
10
+ export declare const applyCodemod: ({ file, codeMod, }: {
11
+ file: File;
12
+ codeMod: RecastCodemod;
13
+ }) => ApplyCodeModReturnType;