From edeff71548a2cfa6815680a858bd252c98ee2746 Mon Sep 17 00:00:00 2001 From: Jeremy Elbourn Date: Thu, 15 Feb 2018 16:00:37 -0800 Subject: [PATCH 1/4] build: create sass_bundle bazel rule This defines a bazel rule to bundle sass partials into a single file using the "scss-bundle" npm package. The rule definition is commented so that it can serve as an example for creating other rules in the future. I've also added the missing build file for badge so that its theme can be included in the bundle. --- WORKSPACE | 2 +- src/cdk/a11y/BUILD.bazel | 16 ++++--- src/cdk/overlay/BUILD.bazel | 6 +++ src/lib/BUILD.bazel | 46 ++++++++++++++++++++ src/lib/autocomplete/BUILD.bazel | 5 +++ src/lib/badge/BUILD.bazel | 22 ++++++++++ src/lib/badge/badge.ts | 7 +-- src/lib/bottom-sheet/BUILD.bazel | 5 +++ src/lib/button-toggle/BUILD.bazel | 5 +++ src/lib/button/BUILD.bazel | 7 ++- src/lib/card/BUILD.bazel | 5 +++ src/lib/checkbox/BUILD.bazel | 5 +++ src/lib/chips/BUILD.bazel | 5 +++ src/lib/core/BUILD.bazel | 11 ++++- src/lib/datepicker/BUILD.bazel | 5 +++ src/lib/dialog/BUILD.bazel | 5 +++ src/lib/divider/BUILD.bazel | 7 ++- src/lib/expansion/BUILD.bazel | 5 +++ src/lib/form-field/BUILD.bazel | 6 +++ src/lib/grid-list/BUILD.bazel | 5 +++ src/lib/icon/BUILD.bazel | 5 +++ src/lib/input/BUILD.bazel | 5 +++ src/lib/list/BUILD.bazel | 6 +++ src/lib/menu/BUILD.bazel | 5 +++ src/lib/paginator/BUILD.bazel | 6 +++ src/lib/progress-bar/BUILD.bazel | 6 +++ src/lib/progress-spinner/BUILD.bazel | 5 +++ src/lib/radio/BUILD.bazel | 5 +++ src/lib/select/BUILD.bazel | 5 +++ src/lib/sidenav/BUILD.bazel | 5 +++ src/lib/slide-toggle/BUILD.bazel | 5 +++ src/lib/slider/BUILD.bazel | 5 +++ src/lib/snack-bar/BUILD.bazel | 5 +++ src/lib/sort/BUILD.bazel | 5 +++ src/lib/stepper/BUILD.bazel | 5 +++ src/lib/table/BUILD.bazel | 5 +++ src/lib/tabs/BUILD.bazel | 8 +++- src/lib/toolbar/BUILD.bazel | 5 +++ src/lib/tooltip/BUILD.bazel | 5 +++ tools/BUILD.bazel | 17 ++++++++ tools/bazel-tools-tsconfig.json | 8 ++++ tools/bazel.rc | 3 ++ tools/sass_bundle.bzl | 64 ++++++++++++++++++++++++++++ tools/sass_bundle.ts | 29 +++++++++++++ 44 files changed, 389 insertions(+), 13 deletions(-) create mode 100644 src/lib/BUILD.bazel create mode 100644 src/lib/badge/BUILD.bazel create mode 100644 tools/BUILD.bazel create mode 100644 tools/bazel-tools-tsconfig.json create mode 100644 tools/sass_bundle.bzl create mode 100644 tools/sass_bundle.ts diff --git a/WORKSPACE b/WORKSPACE index 85d0d6c90aac..ca67ed9c19c1 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -1,4 +1,4 @@ -workspace(name = "angular_material_src") +workspace(name = "angular_material") # Add nodejs rules git_repository( diff --git a/src/cdk/a11y/BUILD.bazel b/src/cdk/a11y/BUILD.bazel index 7e8d4313e452..36ef8cc40be0 100644 --- a/src/cdk/a11y/BUILD.bazel +++ b/src/cdk/a11y/BUILD.bazel @@ -3,11 +3,6 @@ load("@angular//:index.bzl", "ng_module") load("@io_bazel_rules_sass//sass:sass.bzl", "sass_library") load("@build_bazel_rules_typescript//:defs.bzl", "ts_library", "ts_web_test") -sass_library( - name = "a11y_scss_lib", - srcs = glob(["**/_*.scss"]), -) - ng_module( name = "a11y", @@ -22,6 +17,17 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): remove this when sass_library acts like a filegroup +filegroup( + name = "a11y_scss_partials", + srcs = glob(["**/_*.scss"]), +) + +sass_library( + name = "a11y_scss_lib", + srcs = [":a11y_scss_partials"], +) + ts_library( name = "a11y_test_sources", testonly = 1, diff --git a/src/cdk/overlay/BUILD.bazel b/src/cdk/overlay/BUILD.bazel index 09eb9baba0bf..1be5f2b7de8c 100644 --- a/src/cdk/overlay/BUILD.bazel +++ b/src/cdk/overlay/BUILD.bazel @@ -18,6 +18,12 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "overlay_scss_partials", + srcs = glob(["**/_*.scss"]), +) + ts_library( name = "overlay_test_sources", testonly = 1, diff --git a/src/lib/BUILD.bazel b/src/lib/BUILD.bazel new file mode 100644 index 000000000000..c670a1ff17c9 --- /dev/null +++ b/src/lib/BUILD.bazel @@ -0,0 +1,46 @@ +load("//tools:sass_bundle.bzl", "sass_bundle") + + +sass_bundle( + name = "theming_bundle", + srcs = [ + "//src/cdk/a11y:a11y_scss_partials", + "//src/cdk/overlay:overlay_scss_partials", + "//src/lib/autocomplete:autocomplete_scss_partials", + "//src/lib/badge:badge_scss_partials", + "//src/lib/bottom-sheet:bottom_sheet_scss_partials", + "//src/lib/button-toggle:button_toggle_scss_partials", + "//src/lib/button:button_scss_partials", + "//src/lib/card:card_scss_partials", + "//src/lib/checkbox:checkbox_scss_partials", + "//src/lib/chips:chips_scss_partials", + "//src/lib/core:core_scss_partials", + "//src/lib/datepicker:datepicker_scss_partials", + "//src/lib/dialog:dialog_scss_partials", + "//src/lib/divider:divider_scss_partials", + "//src/lib/expansion:expansion_panel_scss_partials", + "//src/lib/form-field:form_field_scss_partials", + "//src/lib/grid-list:grid_list_scss_partials", + "//src/lib/icon:icon_scss_partials", + "//src/lib/input:input_scss_partials", + "//src/lib/list:list_scss_partials", + "//src/lib/menu:menu_scss_partials", + "//src/lib/paginator:paginator_scss_partials", + "//src/lib/progress-bar:progress_bar_scss_partials", + "//src/lib/progress-spinner:progress_spinner_scss_partials", + "//src/lib/radio:radio_scss_partials", + "//src/lib/select:select_scss_partials", + "//src/lib/sidenav:drawer_scss_partials", + "//src/lib/slide-toggle:slide_toggle_scss_partials", + "//src/lib/slider:slider_scss_partials", + "//src/lib/snack-bar:snack_bar_scss_partials", + "//src/lib/sort:sort_header_scss_partials", + "//src/lib/stepper:stepper_scss_partials", + "//src/lib/table:table_scss_partials", + "//src/lib/tabs:tabs_scss_partials", + "//src/lib/toolbar:toolbar_scss_partials", + "//src/lib/tooltip:tooltip_scss_partials", + ], + entry_point = '//src/lib/core:theming/_all-theme.scss', + output_name = "_theming.scss", +) diff --git a/src/lib/autocomplete/BUILD.bazel b/src/lib/autocomplete/BUILD.bazel index 374e307fb0c8..d8f8c286718d 100644 --- a/src/lib/autocomplete/BUILD.bazel +++ b/src/lib/autocomplete/BUILD.bazel @@ -21,6 +21,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "autocomplete_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "autocomplete_scss", diff --git a/src/lib/badge/BUILD.bazel b/src/lib/badge/BUILD.bazel new file mode 100644 index 000000000000..99147117dbe2 --- /dev/null +++ b/src/lib/badge/BUILD.bazel @@ -0,0 +1,22 @@ +package(default_visibility=["//visibility:public"]) +load("@angular//:index.bzl", "ng_module") +load("@io_bazel_rules_sass//sass:sass.bzl", "sass_library", "sass_binary") + + +ng_module( + name = "badge", + srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]), + module_name = "@angular/material/badge", + deps = [ + "//src/lib/core", + "//src/cdk/a11y", + "//src/cdk/coercion", + ], + tsconfig = ":tsconfig-build.json", +) + +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "badge_scss_partials", + srcs = glob(["**/_*.scss"]), +) diff --git a/src/lib/badge/badge.ts b/src/lib/badge/badge.ts index de2228b52baa..25f42d5c4dfc 100644 --- a/src/lib/badge/badge.ts +++ b/src/lib/badge/badge.ts @@ -6,11 +6,12 @@ * found in the LICENSE file at https://angular.io/license */ -import {Directive, Input, ElementRef, Inject, Optional, NgZone, OnDestroy} from '@angular/core'; -import {coerceBooleanProperty} from '@angular/cdk/coercion'; -import {ThemePalette} from '@angular/material/core'; import {AriaDescriber} from '@angular/cdk/a11y'; +import {coerceBooleanProperty} from '@angular/cdk/coercion'; import {DOCUMENT} from '@angular/common'; +import {Directive, ElementRef, Inject, Input, NgZone, OnDestroy, Optional} from '@angular/core'; +import {ThemePalette} from '@angular/material/core'; + let nextId = 0; diff --git a/src/lib/bottom-sheet/BUILD.bazel b/src/lib/bottom-sheet/BUILD.bazel index 409270dc268e..3c9cfc84c0d4 100644 --- a/src/lib/bottom-sheet/BUILD.bazel +++ b/src/lib/bottom-sheet/BUILD.bazel @@ -22,6 +22,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "bottom_sheet_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "bottom_sheet_container_scss", diff --git a/src/lib/button-toggle/BUILD.bazel b/src/lib/button-toggle/BUILD.bazel index 25c31bb4469f..21bb2c4ef5e8 100644 --- a/src/lib/button-toggle/BUILD.bazel +++ b/src/lib/button-toggle/BUILD.bazel @@ -17,6 +17,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "button_toggle_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "button_toggle_scss", diff --git a/src/lib/button/BUILD.bazel b/src/lib/button/BUILD.bazel index f4f43a53bd75..794c982d9b63 100644 --- a/src/lib/button/BUILD.bazel +++ b/src/lib/button/BUILD.bazel @@ -16,11 +16,16 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): remove this when sass_library acts like a filegroup +filegroup( + name = "button_scss_partials", + srcs = glob(["**/_*.scss"]), +) # Library of all button scss partials. sass_library( name = "button_scss_lib", - srcs = glob(["**/_*.scss"]), + srcs = [":button_scss_partials"], deps = ["//src/lib/core:core_scss_lib"], ) diff --git a/src/lib/card/BUILD.bazel b/src/lib/card/BUILD.bazel index 0769fe20b95d..55c634e4d685 100644 --- a/src/lib/card/BUILD.bazel +++ b/src/lib/card/BUILD.bazel @@ -14,6 +14,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "card_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "card_scss", diff --git a/src/lib/checkbox/BUILD.bazel b/src/lib/checkbox/BUILD.bazel index 28dc3e349e50..696f9e423368 100644 --- a/src/lib/checkbox/BUILD.bazel +++ b/src/lib/checkbox/BUILD.bazel @@ -17,6 +17,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "checkbox_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "checkbox_scss", diff --git a/src/lib/chips/BUILD.bazel b/src/lib/chips/BUILD.bazel index c05f027f49aa..cde5ad0bdcb8 100644 --- a/src/lib/chips/BUILD.bazel +++ b/src/lib/chips/BUILD.bazel @@ -20,6 +20,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "chips_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "chips_scss", diff --git a/src/lib/core/BUILD.bazel b/src/lib/core/BUILD.bazel index 2ef2e7ed8206..83c0e66654e4 100644 --- a/src/lib/core/BUILD.bazel +++ b/src/lib/core/BUILD.bazel @@ -1,7 +1,10 @@ package(default_visibility=["//visibility:public"]) + load("@angular//:index.bzl", "ng_module") load("@io_bazel_rules_sass//sass:sass.bzl", "sass_library", "sass_binary") +exports_files(["theming/_theming.scss"]) + ng_module( name = "core", @@ -19,10 +22,16 @@ ng_module( ) +# TODO(jelbourn): remove this when sass_library acts like a filegroup +filegroup( + name = "core_scss_partials", + srcs = glob(["**/_*.scss"]), +) + # Library of all core scss partials. sass_library( name = "core_scss_lib", - srcs = glob(["**/_*.scss"]), + srcs = [":core_scss_partials"], deps = ["//src/cdk/a11y:a11y_scss_lib"], ) diff --git a/src/lib/datepicker/BUILD.bazel b/src/lib/datepicker/BUILD.bazel index 8984b3c65931..44aca5ee6ed0 100644 --- a/src/lib/datepicker/BUILD.bazel +++ b/src/lib/datepicker/BUILD.bazel @@ -28,6 +28,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "datepicker_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "datepicker_content_scss", diff --git a/src/lib/dialog/BUILD.bazel b/src/lib/dialog/BUILD.bazel index 493597f3d986..7cabde57f773 100644 --- a/src/lib/dialog/BUILD.bazel +++ b/src/lib/dialog/BUILD.bazel @@ -19,6 +19,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "dialog_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "dialog_scss", diff --git a/src/lib/divider/BUILD.bazel b/src/lib/divider/BUILD.bazel index 19b106a011d3..8deed623abe2 100644 --- a/src/lib/divider/BUILD.bazel +++ b/src/lib/divider/BUILD.bazel @@ -16,13 +16,18 @@ ng_module( ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "divider_scss_partials", + srcs = glob(["**/_*.scss"]), +) + sass_library( name = "divider_scss_lib", srcs = ["divider.scss"], deps = ["//src/lib/core:core_scss_lib"], ) - sass_binary( name = "divider_scss", src = "divider.scss", diff --git a/src/lib/expansion/BUILD.bazel b/src/lib/expansion/BUILD.bazel index d977b5beb401..1eea374e5a95 100644 --- a/src/lib/expansion/BUILD.bazel +++ b/src/lib/expansion/BUILD.bazel @@ -23,6 +23,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "expansion_panel_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "expansion_panel_scss", diff --git a/src/lib/form-field/BUILD.bazel b/src/lib/form-field/BUILD.bazel index 89e88cea7b10..202bff2b6824 100644 --- a/src/lib/form-field/BUILD.bazel +++ b/src/lib/form-field/BUILD.bazel @@ -23,6 +23,12 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "form_field_scss_partials", + srcs = glob(["**/_*.scss"]), +) + sass_binary( name = "form_field_scss", src = "form-field.scss", diff --git a/src/lib/grid-list/BUILD.bazel b/src/lib/grid-list/BUILD.bazel index dddf90e722d9..b5c63056b1a0 100644 --- a/src/lib/grid-list/BUILD.bazel +++ b/src/lib/grid-list/BUILD.bazel @@ -15,6 +15,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "grid_list_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "grid_list_scss", diff --git a/src/lib/icon/BUILD.bazel b/src/lib/icon/BUILD.bazel index 9d942e29f739..808c701178b7 100644 --- a/src/lib/icon/BUILD.bazel +++ b/src/lib/icon/BUILD.bazel @@ -14,6 +14,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "icon_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "icon_scss", diff --git a/src/lib/input/BUILD.bazel b/src/lib/input/BUILD.bazel index 413c7d8606f7..4412e5905587 100644 --- a/src/lib/input/BUILD.bazel +++ b/src/lib/input/BUILD.bazel @@ -17,6 +17,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "input_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "input_scss", diff --git a/src/lib/list/BUILD.bazel b/src/lib/list/BUILD.bazel index 2fa7394d8cf1..ff6f02abe521 100644 --- a/src/lib/list/BUILD.bazel +++ b/src/lib/list/BUILD.bazel @@ -20,6 +20,12 @@ ng_module( ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "list_scss_partials", + srcs = glob(["**/_*.scss"]), +) + sass_binary( name = "list_scss", src = "list.scss", diff --git a/src/lib/menu/BUILD.bazel b/src/lib/menu/BUILD.bazel index 6f4f2db438dc..16eb45e72f7d 100644 --- a/src/lib/menu/BUILD.bazel +++ b/src/lib/menu/BUILD.bazel @@ -20,6 +20,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "menu_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "menu_scss", diff --git a/src/lib/paginator/BUILD.bazel b/src/lib/paginator/BUILD.bazel index f1a7689892c4..85220bb31e60 100644 --- a/src/lib/paginator/BUILD.bazel +++ b/src/lib/paginator/BUILD.bazel @@ -19,6 +19,12 @@ ng_module( ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "paginator_scss_partials", + srcs = glob(["**/_*.scss"]), +) + sass_binary( name = "paginator_scss", src = "paginator.scss", diff --git a/src/lib/progress-bar/BUILD.bazel b/src/lib/progress-bar/BUILD.bazel index d4df80ec9a0b..383362aae51e 100644 --- a/src/lib/progress-bar/BUILD.bazel +++ b/src/lib/progress-bar/BUILD.bazel @@ -15,6 +15,12 @@ ng_module( ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "progress_bar_scss_partials", + srcs = glob(["**/_*.scss"]), +) + sass_binary( name = "progress_bar_scss", src = "progress-bar.scss", diff --git a/src/lib/progress-spinner/BUILD.bazel b/src/lib/progress-spinner/BUILD.bazel index 7091b6759c16..193907e1c0a7 100644 --- a/src/lib/progress-spinner/BUILD.bazel +++ b/src/lib/progress-spinner/BUILD.bazel @@ -14,6 +14,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "progress_spinner_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "progress_spinner_scss", diff --git a/src/lib/radio/BUILD.bazel b/src/lib/radio/BUILD.bazel index 4d51c93224b8..6ae78586befc 100644 --- a/src/lib/radio/BUILD.bazel +++ b/src/lib/radio/BUILD.bazel @@ -17,6 +17,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "radio_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "radio_scss", diff --git a/src/lib/select/BUILD.bazel b/src/lib/select/BUILD.bazel index 84c50e105003..ae7e6ff9dd9b 100644 --- a/src/lib/select/BUILD.bazel +++ b/src/lib/select/BUILD.bazel @@ -22,6 +22,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "select_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "select_scss", diff --git a/src/lib/sidenav/BUILD.bazel b/src/lib/sidenav/BUILD.bazel index c8879a6ab175..39c10b74822c 100644 --- a/src/lib/sidenav/BUILD.bazel +++ b/src/lib/sidenav/BUILD.bazel @@ -21,6 +21,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "drawer_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "drawer_scss", diff --git a/src/lib/slide-toggle/BUILD.bazel b/src/lib/slide-toggle/BUILD.bazel index 67cf7b61172e..854b9b5a7ba1 100644 --- a/src/lib/slide-toggle/BUILD.bazel +++ b/src/lib/slide-toggle/BUILD.bazel @@ -18,6 +18,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "slide_toggle_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "slide_toggle_scss", diff --git a/src/lib/slider/BUILD.bazel b/src/lib/slider/BUILD.bazel index 7c6407f92f9a..22a7628ef167 100644 --- a/src/lib/slider/BUILD.bazel +++ b/src/lib/slider/BUILD.bazel @@ -19,6 +19,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "slider_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "slider_scss", diff --git a/src/lib/snack-bar/BUILD.bazel b/src/lib/snack-bar/BUILD.bazel index 55acdd0a93fe..eedf6b5b97cf 100644 --- a/src/lib/snack-bar/BUILD.bazel +++ b/src/lib/snack-bar/BUILD.bazel @@ -22,6 +22,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "snack_bar_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "snack_bar_container_scss", diff --git a/src/lib/sort/BUILD.bazel b/src/lib/sort/BUILD.bazel index 13efa3cfcf2c..04a65432a3f4 100644 --- a/src/lib/sort/BUILD.bazel +++ b/src/lib/sort/BUILD.bazel @@ -17,6 +17,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "sort_header_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "sort_header_scss", diff --git a/src/lib/stepper/BUILD.bazel b/src/lib/stepper/BUILD.bazel index 6d88ca69fe0b..180ddce15deb 100644 --- a/src/lib/stepper/BUILD.bazel +++ b/src/lib/stepper/BUILD.bazel @@ -24,6 +24,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "stepper_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "stepper_scss", diff --git a/src/lib/table/BUILD.bazel b/src/lib/table/BUILD.bazel index e05a6f6a3d4f..954feb70710b 100644 --- a/src/lib/table/BUILD.bazel +++ b/src/lib/table/BUILD.bazel @@ -18,6 +18,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "table_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "table_scss", diff --git a/src/lib/tabs/BUILD.bazel b/src/lib/tabs/BUILD.bazel index f3929268efc8..d89205cbe040 100644 --- a/src/lib/tabs/BUILD.bazel +++ b/src/lib/tabs/BUILD.bazel @@ -26,10 +26,16 @@ ng_module( ) +# TODO(jelbourn): remove this when sass_library acts like a filegroup +filegroup( + name = "tabs_scss_partials", + srcs = glob(["**/_*.scss"]), +) + # Library of all tabs scss partials. sass_library( name = "tabs_scss_lib", - srcs = glob(["**/_*.scss"]), + srcs = [":tabs_scss_partials"], deps = ["//src/lib/core:core_scss_lib"], ) diff --git a/src/lib/toolbar/BUILD.bazel b/src/lib/toolbar/BUILD.bazel index 79cbc08bbba5..90c54468a6bf 100644 --- a/src/lib/toolbar/BUILD.bazel +++ b/src/lib/toolbar/BUILD.bazel @@ -15,6 +15,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "toolbar_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "toolbar_scss", diff --git a/src/lib/tooltip/BUILD.bazel b/src/lib/tooltip/BUILD.bazel index 18db7a1828ee..e052d987b641 100644 --- a/src/lib/tooltip/BUILD.bazel +++ b/src/lib/tooltip/BUILD.bazel @@ -24,6 +24,11 @@ ng_module( tsconfig = ":tsconfig-build.json", ) +# TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup +filegroup( + name = "tooltip_scss_partials", + srcs = glob(["**/_*.scss"]), +) sass_binary( name = "tooltip_scss", diff --git a/tools/BUILD.bazel b/tools/BUILD.bazel new file mode 100644 index 000000000000..418500d1511a --- /dev/null +++ b/tools/BUILD.bazel @@ -0,0 +1,17 @@ +package(default_visibility=["//visibility:public"]) +load("@build_bazel_rules_typescript//:defs.bzl", "ts_library") +load("@build_bazel_rules_nodejs//:defs.bzl", "nodejs_binary") + + +ts_library( + name = "sass_bundle_lib", + srcs = ["sass_bundle.ts"], + tsconfig = "bazel-tools-tsconfig.json", +) + +# Executable for the custom sass_bundle rule (see sass_bundle.bzl). +nodejs_binary( + name = "sass_bundle", + data = [":sass_bundle_lib"], + entry_point = "angular_material/tools/sass_bundle.js", +) diff --git a/tools/bazel-tools-tsconfig.json b/tools/bazel-tools-tsconfig.json new file mode 100644 index 000000000000..ce73d5d1c243 --- /dev/null +++ b/tools/bazel-tools-tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es5", + "lib": ["es2015"], + "types": ["node"] + } +} diff --git a/tools/bazel.rc b/tools/bazel.rc index 13a493b27aba..7fb4fbd21612 100644 --- a/tools/bazel.rc +++ b/tools/bazel.rc @@ -36,6 +36,9 @@ test --test_output=errors build --experimental_ui test --experimental_ui +# Output to a more coventional location +build --symlink_prefix=dist/bazel/ + ############################### # Typescript / Angular / Sass # ############################### diff --git a/tools/sass_bundle.bzl b/tools/sass_bundle.bzl new file mode 100644 index 000000000000..e8a7ffd326de --- /dev/null +++ b/tools/sass_bundle.bzl @@ -0,0 +1,64 @@ +# Implementation of sass_bundle that performs an action +def _sass_bundle(ctx): + # Define arguments that will be passed to the underlying nodejs script. + args = ctx.actions.args() + + # The entry-point scss file for the bundle. + args.add("--entry") + args.add(ctx.attr.entry_point.files) + + # The list of files that can be included in the bundle. + args.add("--srcs") + args.add(ctx.files.srcs, join_with =",") + + # The generated bundle's filename. + args.add("--output") + args.add(ctx.outputs.output_name.path) + + # Define an "action" that will run the nodejs_binary executable. This is + # the main thing that sass_bundle rule does. + ctx.actions.run( + inputs = ctx.files.srcs, + executable = ctx.executable.sass_bundle, + outputs = [ctx.outputs.output_name], + arguments = [args], + ) + + # The return value describes what the rule is producing. + # In this case, we can use a `DefaultInfo`, since the rule only produces + # a single output file. + return [DefaultInfo(files = depset([ctx.outputs.output_name]))] + + +# Rule definition for sass_bundle that defines attributes and outputs. +sass_bundle = rule( + # Point to the function that will execute for this rule. + implementation = _sass_bundle, + + # The attributes that can be set to this rule. + attrs = { + # The source files for this rule. This must include all sass files that + # *could* be included in the bundle, as only the files that this rule knows + # about (i.e. the labels) will be available in the bazel sandbox in which + # the nodejs_binary runs. + "srcs": attr.label_list(allow_files = True), + + # The name of the file to be output from this rule. The rule will fail if + # the nodejs_binary does not produce this output file. By using + # `attr.output()`, we can omit the separate `outputs` declaration a more + # complicated rule would need. + "output_name": attr.output(), + + # The scss entry-point. Note that this uses a label and not a string + # in order to make bazel aware that this file is a *dependency* of the + # rule (and will thus be available to the nodejs_binary in the sandbox). + "entry_point": attr.label(mandatory = True, allow_single_file = True), + + # The executable (bundler) for this rule. The user will typically never + # specify this and always use the default. + "sass_bundle": attr.label( + default = Label("//tools:sass_bundle"), + executable = True, + cfg = "host" + )}, +) diff --git a/tools/sass_bundle.ts b/tools/sass_bundle.ts new file mode 100644 index 000000000000..729551ecb76d --- /dev/null +++ b/tools/sass_bundle.ts @@ -0,0 +1,29 @@ +import {dirname, join} from 'path'; +import {readFileSync, writeFileSync, readdirSync, lstatSync} from 'fs'; + +const Bundler = require('scss-bundle').Bundler; +const minimist = require('minimist'); + +/** The root of the bazel workspace (sandbox). */ +const workspaceRoot = process.cwd(); + +export async function main(args: string[]): Promise { + const parsedArgs: {srcs: string, output: string, entry: string} = minimist(args); + const inputFiles = parsedArgs.srcs.split(','); + + return new Bundler().Bundle(join(workspaceRoot, parsedArgs.entry), inputFiles).then(result => { + writeFileSync(parsedArgs.output, result.bundledContent); + return 0; + }).catch(error => { + console.error('Sass bundling failed'); + console.dir(error); + return 1; + }); +} + +if (require.main === module) { + const args = process.argv.slice(2); + main(args).then(exitCode => { + process.exitCode = exitCode; + }); +} From ec30cef5e40a0cf314cce8edca95f0b97b7641d2 Mon Sep 17 00:00:00 2001 From: Jeremy Elbourn Date: Wed, 21 Feb 2018 10:29:52 -0800 Subject: [PATCH 2/4] Use constant for material packages --- BUILD.bazel | 37 +++++++++++++++++++++++++++++++++++ components.bzl | 37 +++++++++++++++++++++++++++++++++++ src/lib/BUILD.bazel | 37 +++-------------------------------- src/lib/expansion/BUILD.bazel | 2 +- src/lib/sidenav/BUILD.bazel | 2 +- src/lib/sort/BUILD.bazel | 2 +- tools/sass_bundle.ts | 5 +++-- 7 files changed, 83 insertions(+), 39 deletions(-) create mode 100644 components.bzl diff --git a/BUILD.bazel b/BUILD.bazel index 64d9b28e8137..7a4879d40d06 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -46,6 +46,43 @@ ANGULAR_TESTING = [ "node_modules/@angular/platform-browser-dynamic/bundles/*.umd.js", ] +MATERIAL_COMPONENTS = [ + "autocomplete", + "badge", + "bottom-sheet", + "button-toggle", + "button", + "card", + "checkbox", + "chips", + "core", + "datepicker", + "dialog", + "divider", + "expansion", + "form-field", + "grid-list", + "icon", + "input", + "list", + "menu", + "paginator", + "progress-bar", + "progress-spinner", + "radio", + "select", + "sidenav", + "slide-toggle", + "slider", + "snack-bar", + "sort", + "stepper", + "table", + "tabs", + "toolbar", + "tooltip", +] + filegroup( name = "angular_bundles", srcs = glob(["node_modules/@angular/*/bundles/*.umd.js"], exclude = ANGULAR_TESTING), diff --git a/components.bzl b/components.bzl new file mode 100644 index 000000000000..53a3486c34fc --- /dev/null +++ b/components.bzl @@ -0,0 +1,37 @@ +# List of all @angular/material components / subpackages. +MATERIAL_PACKAGES = [ + "autocomplete", + "badge", + "bottom-sheet", + "button-toggle", + "button", + "card", + "checkbox", + "chips", + "core", + "datepicker", + "dialog", + "divider", + "expansion", + "form-field", + "grid-list", + "icon", + "input", + "list", + "menu", + "paginator", + "progress-bar", + "progress-spinner", + "radio", + "select", + "sidenav", + "slide-toggle", + "slider", + "snack-bar", + "sort", + "stepper", + "table", + "tabs", + "toolbar", + "tooltip", +] diff --git a/src/lib/BUILD.bazel b/src/lib/BUILD.bazel index c670a1ff17c9..729d7ec57f05 100644 --- a/src/lib/BUILD.bazel +++ b/src/lib/BUILD.bazel @@ -1,4 +1,5 @@ load("//tools:sass_bundle.bzl", "sass_bundle") +load("//:components.bzl", "MATERIAL_PACKAGES") sass_bundle( @@ -6,40 +7,8 @@ sass_bundle( srcs = [ "//src/cdk/a11y:a11y_scss_partials", "//src/cdk/overlay:overlay_scss_partials", - "//src/lib/autocomplete:autocomplete_scss_partials", - "//src/lib/badge:badge_scss_partials", - "//src/lib/bottom-sheet:bottom_sheet_scss_partials", - "//src/lib/button-toggle:button_toggle_scss_partials", - "//src/lib/button:button_scss_partials", - "//src/lib/card:card_scss_partials", - "//src/lib/checkbox:checkbox_scss_partials", - "//src/lib/chips:chips_scss_partials", - "//src/lib/core:core_scss_partials", - "//src/lib/datepicker:datepicker_scss_partials", - "//src/lib/dialog:dialog_scss_partials", - "//src/lib/divider:divider_scss_partials", - "//src/lib/expansion:expansion_panel_scss_partials", - "//src/lib/form-field:form_field_scss_partials", - "//src/lib/grid-list:grid_list_scss_partials", - "//src/lib/icon:icon_scss_partials", - "//src/lib/input:input_scss_partials", - "//src/lib/list:list_scss_partials", - "//src/lib/menu:menu_scss_partials", - "//src/lib/paginator:paginator_scss_partials", - "//src/lib/progress-bar:progress_bar_scss_partials", - "//src/lib/progress-spinner:progress_spinner_scss_partials", - "//src/lib/radio:radio_scss_partials", - "//src/lib/select:select_scss_partials", - "//src/lib/sidenav:drawer_scss_partials", - "//src/lib/slide-toggle:slide_toggle_scss_partials", - "//src/lib/slider:slider_scss_partials", - "//src/lib/snack-bar:snack_bar_scss_partials", - "//src/lib/sort:sort_header_scss_partials", - "//src/lib/stepper:stepper_scss_partials", - "//src/lib/table:table_scss_partials", - "//src/lib/tabs:tabs_scss_partials", - "//src/lib/toolbar:toolbar_scss_partials", - "//src/lib/tooltip:tooltip_scss_partials", + ] + [ + "//src/lib/%s:%s_scss_partials" % (p, p.replace('-', '_')) for p in MATERIAL_PACKAGES ], entry_point = '//src/lib/core:theming/_all-theme.scss', output_name = "_theming.scss", diff --git a/src/lib/expansion/BUILD.bazel b/src/lib/expansion/BUILD.bazel index 1eea374e5a95..da3a44499325 100644 --- a/src/lib/expansion/BUILD.bazel +++ b/src/lib/expansion/BUILD.bazel @@ -25,7 +25,7 @@ ng_module( # TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup filegroup( - name = "expansion_panel_scss_partials", + name = "expansion_scss_partials", srcs = glob(["**/_*.scss"]), ) diff --git a/src/lib/sidenav/BUILD.bazel b/src/lib/sidenav/BUILD.bazel index 39c10b74822c..82d7025bde83 100644 --- a/src/lib/sidenav/BUILD.bazel +++ b/src/lib/sidenav/BUILD.bazel @@ -23,7 +23,7 @@ ng_module( # TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup filegroup( - name = "drawer_scss_partials", + name = "sidenav_scss_partials", srcs = glob(["**/_*.scss"]), ) diff --git a/src/lib/sort/BUILD.bazel b/src/lib/sort/BUILD.bazel index 04a65432a3f4..a6bc512d9ad8 100644 --- a/src/lib/sort/BUILD.bazel +++ b/src/lib/sort/BUILD.bazel @@ -19,7 +19,7 @@ ng_module( # TODO(jelbourn): replace this w/ sass_library when it supports acting like a filegroup filegroup( - name = "sort_header_scss_partials", + name = "sort_scss_partials", srcs = glob(["**/_*.scss"]), ) diff --git a/tools/sass_bundle.ts b/tools/sass_bundle.ts index 729551ecb76d..e902669e9a7a 100644 --- a/tools/sass_bundle.ts +++ b/tools/sass_bundle.ts @@ -1,5 +1,6 @@ -import {dirname, join} from 'path'; -import {readFileSync, writeFileSync, readdirSync, lstatSync} from 'fs'; +import {writeFileSync} from 'fs'; +import {join} from 'path'; + const Bundler = require('scss-bundle').Bundler; const minimist = require('minimist'); From 6e5a35cbbcc5eebb82502d7b5ac542d46571f5fe Mon Sep 17 00:00:00 2001 From: Jeremy Elbourn Date: Wed, 21 Feb 2018 10:55:42 -0800 Subject: [PATCH 3/4] Additional comments --- tools/bazel-tools-tsconfig.json | 2 -- tools/sass_bundle.bzl | 5 ++--- tools/sass_bundle.ts | 5 +++++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/tools/bazel-tools-tsconfig.json b/tools/bazel-tools-tsconfig.json index ce73d5d1c243..711798730388 100644 --- a/tools/bazel-tools-tsconfig.json +++ b/tools/bazel-tools-tsconfig.json @@ -1,7 +1,5 @@ { "compilerOptions": { - "module": "commonjs", - "target": "es5", "lib": ["es2015"], "types": ["node"] } diff --git a/tools/sass_bundle.bzl b/tools/sass_bundle.bzl index e8a7ffd326de..1005ed388d1e 100644 --- a/tools/sass_bundle.bzl +++ b/tools/sass_bundle.bzl @@ -54,9 +54,8 @@ sass_bundle = rule( # rule (and will thus be available to the nodejs_binary in the sandbox). "entry_point": attr.label(mandatory = True, allow_single_file = True), - # The executable (bundler) for this rule. The user will typically never - # specify this and always use the default. - "sass_bundle": attr.label( + # The executable (bundler) for this rule (private). + "_sass_bundle": attr.label( default = Label("//tools:sass_bundle"), executable = True, cfg = "host" diff --git a/tools/sass_bundle.ts b/tools/sass_bundle.ts index e902669e9a7a..1dc6b14e2d77 100644 --- a/tools/sass_bundle.ts +++ b/tools/sass_bundle.ts @@ -8,6 +8,11 @@ const minimist = require('minimist'); /** The root of the bazel workspace (sandbox). */ const workspaceRoot = process.cwd(); +/** + * Bundles sass partials into a single file using the `scss-bundle` package. This does not use the + * default CLI for `scss-bundle` to give us a place to introspect / debug values coming from + * bazel if necessary. + */ export async function main(args: string[]): Promise { const parsedArgs: {srcs: string, output: string, entry: string} = minimist(args); const inputFiles = parsedArgs.srcs.split(','); From f20aa379c88512bf5b10d03201c4b4e0c6e39595 Mon Sep 17 00:00:00 2001 From: Jeremy Elbourn Date: Fri, 23 Feb 2018 09:58:30 -0800 Subject: [PATCH 4/4] Remove extra constant --- BUILD.bazel | 37 -- package-lock.json | 1073 +++++++++++++++++++++++++++++++++++++---- tools/sass_bundle.bzl | 2 +- 3 files changed, 990 insertions(+), 122 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index 7a4879d40d06..64d9b28e8137 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -46,43 +46,6 @@ ANGULAR_TESTING = [ "node_modules/@angular/platform-browser-dynamic/bundles/*.umd.js", ] -MATERIAL_COMPONENTS = [ - "autocomplete", - "badge", - "bottom-sheet", - "button-toggle", - "button", - "card", - "checkbox", - "chips", - "core", - "datepicker", - "dialog", - "divider", - "expansion", - "form-field", - "grid-list", - "icon", - "input", - "list", - "menu", - "paginator", - "progress-bar", - "progress-spinner", - "radio", - "select", - "sidenav", - "slide-toggle", - "slider", - "snack-bar", - "sort", - "stepper", - "table", - "tabs", - "toolbar", - "tooltip", -] - filegroup( name = "angular_bundles", srcs = glob(["node_modules/@angular/*/bundles/*.umd.js"], exclude = ANGULAR_TESTING), diff --git a/package-lock.json b/package-lock.json index 17694daca499..f2fc86303d41 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2691,13 +2691,13 @@ "@protobufjs/base64": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha1-TIVzDlm5ofHzSQR9vyQpYDS7JzU=", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", "dev": true }, "@protobufjs/codegen": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha1-fvN/DQEPsCitGtWXIuUG2SYoFcs=", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", "dev": true }, "@protobufjs/eventemitter": { @@ -2781,7 +2781,7 @@ "@types/google-cloud__storage": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/@types/google-cloud__storage/-/google-cloud__storage-1.1.7.tgz", - "integrity": "sha1-9LVosWPM4WMU8y+VT1t9XJAB+oY=", + "integrity": "sha512-010Llp+5ze+XWWmZuLDxs0pZgFjOgtJQVt9icJ0Ed67ZFLq7PnXkYx8x/k9nwDojR5/X4XoLPNqB1F627TScdQ==", "dev": true, "requires": { "@types/node": "7.0.54" @@ -2801,7 +2801,7 @@ "@types/hammerjs": { "version": "2.0.35", "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.35.tgz", - "integrity": "sha1-e3yVDH1UWT4jv/yNK0/rqYZqcnc=", + "integrity": "sha512-4mUIMSZ2U4UOWq1b+iV7XUTE4w+Kr3x+Zb/Qz5ROO6BTZLw2c8/ftjq0aRgluguLs4KRuBnrOy/s389HVn1/zA==", "dev": true }, "@types/jasmine": { @@ -2813,7 +2813,7 @@ "@types/long": { "version": "3.0.32", "resolved": "https://registry.npmjs.org/@types/long/-/long-3.0.32.tgz", - "integrity": "sha1-9OWvMenpsZbY5fyopeLiCqPWC2k=", + "integrity": "sha512-ZXyOOm83p7X8p3s0IYM3VeueNmHpkk/yMlP8CLeOnEcu6hIwPH7YjZBvhQkR0ZFS2DqZAxKtJ/M5fcuv3OU5BA==", "dev": true }, "@types/merge2": { @@ -2846,7 +2846,7 @@ "@types/orchestrator": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@types/orchestrator/-/orchestrator-0.3.2.tgz", - "integrity": "sha1-zRXGzql4oyuY5QVCOcvMeOVWcfE=", + "integrity": "sha512-cKB4yTX0wGaRCSkdHDX2fkGQbMAA8UOshC2U7DQky1CE5o+5q2iQQ8VkbPbE/88uaTtsusvBPMcCX7dgmjxBhQ==", "dev": true, "requires": { "@types/node": "7.0.54", @@ -2872,7 +2872,7 @@ "@types/selenium-webdriver": { "version": "2.53.43", "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-2.53.43.tgz", - "integrity": "sha1-LePXGIGbwgFldUxKWa+36YM/Zwc=", + "integrity": "sha512-UBYHWph6P3tutkbXpW6XYg9ZPbTKjw/YC2hGG1/GEvWwTbvezBUv3h+mmUFw79T3RFPnmedpiXdOBbXX+4l0jg==", "dev": true }, "@types/shelljs": { @@ -2919,7 +2919,7 @@ "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "accepts": { @@ -3101,7 +3101,7 @@ "anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { "micromatch": "2.3.11", @@ -3117,7 +3117,7 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, "archiver": { @@ -3193,7 +3193,7 @@ "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "arr-union": { @@ -3265,7 +3265,7 @@ "array-slice": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha1-42jqFfibxwaff/uJrsOmx9SsItQ=", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", "dev": true }, "array-union": { @@ -3350,7 +3350,7 @@ "async": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha1-YaKau2/MAm/qd+VtHG7FOnlZUfQ=", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "dev": true, "requires": { "lodash": "4.17.5" @@ -3446,7 +3446,7 @@ "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, "backo2": { @@ -3638,7 +3638,7 @@ "bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha1-2VUfnemPH82h5oPRfukaBgLuLrk=", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", "dev": true }, "body-parser": { @@ -3860,7 +3860,7 @@ "bun": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/bun/-/bun-0.0.12.tgz", - "integrity": "sha1-1U+uafiVVX8nVCO8FLQEAwsgpfw=", + "integrity": "sha512-Toms18J9DqnT+IfWkwxVTB2EaBprHvjlMWrTIsfX4xbu3ZBqVBwrERU0em1IgtRe04wT+wJxMlKHZok24hrcSQ==", "dev": true, "requires": { "readable-stream": "1.0.34" @@ -4135,6 +4135,7 @@ "requires": { "anymatch": "1.3.2", "async-each": "1.0.1", + "fsevents": "1.1.3", "glob-parent": "2.0.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -4152,7 +4153,7 @@ "circular-json": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", "dev": true }, "cjson": { @@ -4614,7 +4615,7 @@ "color-convert": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha1-wSYRB66y8pTr/+ye2eytUppgl+0=", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { "color-name": "1.1.3" @@ -4801,7 +4802,7 @@ "configstore": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz", - "integrity": "sha1-CU7mYquD+tmRdnjeEU+q6o/NypA=", + "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==", "dev": true, "requires": { "dot-prop": "4.2.0", @@ -4935,13 +4936,13 @@ "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", "dev": true }, "content-type-parser": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", - "integrity": "sha1-yqvoBiPmNjiyUC/Ux/Ev9M4jUuc=", + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", "dev": true }, "conventional-changelog": { @@ -5373,7 +5374,7 @@ "boom": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha1-XdnabuOl8wIHdDYpDLcX0/SlTgI=", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", "dev": true, "requires": { "hoek": "4.2.0" @@ -5881,7 +5882,7 @@ "detective-typescript": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/detective-typescript/-/detective-typescript-1.0.1.tgz", - "integrity": "sha1-av+g1L+MpQAZTzDCi+RFyZ/s+B0=", + "integrity": "sha512-4DZpsap+dVzQblcL/ffVXtaXtA7byrP14XQnvyAvwo8+z7/C0OrwLNQhyiC6cLZlzy2T8QuPc+mDsYsa4lAxHw==", "dev": true, "requires": { "node-source-walk": "3.2.0", @@ -6091,7 +6092,7 @@ "dot-prop": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc=", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { "is-obj": "1.0.1" @@ -7774,6 +7775,910 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true, + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "dev": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, "fstream": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", @@ -8024,7 +8929,7 @@ "github": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/github/-/github-12.1.0.tgz", - "integrity": "sha1-8qLcvUQReBVZQiV0kaS8CL9mHdc=", + "integrity": "sha512-HhWjhd/OATC4Hjj7xfGjGRtwWzo/fzTc55EkvsRatI9G6Vp47mVcdBIt1lQ56A9Qit/yVQRX1+M9jbWlcJvgug==", "dev": true, "requires": { "dotenv": "4.0.0", @@ -8046,7 +8951,7 @@ "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -11060,7 +11965,7 @@ "gulp-highlight-files": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/gulp-highlight-files/-/gulp-highlight-files-0.0.5.tgz", - "integrity": "sha1-sk9JN3hbHZ8XlZTZW32I8aeU/cg=", + "integrity": "sha512-lGLApyg6ycB45MWsLx9WbsAv0iTPxGTUH+Lq8evAXUXCFBPITG2JmLxQ3OYWA1/AOItDeAX5yza1HdLlaIXIPA==", "dev": true, "requires": { "gulp-util": "3.0.8", @@ -11322,7 +12227,7 @@ "has-to-string-tag-x": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha1-oEWrOD17SyASoAFIqwql8pAETU0=", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, "optional": true, "requires": { @@ -11407,7 +12312,7 @@ "hawk": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha1-r02RTrBl+bXOTZ0RwcshJu7MMDg=", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", "dev": true, "requires": { "boom": "4.3.1", @@ -11468,7 +12373,7 @@ "html-encoding-sniffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha1-5w2EuU2lOqN14R/jo1G+ZkLKRvg=", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", "dev": true, "requires": { "whatwg-encoding": "1.0.3" @@ -11618,13 +12523,13 @@ "iconv-lite": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha1-90aPYBNfXl2tM5nAqBvpoWA6CCs=", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", "dev": true }, "ignore": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", - "integrity": "sha1-YSKJv7PCIOGGpYEYYY1b6MG6sCE=", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", "dev": true }, "image-diff": { @@ -11734,7 +12639,7 @@ "ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, "inquirer": { @@ -11850,7 +12755,7 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-builtin-module": { @@ -12078,7 +12983,7 @@ "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { "isobject": "3.0.1" @@ -12368,7 +13273,7 @@ "isurl": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha1-sn9PSfPNqj6kSgpbfzRi5u3DnWc=", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, "optional": true, "requires": { @@ -12627,7 +13532,7 @@ "jszip": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz", - "integrity": "sha1-48KmxtcGrG5gMxQDbUPNQL7v3zc=", + "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", "dev": true, "requires": { "core-js": "2.3.0", @@ -12697,7 +13602,7 @@ "karma": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz", - "integrity": "sha1-hcwI6eCiLXzpzKN8ShvoJPaisa4=", + "integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==", "dev": true, "requires": { "bluebird": "3.5.1", @@ -12755,7 +13660,7 @@ "karma-browserstack-launcher": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/karma-browserstack-launcher/-/karma-browserstack-launcher-1.3.0.tgz", - "integrity": "sha1-Yf49NrHPEGgeQPnYdL83Jx+xxnQ=", + "integrity": "sha512-LrPf5sU/GISkEElWyoy06J8x0c8BcOjjOwf61Wqu6M0aWQu0Eoqm9yh3xON64/ByST/CEr0GsWiREQ/EIEMd4Q==", "dev": true, "requires": { "browserstack": "1.5.0", @@ -12774,7 +13679,7 @@ "karma-chrome-launcher": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", - "integrity": "sha1-zxudBxNswY/iOTJ9JGVMPbw2is8=", + "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", "dev": true, "requires": { "fs-access": "1.0.1", @@ -12827,7 +13732,7 @@ "karma-sauce-launcher": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/karma-sauce-launcher/-/karma-sauce-launcher-1.2.0.tgz", - "integrity": "sha1-byVY3e889Wh5+idUDIrp+L/Ra8o=", + "integrity": "sha512-lEhtGRGS+3Yw6JSx/vJY9iQyHNtTjcojrSwNzqNUOaDceKDu9dPZqA/kr69bUO9G2T6GKbu8AZgXqy94qo31Jg==", "dev": true, "requires": { "q": "1.5.1", @@ -13421,7 +14326,7 @@ "lru-cache": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha1-Yi4y6CSItJJ5EUpPns9F581rulU=", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "dev": true, "requires": { "pseudomap": "1.0.2", @@ -13431,7 +14336,7 @@ "madge": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/madge/-/madge-2.2.0.tgz", - "integrity": "sha1-Vgrn/nOjGp54T+QC2bP3nAOVJ8w=", + "integrity": "sha512-5UoX9n8od0UmKPcZo4KydgQch+oKvlywsee+60ochES6Uo1UDaHnt6yx+SOIZMt007R0F/ZNq03vhxlaJPep+g==", "dev": true, "requires": { "chalk": "1.1.3", @@ -13541,7 +14446,7 @@ "magic-string": { "version": "0.22.4", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.4.tgz", - "integrity": "sha1-MQObTkA2Y5VhjB1s+Bk8U5F0df8=", + "integrity": "sha512-kxBL06p6iO2qPBHsqGK2b3cRwiRGpnmSuVWNhwHcMX7qJOUr1HvricYP1LZOCdkQBUp0jiWg2d6WJwR3vYgByw==", "dev": true, "requires": { "vlq": "0.2.3" @@ -13955,7 +14860,7 @@ "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "1.1.11" @@ -13979,7 +14884,7 @@ "minipass": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.1.tgz", - "integrity": "sha1-WtqXU4sQJ7TPchNDJChXjLVkAR8=", + "integrity": "sha512-u1aUllxPJUI07cOqzR7reGmQxmCqlH88uIIsf6XZFEWgw7gXKpJdR+5R9Y3KEDmWYkdIz9wXZs3C0jOPxejk/Q==", "dev": true, "requires": { "yallist": "3.0.2" @@ -14363,7 +15268,7 @@ "no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, "requires": { "lower-case": "1.1.4" @@ -14424,7 +15329,7 @@ "node-sass": { "version": "4.7.2", "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz", - "integrity": "sha1-k2Z3i6FGnrAUOKnoWS9CYry2eU4=", + "integrity": "sha512-CaV+wLqZ7//Jdom5aUFCpGNoECd7BbNhjuwdsX/LkXBrHl8eb1Wjw4HvWqcFvhr5KuNgAk8i/myf/MQ1YYeroA==", "dev": true, "requires": { "async-foreach": "0.1.3", @@ -14644,7 +15549,7 @@ "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { "hosted-git-info": "2.5.0", @@ -14686,7 +15591,7 @@ "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "requires": { "are-we-there-yet": "1.1.4", @@ -14729,7 +15634,7 @@ "nwmatcher": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", - "integrity": "sha1-ZDSOOz2A8DW0CsEVY9J4+LctuJw=", + "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", "dev": true }, "oauth-sign": { @@ -15092,7 +15997,7 @@ "p-cancelable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha1-ueEjgAvOu3rBOkeb4ZW1B7mNMPo=", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", "dev": true, "optional": true }, @@ -15182,7 +16087,7 @@ "pako": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha1-AQEhG6pwxLykoPY/Igbpe3368lg=", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", "dev": true }, "param-case": { @@ -15522,7 +16427,7 @@ "postcss": { "version": "5.2.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { "chalk": "1.1.3", @@ -16382,7 +17287,7 @@ "qs": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha1-NJzfbu+J7EXBLX1es/wMhwNDptg=", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", "dev": true }, "quick-lru": { @@ -16400,7 +17305,7 @@ "randomatic": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha1-x6vpzIuHwLqodrGf3oP9RkeX44w=", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "dev": true, "requires": { "is-number": "3.0.0", @@ -16617,7 +17522,7 @@ "regex-cache": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { "is-equal-shallow": "0.1.3" @@ -16749,7 +17654,7 @@ "request": { "version": "2.83.0", "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha1-ygtl2gLtYpNYh4COb1EDgQNOM1Y=", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", "dev": true, "requires": { "aws-sign2": "0.7.0", @@ -16864,7 +17769,7 @@ "resolve": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha1-HwmsznlsmnYlefMbLBzEw83fnzY=", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "dev": true, "requires": { "path-parse": "1.0.5" @@ -16965,7 +17870,7 @@ "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { "glob": "7.1.2" @@ -16986,7 +17891,7 @@ "rollup-plugin-alias": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/rollup-plugin-alias/-/rollup-plugin-alias-1.4.0.tgz", - "integrity": "sha1-Egy6fEZiHAMTjwym/V3SremHLbk=", + "integrity": "sha512-lB094zdi19FS+1bVarVp9kBN0Zk41PdTGoCk0z8xesKO7RGjOo18cp1hUzEqrOQ4bM9+KLD9nbnu/XUxQm9pbg==", "dev": true, "requires": { "slash": "1.0.0" @@ -17042,7 +17947,7 @@ "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, "utils-merge": { @@ -17056,7 +17961,7 @@ "rsvp": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha1-LpZJFZmpbN4bUV1WdKj3qRRSkmo=", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", "dev": true }, "run-async": { @@ -17095,7 +18000,7 @@ "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, "sander": { @@ -17357,7 +18262,7 @@ "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, "scss-bundle": { @@ -17509,7 +18414,7 @@ "selenium-webdriver": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha1-K6h6FmLAILiYjJga5iyyoBKY6vw=", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dev": true, "requires": { "jszip": "3.1.5", @@ -17813,7 +18718,7 @@ "slice-ansi": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0" @@ -17998,7 +18903,7 @@ "sntp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha1-LGzsFP7cIiJznK+bXD2F0cxaLMg=", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", "dev": true, "requires": { "hoek": "4.2.0" @@ -18179,7 +19084,7 @@ "source-map-support": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { "source-map": "0.5.7" } @@ -18243,7 +19148,7 @@ "specificity": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.3.2.tgz", - "integrity": "sha1-meZRHs7vD42bV5JJN6rCyxPRPEI=", + "integrity": "sha512-Nc/QN/A425Qog7j9aHmwOrlwX2e7pNI47ciwxwy4jOlvbbMHkNNJchit+FX+UjF3IAdiaaV5BKeWuDUnws6G1A==", "dev": true }, "split": { @@ -18298,7 +19203,7 @@ "split2": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", - "integrity": "sha1-GGsldbz4PoW30YRldWI47k7kJJM=", + "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", "dev": true, "requires": { "through2": "2.0.3" @@ -18419,7 +19324,7 @@ "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha1-u3PURtonlhBu/MG2AaJT1sRr0Ic=", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", "dev": true }, "stdout-stream": { @@ -18532,7 +19437,7 @@ "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -18885,7 +19790,7 @@ "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", @@ -19348,7 +20253,7 @@ "tar-stream": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", - "integrity": "sha1-XK2Ed59FyDsfJQjZawnYjHIYr1U=", + "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", "dev": true, "requires": { "bl": "1.2.1", @@ -19389,7 +20294,7 @@ "text-extensions": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.7.0.tgz", - "integrity": "sha1-+qq6JiXtdG1WiiPk0KrNm/CKizk=", + "integrity": "sha512-AKXZeDq230UaSzaO5s3qQUZOaC7iKbzq0jOFL614R7d9R593HLqAOL0cYoqLdkNrjBSOdmoQI06yigq1TSBXAg==", "dev": true }, "thenify": { @@ -19910,7 +20815,7 @@ "tsickle": { "version": "0.24.1", "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.24.1.tgz", - "integrity": "sha1-A5NDsgW/UXozOwcDl4iS+Ap9hI4=", + "integrity": "sha512-XloFQZhVhgjpQsi3u2ORNRJvuID5sflOg6HfP093IqAbhE1+fIUXznULpdDwHgG4p+v8w78KdHruQtkWUKx5AQ==", "requires": { "minimist": "1.2.0", "mkdirp": "0.5.1", @@ -20994,7 +21899,7 @@ "vlq": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", - "integrity": "sha1-jz5DKM9jsVQMDWfhsneDhviXWyY=", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", "dev": true }, "void-elements": { @@ -21274,13 +22179,13 @@ "websocket-extensions": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha1-XS/yKXcAPsaHpLhwc9+7rBRszyk=", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", "dev": true }, "whatwg-encoding": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", - "integrity": "sha1-V8I1vIZX6RTSTho5fTyC2u4Ka6M=", + "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", "dev": true, "requires": { "iconv-lite": "0.4.19" @@ -21304,7 +22209,7 @@ "which": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { "isexe": "2.0.0" @@ -21319,7 +22224,7 @@ "wide-align": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha1-Vx4PGwYEY268DfwhsDObvjE0FxA=", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "requires": { "string-width": "1.0.2" @@ -21423,7 +22328,7 @@ "write-file-atomic": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha1-H/YVdcLipOjlENb6TiQ8zhg5mas=", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -21486,7 +22391,7 @@ "xml2js": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", - "integrity": "sha1-aGwg8hMgnpSr8NG88e+qKRx4J6c=", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "dev": true, "requires": { "sax": "1.2.4", diff --git a/tools/sass_bundle.bzl b/tools/sass_bundle.bzl index 1005ed388d1e..77bea0325e07 100644 --- a/tools/sass_bundle.bzl +++ b/tools/sass_bundle.bzl @@ -19,7 +19,7 @@ def _sass_bundle(ctx): # the main thing that sass_bundle rule does. ctx.actions.run( inputs = ctx.files.srcs, - executable = ctx.executable.sass_bundle, + executable = ctx.executable._sass_bundle, outputs = [ctx.outputs.output_name], arguments = [args], )