@codingame/monaco-vscode-api 1.79.0-next.0 → 1.79.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -5
- package/dist/activity.d.ts +8 -108
- package/dist/api.js +3 -3
- package/dist/colorRegistry.d.ts +2 -2
- package/dist/contextkey.d.ts +2 -2
- package/dist/default-extension.js +23 -0
- package/dist/editor.d.ts +4 -320
- package/dist/editorBrowser.d.ts +327 -10
- package/dist/event.d.ts +1 -1
- package/dist/{extension-tools-d0cfdea1.js → extension-tools-0c4c1ad7.js} +345 -210
- package/dist/extensions.d.ts +3 -4
- package/dist/extensions.d2.ts +1 -1
- package/dist/extensions.js +4 -37
- package/dist/extensionsRegistry.d.ts +1 -1
- package/dist/files.d.ts +2 -2
- package/dist/keybinding.d.ts +1 -1
- package/dist/languageFeatures.d.ts +6 -7
- package/dist/log.d.ts +1 -1
- package/dist/monaco-treemending.js +15 -1
- package/dist/monaco.d.ts +31 -32
- package/dist/monaco.js +62 -6
- package/dist/node_modules/rollup-plugin-styles/dist/runtime/inject-css.js +2 -0
- package/dist/override/vs/workbench/contrib/notebook/common/notebookEditorInput.js +4 -0
- package/dist/rollup-extension-directory-plugin.js +1 -2
- package/dist/rollup-vsix-plugin.js +1 -2
- package/dist/service-override/configuration.d.ts +2 -2
- package/dist/service-override/editor.d.ts +13 -0
- package/dist/service-override/{modelEditor.js → editor.js} +6 -62
- package/dist/service-override/files.d.ts +5 -5
- package/dist/service-override/files.js +14 -2
- package/dist/service-override/keybindings.js +3 -79
- package/dist/service-override/layout.js +6 -2
- package/dist/service-override/model.d.ts +7 -0
- package/dist/service-override/model.js +10 -0
- package/dist/service-override/quickaccess.d.ts +7 -0
- package/dist/service-override/quickaccess.js +80 -0
- package/dist/service-override/snippets.js +5 -1
- package/dist/service-override/textmate.js +7 -2
- package/dist/service-override/theme.d.ts +1 -1
- package/dist/service-override/tools/editor.js +73 -0
- package/dist/service-override/views.d.ts +63 -201
- package/dist/service-override/views.js +102 -8
- package/dist/services.d.ts +116 -19
- package/dist/vscode/vs/base/browser/ui/centered/centeredViewLayout.js +178 -0
- package/dist/vscode/vs/base/browser/ui/grid/grid.js +452 -0
- package/dist/vscode/vs/base/browser/ui/grid/gridview.css.js +4 -0
- package/dist/vscode/vs/base/browser/ui/grid/gridview.js +999 -0
- package/dist/vscode/vs/base/browser/ui/iconLabel/simpleIconLabel.js +14 -0
- package/dist/vscode/vs/base/browser/ui/menu/menubar.css.js +4 -0
- package/dist/vscode/vs/base/browser/ui/menu/menubar.js +1 -1
- package/dist/vscode/vs/base/browser/ui/splitview/paneview.css.js +4 -0
- package/dist/vscode/vs/base/browser/ui/splitview/paneview.js +1 -1
- package/dist/vscode/vs/platform/extensionManagement/common/extensionManagement.js +2 -1
- package/dist/vscode/vs/platform/extensionManagement/common/extensionStorage.js +1 -1
- package/dist/vscode/vs/platform/product/common/product.js +48 -0
- package/dist/vscode/vs/platform/quickinput/browser/quickPickPin.js +94 -0
- package/dist/vscode/vs/platform/terminal/common/terminal.js +3 -0
- package/dist/vscode/vs/platform/update/common/update.js +11 -1
- package/dist/vscode/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +1 -1
- package/dist/vscode/vs/workbench/api/browser/mainThreadStatusBar.js +68 -0
- package/dist/vscode/vs/workbench/api/common/extHostStatusBar.js +234 -0
- package/dist/vscode/vs/workbench/api/common/extHostTypes.js +6 -1
- package/dist/vscode/vs/workbench/browser/actions/layoutActions.js +20 -17
- package/dist/vscode/vs/workbench/browser/actions/quickAccessActions.js +204 -0
- package/dist/vscode/vs/workbench/browser/dnd.js +27 -2
- package/dist/vscode/vs/workbench/browser/editor.js +94 -0
- package/dist/vscode/vs/workbench/browser/labels.js +23 -2
- package/dist/vscode/vs/workbench/browser/media/part.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/part.js +1 -1
- package/dist/vscode/vs/workbench/browser/parts/activitybar/activitybarActions.js +1 -1
- package/dist/vscode/vs/workbench/browser/parts/activitybar/activitybarPart.js +3 -3
- package/dist/vscode/vs/workbench/browser/parts/activitybar/media/activityaction.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/activitybar/media/activitybarpart.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarActions.js +14 -26
- package/dist/vscode/vs/workbench/browser/parts/compositePart.js +1 -1
- package/dist/vscode/vs/workbench/browser/parts/editor/binaryDiffEditor.js +43 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/binaryEditor.js +55 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/breadcrumbs.js +330 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/breadcrumbsControl.js +690 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/breadcrumbsModel.js +142 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/breadcrumbsPicker.js +414 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/editor.contribution.js +800 -6
- package/dist/vscode/vs/workbench/browser/parts/editor/editor.js +56 -1
- package/dist/vscode/vs/workbench/browser/parts/editor/editorActions.js +1484 -107
- package/dist/vscode/vs/workbench/browser/parts/editor/editorCommands.js +1121 -4
- package/dist/vscode/vs/workbench/browser/parts/editor/editorDropTarget.js +499 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/editorGroupView.js +1219 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/editorGroupWatermark.js +137 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/editorPane.js +242 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/editorPanes.js +297 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/editorPart.js +841 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/editorPlaceholder.js +235 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/editorQuickAccess.js +1 -1
- package/dist/vscode/vs/workbench/browser/parts/editor/editorStatus.js +1152 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/editorWithViewState.js +139 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/editorsObserver.js +339 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/media/breadcrumbscontrol.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/media/editordroptarget.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/media/editorgroupview.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/media/editorplaceholder.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/media/editorquickaccess.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/media/editorstatus.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/media/notabstitlecontrol.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/media/sidebysideeditor.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/media/tabstitlecontrol.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/media/titlecontrol.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/noTabsTitleControl.js +243 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/sideBySideEditor.js +387 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/tabFocus.js +77 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/tabsTitleControl.js +1504 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/textCodeEditor.js +79 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/textDiffEditor.js +304 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/textEditor.js +220 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/textResourceEditor.js +149 -0
- package/dist/vscode/vs/workbench/browser/parts/editor/titleControl.js +284 -0
- package/dist/vscode/vs/workbench/browser/parts/media/compositepart.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/notifications/media/notificationsActions.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/notifications/media/notificationsCenter.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/notifications/media/notificationsList.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/notifications/media/notificationsToasts.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/notifications/notificationsActions.js +8 -8
- package/dist/vscode/vs/workbench/browser/parts/notifications/notificationsCenter.js +2 -2
- package/dist/vscode/vs/workbench/browser/parts/notifications/notificationsList.js +1 -1
- package/dist/vscode/vs/workbench/browser/parts/notifications/notificationsToasts.js +1 -1
- package/dist/vscode/vs/workbench/browser/parts/panel/media/basepanelpart.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/panel/media/panelpart.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/panel/panelActions.js +19 -5
- package/dist/vscode/vs/workbench/browser/parts/panel/panelPart.js +2 -2
- package/dist/vscode/vs/workbench/browser/parts/sidebar/media/sidebarpart.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/sidebar/sidebarPart.js +1 -1
- package/dist/vscode/vs/workbench/browser/parts/statusbar/media/statusbarpart.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/statusbar/statusbarActions.js +109 -0
- package/dist/vscode/vs/workbench/browser/parts/statusbar/statusbarItem.js +224 -0
- package/dist/vscode/vs/workbench/browser/parts/statusbar/statusbarModel.js +251 -0
- package/dist/vscode/vs/workbench/browser/parts/statusbar/statusbarPart.js +439 -0
- package/dist/vscode/vs/workbench/browser/parts/titlebar/media/menubarControl.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/titlebar/menubarControl.js +76 -3
- package/dist/vscode/vs/workbench/browser/parts/views/media/paneviewlet.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/views/media/views.css.js +4 -0
- package/dist/vscode/vs/workbench/browser/parts/views/treeView.js +1 -1
- package/dist/vscode/vs/workbench/browser/parts/views/viewPane.js +5 -5
- package/dist/vscode/vs/workbench/browser/parts/views/viewPaneContainer.js +1 -1
- package/dist/vscode/vs/workbench/browser/parts/views/viewsService.js +4 -4
- package/dist/vscode/vs/workbench/browser/quickaccess.js +6 -2
- package/dist/vscode/vs/workbench/browser/workbench.contribution.js +1108 -0
- package/dist/vscode/vs/workbench/common/contextkeys.js +34 -1
- package/dist/vscode/vs/workbench/common/editor/editorGroupModel.js +674 -0
- package/dist/vscode/vs/workbench/common/editor.js +57 -1
- package/dist/vscode/vs/workbench/common/theme.js +35 -35
- package/dist/vscode/vs/workbench/common/views.js +1 -1
- package/dist/vscode/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +4 -4
- package/dist/vscode/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +1 -1
- package/dist/vscode/vs/workbench/contrib/callHierarchy/browser/media/callHierarchy.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoLineQuickAccess.js +77 -0
- package/dist/vscode/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.js +217 -0
- package/dist/vscode/vs/workbench/contrib/codeEditor/browser/workbenchReferenceSearch.js +24 -0
- package/dist/vscode/vs/workbench/contrib/debug/browser/breakpointWidget.js +1 -1
- package/dist/vscode/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +1 -1
- package/dist/vscode/vs/workbench/contrib/debug/browser/debug.contribution.js +30 -4
- package/dist/vscode/vs/workbench/contrib/debug/browser/debugCommands.js +13 -1
- package/dist/vscode/vs/workbench/contrib/debug/browser/debugIcons.js +77 -127
- package/dist/vscode/vs/workbench/contrib/debug/browser/debugToolBar.js +1 -1
- package/dist/vscode/vs/workbench/contrib/debug/browser/debugViewlet.js +1 -1
- package/dist/vscode/vs/workbench/contrib/debug/browser/disassemblyView.js +620 -0
- package/dist/vscode/vs/workbench/contrib/debug/browser/exceptionWidget.js +1 -1
- package/dist/vscode/vs/workbench/contrib/debug/browser/media/breakpointWidget.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/debug/browser/media/callStackEditorContribution.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/debug/browser/media/debug.contribution.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/debug/browser/media/debugHover.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/debug/browser/media/debugToolBar.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/debug/browser/media/debugViewlet.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/debug/browser/media/exceptionWidget.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/debug/browser/media/repl.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/debug/browser/repl.js +1 -1
- package/dist/vscode/vs/workbench/contrib/debug/common/debug.js +2 -1
- package/dist/vscode/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +71 -0
- package/dist/vscode/vs/workbench/contrib/files/browser/editors/textFileEditor.js +225 -0
- package/dist/vscode/vs/workbench/contrib/files/browser/explorerViewlet.js +5 -4
- package/dist/vscode/vs/workbench/contrib/files/browser/fileActions.contribution.js +270 -4
- package/dist/vscode/vs/workbench/contrib/files/browser/fileActions.js +4 -1
- package/dist/vscode/vs/workbench/contrib/files/browser/fileCommands.js +24 -6
- package/dist/vscode/vs/workbench/contrib/files/browser/fileConstants.js +8 -1
- package/dist/vscode/vs/workbench/contrib/files/browser/files.contribution.js +10 -0
- package/dist/vscode/vs/workbench/contrib/files/browser/media/explorerviewlet.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/files/browser/views/media/openeditors.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/files/browser/views/openEditorsView.js +608 -0
- package/dist/vscode/vs/workbench/contrib/files/common/files.js +2 -1
- package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionInputPart.js +1 -1
- package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionWidget.js +1 -1
- package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/media/interactiveSession.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionContextKeys.js +9 -1
- package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionModel.js +305 -0
- package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionService.js +6 -1
- package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionServiceImpl.js +379 -0
- package/dist/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser.js +2 -2
- package/dist/vscode/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +33 -1
- package/dist/vscode/vs/workbench/contrib/quickaccess/browser/quickAccess.contribution.js +130 -0
- package/dist/vscode/vs/workbench/contrib/quickaccess/browser/viewQuickAccess.js +225 -0
- package/dist/vscode/vs/workbench/contrib/remote/browser/media/tunnelView.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/remote/browser/remoteIcons.js +21 -17
- package/dist/vscode/vs/workbench/contrib/remote/browser/tunnelView.js +1 -1
- package/dist/vscode/vs/workbench/contrib/search/browser/anythingQuickAccess.js +757 -0
- package/dist/vscode/vs/workbench/contrib/search/browser/media/anythingQuickAccess.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/search/browser/search.contribution.js +428 -0
- package/dist/vscode/vs/workbench/contrib/search/browser/symbolsQuickAccess.js +219 -0
- package/dist/vscode/vs/workbench/contrib/search/common/cacheState.js +85 -0
- package/dist/vscode/vs/workbench/contrib/search/common/constants.js +2 -0
- package/dist/vscode/vs/workbench/contrib/search/common/search.js +119 -1
- package/dist/vscode/vs/workbench/contrib/tasks/browser/taskQuickPick.js +385 -0
- package/dist/vscode/vs/workbench/contrib/tasks/browser/tasksQuickAccess.js +108 -0
- package/dist/vscode/vs/workbench/contrib/tasks/common/tasks.js +351 -0
- package/dist/vscode/vs/workbench/contrib/terminal/browser/terminal.js +4 -0
- package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalIcon.js +44 -0
- package/dist/vscode/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +147 -1
- package/dist/vscode/vs/workbench/contrib/typeHierarchy/browser/media/typeHierarchy.css.js +4 -0
- package/dist/vscode/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +1 -1
- package/dist/vscode/vs/workbench/services/editor/browser/editorDropService.js +3 -0
- package/dist/vscode/vs/workbench/services/editor/browser/editorResolverService.js +619 -0
- package/dist/vscode/vs/workbench/services/editor/browser/editorService.js +720 -0
- package/dist/vscode/vs/workbench/services/editor/common/editorGroupFinder.js +116 -0
- package/dist/vscode/vs/workbench/services/editor/common/editorGroupsService.js +6 -1
- package/dist/vscode/vs/workbench/services/editor/common/editorResolverService.js +34 -1
- package/dist/vscode/vs/workbench/services/history/browser/historyService.js +1451 -0
- package/dist/vscode/vs/workbench/services/hover/browser/hoverService.js +1 -1
- package/dist/vscode/vs/workbench/services/hover/browser/media/hover.css.js +4 -0
- package/dist/vscode/vs/workbench/services/languageDetection/common/languageDetectionWorkerService.js +2 -1
- package/dist/vscode/vs/workbench/services/outline/browser/outline.js +3 -0
- package/dist/vscode/vs/workbench/services/progress/browser/progressIndicator.js +72 -1
- package/dist/vscode/vs/workbench/services/quickinput/browser/quickInputService.js +67 -0
- package/dist/vscode/vs/workbench/services/search/common/search.js +2 -112
- package/dist/vscode/vs/workbench/services/semanticSimilarity/common/semanticSimilarityService.js +54 -1
- package/dist/vscode/vs/workbench/services/statusbar/browser/statusbar.js +15 -0
- package/dist/vscode/vs/workbench/services/textMate/browser/worker/textMate.worker.js +90 -0
- package/dist/vscode/vs/workbench/services/textMate/browser/worker/textMateWorkerModel.js +133 -0
- package/dist/vscode/vs/workbench/services/untitled/common/untitledTextEditorService.js +110 -3
- package/dist/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.js +1 -1
- package/dist/vscode-services/extHost.js +12 -5
- package/dist/vscode-services/missing-services.js +117 -3
- package/dist/vscode-services/window.js +21 -2
- package/dist/vscode-services/workspace.js +2 -1
- package/dist/workbenchThemeService.d.ts +1 -1
- package/dist/workers/textMate.worker.d.ts +2 -0
- package/dist/workers/textMate.worker.js +3 -0
- package/dist/workspace.d.ts +1 -1
- package/monaco-editor-treemending.patch +784 -784
- package/package.json +42 -22
- package/dist/assets/activityaction.css +0 -224
- package/dist/assets/activitybarpart.css +0 -65
- package/dist/assets/basepanelpart.css +0 -221
- package/dist/assets/breakpointWidget.css +0 -31
- package/dist/assets/callHierarchy.css +0 -62
- package/dist/assets/callStackEditorContribution.css +0 -12
- package/dist/assets/compositepart.css +0 -17
- package/dist/assets/debug.contribution.css +0 -138
- package/dist/assets/debugHover.css +0 -80
- package/dist/assets/debugToolBar.css +0 -49
- package/dist/assets/debugViewlet.css +0 -337
- package/dist/assets/editorquickaccess.css +0 -8
- package/dist/assets/exceptionWidget.css +0 -52
- package/dist/assets/explorerviewlet.css +0 -129
- package/dist/assets/hover.css +0 -127
- package/dist/assets/interactiveSession.css +0 -340
- package/dist/assets/menubar.css +0 -111
- package/dist/assets/menubarControl.css +0 -61
- package/dist/assets/notificationsActions.css +0 -14
- package/dist/assets/notificationsCenter.css +0 -69
- package/dist/assets/notificationsList.css +0 -152
- package/dist/assets/notificationsToasts.css +0 -63
- package/dist/assets/panelpart.css +0 -75
- package/dist/assets/paneview.css +0 -148
- package/dist/assets/paneviewlet.css +0 -79
- package/dist/assets/part.css +0 -109
- package/dist/assets/repl.css +0 -145
- package/dist/assets/sidebarpart.css +0 -61
- package/dist/assets/tunnelView.css +0 -107
- package/dist/assets/typeHierarchy.css +0 -62
- package/dist/assets/views.css +0 -297
- package/dist/override/vs/workbench/browser/parts/editor/textEditor.js +0 -2
- package/dist/override/vs/workbench/contrib/files/browser/views/openEditorsView.js +0 -2
- package/dist/service-override/modelEditor.d.ts +0 -14
- package/dist/vscode/vs/workbench/contrib/notebook/common/notebookEditorInput.js +0 -249
- package/dist/vscode/vs/workbench/contrib/notebook/common/notebookService.js +0 -10
- package/dist/vscode/vs/workbench/services/search/common/searchHelpers.js +0 -72
- package/dist/vscode/vs/workbench/services/search/common/searchService.js +0 -355
|
@@ -7,7 +7,6 @@ import process$1, { env as env$1 } from 'node:process';
|
|
|
7
7
|
import { performance } from 'node:perf_hooks';
|
|
8
8
|
import { createHash as createHash$1 } from 'node:crypto';
|
|
9
9
|
import { mkdir, writeFile, readFile, lstat, realpath, readdir } from 'node:fs/promises';
|
|
10
|
-
import { EventEmitter } from 'node:events';
|
|
11
10
|
import * as tty from 'tty';
|
|
12
11
|
import { addExtension } from '@rollup/pluginutils';
|
|
13
12
|
|
|
@@ -1401,6 +1400,9 @@ function visit(text, visitor, options = ParseOptions.DEFAULT) {
|
|
|
1401
1400
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
1402
1401
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
1403
1402
|
*--------------------------------------------------------------------------------------------*/
|
|
1403
|
+
/**
|
|
1404
|
+
* Extracted from json.ts to keep json nls free.
|
|
1405
|
+
*/
|
|
1404
1406
|
function getParseErrorMessage(errorCode) {
|
|
1405
1407
|
switch (errorCode) {
|
|
1406
1408
|
case 1 /* ParseErrorCode.InvalidSymbol */: return localize('error.invalidSymbol', 'Invalid symbol');
|
|
@@ -1419,15 +1421,15 @@ function getParseErrorMessage(errorCode) {
|
|
|
1419
1421
|
|
|
1420
1422
|
/*
|
|
1421
1423
|
@license
|
|
1422
|
-
Rollup.js v3.
|
|
1423
|
-
|
|
1424
|
+
Rollup.js v3.23.0
|
|
1425
|
+
Mon, 22 May 2023 05:28:38 GMT - commit 5ea36552c447d2903050d2622f2dcae3dd2df975
|
|
1424
1426
|
|
|
1425
1427
|
https://github.com/rollup/rollup
|
|
1426
1428
|
|
|
1427
1429
|
Released under the MIT License.
|
|
1428
1430
|
*/
|
|
1429
1431
|
|
|
1430
|
-
var version$1 = "3.
|
|
1432
|
+
var version$1 = "3.23.0";
|
|
1431
1433
|
|
|
1432
1434
|
const comma = ','.charCodeAt(0);
|
|
1433
1435
|
const semicolon = ';'.charCodeAt(0);
|
|
@@ -4763,6 +4765,7 @@ function getMemberReturnExpressionWhenCalled(members, memberName) {
|
|
|
4763
4765
|
|
|
4764
4766
|
// AST walker module for Mozilla Parser API compatible trees
|
|
4765
4767
|
|
|
4768
|
+
|
|
4766
4769
|
function skipThrough(node, st, c) { c(node, st); }
|
|
4767
4770
|
function ignore(_node, _st, _c) {}
|
|
4768
4771
|
|
|
@@ -6648,6 +6651,13 @@ const IMPURE = {
|
|
|
6648
6651
|
getLiteralValue: getTruthyLiteralValue,
|
|
6649
6652
|
hasEffectsWhenCalled: returnTrue
|
|
6650
6653
|
};
|
|
6654
|
+
const PURE_WITH_ARRAY = {
|
|
6655
|
+
deoptimizeArgumentsOnCall: doNothing,
|
|
6656
|
+
getLiteralValue: getTruthyLiteralValue,
|
|
6657
|
+
hasEffectsWhenCalled({ args }) {
|
|
6658
|
+
return args.length > 1 && !(args[1] instanceof ArrayExpression);
|
|
6659
|
+
}
|
|
6660
|
+
};
|
|
6651
6661
|
// We use shortened variables to reduce file size here
|
|
6652
6662
|
/* OBJECT */
|
|
6653
6663
|
const O = {
|
|
@@ -6685,6 +6695,11 @@ const PC = {
|
|
|
6685
6695
|
[ValueProperties]: PURE,
|
|
6686
6696
|
prototype: O
|
|
6687
6697
|
};
|
|
6698
|
+
const PC_WITH_ARRAY = {
|
|
6699
|
+
__proto__: null,
|
|
6700
|
+
[ValueProperties]: PURE_WITH_ARRAY,
|
|
6701
|
+
prototype: O
|
|
6702
|
+
};
|
|
6688
6703
|
const ARRAY_TYPE = {
|
|
6689
6704
|
__proto__: null,
|
|
6690
6705
|
[ValueProperties]: PURE,
|
|
@@ -6755,7 +6770,7 @@ const knownGlobals = {
|
|
|
6755
6770
|
isNaN: PF,
|
|
6756
6771
|
isPrototypeOf: O,
|
|
6757
6772
|
JSON: O,
|
|
6758
|
-
Map:
|
|
6773
|
+
Map: PC_WITH_ARRAY,
|
|
6759
6774
|
Math: {
|
|
6760
6775
|
__proto__: null,
|
|
6761
6776
|
[ValueProperties]: IMPURE,
|
|
@@ -6851,7 +6866,7 @@ const knownGlobals = {
|
|
|
6851
6866
|
ReferenceError: PC,
|
|
6852
6867
|
Reflect: O,
|
|
6853
6868
|
RegExp: PC,
|
|
6854
|
-
Set:
|
|
6869
|
+
Set: PC_WITH_ARRAY,
|
|
6855
6870
|
SharedArrayBuffer: C,
|
|
6856
6871
|
String: {
|
|
6857
6872
|
__proto__: null,
|
|
@@ -6891,8 +6906,8 @@ const knownGlobals = {
|
|
|
6891
6906
|
unescape: PF,
|
|
6892
6907
|
URIError: PC,
|
|
6893
6908
|
valueOf: O,
|
|
6894
|
-
WeakMap:
|
|
6895
|
-
WeakSet:
|
|
6909
|
+
WeakMap: PC_WITH_ARRAY,
|
|
6910
|
+
WeakSet: PC_WITH_ARRAY,
|
|
6896
6911
|
// Additional globals shared by Node and Browser that are not strictly part of the language
|
|
6897
6912
|
clearInterval: C,
|
|
6898
6913
|
clearTimeout: C,
|
|
@@ -11361,6 +11376,14 @@ class Program extends NodeBase {
|
|
|
11361
11376
|
code.remove(0, start);
|
|
11362
11377
|
}
|
|
11363
11378
|
if (this.body.length > 0) {
|
|
11379
|
+
// Keep all consecutive lines that start with a comment
|
|
11380
|
+
while (code.original[start] === '/' && /[*/]/.test(code.original[start + 1])) {
|
|
11381
|
+
const firstLineBreak = findFirstLineBreakOutsideComment(code.original.slice(start, this.body[0].start));
|
|
11382
|
+
if (firstLineBreak[0] === -1) {
|
|
11383
|
+
break;
|
|
11384
|
+
}
|
|
11385
|
+
start += firstLineBreak[1];
|
|
11386
|
+
}
|
|
11364
11387
|
renderStatementList(this.body, code, start, this.end, options);
|
|
11365
11388
|
}
|
|
11366
11389
|
else {
|
|
@@ -11604,6 +11627,7 @@ SwitchCase.prototype.needsBoundaries = true;
|
|
|
11604
11627
|
|
|
11605
11628
|
class SwitchStatement extends NodeBase {
|
|
11606
11629
|
createScope(parentScope) {
|
|
11630
|
+
this.parentScope = parentScope;
|
|
11607
11631
|
this.scope = new BlockScope(parentScope);
|
|
11608
11632
|
}
|
|
11609
11633
|
hasEffects(context) {
|
|
@@ -11672,6 +11696,10 @@ class SwitchStatement extends NodeBase {
|
|
|
11672
11696
|
}
|
|
11673
11697
|
this.defaultCase = null;
|
|
11674
11698
|
}
|
|
11699
|
+
parseNode(esTreeNode) {
|
|
11700
|
+
this.discriminant = new (this.context.getNodeConstructor(esTreeNode.discriminant.type))(esTreeNode.discriminant, this, this.parentScope);
|
|
11701
|
+
super.parseNode(esTreeNode);
|
|
11702
|
+
}
|
|
11675
11703
|
render(code, options) {
|
|
11676
11704
|
this.discriminant.render(code, options);
|
|
11677
11705
|
if (this.cases.length > 0) {
|
|
@@ -12478,14 +12506,14 @@ class NamespaceVariable extends Variable {
|
|
|
12478
12506
|
const memberVariables = this.getMemberVariables();
|
|
12479
12507
|
const members = Object.entries(memberVariables)
|
|
12480
12508
|
.filter(([_, variable]) => variable.included)
|
|
12481
|
-
.map(([name,
|
|
12482
|
-
if (this.referencedEarly ||
|
|
12509
|
+
.map(([name, variable]) => {
|
|
12510
|
+
if (this.referencedEarly || variable.isReassigned || variable === this) {
|
|
12483
12511
|
return [
|
|
12484
12512
|
null,
|
|
12485
|
-
`get ${name}${_}()${_}{${_}return ${
|
|
12513
|
+
`get ${name}${_}()${_}{${_}return ${variable.getName(getPropertyAccess)}${s}${_}}`
|
|
12486
12514
|
];
|
|
12487
12515
|
}
|
|
12488
|
-
return [name,
|
|
12516
|
+
return [name, variable.getName(getPropertyAccess)];
|
|
12489
12517
|
});
|
|
12490
12518
|
members.unshift([null, `__proto__:${_}null`]);
|
|
12491
12519
|
let output = getObject(members, { lineBreakIndent: { base: '', t } });
|
|
@@ -12936,6 +12964,16 @@ class Module {
|
|
|
12936
12964
|
this.addLocationToLogProps(properties, pos);
|
|
12937
12965
|
return error(properties);
|
|
12938
12966
|
}
|
|
12967
|
+
// sum up the length of all ast nodes that are included
|
|
12968
|
+
estimateSize() {
|
|
12969
|
+
let size = 0;
|
|
12970
|
+
for (const node of this.ast.body) {
|
|
12971
|
+
if (node.included) {
|
|
12972
|
+
size += node.end - node.start;
|
|
12973
|
+
}
|
|
12974
|
+
}
|
|
12975
|
+
return size;
|
|
12976
|
+
}
|
|
12939
12977
|
getAllExportNames() {
|
|
12940
12978
|
if (this.allExportNames) {
|
|
12941
12979
|
return this.allExportNames;
|
|
@@ -13205,7 +13243,11 @@ class Module {
|
|
|
13205
13243
|
isIncluded() {
|
|
13206
13244
|
// Modules where this.ast is missing have been loaded via this.load and are
|
|
13207
13245
|
// not yet fully processed, hence they cannot be included.
|
|
13208
|
-
return (this.ast &&
|
|
13246
|
+
return (this.ast &&
|
|
13247
|
+
(this.ast.included ||
|
|
13248
|
+
this.namespace.included ||
|
|
13249
|
+
this.importedFromNotTreeshaken ||
|
|
13250
|
+
this.exportShimVariable.included));
|
|
13209
13251
|
}
|
|
13210
13252
|
linkImports() {
|
|
13211
13253
|
this.addModulesToImportDescriptions(this.importDescriptions);
|
|
@@ -14969,13 +15011,18 @@ class Chunk {
|
|
|
14969
15011
|
}
|
|
14970
15012
|
canModuleBeFacade(module, exposedVariables) {
|
|
14971
15013
|
const moduleExportNamesByVariable = module.getExportNamesByVariable();
|
|
15014
|
+
// All exports of this chunk need to be exposed by the candidate module
|
|
14972
15015
|
for (const exposedVariable of this.exports) {
|
|
14973
15016
|
if (!moduleExportNamesByVariable.has(exposedVariable)) {
|
|
14974
15017
|
return false;
|
|
14975
15018
|
}
|
|
14976
15019
|
}
|
|
15020
|
+
// Additionally, we need to expose namespaces of dynamic entries that are not the facade module and exports from other entry modules
|
|
14977
15021
|
for (const exposedVariable of exposedVariables) {
|
|
14978
|
-
if (!(
|
|
15022
|
+
if (!(exposedVariable.module === module ||
|
|
15023
|
+
moduleExportNamesByVariable.has(exposedVariable) ||
|
|
15024
|
+
(exposedVariable instanceof SyntheticNamedExportVariable &&
|
|
15025
|
+
moduleExportNamesByVariable.has(exposedVariable.getBaseVariable())))) {
|
|
14979
15026
|
return false;
|
|
14980
15027
|
}
|
|
14981
15028
|
}
|
|
@@ -15030,7 +15077,10 @@ class Chunk {
|
|
|
15030
15077
|
for (const module of entryModules) {
|
|
15031
15078
|
if (module.preserveSignature) {
|
|
15032
15079
|
for (const exportedVariable of module.getExportNamesByVariable().keys()) {
|
|
15033
|
-
|
|
15080
|
+
// We need to expose all entry exports from this chunk
|
|
15081
|
+
if (this.chunkByModule.get(exportedVariable.module) === this) {
|
|
15082
|
+
exposedVariables.add(exportedVariable);
|
|
15083
|
+
}
|
|
15034
15084
|
}
|
|
15035
15085
|
}
|
|
15036
15086
|
}
|
|
@@ -16007,11 +16057,14 @@ function getChunkAssignments(entries, manualChunkAliasByEntry, minChunkSize) {
|
|
|
16007
16057
|
const { chunkDefinitions, modulesInManualChunks } = getChunkDefinitionsFromManualChunks(manualChunkAliasByEntry);
|
|
16008
16058
|
const { allEntries, dependentEntriesByModule, dynamicallyDependentEntriesByDynamicEntry, dynamicImportsByEntry } = analyzeModuleGraph(entries);
|
|
16009
16059
|
// Each chunk is identified by its position in this array
|
|
16010
|
-
const initialChunks =
|
|
16060
|
+
const initialChunks = getChunksFromDependentEntries(getModulesWithDependentEntries(dependentEntriesByModule, modulesInManualChunks));
|
|
16011
16061
|
// This mutates initialChunks but also clears
|
|
16012
16062
|
// dynamicallyDependentEntriesByDynamicEntry as side effect
|
|
16013
16063
|
removeUnnecessaryDependentEntries(initialChunks, dynamicallyDependentEntriesByDynamicEntry, dynamicImportsByEntry, allEntries);
|
|
16014
|
-
chunkDefinitions.push(...
|
|
16064
|
+
chunkDefinitions.push(...getOptimizedChunks(getChunksFromDependentEntries(initialChunks), allEntries.length, minChunkSize).map(({ modules }) => ({
|
|
16065
|
+
alias: null,
|
|
16066
|
+
modules
|
|
16067
|
+
})));
|
|
16015
16068
|
return chunkDefinitions;
|
|
16016
16069
|
}
|
|
16017
16070
|
function getChunkDefinitionsFromManualChunks(manualChunkAliasByEntry) {
|
|
@@ -16117,7 +16170,7 @@ function getDynamicallyDependentEntriesByDynamicEntry(dependentEntriesByModule,
|
|
|
16117
16170
|
}
|
|
16118
16171
|
return dynamicallyDependentEntriesByDynamicEntry;
|
|
16119
16172
|
}
|
|
16120
|
-
function
|
|
16173
|
+
function getChunksFromDependentEntries(modulesWithDependentEntries) {
|
|
16121
16174
|
var _a;
|
|
16122
16175
|
const chunkModules = Object.create(null);
|
|
16123
16176
|
for (const { dependentEntries, modules } of modulesWithDependentEntries) {
|
|
@@ -16130,7 +16183,7 @@ function getChunksBySignature(modulesWithDependentEntries) {
|
|
|
16130
16183
|
modules: []
|
|
16131
16184
|
})).modules.push(...modules);
|
|
16132
16185
|
}
|
|
16133
|
-
return chunkModules;
|
|
16186
|
+
return Object.values(chunkModules);
|
|
16134
16187
|
}
|
|
16135
16188
|
function* getModulesWithDependentEntries(dependentEntriesByModule, modulesInManualChunks) {
|
|
16136
16189
|
for (const [module, dependentEntries] of dependentEntriesByModule) {
|
|
@@ -16188,17 +16241,6 @@ function removeUnnecessaryDependentEntries(chunks, dynamicallyDependentEntriesBy
|
|
|
16188
16241
|
chunkMask <<= 1n;
|
|
16189
16242
|
}
|
|
16190
16243
|
}
|
|
16191
|
-
function createChunks(allEntries, chunkModulesBySignature, minChunkSize) {
|
|
16192
|
-
return minChunkSize === 0
|
|
16193
|
-
? Object.values(chunkModulesBySignature).map(({ modules }) => ({
|
|
16194
|
-
alias: null,
|
|
16195
|
-
modules
|
|
16196
|
-
}))
|
|
16197
|
-
: getOptimizedChunks(chunkModulesBySignature, allEntries.length, minChunkSize).map(({ modules }) => ({
|
|
16198
|
-
alias: null,
|
|
16199
|
-
modules
|
|
16200
|
-
}));
|
|
16201
|
-
}
|
|
16202
16244
|
/**
|
|
16203
16245
|
* This function tries to get rid of small chunks by merging them with other
|
|
16204
16246
|
* chunks.
|
|
@@ -16241,239 +16283,270 @@ function createChunks(allEntries, chunkModulesBySignature, minChunkSize) {
|
|
|
16241
16283
|
* dependency side effects are AF.
|
|
16242
16284
|
* For entry chunks, dependency and correlated side effects are the same.
|
|
16243
16285
|
*
|
|
16244
|
-
* With these concepts, merging chunks is allowed if the correlated side
|
|
16245
|
-
* of each entry do not change. Thus, we are allowed to merge two
|
|
16286
|
+
* With these concepts, merging chunks is allowed if the correlated side
|
|
16287
|
+
* effects of each entry do not change. Thus, we are allowed to merge two
|
|
16288
|
+
* chunks if
|
|
16289
|
+
*
|
|
16246
16290
|
* a) the dependency side effects of each chunk are a subset of the correlated
|
|
16247
16291
|
* side effects of the other chunk, so no additional side effects are
|
|
16248
16292
|
* triggered for any entry, or
|
|
16249
|
-
* b) The
|
|
16250
|
-
* dependency side effects of A are a subset of
|
|
16251
|
-
* of B. Because in that scenario, whenever A is
|
|
16252
|
-
* But there are cases when B is loaded where A
|
|
16253
|
-
* the chunks, all dependency side effects of
|
|
16254
|
-
* correlated side effects of B, and as the latter is
|
|
16255
|
-
* the former need to be a subset of the latter.
|
|
16293
|
+
* b) The dependent entry points of chunk A are a subset of the dependent entry
|
|
16294
|
+
* points of chunk B while the dependency side effects of A are a subset of
|
|
16295
|
+
* the correlated side effects of B. Because in that scenario, whenever A is
|
|
16296
|
+
* loaded, B is loaded as well. But there are cases when B is loaded where A
|
|
16297
|
+
* is not loaded. So if we merge the chunks, all dependency side effects of
|
|
16298
|
+
* A will be added to the correlated side effects of B, and as the latter is
|
|
16299
|
+
* not allowed to change, the former need to be a subset of the latter.
|
|
16256
16300
|
*
|
|
16257
|
-
* Another consideration when merging small chunks into other chunks is to
|
|
16301
|
+
* Another consideration when merging small chunks into other chunks is to
|
|
16302
|
+
* avoid
|
|
16258
16303
|
* that too much additional code is loaded. This is achieved when the dependent
|
|
16259
|
-
* entries of the small chunk are a subset of the dependent entries of the
|
|
16304
|
+
* entries of the small chunk are a subset of the dependent entries of the
|
|
16305
|
+
* other
|
|
16260
16306
|
* chunk. Because then when the small chunk is loaded, the other chunk was
|
|
16261
16307
|
* loaded/in memory anyway, so at most when the other chunk is loaded, the
|
|
16262
16308
|
* additional size of the small chunk is loaded unnecessarily.
|
|
16263
16309
|
*
|
|
16264
16310
|
* So the algorithm performs merges in two passes:
|
|
16311
|
+
*
|
|
16265
16312
|
* 1. First we try to merge small chunks A only into other chunks B if the
|
|
16266
16313
|
* dependent entries of A are a subset of the dependent entries of B and the
|
|
16267
16314
|
* dependency side effects of A are a subset of the correlated side effects
|
|
16268
16315
|
* of B.
|
|
16269
16316
|
* 2. Only then for all remaining small chunks, we look for arbitrary merges
|
|
16270
|
-
* following the
|
|
16271
|
-
*
|
|
16317
|
+
* following the rule (a), starting with the smallest chunks to look for
|
|
16318
|
+
* possible merge targets.
|
|
16272
16319
|
*/
|
|
16273
|
-
|
|
16274
|
-
// technique similar to what we do for side effects to compare the size of the
|
|
16275
|
-
// static dependencies that are not part of the correlated dependencies
|
|
16276
|
-
function getOptimizedChunks(chunkModulesBySignature, numberOfEntries, minChunkSize) {
|
|
16320
|
+
function getOptimizedChunks(initialChunks, numberOfEntries, minChunkSize) {
|
|
16277
16321
|
timeStart('optimize chunks', 3);
|
|
16278
|
-
const chunkPartition = getPartitionedChunks(
|
|
16279
|
-
|
|
16280
|
-
|
|
16281
|
-
|
|
16282
|
-
}
|
|
16283
|
-
|
|
16322
|
+
const chunkPartition = getPartitionedChunks(initialChunks, numberOfEntries, minChunkSize);
|
|
16323
|
+
if (!chunkPartition) {
|
|
16324
|
+
timeEnd('optimize chunks', 3);
|
|
16325
|
+
return initialChunks; // the actual modules
|
|
16326
|
+
}
|
|
16327
|
+
minChunkSize > 1 &&
|
|
16328
|
+
console.log('Before eliminating small chunks, there were\n', initialChunks.length, 'chunks, of which\n', chunkPartition.small.size, 'were below minChunkSize.');
|
|
16329
|
+
mergeChunks(chunkPartition, minChunkSize);
|
|
16330
|
+
minChunkSize > 1 &&
|
|
16331
|
+
console.log('After merging chunks,\n', chunkPartition.small.size + chunkPartition.big.size, 'chunks remain, of which\n', chunkPartition.small.size, 'are below minChunkSize.');
|
|
16284
16332
|
timeEnd('optimize chunks', 3);
|
|
16285
16333
|
return [...chunkPartition.small, ...chunkPartition.big];
|
|
16286
16334
|
}
|
|
16287
|
-
function getPartitionedChunks(
|
|
16335
|
+
function getPartitionedChunks(initialChunks, numberOfEntries, minChunkSize) {
|
|
16288
16336
|
const smallChunks = [];
|
|
16289
16337
|
const bigChunks = [];
|
|
16290
16338
|
const chunkByModule = new Map();
|
|
16291
|
-
const
|
|
16292
|
-
|
|
16293
|
-
|
|
16294
|
-
}
|
|
16295
|
-
for (const [signature, { dependentEntries, modules }] of Object.entries(chunkModulesBySignature)) {
|
|
16339
|
+
const sizeByAtom = [];
|
|
16340
|
+
let sideEffectAtoms = 0n;
|
|
16341
|
+
let containedAtoms = 1n;
|
|
16342
|
+
for (const { dependentEntries, modules } of initialChunks) {
|
|
16296
16343
|
const chunkDescription = {
|
|
16297
|
-
|
|
16344
|
+
containedAtoms,
|
|
16345
|
+
correlatedAtoms: 0n,
|
|
16298
16346
|
dependencies: new Set(),
|
|
16299
16347
|
dependentChunks: new Set(),
|
|
16300
16348
|
dependentEntries,
|
|
16301
16349
|
modules,
|
|
16302
16350
|
pure: true,
|
|
16303
|
-
sideEffects: new Set(),
|
|
16304
16351
|
size: 0
|
|
16305
16352
|
};
|
|
16306
16353
|
let size = 0;
|
|
16307
16354
|
let pure = true;
|
|
16308
16355
|
for (const module of modules) {
|
|
16309
16356
|
chunkByModule.set(module, chunkDescription);
|
|
16310
|
-
pure && (pure = !module.hasEffects());
|
|
16311
16357
|
// Unfortunately, we cannot take tree-shaking into account here because
|
|
16312
|
-
// rendering did not happen yet
|
|
16313
|
-
|
|
16358
|
+
// rendering did not happen yet, but we can detect empty modules
|
|
16359
|
+
if (module.isIncluded()) {
|
|
16360
|
+
pure && (pure = !module.hasEffects());
|
|
16361
|
+
// we use a trivial size for the default minChunkSize to improve
|
|
16362
|
+
// performance
|
|
16363
|
+
size += minChunkSize > 1 ? module.estimateSize() : 1;
|
|
16364
|
+
}
|
|
16314
16365
|
}
|
|
16315
16366
|
chunkDescription.pure = pure;
|
|
16316
16367
|
chunkDescription.size = size;
|
|
16368
|
+
sizeByAtom.push(size);
|
|
16317
16369
|
if (!pure) {
|
|
16318
|
-
|
|
16319
|
-
sideEffectsByEntry[entryIndex].add(signature);
|
|
16320
|
-
}
|
|
16321
|
-
// In the beginning, each chunk is only its own side effect. After
|
|
16322
|
-
// merging, additional side effects can accumulate.
|
|
16323
|
-
chunkDescription.sideEffects.add(signature);
|
|
16370
|
+
sideEffectAtoms |= containedAtoms;
|
|
16324
16371
|
}
|
|
16325
16372
|
(size < minChunkSize ? smallChunks : bigChunks).push(chunkDescription);
|
|
16373
|
+
containedAtoms <<= 1n;
|
|
16326
16374
|
}
|
|
16327
|
-
|
|
16375
|
+
// If there are no small chunks, we will not optimize
|
|
16376
|
+
if (smallChunks.length === 0) {
|
|
16377
|
+
return null;
|
|
16378
|
+
}
|
|
16379
|
+
sideEffectAtoms |= addChunkDependenciesAndAtomsAndGetSideEffectAtoms([bigChunks, smallChunks], chunkByModule, numberOfEntries, containedAtoms);
|
|
16328
16380
|
return {
|
|
16329
16381
|
big: new Set(bigChunks),
|
|
16382
|
+
sideEffectAtoms,
|
|
16383
|
+
sizeByAtom,
|
|
16330
16384
|
small: new Set(smallChunks)
|
|
16331
16385
|
};
|
|
16332
16386
|
}
|
|
16333
|
-
function
|
|
16387
|
+
function mergeChunks(chunkPartition, minChunkSize) {
|
|
16388
|
+
const { small } = chunkPartition;
|
|
16389
|
+
for (const mergedChunk of small) {
|
|
16390
|
+
const bestTargetChunk = findBestMergeTarget(mergedChunk, chunkPartition,
|
|
16391
|
+
// In the default case, we do not accept size increases
|
|
16392
|
+
minChunkSize <= 1 ? 1 : Infinity);
|
|
16393
|
+
if (bestTargetChunk) {
|
|
16394
|
+
const { containedAtoms, correlatedAtoms, modules, pure, size } = mergedChunk;
|
|
16395
|
+
small.delete(mergedChunk);
|
|
16396
|
+
getChunksInPartition(bestTargetChunk, minChunkSize, chunkPartition).delete(bestTargetChunk);
|
|
16397
|
+
bestTargetChunk.modules.push(...modules);
|
|
16398
|
+
bestTargetChunk.size += size;
|
|
16399
|
+
bestTargetChunk.pure && (bestTargetChunk.pure = pure);
|
|
16400
|
+
const { dependencies, dependentChunks, dependentEntries } = bestTargetChunk;
|
|
16401
|
+
bestTargetChunk.correlatedAtoms &= correlatedAtoms;
|
|
16402
|
+
bestTargetChunk.containedAtoms |= containedAtoms;
|
|
16403
|
+
for (const entry of mergedChunk.dependentEntries) {
|
|
16404
|
+
dependentEntries.add(entry);
|
|
16405
|
+
}
|
|
16406
|
+
for (const dependency of mergedChunk.dependencies) {
|
|
16407
|
+
dependencies.add(dependency);
|
|
16408
|
+
dependency.dependentChunks.delete(mergedChunk);
|
|
16409
|
+
dependency.dependentChunks.add(bestTargetChunk);
|
|
16410
|
+
}
|
|
16411
|
+
for (const dependentChunk of mergedChunk.dependentChunks) {
|
|
16412
|
+
dependentChunks.add(dependentChunk);
|
|
16413
|
+
dependentChunk.dependencies.delete(mergedChunk);
|
|
16414
|
+
dependentChunk.dependencies.add(bestTargetChunk);
|
|
16415
|
+
}
|
|
16416
|
+
dependencies.delete(bestTargetChunk);
|
|
16417
|
+
dependentChunks.delete(bestTargetChunk);
|
|
16418
|
+
getChunksInPartition(bestTargetChunk, minChunkSize, chunkPartition).add(bestTargetChunk);
|
|
16419
|
+
}
|
|
16420
|
+
}
|
|
16421
|
+
}
|
|
16422
|
+
function addChunkDependenciesAndAtomsAndGetSideEffectAtoms(chunkLists, chunkByModule, numberOfEntries, nextAtomSignature) {
|
|
16423
|
+
const signatureByExternalModule = new Map();
|
|
16424
|
+
let sideEffectAtoms = 0n;
|
|
16425
|
+
const atomsByEntry = [];
|
|
16426
|
+
for (let index = 0; index < numberOfEntries; index++) {
|
|
16427
|
+
atomsByEntry.push(0n);
|
|
16428
|
+
}
|
|
16334
16429
|
for (const chunks of chunkLists) {
|
|
16335
16430
|
chunks.sort(compareChunkSize);
|
|
16336
16431
|
for (const chunk of chunks) {
|
|
16337
|
-
const { dependencies,
|
|
16432
|
+
const { dependencies, dependentEntries, modules } = chunk;
|
|
16338
16433
|
for (const module of modules) {
|
|
16339
16434
|
for (const dependency of module.getDependenciesToBeIncluded()) {
|
|
16340
|
-
|
|
16341
|
-
|
|
16342
|
-
|
|
16343
|
-
|
|
16344
|
-
|
|
16345
|
-
|
|
16346
|
-
|
|
16347
|
-
|
|
16348
|
-
|
|
16349
|
-
for (const entryIndex of dependentEntries) {
|
|
16350
|
-
const entryEffects = sideEffectsByEntry[entryIndex];
|
|
16351
|
-
if (firstEntry) {
|
|
16352
|
-
for (const sideEffect of entryEffects) {
|
|
16353
|
-
correlatedSideEffects.add(sideEffect);
|
|
16435
|
+
if (dependency instanceof ExternalModule) {
|
|
16436
|
+
if (dependency.info.moduleSideEffects) {
|
|
16437
|
+
chunk.containedAtoms |= getOrCreate(signatureByExternalModule, dependency, () => {
|
|
16438
|
+
const signature = nextAtomSignature;
|
|
16439
|
+
nextAtomSignature <<= 1n;
|
|
16440
|
+
sideEffectAtoms |= signature;
|
|
16441
|
+
return signature;
|
|
16442
|
+
});
|
|
16443
|
+
}
|
|
16354
16444
|
}
|
|
16355
|
-
|
|
16356
|
-
|
|
16357
|
-
|
|
16358
|
-
|
|
16359
|
-
|
|
16360
|
-
correlatedSideEffects.delete(sideEffect);
|
|
16445
|
+
else {
|
|
16446
|
+
const dependencyChunk = chunkByModule.get(dependency);
|
|
16447
|
+
if (dependencyChunk && dependencyChunk !== chunk) {
|
|
16448
|
+
dependencies.add(dependencyChunk);
|
|
16449
|
+
dependencyChunk.dependentChunks.add(chunk);
|
|
16361
16450
|
}
|
|
16362
16451
|
}
|
|
16363
16452
|
}
|
|
16364
16453
|
}
|
|
16454
|
+
const { containedAtoms } = chunk;
|
|
16455
|
+
for (const entryIndex of dependentEntries) {
|
|
16456
|
+
atomsByEntry[entryIndex] |= containedAtoms;
|
|
16457
|
+
}
|
|
16365
16458
|
}
|
|
16366
16459
|
}
|
|
16367
|
-
|
|
16368
|
-
|
|
16369
|
-
|
|
16370
|
-
|
|
16371
|
-
|
|
16372
|
-
|
|
16373
|
-
|
|
16374
|
-
let closestChunk = null;
|
|
16375
|
-
let closestChunkDistance = Infinity;
|
|
16376
|
-
const { modules, pure, size } = mergedChunk;
|
|
16377
|
-
for (const targetChunk of concatLazy([chunkPartition.small, chunkPartition.big])) {
|
|
16378
|
-
if (mergedChunk === targetChunk)
|
|
16379
|
-
continue;
|
|
16380
|
-
// If both chunks are small, we also allow for unrelated merges during
|
|
16381
|
-
// the first pass
|
|
16382
|
-
const onlySubsetMerge = !allowArbitraryMerges && targetChunk.size >= minChunkSize;
|
|
16383
|
-
const distance = getChunkEntryDistance(mergedChunk, targetChunk, onlySubsetMerge);
|
|
16384
|
-
if (distance < closestChunkDistance &&
|
|
16385
|
-
isValidMerge(mergedChunk, targetChunk, onlySubsetMerge)) {
|
|
16386
|
-
closestChunk = targetChunk;
|
|
16387
|
-
closestChunkDistance = distance;
|
|
16388
|
-
}
|
|
16389
|
-
}
|
|
16390
|
-
if (closestChunk) {
|
|
16391
|
-
chunkPartition.small.delete(mergedChunk);
|
|
16392
|
-
getChunksInPartition(closestChunk, minChunkSize, chunkPartition).delete(closestChunk);
|
|
16393
|
-
closestChunk.modules.push(...modules);
|
|
16394
|
-
closestChunk.size += size;
|
|
16395
|
-
closestChunk.pure && (closestChunk.pure = pure);
|
|
16396
|
-
const { correlatedSideEffects, dependencies, dependentChunks, dependentEntries, sideEffects } = closestChunk;
|
|
16397
|
-
for (const sideEffect of correlatedSideEffects) {
|
|
16398
|
-
if (!mergedChunk.correlatedSideEffects.has(sideEffect)) {
|
|
16399
|
-
correlatedSideEffects.delete(sideEffect);
|
|
16400
|
-
}
|
|
16401
|
-
}
|
|
16402
|
-
for (const entry of mergedChunk.dependentEntries) {
|
|
16403
|
-
dependentEntries.add(entry);
|
|
16404
|
-
}
|
|
16405
|
-
for (const sideEffect of mergedChunk.sideEffects) {
|
|
16406
|
-
sideEffects.add(sideEffect);
|
|
16407
|
-
}
|
|
16408
|
-
for (const dependency of mergedChunk.dependencies) {
|
|
16409
|
-
dependencies.add(dependency);
|
|
16410
|
-
dependency.dependentChunks.delete(mergedChunk);
|
|
16411
|
-
dependency.dependentChunks.add(closestChunk);
|
|
16412
|
-
}
|
|
16413
|
-
for (const dependentChunk of mergedChunk.dependentChunks) {
|
|
16414
|
-
dependentChunks.add(dependentChunk);
|
|
16415
|
-
dependentChunk.dependencies.delete(mergedChunk);
|
|
16416
|
-
dependentChunk.dependencies.add(closestChunk);
|
|
16417
|
-
}
|
|
16418
|
-
dependencies.delete(closestChunk);
|
|
16419
|
-
dependentChunks.delete(closestChunk);
|
|
16420
|
-
getChunksInPartition(closestChunk, minChunkSize, chunkPartition).add(closestChunk);
|
|
16460
|
+
for (const chunks of chunkLists) {
|
|
16461
|
+
for (const chunk of chunks) {
|
|
16462
|
+
const { dependentEntries } = chunk;
|
|
16463
|
+
// Correlated atoms are the intersection of all entry atoms
|
|
16464
|
+
chunk.correlatedAtoms = -1n;
|
|
16465
|
+
for (const entryIndex of dependentEntries) {
|
|
16466
|
+
chunk.correlatedAtoms &= atomsByEntry[entryIndex];
|
|
16421
16467
|
}
|
|
16422
16468
|
}
|
|
16423
16469
|
}
|
|
16470
|
+
return sideEffectAtoms;
|
|
16424
16471
|
}
|
|
16425
|
-
|
|
16426
|
-
|
|
16427
|
-
|
|
16428
|
-
|
|
16429
|
-
|
|
16430
|
-
|
|
16431
|
-
|
|
16432
|
-
|
|
16433
|
-
|
|
16434
|
-
|
|
16435
|
-
|
|
16436
|
-
|
|
16437
|
-
}
|
|
16472
|
+
function findBestMergeTarget(mergedChunk, { big, sideEffectAtoms, sizeByAtom, small }, smallestAdditionalSize) {
|
|
16473
|
+
let bestTargetChunk = null;
|
|
16474
|
+
// In the default case, we do not accept size increases
|
|
16475
|
+
for (const targetChunk of concatLazy([small, big])) {
|
|
16476
|
+
if (mergedChunk === targetChunk)
|
|
16477
|
+
continue;
|
|
16478
|
+
const additionalSizeAfterMerge = getAdditionalSizeAfterMerge(mergedChunk, targetChunk, smallestAdditionalSize, sideEffectAtoms, sizeByAtom);
|
|
16479
|
+
if (additionalSizeAfterMerge < smallestAdditionalSize) {
|
|
16480
|
+
bestTargetChunk = targetChunk;
|
|
16481
|
+
if (additionalSizeAfterMerge === 0)
|
|
16482
|
+
break;
|
|
16483
|
+
smallestAdditionalSize = additionalSizeAfterMerge;
|
|
16438
16484
|
}
|
|
16439
16485
|
}
|
|
16486
|
+
return bestTargetChunk;
|
|
16487
|
+
}
|
|
16488
|
+
function getChunksInPartition(chunk, minChunkSize, chunkPartition) {
|
|
16489
|
+
return chunk.size < minChunkSize ? chunkPartition.small : chunkPartition.big;
|
|
16490
|
+
}
|
|
16491
|
+
function compareChunkSize({ size: sizeA }, { size: sizeB }) {
|
|
16492
|
+
return sizeA - sizeB;
|
|
16493
|
+
}
|
|
16494
|
+
/**
|
|
16495
|
+
* Determine the additional unused code size that would be added by merging the
|
|
16496
|
+
* two chunks. This is not an exact measurement but rather an upper bound. If
|
|
16497
|
+
* the merge produces cycles or adds non-correlated side effects, `Infinity`
|
|
16498
|
+
* is returned.
|
|
16499
|
+
* Merging will not produce cycles if none of the direct non-merged
|
|
16500
|
+
* dependencies of a chunk have the other chunk as a transitive dependency.
|
|
16501
|
+
*/
|
|
16502
|
+
function getAdditionalSizeAfterMerge(mergedChunk, targetChunk,
|
|
16503
|
+
// The maximum additional unused code size allowed to be added by the merge,
|
|
16504
|
+
// taking dependencies into account, needs to be below this number
|
|
16505
|
+
currentAdditionalSize, sideEffectAtoms, sizeByAtom) {
|
|
16506
|
+
const firstSize = getAdditionalSizeIfNoTransitiveDependencyOrNonCorrelatedSideEffect(mergedChunk, targetChunk, currentAdditionalSize, sideEffectAtoms, sizeByAtom);
|
|
16507
|
+
return firstSize < currentAdditionalSize
|
|
16508
|
+
? firstSize +
|
|
16509
|
+
getAdditionalSizeIfNoTransitiveDependencyOrNonCorrelatedSideEffect(targetChunk, mergedChunk, currentAdditionalSize - firstSize, sideEffectAtoms, sizeByAtom)
|
|
16510
|
+
: Infinity;
|
|
16511
|
+
}
|
|
16512
|
+
function getAdditionalSizeIfNoTransitiveDependencyOrNonCorrelatedSideEffect(dependentChunk, dependencyChunk, currentAdditionalSize, sideEffectAtoms, sizeByAtom) {
|
|
16513
|
+
const { correlatedAtoms } = dependencyChunk;
|
|
16514
|
+
let dependencyAtoms = dependentChunk.containedAtoms;
|
|
16515
|
+
const dependentContainedSideEffects = dependencyAtoms & sideEffectAtoms;
|
|
16516
|
+
if ((correlatedAtoms & dependentContainedSideEffects) !== dependentContainedSideEffects) {
|
|
16517
|
+
return Infinity;
|
|
16518
|
+
}
|
|
16440
16519
|
const chunksToCheck = new Set(dependentChunk.dependencies);
|
|
16441
|
-
for (const { dependencies,
|
|
16520
|
+
for (const { dependencies, containedAtoms } of chunksToCheck) {
|
|
16521
|
+
dependencyAtoms |= containedAtoms;
|
|
16522
|
+
const containedSideEffects = containedAtoms & sideEffectAtoms;
|
|
16523
|
+
if ((correlatedAtoms & containedSideEffects) !== containedSideEffects) {
|
|
16524
|
+
return Infinity;
|
|
16525
|
+
}
|
|
16442
16526
|
for (const dependency of dependencies) {
|
|
16443
16527
|
if (dependency === dependencyChunk) {
|
|
16444
|
-
return
|
|
16528
|
+
return Infinity;
|
|
16445
16529
|
}
|
|
16446
16530
|
chunksToCheck.add(dependency);
|
|
16447
16531
|
}
|
|
16448
|
-
if (checkSideEffects) {
|
|
16449
|
-
for (const sideEffect of sideEffects) {
|
|
16450
|
-
if (!correlatedSideEffects.has(sideEffect)) {
|
|
16451
|
-
return true;
|
|
16452
|
-
}
|
|
16453
|
-
}
|
|
16454
|
-
}
|
|
16455
16532
|
}
|
|
16456
|
-
return
|
|
16533
|
+
return getAtomsSizeIfBelowLimit(dependencyAtoms & ~correlatedAtoms, currentAdditionalSize, sizeByAtom);
|
|
16457
16534
|
}
|
|
16458
|
-
function
|
|
16459
|
-
|
|
16460
|
-
|
|
16461
|
-
|
|
16462
|
-
|
|
16463
|
-
for (
|
|
16464
|
-
if (
|
|
16465
|
-
|
|
16535
|
+
function getAtomsSizeIfBelowLimit(atoms, currentAdditionalSize, sizeByAtom) {
|
|
16536
|
+
let size = 0;
|
|
16537
|
+
let atomIndex = 0;
|
|
16538
|
+
let atomSignature = 1n;
|
|
16539
|
+
const { length } = sizeByAtom;
|
|
16540
|
+
for (; atomIndex < length; atomIndex++) {
|
|
16541
|
+
if ((atoms & atomSignature) === atomSignature) {
|
|
16542
|
+
size += sizeByAtom[atomIndex];
|
|
16466
16543
|
}
|
|
16467
|
-
|
|
16468
|
-
|
|
16469
|
-
|
|
16470
|
-
if (enforceSubest) {
|
|
16471
|
-
return Infinity;
|
|
16472
|
-
}
|
|
16473
|
-
distance++;
|
|
16544
|
+
atomSignature <<= 1n;
|
|
16545
|
+
if (size >= currentAdditionalSize) {
|
|
16546
|
+
return Infinity;
|
|
16474
16547
|
}
|
|
16475
16548
|
}
|
|
16476
|
-
return
|
|
16549
|
+
return size;
|
|
16477
16550
|
}
|
|
16478
16551
|
|
|
16479
16552
|
// ported from https://github.com/substack/node-commondir
|
|
@@ -23546,10 +23619,10 @@ function reserveFileNameInBundle(fileName, { bundle }, warn) {
|
|
|
23546
23619
|
bundle[fileName] = FILE_PLACEHOLDER;
|
|
23547
23620
|
}
|
|
23548
23621
|
}
|
|
23622
|
+
const emittedFileTypes = new Set(['chunk', 'asset', 'prebuilt-chunk']);
|
|
23549
23623
|
function hasValidType(emittedFile) {
|
|
23550
23624
|
return Boolean(emittedFile &&
|
|
23551
|
-
(emittedFile.type
|
|
23552
|
-
emittedFile.type === 'chunk'));
|
|
23625
|
+
emittedFileTypes.has(emittedFile.type));
|
|
23553
23626
|
}
|
|
23554
23627
|
function hasValidName(emittedFile) {
|
|
23555
23628
|
const validatedName = emittedFile.fileName || emittedFile.name;
|
|
@@ -23587,10 +23660,13 @@ class FileEmitter {
|
|
|
23587
23660
|
this.outputFileEmitters = [];
|
|
23588
23661
|
this.emitFile = (emittedFile) => {
|
|
23589
23662
|
if (!hasValidType(emittedFile)) {
|
|
23590
|
-
return error(errorFailedValidation(`Emitted files must be of type "asset" or "chunk", received "${emittedFile && emittedFile.type}".`));
|
|
23663
|
+
return error(errorFailedValidation(`Emitted files must be of type "asset", "chunk" or "prebuilt-chunk", received "${emittedFile && emittedFile.type}".`));
|
|
23664
|
+
}
|
|
23665
|
+
if (emittedFile.type === 'prebuilt-chunk') {
|
|
23666
|
+
return this.emitPrebuiltChunk(emittedFile);
|
|
23591
23667
|
}
|
|
23592
23668
|
if (!hasValidName(emittedFile)) {
|
|
23593
|
-
return error(errorFailedValidation(`The "fileName" or "name" properties of emitted
|
|
23669
|
+
return error(errorFailedValidation(`The "fileName" or "name" properties of emitted chunks and assets must be strings that are neither absolute nor relative paths, received "${emittedFile.fileName || emittedFile.name}".`));
|
|
23594
23670
|
}
|
|
23595
23671
|
if (emittedFile.type === 'chunk') {
|
|
23596
23672
|
return this.emitChunk(emittedFile);
|
|
@@ -23610,6 +23686,9 @@ class FileEmitter {
|
|
|
23610
23686
|
if (emittedFile.type === 'chunk') {
|
|
23611
23687
|
return getChunkFileName(emittedFile, this.facadeChunkByModule);
|
|
23612
23688
|
}
|
|
23689
|
+
if (emittedFile.type === 'prebuilt-chunk') {
|
|
23690
|
+
return emittedFile.fileName;
|
|
23691
|
+
}
|
|
23613
23692
|
return getAssetFileName(emittedFile, fileReferenceId);
|
|
23614
23693
|
};
|
|
23615
23694
|
this.setAssetSource = (referenceId, requestedSource) => {
|
|
@@ -23658,6 +23737,9 @@ class FileEmitter {
|
|
|
23658
23737
|
getOrCreate(consumedAssetsByHash, sourceHash, () => []).push(consumedFile);
|
|
23659
23738
|
}
|
|
23660
23739
|
}
|
|
23740
|
+
else if (consumedFile.type === 'prebuilt-chunk') {
|
|
23741
|
+
this.output.bundle[consumedFile.fileName] = this.createPrebuiltChunk(consumedFile);
|
|
23742
|
+
}
|
|
23661
23743
|
}
|
|
23662
23744
|
for (const [sourceHash, consumedFiles] of consumedAssetsByHash) {
|
|
23663
23745
|
this.finalizeAssetsWithSameSource(consumedFiles, sourceHash, output);
|
|
@@ -23684,6 +23766,27 @@ class FileEmitter {
|
|
|
23684
23766
|
}
|
|
23685
23767
|
return referenceId;
|
|
23686
23768
|
}
|
|
23769
|
+
createPrebuiltChunk(prebuiltChunk) {
|
|
23770
|
+
return {
|
|
23771
|
+
code: prebuiltChunk.code,
|
|
23772
|
+
dynamicImports: [],
|
|
23773
|
+
exports: prebuiltChunk.exports || [],
|
|
23774
|
+
facadeModuleId: null,
|
|
23775
|
+
fileName: prebuiltChunk.fileName,
|
|
23776
|
+
implicitlyLoadedBefore: [],
|
|
23777
|
+
importedBindings: {},
|
|
23778
|
+
imports: [],
|
|
23779
|
+
isDynamicEntry: false,
|
|
23780
|
+
isEntry: false,
|
|
23781
|
+
isImplicitEntry: false,
|
|
23782
|
+
map: prebuiltChunk.map || null,
|
|
23783
|
+
moduleIds: [],
|
|
23784
|
+
modules: {},
|
|
23785
|
+
name: prebuiltChunk.fileName,
|
|
23786
|
+
referencedFiles: [],
|
|
23787
|
+
type: 'chunk'
|
|
23788
|
+
};
|
|
23789
|
+
}
|
|
23687
23790
|
emitAsset(emittedAsset) {
|
|
23688
23791
|
const source = emittedAsset.source === undefined
|
|
23689
23792
|
? undefined
|
|
@@ -23739,6 +23842,29 @@ class FileEmitter {
|
|
|
23739
23842
|
});
|
|
23740
23843
|
return this.assignReferenceId(consumedChunk, emittedChunk.id);
|
|
23741
23844
|
}
|
|
23845
|
+
emitPrebuiltChunk(emitPrebuiltChunk) {
|
|
23846
|
+
if (typeof emitPrebuiltChunk.code !== 'string') {
|
|
23847
|
+
return error(errorFailedValidation(`Emitted prebuilt chunks need to have a valid string code, received "${emitPrebuiltChunk.code}".`));
|
|
23848
|
+
}
|
|
23849
|
+
if (typeof emitPrebuiltChunk.fileName !== 'string' ||
|
|
23850
|
+
isPathFragment(emitPrebuiltChunk.fileName)) {
|
|
23851
|
+
return error(errorFailedValidation(`The "fileName" property of emitted prebuilt chunks must be strings that are neither absolute nor relative paths, received "${emitPrebuiltChunk.fileName}".`));
|
|
23852
|
+
}
|
|
23853
|
+
const consumedPrebuiltChunk = {
|
|
23854
|
+
code: emitPrebuiltChunk.code,
|
|
23855
|
+
exports: emitPrebuiltChunk.exports,
|
|
23856
|
+
fileName: emitPrebuiltChunk.fileName,
|
|
23857
|
+
map: emitPrebuiltChunk.map,
|
|
23858
|
+
referenceId: '',
|
|
23859
|
+
type: 'prebuilt-chunk'
|
|
23860
|
+
};
|
|
23861
|
+
const referenceId = this.assignReferenceId(consumedPrebuiltChunk, consumedPrebuiltChunk.fileName);
|
|
23862
|
+
if (this.output) {
|
|
23863
|
+
this.output.bundle[consumedPrebuiltChunk.fileName] =
|
|
23864
|
+
this.createPrebuiltChunk(consumedPrebuiltChunk);
|
|
23865
|
+
}
|
|
23866
|
+
return referenceId;
|
|
23867
|
+
}
|
|
23742
23868
|
finalizeAdditionalAsset(consumedFile, source, { bundle, fileNamesBySource, outputOptions }) {
|
|
23743
23869
|
let { fileName, needsCodeReference, referenceId } = consumedFile;
|
|
23744
23870
|
// Deduplicate assets if an explicit fileName is not provided
|
|
@@ -24376,25 +24502,34 @@ function formatAction([pluginName, hookName, parameters]) {
|
|
|
24376
24502
|
}
|
|
24377
24503
|
return action;
|
|
24378
24504
|
}
|
|
24379
|
-
|
|
24380
|
-
|
|
24381
|
-
const beforeExitEvent = 'beforeExit';
|
|
24382
|
-
const beforeExitEmitter = new EventEmitter();
|
|
24383
|
-
beforeExitEmitter.setMaxListeners(0);
|
|
24384
|
-
process$1.on(beforeExitEvent, () => beforeExitEmitter.emit(beforeExitEvent));
|
|
24505
|
+
let handleBeforeExit = null;
|
|
24506
|
+
const rejectByPluginDriver = new Map();
|
|
24385
24507
|
async function catchUnfinishedHookActions(pluginDriver, callback) {
|
|
24386
|
-
let handleEmptyEventLoop;
|
|
24387
24508
|
const emptyEventLoopPromise = new Promise((_, reject) => {
|
|
24388
|
-
|
|
24389
|
-
|
|
24390
|
-
|
|
24391
|
-
|
|
24392
|
-
|
|
24393
|
-
|
|
24509
|
+
rejectByPluginDriver.set(pluginDriver, reject);
|
|
24510
|
+
if (!handleBeforeExit) {
|
|
24511
|
+
// We only ever create a single event listener to avoid max listener and
|
|
24512
|
+
// other issues
|
|
24513
|
+
handleBeforeExit = () => {
|
|
24514
|
+
for (const [pluginDriver, reject] of rejectByPluginDriver) {
|
|
24515
|
+
const unfulfilledActions = pluginDriver.getUnfulfilledHookActions();
|
|
24516
|
+
reject(new Error(`Unexpected early exit. This happens when Promises returned by plugins cannot resolve. Unfinished hook action(s) on exit:\n` +
|
|
24517
|
+
[...unfulfilledActions].map(formatAction).join('\n')));
|
|
24518
|
+
}
|
|
24519
|
+
};
|
|
24520
|
+
process$1.once('beforeExit', handleBeforeExit);
|
|
24521
|
+
}
|
|
24394
24522
|
});
|
|
24395
|
-
|
|
24396
|
-
|
|
24397
|
-
|
|
24523
|
+
try {
|
|
24524
|
+
return await Promise.race([callback(), emptyEventLoopPromise]);
|
|
24525
|
+
}
|
|
24526
|
+
finally {
|
|
24527
|
+
rejectByPluginDriver.delete(pluginDriver);
|
|
24528
|
+
if (rejectByPluginDriver.size === 0) {
|
|
24529
|
+
process$1.off('beforeExit', handleBeforeExit);
|
|
24530
|
+
handleBeforeExit = null;
|
|
24531
|
+
}
|
|
24532
|
+
}
|
|
24398
24533
|
}
|
|
24399
24534
|
|
|
24400
24535
|
const leftCurlyBrace = "{".charCodeAt(0);
|
|
@@ -24493,7 +24628,7 @@ function importAssertions(Parser) {
|
|
|
24493
24628
|
if (this.type !== tt.string) { this.unexpected(); }
|
|
24494
24629
|
node.source = this.parseExprAtom();
|
|
24495
24630
|
|
|
24496
|
-
if (this.type === this.assertToken) {
|
|
24631
|
+
if (this.type === this.assertToken || this.type === tt._with) {
|
|
24497
24632
|
this.next();
|
|
24498
24633
|
const assertions = this.parseImportAssertions();
|
|
24499
24634
|
if (assertions) {
|
|
@@ -24537,7 +24672,7 @@ function importAssertions(Parser) {
|
|
|
24537
24672
|
if (this.type !== tt.string) { this.unexpected(); }
|
|
24538
24673
|
node.source = this.parseExprAtom();
|
|
24539
24674
|
|
|
24540
|
-
if (this.type === this.assertToken) {
|
|
24675
|
+
if (this.type === this.assertToken || this.type === tt._with) {
|
|
24541
24676
|
this.next();
|
|
24542
24677
|
const assertions = this.parseImportAssertions();
|
|
24543
24678
|
if (assertions) {
|
|
@@ -24574,7 +24709,7 @@ function importAssertions(Parser) {
|
|
|
24574
24709
|
this.type === tt.string ? this.parseExprAtom() : this.unexpected();
|
|
24575
24710
|
}
|
|
24576
24711
|
|
|
24577
|
-
if (this.type === this.assertToken) {
|
|
24712
|
+
if (this.type === this.assertToken || this.type == tt._with) {
|
|
24578
24713
|
this.next();
|
|
24579
24714
|
const assertions = this.parseImportAssertions();
|
|
24580
24715
|
if (assertions) {
|
|
@@ -24946,7 +25081,7 @@ async function normalizeOutputOptions(config, inputOptions, unsetInputOptions) {
|
|
|
24946
25081
|
entryFileNames: getEntryFileNames(config, unsetOptions),
|
|
24947
25082
|
esModule: config.esModule ?? 'if-default-prop',
|
|
24948
25083
|
experimentalDeepDynamicChunkOptimization: getExperimentalDeepDynamicChunkOptimization(config, inputOptions),
|
|
24949
|
-
experimentalMinChunkSize: config.experimentalMinChunkSize
|
|
25084
|
+
experimentalMinChunkSize: config.experimentalMinChunkSize ?? 1,
|
|
24950
25085
|
exports: getExports(config, unsetOptions),
|
|
24951
25086
|
extend: config.extend || false,
|
|
24952
25087
|
externalImportAssertions: config.externalImportAssertions ?? true,
|