powerplatform-vscode/webpack.config.js

180 строки
5.8 KiB
JavaScript
Исходник Обычный вид История

/*
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*/
2020-12-19 05:07:04 +03:00
'use strict';
/* eslint-disable no-undef */
/* eslint-disable @typescript-eslint/no-var-requires */
const path = require('path');
const webpack = require('webpack');
const { dependencies } = require('./package.json');
2020-12-19 05:07:04 +03:00
/**@type {import('webpack').Configuration}*/
const nodeConfig = {
2020-12-19 05:07:04 +03:00
target: 'node',
mode: 'development',
entry: {
extension: './src/client/extension.ts',
yamlServer: './src/server/YamlServer.ts',
htmlServer: './src/server/HtmlServer.ts'
},
2020-12-19 05:07:04 +03:00
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].js',
2020-12-19 05:07:04 +03:00
libraryTarget: "commonjs2",
},
devtool: 'source-map',
externals: {
vscode: "commonjs vscode",
// These dependencies are ignored because we don't use them, and App Insights has try-catch protecting their loading if they don't exist
// See: https://github.com/microsoft/vscode-extension-telemetry/issues/41#issuecomment-598852991
'applicationinsights-native-metrics': 'commonjs applicationinsights-native-metrics',
'@opentelemetry/tracing': "commonjs @opentelemetry/tracing"
2020-12-19 05:07:04 +03:00
},
resolve: {
extensions: ['.ts', '.js']
},
module: {
rules: [{
test: /\.ts$/,
exclude: /node_modules/,
use: [{
loader: 'ts-loader'
}
]
2020-12-19 05:07:04 +03:00
}]
},
plugins:[
new webpack.DefinePlugin({
__GENERATOR_PACKAGE_VERSION__: JSON.stringify(dependencies["@microsoft/generator-powerpages"] || "1.0.0"), // get the currently used version of powerpages generator with fallback to ^1.0.0
}),
PowerPages ProDev Copilot Infra (#571) * creating req. files for webview * seprated js, prompt engine, active editor context * added api service file * updated package.json for webview * vsce package update * 1 conditional support of CREATE in desktop 2 Webview integration in webextension * Yeoman integration for copilot * added CSP for script, extenal connection * cleaned and refined icons, js, & css * Moving Api call into seprate file * 1. reverted changes for API 2.sendmsgtowebview fxn * removed duplicate fxn * 1. Removed API call from script 2. Add event for webview load * AIB Auth * build stash * consuming local api endpoint of AIB * updated vsce package * webview toolkit infra * added prompt template object * removed preview icon * added AIB prompt for NL2page * increased token limit * added fetchXML scenerio * enhanced css of list * added clear chat option * added animation prompt * removing langauage name from code block * moving prompt templates location * reducing temprature * changes * added a text-field and link using toolkit * added button to text field * added copilot.js file to main.ts * updated main.ts * updated html and input field * AIB integration * added scenario switching * styled input box, added user icon, code scroll bar * updated code formatting & styling * updated / list container * retaining context of webview * retaining webview for vscode.dv * 1 Authentication 2 Icons & name 3 ActiveFile * clear updates session id and user profile * Clear all icon in view/title * migrated from main.ts and added thinking * Changed to copilot.js and added custom input box * css change for feedback div * Added fxn to get selected text * added a generic error msg * Custom when clause for copilot and Create menu * copilot conditional view- comments * Login Screen * Login Screen. TODO: Handle Logout * moving welcome screen in new div * Merge branch 'users/amitjoshi/webviewUIStructure' into users/amitjoshi/copilotLoginFlow * Added 'pac org who' to pacWrapper * PacOrg who and input box for org id * Updated welcome screen Passing active org Id Removed / commands * webUiToolkit related main.js and gulp * fixed sendbutton bug * updated input border * removed Create related changes for copilot * removed create flow from copilot * added clipath to copilot constructor * updated css and when clause for clear conversation * Added Test Env Endpoint * updated copilot view json and moved header in chat * updated styling for code block: added margin * FCB to enable/disable copilot view * Added telemetry for API auth * removed comments * Enhanced and cleaned webview file * removed webuitoolkit integration file * removed comments * cleaned copilot.js file * added experimental tag to FCB * Removed config for webview toolkit * handling feedback thumb click * updated styling * added <hr> before feedback div * Added Maps for contract req. * Added ActiveFileParam handling * updated learn more link * Fixed snippet insertion issue * sending feedback msg to ext. * added advanced form * Updated welcome message as per figma. V2 * Added infra for CES survey * Added line above feedback * update login button UI * Updated UI for login button * updated package for yaml * updated test endpoint * handling violation and unclear responses in code * Disposing panel on submit * added console statement * Added notification for code copy * error handling for PAC org who * Added styling to the feedback form * updated feedback font * Add script to handle dynamic update of form label * Preview tag * removed active file content from body * Removed environment pill from copilot view * Added pac org who in login * Org change handling * updated login flow to handle no org * enhanced first load exp. for login * removed delay for pac org who * user initial fix * profile icon shrink fixed * Added prompt for url input box * Try copilot notification * Added Telemetry for copilot * removed try copilot notification * Added check for org url input box for copilot * Response to user if, no active org * removed log statements * removed logs from copilot.js * Added error constants and removed log * updated based on main branch * scope redeclare fix * added telemetry for ces and removed log * disabled eslint for error * fixing constant file name * added constants back * resolved comments * added space to tsconfig * geoRestriction and review welcome screen * Updated json error mapping * updated error message * Moved telemetry constants and interface out * updated terms link and moved svg constant * disable input while response is coming * Moved prompt handling to method and + err + const * added ternary operator * enhanced ces survey code * Interface for active file params * moved utils to comman and +TODO * Update api service * fixed eslint error * refactoring * let to const * last three part fxn rename * error handling for api * abstracted endpoint logic --------- Co-authored-by: amitjoshi <amitjoshi@microsoft.com> Co-authored-by: Rishabh Jain <rishjain@microsoft.com> Co-authored-by: Bidisha Das <biddas@microsoft.com>
2023-07-11 18:09:09 +03:00
new webpack.DefinePlugin({
IS_DESKTOP: true,
}),
]
};
const webConfig = {
mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production')
target: 'webworker', // extensions run in a webworker context
entry: {
'extension': './src/web/client/extension.ts',
'test/unit/extension': './src/web/client/test/unit/extension.test.ts',
'client/test/integration/index': './src/client/test/Integration/index.ts',
'test/integration/index': './src/web/client/test/integration/index.ts',
},
output: {
filename: '[name].js',
path: path.join(__dirname, './dist/web'),
libraryTarget: 'commonjs',
devtoolModuleFilenameTemplate: '../../[resource-path]'
},
resolve: {
mainFields: ['browser', 'module', 'main'], // look for `browser` entry point in imported node modules
extensions: ['.ts', '.js'], // support ts-files and js-files
alias: {
// provides alternate implementation for node module and source files
},
fallback: {
// Webpack 5 no longer polyfills Node.js core modules automatically.
// see https://webpack.js.org/configuration/resolve/#resolvefallback
// for the list of Node.js core module polyfills.
"constants": require.resolve("constants-browserify"),
'assert': require.resolve('assert'),
"os": require.resolve("os-browserify"),
"path": require.resolve("path-browserify"),
'stream': require.resolve("stream-browserify"),
'util': false,
buffer: require.resolve('buffer'),
}
},
module: {
rules: [{
test: /\.ts$/,
exclude: /node_modules/,
use: [{
loader: 'ts-loader'
}]
}]
},
plugins: [
new webpack.ProvidePlugin({
Buffer: [ 'buffer', 'Buffer' ],
}),
PowerPages ProDev Copilot Infra (#571) * creating req. files for webview * seprated js, prompt engine, active editor context * added api service file * updated package.json for webview * vsce package update * 1 conditional support of CREATE in desktop 2 Webview integration in webextension * Yeoman integration for copilot * added CSP for script, extenal connection * cleaned and refined icons, js, & css * Moving Api call into seprate file * 1. reverted changes for API 2.sendmsgtowebview fxn * removed duplicate fxn * 1. Removed API call from script 2. Add event for webview load * AIB Auth * build stash * consuming local api endpoint of AIB * updated vsce package * webview toolkit infra * added prompt template object * removed preview icon * added AIB prompt for NL2page * increased token limit * added fetchXML scenerio * enhanced css of list * added clear chat option * added animation prompt * removing langauage name from code block * moving prompt templates location * reducing temprature * changes * added a text-field and link using toolkit * added button to text field * added copilot.js file to main.ts * updated main.ts * updated html and input field * AIB integration * added scenario switching * styled input box, added user icon, code scroll bar * updated code formatting & styling * updated / list container * retaining context of webview * retaining webview for vscode.dv * 1 Authentication 2 Icons & name 3 ActiveFile * clear updates session id and user profile * Clear all icon in view/title * migrated from main.ts and added thinking * Changed to copilot.js and added custom input box * css change for feedback div * Added fxn to get selected text * added a generic error msg * Custom when clause for copilot and Create menu * copilot conditional view- comments * Login Screen * Login Screen. TODO: Handle Logout * moving welcome screen in new div * Merge branch 'users/amitjoshi/webviewUIStructure' into users/amitjoshi/copilotLoginFlow * Added 'pac org who' to pacWrapper * PacOrg who and input box for org id * Updated welcome screen Passing active org Id Removed / commands * webUiToolkit related main.js and gulp * fixed sendbutton bug * updated input border * removed Create related changes for copilot * removed create flow from copilot * added clipath to copilot constructor * updated css and when clause for clear conversation * Added Test Env Endpoint * updated copilot view json and moved header in chat * updated styling for code block: added margin * FCB to enable/disable copilot view * Added telemetry for API auth * removed comments * Enhanced and cleaned webview file * removed webuitoolkit integration file * removed comments * cleaned copilot.js file * added experimental tag to FCB * Removed config for webview toolkit * handling feedback thumb click * updated styling * added <hr> before feedback div * Added Maps for contract req. * Added ActiveFileParam handling * updated learn more link * Fixed snippet insertion issue * sending feedback msg to ext. * added advanced form * Updated welcome message as per figma. V2 * Added infra for CES survey * Added line above feedback * update login button UI * Updated UI for login button * updated package for yaml * updated test endpoint * handling violation and unclear responses in code * Disposing panel on submit * added console statement * Added notification for code copy * error handling for PAC org who * Added styling to the feedback form * updated feedback font * Add script to handle dynamic update of form label * Preview tag * removed active file content from body * Removed environment pill from copilot view * Added pac org who in login * Org change handling * updated login flow to handle no org * enhanced first load exp. for login * removed delay for pac org who * user initial fix * profile icon shrink fixed * Added prompt for url input box * Try copilot notification * Added Telemetry for copilot * removed try copilot notification * Added check for org url input box for copilot * Response to user if, no active org * removed log statements * removed logs from copilot.js * Added error constants and removed log * updated based on main branch * scope redeclare fix * added telemetry for ces and removed log * disabled eslint for error * fixing constant file name * added constants back * resolved comments * added space to tsconfig * geoRestriction and review welcome screen * Updated json error mapping * updated error message * Moved telemetry constants and interface out * updated terms link and moved svg constant * disable input while response is coming * Moved prompt handling to method and + err + const * added ternary operator * enhanced ces survey code * Interface for active file params * moved utils to comman and +TODO * Update api service * fixed eslint error * refactoring * let to const * last three part fxn rename * error handling for api * abstracted endpoint logic --------- Co-authored-by: amitjoshi <amitjoshi@microsoft.com> Co-authored-by: Rishabh Jain <rishjain@microsoft.com> Co-authored-by: Bidisha Das <biddas@microsoft.com>
2023-07-11 18:09:09 +03:00
new webpack.DefinePlugin({
IS_DESKTOP: false,
}),
],
externals: {
'vscode': 'commonjs vscode', // ignored because it doesn't exist
'fs': 'fs',
},
performance: {
hints: false
},
devtool: 'nosources-source-map', // create a source map that points to the original source file
infrastructureLogging: {
level: "log", // enables logging required for problem matchers
},
};
2020-12-19 05:07:04 +03:00
/** @type fluent container scripts web worker config */
const webWorkerConfig = {
mode: "none",
target: "webworker", // web extensions run in a webworker context
entry: {
main: "./src/web/client/common/worker/webworker.js",
},
output: {
filename: "[name].js",
path: path.join(__dirname, "./dist/web"),
libraryTarget: "self",
},
resolve: {
extensions: [".ts", ".js"], // support ts-files and js-files
alias: {},
fallback: {
path: require.resolve("path-browserify"),
tty: require.resolve("tty-browserify"),
os: require.resolve("os-browserify/browser"),
stream: require.resolve("stream-browserify"),
http: require.resolve("stream-http"),
zlib: require.resolve("browserify-zlib"),
https: require.resolve("https-browserify"),
},
},
module: {
rules: [
{
test: /\.ts$/,
exclude: /node_modules/,
use: [
{
loader: "ts-loader",
},
],
},
{
test: /webworker\.js$/,
use: {
loader: "worker-loader",
options: { inline: "fallback" },
},
},
],
},
externals: {
vscode: "commonjs vscode", // ignored because it doesn't exist
},
performance: {
hints: false,
},
devtool: "source-map",
};
module.exports = [nodeConfig, webConfig, webWorkerConfig];