@tramvai/cli 5.50.0 → 5.53.78
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/__migrations__/d2023-02-01b-tramvai-config-refactoring.js +78 -80
- package/__migrations__/d2025-04-11b-tramvai-config-remove-modern.js +13 -0
- package/bin/spawn.js +69 -3
- package/lib/api/analyze/index.d.ts +0 -1
- package/lib/api/analyze/index.d.ts.map +1 -1
- package/lib/api/analyze/index.js +2 -2
- package/lib/api/analyze/index.js.map +1 -1
- package/lib/api/build/application.d.ts.map +1 -1
- package/lib/api/build/application.js +2 -5
- package/lib/api/build/application.js.map +1 -1
- package/lib/api/build/child-app.d.ts.map +1 -1
- package/lib/api/build/child-app.js +1 -5
- package/lib/api/build/child-app.js.map +1 -1
- package/lib/api/build/index.d.ts +0 -2
- package/lib/api/build/index.d.ts.map +1 -1
- package/lib/api/build/index.js.map +1 -1
- package/lib/api/build/module.d.ts.map +1 -1
- package/lib/api/build/module.js +1 -3
- package/lib/api/build/module.js.map +1 -1
- package/lib/api/index.d.ts.map +1 -1
- package/lib/api/index.js +0 -4
- package/lib/api/index.js.map +1 -1
- package/lib/api/start/index.d.ts +0 -1
- package/lib/api/start/index.d.ts.map +1 -1
- package/lib/api/start/index.js.map +1 -1
- package/lib/api/start/utils/banner.d.ts.map +1 -1
- package/lib/api/start/utils/banner.js +0 -1
- package/lib/api/start/utils/banner.js.map +1 -1
- package/lib/api/start/utils/tips/tips.d.ts.map +1 -1
- package/lib/api/start/utils/tips/tips.js +0 -8
- package/lib/api/start/utils/tips/tips.js.map +1 -1
- package/lib/builder/webpack/devServer/pool/process/pool.d.ts.map +1 -1
- package/lib/builder/webpack/devServer/pool/process/pool.js +0 -2
- package/lib/builder/webpack/devServer/pool/process/pool.js.map +1 -1
- package/lib/builder/webpack/devServer/server.d.ts.map +1 -1
- package/lib/builder/webpack/devServer/server.js +4 -0
- package/lib/builder/webpack/devServer/server.js.map +1 -1
- package/lib/builder/webpack/index.d.ts.map +1 -1
- package/lib/builder/webpack/index.js +3 -5
- package/lib/builder/webpack/index.js.map +1 -1
- package/lib/builder/webpack/providers/build/client.d.ts.map +1 -1
- package/lib/builder/webpack/providers/build/client.js +0 -1
- package/lib/builder/webpack/providers/build/client.js.map +1 -1
- package/lib/builder/webpack/providers/build/clientShared.d.ts.map +1 -1
- package/lib/builder/webpack/providers/build/clientShared.js +4 -6
- package/lib/builder/webpack/providers/build/clientShared.js.map +1 -1
- package/lib/builder/webpack/providers/client.d.ts.map +1 -1
- package/lib/builder/webpack/providers/client.js +0 -13
- package/lib/builder/webpack/providers/client.js.map +1 -1
- package/lib/builder/webpack/providers/shared.d.ts.map +1 -1
- package/lib/builder/webpack/providers/shared.js +2 -8
- package/lib/builder/webpack/providers/shared.js.map +1 -1
- package/lib/builder/webpack/tokens.d.ts +4 -139
- package/lib/builder/webpack/tokens.d.ts.map +1 -1
- package/lib/builder/webpack/tokens.js +1 -4
- package/lib/builder/webpack/tokens.js.map +1 -1
- package/lib/builder/webpack/utils/copyStatsJsonFile.d.ts.map +1 -1
- package/lib/builder/webpack/utils/copyStatsJsonFile.js +0 -11
- package/lib/builder/webpack/utils/copyStatsJsonFile.js.map +1 -1
- package/lib/cli/CLI.d.ts +2 -2
- package/lib/cli/CLI.d.ts.map +1 -1
- package/lib/cli/CLI.js +2 -2
- package/lib/cli/CLI.js.map +1 -1
- package/lib/cli/index.d.ts.map +1 -1
- package/lib/cli/index.js +28 -7
- package/lib/cli/index.js.map +1 -1
- package/lib/cli/runCLI.d.ts +3 -0
- package/lib/cli/runCLI.d.ts.map +1 -1
- package/lib/cli/runCLI.js +18 -6
- package/lib/cli/runCLI.js.map +1 -1
- package/lib/commands/build/command.d.ts +1 -1
- package/lib/commands/build/command.d.ts.map +1 -1
- package/lib/commands/build/command.js +41 -13
- package/lib/commands/build/command.js.map +1 -1
- package/lib/commands/createApp.d.ts.map +1 -1
- package/lib/commands/createApp.js +0 -1
- package/lib/commands/createApp.js.map +1 -1
- package/lib/commands/new/new.d.ts.map +1 -1
- package/lib/commands/new/new.js +28 -3
- package/lib/commands/new/new.js.map +1 -1
- package/lib/commands/start/command.d.ts +1 -1
- package/lib/commands/start/command.d.ts.map +1 -1
- package/lib/commands/start/command.js +39 -7
- package/lib/commands/start/command.js.map +1 -1
- package/lib/commands/start/start.d.ts +1 -1
- package/lib/commands/start/start.d.ts.map +1 -1
- package/lib/commands/start/start.js +2 -1
- package/lib/commands/start/start.js.map +1 -1
- package/lib/commands/static/application.d.ts.map +1 -1
- package/lib/commands/static/application.js +0 -1
- package/lib/commands/static/application.js.map +1 -1
- package/lib/commands/update/command.d.ts +6 -1
- package/lib/commands/update/command.d.ts.map +1 -1
- package/lib/commands/update/command.js +8 -1
- package/lib/commands/update/command.js.map +1 -1
- package/lib/commands/update/dependantLibs.d.ts +2 -1
- package/lib/commands/update/dependantLibs.d.ts.map +1 -1
- package/lib/commands/update/dependantLibs.js +17 -4
- package/lib/commands/update/dependantLibs.js.map +1 -1
- package/lib/commands/update/update.d.ts +2 -1
- package/lib/commands/update/update.d.ts.map +1 -1
- package/lib/commands/update/update.js +6 -6
- package/lib/commands/update/update.js.map +1 -1
- package/lib/commands/update/updatePackageJson.d.ts +1 -1
- package/lib/commands/update/updatePackageJson.d.ts.map +1 -1
- package/lib/commands/update/updatePackageJson.js +10 -14
- package/lib/commands/update/updatePackageJson.js.map +1 -1
- package/lib/config/configManager.d.ts +0 -1
- package/lib/config/configManager.d.ts.map +1 -1
- package/lib/config/configManager.js +2 -17
- package/lib/config/configManager.js.map +1 -1
- package/lib/config/validate.d.ts.map +1 -1
- package/lib/config/validate.js +8 -1
- package/lib/config/validate.js.map +1 -1
- package/lib/di/providers/index.d.ts +0 -1
- package/lib/di/providers/index.d.ts.map +1 -1
- package/lib/di/providers/index.js +0 -1
- package/lib/di/providers/index.js.map +1 -1
- package/lib/di/tokens/config.d.ts +2 -0
- package/lib/di/tokens/config.d.ts.map +1 -1
- package/lib/di/tokens/index.d.ts +0 -1
- package/lib/di/tokens/index.d.ts.map +1 -1
- package/lib/di/tokens/index.js +0 -1
- package/lib/di/tokens/index.js.map +1 -1
- package/lib/library/babel/index.d.ts +0 -44
- package/lib/library/babel/index.d.ts.map +1 -1
- package/lib/library/babel/index.js +6 -13
- package/lib/library/babel/index.js.map +1 -1
- package/lib/library/swc/index.js +1 -1
- package/lib/library/swc/index.js.map +1 -1
- package/lib/library/typescript/index.d.ts +0 -23
- package/lib/library/typescript/index.d.ts.map +1 -1
- package/lib/library/typescript/index.js +1 -2
- package/lib/library/typescript/index.js.map +1 -1
- package/lib/library/webpack/application/client/common.d.ts.map +1 -1
- package/lib/library/webpack/application/client/common.js +40 -6
- package/lib/library/webpack/application/client/common.js.map +1 -1
- package/lib/library/webpack/application/client/dev.js +2 -2
- package/lib/library/webpack/application/client/dev.js.map +1 -1
- package/lib/library/webpack/application/client/prod.d.ts.map +1 -1
- package/lib/library/webpack/application/client/prod.js +1 -2
- package/lib/library/webpack/application/client/prod.js.map +1 -1
- package/lib/library/webpack/application/common.js +1 -1
- package/lib/library/webpack/application/common.js.map +1 -1
- package/lib/library/webpack/application/server/common.js +1 -1
- package/lib/library/webpack/application/server/common.js.map +1 -1
- package/lib/library/webpack/application/server/dev.js +1 -1
- package/lib/library/webpack/application/server/dev.js.map +1 -1
- package/lib/library/webpack/application/server/prod.js +1 -1
- package/lib/library/webpack/application/server/prod.js.map +1 -1
- package/lib/library/webpack/blocks/css.d.ts.map +1 -1
- package/lib/library/webpack/blocks/css.js +15 -11
- package/lib/library/webpack/blocks/css.js.map +1 -1
- package/lib/library/webpack/blocks/optimize.js +2 -2
- package/lib/library/webpack/blocks/optimize.js.map +1 -1
- package/lib/library/webpack/blocks/pwa/client.d.ts.map +1 -1
- package/lib/library/webpack/blocks/pwa/client.js +2 -5
- package/lib/library/webpack/blocks/pwa/client.js.map +1 -1
- package/lib/library/webpack/blocks/pwa/shared.d.ts.map +1 -1
- package/lib/library/webpack/blocks/pwa/shared.js +2 -3
- package/lib/library/webpack/blocks/pwa/shared.js.map +1 -1
- package/lib/library/webpack/blocks/resolve.js +2 -2
- package/lib/library/webpack/blocks/resolve.js.map +1 -1
- package/lib/library/webpack/blocks/serverInline.d.ts.map +1 -1
- package/lib/library/webpack/blocks/serverInline.js +1 -2
- package/lib/library/webpack/blocks/serverInline.js.map +1 -1
- package/lib/library/webpack/blocks/sourcemaps.d.ts +1 -1
- package/lib/library/webpack/blocks/sourcemaps.d.ts.map +1 -1
- package/lib/library/webpack/blocks/sourcemaps.js +4 -2
- package/lib/library/webpack/blocks/sourcemaps.js.map +1 -1
- package/lib/library/webpack/child-app/client/common.d.ts.map +1 -1
- package/lib/library/webpack/child-app/client/common.js +8 -3
- package/lib/library/webpack/child-app/client/common.js.map +1 -1
- package/lib/library/webpack/child-app/client/dev.d.ts.map +1 -1
- package/lib/library/webpack/child-app/client/dev.js +5 -1
- package/lib/library/webpack/child-app/client/dev.js.map +1 -1
- package/lib/library/webpack/child-app/client/prod.d.ts.map +1 -1
- package/lib/library/webpack/child-app/client/prod.js +4 -0
- package/lib/library/webpack/child-app/client/prod.js.map +1 -1
- package/lib/library/webpack/child-app/common.d.ts.map +1 -1
- package/lib/library/webpack/child-app/common.js +1 -5
- package/lib/library/webpack/child-app/common.js.map +1 -1
- package/lib/library/webpack/child-app/server/dev.d.ts.map +1 -1
- package/lib/library/webpack/child-app/server/dev.js +4 -0
- package/lib/library/webpack/child-app/server/dev.js.map +1 -1
- package/lib/library/webpack/child-app/server/prod.d.ts.map +1 -1
- package/lib/library/webpack/child-app/server/prod.js +4 -0
- package/lib/library/webpack/child-app/server/prod.js.map +1 -1
- package/lib/library/webpack/common/client/prod.js +1 -1
- package/lib/library/webpack/common/client/prod.js.map +1 -1
- package/lib/library/webpack/common/main.d.ts.map +1 -1
- package/lib/library/webpack/common/main.js +1 -2
- package/lib/library/webpack/common/main.js.map +1 -1
- package/lib/library/webpack/constants/stats.d.ts.map +1 -1
- package/lib/library/webpack/constants/stats.js +2 -0
- package/lib/library/webpack/constants/stats.js.map +1 -1
- package/lib/library/webpack/loaders/image-loader/getImageMiniatureURL.js +1 -1
- package/lib/library/webpack/loaders/image-loader/getImageMiniatureURL.js.map +1 -1
- package/lib/library/webpack/module/client/common.js +1 -1
- package/lib/library/webpack/module/client/common.js.map +1 -1
- package/lib/library/webpack/module/externals.js +1 -1
- package/lib/library/webpack/module/externals.js.map +1 -1
- package/lib/library/webpack/module/server/common.js +1 -1
- package/lib/library/webpack/module/server/common.js.map +1 -1
- package/lib/library/webpack/plugins/AssetsIntegritiesPlugin.d.ts +8 -0
- package/lib/library/webpack/plugins/AssetsIntegritiesPlugin.d.ts.map +1 -0
- package/lib/library/webpack/plugins/AssetsIntegritiesPlugin.js +29 -0
- package/lib/library/webpack/plugins/AssetsIntegritiesPlugin.js.map +1 -0
- package/lib/library/webpack/plugins/PurifyStatsPlugin.d.ts +15 -0
- package/lib/library/webpack/plugins/PurifyStatsPlugin.d.ts.map +1 -0
- package/lib/library/webpack/plugins/PurifyStatsPlugin.js +47 -0
- package/lib/library/webpack/plugins/PurifyStatsPlugin.js.map +1 -0
- package/lib/library/webpack/plugins/RuntimePathPlugin.d.ts.map +1 -1
- package/lib/library/webpack/plugins/RuntimePathPlugin.js +7 -3
- package/lib/library/webpack/plugins/RuntimePathPlugin.js.map +1 -1
- package/lib/library/webpack/utils/transpiler.d.ts +0 -1
- package/lib/library/webpack/utils/transpiler.d.ts.map +1 -1
- package/lib/library/webpack/utils/transpiler.js +1 -5
- package/lib/library/webpack/utils/transpiler.js.map +1 -1
- package/lib/models/analytics/analytics.d.ts +156 -0
- package/lib/models/analytics/analytics.d.ts.map +1 -0
- package/lib/models/analytics/analytics.js +259 -0
- package/lib/models/analytics/analytics.js.map +1 -0
- package/lib/models/analytics/analytics.worker.d.ts +5 -0
- package/lib/models/analytics/analytics.worker.d.ts.map +1 -0
- package/lib/models/analytics/analytics.worker.js +87 -0
- package/lib/models/analytics/analytics.worker.js.map +1 -0
- package/lib/models/analytics/utils.d.ts +15 -0
- package/lib/models/analytics/utils.d.ts.map +1 -0
- package/lib/models/analytics/utils.js +85 -0
- package/lib/models/analytics/utils.js.map +1 -0
- package/lib/models/command.d.ts.map +1 -1
- package/lib/models/command.js +1 -7
- package/lib/models/command.js.map +1 -1
- package/lib/models/context.d.ts +4 -4
- package/lib/models/context.d.ts.map +1 -1
- package/lib/models/context.js +3 -2
- package/lib/models/context.js.map +1 -1
- package/lib/models/logger.d.ts +1 -0
- package/lib/models/logger.d.ts.map +1 -1
- package/lib/models/logger.js +2 -1
- package/lib/models/logger.js.map +1 -1
- package/lib/models/task.d.ts.map +1 -1
- package/lib/models/task.js +1 -7
- package/lib/models/task.js.map +1 -1
- package/lib/schema/autogeneratedSchema.json +161 -20
- package/lib/schema/topLevelSchema.d.ts +14 -0
- package/lib/schema/topLevelSchema.d.ts.map +1 -1
- package/lib/schema/topLevelSchema.js +14 -0
- package/lib/schema/topLevelSchema.js.map +1 -1
- package/lib/typings/build/Builder.d.ts +2 -6
- package/lib/typings/build/Builder.d.ts.map +1 -1
- package/lib/typings/configEntry/application.d.ts +10 -5
- package/lib/typings/configEntry/application.d.ts.map +1 -1
- package/lib/typings/configEntry/cli.d.ts +13 -0
- package/lib/typings/configEntry/cli.d.ts.map +1 -1
- package/lib/typings/projectType.d.ts +5 -0
- package/lib/typings/projectType.d.ts.map +1 -1
- package/lib/typings/target.d.ts +1 -1
- package/lib/typings/target.d.ts.map +1 -1
- package/lib/utils/commands/dependencies/findTramvaiVersion.d.ts +1 -1
- package/lib/utils/commands/dependencies/findTramvaiVersion.d.ts.map +1 -1
- package/lib/utils/commands/dependencies/findTramvaiVersion.js +4 -11
- package/lib/utils/commands/dependencies/findTramvaiVersion.js.map +1 -1
- package/lib/utils/commands/dependencies/getLatestPackageVersion.d.ts +1 -1
- package/lib/utils/commands/dependencies/getLatestPackageVersion.d.ts.map +1 -1
- package/lib/utils/commands/dependencies/getLatestPackageVersion.js +7 -3
- package/lib/utils/commands/dependencies/getLatestPackageVersion.js.map +1 -1
- package/lib/utils/cpu-profile.d.ts +3 -0
- package/lib/utils/cpu-profile.d.ts.map +1 -1
- package/lib/utils/cpu-profile.js +8 -3
- package/lib/utils/cpu-profile.js.map +1 -1
- package/lib/utils/errors.d.ts +7 -0
- package/lib/utils/errors.d.ts.map +1 -0
- package/lib/utils/errors.js +43 -0
- package/lib/utils/errors.js.map +1 -0
- package/lib/utils/memoryUsage.d.ts +20 -0
- package/lib/utils/memoryUsage.d.ts.map +1 -0
- package/lib/utils/memoryUsage.js +51 -0
- package/lib/utils/memoryUsage.js.map +1 -0
- package/lib/utils/safeRequire.d.ts +1 -1
- package/lib/utils/safeRequire.d.ts.map +1 -1
- package/lib/utils/safeRequire.js +13 -3
- package/lib/utils/safeRequire.js.map +1 -1
- package/package.json +13 -15
- package/schema.json +175 -20
- package/src/api/analyze/index.ts +2 -3
- package/src/api/benchmark/__integration__/__fixtures__/tramvai.json +3 -0
- package/src/api/build/__integration__/__fixtures__/tramvai.json +4 -2
- package/src/api/build/__integration__/build.test.ts +0 -1
- package/src/api/build/application.ts +2 -5
- package/src/api/build/child-app.ts +1 -5
- package/src/api/build/index.ts +0 -2
- package/src/api/build/module.ts +1 -3
- package/src/api/index.ts +1 -10
- package/src/api/start/__integration__/__fixtures__/app/server.tsx +1 -0
- package/src/api/start/__integration__/__fixtures__/package.json +0 -3
- package/src/api/start/__integration__/__fixtures__/tramvai.json +3 -0
- package/src/api/start/__integration__/start.test.ts +2 -1
- package/src/api/start/index.ts +0 -1
- package/src/api/start/utils/banner.ts +0 -1
- package/src/api/start/utils/tips/tips.ts +0 -9
- package/src/builder/webpack/devServer/pool/process/pool.ts +0 -2
- package/src/builder/webpack/devServer/server.ts +5 -0
- package/src/builder/webpack/index.ts +3 -5
- package/src/builder/webpack/providers/build/client.ts +0 -1
- package/src/builder/webpack/providers/build/clientShared.ts +5 -11
- package/src/builder/webpack/providers/client.ts +1 -19
- package/src/builder/webpack/providers/shared.ts +2 -9
- package/src/builder/webpack/tokens.ts +0 -9
- package/src/builder/webpack/utils/copyStatsJsonFile.ts +0 -17
- package/src/cli/CLI.ts +6 -4
- package/src/cli/index.ts +33 -8
- package/src/cli/runCLI.ts +26 -5
- package/src/commands/build/command.ts +45 -13
- package/src/commands/createApp.ts +0 -2
- package/src/commands/new/new.ts +39 -7
- package/src/commands/new/templates/packageManagerConfig/yarnPackageManagerConfig/_yarnrc.yml.hbs +9 -0
- package/src/commands/new/templates/shared/_gitignore.hbs +10 -0
- package/src/commands/new/templates/shared/package.json.hbs +5 -1
- package/src/commands/start/command.ts +42 -7
- package/src/commands/start/start.ts +7 -1
- package/src/commands/static/application.ts +0 -1
- package/src/commands/update/command.ts +9 -1
- package/src/commands/update/dependantLibs.ts +23 -8
- package/src/commands/update/update.ts +7 -6
- package/src/commands/update/updatePackageJson.spec.ts +66 -3
- package/src/commands/update/updatePackageJson.ts +28 -16
- package/src/config/__integration__/__fixtures__/relative/src/index.ts +0 -0
- package/src/config/__integration__/__fixtures__/relative/src/polyfill.ts +0 -0
- package/src/config/__integration__/validate.test.ts +94 -0
- package/src/config/configManager.ts +2 -19
- package/src/config/validate.ts +8 -1
- package/src/di/providers/index.ts +0 -1
- package/src/di/tokens/index.ts +0 -1
- package/src/library/babel/index.ts +8 -14
- package/src/library/babel/plugins/__snapshots__/create-token-pure.spec.ts.snap +6 -6
- package/src/library/babel/plugins/__snapshots__/fill-declare-action-name.spec.ts.snap +24 -26
- package/src/library/babel/plugins/__snapshots__/provider-stack.spec.ts.snap +40 -59
- package/src/library/babel/plugins/lazy-component/lazy-component.spec.ts +0 -1
- package/src/library/babel/plugins/lazy-component/legacy-universal-replace.spec.ts +0 -1
- package/src/library/swc/__integration__/__snapshots__/swc.build.test.ts.snap +15 -208
- package/src/library/swc/__integration__/__snapshots__/swc.start.test.ts.snap +7 -10
- package/src/library/swc/__integration__/swc.build.test.ts +1 -13
- package/src/library/swc/__integration__/swc.start.test.ts +3 -0
- package/src/library/swc/index.ts +1 -1
- package/src/library/typescript/index.ts +1 -3
- package/src/library/webpack/application/client/common.ts +63 -6
- package/src/library/webpack/application/client/dev.ts +2 -2
- package/src/library/webpack/application/client/prod.ts +1 -2
- package/src/library/webpack/application/common.ts +1 -1
- package/src/library/webpack/application/server/common.ts +1 -1
- package/src/library/webpack/application/server/dev.ts +1 -1
- package/src/library/webpack/application/server/prod.ts +1 -1
- package/src/library/webpack/blocks/css.ts +17 -11
- package/src/library/webpack/blocks/optimize.ts +2 -2
- package/src/library/webpack/blocks/pwa/client.ts +1 -6
- package/src/library/webpack/blocks/pwa/shared.ts +1 -3
- package/src/library/webpack/blocks/resolve.ts +2 -2
- package/src/library/webpack/blocks/serverInline.ts +1 -2
- package/src/library/webpack/blocks/sourcemaps.ts +4 -2
- package/src/library/webpack/child-app/client/common.ts +9 -3
- package/src/library/webpack/child-app/client/dev.ts +6 -1
- package/src/library/webpack/child-app/client/prod.ts +5 -0
- package/src/library/webpack/child-app/common.ts +1 -7
- package/src/library/webpack/child-app/server/dev.ts +5 -0
- package/src/library/webpack/child-app/server/prod.ts +5 -0
- package/src/library/webpack/common/client/prod.ts +1 -1
- package/src/library/webpack/common/main.ts +1 -5
- package/src/library/webpack/constants/stats.ts +2 -0
- package/src/library/webpack/loaders/image-loader/getImageMiniatureURL.ts +1 -1
- package/src/library/webpack/module/client/common.ts +1 -1
- package/src/library/webpack/module/externals.ts +1 -1
- package/src/library/webpack/module/server/common.ts +1 -1
- package/src/library/webpack/plugins/AssetsIntegritiesPlugin.ts +34 -0
- package/src/library/webpack/plugins/PurifyStatsPlugin.ts +57 -0
- package/src/library/webpack/plugins/RuntimePathPlugin.ts +8 -3
- package/src/library/webpack/utils/polyfills/__integration__/__snapshots__/condition.test.ts.snap +16 -16
- package/src/library/webpack/utils/transpiler.ts +1 -5
- package/src/models/analytics/analytics.ts +488 -0
- package/src/models/analytics/analytics.worker.ts +102 -0
- package/src/models/analytics/utils.ts +122 -0
- package/src/models/command.ts +1 -8
- package/src/models/config.spec.ts +6 -2
- package/src/models/context.ts +4 -5
- package/src/models/logger.ts +2 -0
- package/src/models/task.ts +1 -7
- package/src/schema/autogeneratedSchema.json +161 -20
- package/src/schema/topLevelSchema.js +14 -0
- package/src/schema/tramvai.spec.ts +3 -1
- package/src/typings/build/Builder.ts +3 -8
- package/src/typings/configEntry/application.ts +11 -6
- package/src/typings/configEntry/cli.ts +14 -0
- package/src/typings/projectType.ts +5 -0
- package/src/typings/target.ts +1 -1
- package/src/utils/commands/dependencies/findTramvaiVersion.ts +5 -12
- package/src/utils/commands/dependencies/getLatestPackageVersion.ts +11 -3
- package/src/utils/cpu-profile.ts +14 -3
- package/src/utils/errors.ts +39 -0
- package/src/utils/memoryUsage.ts +58 -0
- package/src/utils/safeRequire.spec.ts +36 -0
- package/src/utils/safeRequire.ts +12 -3
- package/lib/builder/webpack/providers/build/clientModern.d.ts +0 -3
- package/lib/builder/webpack/providers/build/clientModern.d.ts.map +0 -1
- package/lib/builder/webpack/providers/build/clientModern.js +0 -60
- package/lib/builder/webpack/providers/build/clientModern.js.map +0 -1
- package/lib/di/providers/analytics.d.ts +0 -3
- package/lib/di/providers/analytics.d.ts.map +0 -1
- package/lib/di/providers/analytics.js +0 -20
- package/lib/di/providers/analytics.js.map +0 -1
- package/lib/di/tokens/analytics.d.ts +0 -14
- package/lib/di/tokens/analytics.d.ts.map +0 -1
- package/lib/di/tokens/analytics.js +0 -8
- package/lib/di/tokens/analytics.js.map +0 -1
- package/lib/models/analytics.d.ts +0 -31
- package/lib/models/analytics.d.ts.map +0 -1
- package/lib/models/analytics.js +0 -79
- package/lib/models/analytics.js.map +0 -1
- package/src/builder/webpack/providers/build/clientModern.ts +0 -64
- package/src/di/providers/analytics.ts +0 -22
- package/src/di/tokens/analytics.ts +0 -8
- package/src/models/analytics.ts +0 -116
- /package/src/commands/new/templates/{shared → packageManagerConfig/defaultPackageManagerConfig}/_npmrc.hbs +0 -0
package/src/models/command.ts
CHANGED
|
@@ -66,14 +66,7 @@ export abstract class CLICommand<
|
|
|
66
66
|
|
|
67
67
|
await this.validator(parameters);
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
name: this.name,
|
|
71
|
-
parameters: this.analyticEventLabel(parameters),
|
|
72
|
-
label: this.analyticCommandUsageLabel(parameters),
|
|
73
|
-
category: 'command',
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
return trackAfter(this.action(parameters));
|
|
69
|
+
return this.action(parameters);
|
|
77
70
|
}
|
|
78
71
|
|
|
79
72
|
protected async validator(parameters: TParams): Promise<void> {
|
|
@@ -73,6 +73,7 @@ it('should populate defaults for config', () => {
|
|
|
73
73
|
},
|
|
74
74
|
"reactCompiler": false,
|
|
75
75
|
"reactTransitions": false,
|
|
76
|
+
"runtimeChunk": false,
|
|
76
77
|
"serverRunner": "thread",
|
|
77
78
|
"transpilation": {
|
|
78
79
|
"loader": "babel",
|
|
@@ -97,7 +98,7 @@ it('should populate defaults for config', () => {
|
|
|
97
98
|
"overlay": false,
|
|
98
99
|
},
|
|
99
100
|
},
|
|
100
|
-
"
|
|
101
|
+
"integrity": false,
|
|
101
102
|
"name": "test-app",
|
|
102
103
|
"notifications": {},
|
|
103
104
|
"output": {
|
|
@@ -165,6 +166,7 @@ it('should populate defaults for config', () => {
|
|
|
165
166
|
"overlay": false,
|
|
166
167
|
},
|
|
167
168
|
},
|
|
169
|
+
"integrity": false,
|
|
168
170
|
"name": "test-child-app",
|
|
169
171
|
"notifications": {},
|
|
170
172
|
"output": "dist/child-app",
|
|
@@ -320,6 +322,7 @@ it('should populate defaults for overridable options', () => {
|
|
|
320
322
|
},
|
|
321
323
|
"reactCompiler": false,
|
|
322
324
|
"reactTransitions": false,
|
|
325
|
+
"runtimeChunk": false,
|
|
323
326
|
"serverRunner": "thread",
|
|
324
327
|
"transpilation": {
|
|
325
328
|
"loader": {
|
|
@@ -349,7 +352,7 @@ it('should populate defaults for overridable options', () => {
|
|
|
349
352
|
"overlay": false,
|
|
350
353
|
},
|
|
351
354
|
},
|
|
352
|
-
"
|
|
355
|
+
"integrity": false,
|
|
353
356
|
"name": "test-app",
|
|
354
357
|
"notifications": {},
|
|
355
358
|
"output": {
|
|
@@ -433,6 +436,7 @@ it('should populate defaults for overridable options', () => {
|
|
|
433
436
|
"overlay": false,
|
|
434
437
|
},
|
|
435
438
|
},
|
|
439
|
+
"integrity": false,
|
|
436
440
|
"name": "test-child-app",
|
|
437
441
|
"notifications": {},
|
|
438
442
|
"output": "dist/child-app",
|
package/src/models/context.ts
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type PackageManager } from '@tinkoff/package-manager-wrapper';
|
|
2
2
|
import type { Logger } from './logger';
|
|
3
3
|
import type { Command, CommandResult } from './command';
|
|
4
4
|
import type { Task, TaskResult } from './task';
|
|
5
5
|
import type { ConfigManager } from './config';
|
|
6
|
-
import
|
|
6
|
+
import { AnalyticsService } from './analytics/analytics';
|
|
7
7
|
|
|
8
8
|
export class Context {
|
|
9
|
-
public packageManager: PackageManager;
|
|
10
|
-
|
|
11
9
|
constructor(
|
|
12
10
|
public config: ConfigManager,
|
|
13
11
|
public logger: Logger,
|
|
14
|
-
public analytics: Analytics,
|
|
15
12
|
public cliRootDir: string,
|
|
16
13
|
public cliPackageManager: PackageManager,
|
|
14
|
+
public packageManager: PackageManager,
|
|
15
|
+
public analytics: AnalyticsService,
|
|
17
16
|
public runTask: (name, params?) => Promise<TaskResult>,
|
|
18
17
|
public runCommand: (name, params?) => Promise<CommandResult>,
|
|
19
18
|
public getTasks: () => Task[],
|
package/src/models/logger.ts
CHANGED
package/src/models/task.ts
CHANGED
|
@@ -36,14 +36,8 @@ export abstract class Task {
|
|
|
36
36
|
});
|
|
37
37
|
const args = [...this.arguments, ...(parameters.arguments || [])];
|
|
38
38
|
const options = { ...this.options, ...parameters.options };
|
|
39
|
-
const trackAfter = this.context.analytics.trackAfter({
|
|
40
|
-
name: this.name,
|
|
41
|
-
category: 'task',
|
|
42
|
-
parameters: args,
|
|
43
|
-
label: this.analyticTaskUsageLabel(args),
|
|
44
|
-
});
|
|
45
39
|
|
|
46
|
-
return
|
|
40
|
+
return this.execute(this.command, args, options)
|
|
47
41
|
.then((result) => ({
|
|
48
42
|
status: 'ok',
|
|
49
43
|
code: result.exitCode,
|
|
@@ -22,6 +22,10 @@
|
|
|
22
22
|
"title": "Path to polyfill file. By default, looks for the `src/polyfill`",
|
|
23
23
|
"type": "string"
|
|
24
24
|
},
|
|
25
|
+
"modernPolyfill": {
|
|
26
|
+
"title": "Path to modern polyfill file. By default, looks for the `src/modern-polyfill`",
|
|
27
|
+
"type": "string"
|
|
28
|
+
},
|
|
25
29
|
"serverApiDir": {
|
|
26
30
|
"title": "Path to folder with papi handlers",
|
|
27
31
|
"default": "src/api",
|
|
@@ -50,11 +54,6 @@
|
|
|
50
54
|
},
|
|
51
55
|
"additionalProperties": false
|
|
52
56
|
},
|
|
53
|
-
"modern": {
|
|
54
|
-
"title": "Enable build for modern browsers",
|
|
55
|
-
"default": true,
|
|
56
|
-
"type": "boolean"
|
|
57
|
-
},
|
|
58
57
|
"fileSystemPages": {
|
|
59
58
|
"title": "File-System Routing feature",
|
|
60
59
|
"default": {},
|
|
@@ -786,6 +785,16 @@
|
|
|
786
785
|
"default": false,
|
|
787
786
|
"type": "boolean"
|
|
788
787
|
},
|
|
788
|
+
"runtimeChunk": {
|
|
789
|
+
"title": "Webpack Runtime Chunk settings",
|
|
790
|
+
"default": false,
|
|
791
|
+
"enum": [
|
|
792
|
+
false,
|
|
793
|
+
"multiple",
|
|
794
|
+
"single",
|
|
795
|
+
true
|
|
796
|
+
]
|
|
797
|
+
},
|
|
789
798
|
"webpack": {
|
|
790
799
|
"title": "experiments configuration for [webpack](https://webpack.js.org/configuration/experiments/)",
|
|
791
800
|
"default": {},
|
|
@@ -826,6 +835,10 @@
|
|
|
826
835
|
"topLevelAwait": {
|
|
827
836
|
"description": "Allow using top-level-await in EcmaScript Modules.",
|
|
828
837
|
"type": "boolean"
|
|
838
|
+
},
|
|
839
|
+
"deferImport": {
|
|
840
|
+
"description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-defer-import-eval. This allows to defer execution of a module until it's first use.",
|
|
841
|
+
"type": "boolean"
|
|
829
842
|
}
|
|
830
843
|
},
|
|
831
844
|
"additionalProperties": false
|
|
@@ -1015,6 +1028,46 @@
|
|
|
1015
1028
|
}
|
|
1016
1029
|
]
|
|
1017
1030
|
},
|
|
1031
|
+
"integrity": {
|
|
1032
|
+
"title": "Integrity generation options",
|
|
1033
|
+
"default": false,
|
|
1034
|
+
"anyOf": [
|
|
1035
|
+
{
|
|
1036
|
+
"type": "object",
|
|
1037
|
+
"properties": {
|
|
1038
|
+
"enabled": {
|
|
1039
|
+
"enum": [
|
|
1040
|
+
"auto",
|
|
1041
|
+
false,
|
|
1042
|
+
true
|
|
1043
|
+
]
|
|
1044
|
+
},
|
|
1045
|
+
"hashFuncNames": {
|
|
1046
|
+
"type": "array",
|
|
1047
|
+
"items": {
|
|
1048
|
+
"enum": [
|
|
1049
|
+
"sha256",
|
|
1050
|
+
"sha384",
|
|
1051
|
+
"sha512"
|
|
1052
|
+
],
|
|
1053
|
+
"type": "string"
|
|
1054
|
+
}
|
|
1055
|
+
},
|
|
1056
|
+
"hashLoading": {
|
|
1057
|
+
"enum": [
|
|
1058
|
+
"eager",
|
|
1059
|
+
"lazy"
|
|
1060
|
+
],
|
|
1061
|
+
"type": "string"
|
|
1062
|
+
}
|
|
1063
|
+
},
|
|
1064
|
+
"additionalProperties": false
|
|
1065
|
+
},
|
|
1066
|
+
{
|
|
1067
|
+
"type": "boolean"
|
|
1068
|
+
}
|
|
1069
|
+
]
|
|
1070
|
+
},
|
|
1018
1071
|
"excludesPresetEnv": {
|
|
1019
1072
|
"title": "List of modules to exclude from `@babel/preset-env` and `swc-loader`",
|
|
1020
1073
|
"type": "array",
|
|
@@ -1236,23 +1289,23 @@
|
|
|
1236
1289
|
"dotAll": {
|
|
1237
1290
|
"type": "boolean"
|
|
1238
1291
|
},
|
|
1239
|
-
"__@match@
|
|
1292
|
+
"__@match@8074": {
|
|
1240
1293
|
"type": "object",
|
|
1241
1294
|
"additionalProperties": false
|
|
1242
1295
|
},
|
|
1243
|
-
"__@replace@
|
|
1296
|
+
"__@replace@8076": {
|
|
1244
1297
|
"type": "object",
|
|
1245
1298
|
"additionalProperties": false
|
|
1246
1299
|
},
|
|
1247
|
-
"__@search@
|
|
1300
|
+
"__@search@8079": {
|
|
1248
1301
|
"type": "object",
|
|
1249
1302
|
"additionalProperties": false
|
|
1250
1303
|
},
|
|
1251
|
-
"__@split@
|
|
1304
|
+
"__@split@8081": {
|
|
1252
1305
|
"type": "object",
|
|
1253
1306
|
"additionalProperties": false
|
|
1254
1307
|
},
|
|
1255
|
-
"__@matchAll@
|
|
1308
|
+
"__@matchAll@8083": {
|
|
1256
1309
|
"type": "object",
|
|
1257
1310
|
"additionalProperties": false
|
|
1258
1311
|
}
|
|
@@ -1599,6 +1652,46 @@
|
|
|
1599
1652
|
}
|
|
1600
1653
|
]
|
|
1601
1654
|
},
|
|
1655
|
+
"integrity": {
|
|
1656
|
+
"title": "Integrity generation options",
|
|
1657
|
+
"default": false,
|
|
1658
|
+
"anyOf": [
|
|
1659
|
+
{
|
|
1660
|
+
"type": "object",
|
|
1661
|
+
"properties": {
|
|
1662
|
+
"enabled": {
|
|
1663
|
+
"enum": [
|
|
1664
|
+
"auto",
|
|
1665
|
+
false,
|
|
1666
|
+
true
|
|
1667
|
+
]
|
|
1668
|
+
},
|
|
1669
|
+
"hashFuncNames": {
|
|
1670
|
+
"type": "array",
|
|
1671
|
+
"items": {
|
|
1672
|
+
"enum": [
|
|
1673
|
+
"sha256",
|
|
1674
|
+
"sha384",
|
|
1675
|
+
"sha512"
|
|
1676
|
+
],
|
|
1677
|
+
"type": "string"
|
|
1678
|
+
}
|
|
1679
|
+
},
|
|
1680
|
+
"hashLoading": {
|
|
1681
|
+
"enum": [
|
|
1682
|
+
"eager",
|
|
1683
|
+
"lazy"
|
|
1684
|
+
],
|
|
1685
|
+
"type": "string"
|
|
1686
|
+
}
|
|
1687
|
+
},
|
|
1688
|
+
"additionalProperties": false
|
|
1689
|
+
},
|
|
1690
|
+
{
|
|
1691
|
+
"type": "boolean"
|
|
1692
|
+
}
|
|
1693
|
+
]
|
|
1694
|
+
},
|
|
1602
1695
|
"experiments": {
|
|
1603
1696
|
"title": "Change different experimental cli settings",
|
|
1604
1697
|
"default": {},
|
|
@@ -1644,6 +1737,10 @@
|
|
|
1644
1737
|
"topLevelAwait": {
|
|
1645
1738
|
"description": "Allow using top-level-await in EcmaScript Modules.",
|
|
1646
1739
|
"type": "boolean"
|
|
1740
|
+
},
|
|
1741
|
+
"deferImport": {
|
|
1742
|
+
"description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-defer-import-eval. This allows to defer execution of a module until it's first use.",
|
|
1743
|
+
"type": "boolean"
|
|
1647
1744
|
}
|
|
1648
1745
|
},
|
|
1649
1746
|
"additionalProperties": false
|
|
@@ -1987,23 +2084,23 @@
|
|
|
1987
2084
|
"dotAll": {
|
|
1988
2085
|
"type": "boolean"
|
|
1989
2086
|
},
|
|
1990
|
-
"__@match@
|
|
2087
|
+
"__@match@8074": {
|
|
1991
2088
|
"type": "object",
|
|
1992
2089
|
"additionalProperties": false
|
|
1993
2090
|
},
|
|
1994
|
-
"__@replace@
|
|
2091
|
+
"__@replace@8076": {
|
|
1995
2092
|
"type": "object",
|
|
1996
2093
|
"additionalProperties": false
|
|
1997
2094
|
},
|
|
1998
|
-
"__@search@
|
|
2095
|
+
"__@search@8079": {
|
|
1999
2096
|
"type": "object",
|
|
2000
2097
|
"additionalProperties": false
|
|
2001
2098
|
},
|
|
2002
|
-
"__@split@
|
|
2099
|
+
"__@split@8081": {
|
|
2003
2100
|
"type": "object",
|
|
2004
2101
|
"additionalProperties": false
|
|
2005
2102
|
},
|
|
2006
|
-
"__@matchAll@
|
|
2103
|
+
"__@matchAll@8083": {
|
|
2007
2104
|
"type": "object",
|
|
2008
2105
|
"additionalProperties": false
|
|
2009
2106
|
}
|
|
@@ -2350,6 +2447,46 @@
|
|
|
2350
2447
|
}
|
|
2351
2448
|
]
|
|
2352
2449
|
},
|
|
2450
|
+
"integrity": {
|
|
2451
|
+
"title": "Integrity generation options",
|
|
2452
|
+
"default": false,
|
|
2453
|
+
"anyOf": [
|
|
2454
|
+
{
|
|
2455
|
+
"type": "object",
|
|
2456
|
+
"properties": {
|
|
2457
|
+
"enabled": {
|
|
2458
|
+
"enum": [
|
|
2459
|
+
"auto",
|
|
2460
|
+
false,
|
|
2461
|
+
true
|
|
2462
|
+
]
|
|
2463
|
+
},
|
|
2464
|
+
"hashFuncNames": {
|
|
2465
|
+
"type": "array",
|
|
2466
|
+
"items": {
|
|
2467
|
+
"enum": [
|
|
2468
|
+
"sha256",
|
|
2469
|
+
"sha384",
|
|
2470
|
+
"sha512"
|
|
2471
|
+
],
|
|
2472
|
+
"type": "string"
|
|
2473
|
+
}
|
|
2474
|
+
},
|
|
2475
|
+
"hashLoading": {
|
|
2476
|
+
"enum": [
|
|
2477
|
+
"eager",
|
|
2478
|
+
"lazy"
|
|
2479
|
+
],
|
|
2480
|
+
"type": "string"
|
|
2481
|
+
}
|
|
2482
|
+
},
|
|
2483
|
+
"additionalProperties": false
|
|
2484
|
+
},
|
|
2485
|
+
{
|
|
2486
|
+
"type": "boolean"
|
|
2487
|
+
}
|
|
2488
|
+
]
|
|
2489
|
+
},
|
|
2353
2490
|
"experiments": {
|
|
2354
2491
|
"title": "Change different experimental cli settings",
|
|
2355
2492
|
"default": {},
|
|
@@ -2395,6 +2532,10 @@
|
|
|
2395
2532
|
"topLevelAwait": {
|
|
2396
2533
|
"description": "Allow using top-level-await in EcmaScript Modules.",
|
|
2397
2534
|
"type": "boolean"
|
|
2535
|
+
},
|
|
2536
|
+
"deferImport": {
|
|
2537
|
+
"description": "Enable experimental tc39 proposal https://github.com/tc39/proposal-defer-import-eval. This allows to defer execution of a module until it's first use.",
|
|
2538
|
+
"type": "boolean"
|
|
2398
2539
|
}
|
|
2399
2540
|
},
|
|
2400
2541
|
"additionalProperties": false
|
|
@@ -2738,23 +2879,23 @@
|
|
|
2738
2879
|
"dotAll": {
|
|
2739
2880
|
"type": "boolean"
|
|
2740
2881
|
},
|
|
2741
|
-
"__@match@
|
|
2882
|
+
"__@match@8074": {
|
|
2742
2883
|
"type": "object",
|
|
2743
2884
|
"additionalProperties": false
|
|
2744
2885
|
},
|
|
2745
|
-
"__@replace@
|
|
2886
|
+
"__@replace@8076": {
|
|
2746
2887
|
"type": "object",
|
|
2747
2888
|
"additionalProperties": false
|
|
2748
2889
|
},
|
|
2749
|
-
"__@search@
|
|
2890
|
+
"__@search@8079": {
|
|
2750
2891
|
"type": "object",
|
|
2751
2892
|
"additionalProperties": false
|
|
2752
2893
|
},
|
|
2753
|
-
"__@split@
|
|
2894
|
+
"__@split@8081": {
|
|
2754
2895
|
"type": "object",
|
|
2755
2896
|
"additionalProperties": false
|
|
2756
2897
|
},
|
|
2757
|
-
"__@matchAll@
|
|
2898
|
+
"__@matchAll@8083": {
|
|
2758
2899
|
"type": "object",
|
|
2759
2900
|
"additionalProperties": false
|
|
2760
2901
|
}
|
|
@@ -68,6 +68,20 @@ module.exports = (autogeneratedSchema) => {
|
|
|
68
68
|
},
|
|
69
69
|
},
|
|
70
70
|
},
|
|
71
|
+
analytics: {
|
|
72
|
+
type: 'object',
|
|
73
|
+
additionalProperties: false,
|
|
74
|
+
properties: {
|
|
75
|
+
enabled: {
|
|
76
|
+
title: 'enable @tramvai/cli monitoring',
|
|
77
|
+
type: 'boolean',
|
|
78
|
+
},
|
|
79
|
+
endpoint: {
|
|
80
|
+
title: '@tramvai/cli monitoring collector endpoint',
|
|
81
|
+
type: 'string',
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
},
|
|
71
85
|
},
|
|
72
86
|
};
|
|
73
87
|
};
|
|
@@ -102,6 +102,7 @@ describe('JSON schema для tramvai.json', () => {
|
|
|
102
102
|
},
|
|
103
103
|
"reactCompiler": false,
|
|
104
104
|
"reactTransitions": false,
|
|
105
|
+
"runtimeChunk": false,
|
|
105
106
|
"serverRunner": "thread",
|
|
106
107
|
"transpilation": {
|
|
107
108
|
"loader": "babel",
|
|
@@ -126,7 +127,7 @@ describe('JSON schema для tramvai.json', () => {
|
|
|
126
127
|
"overlay": false,
|
|
127
128
|
},
|
|
128
129
|
},
|
|
129
|
-
"
|
|
130
|
+
"integrity": false,
|
|
130
131
|
"name": "test-app",
|
|
131
132
|
"notifications": {},
|
|
132
133
|
"output": {
|
|
@@ -194,6 +195,7 @@ describe('JSON schema для tramvai.json', () => {
|
|
|
194
195
|
"overlay": false,
|
|
195
196
|
},
|
|
196
197
|
},
|
|
198
|
+
"integrity": false,
|
|
197
199
|
"name": "test-module",
|
|
198
200
|
"notifications": {},
|
|
199
201
|
"output": "dist/modules",
|
|
@@ -4,7 +4,6 @@ export interface BuilderCustomOptions {
|
|
|
4
4
|
|
|
5
5
|
export interface BuilderOptions {
|
|
6
6
|
shouldBuildClient: boolean;
|
|
7
|
-
onlyModern?: boolean;
|
|
8
7
|
shouldBuildServer: boolean;
|
|
9
8
|
}
|
|
10
9
|
|
|
@@ -29,23 +28,19 @@ interface BuilderStartOptions {
|
|
|
29
28
|
strictError: boolean;
|
|
30
29
|
}
|
|
31
30
|
|
|
32
|
-
interface BuilderBuildOptions {
|
|
33
|
-
modern: boolean;
|
|
34
|
-
}
|
|
31
|
+
interface BuilderBuildOptions {}
|
|
35
32
|
|
|
36
33
|
interface BuilderAnalyzeOptions {
|
|
37
|
-
modern?: boolean;
|
|
38
34
|
plugin?: string;
|
|
39
35
|
}
|
|
40
36
|
|
|
41
37
|
export type GetBuildStats = () => {
|
|
42
38
|
clientBuildTime?: number;
|
|
43
|
-
clientModernBuildTime?: number;
|
|
44
39
|
serverBuildTime?: number;
|
|
45
40
|
maxMemoryRss?: number;
|
|
46
41
|
};
|
|
47
42
|
|
|
48
|
-
export type BuildType = 'client' | 'server'
|
|
43
|
+
export type BuildType = 'client' | 'server';
|
|
49
44
|
|
|
50
45
|
export interface BuilderEvents {
|
|
51
46
|
invalid: [];
|
|
@@ -60,7 +55,7 @@ export interface Builder<Name extends string> {
|
|
|
60
55
|
invalidate: () => Promise<void>;
|
|
61
56
|
getBuildStats: GetBuildStats;
|
|
62
57
|
}>;
|
|
63
|
-
build(options
|
|
58
|
+
build(options?: BuilderBuildOptions): Promise<{
|
|
64
59
|
getBuildStats: GetBuildStats;
|
|
65
60
|
}>;
|
|
66
61
|
|
|
@@ -110,6 +110,13 @@ export interface ApplicationExperiments extends Experiments {
|
|
|
110
110
|
* @default false
|
|
111
111
|
*/
|
|
112
112
|
reactTransitions?: boolean;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* @title Webpack Runtime Chunk settings
|
|
116
|
+
* @see https://webpack.js.org/configuration/optimization/#optimizationruntimechunk
|
|
117
|
+
* @default false
|
|
118
|
+
*/
|
|
119
|
+
runtimeChunk?: 'single' | 'multiple' | boolean;
|
|
113
120
|
}
|
|
114
121
|
|
|
115
122
|
export interface ApplicationConfigEntry extends CliConfigEntry {
|
|
@@ -118,6 +125,10 @@ export interface ApplicationConfigEntry extends CliConfigEntry {
|
|
|
118
125
|
* @title Path to polyfill file. By default, looks for the `src/polyfill`
|
|
119
126
|
*/
|
|
120
127
|
polyfill?: string;
|
|
128
|
+
/**
|
|
129
|
+
* @title Path to modern polyfill file. By default, looks for the `src/modern-polyfill`
|
|
130
|
+
*/
|
|
131
|
+
modernPolyfill?: string;
|
|
121
132
|
/**
|
|
122
133
|
* @title Path to folder with papi handlers
|
|
123
134
|
* @default "src/api"
|
|
@@ -144,11 +155,6 @@ export interface ApplicationConfigEntry extends CliConfigEntry {
|
|
|
144
155
|
*/
|
|
145
156
|
static: string;
|
|
146
157
|
};
|
|
147
|
-
/**
|
|
148
|
-
* @title Enable build for modern browsers
|
|
149
|
-
* @default true
|
|
150
|
-
*/
|
|
151
|
-
modern?: boolean;
|
|
152
158
|
|
|
153
159
|
/**
|
|
154
160
|
* @title File-System Routing feature
|
|
@@ -226,7 +232,6 @@ export interface ApplicationConfigEntry extends CliConfigEntry {
|
|
|
226
232
|
* @default {}
|
|
227
233
|
*/
|
|
228
234
|
experiments: ApplicationExperiments;
|
|
229
|
-
|
|
230
235
|
/**
|
|
231
236
|
* @title Enable generation of stats modules file for polyfill usage analysis
|
|
232
237
|
* @default false
|
|
@@ -36,6 +36,15 @@ export type ReactCompilerOptions = {
|
|
|
36
36
|
panicThreshold?: 'ALL_ERRORS' | 'CRITICAL_ERRORS' | 'NONE';
|
|
37
37
|
};
|
|
38
38
|
|
|
39
|
+
/**
|
|
40
|
+
* @see https://github.com/waysact/webpack-subresource-integrity/tree/main/webpack-subresource-integrity#options
|
|
41
|
+
*/
|
|
42
|
+
export interface IntegrityOptions {
|
|
43
|
+
enabled: boolean | 'auto';
|
|
44
|
+
hashFuncNames: ('sha256' | 'sha384' | 'sha512')[];
|
|
45
|
+
hashLoading: 'eager' | 'lazy';
|
|
46
|
+
}
|
|
47
|
+
|
|
39
48
|
export type WebpackExperiments = Omit<
|
|
40
49
|
Configuration['experiments'],
|
|
41
50
|
'buildHttp' | 'lazyCompilation' | 'css'
|
|
@@ -136,6 +145,11 @@ export interface CliConfigEntry extends ConfigEntry {
|
|
|
136
145
|
* @default false
|
|
137
146
|
*/
|
|
138
147
|
sourceMap: OverridableOption<boolean>;
|
|
148
|
+
/**
|
|
149
|
+
* @title Integrity generation options
|
|
150
|
+
* @default false
|
|
151
|
+
*/
|
|
152
|
+
integrity: boolean | IntegrityOptions;
|
|
139
153
|
/**
|
|
140
154
|
* @title Change different experimental cli settings
|
|
141
155
|
* @default {}
|
package/src/typings/target.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export type Target = '
|
|
1
|
+
export type Target = 'node' | 'defaults';
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import fs from 'fs';
|
|
3
|
-
|
|
4
|
-
const getVersionFromDep = (dep?: string) => {
|
|
5
|
-
if (dep) {
|
|
6
|
-
return parse(dep)?.version || minVersion(dep)?.version;
|
|
7
|
-
}
|
|
8
|
-
};
|
|
1
|
+
import fs from 'fs/promises';
|
|
9
2
|
|
|
10
3
|
export const findTramvaiVersion = async () => {
|
|
11
|
-
const file = fs.
|
|
12
|
-
|
|
13
|
-
const
|
|
4
|
+
const file = await fs.readFile('package.json', { encoding: 'utf-8' });
|
|
5
|
+
|
|
6
|
+
const content = JSON.parse(file);
|
|
14
7
|
|
|
15
|
-
return
|
|
8
|
+
return content.devDependencies['@tramvai/cli'] ?? content.dependencies['@tramvai/cli'];
|
|
16
9
|
};
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import ora from 'ora';
|
|
2
2
|
import latestVersion from 'latest-version';
|
|
3
3
|
|
|
4
|
-
export const getLatestPackageVersion = async (
|
|
5
|
-
|
|
4
|
+
export const getLatestPackageVersion = async (
|
|
5
|
+
packageName: string,
|
|
6
|
+
version = 'latest',
|
|
7
|
+
silent = false
|
|
8
|
+
) => {
|
|
9
|
+
const spinner = silent
|
|
10
|
+
? null
|
|
11
|
+
: ora(`Resolving the highest version satifying to ${version}`).start();
|
|
6
12
|
|
|
7
13
|
try {
|
|
8
14
|
const result = await latestVersion(packageName, { version });
|
|
9
15
|
|
|
10
16
|
return result;
|
|
11
17
|
} finally {
|
|
12
|
-
spinner
|
|
18
|
+
if (spinner) {
|
|
19
|
+
spinner.stop();
|
|
20
|
+
}
|
|
13
21
|
}
|
|
14
22
|
};
|
package/src/utils/cpu-profile.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { Session } from 'inspector';
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
|
|
4
|
+
declare global {
|
|
5
|
+
// eslint-disable-next-line no-var, vars-on-top
|
|
6
|
+
var __TRAMVAI_EXIT_HANDLERS__: Array<() => Promise<any>>;
|
|
7
|
+
}
|
|
8
|
+
|
|
4
9
|
// reference - https://github.com/vercel/next.js/blob/canary/packages/next/src/server/lib/cpu-profile.ts
|
|
5
10
|
export function enableCpuProfile(key: string) {
|
|
6
11
|
const session = new Session();
|
|
@@ -30,7 +35,13 @@ export function enableCpuProfile(key: string) {
|
|
|
30
35
|
});
|
|
31
36
|
}
|
|
32
37
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
38
|
+
// CLI will wait for this handlers before exiting
|
|
39
|
+
// @reference `packages/cli/src/cli/runCLI.ts`
|
|
40
|
+
if (!global.__TRAMVAI_EXIT_HANDLERS__) {
|
|
41
|
+
global.__TRAMVAI_EXIT_HANDLERS__ = [];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
global.__TRAMVAI_EXIT_HANDLERS__.push(async () => {
|
|
45
|
+
saveProfile();
|
|
46
|
+
});
|
|
36
47
|
}
|