From 965e38db828f0ac78ef641137bb58f6477f1317f Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Fri, 14 May 2021 18:42:18 +0200 Subject: [PATCH 01/12] chore(tools): bootstrap nx workpsace-tools and create workspace generator --- .prettierignore | 3 + jest.config.js | 2 +- nx.json | 482 +++++------------- package.json | 15 +- tools/.eslintrc.json | 7 + tools/generators/.gitkeep | 0 .../files/index.spec.ts__tmpl__ | 20 + .../files/index.ts__tmpl__ | 12 + .../files/schema.json__tmpl__ | 17 + .../files/schema.ts__tmpl__ | 6 + .../workspace-generator/index.spec.ts | 103 ++++ tools/generators/workspace-generator/index.ts | 51 ++ .../workspace-generator/schema.json | 24 + .../generators/workspace-generator/schema.ts | 10 + tools/jest.config.js | 19 + tools/tsconfig.json | 19 + tools/tsconfig.lib.json | 11 + tools/tsconfig.spec.json | 9 + tools/tsconfig.tools.json | 13 + workspace.json | 27 + yarn.lock | 359 ++++++++++++- 21 files changed, 814 insertions(+), 395 deletions(-) create mode 100644 tools/.eslintrc.json create mode 100644 tools/generators/.gitkeep create mode 100644 tools/generators/workspace-generator/files/index.spec.ts__tmpl__ create mode 100644 tools/generators/workspace-generator/files/index.ts__tmpl__ create mode 100644 tools/generators/workspace-generator/files/schema.json__tmpl__ create mode 100644 tools/generators/workspace-generator/files/schema.ts__tmpl__ create mode 100644 tools/generators/workspace-generator/index.spec.ts create mode 100644 tools/generators/workspace-generator/index.ts create mode 100644 tools/generators/workspace-generator/schema.json create mode 100644 tools/generators/workspace-generator/schema.ts create mode 100644 tools/jest.config.js create mode 100644 tools/tsconfig.json create mode 100644 tools/tsconfig.lib.json create mode 100644 tools/tsconfig.spec.json create mode 100644 tools/tsconfig.tools.json diff --git a/.prettierignore b/.prettierignore index 46698dfd31ee1..4d4bac53f17fa 100644 --- a/.prettierignore +++ b/.prettierignore @@ -51,6 +51,9 @@ gitignore *.svg *.txt *.mdx +.gitkeep +*__tmpl__ +*__template__ # template files which actually follow a different language's formatting *.hbs diff --git a/jest.config.js b/jest.config.js index e494e264cf309..f948c631bf49a 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,3 +1,3 @@ module.exports = { - projects: ['/packages/react-menu', '/packages/react-storybook'], + projects: ['/tools', '/packages/react-menu', '/packages/react-storybook'], }; diff --git a/nx.json b/nx.json index 38b724f1e75df..42e9df1632c05 100644 --- a/nx.json +++ b/nx.json @@ -2,10 +2,7 @@ "npmScope": "fluentui", "implicitDependencies": { "workspace.json": "*", - "package.json": { - "dependencies": "*", - "devDependencies": "*" - }, + "package.json": { "dependencies": "*", "devDependencies": "*" }, "nx.json": "*" }, "tasksRunnerOptions": { @@ -18,362 +15,125 @@ } }, "projects": { - "a11y-tests": { - "implicitDependencies": [] - }, - "codesandbox-react-northstar-template": { - "implicitDependencies": [] - }, - "codesandbox-react-template": { - "implicitDependencies": [] - }, - "perf-test": { - "implicitDependencies": [] - }, - "@fluentui/pr-deploy-site": { - "implicitDependencies": [] - }, - "@fluentui/public-docsite": { - "implicitDependencies": [] - }, - "@fluentui/public-docsite-resources": { - "implicitDependencies": [] - }, - "server-rendered-app": { - "implicitDependencies": [] - }, - "ssr-tests": { - "implicitDependencies": [] - }, - "test-bundles": { - "implicitDependencies": [] - }, - "theming-designer": { - "implicitDependencies": [] - }, - "todo-app": { - "implicitDependencies": [] - }, - "vr-tests": { - "implicitDependencies": [] - }, - "@fluentui/a11y-testing": { - "implicitDependencies": [] - }, - "@fluentui/api-docs": { - "implicitDependencies": [] - }, - "@fluentui/azure-themes": { - "implicitDependencies": [] - }, - "@fluentui/babel-make-styles": { - "implicitDependencies": [] - }, - "@fluentui/codemods": { - "implicitDependencies": [] - }, - "@fluentui/common-styles": { - "implicitDependencies": [] - }, - "@fluentui/cra-template": { - "implicitDependencies": [] - }, - "@fluentui/date-time-utilities": { - "implicitDependencies": [] - }, - "@fluentui/dom-utilities": { - "implicitDependencies": [] - }, - "@fluentui/eslint-plugin": { - "implicitDependencies": [] - }, - "@fluentui/example-data": { - "implicitDependencies": [] - }, - "@fluentui/ability-attributes": { - "implicitDependencies": [] - }, - "@fluentui/accessibility": { - "implicitDependencies": [] - }, - "@fluentui/circulars-test": { - "implicitDependencies": [] - }, - "@fluentui/code-sandbox": { - "implicitDependencies": [] - }, - "@fluentui/digest": { - "implicitDependencies": [] - }, - "@fluentui/docs": { - "implicitDependencies": [] - }, - "@fluentui/docs-components": { - "implicitDependencies": [] - }, - "@fluentui/e2e": { - "implicitDependencies": [] - }, - "@fluentui/local-sandbox": { - "implicitDependencies": [] - }, - "@fluentui/noop": { - "implicitDependencies": [] - }, - "@fluentui/perf": { - "implicitDependencies": [] - }, - "@fluentui/perf-test": { - "implicitDependencies": [] - }, - "@fluentui/projects-test": { - "implicitDependencies": [] - }, - "@fluentui/react-bindings": { - "implicitDependencies": [] - }, - "@fluentui/react-builder": { - "implicitDependencies": [] - }, - "@fluentui/react-component-event-listener": { - "implicitDependencies": [] - }, - "@fluentui/react-component-nesting-registry": { - "implicitDependencies": [] - }, - "@fluentui/react-component-ref": { - "implicitDependencies": [] - }, - "@fluentui/react-icons-northstar": { - "implicitDependencies": [] - }, - "@fluentui/react-northstar": { - "implicitDependencies": [] - }, - "@fluentui/react-northstar-emotion-renderer": { - "implicitDependencies": [] - }, - "@fluentui/react-northstar-fela-renderer": { - "implicitDependencies": [] - }, - "@fluentui/react-northstar-prototypes": { - "implicitDependencies": [] - }, - "@fluentui/react-northstar-styles-renderer": { - "implicitDependencies": [] - }, - "@fluentui/react-proptypes": { - "implicitDependencies": [] - }, - "@fluentui/react-telemetry": { - "implicitDependencies": [] - }, - "@fluentui/state": { - "implicitDependencies": [] - }, - "@fluentui/styles": { - "implicitDependencies": [] - }, - "@fluentui/font-icons-mdl2": { - "implicitDependencies": [] - }, - "@fluentui/foundation-legacy": { - "implicitDependencies": [] - }, - "@fluentui/jest-serializer-make-styles": { - "implicitDependencies": [] - }, - "@fluentui/jest-serializer-merge-styles": { - "implicitDependencies": [] - }, - "@fluentui/keyboard-key": { - "implicitDependencies": [] - }, - "@fluentui/make-styles": { - "implicitDependencies": [] - }, - "@fluentui/merge-styles": { - "implicitDependencies": [] - }, - "@fluentui/monaco-editor": { - "implicitDependencies": [] - }, - "@fluentui/public-docsite-setup": { - "implicitDependencies": [] - }, - "@fluentui/react": { - "implicitDependencies": [] - }, - "@fluentui/react-accordion": { - "implicitDependencies": [] - }, - "@fluentui/react-avatar": { - "implicitDependencies": [] - }, - "@fluentui/react-badge": { - "implicitDependencies": [] - }, - "@fluentui/react-button": { - "implicitDependencies": [] - }, - "@fluentui/react-cards": { - "implicitDependencies": [] - }, - "@fluentui/react-charting": { - "implicitDependencies": [] - }, - "@fluentui/react-checkbox": { - "implicitDependencies": [] - }, - "@fluentui/react-components": { - "implicitDependencies": [] - }, - "@fluentui/react-compose": { - "implicitDependencies": [] - }, - "@fluentui/react-conformance": { - "implicitDependencies": [] - }, - "@fluentui/react-context-selector": { - "implicitDependencies": [] - }, - "@fluentui/react-date-time": { - "implicitDependencies": [] - }, - "@fluentui/react-divider": { - "implicitDependencies": [] - }, - "@fluentui/react-docsite-components": { - "implicitDependencies": [] - }, - "@fluentui/react-examples": { - "implicitDependencies": [] - }, - "@fluentui/react-experiments": { - "implicitDependencies": [] - }, - "@fluentui/react-file-type-icons": { - "implicitDependencies": [] - }, - "@fluentui/react-flex": { - "implicitDependencies": [] - }, - "@fluentui/react-focus": { - "implicitDependencies": [] - }, - "@fluentui/react-hooks": { - "implicitDependencies": [] - }, - "@fluentui/react-icon-provider": { - "implicitDependencies": [] - }, - "@fluentui/react-icons-mdl2": { - "implicitDependencies": [] - }, - "@fluentui/react-icons-mdl2-branded": { - "implicitDependencies": [] - }, - "@fluentui/react-image": { - "implicitDependencies": [] - }, - "@fluentui/react-link": { - "implicitDependencies": [] - }, - "@fluentui/react-make-styles": { - "implicitDependencies": [] - }, - "@fluentui/react-menu": { - "implicitDependencies": [] - }, - "@fluentui/react-monaco-editor": { - "implicitDependencies": [] - }, - "@fluentui/react-popup": { - "implicitDependencies": [] - }, - "@fluentui/react-portal": { - "implicitDependencies": [] - }, - "@fluentui/react-positioning": { - "implicitDependencies": [] - }, - "@fluentui/react-provider": { - "implicitDependencies": [] - }, - "@fluentui/react-shared-contexts": { - "implicitDependencies": [] - }, - "@fluentui/react-slider": { - "implicitDependencies": [] - }, - "@fluentui/react-storybook": { - "implicitDependencies": [] - }, - "@fluentui/react-tabs": { - "implicitDependencies": [] - }, - "@fluentui/react-tabster": { - "implicitDependencies": [] - }, - "@fluentui/react-text": { - "implicitDependencies": [] - }, - "@fluentui/react-theme": { - "implicitDependencies": [] - }, - "@fluentui/react-theme-provider": { - "implicitDependencies": [] - }, - "@fluentui/react-toggle": { - "implicitDependencies": [] - }, - "@fluentui/react-tooltip": { - "implicitDependencies": [] - }, - "@fluentui/react-utilities": { - "implicitDependencies": [] - }, - "@fluentui/react-window-provider": { - "implicitDependencies": [] - }, - "@fluentui/scheme-utilities": { - "implicitDependencies": [] - }, - "@fluentui/set-version": { - "implicitDependencies": [] - }, - "@fluentui/storybook": { - "implicitDependencies": [] - }, - "@fluentui/style-utilities": { - "implicitDependencies": [] - }, - "@fluentui/test-utilities": { - "implicitDependencies": [] - }, - "@fluentui/theme": { - "implicitDependencies": [] - }, - "@fluentui/theme-samples": { - "implicitDependencies": [] - }, - "@fluentui/utilities": { - "implicitDependencies": [] - }, - "@fluentui/web-components": { - "implicitDependencies": [] - }, - "@fluentui/webpack-utilities": { - "implicitDependencies": [] - }, - "@fluentui/scripts": { - "implicitDependencies": [] - }, - "@fluentui/react-popover": { - "implicitDependencies": [] - } + "a11y-tests": { "implicitDependencies": [] }, + "codesandbox-react-northstar-template": { "implicitDependencies": [] }, + "codesandbox-react-template": { "implicitDependencies": [] }, + "perf-test": { "implicitDependencies": [] }, + "@fluentui/pr-deploy-site": { "implicitDependencies": [] }, + "@fluentui/public-docsite": { "implicitDependencies": [] }, + "@fluentui/public-docsite-resources": { "implicitDependencies": [] }, + "server-rendered-app": { "implicitDependencies": [] }, + "ssr-tests": { "implicitDependencies": [] }, + "test-bundles": { "implicitDependencies": [] }, + "theming-designer": { "implicitDependencies": [] }, + "todo-app": { "implicitDependencies": [] }, + "vr-tests": { "implicitDependencies": [] }, + "@fluentui/a11y-testing": { "implicitDependencies": [] }, + "@fluentui/api-docs": { "implicitDependencies": [] }, + "@fluentui/azure-themes": { "implicitDependencies": [] }, + "@fluentui/babel-make-styles": { "implicitDependencies": [] }, + "@fluentui/codemods": { "implicitDependencies": [] }, + "@fluentui/common-styles": { "implicitDependencies": [] }, + "@fluentui/cra-template": { "implicitDependencies": [] }, + "@fluentui/date-time-utilities": { "implicitDependencies": [] }, + "@fluentui/dom-utilities": { "implicitDependencies": [] }, + "@fluentui/eslint-plugin": { "implicitDependencies": [] }, + "@fluentui/example-data": { "implicitDependencies": [] }, + "@fluentui/ability-attributes": { "implicitDependencies": [] }, + "@fluentui/accessibility": { "implicitDependencies": [] }, + "@fluentui/circulars-test": { "implicitDependencies": [] }, + "@fluentui/code-sandbox": { "implicitDependencies": [] }, + "@fluentui/digest": { "implicitDependencies": [] }, + "@fluentui/docs": { "implicitDependencies": [] }, + "@fluentui/docs-components": { "implicitDependencies": [] }, + "@fluentui/e2e": { "implicitDependencies": [] }, + "@fluentui/local-sandbox": { "implicitDependencies": [] }, + "@fluentui/noop": { "implicitDependencies": [] }, + "@fluentui/perf": { "implicitDependencies": [] }, + "@fluentui/perf-test": { "implicitDependencies": [] }, + "@fluentui/projects-test": { "implicitDependencies": [] }, + "@fluentui/react-bindings": { "implicitDependencies": [] }, + "@fluentui/react-builder": { "implicitDependencies": [] }, + "@fluentui/react-component-event-listener": { "implicitDependencies": [] }, + "@fluentui/react-component-nesting-registry": { "implicitDependencies": [] }, + "@fluentui/react-component-ref": { "implicitDependencies": [] }, + "@fluentui/react-icons-northstar": { "implicitDependencies": [] }, + "@fluentui/react-northstar": { "implicitDependencies": [] }, + "@fluentui/react-northstar-emotion-renderer": { "implicitDependencies": [] }, + "@fluentui/react-northstar-fela-renderer": { "implicitDependencies": [] }, + "@fluentui/react-northstar-prototypes": { "implicitDependencies": [] }, + "@fluentui/react-northstar-styles-renderer": { "implicitDependencies": [] }, + "@fluentui/react-proptypes": { "implicitDependencies": [] }, + "@fluentui/react-telemetry": { "implicitDependencies": [] }, + "@fluentui/state": { "implicitDependencies": [] }, + "@fluentui/styles": { "implicitDependencies": [] }, + "@fluentui/font-icons-mdl2": { "implicitDependencies": [] }, + "@fluentui/foundation-legacy": { "implicitDependencies": [] }, + "@fluentui/jest-serializer-make-styles": { "implicitDependencies": [] }, + "@fluentui/jest-serializer-merge-styles": { "implicitDependencies": [] }, + "@fluentui/keyboard-key": { "implicitDependencies": [] }, + "@fluentui/make-styles": { "implicitDependencies": [] }, + "@fluentui/merge-styles": { "implicitDependencies": [] }, + "@fluentui/monaco-editor": { "implicitDependencies": [] }, + "@fluentui/public-docsite-setup": { "implicitDependencies": [] }, + "@fluentui/react": { "implicitDependencies": [] }, + "@fluentui/react-accordion": { "implicitDependencies": [] }, + "@fluentui/react-avatar": { "implicitDependencies": [] }, + "@fluentui/react-badge": { "implicitDependencies": [] }, + "@fluentui/react-button": { "implicitDependencies": [] }, + "@fluentui/react-cards": { "implicitDependencies": [] }, + "@fluentui/react-charting": { "implicitDependencies": [] }, + "@fluentui/react-checkbox": { "implicitDependencies": [] }, + "@fluentui/react-components": { "implicitDependencies": [] }, + "@fluentui/react-compose": { "implicitDependencies": [] }, + "@fluentui/react-conformance": { "implicitDependencies": [] }, + "@fluentui/react-context-selector": { "implicitDependencies": [] }, + "@fluentui/react-date-time": { "implicitDependencies": [] }, + "@fluentui/react-divider": { "implicitDependencies": [] }, + "@fluentui/react-docsite-components": { "implicitDependencies": [] }, + "@fluentui/react-examples": { "implicitDependencies": [] }, + "@fluentui/react-experiments": { "implicitDependencies": [] }, + "@fluentui/react-file-type-icons": { "implicitDependencies": [] }, + "@fluentui/react-flex": { "implicitDependencies": [] }, + "@fluentui/react-focus": { "implicitDependencies": [] }, + "@fluentui/react-hooks": { "implicitDependencies": [] }, + "@fluentui/react-icon-provider": { "implicitDependencies": [] }, + "@fluentui/react-icons-mdl2": { "implicitDependencies": [] }, + "@fluentui/react-icons-mdl2-branded": { "implicitDependencies": [] }, + "@fluentui/react-image": { "implicitDependencies": [] }, + "@fluentui/react-link": { "implicitDependencies": [] }, + "@fluentui/react-make-styles": { "implicitDependencies": [] }, + "@fluentui/react-menu": { "implicitDependencies": [] }, + "@fluentui/react-monaco-editor": { "implicitDependencies": [] }, + "@fluentui/react-popup": { "implicitDependencies": [] }, + "@fluentui/react-portal": { "implicitDependencies": [] }, + "@fluentui/react-positioning": { "implicitDependencies": [] }, + "@fluentui/react-provider": { "implicitDependencies": [] }, + "@fluentui/react-shared-contexts": { "implicitDependencies": [] }, + "@fluentui/react-slider": { "implicitDependencies": [] }, + "@fluentui/react-storybook": { "implicitDependencies": [] }, + "@fluentui/react-tabs": { "implicitDependencies": [] }, + "@fluentui/react-tabster": { "implicitDependencies": [] }, + "@fluentui/react-text": { "implicitDependencies": [] }, + "@fluentui/react-theme": { "implicitDependencies": [] }, + "@fluentui/react-theme-provider": { "implicitDependencies": [] }, + "@fluentui/react-toggle": { "implicitDependencies": [] }, + "@fluentui/react-tooltip": { "implicitDependencies": [] }, + "@fluentui/react-utilities": { "implicitDependencies": [] }, + "@fluentui/react-window-provider": { "implicitDependencies": [] }, + "@fluentui/scheme-utilities": { "implicitDependencies": [] }, + "@fluentui/set-version": { "implicitDependencies": [] }, + "@fluentui/storybook": { "implicitDependencies": [] }, + "@fluentui/style-utilities": { "implicitDependencies": [] }, + "@fluentui/test-utilities": { "implicitDependencies": [] }, + "@fluentui/theme": { "implicitDependencies": [] }, + "@fluentui/theme-samples": { "implicitDependencies": [] }, + "@fluentui/utilities": { "implicitDependencies": [] }, + "@fluentui/web-components": { "implicitDependencies": [] }, + "@fluentui/webpack-utilities": { "implicitDependencies": [] }, + "@fluentui/scripts": { "implicitDependencies": [] }, + "@fluentui/react-popover": { "implicitDependencies": [] }, + "workspace-tools": { "tags": [] } }, - "affected": { - "defaultBase": "master" - } + "affected": { "defaultBase": "master" } } diff --git a/package.json b/package.json index 5cbbb164287b0..6007030120d56 100644 --- a/package.json +++ b/package.json @@ -73,6 +73,12 @@ }, "devDependencies": { "@microsoft/api-extractor": "7.13.0", + "@nrwl/cli": "12.1.0", + "@nrwl/devkit": "12.1.0", + "@nrwl/jest": "12.1.0", + "@nrwl/node": "12.1.0", + "@nrwl/tao": "12.1.0", + "@nrwl/workspace": "12.1.0", "@storybook/addon-a11y": "6.0.28", "@storybook/addon-actions": "6.0.28", "@storybook/addon-info": "6.0.0-alpha.2", @@ -133,14 +139,12 @@ "ts-jest": "24.3.0", "ts-loader": "8.0.14", "tsconfig-paths-webpack-plugin": "3.5.1", + "tslib": "2.2.0", "typescript": "4.1.5", "webpack": "5.21.2", "webpack-cli": "4.3.1", "webpack-dev-server": "4.0.0-beta.0", - "yargs": "13.3.2", - "@nrwl/workspace": "12.1.0", - "@nrwl/cli": "12.1.0", - "@nrwl/tao": "12.1.0" + "yargs": "13.3.2" }, "license": "MIT", "workspaces": { @@ -243,5 +247,6 @@ ] } ] - } + }, + "dependencies": {} } diff --git a/tools/.eslintrc.json b/tools/.eslintrc.json new file mode 100644 index 0000000000000..8a924ff369458 --- /dev/null +++ b/tools/.eslintrc.json @@ -0,0 +1,7 @@ +{ + "extends": ["plugin:@fluentui/eslint-plugin/node"], + "rules": { + "import/no-extraneous-dependencies": "off" + }, + "root": true +} diff --git a/tools/generators/.gitkeep b/tools/generators/.gitkeep new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/tools/generators/workspace-generator/files/index.spec.ts__tmpl__ b/tools/generators/workspace-generator/files/index.spec.ts__tmpl__ new file mode 100644 index 0000000000000..29644b41f0f8d --- /dev/null +++ b/tools/generators/workspace-generator/files/index.spec.ts__tmpl__ @@ -0,0 +1,20 @@ +import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing'; +import { Tree, readProjectConfiguration } from '@nrwl/devkit'; + +import generator from './index'; +import { <%= className %>GeneratorSchema } from './schema'; + +describe('<%= name %> generator', () => { + let appTree: Tree; + const options: <%= className %>GeneratorSchema = { name: 'test' }; + + beforeEach(() => { + appTree = createTreeWithEmptyWorkspace(); + }); + + it('should run successfully', async () => { + await generator(appTree, options); + const config = readProjectConfiguration(appTree, 'test'); + expect(config).toBeDefined(); + }) +}); diff --git a/tools/generators/workspace-generator/files/index.ts__tmpl__ b/tools/generators/workspace-generator/files/index.ts__tmpl__ new file mode 100644 index 0000000000000..a47ad0f6ed1dc --- /dev/null +++ b/tools/generators/workspace-generator/files/index.ts__tmpl__ @@ -0,0 +1,12 @@ +import { Tree, formatFiles, installPackagesTask } from '@nrwl/devkit'; +import { libraryGenerator } from '@nrwl/workspace/generators'; + +import { <%= className %>GeneratorSchema } from './schema' + +export default async function(host: Tree, schema: <%= className %>GeneratorSchema) { + await libraryGenerator(host, {name: schema.name}); + await formatFiles(host); + return () => { + installPackagesTask(host) + } +} diff --git a/tools/generators/workspace-generator/files/schema.json__tmpl__ b/tools/generators/workspace-generator/files/schema.json__tmpl__ new file mode 100644 index 0000000000000..7443669c34ef5 --- /dev/null +++ b/tools/generators/workspace-generator/files/schema.json__tmpl__ @@ -0,0 +1,17 @@ +{ + "$schema": "http://json-schema.org/schema", + "cli": "nx", + "id": "<%= name %>", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Library name", + "$default": { + "$source": "argv", + "index": 0 + } + } + }, + "required": ["name"] +} diff --git a/tools/generators/workspace-generator/files/schema.ts__tmpl__ b/tools/generators/workspace-generator/files/schema.ts__tmpl__ new file mode 100644 index 0000000000000..388eae5fd4fbf --- /dev/null +++ b/tools/generators/workspace-generator/files/schema.ts__tmpl__ @@ -0,0 +1,6 @@ +export interface <%= className %>GeneratorSchema { + /** + * Library name + */ + name: string; +} diff --git a/tools/generators/workspace-generator/index.spec.ts b/tools/generators/workspace-generator/index.spec.ts new file mode 100644 index 0000000000000..771612d315de2 --- /dev/null +++ b/tools/generators/workspace-generator/index.spec.ts @@ -0,0 +1,103 @@ +import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing'; +import { Tree, readJson } from '@nrwl/devkit'; + +import generator from './index'; +import { WorkspaceGeneratorGeneratorSchema } from './schema'; + +describe('workspace-generator generator', () => { + let tree: Tree; + const options: WorkspaceGeneratorGeneratorSchema = { name: 'custom' }; + + beforeEach(() => { + tree = createTreeWithEmptyWorkspace(); + }); + + it('should generate boilerplate', async () => { + await generator(tree, options); + + expect(tree.exists('/tools/generators/custom/index.ts')).toBeTruthy(); + expect(tree.exists('/tools/generators/custom/index.spec.ts')).toBeTruthy(); + expect(tree.exists('/tools/generators/custom/schema.json')).toBeTruthy(); + expect(tree.exists('/tools/generators/custom/schema.ts')).toBeTruthy(); + }); + + it('should generate Schema types', async () => { + await generator(tree, options); + + const content = tree.read('/tools/generators/custom/schema.ts')?.toString(); + + expect(content).toMatchInlineSnapshot(` + "export interface CustomGeneratorSchema { + /** + * Library name + */ + name: string; + } + " + `); + }); + + it('should generate Schema', async () => { + await generator(tree, options); + + const content = readJson(tree, '/tools/generators/custom/schema.json'); + + expect(content.id).toEqual('custom'); + }); + + it('should generate implementation boilerplate', async () => { + await generator(tree, options); + + const content = tree.read('/tools/generators/custom/index.ts')?.toString(); + + expect(content).toMatchInlineSnapshot(` + "import { Tree, formatFiles, installPackagesTask } from '@nrwl/devkit'; + import { libraryGenerator } from '@nrwl/workspace/generators'; + + import { CustomGeneratorSchema } from './schema' + + export default async function(host: Tree, schema: CustomGeneratorSchema) { + await libraryGenerator(host, {name: schema.name}); + await formatFiles(host); + return () => { + installPackagesTask(host) + } + } + " + `); + }); + + it('should generate testing boilerplate', async () => { + await generator(tree, options); + + const content = tree.read('/tools/generators/custom/index.spec.ts')?.toString(); + + expect(content).toMatchInlineSnapshot(` + "import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing'; + import { Tree, readProjectConfiguration } from '@nrwl/devkit'; + + import generator from './index'; + import { CustomGeneratorSchema } from './schema'; + + describe('custom generator', () => { + let appTree: Tree; + const options: CustomGeneratorSchema = { name: 'test' }; + + beforeEach(() => { + appTree = createTreeWithEmptyWorkspace(); + }); + + it('should run successfully', async () => { + await generator(appTree, options); + const config = readProjectConfiguration(appTree, 'test'); + expect(config).toBeDefined(); + }) + }); + " + `); + }); + + it(`should throw when required props are missing`, async () => { + expect(generator(tree, { name: '' })).rejects.toMatchInlineSnapshot(`[Error: name is required]`); + }); +}); diff --git a/tools/generators/workspace-generator/index.ts b/tools/generators/workspace-generator/index.ts new file mode 100644 index 0000000000000..a27b18fab5c81 --- /dev/null +++ b/tools/generators/workspace-generator/index.ts @@ -0,0 +1,51 @@ +import * as path from 'path'; +import { Tree, formatFiles, generateFiles, names, offsetFromRoot } from '@nrwl/devkit'; + +import { WorkspaceGeneratorGeneratorSchema } from './schema'; + +interface NormalizedSchema extends ReturnType {} + +export default async function(host: Tree, schema: WorkspaceGeneratorGeneratorSchema) { + const options = normalizeOptions(host, schema); + + addFiles(host, options); + + if (!options.skipFormat) { + await formatFiles(host); + } +} + +function normalizeOptions(host: Tree, options: WorkspaceGeneratorGeneratorSchema) { + // eslint-disable-next-line eqeqeq + if (options.name.length === 0) { + throw new Error('name is required'); + } + + const defaults = { skipFormat: false }; + const projectRoot = 'tools'; + + return { + ...defaults, + ...options, + projectRoot, + paths: { + generators: path.join(projectRoot, 'generators'), + }, + }; +} + +function addFiles(host: Tree, options: NormalizedSchema) { + const templateOptions = { + ...options, + ...names(options.name), + offsetFromRoot: offsetFromRoot(options.projectRoot), + tmpl: '', + }; + + generateFiles( + host, + path.join(__dirname, 'files'), + path.join(options.paths.generators, options.name), + templateOptions, + ); +} diff --git a/tools/generators/workspace-generator/schema.json b/tools/generators/workspace-generator/schema.json new file mode 100644 index 0000000000000..734cb015721e7 --- /dev/null +++ b/tools/generators/workspace-generator/schema.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/schema", + "cli": "nx", + "id": "workspace-generator", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Library name", + "$default": { + "$source": "argv", + "index": 0 + }, + "x-prompt": "What name would you like to use for workspace generator?", + "pattern": "^[a-zA-Z].*$" + }, + "skipFormat": { + "description": "Skip formatting files", + "type": "boolean", + "default": false + } + }, + "required": ["name"] +} diff --git a/tools/generators/workspace-generator/schema.ts b/tools/generators/workspace-generator/schema.ts new file mode 100644 index 0000000000000..f6e2ff7e8899d --- /dev/null +++ b/tools/generators/workspace-generator/schema.ts @@ -0,0 +1,10 @@ +export interface WorkspaceGeneratorGeneratorSchema { + /** + * Library name + */ + name: string; + /** + * @default false + */ + skipFormat?: boolean; +} diff --git a/tools/jest.config.js b/tools/jest.config.js new file mode 100644 index 0000000000000..fdf9acd20ea51 --- /dev/null +++ b/tools/jest.config.js @@ -0,0 +1,19 @@ +// @ts-check + +/** + * @type {jest.InitialOptions} + */ +module.exports = { + displayName: 'tools', + preset: '../jest.preset.js', + globals: { + 'ts-jest': { + tsConfig: '/tsconfig.json', + diagnostics: false, + }, + }, + transform: { + '^.+\\.tsx?$': 'ts-jest', + }, + coverageDirectory: './coverage', +}; diff --git a/tools/tsconfig.json b/tools/tsconfig.json new file mode 100644 index 0000000000000..adc4274b4103c --- /dev/null +++ b/tools/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "../tsconfig.base.json", + "compilerOptions": { + "noEmit": true + }, + "include": [], + "files": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + }, + { + "path": "./tsconfig.tools.json" + } + ] +} diff --git a/tools/tsconfig.lib.json b/tools/tsconfig.lib.json new file mode 100644 index 0000000000000..bc58f1dd20495 --- /dev/null +++ b/tools/tsconfig.lib.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "commonjs", + "target": "ES2015", + "outDir": "../dist/out-tsc", + "types": ["node"] + }, + "exclude": ["**/*.spec.ts"], + "include": ["**/*.ts"] +} diff --git a/tools/tsconfig.spec.json b/tools/tsconfig.spec.json new file mode 100644 index 0000000000000..146f33b2ecb78 --- /dev/null +++ b/tools/tsconfig.spec.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../dist/out-tsc", + "module": "commonjs", + "types": ["jest", "node"] + }, + "include": ["**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js", "**/*.spec.jsx", "**/*.d.ts"] +} diff --git a/tools/tsconfig.tools.json b/tools/tsconfig.tools.json new file mode 100644 index 0000000000000..eb6744bb99ac4 --- /dev/null +++ b/tools/tsconfig.tools.json @@ -0,0 +1,13 @@ +{ + "extends": "../tsconfig.base.json", + "compilerOptions": { + "outDir": "../dist/out-tsc/tools", + "rootDir": ".", + "module": "commonjs", + "target": "es5", + "types": ["node"], + "importHelpers": false + }, + "exclude": ["**/*.spec.ts"], + "include": ["**/*.ts"] +} diff --git a/workspace.json b/workspace.json index 66ab6d91cca83..766c2b69f1774 100644 --- a/workspace.json +++ b/workspace.json @@ -472,6 +472,33 @@ "@fluentui/react-popover": { "root": "packages/react-popover", "projectType": "library" + }, + "workspace-tools": { + "root": "tools", + "sourceRoot": "tools", + "projectType": "library", + "targets": { + "test": { + "executor": "@nrwl/jest:jest", + "outputs": ["coverage/tools"], + "options": { + "jestConfig": "tools/jest.config.js", + "passWithNoTests": true + } + }, + "lint": { + "executor": "@nrwl/workspace:run-commands", + "options": { + "command": "eslint tools/**/*.ts" + } + }, + "type-check": { + "executor": "@nrwl/workspace:run-commands", + "options": { + "command": "tsc -b tools/tsconfig.json" + } + } + } } } } diff --git a/yarn.lock b/yarn.lock index 696e3700d35f1..e9c0e27d6885a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2793,6 +2793,32 @@ tmp "~0.2.1" tslib "^2.0.0" +"@nrwl/node@12.1.0": + version "12.1.0" + resolved "https://registry.yarnpkg.com/@nrwl/node/-/node-12.1.0.tgz#0af2a06c522c30468f91f15283745d72de66df96" + integrity sha512-Vhcla87r0XJv35WJhc6kJY47cl7lPdwPbsq/czDxhyp+PZlvl3kiCS6IXb1JGpvecRaogndGBX/A8fv3f+fAIg== + dependencies: + "@nrwl/devkit" "12.1.0" + "@nrwl/jest" "12.1.0" + "@nrwl/linter" "12.1.0" + "@nrwl/workspace" "12.1.0" + circular-dependency-plugin "5.2.0" + copy-webpack-plugin "6.0.3" + fork-ts-checker-webpack-plugin "^3.1.1" + fs-extra "^9.1.0" + glob "7.1.4" + license-webpack-plugin "2.1.2" + rxjs "^6.5.4" + rxjs-for-await "0.0.2" + source-map-support "0.5.16" + tree-kill "1.2.2" + ts-loader "5.4.5" + tsconfig-paths-webpack-plugin "3.2.0" + tslib "^2.0.0" + webpack "4.42.0" + webpack-merge "4.2.1" + webpack-node-externals "1.7.2" + "@nrwl/tao@12.1.0": version "12.1.0" resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-12.1.0.tgz#5527ba8a6fb2e7dfb06c59e1f08936553989360e" @@ -5723,6 +5749,15 @@ "@webassemblyjs/helper-numbers" "1.11.0" "@webassemblyjs/helper-wasm-bytecode" "1.11.0" +"@webassemblyjs/ast@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" + integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== + dependencies: + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -5737,6 +5772,11 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== +"@webassemblyjs/floating-point-hex-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" + integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== + "@webassemblyjs/floating-point-hex-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" @@ -5747,6 +5787,11 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== +"@webassemblyjs/helper-api-error@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" + integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== + "@webassemblyjs/helper-api-error@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" @@ -5757,11 +5802,23 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== +"@webassemblyjs/helper-buffer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" + integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== + "@webassemblyjs/helper-buffer@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== +"@webassemblyjs/helper-code-frame@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" + integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== + dependencies: + "@webassemblyjs/wast-printer" "1.8.5" + "@webassemblyjs/helper-code-frame@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" @@ -5769,11 +5826,24 @@ dependencies: "@webassemblyjs/wast-printer" "1.9.0" +"@webassemblyjs/helper-fsm@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" + integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== + "@webassemblyjs/helper-fsm@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== +"@webassemblyjs/helper-module-context@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" + integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== + dependencies: + "@webassemblyjs/ast" "1.8.5" + mamacro "^0.0.3" + "@webassemblyjs/helper-module-context@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" @@ -5795,6 +5865,11 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== +"@webassemblyjs/helper-wasm-bytecode@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" + integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== + "@webassemblyjs/helper-wasm-bytecode@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" @@ -5810,6 +5885,16 @@ "@webassemblyjs/helper-wasm-bytecode" "1.11.0" "@webassemblyjs/wasm-gen" "1.11.0" +"@webassemblyjs/helper-wasm-section@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" + integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/helper-wasm-section@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" @@ -5827,6 +5912,13 @@ dependencies: "@xtuc/ieee754" "^1.2.0" +"@webassemblyjs/ieee754@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" + integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== + dependencies: + "@xtuc/ieee754" "^1.2.0" + "@webassemblyjs/ieee754@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" @@ -5841,6 +5933,13 @@ dependencies: "@xtuc/long" "4.2.2" +"@webassemblyjs/leb128@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" + integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== + dependencies: + "@xtuc/long" "4.2.2" + "@webassemblyjs/leb128@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" @@ -5853,6 +5952,11 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== +"@webassemblyjs/utf8@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" + integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== + "@webassemblyjs/utf8@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" @@ -5872,6 +5976,20 @@ "@webassemblyjs/wasm-parser" "1.11.0" "@webassemblyjs/wast-printer" "1.11.0" +"@webassemblyjs/wasm-edit@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" + integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/helper-wasm-section" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-opt" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/wast-printer" "1.8.5" + "@webassemblyjs/wasm-edit@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" @@ -5897,6 +6015,17 @@ "@webassemblyjs/leb128" "1.11.0" "@webassemblyjs/utf8" "1.11.0" +"@webassemblyjs/wasm-gen@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" + integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + "@webassemblyjs/wasm-gen@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" @@ -5918,6 +6047,16 @@ "@webassemblyjs/wasm-gen" "1.11.0" "@webassemblyjs/wasm-parser" "1.11.0" +"@webassemblyjs/wasm-opt@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" + integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/wasm-opt@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" @@ -5940,6 +6079,18 @@ "@webassemblyjs/leb128" "1.11.0" "@webassemblyjs/utf8" "1.11.0" +"@webassemblyjs/wasm-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" + integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + "@webassemblyjs/wasm-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" @@ -5952,6 +6103,18 @@ "@webassemblyjs/leb128" "1.9.0" "@webassemblyjs/utf8" "1.9.0" +"@webassemblyjs/wast-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" + integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/floating-point-hex-parser" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-code-frame" "1.8.5" + "@webassemblyjs/helper-fsm" "1.8.5" + "@xtuc/long" "4.2.2" + "@webassemblyjs/wast-parser@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" @@ -5972,6 +6135,15 @@ "@webassemblyjs/ast" "1.11.0" "@xtuc/long" "4.2.2" +"@webassemblyjs/wast-printer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" + integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + "@xtuc/long" "4.2.2" + "@webassemblyjs/wast-printer@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" @@ -6155,6 +6327,11 @@ acorn@^6.0.1, acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== +acorn@^6.2.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + acorn@^7.1.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" @@ -8328,6 +8505,29 @@ cacache@^15.0.0, cacache@^15.0.5: tar "^6.0.2" unique-filename "^1.1.1" +cacache@^15.0.4: + version "15.0.6" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.6.tgz#65a8c580fda15b59150fb76bf3f3a8e45d583099" + integrity sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w== + dependencies: + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.1" + tar "^6.0.2" + unique-filename "^1.1.1" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -8856,7 +9056,7 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -circular-dependency-plugin@^5.0.2: +circular-dependency-plugin@5.2.0, circular-dependency-plugin@^5.0.2: version "5.2.0" resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz#e09dbc2dd3e2928442403e2d45b41cea06bc0a93" integrity sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw== @@ -9669,6 +9869,23 @@ copy-to-clipboard@3.2.0, copy-to-clipboard@^3.0.8, copy-to-clipboard@^3.2.0: dependencies: toggle-selection "^1.0.6" +copy-webpack-plugin@6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz#2b3d2bfc6861b96432a65f0149720adbd902040b" + integrity sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA== + dependencies: + cacache "^15.0.4" + fast-glob "^3.2.4" + find-cache-dir "^3.3.1" + glob-parent "^5.1.1" + globby "^11.0.1" + loader-utils "^2.0.0" + normalize-path "^3.0.0" + p-limit "^3.0.1" + schema-utils "^2.7.0" + serialize-javascript "^4.0.0" + webpack-sources "^1.4.3" + copy-webpack-plugin@8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-8.1.0.tgz#0b53170db798ed301439536a02f2868ff63291a0" @@ -12517,7 +12734,7 @@ fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.2: micromatch "^4.0.2" picomatch "^2.2.1" -fast-glob@^3.2.5: +fast-glob@^3.2.4, fast-glob@^3.2.5: version "3.2.5" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== @@ -13114,7 +13331,7 @@ fork-ts-checker-webpack-plugin@1.5.0: tapable "^1.0.0" worker-rpc "^0.1.0" -fork-ts-checker-webpack-plugin@3.1.1: +fork-ts-checker-webpack-plugin@3.1.1, fork-ts-checker-webpack-plugin@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz#a1642c0d3e65f50c2cc1742e9c0a80f441f86b19" integrity sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ== @@ -17632,6 +17849,14 @@ libnpmteam@^1.0.1: get-stream "^4.0.0" npm-registry-fetch "^4.0.0" +license-webpack-plugin@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.1.2.tgz#63f7c571537a450ec47dc98f5d5ffdbca7b3b14f" + integrity sha512-7poZHRla+ae0eEButlwMrPpkXyhNVBf2EHePYWT0jyLnI6311/OXJkTI2sOIRungRpQgU2oDMpro5bSFPT5F0A== + dependencies: + "@types/webpack-sources" "^0.1.5" + webpack-sources "^1.2.0" + license-webpack-plugin@^2.3.10: version "2.3.10" resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.10.tgz#6d391b51148efa66e995b82ab7935190d2ebc0b4" @@ -18451,6 +18676,11 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== + map-age-cleaner@^0.1.1, map-age-cleaner@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -20529,6 +20759,13 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-limit@^3.0.1, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-limit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" @@ -20536,13 +20773,6 @@ p-limit@^3.0.2: dependencies: p-try "^2.0.0" -p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" @@ -24229,7 +24459,7 @@ semver@7.3.4, semver@^7.3.4, semver@~7.3.0: dependencies: lru-cache "^6.0.0" -semver@^5.0.3, semver@^5.1.0, semver@^5.5, semver@^5.7.1: +semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.5, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -24820,7 +25050,7 @@ source-map-resolve@^0.6.0: atob "^2.1.2" decode-uri-component "^0.2.0" -source-map-support@^0.5.16, source-map-support@~0.5.12: +source-map-support@0.5.16, source-map-support@^0.5.16, source-map-support@~0.5.12: version "0.5.16" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== @@ -25004,6 +25234,13 @@ ssri@^8.0.0: dependencies: minipass "^3.1.1" +ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + stable@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" @@ -26299,6 +26536,11 @@ traverse@^0.6.6: resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= +tree-kill@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + trim-lines@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.3.tgz#839514be82428fd9e7ec89e35081afe8f6f93115" @@ -26394,6 +26636,17 @@ ts-jest@24.3.0: semver "^5.5" yargs-parser "10.x" +ts-loader@5.4.5: + version "5.4.5" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-5.4.5.tgz#a0c1f034b017a9344cef0961bfd97cc192492b8b" + integrity sha512-XYsjfnRQCBum9AMRZpk2rTYSVpdZBpZK+kDh0TeT3kxmQNBDVIeUjdPjY5RZry4eIAb8XHc4gYSUiUWPYvzSRw== + dependencies: + chalk "^2.3.0" + enhanced-resolve "^4.0.0" + loader-utils "^1.0.2" + micromatch "^3.1.4" + semver "^5.0.1" + ts-loader@8.0.14: version "8.0.14" resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.0.14.tgz#e46ac1f8dcb88808d0b1335d2eae65b74bd78fe8" @@ -26460,6 +26713,15 @@ ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== +tsconfig-paths-webpack-plugin@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.2.0.tgz#6e70bd42915ad0efb64d3385163f0c1270f3e04d" + integrity sha512-S/gOOPOkV8rIL4LurZ1vUdYCVgo15iX9ZMJ6wx6w2OgcpT/G4wMyHB6WM+xheSqGMrWKuxFul+aXpCju3wmj/g== + dependencies: + chalk "^2.3.0" + enhanced-resolve "^4.0.0" + tsconfig-paths "^3.4.0" + tsconfig-paths-webpack-plugin@3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.5.1.tgz#e4dbf492a20dca9caab60086ddacb703afc2b726" @@ -26469,7 +26731,7 @@ tsconfig-paths-webpack-plugin@3.5.1: enhanced-resolve "^5.7.0" tsconfig-paths "^3.9.0" -tsconfig-paths@^3.9.0: +tsconfig-paths@^3.4.0, tsconfig-paths@^3.9.0: version "3.9.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== @@ -26484,6 +26746,11 @@ tslib@1.11.2: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.2.tgz#9c79d83272c9a7aaf166f73915c9667ecdde3cc9" integrity sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg== +tslib@2.2.0, tslib@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" + integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== + tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" @@ -26499,11 +26766,6 @@ tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== -tslib@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" - integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== - tsutils@^3.0.0, tsutils@^3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" @@ -27485,16 +27747,7 @@ watchpack-chokidar2@^2.0.1: dependencies: chokidar "^2.1.8" -watchpack@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2" - integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA== - dependencies: - chokidar "^2.1.8" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - -watchpack@^1.7.4: +watchpack@^1.6.0, watchpack@^1.7.4: version "1.7.5" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== @@ -27505,6 +27758,15 @@ watchpack@^1.7.4: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.1" +watchpack@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2" + integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA== + dependencies: + chokidar "^2.1.8" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + watchpack@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.0.tgz#e63194736bf3aa22026f7b191cd57907b0f9f696" @@ -27678,6 +27940,13 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" +webpack-merge@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.1.tgz#5e923cf802ea2ace4fd5af1d3247368a633489b4" + integrity sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw== + dependencies: + lodash "^4.17.5" + webpack-merge@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" @@ -27693,6 +27962,11 @@ webpack-merge@^5.7.3: clone-deep "^4.0.1" wildcard "^2.0.0" +webpack-node-externals@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz#6e1ee79ac67c070402ba700ef033a9b8d52ac4e3" + integrity sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg== + webpack-sources@^1.2.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" @@ -27723,6 +27997,35 @@ webpack-virtual-modules@^0.2.2: dependencies: debug "^3.0.0" +webpack@4.42.0: + version "4.42.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz#b901635dd6179391d90740a63c93f76f39883eb8" + integrity sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/wasm-edit" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + acorn "^6.2.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.1" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.6.0" + webpack-sources "^1.4.1" + webpack@5.21.2: version "5.21.2" resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.21.2.tgz#647507e50d3637695be28af58a6a8246050394e7" From e455e6c25c36e29ca7b5de7be0ae6772f3e0b307 Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Mon, 17 May 2021 10:49:09 +0200 Subject: [PATCH 02/12] chore: turn off syncpack for devDeps as we are moving to single version policy --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6007030120d56..e7c559cce87a1 100644 --- a/package.json +++ b/package.json @@ -181,7 +181,7 @@ }, "syncpack": { "prod": true, - "dev": true, + "dev": false, "peer": false, "source": [ "package.json", From 72e2b0276bea87ead4826c23a942f38f20912165 Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Mon, 17 May 2021 11:10:10 +0200 Subject: [PATCH 03/12] chore: fix nx workpsace files to be up to date with current repo state --- nx.json | 1 - workspace.json | 4 ---- 2 files changed, 5 deletions(-) diff --git a/nx.json b/nx.json index 42e9df1632c05..92d06d7ac3506 100644 --- a/nx.json +++ b/nx.json @@ -105,7 +105,6 @@ "@fluentui/react-make-styles": { "implicitDependencies": [] }, "@fluentui/react-menu": { "implicitDependencies": [] }, "@fluentui/react-monaco-editor": { "implicitDependencies": [] }, - "@fluentui/react-popup": { "implicitDependencies": [] }, "@fluentui/react-portal": { "implicitDependencies": [] }, "@fluentui/react-positioning": { "implicitDependencies": [] }, "@fluentui/react-provider": { "implicitDependencies": [] }, diff --git a/workspace.json b/workspace.json index 766c2b69f1774..4c4d8cd0c530f 100644 --- a/workspace.json +++ b/workspace.json @@ -361,10 +361,6 @@ "root": "packages/react-monaco-editor", "projectType": "library" }, - "@fluentui/react-popup": { - "root": "packages/react-popup", - "projectType": "library" - }, "@fluentui/react-portal": { "root": "packages/react-portal", "projectType": "library" From e078c5b7c7b937315eeb2acf47ae1973004ef98b Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Mon, 17 May 2021 11:10:36 +0200 Subject: [PATCH 04/12] chore: add /tools to codeowners --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index abb83920dee38..94274bf10359b 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -28,6 +28,7 @@ /.storybook/ @microsoft/fluentui-react-build /.vscode/ @microsoft/fluentui-react-build /scripts/ @microsoft/fluentui-react-build +/tools @microsoft/fluentui-react-build #### Root Build files /.eslintrc.* @microsoft/fluentui-react-build From d43f41e45e8d6b0f5395c288a68958b0eb1c7335 Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Mon, 17 May 2021 11:11:16 +0200 Subject: [PATCH 05/12] ci: add nx workspace-lint check --- azure-pipelines.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7386275f271e3..1139cead1ec12 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -32,6 +32,10 @@ jobs: yarn checkchange displayName: check change + - script: | + yarn nx workspace-lint + displayName: nx:workspace-lint + - script: | if [[ -n "$(targetBranch)" ]]; then yarn format --since $(targetBranch) --check From 73ff4df9e85f5265f4ab783d1fbb3a0128e4437d Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Mon, 17 May 2021 11:15:29 +0200 Subject: [PATCH 06/12] chore: remove workspace & nx.json from implicit deps - they are properly calculated so there is no need for that --- nx.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/nx.json b/nx.json index 92d06d7ac3506..59da990f65394 100644 --- a/nx.json +++ b/nx.json @@ -1,9 +1,7 @@ { "npmScope": "fluentui", "implicitDependencies": { - "workspace.json": "*", - "package.json": { "dependencies": "*", "devDependencies": "*" }, - "nx.json": "*" + "package.json": { "dependencies": "*", "devDependencies": "*" } }, "tasksRunnerOptions": { "default": { From 45847b98307d87471e414d649f2b25d794434deb Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Mon, 17 May 2021 11:58:26 +0200 Subject: [PATCH 07/12] fix(scripts): properly import chalk for nodejs --- ...-d7a54aa5-0c62-4390-a2b1-a486e00e1a00.json | 7 ++ package.json | 7 +- packages/fluentui/local-sandbox/package.json | 3 +- .../src/ComponentExamples.test.tsx | 2 +- .../react-menu/config/normalize-import.js | 2 +- packages/react-monaco-editor/package.json | 3 +- scripts/exec-sync.js | 2 +- scripts/exec.js | 2 +- scripts/package.json | 4 - scripts/publish-beta.js | 2 +- scripts/update-package-versions.js | 3 +- yarn.lock | 89 ++++++++++++++----- 12 files changed, 87 insertions(+), 39 deletions(-) create mode 100644 change/@fluentui-react-monaco-editor-d7a54aa5-0c62-4390-a2b1-a486e00e1a00.json diff --git a/change/@fluentui-react-monaco-editor-d7a54aa5-0c62-4390-a2b1-a486e00e1a00.json b/change/@fluentui-react-monaco-editor-d7a54aa5-0c62-4390-a2b1-a486e00e1a00.json new file mode 100644 index 0000000000000..a3ec0217155b4 --- /dev/null +++ b/change/@fluentui-react-monaco-editor-d7a54aa5-0c62-4390-a2b1-a486e00e1a00.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "fixup! fix(scripts): properly import chalk for nodejs", + "packageName": "@fluentui/react-monaco-editor", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} diff --git a/package.json b/package.json index e7c559cce87a1..0b573514ef287 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,6 @@ "@testing-library/jest-dom": "5.11.9", "@testing-library/react": "10.4.9", "@testing-library/react-hooks": "5.0.3", - "@types/chalk": "2.2.0", "@types/copy-webpack-plugin": "6.4.0", "@types/jest": "24.9.1", "@types/jest-axe": "3.2.2", @@ -104,7 +103,7 @@ "@types/yargs": "13.0.11", "babel-plugin-annotate-pure-calls": "0.4.0", "beachball": "1.53.1", - "chalk": "2.4.2", + "chalk": "4.1.0", "copy-webpack-plugin": "8.1.0", "cross-env": "^5.1.4", "css-loader": "5.0.1", @@ -121,6 +120,7 @@ "jest-cli": "24.9.0", "jest-environment-jsdom": "24.9.0", "jest-watch-typeahead": "0.4.2", + "just-scripts": "1.3.1", "lage": "0.27.0", "lerna": "^3.21.0", "lint-staged": "^10.2.9", @@ -144,6 +144,9 @@ "webpack": "5.21.2", "webpack-cli": "4.3.1", "webpack-dev-server": "4.0.0-beta.0", + "webpack-bundle-analyzer": "4.4.2", + "webpack-dev-middleware": "4.2.0", + "webpack-hot-middleware": "2.25.0", "yargs": "13.3.2" }, "license": "MIT", diff --git a/packages/fluentui/local-sandbox/package.json b/packages/fluentui/local-sandbox/package.json index ed62d106ba4b2..d11cbe3283978 100644 --- a/packages/fluentui/local-sandbox/package.json +++ b/packages/fluentui/local-sandbox/package.json @@ -21,8 +21,7 @@ "react": "16.8.6", "react-dom": "16.8.6", "source-map-loader": "2.0.0", - "terser-webpack-plugin": "^5.1.1", - "webpack-bundle-analyzer": "^4.4.0" + "terser-webpack-plugin": "^5.1.1" }, "publishConfig": { "access": "public" diff --git a/packages/react-examples/src/ComponentExamples.test.tsx b/packages/react-examples/src/ComponentExamples.test.tsx index be0ac2a0b3758..376f49338876d 100644 --- a/packages/react-examples/src/ComponentExamples.test.tsx +++ b/packages/react-examples/src/ComponentExamples.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { ReactTestRenderer } from 'react-test-renderer'; import { create } from '@fluentui/utilities/lib/test'; -import chalk from 'chalk'; +import * as chalk from 'chalk'; import * as glob from 'glob'; import * as path from 'path'; diff --git a/packages/react-menu/config/normalize-import.js b/packages/react-menu/config/normalize-import.js index fa6e78e883726..40f05324ad1c2 100644 --- a/packages/react-menu/config/normalize-import.js +++ b/packages/react-menu/config/normalize-import.js @@ -4,7 +4,7 @@ const fs = require('fs'); const path = require('path'); -const { default: chalk } = require('chalk'); +const chalk = require('chalk'); const yargsParser = require('yargs-parser'); /** diff --git a/packages/react-monaco-editor/package.json b/packages/react-monaco-editor/package.json index cf848a9a52963..6dbd7a18f3664 100644 --- a/packages/react-monaco-editor/package.json +++ b/packages/react-monaco-editor/package.json @@ -29,8 +29,7 @@ "@types/react-syntax-highlighter": "^10.2.1", "@fluentui/scripts": "^1.0.0", "react": "16.8.6", - "react-dom": "16.8.6", - "webpack-bundle-analyzer": "^4.4.0" + "react-dom": "16.8.6" }, "dependencies": { "@fluentui/react": "^8.14.10", diff --git a/scripts/exec-sync.js b/scripts/exec-sync.js index 7aad5628ba807..bce803c90f6d3 100644 --- a/scripts/exec-sync.js +++ b/scripts/exec-sync.js @@ -1,7 +1,7 @@ // @ts-check const path = require('path'); const child_process = require('child_process'); -const chalk = require('chalk').default; +const chalk = require('chalk'); const { logStatus } = require('./logging'); const SEPARATOR = process.platform === 'win32' ? ';' : ':'; diff --git a/scripts/exec.js b/scripts/exec.js index 4e01d3bbc9a98..ec158e6f17e25 100644 --- a/scripts/exec.js +++ b/scripts/exec.js @@ -1,7 +1,7 @@ // @ts-check const path = require('path'); const child_process = require('child_process'); -const chalk = require('chalk').default; +const chalk = require('chalk'); const { logStatus } = require('./logging'); const SEPARATOR = process.platform === 'win32' ? ';' : ':', diff --git a/scripts/package.json b/scripts/package.json index 74f2d3946bdb3..9e15e68d99fa6 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -81,7 +81,6 @@ "inquirer": "^7.3.3", "jju": "^1.4.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "just-scripts": "1.3.1", "lerna-alias": "^3.0.3-0", "lerna-dependency-graph": "^1.0.2", "license-webpack-plugin": "^2.3.10", @@ -108,9 +107,6 @@ "through2": "^2.0.3", "ts-node": "^7.0.0", "tsconfig-paths": "^3.9.0", - "webpack-bundle-analyzer": "^4.4.0", - "webpack-dev-middleware": "^4.1.0", - "webpack-hot-middleware": "^2.25.0", "workspace-tools": "^0.10.2" }, "bundlesize": [ diff --git a/scripts/publish-beta.js b/scripts/publish-beta.js index 8e0c9e74c3361..2ca024d97b1de 100644 --- a/scripts/publish-beta.js +++ b/scripts/publish-beta.js @@ -1,7 +1,7 @@ // @ts-check const path = require('path'); -const chalk = require('chalk').default; +const chalk = require('chalk'); const execSync = require('./exec-sync'); const getAllPackageInfo = require('./monorepo/getAllPackageInfo'); diff --git a/scripts/update-package-versions.js b/scripts/update-package-versions.js index 0fc714c674223..1a937a2bffa83 100644 --- a/scripts/update-package-versions.js +++ b/scripts/update-package-versions.js @@ -8,9 +8,8 @@ * node update-package-versions.js "6.0.0-alpha" ">=6.0.0-0 <7.0.0-0" */ -const path = require('path'); const process = require('process'); -const chalk = require('chalk').default; +const chalk = require('chalk'); const getAllPackageInfo = require('./monorepo/getAllPackageInfo'); const writeConfig = require('./write-config'); diff --git a/yarn.lock b/yarn.lock index e9c0e27d6885a..2486d50f10138 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4644,13 +4644,6 @@ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.12.tgz#6160ae454cd89dae05adc3bb97997f488b608201" integrity sha512-aN5IAC8QNtSUdQzxu7lGBgYAOuU1tmRU4c9dIq5OKGf/SBVjXo+ffM2wEjudAWbgpOhy60nLoAGH1xm8fpCKFQ== -"@types/chalk@2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@types/chalk/-/chalk-2.2.0.tgz#b7f6e446f4511029ee8e3f43075fb5b73fbaa0ba" - integrity sha512-1zzPV9FDe1I/WHhRkf9SNgqtRJWZqrBWgu7JGveuHmmyR9CnAPCie2N/x+iHrgnpYBIcCJWHBoMRv2TRWktsvw== - dependencies: - chalk "*" - "@types/cheerio@*": version "0.22.11" resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.11.tgz#61c0facf9636d14ba5f77fc65ed8913aa845d717" @@ -8814,7 +8807,7 @@ chainsaw@~0.1.0: dependencies: traverse ">=0.3.0 <0.4" -chalk@*, chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.2.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3.2, chalk@^2.4.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.2.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3.2, chalk@^2.4.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -9414,6 +9407,11 @@ colorette@^1.2.1: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== +colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + colors@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" @@ -13555,6 +13553,11 @@ fs-monkey@1.0.1: resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.1.tgz#4a82f36944365e619f4454d9fff106553067b781" integrity sha512-fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA== +fs-monkey@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" + integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== + fs-vacuum@^1.2.10: version "1.2.10" resolved "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz#b7629bec07a4031a2548fdf99f5ecf1cc8b31e36" @@ -18891,6 +18894,14 @@ mem@^8.0.0: map-age-cleaner "^0.1.3" mimic-fn "^3.1.0" +mem@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" + integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^3.1.0" + memfs-or-file-map-to-github-branch@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/memfs-or-file-map-to-github-branch/-/memfs-or-file-map-to-github-branch-1.2.0.tgz#a56cd13443144a8c7fbe2a4b90b5f570fb39c845" @@ -18905,6 +18916,13 @@ memfs@^3.1.2, memfs@^3.2.0: dependencies: fs-monkey "1.0.1" +memfs@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.2.2.tgz#5de461389d596e3f23d48bb7c2afb6161f4df40e" + integrity sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q== + dependencies: + fs-monkey "1.0.3" + "memoize-one@>=3.1.1 <6", memoize-one@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0" @@ -19089,6 +19107,11 @@ mime-db@1.45.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== +mime-db@1.47.0: + version "1.47.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" + integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== + mime-db@^1.28.0: version "1.46.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" @@ -19101,13 +19124,20 @@ mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19: dependencies: mime-db "1.40.0" -mime-types@^2.1.27, mime-types@^2.1.28, mime-types@~2.1.24: +mime-types@^2.1.27, mime-types@~2.1.24: version "2.1.28" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd" integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== dependencies: mime-db "1.45.0" +mime-types@^2.1.30: + version "2.1.30" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" + integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== + dependencies: + mime-db "1.47.0" + mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -27809,6 +27839,21 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== +webpack-bundle-analyzer@4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz#39898cf6200178240910d629705f0f3493f7d666" + integrity sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ== + dependencies: + acorn "^8.0.4" + acorn-walk "^8.0.0" + chalk "^4.1.0" + commander "^6.2.0" + gzip-size "^6.0.0" + lodash "^4.17.20" + opener "^1.5.2" + sirv "^1.0.7" + ws "^7.3.1" + webpack-bundle-analyzer@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.0.tgz#74013106e7e2b07cbd64f3a5ae847f7e814802c7" @@ -27843,6 +27888,18 @@ webpack-cli@4.3.1: v8-compile-cache "^2.2.0" webpack-merge "^4.2.2" +webpack-dev-middleware@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-4.2.0.tgz#a2578914757107ed9af826365d87bdaa3e3581d2" + integrity sha512-HVVpHw+5H4lfGasUKjpIkOy9TB27OyKiL13c+dhzVG1w77OQ87b408fp0qKDKQQkNGgShbStDzVJ8sK46JajXg== + dependencies: + colorette "^1.2.2" + mem "^8.1.1" + memfs "^3.2.2" + mime-types "^2.1.30" + range-parser "^1.2.1" + schema-utils "^3.0.0" + webpack-dev-middleware@^3.7.0: version "3.7.2" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" @@ -27865,18 +27922,6 @@ webpack-dev-middleware@^4.0.2: range-parser "^1.2.1" schema-utils "^3.0.0" -webpack-dev-middleware@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-4.1.0.tgz#f0c1f12ff4cd855b3b5eec89ee0f69bcc5336364" - integrity sha512-mpa/FY+DiBu5+r5JUIyTCYWRfkWgyA3/OOE9lwfzV9S70A4vJYLsVRKj5rMFEsezBroy2FmPyQ8oBRVW8QmK1A== - dependencies: - colorette "^1.2.1" - mem "^8.0.0" - memfs "^3.2.0" - mime-types "^2.1.28" - range-parser "^1.2.1" - schema-utils "^3.0.0" - webpack-dev-server@4.0.0-beta.0: version "4.0.0-beta.0" resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.0.0-beta.0.tgz#39065e19b0df793314c02cd72474bb54312ebc06" @@ -27912,7 +27957,7 @@ webpack-dev-server@4.0.0-beta.0: webpack-dev-middleware "^4.0.2" ws "^7.4.0" -webpack-hot-middleware@^2.25.0: +webpack-hot-middleware@2.25.0, webpack-hot-middleware@^2.25.0: version "2.25.0" resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz#4528a0a63ec37f8f8ef565cf9e534d57d09fe706" integrity sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA== From b6bd54dd89fdfa231704d2cac61946d6de47fe09 Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Mon, 17 May 2021 15:17:58 +0200 Subject: [PATCH 08/12] chore(react-conformance): revert chalk version to use range and to not clash with single version policy for devtooling --- ...t-conformance-a23545f7-d46d-4adf-abfa-ca4977662b63.json | 7 +++++++ packages/react-conformance/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 change/@fluentui-react-conformance-a23545f7-d46d-4adf-abfa-ca4977662b63.json diff --git a/change/@fluentui-react-conformance-a23545f7-d46d-4adf-abfa-ca4977662b63.json b/change/@fluentui-react-conformance-a23545f7-d46d-4adf-abfa-ca4977662b63.json new file mode 100644 index 0000000000000..1692d7224cd15 --- /dev/null +++ b/change/@fluentui-react-conformance-a23545f7-d46d-4adf-abfa-ca4977662b63.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "chore(react-conformance): revert chalk version to use range and to not clash with single version policy for devtooling", + "packageName": "@fluentui/react-conformance", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/packages/react-conformance/package.json b/packages/react-conformance/package.json index b1f4c9f433092..ca09d98be8c02 100644 --- a/packages/react-conformance/package.json +++ b/packages/react-conformance/package.json @@ -35,7 +35,7 @@ "dependencies": { "doctrine": "^3.0.0", "lodash": "^4.17.15", - "chalk": "2.4.2", + "chalk": "^2.4.2", "react-docgen-typescript": "^1.16.6", "react-is": "^16.6.3", "tslib": "^2.1.0" From fbf4ec12b9ee53b8b6ad062532151b7d48f20037 Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Mon, 17 May 2021 15:39:38 +0200 Subject: [PATCH 09/12] chore(tools): incorporate tools/ into existing ci pipeline --- nx.json | 2 +- package.json | 5 +++-- tools/generators/workspace-generator/index.ts | 1 - tools/package.json | 10 ++++++++++ workspace.json | 2 +- 5 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 tools/package.json diff --git a/nx.json b/nx.json index 59da990f65394..933bbbd222584 100644 --- a/nx.json +++ b/nx.json @@ -130,7 +130,7 @@ "@fluentui/webpack-utilities": { "implicitDependencies": [] }, "@fluentui/scripts": { "implicitDependencies": [] }, "@fluentui/react-popover": { "implicitDependencies": [] }, - "workspace-tools": { "tags": [] } + "nx-workspace-tools": { "tags": [] } }, "affected": { "defaultBase": "master" } } diff --git a/package.json b/package.json index 0b573514ef287..bc0fff2b64b0c 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "build": "lage build --verbose", "build:fluentui:docs": "gulp build:docs", "build:min": "yarn build --to @fluentui/react --to @fluentui/react-northstar --min", - "buildci": "lage build test lint --verbose", + "buildci": "lage build test lint type-check --verbose", "builddemo": "yarn build --to public-docsite-resources", "buildto": "lage build --verbose --to", "buildto:lerna": "node ./scripts/monorepo/buildTo.js", @@ -154,8 +154,9 @@ "packages": [ "apps/*", "packages/*", + "packages/fluentui/*", "scripts", - "packages/fluentui/*" + "tools/" ], "nohoist": [ "@fluentui/make-styles/@types/stylis", diff --git a/tools/generators/workspace-generator/index.ts b/tools/generators/workspace-generator/index.ts index a27b18fab5c81..0ffe976743439 100644 --- a/tools/generators/workspace-generator/index.ts +++ b/tools/generators/workspace-generator/index.ts @@ -16,7 +16,6 @@ export default async function(host: Tree, schema: WorkspaceGeneratorGeneratorSch } function normalizeOptions(host: Tree, options: WorkspaceGeneratorGeneratorSchema) { - // eslint-disable-next-line eqeqeq if (options.name.length === 0) { throw new Error('name is required'); } diff --git a/tools/package.json b/tools/package.json new file mode 100644 index 0000000000000..0c9c3e528ef96 --- /dev/null +++ b/tools/package.json @@ -0,0 +1,10 @@ +{ + "name": "nx-workspace-tools", + "version": "1.0.0", + "private": true, + "scripts": { + "test": "nx run nx-workspace-tools:test", + "lint": "nx run nx-workspace-tools:lint", + "type-check": "nx run nx-workspace-tools:type-check" + } +} diff --git a/workspace.json b/workspace.json index 4c4d8cd0c530f..171d906d927ae 100644 --- a/workspace.json +++ b/workspace.json @@ -469,7 +469,7 @@ "root": "packages/react-popover", "projectType": "library" }, - "workspace-tools": { + "nx-workspace-tools": { "root": "tools", "sourceRoot": "tools", "projectType": "library", From e702fc7273371393f297378cca3d9bd3606af494 Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Mon, 17 May 2021 18:58:01 +0200 Subject: [PATCH 10/12] Change files --- ...ui-react-menu-1e44c9a4-7c66-4d25-af10-975074729342.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/@fluentui-react-menu-1e44c9a4-7c66-4d25-af10-975074729342.json diff --git a/change/@fluentui-react-menu-1e44c9a4-7c66-4d25-af10-975074729342.json b/change/@fluentui-react-menu-1e44c9a4-7c66-4d25-af10-975074729342.json new file mode 100644 index 0000000000000..11520662c1d6b --- /dev/null +++ b/change/@fluentui-react-menu-1e44c9a4-7c66-4d25-af10-975074729342.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "fixup! fixup! fixup! fix(scripts): properly import chalk for nodejs", + "packageName": "@fluentui/react-menu", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} From 95868593b891c24647994f25ab541bb4390cef43 Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Mon, 17 May 2021 19:14:44 +0200 Subject: [PATCH 11/12] Change files --- ...eact-examples-e0e461cf-e362-4de2-8c40-a293bbea4132.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/@fluentui-react-examples-e0e461cf-e362-4de2-8c40-a293bbea4132.json diff --git a/change/@fluentui-react-examples-e0e461cf-e362-4de2-8c40-a293bbea4132.json b/change/@fluentui-react-examples-e0e461cf-e362-4de2-8c40-a293bbea4132.json new file mode 100644 index 0000000000000..5030d8e01f26d --- /dev/null +++ b/change/@fluentui-react-examples-e0e461cf-e362-4de2-8c40-a293bbea4132.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "fixup! fixup! fixup! fixup! fix(scripts): properly import chalk for nodejs", + "packageName": "@fluentui/react-examples", + "email": "martinhochel@microsoft.com", + "dependentChangeType": "none" +} From e8f7adce601ab8753d3279246c6b5c8064538438 Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Tue, 18 May 2021 10:49:39 +0200 Subject: [PATCH 12/12] chore: define version group for monorepo root package.json and revert dev to true --- package.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index bc0fff2b64b0c..c26d766d11341 100644 --- a/package.json +++ b/package.json @@ -185,7 +185,7 @@ }, "syncpack": { "prod": true, - "dev": false, + "dev": true, "peer": false, "source": [ "package.json", @@ -195,6 +195,16 @@ "scripts/package.json" ], "versionGroups": [ + { + "packages": [ + "fluent-ui-react-repo" + ], + "dependencies": [ + "tslib", + "webpack-bundle-analyzer", + "chalk" + ] + }, { "packages": [ "@fluentui/web-components"