From 45f672c8a139ce93c58456685beb265d8d3e091e Mon Sep 17 00:00:00 2001 From: John Hauck Date: Tue, 28 Apr 2026 11:41:39 -0600 Subject: [PATCH 1/3] add dev build --- buildDEV.bat | 145 +++++++++++++++++++++ demos/compareJSON/package-lock.json | 2 +- demos/compareJSON/webpack.config.js | 30 ++++- demos/compareSolutions/package-lock.json | 2 +- demos/compareSolutions/webpack.config.js | 32 ++++- demos/copyItemInfo/package-lock.json | 2 +- demos/copyItemInfo/webpack.config.js | 30 ++++- demos/copySolutions/package-lock.json | 2 +- demos/copySolutions/webpack.config.js | 46 +++++-- demos/createSolution/package-lock.json | 2 +- demos/createSolution/webpack.config.js | 30 ++++- demos/deleteSolution/package-lock.json | 2 +- demos/deleteSolution/webpack.config.js | 30 ++++- demos/deploySolution/package-lock.json | 2 +- demos/deploySolution/webpack.config.js | 30 ++++- demos/getItemInfo/package-lock.json | 2 +- demos/getItemInfo/webpack.config.js | 32 ++++- demos/implementedTypes/package-lock.json | 2 +- demos/implementedTypes/webpack.config.js | 32 ++++- demos/recreateSolution/package-lock.json | 2 +- demos/recreateSolution/webpack.config.js | 30 ++++- demos/reuseDeployedItems/package-lock.json | 2 +- demos/reuseDeployedItems/webpack.config.js | 30 ++++- demos/verifySolution/package-lock.json | 2 +- demos/verifySolution/webpack.config.js | 30 ++++- 25 files changed, 516 insertions(+), 35 deletions(-) create mode 100644 buildDEV.bat diff --git a/buildDEV.bat b/buildDEV.bat new file mode 100644 index 0000000000..f7c33e4dd8 --- /dev/null +++ b/buildDEV.bat @@ -0,0 +1,145 @@ +rem Builds all packages and demos in dev mode (no minification, with source maps, no tests, no lint) +rem Use this for browser debugging. The resulting bundles will be unminified and include source maps. + +call node --version +call npm --version + +rem Install all demos first so that npm install can symlink the packages +pushd demos\compareJSON +call npm install +popd + +pushd demos\compareSolutions +call npm install +popd + +pushd demos\copyItemInfo +call npm install +popd + +pushd demos\copySolutions +call npm install +popd + +pushd demos\createSolution +call npm install +popd + +pushd demos\deleteSolution +call npm install +popd + +pushd demos\deploySolution +call npm install +popd + +pushd demos\getItemInfo +call npm install +popd + +pushd demos\implementedTypes +call npm install +popd + +pushd demos\recreateSolution +call npm install +popd + +pushd demos\reuseDeployedItems +call npm install +popd + +pushd demos\verifySolution +call npm install +popd + +rem Install root and build all packages with source maps enabled +call npm install + +rem Build packages (ESM + CJS) — pass dev-only compiler overrides +call npm run build:esm -- -- --sourceMap --declarationMap +call npm run build:cjs -- -- --sourceMap --declarationMap + +call commit-stamp.bat + +rem DO NOT delete package.json files from dist directories - they are needed for webpack module resolution +rem Only delete the root package.json if needed for lerna, but keep esm/cjs ones +del/q packages\common\dist\package.json 2>nul +del/q packages\creator\dist\package.json 2>nul +del/q packages\deployer\dist\package.json 2>nul +del/q packages\feature-layer\dist\package.json 2>nul +del/q packages\file\dist\package.json 2>nul +del/q packages\form\dist\package.json 2>nul +del/q packages\group\dist\package.json 2>nul +del/q packages\hub-types\dist\package.json 2>nul +del/q packages\simple-types\dist\package.json 2>nul +del/q packages\storymap\dist\package.json 2>nul +del/q packages\velocity\dist\package.json 2>nul +del/q packages\viewer\dist\package.json 2>nul +del/q packages\web-experience\dist\package.json 2>nul +del/q packages\web-tool\dist\package.json 2>nul +del/q packages\workflow\dist\package.json 2>nul + +rem Build all demos in development mode (unminified, readable) +pushd demos\compareJSON +call npm run prebuild +call npx webpack --mode=development +popd + +pushd demos\compareSolutions +call npm run prebuild +call npx webpack --mode=development +popd + +pushd demos\copyItemInfo +call npm run prebuild +call npx webpack --mode=development +popd + +pushd demos\copySolutions +call npm run prebuild +call npx webpack --mode=development +popd + +pushd demos\createSolution +call npm run prebuild +call npx webpack --mode=development +popd + +pushd demos\deleteSolution +call npm run prebuild +call npx webpack --mode=development +popd + +pushd demos\deploySolution +call npm run prebuild +call npx webpack --mode=development +popd + +pushd demos\getItemInfo +call npm run prebuild +call npx webpack --mode=development +popd + +pushd demos\implementedTypes +call npm run prebuild +call npx webpack --mode=development +popd + +pushd demos\recreateSolution +call npm run prebuild +call npx webpack --mode=development +popd + +pushd demos\reuseDeployedItems +call npm run prebuild +call npx webpack --mode=development +popd + +pushd demos\verifySolution +call npm run prebuild +call npx webpack --mode=development +popd + +echo. +echo DEV build complete. All demo bundles are unminified with source maps. diff --git a/demos/compareJSON/package-lock.json b/demos/compareJSON/package-lock.json index 72d766ce14..f45be8f1d3 100644 --- a/demos/compareJSON/package-lock.json +++ b/demos/compareJSON/package-lock.json @@ -2344,4 +2344,4 @@ "license": "MIT" } } -} \ No newline at end of file +} diff --git a/demos/compareJSON/webpack.config.js b/demos/compareJSON/webpack.config.js index 3cbc672d81..0c840fea8e 100644 --- a/demos/compareJSON/webpack.config.js +++ b/demos/compareJSON/webpack.config.js @@ -3,6 +3,24 @@ const path = require('path'); const isProduction = process.env.NODE_ENV == 'production'; +const createDevAliases = () => ({ + '@esri/solution-common': path.resolve(__dirname, '../../packages/common/src/index.ts'), + '@esri/solution-creator': path.resolve(__dirname, '../../packages/creator/src/index.ts'), + '@esri/solution-deployer': path.resolve(__dirname, '../../packages/deployer/src/index.ts'), + '@esri/solution-feature-layer': path.resolve(__dirname, '../../packages/feature-layer/src/index.ts'), + '@esri/solution-file': path.resolve(__dirname, '../../packages/file/src/index.ts'), + '@esri/solution-form': path.resolve(__dirname, '../../packages/form/src/index.ts'), + '@esri/solution-group': path.resolve(__dirname, '../../packages/group/src/index.ts'), + '@esri/solution-hub-types': path.resolve(__dirname, '../../packages/hub-types/src/index.ts'), + '@esri/solution-simple-types': path.resolve(__dirname, '../../packages/simple-types/src/index.ts'), + '@esri/solution-storymap': path.resolve(__dirname, '../../packages/storymap/src/index.ts'), + '@esri/solution-velocity': path.resolve(__dirname, '../../packages/velocity/src/index.ts'), + '@esri/solution-viewer': path.resolve(__dirname, '../../packages/viewer/src/index.ts'), + '@esri/solution-web-experience': path.resolve(__dirname, '../../packages/web-experience/src/index.ts'), + '@esri/solution-web-tool': path.resolve(__dirname, '../../packages/web-tool/src/index.ts'), + '@esri/solution-workflow': path.resolve(__dirname, '../../packages/workflow/src/index.ts'), +}); + const config = { entry: './src/index.ts', output: { @@ -16,7 +34,12 @@ const config = { module: { rules: [{ test: /\.(ts|tsx)$/i, - loader: 'ts-loader', + use: { + loader: 'ts-loader', + options: { + transpileOnly: !isProduction, + }, + }, exclude: ['/node_modules/'], },{ test: /\.css$/i, @@ -37,6 +60,11 @@ module.exports = () => { config.mode = 'production'; } else { config.mode = 'development'; + config.devtool = 'source-map'; + config.resolve.alias = { + ...(config.resolve.alias || {}), + ...createDevAliases(), + }; } return config; }; diff --git a/demos/compareSolutions/package-lock.json b/demos/compareSolutions/package-lock.json index 82c65007a8..2d013873c9 100644 --- a/demos/compareSolutions/package-lock.json +++ b/demos/compareSolutions/package-lock.json @@ -2328,4 +2328,4 @@ "license": "MIT" } } -} \ No newline at end of file +} diff --git a/demos/compareSolutions/webpack.config.js b/demos/compareSolutions/webpack.config.js index f668c93a1e..77e238e19f 100644 --- a/demos/compareSolutions/webpack.config.js +++ b/demos/compareSolutions/webpack.config.js @@ -3,6 +3,24 @@ const path = require('path'); const isProduction = process.env.NODE_ENV == 'production'; +const createDevAliases = () => ({ + '@esri/solution-common': path.resolve(__dirname, '../../packages/common/src/index.ts'), + '@esri/solution-creator': path.resolve(__dirname, '../../packages/creator/src/index.ts'), + '@esri/solution-deployer': path.resolve(__dirname, '../../packages/deployer/src/index.ts'), + '@esri/solution-feature-layer': path.resolve(__dirname, '../../packages/feature-layer/src/index.ts'), + '@esri/solution-file': path.resolve(__dirname, '../../packages/file/src/index.ts'), + '@esri/solution-form': path.resolve(__dirname, '../../packages/form/src/index.ts'), + '@esri/solution-group': path.resolve(__dirname, '../../packages/group/src/index.ts'), + '@esri/solution-hub-types': path.resolve(__dirname, '../../packages/hub-types/src/index.ts'), + '@esri/solution-simple-types': path.resolve(__dirname, '../../packages/simple-types/src/index.ts'), + '@esri/solution-storymap': path.resolve(__dirname, '../../packages/storymap/src/index.ts'), + '@esri/solution-velocity': path.resolve(__dirname, '../../packages/velocity/src/index.ts'), + '@esri/solution-viewer': path.resolve(__dirname, '../../packages/viewer/src/index.ts'), + '@esri/solution-web-experience': path.resolve(__dirname, '../../packages/web-experience/src/index.ts'), + '@esri/solution-web-tool': path.resolve(__dirname, '../../packages/web-tool/src/index.ts'), + '@esri/solution-workflow': path.resolve(__dirname, '../../packages/workflow/src/index.ts'), +}); + const config = { entry: './src/index.ts', output: { @@ -16,7 +34,12 @@ const config = { module: { rules: [{ test: /\.(ts|tsx)$/i, - loader: 'ts-loader', + use: { + loader: 'ts-loader', + options: { + transpileOnly: !isProduction, + }, + }, exclude: ['/node_modules/'], },{ test: /\.css$/i, @@ -37,12 +60,17 @@ module.exports = () => { config.mode = 'production'; } else { config.mode = 'development'; + config.devtool = 'source-map'; + config.resolve.alias = { + ...(config.resolve.alias || {}), + ...createDevAliases(), + }; } config.experiments = { ...config.experiments, topLevelAwait: true - } + }; return config; }; diff --git a/demos/copyItemInfo/package-lock.json b/demos/copyItemInfo/package-lock.json index 19c4c8e841..386920eef1 100644 --- a/demos/copyItemInfo/package-lock.json +++ b/demos/copyItemInfo/package-lock.json @@ -2344,4 +2344,4 @@ "license": "MIT" } } -} \ No newline at end of file +} diff --git a/demos/copyItemInfo/webpack.config.js b/demos/copyItemInfo/webpack.config.js index 3cbc672d81..0c840fea8e 100644 --- a/demos/copyItemInfo/webpack.config.js +++ b/demos/copyItemInfo/webpack.config.js @@ -3,6 +3,24 @@ const path = require('path'); const isProduction = process.env.NODE_ENV == 'production'; +const createDevAliases = () => ({ + '@esri/solution-common': path.resolve(__dirname, '../../packages/common/src/index.ts'), + '@esri/solution-creator': path.resolve(__dirname, '../../packages/creator/src/index.ts'), + '@esri/solution-deployer': path.resolve(__dirname, '../../packages/deployer/src/index.ts'), + '@esri/solution-feature-layer': path.resolve(__dirname, '../../packages/feature-layer/src/index.ts'), + '@esri/solution-file': path.resolve(__dirname, '../../packages/file/src/index.ts'), + '@esri/solution-form': path.resolve(__dirname, '../../packages/form/src/index.ts'), + '@esri/solution-group': path.resolve(__dirname, '../../packages/group/src/index.ts'), + '@esri/solution-hub-types': path.resolve(__dirname, '../../packages/hub-types/src/index.ts'), + '@esri/solution-simple-types': path.resolve(__dirname, '../../packages/simple-types/src/index.ts'), + '@esri/solution-storymap': path.resolve(__dirname, '../../packages/storymap/src/index.ts'), + '@esri/solution-velocity': path.resolve(__dirname, '../../packages/velocity/src/index.ts'), + '@esri/solution-viewer': path.resolve(__dirname, '../../packages/viewer/src/index.ts'), + '@esri/solution-web-experience': path.resolve(__dirname, '../../packages/web-experience/src/index.ts'), + '@esri/solution-web-tool': path.resolve(__dirname, '../../packages/web-tool/src/index.ts'), + '@esri/solution-workflow': path.resolve(__dirname, '../../packages/workflow/src/index.ts'), +}); + const config = { entry: './src/index.ts', output: { @@ -16,7 +34,12 @@ const config = { module: { rules: [{ test: /\.(ts|tsx)$/i, - loader: 'ts-loader', + use: { + loader: 'ts-loader', + options: { + transpileOnly: !isProduction, + }, + }, exclude: ['/node_modules/'], },{ test: /\.css$/i, @@ -37,6 +60,11 @@ module.exports = () => { config.mode = 'production'; } else { config.mode = 'development'; + config.devtool = 'source-map'; + config.resolve.alias = { + ...(config.resolve.alias || {}), + ...createDevAliases(), + }; } return config; }; diff --git a/demos/copySolutions/package-lock.json b/demos/copySolutions/package-lock.json index ee332b23f1..855d9a769a 100644 --- a/demos/copySolutions/package-lock.json +++ b/demos/copySolutions/package-lock.json @@ -2719,4 +2719,4 @@ "license": "MIT" } } -} \ No newline at end of file +} diff --git a/demos/copySolutions/webpack.config.js b/demos/copySolutions/webpack.config.js index de935d6d9f..488dce1e3b 100644 --- a/demos/copySolutions/webpack.config.js +++ b/demos/copySolutions/webpack.config.js @@ -1,22 +1,32 @@ -const CopyPlugin = require('copy-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const path = require('path'); const isProduction = process.env.NODE_ENV == 'production'; +const createDevAliases = () => ({ + '@esri/solution-common': path.resolve(__dirname, '../../packages/common/src/index.ts'), + '@esri/solution-creator': path.resolve(__dirname, '../../packages/creator/src/index.ts'), + '@esri/solution-deployer': path.resolve(__dirname, '../../packages/deployer/src/index.ts'), + '@esri/solution-feature-layer': path.resolve(__dirname, '../../packages/feature-layer/src/index.ts'), + '@esri/solution-file': path.resolve(__dirname, '../../packages/file/src/index.ts'), + '@esri/solution-form': path.resolve(__dirname, '../../packages/form/src/index.ts'), + '@esri/solution-group': path.resolve(__dirname, '../../packages/group/src/index.ts'), + '@esri/solution-hub-types': path.resolve(__dirname, '../../packages/hub-types/src/index.ts'), + '@esri/solution-simple-types': path.resolve(__dirname, '../../packages/simple-types/src/index.ts'), + '@esri/solution-storymap': path.resolve(__dirname, '../../packages/storymap/src/index.ts'), + '@esri/solution-velocity': path.resolve(__dirname, '../../packages/velocity/src/index.ts'), + '@esri/solution-viewer': path.resolve(__dirname, '../../packages/viewer/src/index.ts'), + '@esri/solution-web-experience': path.resolve(__dirname, '../../packages/web-experience/src/index.ts'), + '@esri/solution-web-tool': path.resolve(__dirname, '../../packages/web-tool/src/index.ts'), + '@esri/solution-workflow': path.resolve(__dirname, '../../packages/workflow/src/index.ts'), +}); + const config = { entry: './src/index.ts', output: { path: path.resolve(__dirname, 'dist'), }, plugins: [ - new CopyPlugin({ - patterns: [ - { // Image assets - from: 'src/images' - }, - ] - }), new HtmlWebpackPlugin({ template: 'index.html', }), @@ -24,7 +34,12 @@ const config = { module: { rules: [{ test: /\.(ts|tsx)$/i, - loader: 'ts-loader', + use: { + loader: 'ts-loader', + options: { + transpileOnly: !isProduction, + }, + }, exclude: ['/node_modules/'], },{ test: /\.css$/i, @@ -40,6 +55,19 @@ const config = { }, }; +module.exports = () => { + if (isProduction) { + config.mode = 'production'; + } else { + config.mode = 'development'; + config.devtool = 'source-map'; + config.resolve.alias = { + ...(config.resolve.alias || {}), + ...createDevAliases(), + }; + } + return config; +}; module.exports = () => { if (isProduction) { config.mode = 'production'; diff --git a/demos/createSolution/package-lock.json b/demos/createSolution/package-lock.json index d112082c8f..e9256150cb 100644 --- a/demos/createSolution/package-lock.json +++ b/demos/createSolution/package-lock.json @@ -2350,4 +2350,4 @@ "license": "MIT" } } -} \ No newline at end of file +} diff --git a/demos/createSolution/webpack.config.js b/demos/createSolution/webpack.config.js index 3cbc672d81..0c840fea8e 100644 --- a/demos/createSolution/webpack.config.js +++ b/demos/createSolution/webpack.config.js @@ -3,6 +3,24 @@ const path = require('path'); const isProduction = process.env.NODE_ENV == 'production'; +const createDevAliases = () => ({ + '@esri/solution-common': path.resolve(__dirname, '../../packages/common/src/index.ts'), + '@esri/solution-creator': path.resolve(__dirname, '../../packages/creator/src/index.ts'), + '@esri/solution-deployer': path.resolve(__dirname, '../../packages/deployer/src/index.ts'), + '@esri/solution-feature-layer': path.resolve(__dirname, '../../packages/feature-layer/src/index.ts'), + '@esri/solution-file': path.resolve(__dirname, '../../packages/file/src/index.ts'), + '@esri/solution-form': path.resolve(__dirname, '../../packages/form/src/index.ts'), + '@esri/solution-group': path.resolve(__dirname, '../../packages/group/src/index.ts'), + '@esri/solution-hub-types': path.resolve(__dirname, '../../packages/hub-types/src/index.ts'), + '@esri/solution-simple-types': path.resolve(__dirname, '../../packages/simple-types/src/index.ts'), + '@esri/solution-storymap': path.resolve(__dirname, '../../packages/storymap/src/index.ts'), + '@esri/solution-velocity': path.resolve(__dirname, '../../packages/velocity/src/index.ts'), + '@esri/solution-viewer': path.resolve(__dirname, '../../packages/viewer/src/index.ts'), + '@esri/solution-web-experience': path.resolve(__dirname, '../../packages/web-experience/src/index.ts'), + '@esri/solution-web-tool': path.resolve(__dirname, '../../packages/web-tool/src/index.ts'), + '@esri/solution-workflow': path.resolve(__dirname, '../../packages/workflow/src/index.ts'), +}); + const config = { entry: './src/index.ts', output: { @@ -16,7 +34,12 @@ const config = { module: { rules: [{ test: /\.(ts|tsx)$/i, - loader: 'ts-loader', + use: { + loader: 'ts-loader', + options: { + transpileOnly: !isProduction, + }, + }, exclude: ['/node_modules/'], },{ test: /\.css$/i, @@ -37,6 +60,11 @@ module.exports = () => { config.mode = 'production'; } else { config.mode = 'development'; + config.devtool = 'source-map'; + config.resolve.alias = { + ...(config.resolve.alias || {}), + ...createDevAliases(), + }; } return config; }; diff --git a/demos/deleteSolution/package-lock.json b/demos/deleteSolution/package-lock.json index 5a4c5d0140..33f87faef5 100644 --- a/demos/deleteSolution/package-lock.json +++ b/demos/deleteSolution/package-lock.json @@ -2351,4 +2351,4 @@ "license": "MIT" } } -} \ No newline at end of file +} diff --git a/demos/deleteSolution/webpack.config.js b/demos/deleteSolution/webpack.config.js index 3cbc672d81..0c840fea8e 100644 --- a/demos/deleteSolution/webpack.config.js +++ b/demos/deleteSolution/webpack.config.js @@ -3,6 +3,24 @@ const path = require('path'); const isProduction = process.env.NODE_ENV == 'production'; +const createDevAliases = () => ({ + '@esri/solution-common': path.resolve(__dirname, '../../packages/common/src/index.ts'), + '@esri/solution-creator': path.resolve(__dirname, '../../packages/creator/src/index.ts'), + '@esri/solution-deployer': path.resolve(__dirname, '../../packages/deployer/src/index.ts'), + '@esri/solution-feature-layer': path.resolve(__dirname, '../../packages/feature-layer/src/index.ts'), + '@esri/solution-file': path.resolve(__dirname, '../../packages/file/src/index.ts'), + '@esri/solution-form': path.resolve(__dirname, '../../packages/form/src/index.ts'), + '@esri/solution-group': path.resolve(__dirname, '../../packages/group/src/index.ts'), + '@esri/solution-hub-types': path.resolve(__dirname, '../../packages/hub-types/src/index.ts'), + '@esri/solution-simple-types': path.resolve(__dirname, '../../packages/simple-types/src/index.ts'), + '@esri/solution-storymap': path.resolve(__dirname, '../../packages/storymap/src/index.ts'), + '@esri/solution-velocity': path.resolve(__dirname, '../../packages/velocity/src/index.ts'), + '@esri/solution-viewer': path.resolve(__dirname, '../../packages/viewer/src/index.ts'), + '@esri/solution-web-experience': path.resolve(__dirname, '../../packages/web-experience/src/index.ts'), + '@esri/solution-web-tool': path.resolve(__dirname, '../../packages/web-tool/src/index.ts'), + '@esri/solution-workflow': path.resolve(__dirname, '../../packages/workflow/src/index.ts'), +}); + const config = { entry: './src/index.ts', output: { @@ -16,7 +34,12 @@ const config = { module: { rules: [{ test: /\.(ts|tsx)$/i, - loader: 'ts-loader', + use: { + loader: 'ts-loader', + options: { + transpileOnly: !isProduction, + }, + }, exclude: ['/node_modules/'], },{ test: /\.css$/i, @@ -37,6 +60,11 @@ module.exports = () => { config.mode = 'production'; } else { config.mode = 'development'; + config.devtool = 'source-map'; + config.resolve.alias = { + ...(config.resolve.alias || {}), + ...createDevAliases(), + }; } return config; }; diff --git a/demos/deploySolution/package-lock.json b/demos/deploySolution/package-lock.json index b62da4706a..d81c3f7004 100644 --- a/demos/deploySolution/package-lock.json +++ b/demos/deploySolution/package-lock.json @@ -2357,4 +2357,4 @@ "license": "MIT" } } -} \ No newline at end of file +} diff --git a/demos/deploySolution/webpack.config.js b/demos/deploySolution/webpack.config.js index 05e474c26c..8f594ec6c9 100644 --- a/demos/deploySolution/webpack.config.js +++ b/demos/deploySolution/webpack.config.js @@ -3,6 +3,24 @@ const path = require('path'); const isProduction = process.env.NODE_ENV == 'production'; +const createDevAliases = () => ({ + '@esri/solution-common': path.resolve(__dirname, '../../packages/common/src/index.ts'), + '@esri/solution-creator': path.resolve(__dirname, '../../packages/creator/src/index.ts'), + '@esri/solution-deployer': path.resolve(__dirname, '../../packages/deployer/src/index.ts'), + '@esri/solution-feature-layer': path.resolve(__dirname, '../../packages/feature-layer/src/index.ts'), + '@esri/solution-file': path.resolve(__dirname, '../../packages/file/src/index.ts'), + '@esri/solution-form': path.resolve(__dirname, '../../packages/form/src/index.ts'), + '@esri/solution-group': path.resolve(__dirname, '../../packages/group/src/index.ts'), + '@esri/solution-hub-types': path.resolve(__dirname, '../../packages/hub-types/src/index.ts'), + '@esri/solution-simple-types': path.resolve(__dirname, '../../packages/simple-types/src/index.ts'), + '@esri/solution-storymap': path.resolve(__dirname, '../../packages/storymap/src/index.ts'), + '@esri/solution-velocity': path.resolve(__dirname, '../../packages/velocity/src/index.ts'), + '@esri/solution-viewer': path.resolve(__dirname, '../../packages/viewer/src/index.ts'), + '@esri/solution-web-experience': path.resolve(__dirname, '../../packages/web-experience/src/index.ts'), + '@esri/solution-web-tool': path.resolve(__dirname, '../../packages/web-tool/src/index.ts'), + '@esri/solution-workflow': path.resolve(__dirname, '../../packages/workflow/src/index.ts'), +}); + const config = { entry: { main: './src/index.ts', @@ -26,7 +44,12 @@ const config = { module: { rules: [{ test: /\.(ts|tsx)$/i, - loader: 'ts-loader', + use: { + loader: 'ts-loader', + options: { + transpileOnly: !isProduction, + }, + }, exclude: ['/node_modules/'], },{ test: /\.css$/i, @@ -47,6 +70,11 @@ module.exports = () => { config.mode = 'production'; } else { config.mode = 'development'; + config.devtool = 'source-map'; + config.resolve.alias = { + ...(config.resolve.alias || {}), + ...createDevAliases(), + }; } return config; }; diff --git a/demos/getItemInfo/package-lock.json b/demos/getItemInfo/package-lock.json index 87724023eb..21f22acd55 100644 --- a/demos/getItemInfo/package-lock.json +++ b/demos/getItemInfo/package-lock.json @@ -2344,4 +2344,4 @@ "license": "MIT" } } -} \ No newline at end of file +} diff --git a/demos/getItemInfo/webpack.config.js b/demos/getItemInfo/webpack.config.js index f668c93a1e..42b61a3004 100644 --- a/demos/getItemInfo/webpack.config.js +++ b/demos/getItemInfo/webpack.config.js @@ -3,6 +3,24 @@ const path = require('path'); const isProduction = process.env.NODE_ENV == 'production'; +const createDevAliases = () => ({ + '@esri/solution-common': path.resolve(__dirname, '../../packages/common/src/index.ts'), + '@esri/solution-creator': path.resolve(__dirname, '../../packages/creator/src/index.ts'), + '@esri/solution-deployer': path.resolve(__dirname, '../../packages/deployer/src/index.ts'), + '@esri/solution-feature-layer': path.resolve(__dirname, '../../packages/feature-layer/src/index.ts'), + '@esri/solution-file': path.resolve(__dirname, '../../packages/file/src/index.ts'), + '@esri/solution-form': path.resolve(__dirname, '../../packages/form/src/index.ts'), + '@esri/solution-group': path.resolve(__dirname, '../../packages/group/src/index.ts'), + '@esri/solution-hub-types': path.resolve(__dirname, '../../packages/hub-types/src/index.ts'), + '@esri/solution-simple-types': path.resolve(__dirname, '../../packages/simple-types/src/index.ts'), + '@esri/solution-storymap': path.resolve(__dirname, '../../packages/storymap/src/index.ts'), + '@esri/solution-velocity': path.resolve(__dirname, '../../packages/velocity/src/index.ts'), + '@esri/solution-viewer': path.resolve(__dirname, '../../packages/viewer/src/index.ts'), + '@esri/solution-web-experience': path.resolve(__dirname, '../../packages/web-experience/src/index.ts'), + '@esri/solution-web-tool': path.resolve(__dirname, '../../packages/web-tool/src/index.ts'), + '@esri/solution-workflow': path.resolve(__dirname, '../../packages/workflow/src/index.ts'), +}); + const config = { entry: './src/index.ts', output: { @@ -16,7 +34,12 @@ const config = { module: { rules: [{ test: /\.(ts|tsx)$/i, - loader: 'ts-loader', + use: { + loader: 'ts-loader', + options: { + transpileOnly: !isProduction, + }, + }, exclude: ['/node_modules/'], },{ test: /\.css$/i, @@ -37,6 +60,11 @@ module.exports = () => { config.mode = 'production'; } else { config.mode = 'development'; + config.devtool = 'source-map'; + config.resolve.alias = { + ...(config.resolve.alias || {}), + ...createDevAliases(), + }; } config.experiments = { @@ -45,4 +73,4 @@ module.exports = () => { } return config; -}; +}; \ No newline at end of file diff --git a/demos/implementedTypes/package-lock.json b/demos/implementedTypes/package-lock.json index c4a6ae46ee..a305740bce 100644 --- a/demos/implementedTypes/package-lock.json +++ b/demos/implementedTypes/package-lock.json @@ -2336,4 +2336,4 @@ "license": "MIT" } } -} \ No newline at end of file +} diff --git a/demos/implementedTypes/webpack.config.js b/demos/implementedTypes/webpack.config.js index f668c93a1e..77e238e19f 100644 --- a/demos/implementedTypes/webpack.config.js +++ b/demos/implementedTypes/webpack.config.js @@ -3,6 +3,24 @@ const path = require('path'); const isProduction = process.env.NODE_ENV == 'production'; +const createDevAliases = () => ({ + '@esri/solution-common': path.resolve(__dirname, '../../packages/common/src/index.ts'), + '@esri/solution-creator': path.resolve(__dirname, '../../packages/creator/src/index.ts'), + '@esri/solution-deployer': path.resolve(__dirname, '../../packages/deployer/src/index.ts'), + '@esri/solution-feature-layer': path.resolve(__dirname, '../../packages/feature-layer/src/index.ts'), + '@esri/solution-file': path.resolve(__dirname, '../../packages/file/src/index.ts'), + '@esri/solution-form': path.resolve(__dirname, '../../packages/form/src/index.ts'), + '@esri/solution-group': path.resolve(__dirname, '../../packages/group/src/index.ts'), + '@esri/solution-hub-types': path.resolve(__dirname, '../../packages/hub-types/src/index.ts'), + '@esri/solution-simple-types': path.resolve(__dirname, '../../packages/simple-types/src/index.ts'), + '@esri/solution-storymap': path.resolve(__dirname, '../../packages/storymap/src/index.ts'), + '@esri/solution-velocity': path.resolve(__dirname, '../../packages/velocity/src/index.ts'), + '@esri/solution-viewer': path.resolve(__dirname, '../../packages/viewer/src/index.ts'), + '@esri/solution-web-experience': path.resolve(__dirname, '../../packages/web-experience/src/index.ts'), + '@esri/solution-web-tool': path.resolve(__dirname, '../../packages/web-tool/src/index.ts'), + '@esri/solution-workflow': path.resolve(__dirname, '../../packages/workflow/src/index.ts'), +}); + const config = { entry: './src/index.ts', output: { @@ -16,7 +34,12 @@ const config = { module: { rules: [{ test: /\.(ts|tsx)$/i, - loader: 'ts-loader', + use: { + loader: 'ts-loader', + options: { + transpileOnly: !isProduction, + }, + }, exclude: ['/node_modules/'], },{ test: /\.css$/i, @@ -37,12 +60,17 @@ module.exports = () => { config.mode = 'production'; } else { config.mode = 'development'; + config.devtool = 'source-map'; + config.resolve.alias = { + ...(config.resolve.alias || {}), + ...createDevAliases(), + }; } config.experiments = { ...config.experiments, topLevelAwait: true - } + }; return config; }; diff --git a/demos/recreateSolution/package-lock.json b/demos/recreateSolution/package-lock.json index bee5e6fc2b..a6c11efa0a 100644 --- a/demos/recreateSolution/package-lock.json +++ b/demos/recreateSolution/package-lock.json @@ -2314,4 +2314,4 @@ "license": "MIT" } } -} \ No newline at end of file +} diff --git a/demos/recreateSolution/webpack.config.js b/demos/recreateSolution/webpack.config.js index 3cbc672d81..0c840fea8e 100644 --- a/demos/recreateSolution/webpack.config.js +++ b/demos/recreateSolution/webpack.config.js @@ -3,6 +3,24 @@ const path = require('path'); const isProduction = process.env.NODE_ENV == 'production'; +const createDevAliases = () => ({ + '@esri/solution-common': path.resolve(__dirname, '../../packages/common/src/index.ts'), + '@esri/solution-creator': path.resolve(__dirname, '../../packages/creator/src/index.ts'), + '@esri/solution-deployer': path.resolve(__dirname, '../../packages/deployer/src/index.ts'), + '@esri/solution-feature-layer': path.resolve(__dirname, '../../packages/feature-layer/src/index.ts'), + '@esri/solution-file': path.resolve(__dirname, '../../packages/file/src/index.ts'), + '@esri/solution-form': path.resolve(__dirname, '../../packages/form/src/index.ts'), + '@esri/solution-group': path.resolve(__dirname, '../../packages/group/src/index.ts'), + '@esri/solution-hub-types': path.resolve(__dirname, '../../packages/hub-types/src/index.ts'), + '@esri/solution-simple-types': path.resolve(__dirname, '../../packages/simple-types/src/index.ts'), + '@esri/solution-storymap': path.resolve(__dirname, '../../packages/storymap/src/index.ts'), + '@esri/solution-velocity': path.resolve(__dirname, '../../packages/velocity/src/index.ts'), + '@esri/solution-viewer': path.resolve(__dirname, '../../packages/viewer/src/index.ts'), + '@esri/solution-web-experience': path.resolve(__dirname, '../../packages/web-experience/src/index.ts'), + '@esri/solution-web-tool': path.resolve(__dirname, '../../packages/web-tool/src/index.ts'), + '@esri/solution-workflow': path.resolve(__dirname, '../../packages/workflow/src/index.ts'), +}); + const config = { entry: './src/index.ts', output: { @@ -16,7 +34,12 @@ const config = { module: { rules: [{ test: /\.(ts|tsx)$/i, - loader: 'ts-loader', + use: { + loader: 'ts-loader', + options: { + transpileOnly: !isProduction, + }, + }, exclude: ['/node_modules/'], },{ test: /\.css$/i, @@ -37,6 +60,11 @@ module.exports = () => { config.mode = 'production'; } else { config.mode = 'development'; + config.devtool = 'source-map'; + config.resolve.alias = { + ...(config.resolve.alias || {}), + ...createDevAliases(), + }; } return config; }; diff --git a/demos/reuseDeployedItems/package-lock.json b/demos/reuseDeployedItems/package-lock.json index fbdfe09dd0..ae55436819 100644 --- a/demos/reuseDeployedItems/package-lock.json +++ b/demos/reuseDeployedItems/package-lock.json @@ -2379,4 +2379,4 @@ "license": "MIT" } } -} \ No newline at end of file +} diff --git a/demos/reuseDeployedItems/webpack.config.js b/demos/reuseDeployedItems/webpack.config.js index 3cbc672d81..0c840fea8e 100644 --- a/demos/reuseDeployedItems/webpack.config.js +++ b/demos/reuseDeployedItems/webpack.config.js @@ -3,6 +3,24 @@ const path = require('path'); const isProduction = process.env.NODE_ENV == 'production'; +const createDevAliases = () => ({ + '@esri/solution-common': path.resolve(__dirname, '../../packages/common/src/index.ts'), + '@esri/solution-creator': path.resolve(__dirname, '../../packages/creator/src/index.ts'), + '@esri/solution-deployer': path.resolve(__dirname, '../../packages/deployer/src/index.ts'), + '@esri/solution-feature-layer': path.resolve(__dirname, '../../packages/feature-layer/src/index.ts'), + '@esri/solution-file': path.resolve(__dirname, '../../packages/file/src/index.ts'), + '@esri/solution-form': path.resolve(__dirname, '../../packages/form/src/index.ts'), + '@esri/solution-group': path.resolve(__dirname, '../../packages/group/src/index.ts'), + '@esri/solution-hub-types': path.resolve(__dirname, '../../packages/hub-types/src/index.ts'), + '@esri/solution-simple-types': path.resolve(__dirname, '../../packages/simple-types/src/index.ts'), + '@esri/solution-storymap': path.resolve(__dirname, '../../packages/storymap/src/index.ts'), + '@esri/solution-velocity': path.resolve(__dirname, '../../packages/velocity/src/index.ts'), + '@esri/solution-viewer': path.resolve(__dirname, '../../packages/viewer/src/index.ts'), + '@esri/solution-web-experience': path.resolve(__dirname, '../../packages/web-experience/src/index.ts'), + '@esri/solution-web-tool': path.resolve(__dirname, '../../packages/web-tool/src/index.ts'), + '@esri/solution-workflow': path.resolve(__dirname, '../../packages/workflow/src/index.ts'), +}); + const config = { entry: './src/index.ts', output: { @@ -16,7 +34,12 @@ const config = { module: { rules: [{ test: /\.(ts|tsx)$/i, - loader: 'ts-loader', + use: { + loader: 'ts-loader', + options: { + transpileOnly: !isProduction, + }, + }, exclude: ['/node_modules/'], },{ test: /\.css$/i, @@ -37,6 +60,11 @@ module.exports = () => { config.mode = 'production'; } else { config.mode = 'development'; + config.devtool = 'source-map'; + config.resolve.alias = { + ...(config.resolve.alias || {}), + ...createDevAliases(), + }; } return config; }; diff --git a/demos/verifySolution/package-lock.json b/demos/verifySolution/package-lock.json index cdb6739108..1e4e195d38 100644 --- a/demos/verifySolution/package-lock.json +++ b/demos/verifySolution/package-lock.json @@ -2350,4 +2350,4 @@ "license": "MIT" } } -} \ No newline at end of file +} diff --git a/demos/verifySolution/webpack.config.js b/demos/verifySolution/webpack.config.js index 3cbc672d81..0c840fea8e 100644 --- a/demos/verifySolution/webpack.config.js +++ b/demos/verifySolution/webpack.config.js @@ -3,6 +3,24 @@ const path = require('path'); const isProduction = process.env.NODE_ENV == 'production'; +const createDevAliases = () => ({ + '@esri/solution-common': path.resolve(__dirname, '../../packages/common/src/index.ts'), + '@esri/solution-creator': path.resolve(__dirname, '../../packages/creator/src/index.ts'), + '@esri/solution-deployer': path.resolve(__dirname, '../../packages/deployer/src/index.ts'), + '@esri/solution-feature-layer': path.resolve(__dirname, '../../packages/feature-layer/src/index.ts'), + '@esri/solution-file': path.resolve(__dirname, '../../packages/file/src/index.ts'), + '@esri/solution-form': path.resolve(__dirname, '../../packages/form/src/index.ts'), + '@esri/solution-group': path.resolve(__dirname, '../../packages/group/src/index.ts'), + '@esri/solution-hub-types': path.resolve(__dirname, '../../packages/hub-types/src/index.ts'), + '@esri/solution-simple-types': path.resolve(__dirname, '../../packages/simple-types/src/index.ts'), + '@esri/solution-storymap': path.resolve(__dirname, '../../packages/storymap/src/index.ts'), + '@esri/solution-velocity': path.resolve(__dirname, '../../packages/velocity/src/index.ts'), + '@esri/solution-viewer': path.resolve(__dirname, '../../packages/viewer/src/index.ts'), + '@esri/solution-web-experience': path.resolve(__dirname, '../../packages/web-experience/src/index.ts'), + '@esri/solution-web-tool': path.resolve(__dirname, '../../packages/web-tool/src/index.ts'), + '@esri/solution-workflow': path.resolve(__dirname, '../../packages/workflow/src/index.ts'), +}); + const config = { entry: './src/index.ts', output: { @@ -16,7 +34,12 @@ const config = { module: { rules: [{ test: /\.(ts|tsx)$/i, - loader: 'ts-loader', + use: { + loader: 'ts-loader', + options: { + transpileOnly: !isProduction, + }, + }, exclude: ['/node_modules/'], },{ test: /\.css$/i, @@ -37,6 +60,11 @@ module.exports = () => { config.mode = 'production'; } else { config.mode = 'development'; + config.devtool = 'source-map'; + config.resolve.alias = { + ...(config.resolve.alias || {}), + ...createDevAliases(), + }; } return config; }; From e3bbe14e96065d61086c81ed0b7b5fe4f951b169 Mon Sep 17 00:00:00 2001 From: John Hauck Date: Tue, 28 Apr 2026 12:01:22 -0600 Subject: [PATCH 2/3] fix buildDEV warnings and errors --- buildDEV.bat | 49 +++++++++++++++------ packages/common/src/arcgisRestJS.ts | 68 +++++++++++++++++------------ 2 files changed, 76 insertions(+), 41 deletions(-) diff --git a/buildDEV.bat b/buildDEV.bat index f7c33e4dd8..655e3e2828 100644 --- a/buildDEV.bat +++ b/buildDEV.bat @@ -62,52 +62,80 @@ call npm run build:cjs -- -- --sourceMap --declarationMap call commit-stamp.bat -rem DO NOT delete package.json files from dist directories - they are needed for webpack module resolution -rem Only delete the root package.json if needed for lerna, but keep esm/cjs ones +rem Delete dist package.json files (root, esm, and cjs) so that webpack does not +rem treat the compiled output as strict ESM. The dist/esm/package.json contains +rem {"type":"module"}, which forces webpack to require explicit .js extensions +rem on every relative import — but the TypeScript output uses extensionless +rem paths, so resolution fails. The standard build.bat deletes these for the +rem same reason. del/q packages\common\dist\package.json 2>nul +del/q packages\common\dist\cjs\package.json 2>nul +del/q packages\common\dist\esm\package.json 2>nul del/q packages\creator\dist\package.json 2>nul +del/q packages\creator\dist\cjs\package.json 2>nul +del/q packages\creator\dist\esm\package.json 2>nul del/q packages\deployer\dist\package.json 2>nul +del/q packages\deployer\dist\cjs\package.json 2>nul +del/q packages\deployer\dist\esm\package.json 2>nul del/q packages\feature-layer\dist\package.json 2>nul +del/q packages\feature-layer\dist\cjs\package.json 2>nul +del/q packages\feature-layer\dist\esm\package.json 2>nul del/q packages\file\dist\package.json 2>nul +del/q packages\file\dist\cjs\package.json 2>nul +del/q packages\file\dist\esm\package.json 2>nul del/q packages\form\dist\package.json 2>nul +del/q packages\form\dist\cjs\package.json 2>nul +del/q packages\form\dist\esm\package.json 2>nul del/q packages\group\dist\package.json 2>nul +del/q packages\group\dist\cjs\package.json 2>nul +del/q packages\group\dist\esm\package.json 2>nul del/q packages\hub-types\dist\package.json 2>nul +del/q packages\hub-types\dist\cjs\package.json 2>nul +del/q packages\hub-types\dist\esm\package.json 2>nul del/q packages\simple-types\dist\package.json 2>nul +del/q packages\simple-types\dist\cjs\package.json 2>nul +del/q packages\simple-types\dist\esm\package.json 2>nul del/q packages\storymap\dist\package.json 2>nul +del/q packages\storymap\dist\cjs\package.json 2>nul +del/q packages\storymap\dist\esm\package.json 2>nul del/q packages\velocity\dist\package.json 2>nul +del/q packages\velocity\dist\cjs\package.json 2>nul +del/q packages\velocity\dist\esm\package.json 2>nul del/q packages\viewer\dist\package.json 2>nul +del/q packages\viewer\dist\cjs\package.json 2>nul +del/q packages\viewer\dist\esm\package.json 2>nul del/q packages\web-experience\dist\package.json 2>nul +del/q packages\web-experience\dist\cjs\package.json 2>nul +del/q packages\web-experience\dist\esm\package.json 2>nul del/q packages\web-tool\dist\package.json 2>nul +del/q packages\web-tool\dist\cjs\package.json 2>nul +del/q packages\web-tool\dist\esm\package.json 2>nul del/q packages\workflow\dist\package.json 2>nul +del/q packages\workflow\dist\cjs\package.json 2>nul +del/q packages\workflow\dist\esm\package.json 2>nul rem Build all demos in development mode (unminified, readable) pushd demos\compareJSON -call npm run prebuild call npx webpack --mode=development popd pushd demos\compareSolutions -call npm run prebuild call npx webpack --mode=development popd pushd demos\copyItemInfo -call npm run prebuild call npx webpack --mode=development popd pushd demos\copySolutions -call npm run prebuild call npx webpack --mode=development popd pushd demos\createSolution -call npm run prebuild call npx webpack --mode=development popd pushd demos\deleteSolution -call npm run prebuild call npx webpack --mode=development popd @@ -117,27 +145,22 @@ call npx webpack --mode=development popd pushd demos\getItemInfo -call npm run prebuild call npx webpack --mode=development popd pushd demos\implementedTypes -call npm run prebuild call npx webpack --mode=development popd pushd demos\recreateSolution -call npm run prebuild call npx webpack --mode=development popd pushd demos\reuseDeployedItems -call npm run prebuild call npx webpack --mode=development popd pushd demos\verifySolution -call npm run prebuild call npx webpack --mode=development popd diff --git a/packages/common/src/arcgisRestJS.ts b/packages/common/src/arcgisRestJS.ts index d8cf45449d..14221b7d29 100644 --- a/packages/common/src/arcgisRestJS.ts +++ b/packages/common/src/arcgisRestJS.ts @@ -68,6 +68,14 @@ import { queryRelated as restQueryRelated, } from "@esri/arcgis-rest-feature-service"; export { + createFeatureService as svcAdminCreateFeatureService, + queryFeatures, + addFeatures, + applyEdits, +} from "@esri/arcgis-rest-feature-service"; +// TypeScript interfaces (no runtime export); use type-only re-exports to avoid +// webpack "was not found" warnings. +export type { IAddToServiceDefinitionOptions, IAddToServiceDefinitionResult, ICreateServiceParams, @@ -78,12 +86,33 @@ export { IQueryRelatedOptions, IQueryRelatedResponse, IRelatedRecordGroup, - createFeatureService as svcAdminCreateFeatureService, - queryFeatures, - addFeatures, - applyEdits, } from "@esri/arcgis-rest-feature-service"; export { + addItemData as restAddItemData, + addItemRelationship, + createFolder, + createGroup, + createItem, + createItemInFolder, + moveItem, + protectItem, + SearchQueryBuilder, + getGroupCategorySchema as restGetGroupCategorySchema, + getItem, + getItemData, + getItemResources as restGetItemResources, + getUserContent, + getPortal as restGetPortal, + getPortalUrl, + searchGroupContent, + setItemAccess, + searchGroups as restSearchGroups, + removeGroupUsers, + removeItem as restRemoveItem, +} from "@esri/arcgis-rest-portal"; +// TypeScript interfaces / type aliases (no runtime export); use type-only +// re-exports to avoid webpack "was not found" warnings. +export type { IAddFolderResponse, IAddItemDataOptions, ICreateItemOptions, @@ -120,36 +149,19 @@ export { IUserGroupOptions, IGroupSharingOptions, IUserItemOptions, - addItemData as restAddItemData, - addItemRelationship, - createFolder, - createGroup, - createItem, - createItemInFolder, - moveItem, - protectItem, - SearchQueryBuilder, - getGroupCategorySchema as restGetGroupCategorySchema, - getItem, - getItemData, - getItemResources as restGetItemResources, - getUserContent, - getPortal as restGetPortal, - getPortalUrl, - searchGroupContent, - setItemAccess, - searchGroups as restSearchGroups, - removeGroupUsers, - removeItem as restRemoveItem, } from "@esri/arcgis-rest-portal"; export { + ArcGISAuthError, + encodeFormData, + ArcGISIdentityManager as UserSession, +} from "@esri/arcgis-rest-request"; +// These are TypeScript interfaces (no runtime export from arcgis-rest-request), +// so re-export them as type-only exports to avoid webpack "was not found" warnings. +export type { IArcGISIdentityManagerOptions, ICredential, IRequestOptions, IParams, - ArcGISAuthError, - encodeFormData, - ArcGISIdentityManager as UserSession, } from "@esri/arcgis-rest-request"; export interface IFolderSuccessResult { success: boolean; From 2a67e201f3db74a28340976f7f77918cd4793dcb Mon Sep 17 00:00:00 2001 From: John Hauck Date: Tue, 28 Apr 2026 12:06:40 -0600 Subject: [PATCH 3/3] build formatting --- packages/common/src/arcgisRestJS.ts | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/packages/common/src/arcgisRestJS.ts b/packages/common/src/arcgisRestJS.ts index 14221b7d29..2716c39d59 100644 --- a/packages/common/src/arcgisRestJS.ts +++ b/packages/common/src/arcgisRestJS.ts @@ -150,19 +150,10 @@ export type { IGroupSharingOptions, IUserItemOptions, } from "@esri/arcgis-rest-portal"; -export { - ArcGISAuthError, - encodeFormData, - ArcGISIdentityManager as UserSession, -} from "@esri/arcgis-rest-request"; +export { ArcGISAuthError, encodeFormData, ArcGISIdentityManager as UserSession } from "@esri/arcgis-rest-request"; // These are TypeScript interfaces (no runtime export from arcgis-rest-request), // so re-export them as type-only exports to avoid webpack "was not found" warnings. -export type { - IArcGISIdentityManagerOptions, - ICredential, - IRequestOptions, - IParams, -} from "@esri/arcgis-rest-request"; +export type { IArcGISIdentityManagerOptions, ICredential, IRequestOptions, IParams } from "@esri/arcgis-rest-request"; export interface IFolderSuccessResult { success: boolean; folder: {