diff --git a/.circleci/config.yml b/.circleci/config.yml index 4e39c6e87c..f69907d352 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,112 +1,108 @@ version: 2 -# this block contains anchors to reusable blocks of config. -references: - setup_env: &setup_env - docker: - - image: circleci/node:8.10.0 - save_cache: &save_cache - key: v9-dependency-cache-{{ checksum "yarn.lock" }} +aliases: + - &docker-node-lts + - image: circleci/node:lts + + - &docker-node-browsers + - image: circleci/node:8.10.0-browsers + environment: + CHROME_BIN: "/usr/bin/google-chrome" + + - &restore-node-modules-cache + name: Restore node_modules cache + key: v1-yarn-deps-{{ checksum "yarn.lock" }} + + - &restore-yarn-cache + name: Restore yarnpkg cache + key: v1-yarn-cache + + - &save-node-modules-cache + name: Save node_modules cache paths: - node_modules - # explicitly list each package node_modules - - packages/core/node_modules - - packages/datetime/node_modules - - packages/docs-app/node_modules - - packages/docs-data/node_modules - - packages/docs-theme/node_modules - - packages/icons/node_modules - - packages/karma-build-scripts/node_modules - - packages/labs/node_modules - - packages/landing-app/node_modules - - packages/node-build-scripts/node_modules - - packages/select/node_modules - - packages/table/node_modules - - packages/table-dev-app/node_modules - - packages/test-commons/node_modules - - packages/test-react15/node_modules - - packages/timezone/node_modules - - packages/tslint-config/node_modules - - packages/webpack-build-scripts/node_modules - restore_cache: &restore_cache - keys: - - v9-dependency-cache-{{ checksum "yarn.lock" }} - - v9-dependency-cache- - persist_to_workspace: &persist_to_workspace - root: '.' + key: v1-yarn-deps-{{ checksum "yarn.lock" }} + + - &save-yarn-cache + name: Save yarnpkg cache paths: - # directories to persist to workspace - - packages/*/dist - - packages/*/lib - - packages/*/src/generated + - ~/.cache/yarn + key: v1-yarn-cache + +references: reports_path: &reports_path path: ./reports jobs: - install-dependencies: - <<: *setup_env + checkout-code: + docker: *docker-node-lts steps: - checkout - - attach_workspace: - at: '.' - - restore_cache: *restore_cache - - run: yarn --frozen-lockfile - - run: npm rebuild node-sass - - save_cache: *save_cache + - restore_cache: *restore-yarn-cache + - restore_cache: *restore-node-modules-cache + - run: yarn install --non-interactive --cache-folder ~/.cache/yarn + - run: + name: Check if yarn.lock changed during install + command: git diff --exit-code + - save_cache: *save-node-modules-cache + - save_cache: *save-yarn-cache - persist_to_workspace: root: '.' - paths: - - yarn.lock + paths: [packages/*/node_modules] + + clean-lockfile: + docker: *docker-node-lts + steps: + - checkout + - restore_cache: *restore-node-modules-cache + - run: ./scripts/verifyCleanLockfile.sh compile: - <<: *setup_env + docker: *docker-node-lts steps: - checkout - - attach_workspace: - at: '.' - - restore_cache: *restore_cache + - restore_cache: *restore-node-modules-cache + - attach_workspace: { at: '.' } - run: yarn compile - - persist_to_workspace: *persist_to_workspace + - persist_to_workspace: + root: '.' + paths: [packages/*/lib, packages/*/src/generated] lint: - <<: *setup_env + docker: *docker-node-lts environment: JUNIT_REPORT_PATH: reports steps: - checkout - - attach_workspace: - at: '.' - - restore_cache: *restore_cache + - restore_cache: *restore-node-modules-cache + - attach_workspace: { at: '.' } - run: mkdir -p ./reports/tslint ./reports/stylelint - run: yarn compile --scope "@blueprintjs/tslint-config" - run: yarn lint - - store_test_results: *reports_path - - store_artifacts: *reports_path + - store_test_results: { path: ./reports } + - store_artifacts: { path: ./reports } dist: - <<: *setup_env + docker: *docker-node-lts steps: - checkout - - attach_workspace: - at: '.' - - restore_cache: *restore_cache + - restore_cache: *restore-node-modules-cache + - attach_workspace: { at: '.' } - run: yarn dist:libs - run: yarn dist:apps - - persist_to_workspace: *persist_to_workspace + - persist_to_workspace: + root: '.' + paths: [packages/*/dist] test-react-16: &test-react - docker: - - image: circleci/node:8.10.0-browsers - environment: - CHROME_BIN: "/usr/bin/google-chrome" + docker: *docker-node-browsers environment: JUNIT_REPORT_PATH: reports parallelism: 3 steps: - checkout - - attach_workspace: - at: '.' - - restore_cache: *restore_cache + - restore_cache: *restore-node-modules-cache + - attach_workspace: { at: '.' } - run: mkdir ./reports - run: command: | @@ -116,8 +112,8 @@ jobs: 2) yarn lerna run --parallel test:karma ;; \ esac when: always - - store_test_results: *reports_path - - store_artifacts: *reports_path + - store_test_results: { path: ./reports } + - store_artifacts: { path: ./reports } test-react-15: # copy test-react-16 and override environment @@ -127,41 +123,37 @@ jobs: REACT: 15 # use React 15 for this job deploy-preview: - docker: - - image: circleci/node:8.10.0 + docker: *docker-node-lts steps: - checkout - - attach_workspace: - at: '.' - - restore_cache: *restore_cache - - store_artifacts: - path: packages/docs-app/dist - - store_artifacts: - path: packages/landing-app/dist - - store_artifacts: - path: packages/table-dev-app/dist + - restore_cache: *restore-node-modules-cache + - attach_workspace: { at: '.' } + - store_artifacts: { path: packages/docs-app/dist } + - store_artifacts: { path: packages/landing-app/dist } + - store_artifacts: { path: packages/table-dev-app/dist } - run: name: Submit Github comment with links to built artifacts command: node ./scripts/preview.js deploy-npm: - <<: *setup_env + docker: *docker-node-lts steps: - checkout - - attach_workspace: - at: '.' - - restore_cache: *restore_cache + - restore_cache: *restore-node-modules-cache + - attach_workspace: { at: '.' } - run: ./scripts/publish-npm-semver-tagged workflows: version: 2 compile_lint_test_dist_deploy: jobs: - - install-dependencies + - checkout-code + - clean-lockfile: + requires: [checkout-code] - compile: - requires: [install-dependencies] + requires: [checkout-code] - lint: - requires: [install-dependencies] + requires: [checkout-code] - dist: requires: [compile] - test-react-15: diff --git a/.yarnrc b/.yarnrc deleted file mode 100644 index c16e54f708..0000000000 --- a/.yarnrc +++ /dev/null @@ -1 +0,0 @@ -workspace-experimental true diff --git a/package.json b/package.json index f4d388a179..e59d27c990 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,8 @@ "sinon": "^7.2.4", "stylelint-config-palantir": "^3.1.1", "stylelint-scss": "^3.3.1", - "typescript": "~2.8.3" + "typescript": "~2.8.3", + "yarn-deduplicate": "^1.1.1" }, "resolutions": { "@types/enzyme": "3.1.15", diff --git a/packages/docs-app/src/components/blueprintDocs.tsx b/packages/docs-app/src/components/blueprintDocs.tsx index 9ce136edc2..77898fa766 100644 --- a/packages/docs-app/src/components/blueprintDocs.tsx +++ b/packages/docs-app/src/components/blueprintDocs.tsx @@ -17,8 +17,8 @@ import { AnchorButton, Classes, setHotkeysDialogProps, Tag } from "@blueprintjs/core"; import { IDocsCompleteData } from "@blueprintjs/docs-data"; import { Documentation, IDocumentationProps, INavMenuItemProps, NavMenuItem } from "@blueprintjs/docs-theme"; +import { IHeadingNode, IPageData, isPageNode, ITsDocBase } from "@documentalist/client"; import classNames from "classnames"; -import { IHeadingNode, IPageData, isPageNode, ITsDocBase } from "documentalist/dist/client"; import * as React from "react"; import { NavHeader } from "./navHeader"; import { NavIcon } from "./navIcons"; diff --git a/packages/docs-app/src/components/navHeader.tsx b/packages/docs-app/src/components/navHeader.tsx index 1c04131005..bc6afb88f1 100644 --- a/packages/docs-app/src/components/navHeader.tsx +++ b/packages/docs-app/src/components/navHeader.tsx @@ -27,7 +27,7 @@ import { Tag, } from "@blueprintjs/core"; import { NavButton } from "@blueprintjs/docs-theme"; -import { INpmPackage } from "documentalist/dist/client"; +import { INpmPackage } from "@documentalist/client"; import * as React from "react"; import { Logo } from "./logo"; diff --git a/packages/docs-data/compile-docs-data.js b/packages/docs-data/compile-docs-data.js index 82820fb623..bb6723e49a 100755 --- a/packages/docs-data/compile-docs-data.js +++ b/packages/docs-data/compile-docs-data.js @@ -8,7 +8,7 @@ // @ts-check const { Classes } = require("@blueprintjs/core/lib/cjs/common"); const { execSync, spawn } = require("child_process"); -const dm = require("documentalist"); +const dm = require("@documentalist/compiler"); const fs = require("fs"); const glob = require("glob"); const path = require("path"); diff --git a/packages/docs-data/package.json b/packages/docs-data/package.json index d82da49268..f91eb3b504 100644 --- a/packages/docs-data/package.json +++ b/packages/docs-data/package.json @@ -12,14 +12,14 @@ "dependencies": { "@blueprintjs/core": "^3.15.0", "@blueprintjs/docs-theme": "^3.1.0", - "documentalist": "^1.4.0", + "@documentalist/compiler": "^2.0.1", "better-handlebars": "github:wmeldon/better-handlebars", - "glob": "^7.1.2", + "glob": "^7.1.3", "highlights": "^3.1.1", "language-less": "github:atom/language-less", - "marked": "^0.3.6", - "semver": "^5.4.1", - "tree-sitter-typescript": "^0.13.3" + "marked": "^0.5.2", + "semver": "^6.0.0", + "tree-sitter-typescript": "^0.13.6" }, "repository": { "type": "git", diff --git a/packages/docs-data/src/index.d.ts b/packages/docs-data/src/index.d.ts index 6511e83054..22efcc6332 100644 --- a/packages/docs-data/src/index.d.ts +++ b/packages/docs-data/src/index.d.ts @@ -2,7 +2,7 @@ * Copyright 2017 Palantir Technologies, Inc. All rights reserved. */ -import { INpmPluginData, IMarkdownPluginData, IKssExample, IKssPluginData, ITypescriptPluginData } from "documentalist/dist/client"; +import { INpmPluginData, IMarkdownPluginData, IKssExample, IKssPluginData, ITypescriptPluginData } from "@documentalist/client"; export type IDocsCompleteData = IMarkdownPluginData & INpmPluginData & IKssPluginData & ITypescriptPluginData; diff --git a/packages/docs-theme/package.json b/packages/docs-theme/package.json index 3d80f4802f..ba977359eb 100644 --- a/packages/docs-theme/package.json +++ b/packages/docs-theme/package.json @@ -32,19 +32,19 @@ "dependencies": { "@blueprintjs/core": "^3.15.0", "@blueprintjs/select": "^3.8.0", + "@documentalist/client": "^2.0.1", "classnames": "^2.2", - "documentalist": "^1.4.0", "fuzzaldrin-plus": "^0.6.0", - "tslib": "^1.9.0" + "tslib": "^1.9.3" }, "devDependencies": { "@blueprintjs/node-build-scripts": "^0.9.0", "@types/fuzzaldrin-plus": "^0.6.0", - "npm-run-all": "^4.1.2", + "npm-run-all": "^4.1.5", "react": "^16.2.0", "react-dom": "^16.2.0", "typescript": "~2.8.3", - "webpack-cli": "^3.1.2" + "webpack-cli": "^3.3.0" }, "repository": { "type": "git", diff --git a/packages/docs-theme/src/common/context.ts b/packages/docs-theme/src/common/context.ts index 95cf63af51..7c9ecfae81 100644 --- a/packages/docs-theme/src/common/context.ts +++ b/packages/docs-theme/src/common/context.ts @@ -22,7 +22,7 @@ import { INpmPluginData, ITsDocBase, ITypescriptPluginData, -} from "documentalist/dist/client"; +} from "@documentalist/client"; /** This docs theme requires Markdown data and optionally supports Typescript and KSS data. */ export type IDocsData = IMarkdownPluginData & diff --git a/packages/docs-theme/src/common/utils.ts b/packages/docs-theme/src/common/utils.ts index f3a57195fb..d551959216 100644 --- a/packages/docs-theme/src/common/utils.ts +++ b/packages/docs-theme/src/common/utils.ts @@ -15,7 +15,7 @@ */ import { Utils } from "@blueprintjs/core"; -import { IHeadingNode, IPageNode, isPageNode } from "documentalist/dist/client"; +import { IHeadingNode, IPageNode, isPageNode } from "@documentalist/client"; import * as React from "react"; /** diff --git a/packages/docs-theme/src/components/block.tsx b/packages/docs-theme/src/components/block.tsx index 51cc15c8ce..1c6d66839e 100644 --- a/packages/docs-theme/src/components/block.tsx +++ b/packages/docs-theme/src/components/block.tsx @@ -15,8 +15,8 @@ */ import { Classes, Code, H3 } from "@blueprintjs/core"; +import { IBlock } from "@documentalist/client"; import classNames from "classnames"; -import { IBlock } from "documentalist/dist/client"; import * as React from "react"; import { ITagRendererMap } from "../tags"; diff --git a/packages/docs-theme/src/components/documentation.tsx b/packages/docs-theme/src/components/documentation.tsx index a3aecda941..1dfae278e9 100644 --- a/packages/docs-theme/src/components/documentation.tsx +++ b/packages/docs-theme/src/components/documentation.tsx @@ -14,8 +14,8 @@ * limitations under the License. */ +import { IHeadingNode, IPageData, IPageNode, isPageNode, ITsDocBase, linkify } from "@documentalist/client"; import classNames from "classnames"; -import { IHeadingNode, IPageData, IPageNode, isPageNode, ITsDocBase, linkify } from "documentalist/dist/client"; import * as React from "react"; import { Classes, Drawer, FocusStyleManager, Hotkey, Hotkeys, HotkeysTarget, IProps, Utils } from "@blueprintjs/core"; diff --git a/packages/docs-theme/src/components/navMenu.tsx b/packages/docs-theme/src/components/navMenu.tsx index 1ba6b12213..3afcf08dcf 100644 --- a/packages/docs-theme/src/components/navMenu.tsx +++ b/packages/docs-theme/src/components/navMenu.tsx @@ -18,7 +18,7 @@ import { Classes, IProps } from "@blueprintjs/core"; import classNames from "classnames"; import * as React from "react"; -import { IHeadingNode, IPageNode, isPageNode } from "documentalist/dist/client"; +import { IHeadingNode, IPageNode, isPageNode } from "@documentalist/client"; import { INavMenuItemProps, NavMenuItem } from "./navMenuItem"; export interface INavMenuProps extends IProps { diff --git a/packages/docs-theme/src/components/navMenuItem.tsx b/packages/docs-theme/src/components/navMenuItem.tsx index 0fa3cee411..2e3018fec6 100644 --- a/packages/docs-theme/src/components/navMenuItem.tsx +++ b/packages/docs-theme/src/components/navMenuItem.tsx @@ -15,8 +15,8 @@ */ import { Classes } from "@blueprintjs/core"; +import { IHeadingNode, IPageNode } from "@documentalist/client"; import classNames from "classnames"; -import { IHeadingNode, IPageNode } from "documentalist/dist/client"; import * as React from "react"; export interface INavMenuItemProps { diff --git a/packages/docs-theme/src/components/navigator.tsx b/packages/docs-theme/src/components/navigator.tsx index f52293a379..0aebd2393e 100644 --- a/packages/docs-theme/src/components/navigator.tsx +++ b/packages/docs-theme/src/components/navigator.tsx @@ -17,7 +17,7 @@ import { Classes, Icon, IInputGroupProps, MenuItem, Utils } from "@blueprintjs/core"; import { ItemListPredicate, ItemRenderer, Omnibar } from "@blueprintjs/select"; -import { IHeadingNode, IPageNode } from "documentalist/dist/client"; +import { IHeadingNode, IPageNode } from "@documentalist/client"; import { filter } from "fuzzaldrin-plus"; import * as React from "react"; diff --git a/packages/docs-theme/src/components/page.tsx b/packages/docs-theme/src/components/page.tsx index 89697918de..053f1e9337 100644 --- a/packages/docs-theme/src/components/page.tsx +++ b/packages/docs-theme/src/components/page.tsx @@ -17,7 +17,7 @@ import * as React from "react"; import { Classes } from "@blueprintjs/core"; -import { IPageData } from "documentalist/dist/client"; +import { IPageData } from "@documentalist/client"; import { ITagRendererMap } from "../tags"; import { renderBlock } from "./block"; diff --git a/packages/docs-theme/src/components/typescript/apiHeader.tsx b/packages/docs-theme/src/components/typescript/apiHeader.tsx index 4225cf6f9d..57218a2e26 100644 --- a/packages/docs-theme/src/components/typescript/apiHeader.tsx +++ b/packages/docs-theme/src/components/typescript/apiHeader.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { isTsClass, isTsInterface, ITsDocBase } from "documentalist/dist/client"; +import { isTsClass, isTsInterface, ITsDocBase } from "@documentalist/client"; import * as React from "react"; import { DocumentationContextTypes, IDocumentationContext } from "../../common/context"; diff --git a/packages/docs-theme/src/components/typescript/enumTable.tsx b/packages/docs-theme/src/components/typescript/enumTable.tsx index ed00ba4361..6db6db654e 100644 --- a/packages/docs-theme/src/components/typescript/enumTable.tsx +++ b/packages/docs-theme/src/components/typescript/enumTable.tsx @@ -15,8 +15,8 @@ */ import { IProps } from "@blueprintjs/core"; +import { ITsEnum, ITsEnumMember } from "@documentalist/client"; import classNames from "classnames"; -import { ITsEnum, ITsEnumMember } from "documentalist/dist/client"; import * as React from "react"; import { DocumentationContextTypes, IDocumentationContext } from "../../common/context"; import { ModifierTable } from "../modifierTable"; diff --git a/packages/docs-theme/src/components/typescript/interfaceTable.tsx b/packages/docs-theme/src/components/typescript/interfaceTable.tsx index 4072888544..6a0a89307d 100644 --- a/packages/docs-theme/src/components/typescript/interfaceTable.tsx +++ b/packages/docs-theme/src/components/typescript/interfaceTable.tsx @@ -15,7 +15,6 @@ */ import { Classes, Intent, IProps, Tag } from "@blueprintjs/core"; -import classNames from "classnames"; import { isTag, isTsProperty, @@ -24,7 +23,8 @@ import { ITsMethod, ITsProperty, ITsSignature, -} from "documentalist/dist/client"; +} from "@documentalist/client"; +import classNames from "classnames"; import * as React from "react"; import { DocumentationContextTypes, IDocumentationContext } from "../../common/context"; import { ModifierTable } from "../modifierTable"; diff --git a/packages/docs-theme/src/components/typescript/typeAliasTable.tsx b/packages/docs-theme/src/components/typescript/typeAliasTable.tsx index 9a586eb66b..770be27203 100644 --- a/packages/docs-theme/src/components/typescript/typeAliasTable.tsx +++ b/packages/docs-theme/src/components/typescript/typeAliasTable.tsx @@ -15,8 +15,8 @@ */ import { IProps } from "@blueprintjs/core"; +import { ITsTypeAlias } from "@documentalist/client"; import classNames from "classnames"; -import { ITsTypeAlias } from "documentalist/dist/client"; import * as React from "react"; import { DocumentationContextTypes, IDocumentationContext } from "../../common/context"; import { ApiHeader } from "./apiHeader"; diff --git a/packages/docs-theme/src/tags/css.tsx b/packages/docs-theme/src/tags/css.tsx index c0b3329b1b..dac9199388 100644 --- a/packages/docs-theme/src/tags/css.tsx +++ b/packages/docs-theme/src/tags/css.tsx @@ -15,8 +15,8 @@ */ import { Checkbox, Classes, Code } from "@blueprintjs/core"; +import { IKssPluginData, ITag } from "@documentalist/client"; import classNames from "classnames"; -import { IKssPluginData, ITag } from "documentalist/dist/client"; import * as React from "react"; import { DocumentationContextTypes, IDocumentationContext } from "../common/context"; import { Example } from "../components/example"; diff --git a/packages/docs-theme/src/tags/defaults.ts b/packages/docs-theme/src/tags/defaults.ts index 47c92be75d..adf51c7014 100644 --- a/packages/docs-theme/src/tags/defaults.ts +++ b/packages/docs-theme/src/tags/defaults.ts @@ -17,7 +17,7 @@ import * as React from "react"; import * as tags from "./"; -import { ITag } from "documentalist/dist/client"; +import { ITag } from "@documentalist/client"; export function createDefaultRenderers(): Record> { return { diff --git a/packages/docs-theme/src/tags/heading.tsx b/packages/docs-theme/src/tags/heading.tsx index 7a06dd048d..8d8ea0750f 100644 --- a/packages/docs-theme/src/tags/heading.tsx +++ b/packages/docs-theme/src/tags/heading.tsx @@ -15,8 +15,8 @@ */ import { Classes, Icon } from "@blueprintjs/core"; +import { IHeadingTag } from "@documentalist/client"; import classNames from "classnames"; -import { IHeadingTag } from "documentalist/dist/client"; import * as React from "react"; export const Heading: React.SFC = ({ level, route, value }) => diff --git a/packages/docs-theme/src/tags/index.ts b/packages/docs-theme/src/tags/index.ts index a19b38baa3..48f736ed44 100644 --- a/packages/docs-theme/src/tags/index.ts +++ b/packages/docs-theme/src/tags/index.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { ITag } from "documentalist/dist/client"; +import { ITag } from "@documentalist/client"; export interface ITagRendererMap { [tagName: string]: React.ComponentType | undefined; diff --git a/packages/docs-theme/src/tags/reactDocs.tsx b/packages/docs-theme/src/tags/reactDocs.tsx index 3cabb21fdc..1236fe98bd 100644 --- a/packages/docs-theme/src/tags/reactDocs.tsx +++ b/packages/docs-theme/src/tags/reactDocs.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { ITag } from "documentalist/dist/client"; +import { ITag } from "@documentalist/client"; import * as React from "react"; export interface IDocsMap { diff --git a/packages/docs-theme/src/tags/reactExample.tsx b/packages/docs-theme/src/tags/reactExample.tsx index 12d9e45d34..3bbba45161 100644 --- a/packages/docs-theme/src/tags/reactExample.tsx +++ b/packages/docs-theme/src/tags/reactExample.tsx @@ -15,7 +15,7 @@ */ import { AnchorButton, Intent } from "@blueprintjs/core"; -import { ITag } from "documentalist/dist/client"; +import { ITag } from "@documentalist/client"; import * as React from "react"; import { IExampleProps } from "../components/example"; diff --git a/packages/docs-theme/src/tags/see.tsx b/packages/docs-theme/src/tags/see.tsx index a127c4a0f8..5a8afd4ed1 100644 --- a/packages/docs-theme/src/tags/see.tsx +++ b/packages/docs-theme/src/tags/see.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ -import { ITag } from "documentalist/dist/client"; +import { ITag } from "@documentalist/client"; import * as React from "react"; import { DocumentationContextTypes, IDocumentationContext } from "../common/context"; diff --git a/packages/docs-theme/src/tags/typescript.tsx b/packages/docs-theme/src/tags/typescript.tsx index 0bea0acb53..de8652098a 100644 --- a/packages/docs-theme/src/tags/typescript.tsx +++ b/packages/docs-theme/src/tags/typescript.tsx @@ -15,14 +15,7 @@ */ import { IProps } from "@blueprintjs/core"; -import { - isTsClass, - isTsEnum, - isTsInterface, - isTsTypeAlias, - ITag, - ITypescriptPluginData, -} from "documentalist/dist/client"; +import { isTsClass, isTsEnum, isTsInterface, isTsTypeAlias, ITag, ITypescriptPluginData } from "@documentalist/client"; import * as React from "react"; import { DocumentationContextTypes, IDocumentationContext } from "../common/context"; import { EnumTable } from "../components/typescript/enumTable"; diff --git a/packages/tslint-config/index.js b/packages/tslint-config/index.js index cfca7d6ff1..8a62e4b639 100644 --- a/packages/tslint-config/index.js +++ b/packages/tslint-config/index.js @@ -53,7 +53,6 @@ module.exports = { "no-submodule-imports": { options: [ "core-js", - "documentalist", "lodash", "react-dom", "@blueprintjs/table/src", diff --git a/scripts/verifyCleanLockfile.sh b/scripts/verifyCleanLockfile.sh new file mode 100755 index 0000000000..c9c6266b3e --- /dev/null +++ b/scripts/verifyCleanLockfile.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +# Verifies that yarn.lock is in its cleanest possible state + +set -e +set -o pipefail + +scripts_dir="$( dirname "$(readlink -f "$0")" )" +bin="$scripts_dir/../node_modules/.bin" +duplicates="$("$bin/yarn-deduplicate" "$scripts_dir/../yarn.lock" --list)" + +if [[ $duplicates ]]; then + echo "Found duplicate blocks in yarn.lock which can be cleaned up. Please run 'yarn-deduplicate yarn.lock --strategy fewer'" + echo "" + echo "$duplicates" + exit 1 +else + exit 0 +fi diff --git a/yarn.lock b/yarn.lock index ecf790153e..de8a4ec978 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,25 @@ dependencies: regenerator-runtime "^0.13.2" +"@documentalist/client@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@documentalist/client/-/client-2.0.1.tgz#728a3aa884179ad0e83e9b53618a6ddcad448a16" + integrity sha512-Sqxxc/pn8yB7i1LdwOYHiO4NBmUYDsG+EVNvIEixKBMSN5KO+4E23KbJ1LDcMzX312wvF0wjFfoD22jrLjXS6g== + +"@documentalist/compiler@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@documentalist/compiler/-/compiler-2.0.1.tgz#050da06dbdf8a6dfdc2ced953a1f72865afd8942" + integrity sha512-E4QcfVqkY5Khz5auGkJxs+jHQg5Yn5z++b0+pJ0iilnS6q072tjtJKP/Jmkqb5tBqELOry6+09ffG84EoGu/8Q== + dependencies: + "@documentalist/client" "^2.0.1" + "@types/kss" "^3.0.1" + glob "^7.1.3" + js-yaml "^3.12.0" + kss "^3.0.0-beta.25" + marked "^0.5.1" + typedoc "^0.14.2" + yargs "^12.0.2" + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -141,7 +160,7 @@ resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.3.tgz#b672cfaac25cbbc634a0fd92c515f66faa18dbca" integrity sha512-pGF/zvYOACZ/gLGWdQH8zSwteQS1epp68yRcVLJMgUck/MjEn/FBYmPub9pXT8C1e4a8YZfHo1CKyV8q1vKUnQ== -"@types/kss@^3.0.0": +"@types/kss@^3.0.1": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/kss/-/kss-3.0.1.tgz#e302e9b844454671c5c679d235a4a9fe10abd4b9" integrity sha512-q3JUq12ansjW8gK03C69OXKkJ8LsakYlnn3/0B3D6MPR2T2Saf+iXKZcfWgKTgZmPeV+y7tkS8GjcBI9lESnFQ== @@ -402,6 +421,11 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + JSONStream@^1.0.4: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -1790,7 +1814,12 @@ commander@2.15.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== -commander@^2.12.1, commander@^2.18.0, commander@^2.19.0, commander@~2.19.0: +commander@^2.10.0, commander@^2.12.1, commander@^2.18.0, commander@^2.19.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== + +commander@~2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== @@ -2808,19 +2837,6 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" -documentalist@^1.4.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/documentalist/-/documentalist-1.6.0.tgz#01128e5ad080172d5a1675f5bad5373c311a2fe1" - integrity sha512-eiIMTVYxR/96yhkX7udVnR6+pVU08aa6MSztQcV2hQUyo4Z/L1u8CZ/0ppfpoKgpnS4wHgCnqA+b+5Tt4towkg== - dependencies: - "@types/kss" "^3.0.0" - glob "^7.1.1" - js-yaml "^3.10.0" - kss "^3.0.0-beta.18" - marked "^0.3.7" - typedoc "^0.14.2" - yargs "^10.0.3" - dom-helpers@^3.3.1: version "3.4.0" resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" @@ -5321,7 +5337,7 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= -js-yaml@3.x, js-yaml@^3.10.0, js-yaml@^3.12.0, js-yaml@^3.13.0, js-yaml@^3.4.3, js-yaml@^3.9.0: +js-yaml@3.x, js-yaml@^3.12.0, js-yaml@^3.13.0, js-yaml@^3.4.3, js-yaml@^3.9.0: version "3.13.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.0.tgz#38ee7178ac0eea2c97ff6d96fff4b18c7d8cf98e" integrity sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ== @@ -5561,7 +5577,7 @@ known-css-properties@^0.5.0: resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.5.0.tgz#6ff66943ed4a5b55657ee095779a91f4536f8084" integrity sha512-LOS0CoS8zcZnB1EjLw4LLqDXw8nvt3AGH5dXLQP3D9O1nLLA+9GC5GnPl5mmF+JiQAtSX4VyZC7KvEtcA4kUtA== -kss@^3.0.0-beta.18: +kss@^3.0.0-beta.25: version "3.0.0-beta.25" resolved "https://registry.yarnpkg.com/kss/-/kss-3.0.0-beta.25.tgz#bf3607b21dc06d56fc84dd66779c941b83f335b9" integrity sha512-jF8zh0HXUZfcysCyyKsftWyLAXkRh1Qt7ikd6WgmfKVhMRygq0x0YUFzTRB/SB57jSyk1DybbfopmFutY6Qo6Q== @@ -5948,16 +5964,16 @@ markdown-table@^1.1.0: resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.2.tgz#c78db948fa879903a41bce522e3b96f801c63786" integrity sha512-NcWuJFHDA8V3wkDgR/j4+gZx+YQwstPgfQDV8ndUeWWzta3dnDTBxpVzqS9lkmJAuV5YX35lmyojl6HO5JXAgw== -marked@^0.3.6, marked@^0.3.7: - version "0.3.19" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" - integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg== - marked@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/marked/-/marked-0.4.0.tgz#9ad2c2a7a1791f10a852e0112f77b571dce10c66" integrity sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw== +marked@^0.5.1, marked@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.5.2.tgz#3efdb27b1fd0ecec4f5aba362bddcd18120e5ba9" + integrity sha512-fdZvBa7/vSQIZCi4uuwo2N3q+7jJURpMVCcbaX0S1Mg65WZ5ilXvC67MviJAsdjqqgD+CEq4RKo5AYGgINkVAA== + math-random@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" @@ -6673,7 +6689,7 @@ npm-packlist@^1.1.6: ignore-walk "^3.0.1" npm-bundled "^1.0.1" -npm-run-all@^4.1.2, npm-run-all@^4.1.3: +npm-run-all@^4.1.2, npm-run-all@^4.1.3, npm-run-all@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== @@ -8746,6 +8762,11 @@ selfsigned@^1.9.1: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== +semver@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65" + integrity sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ== + semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -9832,7 +9853,7 @@ tough-cookie@~2.4.3: psl "^1.1.24" punycode "^1.4.1" -tree-sitter-typescript@^0.13.3: +tree-sitter-typescript@^0.13.6: version "0.13.6" resolved "https://registry.yarnpkg.com/tree-sitter-typescript/-/tree-sitter-typescript-0.13.6.tgz#f13fa362a9f797f571341706a87607a758bb3d10" integrity sha512-1csvCrW5gf4d4D0ZXCctsVDr0M+fOCXYfX/Tve6OAeHUdFu0JsI+CEsS6X3VH7umX5/62RDYe1cwbvOhCuIiXA== @@ -9893,7 +9914,7 @@ tryer@^1.0.0: resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== -tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== @@ -10431,7 +10452,7 @@ webpack-bundle-analyzer@^3.0.3: opener "^1.5.1" ws "^6.0.0" -webpack-cli@^3.1.2: +webpack-cli@^3.1.2, webpack-cli@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.0.tgz#55c8a74cae1e88117f9dda3a801c7272e93ca318" integrity sha512-t1M7G4z5FhHKJ92WRKwZ1rtvi7rHc0NZoZRbSkol0YKl4HvcC8+DsmGDmK7MmZxHSAetHagiOsjOB6MmzC2TUw== @@ -10785,13 +10806,6 @@ yargs-parser@^7.0.0: dependencies: camelcase "^4.1.0" -yargs-parser@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" - integrity sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ== - dependencies: - camelcase "^4.1.0" - yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" @@ -10817,24 +10831,6 @@ yargs@12.0.2: y18n "^3.2.1 || ^4.0.0" yargs-parser "^10.1.0" -yargs@^10.0.3: - version "10.1.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" - integrity sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig== - dependencies: - cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^8.1.0" - yargs@^11.0.0: version "11.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" @@ -10853,7 +10849,7 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" -yargs@^12.0.1, yargs@^12.0.5: +yargs@^12.0.1, yargs@^12.0.2, yargs@^12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== @@ -10942,6 +10938,15 @@ yargs@^8.0.2: y18n "^3.2.1" yargs-parser "^7.0.0" +yarn-deduplicate@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/yarn-deduplicate/-/yarn-deduplicate-1.1.1.tgz#19b4a87654b66f55bf3a4bd6b153b4e4ab1b6e6d" + integrity sha512-2FDJ1dFmtvqhRmfja89ohYzpaheCYg7BFBSyaUq+kxK0y61C9oHv1XaQovCWGJtP2WU8PksQOgzMVV7oQOobzw== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + commander "^2.10.0" + semver "^5.3.0" + yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"