diff --git a/Composer/.eslintrc.js b/Composer/.eslintrc.js
index 39a1885f6e..e92493d57d 100644
--- a/Composer/.eslintrc.js
+++ b/Composer/.eslintrc.js
@@ -4,6 +4,7 @@ module.exports = {
'plugin:prettier/recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/eslint-recommended',
+ 'plugin:node/recommended',
'prettier/@typescript-eslint',
'plugin:@bfc/bfcomposer/recommended',
],
@@ -43,6 +44,17 @@ module.exports = {
'import/first': 'error',
'import/order': ['error', { 'newlines-between': 'always' }],
+ // node
+ 'node/no-unsupported-features/es-syntax': 'off',
+ 'node/no-missing-import': ['error', {
+ tryExtensions: ['.js', '.tsx', '.ts']
+ }],
+ 'node/no-extraneous-import': 'error',
+ 'node/no-unpublished-import': 'off',
+ 'node/no-deprecated-api': ['error', {
+ ignoreModuleItems: ['url.parse']
+ }],
+
// security
'security/detect-buffer-noassert': 'error',
'security/detect-child-process': 'error',
@@ -81,7 +93,7 @@ module.exports = {
},
overrides: [
{
- files: ['**/*.+(test|spec).+(js|jsx|ts|tsx)'],
+ files: ['**/*.+(test|spec).+(js|jsx|ts|tsx)', 'jest.d.ts'],
env: {
jest: true,
},
@@ -90,6 +102,8 @@ module.exports = {
'@typescript-eslint/no-object-literal-type-assertion': 'off',
'@typescript-eslint/unbound-method': 'off',
+ 'node/no-missing-import': 'off',
+
'security/detect-buffer-noassert': 'off',
'security/detect-child-process': 'off',
'security/detect-disable-mustache-escape': 'off',
@@ -104,6 +118,6 @@ module.exports = {
'security/detect-pseudoRandomBytes': 'off',
'security/detect-unsafe-regex': 'off',
},
- },
+ }
],
};
diff --git a/Composer/.npmrc b/Composer/.npmrc
index 2ae06b6797..7f27cb3216 100644
--- a/Composer/.npmrc
+++ b/Composer/.npmrc
@@ -1 +1 @@
-@bfcomposer:registry=https://botbuilder.myget.org/F/botbuilder-declarative/npm/
+@bfcomposer:registry=https://botbuilder.myget.org/F/botbuilder-declarative/npm/
\ No newline at end of file
diff --git a/Composer/package.json b/Composer/package.json
index 58cde06e03..48523c786c 100644
--- a/Composer/package.json
+++ b/Composer/package.json
@@ -85,6 +85,7 @@
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-jsx-a11y": "^6.1.3",
"eslint-plugin-lodash": "^6.0.0",
+ "eslint-plugin-node": "^10.0.0",
"eslint-plugin-notice": "^0.8.9",
"eslint-plugin-prettier": "^3.1.1",
"eslint-plugin-react": "^7.17.0",
diff --git a/Composer/packages/client/.eslintrc.js b/Composer/packages/client/.eslintrc.js
index 5a86f04754..314e55e83c 100644
--- a/Composer/packages/client/.eslintrc.js
+++ b/Composer/packages/client/.eslintrc.js
@@ -4,4 +4,7 @@ module.exports = {
project: './tsconfig.json',
tsconfigRootDir: __dirname,
},
+ rules: {
+ 'node/no-extraneous-import': 'off',
+ },
};
diff --git a/Composer/packages/client/src/extension-container/ExtensionContainer.tsx b/Composer/packages/client/src/extension-container/ExtensionContainer.tsx
index bb37bc25b1..5abc76c03c 100644
--- a/Composer/packages/client/src/extension-container/ExtensionContainer.tsx
+++ b/Composer/packages/client/src/extension-container/ExtensionContainer.tsx
@@ -3,12 +3,12 @@
import React, { useState, useEffect } from 'react';
import { initializeIcons } from '@uifabric/icons';
+import { LgEditorContext } from '@bfc/code-editor';
import { ShellData, ShellApi } from '@bfc/shared';
-import ApiClient from '../messenger/ApiClient';
-
import getEditor from './EditorMap';
-
+import { BASEPATH } from './../constants';
+import ApiClient from './../messenger/ApiClient';
import './extensionContainer.css';
initializeIcons(undefined, { disableWarnings: true });
@@ -157,7 +157,15 @@ function ExtensionContainer() {
const RealEditor = shellData.data ? getEditor() : null;
- return RealEditor && ;
+ if (RealEditor === null) {
+ return null;
+ }
+
+ return (
+
+
+
+ );
}
export default ExtensionContainer;
diff --git a/Composer/packages/client/src/pages/language-generation/code-editor.tsx b/Composer/packages/client/src/pages/language-generation/code-editor.tsx
index 7dab5c8265..f4e98a49e6 100644
--- a/Composer/packages/client/src/pages/language-generation/code-editor.tsx
+++ b/Composer/packages/client/src/pages/language-generation/code-editor.tsx
@@ -11,7 +11,9 @@ import { LgFile } from '@bfc/indexers';
import { editor } from '@bfcomposer/monaco-editor/esm/vs/editor/editor.api';
import { lgIndexer, Diagnostic, combineMessage, isValid } from '@bfc/indexers';
+import { BASEPATH } from '../../constants/index';
import { StoreContext } from '../../store';
+import { resolveToBasePath } from '../../utils/fileUtil';
import * as lgUtil from '../../utils/lgUtil';
const { check } = lgIndexer;
@@ -22,7 +24,7 @@ interface CodeEditorProps {
line: number;
}
-const lspServerPath = '/lg-language-server';
+const lspServerPath = resolveToBasePath(BASEPATH, '/lg-language-server');
export default function CodeEditor(props: CodeEditorProps) {
const { actions } = useContext(StoreContext);
diff --git a/Composer/packages/extensions/obiformeditor/package.json b/Composer/packages/extensions/obiformeditor/package.json
index a74aae2939..e380cd9c64 100644
--- a/Composer/packages/extensions/obiformeditor/package.json
+++ b/Composer/packages/extensions/obiformeditor/package.json
@@ -31,12 +31,14 @@
"@bfc/indexers": "*",
"@bfc/shared": "*",
"@bfcomposer/react-jsonschema-form": "1.6.5",
+ "@emotion/cache": "^10.0.17",
"@emotion/core": "^10.0.17",
"@types/vscode": "^1.40.0",
"@uifabric/fluent-theme": "7.1.4",
"@uifabric/styling": "7.7.1",
"classnames": "^2.2.6",
"format-message": "^6.2.1",
+ "json-schema": "^0.2.5",
"lodash": "^4.17.15",
"nanoid": "^2.0.1",
"office-ui-fabric-react": "7.62.0",
diff --git a/Composer/packages/extensions/obiformeditor/src/Form/widgets/LgEditorWidget.tsx b/Composer/packages/extensions/obiformeditor/src/Form/widgets/LgEditorWidget.tsx
index b898618943..b0dc208863 100644
--- a/Composer/packages/extensions/obiformeditor/src/Form/widgets/LgEditorWidget.tsx
+++ b/Composer/packages/extensions/obiformeditor/src/Form/widgets/LgEditorWidget.tsx
@@ -39,6 +39,7 @@ interface LgEditorWidgetProps {
name: string;
value?: string;
height?: number | string;
+ lgServerPath?: string;
onChange: (template?: string) => void;
}
@@ -119,7 +120,7 @@ export const LgEditorWidget: React.FC = props => {
hidePlaceholder={true}
helpURL={LG_HELP}
languageServer={{
- path: lspServerPath,
+ path: props.lgServerPath || lspServerPath,
}}
height={height}
/>
diff --git a/Composer/packages/extensions/visual-designer/package.json b/Composer/packages/extensions/visual-designer/package.json
index 10909e14cc..5e169a54b7 100644
--- a/Composer/packages/extensions/visual-designer/package.json
+++ b/Composer/packages/extensions/visual-designer/package.json
@@ -24,7 +24,9 @@
"lint:fix": "yarn lint --fix"
},
"dependencies": {
+ "@bfc/indexers": "*",
"@bfc/shared": "*",
+ "@emotion/cache": "^10.0.17",
"@emotion/core": "^10.0.7",
"@types/react": "16.9.0",
"classnames": "^2.2.6",
diff --git a/Composer/packages/lib/code-editor/.eslintrc.js b/Composer/packages/lib/code-editor/.eslintrc.js
index ccecb8e9c0..03d3b403a2 100644
--- a/Composer/packages/lib/code-editor/.eslintrc.js
+++ b/Composer/packages/lib/code-editor/.eslintrc.js
@@ -4,4 +4,8 @@ module.exports = {
project: './tsconfig.json',
tsconfigRootDir: __dirname,
},
+ rules: {
+ 'node/no-missing-import': 'off',
+ 'node/no-extraneous-import': 'off',
+ },
};
diff --git a/Composer/packages/lib/code-editor/src/LgEditor.tsx b/Composer/packages/lib/code-editor/src/LgEditor.tsx
index 02d6f69b7d..e25b371911 100644
--- a/Composer/packages/lib/code-editor/src/LgEditor.tsx
+++ b/Composer/packages/lib/code-editor/src/LgEditor.tsx
@@ -11,6 +11,7 @@ import { MonacoServices, MonacoLanguageClient } from 'monaco-languageclient';
import { registerLGLanguage } from './languages';
import { createUrl, createWebSocket, createLanguageClient } from './utils/lspUtil';
import { RichEditor, RichEditorProps } from './RichEditor';
+import LgEditorContext from './utils/LgEditorContext';
const LG_HELP =
'https://github.com/microsoft/BotBuilder-Samples/blob/master/experimental/language-generation/docs/lg-file-format.md';
@@ -27,19 +28,20 @@ export interface LGOption {
};
}
+export type LanguageServer = {
+ host?: string;
+ hostname?: string;
+ port?: number | string;
+ basePath?: string;
+ path: string;
+};
+
export interface LGLSPEditorProps extends RichEditorProps {
lgOption?: LGOption;
- languageServer?:
- | {
- host?: string;
- hostname?: string;
- port?: number | string;
- path: string;
- }
- | string;
+ languageServer?: LanguageServer;
}
-const defaultLGServer = {
+const defaultLGServer: LanguageServer = {
path: '/lg-language-server',
};
declare global {
@@ -62,13 +64,14 @@ async function initializeDocuments(lgOption: LGOption | undefined, uri: string)
}
export function LgEditor(props: LGLSPEditorProps) {
+ const config = React.useContext(LgEditorContext);
const options = {
quickSuggestions: true,
...props.options,
};
const { lgOption, languageServer, ...restProps } = props;
- const lgServer = languageServer || defaultLGServer;
+ const lgServer: LanguageServer = { basePath: config.basePath, ...(languageServer || defaultLGServer) };
const editorWillMount = (monaco: typeof monacoEditor) => {
registerLGLanguage(monaco);
diff --git a/Composer/packages/lib/code-editor/src/index.ts b/Composer/packages/lib/code-editor/src/index.ts
index b5a5ed4a21..14512a63a3 100644
--- a/Composer/packages/lib/code-editor/src/index.ts
+++ b/Composer/packages/lib/code-editor/src/index.ts
@@ -6,3 +6,4 @@ export * from './JsonEditor';
export * from './LgEditor';
export * from './LuEditor';
export * from './RichEditor';
+export { default as LgEditorContext } from './utils/LgEditorContext';
diff --git a/Composer/packages/lib/code-editor/src/utils/LgEditorContext.ts b/Composer/packages/lib/code-editor/src/utils/LgEditorContext.ts
new file mode 100644
index 0000000000..06a01e6ad8
--- /dev/null
+++ b/Composer/packages/lib/code-editor/src/utils/LgEditorContext.ts
@@ -0,0 +1,8 @@
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT License.
+
+import React from 'react';
+
+const LgEditorContext = React.createContext<{ basePath: string }>({ basePath: '/' });
+
+export default LgEditorContext;
diff --git a/Composer/packages/lib/code-editor/src/utils/lspUtil.ts b/Composer/packages/lib/code-editor/src/utils/lspUtil.ts
index b45203adbd..f2c4d463f4 100644
--- a/Composer/packages/lib/code-editor/src/utils/lspUtil.ts
+++ b/Composer/packages/lib/code-editor/src/utils/lspUtil.ts
@@ -12,14 +12,14 @@ import {
LanguageClientOptions,
} from 'monaco-languageclient';
-export function createUrl(server: { [key: string]: string } | string): string {
+export function createUrl(server: { [key: string]: string | number | undefined } | string): string {
if (typeof server === 'string') {
return normalizeUrl.default(server).replace(/^http/, 'ws');
}
- const { host, hostname = location.hostname, port = location.port, path = '/' } = server;
+ const { host, hostname = location.hostname, port = location.port, path = '/', basePath = '' } = server;
const protocol = location.protocol === 'https:' ? 'wss' : 'ws';
const endHost = host || `${hostname}:${port}`;
- return normalizeUrl.default(`${protocol}://${endHost}/${path}`);
+ return normalizeUrl.default(`${protocol}://${endHost}/${basePath}/${path}`);
}
export function createWebSocket(url: string): WebSocket {
diff --git a/Composer/packages/lib/indexers/package.json b/Composer/packages/lib/indexers/package.json
index 7389d35561..8c38bf05b0 100644
--- a/Composer/packages/lib/indexers/package.json
+++ b/Composer/packages/lib/indexers/package.json
@@ -31,6 +31,8 @@
"@bfcomposer/bf-lu": "1.1.2",
"botbuilder-lg": "4.7.0-preview.93464",
"botframework-expressions": "4.7.0-preview.93464",
- "lodash": "^4.17.15"
+ "format-message": "^6.2.3",
+ "lodash": "^4.17.15",
+ "ludown": "^1.3.4"
}
}
diff --git a/Composer/packages/lib/shared/package.json b/Composer/packages/lib/shared/package.json
index 0468b585c0..a16101e931 100644
--- a/Composer/packages/lib/shared/package.json
+++ b/Composer/packages/lib/shared/package.json
@@ -48,6 +48,7 @@
"ts-jest": "^24.1.0"
},
"dependencies": {
+ "botbuilder-lg": "4.7.0-preview.93464",
"json-schema": "^0.2.5",
"nanoid": "^2.1.6"
}
diff --git a/Composer/packages/server/.eslintrc.js b/Composer/packages/server/.eslintrc.js
index 8cbe448349..51d0ab4ac7 100644
--- a/Composer/packages/server/.eslintrc.js
+++ b/Composer/packages/server/.eslintrc.js
@@ -3,6 +3,8 @@ module.exports = {
parserOptions: {
project: './tsconfig.json',
tsconfigRootDir: __dirname,
+ ecmaVersion: 6,
+ sourceType: 'module',
},
rules: {
'security/detect-non-literal-fs-filename': 'off',
diff --git a/Composer/packages/server/src/models/connector/selfHostConnector.ts b/Composer/packages/server/src/models/connector/selfHostConnector.ts
index 1bd6715497..0eb6dd1f7e 100644
--- a/Composer/packages/server/src/models/connector/selfHostConnector.ts
+++ b/Composer/packages/server/src/models/connector/selfHostConnector.ts
@@ -13,9 +13,13 @@ export class SelfHostBotConnector implements IBotConnector {
constructor(skipLoad?: boolean) {
if (!skipLoad) {
// for production
+ //eslint-disable-next-line node/no-missing-require
this.buildAsync = require('commands/build').handlerAsync;
+ //eslint-disable-next-line node/no-missing-require
this.publishAsync = require('commands/publish').handlerAsync;
+ //eslint-disable-next-line node/no-missing-require
this.getEditingStatusAsync = require('commands/editingStatus').handlerAsync;
+ //eslint-disable-next-line node/no-missing-require
this.getPublishHistoryAsync = require('commands/getPublishHistory').handlerAsync;
} else {
// for testing this class
diff --git a/Composer/packages/server/src/server.ts b/Composer/packages/server/src/server.ts
index 2c0e980fa1..c2a8178057 100644
--- a/Composer/packages/server/src/server.ts
+++ b/Composer/packages/server/src/server.ts
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-
import 'dotenv/config';
import path from 'path';
import crypto from 'crypto';
@@ -41,6 +40,19 @@ const CS_POLICIES = [
'upgrade-insecure-requests;',
];
+async function configAppInsightsAsNeeded(): Promise {
+ const appInsightsKey = process.env.SharedAppInsightsKey;
+ if (appInsightsKey) {
+ //eslint-disable-next-line node/no-missing-require
+ const configAppInsights = require('commands/configAppInsights').default as SelfHostCommands.SetupTelemetry;
+ await configAppInsights(appInsightsKey);
+
+ return true;
+ }
+
+ return false;
+}
+
app.all('*', function(req: Request, res: Response, next: NextFunction) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,HEAD,OPTIONS,POST,PUT,DELETE');
@@ -101,12 +113,6 @@ app.get('*', function(req, res) {
});
const port = process.env.PORT || 5000;
-const server = app.listen(port, () => {
- if (process.env.NODE_ENV === 'production') {
- // eslint-disable-next-line no-console
- console.log(`\n\nComposer now running at:\n\nhttp://localhost:${port}\n`);
- }
-});
const wss: ws.Server = new ws.Server({
noServer: true,
@@ -121,13 +127,21 @@ function launchLanguageServer(socket: rpc.IWebSocket) {
server.start();
}
-attachLSPServer(wss, server, '/lg-language-server', webSocket => {
- // launch language server when the web socket is opened
- if (webSocket.readyState === webSocket.OPEN) {
- launchLanguageServer(webSocket);
- } else {
- webSocket.on('open', () => {
+configAppInsightsAsNeeded().then(() => {
+ const server = app.listen(port, () => {
+ if (process.env.NODE_ENV === 'production') {
+ // eslint-disable-next-line no-console
+ console.log(`\n\nComposer now running at:\n\nhttp://localhost:${port}\n`);
+ }
+ });
+ attachLSPServer(wss, server, `${BASEURL}/lg-language-server`, webSocket => {
+ // launch language server when the web socket is opened
+ if (webSocket.readyState === webSocket.OPEN) {
launchLanguageServer(webSocket);
- });
- }
+ } else {
+ webSocket.on('open', () => {
+ launchLanguageServer(webSocket);
+ });
+ }
+ });
});
diff --git a/Composer/packages/server/src/types/selfHostCommands.d.ts b/Composer/packages/server/src/types/selfHostCommands.d.ts
index e9b36340c8..f0ec598f69 100644
--- a/Composer/packages/server/src/types/selfHostCommands.d.ts
+++ b/Composer/packages/server/src/types/selfHostCommands.d.ts
@@ -51,4 +51,7 @@ declare namespace SelfHostCommands {
export interface Publish {
(argv: PublishARGV): Promise;
}
+ export interface SetupTelemetry {
+ (key: string): Promise;
+ }
}
diff --git a/Composer/packages/tools/language-servers/language-generation/package.json b/Composer/packages/tools/language-servers/language-generation/package.json
index 317bdfa940..f0ab1733ed 100644
--- a/Composer/packages/tools/language-servers/language-generation/package.json
+++ b/Composer/packages/tools/language-servers/language-generation/package.json
@@ -16,8 +16,13 @@
},
"dependencies": {
"botbuilder-lg": "4.7.0-preview.93464",
+ "botframework-expressions": "4.7.0-preview.93464",
+ "lodash": "^4.17.13",
"request-light": "^0.2.2",
- "vscode-languageserver": "^5.3.0-next"
+ "vscode-languageserver": "^5.3.0-next",
+ "vscode-languageserver-protocol": "^3.15.0-next.8",
+ "vscode-languageserver-types": "^3.15.0-next.4",
+ "vscode-uri": "^1.0.5"
},
"devDependencies": {
"@types/node": "^12.0.4",
diff --git a/Composer/yarn.lock b/Composer/yarn.lock
index fa75a114bf..59d4f197fc 100644
--- a/Composer/yarn.lock
+++ b/Composer/yarn.lock
@@ -7661,6 +7661,14 @@ eslint-plugin-emotion@^10.0.14:
resolved "https://registry.yarnpkg.com/eslint-plugin-emotion/-/eslint-plugin-emotion-10.0.14.tgz#c643ff2f34f85ae77a65b2056915e939cf7e8129"
integrity sha512-kI0hTPA5oo7MAc2YcdF1JcT36TZ1Ci0S5sbA9aojZ3leEPyCH34YBB76/8NQ3/9gybqrekIEuEhr8MP6JZf95Q==
+eslint-plugin-es@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz#0f5f5da5f18aa21989feebe8a73eadefb3432976"
+ integrity sha512-f6fceVtg27BR02EYnBhgWLFQfK6bN4Ll0nQFrBHOlCsAyxeZkn0NHns5O0YZOPrV1B3ramd6cgFwaoFLcSkwEQ==
+ dependencies:
+ eslint-utils "^1.4.2"
+ regexpp "^3.0.0"
+
eslint-plugin-eslint-plugin@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-2.1.0.tgz#a7a00f15a886957d855feacaafee264f039e62d5"
@@ -7716,6 +7724,18 @@ eslint-plugin-lodash@^6.0.0:
dependencies:
lodash "^4.17.15"
+eslint-plugin-node@^10.0.0:
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz#fd1adbc7a300cf7eb6ac55cf4b0b6fc6e577f5a6"
+ integrity sha512-1CSyM/QCjs6PXaT18+zuAXsjXGIGo5Rw630rSKwokSs2jrYURQc4R5JZpoanNCqwNmepg+0eZ9L7YiRUJb8jiQ==
+ dependencies:
+ eslint-plugin-es "^2.0.0"
+ eslint-utils "^1.4.2"
+ ignore "^5.1.1"
+ minimatch "^3.0.4"
+ resolve "^1.10.1"
+ semver "^6.1.0"
+
eslint-plugin-notice@^0.8.9:
version "0.8.9"
resolved "https://registry.yarnpkg.com/eslint-plugin-notice/-/eslint-plugin-notice-0.8.9.tgz#b3b55ba218b36a01fd4de998f68c66a8bf238a82"
@@ -7784,7 +7804,7 @@ eslint-scope@^5.0.0:
esrecurse "^4.1.0"
estraverse "^4.1.1"
-eslint-utils@^1.4.3:
+eslint-utils@^1.4.2, eslint-utils@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
@@ -9494,6 +9514,11 @@ ignore@^4.0.3, ignore@^4.0.6:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+ignore@^5.1.1:
+ version "5.1.4"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf"
+ integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==
+
immer@1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d"
@@ -14797,6 +14822,13 @@ resolve@1.x, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
dependencies:
path-parse "^1.0.6"
+resolve@^1.10.1, resolve@^1.13.1:
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz#be0aa4c06acd53083505abb35f4d66932ab35d16"
+ integrity sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==
+ dependencies:
+ path-parse "^1.0.6"
+
resolve@^1.11.0:
version "1.12.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6"
@@ -14804,13 +14836,6 @@ resolve@^1.11.0:
dependencies:
path-parse "^1.0.6"
-resolve@^1.13.1:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz#be0aa4c06acd53083505abb35f4d66932ab35d16"
- integrity sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==
- dependencies:
- path-parse "^1.0.6"
-
responselike@1.0.2, responselike@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"