diff --git a/.gitignore b/.gitignore index 03a28c58..cdb7d470 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ front-end/resources/public/prod/worker/js/compiled front-end/resources/public/prod/sw.js front-end/dev-resources front-end/node_modules +front-end/.shadow-cljs out *.swp .nrepl-port diff --git a/doc/project_doc/remove-ssr-workarounds/designdoc.md b/doc/project_doc/remove-ssr-workarounds/designdoc.md index fca1c24e..45937f2a 100644 --- a/doc/project_doc/remove-ssr-workarounds/designdoc.md +++ b/doc/project_doc/remove-ssr-workarounds/designdoc.md @@ -34,6 +34,10 @@ [kibu/pushy "0.3.8"] [e85th/venia "0.2.5-1"] [cljs-ajax "0.8.4"]] + + ;; 注: npmパッケージのエイリアスを設定 + :npm-aliases {"material-ui" "@material-ui/core"} + :builds {:client {:target :browser :output-dir "resources/public/js/compiled" @@ -48,16 +52,20 @@ :depends-on #{:client} :output-name "example.js"} ;; 他のモジュールもproject.cljから移行 - } + :worker {:entries [vr-match.worker] + :depends-on #{:cljs-base} + :web-worker true ;; Web Workerとして扱う + :init-fn vr-match.worker/init + :output-name "worker.js"}} :devtools {:after-load vr-match.client/remount-for-figwheel}} :server {:target :node-script - :output-dir "target/server/prod/js/compiled" - :output-to "target/server/prod/js/compiled/server.js" + :output-dir "target/server/js/compiled" + :output-to "target/server/js/compiled/server.js" :main vr-match.server/main :compiler-options {:optimizations :simple}} - :worker {:target :webworker + :worker {:target :browser :output-dir "resources/public/prod/worker/js/compiled" :output-to "resources/public/prod/worker/js/compiled/worker.js" :compiler-options {:optimizations :advanced}}}} @@ -73,14 +81,14 @@ "version": "1.0.0", "description": "VR Match Frontend", "scripts": { - "clean": "rm -rf resources/public/js/compiled resources/public/prod/worker/js/compiled target", + "clean": "rm -rf resources/public/js/compiled resources/public/prod target", "shadow-cljs": "shadow-cljs", "build": "npm run build:prod", - "build:dev": "shadow-cljs compile client server worker", - "build:prod": "shadow-cljs release client server worker && npm run workbox", - "watch": "shadow-cljs watch client server worker", + "build:dev": "shadow-cljs compile client server", + "build:prod": "shadow-cljs release client server && npm run workbox", + "watch": "shadow-cljs watch client server", "workbox": "workbox generateSW", - "start": "node target/server/prod/js/compiled/server.js" + "start": "node target/server/js/compiled/server.js 8888" }, "dependencies": { "compression": "1.8.0", @@ -90,7 +98,8 @@ "react": "16.14.0", "react-dom": "16.14.0", "react-jss": "8.6.1", - "@material-ui/core": "3.9.3", + "@material-ui/core": "^4.11.0", + "@material-ui/icons": "^4.9.1", "whatwg-fetch": "3.0.0", "xmlhttprequest": "1.8.0" }, @@ -116,7 +125,7 @@ ### 2.1 CLJSJSパッケージ用シムの作成 -CLJSJSパッケージからnpmパッケージへの移行を簡単にするために、一時的な互換レイヤー(シム)を作成します。 +CLJSJSパッケージからnpmパッケージへの移行を簡単にするために、一時的な互換レイヤー(シム)を作成します。ただし、Material-UIについてはnpm-aliasesの設定で対応するため、シムは作成しません。 #### Reactのシム @@ -144,18 +153,6 @@ CLJSJSパッケージからnpmパッケージへの移行を簡単にするた (js/goog.exportSymbol "ReactDOMServer" react-dom-server) ``` -#### Material-UIのシム - -ファイルパス: `front-end/src/cljs/cljsjs/material_ui.cljs` - -```clojure -(ns cljsjs.material-ui - (:require ["@material-ui/core" :as mui])) - -;; グローバル変数の公開 -(js/goog.exportSymbol "MaterialUI" mui) -``` - #### Firebaseのシム ファイルパス: `front-end/src/cljs/cljsjs/firebase.cljs` @@ -175,6 +172,196 @@ CLJSJSパッケージからnpmパッケージへの移行を簡単にするた (js/require "firebase/firestore")) ``` +### 2.2 Material-UIの移行戦略: v4へのアップグレード + +SSR時の `ServerStyleSheets` に関する問題が v3 と shadow-cljs の組み合わせで解決困難であるため、Material-UI を v3 から v4 へアップグレードする方針を採用します。 + +#### 方針 + +1. **バージョン更新**: `package.json` で `@material-ui/core` および関連パッケージ (`@material-ui/icons` など) のバージョンを v4 系に更新します。 +2. **コード修正**: Material-UI 公式の [v3 から v4 への移行ガイド](https://v4.mui.com/guides/migration-v3/) に基づき、プロジェクト全体のコードを修正します。主な修正点には以下が含まれます: + * **インポートパスの変更**: コンポーネントや関数のインポートパスが変更されている場合があります。 + * **API の変更**: コンポーネントのプロパティ名や動作が変更されている場合があります。 + * **スタイリング**: スタイルエンジンが `@material-ui/styles` に基づくものに変わるため、テーマや `withStyles` などの使い方を確認・修正する必要があります。 + * **TypeScript 型**: (このプロジェクトでは直接関係ないかもしれませんが) 型定義も変更されています。 +3. **SSR 対応**: v4 の SSR 実装方法に合わせて、`server.cljs` 内の `ServerStyleSheets` (または v4 で相当するもの) の使い方を修正します。 +4. **段階的実施**: フェーズ3 (クライアント移行) およびフェーズ4 (サーバー移行) で、影響範囲を考慮しながら段階的に修正作業を進めます。 +5. **テスト**: 各コンポーネントの修正後および全体のアップグレード完了後に、表示崩れや機能不全がないか徹底的にテストします。 + +#### 注意点 + +* **破壊的変更**: v4 へのアップグレードは破壊的変更を伴うため、広範囲なコード修正が必要になる可能性があります。 +* **作業量**: プロジェクト規模に応じて、修正には相応の時間と工数が必要です。 + +このアップグレードにより、SSR の問題解決に加え、Material-UI の新機能や改善されたパフォーマンスの恩恵を受けることが期待されます。 + +### 2.3 Material-UIを直接参照しているコンポーネントの修正リスト + +プロジェクト内で`material-ui`を直接requireしているファイルおよび`js/MaterialUI`としてグローバル変数からアクセスしているコンポーネントが複数見つかりました。これらのコンポーネントは以下の手順で修正する必要があります。 + +#### 修正対象ファイル + +**`material-ui`をrequireしているファイル**: +1. `front-end/src/cljs/vr_match/lib/components/linear_progress.cljs` (修正済み) +2. `front-end/src/cljs/vr_match/lib/components/progress_button.cljs` +3. `front-end/src/cljs/vr_match/approach/components/empty.cljs` +4. `front-end/src/cljs/vr_match/approach/components/reset_all_skip_alert.cljs` +5. `front-end/src/cljs/vr_match/auth/components/email_login.cljs` +6. `front-end/src/cljs/vr_match/auth/components/email_register.cljs` +7. `front-end/src/cljs/vr_match/auth/components/email_login_complete.cljs` +8. `front-end/src/cljs/vr_match/auth/components/email_register_complete.cljs` +9. `front-end/src/cljs/vr_match/auth/components/twitter_login.cljs` +10. `front-end/src/cljs/vr_match/setting/components/cannot_unlink_third_party_alert.cljs` +11. `front-end/src/cljs/vr_match/setting/components/unlink_confirmation_alert.cljs` +12. `front-end/src/cljs/vr_match/favorite/component.cljs` +13. `front-end/src/cljs/vr_match/matching/component.cljs` +14. `front-end/src/cljs/vr_match/favorited_from_users/component.cljs` +15. `front-end/src/cljs/vr_match/mypage/components/platform_expansion_panel.cljs` +16. `front-end/src/cljs/vr_match/mypage/components/edit_platform_dialog.cljs` + +#### 修正例 + +例えば、`progress_button.cljs`の修正前・修正後は以下のようになります: + +**修正前:** +```clojure +(ns vr-match.lib.components.progress-button + (:require ["material-ui"])) + +(defn progress-button + [{:keys [loading?] :as props} children] + [:div {:style {:position "relative"}} + [:> js/MaterialUI.Button (-> props + (dissoc :loading?) + (assoc :disabled loading?)) + children] + (when loading? + [:> js/MaterialUI.CircularProgress {:size 24 + :style {:position "absolute" + :top "50%" + :left "50%" + :margin-top "-12" + :margin-left "-12"}}])]) +``` + +**修正後:** +```clojure +(ns vr-match.lib.components.progress-button + (:require + ["@material-ui/core/Button" :as Button] + ["@material-ui/core/CircularProgress" :as CircularProgress])) + +(defn progress-button + [{:keys [loading?] :as props} children] + [:div {:style {:position "relative"}} + [:> Button (-> props + (dissoc :loading?) + (assoc :disabled loading?)) + children] + (when loading? + [:> CircularProgress {:size 24 + :style {:position "absolute" + :top "50%" + :left "50%" + :margin-top "-12" + :margin-left "-12"}}])]) +``` + +#### 修正方針 + +各コンポーネントにおいて以下の修正を行います: + +1. `["material-ui"]` という一括インポートを個別コンポーネントのインポートに変更 +2. `js/MaterialUI.XXX` の参照を直接インポートしたコンポーネントへの参照に変更 +3. **API変更への対応**: v3からv4への移行に伴うAPIの変更点(プロパティ名、`variant`の値など)を修正します。 + +例えば: +- `[:> js/MaterialUI.Button ...]` → `[:> Button ...]` +- `[:> js/MaterialUI.Dialog ...]` → `[:> Dialog ...]` +- `Typography` コンポーネントの `variant` プロパティ: + - `"title"` → `"h6"` + - `"subheading"` → `"subtitle1"` など、v4で有効な値に変更 +- テーマ作成関数の変更: `createMuiTheme` → `createTheme` +- `Grid` コンポーネントのレイアウトプロパティ: `:justify` → `:justify-content` など、CSS標準に合わせて変更 +- Floating Action Button: `Button` コンポーネントの `variant="fab"` → 専用の `Fab` コンポーネントを使用 + +#### 修正スケジュール + +フェーズ2のシム実装フェーズ終了後、フェーズ3のクライアント移行フェーズで段階的に修正していきます。重要度の高いコンポーネントから順に修正し、各コンポーネントの修正後にテストを行い、問題がないことを確認します。 + +### 2.4 Firebaseの参照方法の修正リスト + +コードベース内でFirebaseを参照している箇所も同様に修正が必要です。特に、以下のようなインポート形式を修正する必要があります。 + +#### 修正対象ファイル + +1. `front-end/src/cljs/vr_match/auth/effects.cljs` +2. その他Firebaseを参照しているファイル + +#### 修正例 + +**修正前:** +```clojure +(ns vr-match.auth.effects + (:require [firebase.app] + [firebase.auth] + [cljs.reader :refer [read-string]] + [ajax.core :refer [ajax-request json-request-format json-response-format]] + [re-frame.core :as re-frame])) +``` + +**修正後:** +```clojure +(ns vr-match.auth.effects + (:require ["firebase/app" :as firebase] + ["firebase/auth"] + [cljs.reader :refer [read-string]] + [ajax.core :refer [ajax-request json-request-format json-response-format]] + [re-frame.core :as re-frame])) +``` + +#### 修正方針 + +Firebaseの参照方法は以下のパターンに統一します: + +1. **メインパッケージの参照**: + - `["firebase/app" :as firebase]`をrequireする + - インポートした`firebase`変数を通してFirebaseの基本機能にアクセスする + +2. **追加サービスの参照**: + - 必要な追加サービスを`["firebase/auth"]`などとして直接requireする + - 追加サービスはrequireするだけで自動的にfirebaseオブジェクトに機能が追加される + +3. **グローバル変数の使用制限**: + - `js/firebase`などのグローバル変数への参照を避け、インポートした変数を使用する + +この方法は、依存関係が明示的になるため、コードの可読性と保守性が向上します。また、shadow-cljsの最適化の恩恵も受けやすくなります。 + +#### 修正スケジュール + +フェーズ2のシム実装フェーズ終了後、フェーズ3のクライアント移行フェーズで段階的に修正していきます。重要度の高いコンポーネントから順に修正し、各コンポーネントの修正後にテストを行い、問題がないことを確認します。 + +### 2.5 JSパッケージのインポート方法に関する一般的な修正方針 + +JSパッケージ(Material-UI、Firebase、Reactなど)のインポート方法について、以下の原則に従って修正を行います: + +1. **直接インポート**: 各コンポーネントやサービスを直接インポートする方法を採用します + * Material-UI: `["@material-ui/core/Button" :as Button]` + * Firebase: `["firebase/app" :as firebase]`, `["firebase/auth"]` + * React: `["react" :as react]`, `["react-dom" :as react-dom]` + +2. **名前空間の統一**: 同じパッケージを参照する場合、import方法を統一します + +3. **グローバル変数の使用制限**: `js/MaterialUI`や`js/firebase`などのグローバル変数への直接アクセスを避け、インポートした変数を使用します + +4. **(SSR時の注意)**: まれに、特定のコンポーネントを直接インポート (`["@material-ui/core/Fab" :as Fab]`) した場合、SSR時に `React.createElement: type is invalid ... got: object` のようなエラーが発生することがあります。これは、SSR環境でコンポーネントが正しく解決されていない可能性があります。その場合は、代わりにコアパッケージ (`["@material-ui/core" :as mui]`) をインポートし、そのプロパティとしてアクセス (`(def fab (r/adapt-react-class (.-Fab mui)))`) する方法を試すと解決する場合があります。 + +この修正アプローチにより、より明示的な依存関係管理が可能になり、コード品質とビルドプロセスが改善されます。 + +#### 修正スケジュール + +フェーズ2のシム実装フェーズ終了後、フェーズ3のクライアント移行フェーズで段階的に修正していきます。重要度の高いコンポーネントから順に修正し、各コンポーネントの修正後にテストを行い、問題がないことを確認します。 + ## フェーズ3: クライアント移行フェーズ ### 3.1 クライアントコードの更新 @@ -307,6 +494,10 @@ CLJSJSパッケージからnpmパッケージへの移行を簡単にするた ファイルパス: `front-end/src/cljs-server/vr_match/server.cljs` +**現状の問題**: v3 環境で SSR 時の `ServerStyleSheets` のインポート/認識に問題が発生していました。Material-UI v4 へのアップグレードで対応します。 + +**対応方針**: Material-UI v4 へのアップグレード後、v4 の SSR 実装方法に従ってコードを修正します。また、静的ファイルの配信は開発・本番問わず `resources/public` ディレクトリから行うように Express の設定を単純化します。 + ```clojure (ns vr-match.server (:require @@ -318,7 +509,8 @@ CLJSJSパッケージからnpmパッケージへの移行を簡単にするた ["compression" :as compression] ["react" :as react] ["react-dom/server" :as react-dom-server] - ["@material-ui/core/styles" :refer [MuiThemeProvider ServerStyleSheets createMuiTheme]] + ["@material-ui/core/styles" :as styles] + ["@material-ui/styles" :refer [ServerStyleSheets]] ["react-jss" :refer [JssProvider SheetsRegistry]] [vr-match.lib.component :as component] [vr-match.lib.components.material-ui :as mui] @@ -344,13 +536,10 @@ CLJSJSパッケージからnpmパッケージへの移行を簡単にするた (def google-analytics-tracking-id js/process.env.GOOGLE_ANALYTICS_TRACKING_ID) -(goog-define static-file-path "/") (goog-define dev? false) (defn dev-setup [] - (when dev? - (enable-console-print!) - (println "dev mode"))) + (when dev? (enable-console-print!) (println "dev mode"))) (defn render-app-html [request-path] (let [sheets (new ServerStyleSheets) @@ -358,7 +547,7 @@ CLJSJSパッケージからnpmパッケージへの移行を簡単にするた generate-class-name (mui/create-generate-class-name) html (.renderToString react-dom-server (.collect sheets - (react/createElement MuiThemeProvider + (react/createElement (.-MuiThemeProvider styles) #js{:theme theme} (reagent/as-element [component/app])))) css (.toString sheets)] @@ -375,7 +564,6 @@ CLJSJSパッケージからnpmパッケージへの移行を簡単にするた (when-not dev? [:link {:rel "apple-touch-icon" :href "/static/img/logo.png"}]) [:title "Hito Hub"] - ;; リセットCSSなど [:style "/* リセットCSS */"] [:style {:id "jss-server-side"} css]] [:body @@ -392,12 +580,10 @@ CLJSJSパッケージからnpmパッケージへの移行を簡単にするた [:script {:src "/static/js/compiled/app.js"}] [:link {:rel "stylesheet" :href "https://fonts.googleapis.com/icon?family=Material+Icons"}] - ;; Google Analyticsスクリプト (when google-analytics-tracking-id [:div {:dangerouslySetInnerHTML {:__html "/* Google Analyticsスクリプト */"}}]) - ;; Service Workerスクリプト (when-not dev? [:div {:dangerouslySetInnerHTML @@ -411,21 +597,20 @@ CLJSJSパッケージからnpmパッケージへの移行を簡単にするた (defn serve [port] (.listen express-app port)) -(defn -main [& args] +(defn ^:export main [& args] (let [port (-> args first js/parseInt)] (dev-setup) (serve port))) (doto express-app (.use (compression)) - (.use "/sw.js" (.static express (str static-file-path "sw.js"))) - (.use "/manifest.json" (.static express (str static-file-path "manifest.json"))) - (.use "/favicon.ico" (.static express (str static-file-path "favicon.ico"))) - (.use "static" (.static express static-file-path)) - (.use "/static" (.static express static-file-path)) + (.use "/static" (.static express "resources/public")) + (.get "/sw.js" (fn [req res] (.sendFile res "sw.js" #js{:root "resources/public/"}))) + (.get "/manifest.json" (fn [req res] (.sendFile res "manifest.json" #js{:root "resources/public/"}))) + (.get "/favicon.ico" (fn [req res] (.sendFile res "favicon.ico" #js{:root "resources/public/"}))) (.use "/*" handle-render)) -(set! *main-cli-fn* -main) +(set! *main-cli-fn* main) ``` ### 4.2 プリアンブルファイルの簡素化 @@ -453,13 +638,17 @@ global.window.localStorage = null; ```dockerfile # ビルドステージ -FROM node:14-alpine as build +FROM node:8.17-alpine as build # 作業ディレクトリの作成 WORKDIR /usr/src/app # パッケージ依存関係のインストール COPY package.json package-lock.json ./ +RUN apk update && \ + apk upgrade && \ + apk add --no-cache make gcc g++ python openjdk11 + RUN npm ci # ソースコードと設定ファイルのコピー @@ -471,24 +660,96 @@ COPY resources/ ./resources/ RUN npm run build:prod # 実行ステージ -FROM node:14-alpine +FROM node:8.17-alpine # 作業ディレクトリの作成 WORKDIR /usr/src/app # ビルドステージから必要なファイルをコピー COPY --from=build /usr/src/app/node_modules ./node_modules -COPY --from=build /usr/src/app/target ./target -COPY --from=build /usr/src/app/resources/public/prod ./resources/public/prod +# クライアントサイドのアセット +COPY --from=build /usr/src/app/resources/public ./resources/public +# 変更: サーバーサイドのJSをコピー +COPY --from=build /usr/src/app/target/server/js/compiled ./target/server/js/compiled # アプリケーションの実行 -CMD ["node", "target/server/prod/js/compiled/server.js", "3000"] +# 変更: サーバーJSのパスを更新 +CMD ["node", "target/server/js/compiled/server.js", "3000"] ``` ### 5.2 CIビルドスクリプトの更新 必要に応じてCIビルドスクリプトも更新します。具体的な内容はプロジェクトのCIサービスに依存します。 +### 5.3 Workbox 設定の更新 + +ファイルパス: `front-end/workbox-config.js` + +ビルド成果物と静的ファイルの出力先を `resources/public` に統一したことに伴い、Service Worker の設定ファイルも更新します。 + +```javascript +module.exports = { + // キャッシュ対象ファイルの検索元を更新 + "globDirectory": "resources/public", + "globPatterns": [ + // キャッシュ対象は JS ビルド成果物 + "js/compiled/*.js" + ], + "modifyUrlPrefix": { + // Service Worker 内での URL パスを実際の配信パスに合わせる + "js/compiled": "/static/js/compiled", + }, + // 生成される sw.js の出力先を更新 + "swDest": "resources/public/sw.js", + "runtimeCaching": [ + // ... 既存の runtimeCaching 設定 ... + { + "urlPattern": /\//, + "handler": "networkFirst", + "options": { + "cacheableResponse": { + "statuses": [0, 200], + "headers": { + "Content-type": "text/html; charset=utf-8", + }, + }, + }, + }, + { + "urlPattern": /^https\:\/\/use\.fontawesome\.com\/releases\//, + "handler": "cacheFirst", + "options": { + "cacheableResponse": { + "statuses": [0, 200], + }, + }, + }, + { + "urlPattern": /^https\:\/\/api\.github\.com\//, + "handler": "networkFirst", + "options": { + "cacheableResponse": { + "statuses": [0, 200], + }, + }, + }, + { + "urlPattern": /^https\:\/\/avatars0\.githubusercontent\.com\//, + "handler": "cacheFirst", + "options": { + "cacheableResponse": { + "statuses": [0, 200], + }, + }, + }, + ], + "skipWaiting": true, + "clientsClaim": true, +}; +``` + +これにより、Workbox は `resources/public` ディレクトリを基準に動作し、生成された `sw.js` も同ディレクトリに出力されるようになります。 + ## フェーズ6: 検証フェーズ ### 6.1 ローカル環境での検証 @@ -549,3 +810,86 @@ CMD ["node", "target/server/prod/js/compiled/server.js", "3000"] 6. フェーズ6 (検証): 1週間 合計: 約8週間(問題解決の時間を含む) + +## 最終調整 + +- パフォーマンスチューニング +- 残りのワークアラウンドの除去 + +## Web Workerの実装方法 + +### Web Workerモジュールの設定 + +shadow-cljsのドキュメント「[User's Guide - Web Workers](https://shadow-cljs.github.io/docs/UsersGuide.html#_web_workers)」に基づき、Web Workerを`:browser`ターゲット内のモジュールとして実装します。 + +#### モジュール設定 + +```clojure +;; shadow-cljs.edn の :modules 設定 +:modules {:cljs-base {...} + :client {...} + ;; 他のモジュール + :worker {:entries [vr-match.worker] + :depends-on #{:cljs-base} + :web-worker true ;; Web Workerとして扱う + :init-fn vr-match.worker/init}} +``` + +この設定により、`:worker`モジュールがWeb Workerとして適切に構成されます。`:web-worker true`フラグにより、クライアントモジュールから分離され、適切なWeb Workerコンテキストで動作するためのコードが生成されます。 + +#### Web Workerの呼び出し + +クライアントコードからは以下のようにWeb Workerを初期化して使用します: + +```clojure +;; vr-match.effects などのクライアントコード +(defn initialize-worker [] + (let [worker (js/Worker. "/js/compiled/worker.js")] + (.addEventListener worker "message" + (fn [event] + ;; メッセージ処理 + )) + ;; Workerにメッセージを送信 + (.postMessage worker #js{:cmd "start" :data "some-data"}))) +``` + +#### Worker側の実装 + +```clojure +;; src/cljs/vr_match/worker.cljs +(ns vr-match.worker) + +(defn handle-message [event] + (let [data (.-data event) + cmd (.-cmd data)] + (case cmd + "start" (.postMessage js/self #js{:result "開始しました"}) + ;; その他のコマンド処理 + ))) + +(defn init [] + ;; メッセージ受信リスナーを設定 + (.addEventListener js/self "message" handle-message)) +``` + +この方法の利点は、別途ビルド定義を作成する必要がなく、一つのビルド内でWeb Workerを管理できることです。また、コードの共有や依存関係の管理も容易になります。 + +### ディレクトリ構造の整理 + +Web Worker実装のためのディレクトリ構造も整理します: + +1. **従来の構造:** + - `src/cljs-worker/vr_match/worker.cljs` - 独立したワーカーコードを配置 + - `:worker`ビルド定義で別々にビルド + +2. **新しい構造:** + - `src/cljs/vr_match/worker.cljs` - 通常のソースディレクトリ内にワーカーコードを統合 + - `:client`ビルド内のモジュールとしてワーカーを管理 + +3. **移行手順:** + - `src/cljs/vr_match/worker.cljs`を新規作成 + - `src/cljs-worker/vr_match/worker.cljs`の内容をベースに`init`関数を追加 + - `src/cljs-worker/vr_match/worker.cljs`を削除 + - 必要に応じて`src/cljs-worker`ディレクトリ自体も削除 + +これらの変更により、より統一されたディレクトリ構造が実現され、ワーカーコードの管理が容易になります。また、`shadow-cljs.edn`の`:source-paths`からも将来的には`"src/cljs-worker"`を削除できますが、他に依存するコードがないことを確認してから行うべきです。 diff --git a/doc/project_doc/remove-ssr-workarounds/prepare.md b/doc/project_doc/remove-ssr-workarounds/prepare.md index 7e414e59..77fdd1e5 100644 --- a/doc/project_doc/remove-ssr-workarounds/prepare.md +++ b/doc/project_doc/remove-ssr-workarounds/prepare.md @@ -16,6 +16,12 @@ VR-Matchプロジェクトのフロントエンド部分、特にSSR(Server-Si 3. **環境の互換性問題** - ClojureScriptのGoogle Closureコンパイラとnode.jsの環境の違いを解決するための複雑なワークアラウンドが存在しています +4. **SSR時のスタイル生成エラー (ステージング環境)** + - ステージング環境で `TypeError: shadow.js.shim.module$$material_ui$core$styles.ServerStyleSheets is not a constructor` というエラーが発生しています。 + - **原因**: SSRサーバー (`vr_match.server.render_app_html`) で Material-UI v3 のスタイルを処理する際に、`@material-ui/core/styles` から `ServerStyleSheets` を正しくインポート・認識できていないことが原因と考えられます。これは、shadow-cljs のビルド・shim 処理の問題、または `server.cljs` での `:refer` を使ったインポート方法の問題である可能性が高いです。 + - **影響**: SSR 時に Material-UI のスタイルが適用されず、サーバーから返される HTML のスタイルが崩れる、またはサーバーがエラーで応答できなくなります。 + - **参考**: [Stack Overflow の類似事例](https://stackoverflow.com/questions/59018739/trying-ssr-but-got-serverstylesheets-is-not-a-constructor) (ただし、こちらは v4 の事例) + ## 詳細な技術的状況 ### ビルドプロセスの問題 @@ -123,6 +129,61 @@ VR-Matchプロジェクトのフロントエンド部分、特にSSR(Server-Si npm install react react-dom create-react-class firebase ``` +#### Web Workerのビルド方法 + +shadow-cljsのドキュメント「[User's Guide - Web Workers](https://shadow-cljs.github.io/docs/UsersGuide.html#_web_workers)」セクションに基づき、Web Workerの適切なビルド方法を説明します。shadow-cljsでは、Web Workerを実装する方法として、`:modules`定義内に`:web-worker true`を設定する方法が推奨されています。 + +1. **モジュールとしてのWeb Worker実装(推奨)** + ```clojure + ;; shadow-cljs.edn の例 + {:builds + {:client {:target :browser + :output-dir "resources/public/js/compiled" + :modules {:main {:entries [vr-match.client] + :init-fn vr-match.client/init} + :worker {:entries [vr-match.worker] + :web-worker true ;; このモジュールをWeb Workerとして扱う + :init-fn vr-match.worker/init}} + :compiler-options {:optimizations :advanced}}}} + ``` + + この方法では、`:worker`モジュールが自動的にWeb Workerとして適切に構成されます。クライアントコードからは以下のように使用します: + + ```clojure + ;; クライアント側のコード例 + (defn init-worker [] + (let [worker (js/Worker. "/js/compiled/worker.js")] + (.addEventListener worker "message" + (fn [event] + (js/console.log "Worker response:" (.-data event)))) + (.postMessage worker #js{:cmd "start" :data "some-data"}))) + ``` + +2. **Worker側のコード例** + ```clojure + ;; src/cljs/vr_match/worker.cljs + (ns vr-match.worker) + + (defn handle-message [event] + (let [data (.-data event) + cmd (.-cmd data)] + (case cmd + "start" (.postMessage js/self #js{:result "started"}) + ;; その他のコマンド処理 + ))) + + (defn init [] + ;; メッセージ受信リスナーを設定 + (.addEventListener js/self "message" handle-message)) + ``` + +この方法の利点: +- より統合的なアプローチで、単一のビルド設定内でWeb Workerを管理できます +- モジュール間の依存関係を適切に管理しやすくなります +- コードの共有や再利用が容易になります + +特に、shadow-cljsドキュメントでは、「Web Workersの使用」セクションで`:web-worker`オプションを使用してモジュールをWeb Workerとして指定する方法が説明されています。これにより、別途ビルドを定義するよりも簡潔で管理しやすい構成が可能になります。 + ### 2. Material-UIのSSRサポート改善 Material-UIのSSR実装を現代的な方法に更新します。 diff --git a/front-end/.node-version b/front-end/.node-version new file mode 100644 index 00000000..29d3fcd5 --- /dev/null +++ b/front-end/.node-version @@ -0,0 +1 @@ +8.17.0 diff --git a/front-end/Dockerfile b/front-end/Dockerfile index 44100c3e..04099979 100644 --- a/front-end/Dockerfile +++ b/front-end/Dockerfile @@ -1,23 +1,34 @@ -FROM node:8.17-alpine as npm -RUN mkdir -p /usr/src/app -COPY . /usr/src/app -WORKDIR /usr/src/app -RUN npm install +# ビルドステージ +FROM node:8.17-alpine as build -# フロントエンドビルド用ステージ -FROM clojure:lein-2.9.8-slim-buster as clojure -RUN mkdir -p /usr/src/app -COPY --from=npm /usr/src/app /usr/src/app +# 作業ディレクトリの作成 WORKDIR /usr/src/app -RUN lein cljsbuild once prod -RUN lein cljsbuild once server-prod -RUN lein cljsbuild once worker-prod -# 最終ステージ +# パッケージ依存関係のインストール +COPY package.json package-lock.json ./ +RUN apk update && \ + apk upgrade && \ + apk add --no-cache make gcc g++ python openjdk11 +RUN npm ci + +# ソースコードと設定ファイルのコピー +COPY shadow-cljs.edn workbox-config.js ./ +COPY src/ ./src/ +COPY resources/ ./resources/ + +# プロダクションビルドの実行 +RUN npm run build:prod + +# 実行ステージ FROM node:8.17-alpine -RUN mkdir -p /usr/src/app -COPY --from=clojure /usr/src/app /usr/src/app + +# 作業ディレクトリの作成 WORKDIR /usr/src/app -RUN npm run workbox -RUN sed -i -e 's/goog.global.React/global.React/g' -e 's/goog.global.ReactDOM/global.ReactDOM/g' -e 's/goog.global.createReactClass/global.createReactClass/g' target/server/prod/js/compiled/server.js -CMD ["node", "target/server/prod/js/compiled/server.js", "3000"] + +# ビルドステージから必要なファイルをコピー +COPY --from=build /usr/src/app/node_modules ./node_modules +COPY --from=build /usr/src/app/resources/public ./resources/public +COPY --from=build /usr/src/app/target/server/js/compiled ./target/server/js/compiled + +# アプリケーションの実行 +CMD ["node", "target/server/js/compiled/server.js", "3000"] diff --git a/front-end/package-lock.json b/front-end/package-lock.json index 34bbaf94..b9ba92bb 100644 --- a/front-end/package-lock.json +++ b/front-end/package-lock.json @@ -12,6 +12,11 @@ "regenerator-runtime": "^0.13.2" } }, + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, "@firebase/app": { "version": "0.3.17", "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.3.17.tgz", @@ -196,17 +201,20 @@ "@hapi/address": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.0.0.tgz", - "integrity": "sha512-mV6T0IYqb0xL1UALPFplXYQmR0twnXG0M6jUswpquqT2sD12BOiCiLy3EvMp/Fy7s3DZElC4/aPjEjo2jeZpvw==" + "integrity": "sha512-mV6T0IYqb0xL1UALPFplXYQmR0twnXG0M6jUswpquqT2sD12BOiCiLy3EvMp/Fy7s3DZElC4/aPjEjo2jeZpvw==", + "dev": true }, "@hapi/hoek": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-6.2.1.tgz", - "integrity": "sha512-+ryw4GU9pjr1uT6lBuErHJg3NYqzwJTvZ75nKuJijEzpd00Uqi6oiawTGDDf5Hl0zWmI7qHfOtaqB0kpQZJQzA==" + "integrity": "sha512-+ryw4GU9pjr1uT6lBuErHJg3NYqzwJTvZ75nKuJijEzpd00Uqi6oiawTGDDf5Hl0zWmI7qHfOtaqB0kpQZJQzA==", + "dev": true }, "@hapi/joi": { "version": "15.0.1", "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.0.1.tgz", "integrity": "sha512-6RLoFusVbSkKjo51IGy7TT72TYKaks3OLKRV4Wy4E8f0Vt2oqKBgtG+8VMnbruy+M4iLItiLYjETX7mQqklObQ==", + "dev": true, "requires": { "@hapi/address": "2.x.x", "@hapi/hoek": "6.x.x", @@ -217,10 +225,205 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.0.tgz", "integrity": "sha512-gZDI/eXOIk8kP2PkUKjWu9RW8GGVd2Hkgjxyr/S7Z+JF+0mr7bAlbw+DkTRxnD580o8Kqxlnba9wvqp5aOHBww==", + "dev": true, "requires": { "@hapi/hoek": "6.x.x" } }, + "@material-ui/core": { + "version": "4.12.4", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz", + "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==", + "requires": { + "@babel/runtime": "^7.4.4", + "@material-ui/styles": "^4.11.5", + "@material-ui/system": "^4.12.2", + "@material-ui/types": "5.1.0", + "@material-ui/utils": "^4.11.3", + "@types/react-transition-group": "^4.2.0", + "clsx": "^1.0.4", + "hoist-non-react-statics": "^3.3.2", + "popper.js": "1.16.1-lts", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0", + "react-transition-group": "^4.4.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + } + } + }, + "@material-ui/icons": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.3.tgz", + "integrity": "sha512-IKHlyx6LDh8n19vzwH5RtHIOHl9Tu90aAAxcbWME6kp4dmvODM3UvOHJeMIDzUbd4muuJKHmlNoBN+mDY4XkBA==", + "requires": { + "@babel/runtime": "^7.4.4" + } + }, + "@material-ui/styles": { + "version": "4.11.5", + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.5.tgz", + "integrity": "sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==", + "requires": { + "@babel/runtime": "^7.4.4", + "@emotion/hash": "^0.8.0", + "@material-ui/types": "5.1.0", + "@material-ui/utils": "^4.11.3", + "clsx": "^1.0.4", + "csstype": "^2.5.2", + "hoist-non-react-statics": "^3.3.2", + "jss": "^10.5.1", + "jss-plugin-camel-case": "^10.5.1", + "jss-plugin-default-unit": "^10.5.1", + "jss-plugin-global": "^10.5.1", + "jss-plugin-nested": "^10.5.1", + "jss-plugin-props-sort": "^10.5.1", + "jss-plugin-rule-value-function": "^10.5.1", + "jss-plugin-vendor-prefixer": "^10.5.1", + "prop-types": "^15.7.2" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "jss": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", + "requires": { + "@babel/runtime": "^7.3.1", + "csstype": "^3.0.2", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + } + } + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "@material-ui/system": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.2.tgz", + "integrity": "sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw==", + "requires": { + "@babel/runtime": "^7.4.4", + "@material-ui/utils": "^4.11.3", + "csstype": "^2.5.2", + "prop-types": "^15.7.2" + }, + "dependencies": { + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "@material-ui/types": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", + "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==" + }, + "@material-ui/utils": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz", + "integrity": "sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==", + "requires": { + "@babel/runtime": "^7.4.4", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0" + }, + "dependencies": { + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + } + } + }, + "@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==" + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -241,6 +444,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, "requires": { "string-width": "^2.0.0" } @@ -248,17 +452,20 @@ "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true }, "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -267,6 +474,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, "requires": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" @@ -276,6 +484,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, "requires": { "remove-trailing-separator": "^1.0.1" } @@ -285,27 +494,32 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true }, "array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true }, "array-flatten": { "version": "1.1.1", @@ -315,17 +529,20 @@ "array-slice": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true }, "ascli": { "version": "1.0.1", @@ -336,15 +553,57 @@ "optjs": "~3.2.2" } }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", + "dev": true, + "requires": { + "object.assign": "^4.1.4", + "util": "^0.10.4" + }, + "dependencies": { + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + } + } + }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true }, "async-done": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.1.tgz", "integrity": "sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg==", + "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.2", @@ -355,24 +614,28 @@ "process-nextick-args": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true } } }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true }, "babel-extract-comments": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", + "dev": true, "requires": { "babylon": "^6.18.0" } @@ -380,12 +643,14 @@ "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true }, "babel-plugin-transform-object-rest-spread": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dev": true, "requires": { "babel-plugin-syntax-object-rest-spread": "^6.8.0", "babel-runtime": "^6.26.0" @@ -395,6 +660,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -403,14 +669,16 @@ "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true } } }, "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true }, "balanced-match": { "version": "1.0.0", @@ -421,6 +689,7 @@ "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -435,6 +704,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -443,6 +713,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -451,6 +722,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -459,6 +731,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -467,10 +740,33 @@ } } }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, "binary-extensions": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz", - "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==" + "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true }, "body-parser": { "version": "1.20.3", @@ -505,6 +801,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, "requires": { "ansi-align": "^2.0.0", "camelcase": "^4.0.0", @@ -519,6 +816,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -527,6 +825,7 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -537,6 +836,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -556,6 +856,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -573,6 +874,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -584,10 +886,160 @@ "resolved": "https://registry.npmjs.org/brcast/-/brcast-3.0.1.tgz", "integrity": "sha512-eI3yqf9YEqyGl9PCNTR46MGvDylGtaHjalcz6Q3fAPnP/PhpKkkve52vFdfGpwp4VUvK6LUr4TQN+2stCrEwTg==" }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "dev": true, + "requires": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "dev": true, + "requires": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true }, "bytebuffer": { "version": "5.0.1", @@ -606,6 +1058,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -618,6 +1071,18 @@ "unset-value": "^1.0.0" } }, + "call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "requires": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + } + }, "call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -625,6 +1090,13 @@ "requires": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" + }, + "dependencies": { + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + } } }, "call-bound": { @@ -639,12 +1111,14 @@ "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true }, "camelcase-keys": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, "requires": { "camelcase": "^4.1.0", "map-obj": "^2.0.0", @@ -654,12 +1128,14 @@ "capture-stack-trace": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", + "dev": true }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -669,12 +1145,14 @@ "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true }, "chokidar": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", + "dev": true, "requires": { "anymatch": "^2.0.0", "async-each": "^1.0.1", @@ -688,17 +1166,56 @@ "path-is-absolute": "^1.0.0", "readdirp": "^2.2.1", "upath": "^1.1.1" + }, + "dependencies": { + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + } } }, "ci-info": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "cipher-base": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", + "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -710,6 +1227,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -719,12 +1237,14 @@ "cli-boxes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, "requires": { "restore-cursor": "^2.0.0" } @@ -732,12 +1252,14 @@ "cli-spinners": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.1.0.tgz", - "integrity": "sha512-8B00fJOEh1HPrx4fo5eW16XmE1PcL1tGpGrxy63CXGP9nHdPBN63X75hA1zhvQuhVztJWLqV58Roj2qlNM7cAA==" + "integrity": "sha512-8B00fJOEh1HPrx4fo5eW16XmE1PcL1tGpGrxy63CXGP9nHdPBN63X75hA1zhvQuhVztJWLqV58Roj2qlNM7cAA==", + "dev": true }, "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true }, "cliui": { "version": "3.2.0", @@ -785,7 +1307,13 @@ "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" }, "code-point-at": { "version": "1.1.0", @@ -796,6 +1324,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -805,6 +1334,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "requires": { "color-name": "1.1.3" } @@ -812,7 +1342,8 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "colour": { "version": "0.7.1", @@ -822,12 +1353,14 @@ "common-tags": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true }, "component-emitter": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true }, "compressible": { "version": "2.0.18", @@ -867,6 +1400,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "dev": true, "requires": { "dot-prop": "^4.1.0", "graceful-fs": "^4.1.2", @@ -876,6 +1410,18 @@ "xdg-basedir": "^3.0.0" } }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, "content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -909,26 +1455,75 @@ "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true }, "core-js": { "version": "2.6.5", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", - "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" + "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==", + "dev": true }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true + } + } }, "create-error-class": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, "requires": { "capture-stack-trace": "^1.0.0" } }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "create-react-class": { "version": "15.7.0", "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.7.0.tgz", @@ -942,16 +1537,46 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, "requires": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, + "crypto-browserify": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + } + } + }, "crypto-random-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true }, "css-vendor": { "version": "0.3.8", @@ -961,10 +1586,16 @@ "is-in-browser": "^1.0.2" } }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, "requires": { "array-find-index": "^1.0.1" } @@ -986,6 +1617,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, "requires": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" @@ -994,32 +1626,48 @@ "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true } } }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, "requires": { "clone": "^1.0.2" } }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -1029,6 +1677,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -1037,6 +1686,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -1045,6 +1695,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -1058,20 +1709,85 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, + "des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, "destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true + } + } + }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", + "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + } + } + }, "dom-storage": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz", "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q==" }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, "dot-prop": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, "requires": { "is-obj": "^1.0.0" } @@ -1089,13 +1805,43 @@ "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, + "elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + } + } + }, "encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", @@ -1113,6 +1859,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, "requires": { "once": "^1.4.0" } @@ -1121,6 +1868,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, "requires": { "is-arrayish": "^0.2.1" } @@ -1151,17 +1899,35 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, "requires": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", @@ -1176,6 +1942,7 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -1190,6 +1957,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -1198,6 +1966,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -1253,6 +2022,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -1262,6 +2032,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -1272,6 +2043,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", + "dev": true, "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", @@ -1282,6 +2054,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -1292,6 +2065,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -1307,6 +2081,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -1315,6 +2090,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -1323,6 +2099,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -1331,6 +2108,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -1339,6 +2117,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -1359,14 +2138,23 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -1378,6 +2166,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -1402,6 +2191,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, "requires": { "locate-path": "^2.0.0" } @@ -1425,12 +2215,14 @@ "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true }, "for-own": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, "requires": { "for-in": "^1.0.1" } @@ -1444,6 +2236,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, "requires": { "map-cache": "^0.2.2" } @@ -1457,6 +2250,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -1469,512 +2263,46 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", - "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", - "optional": true, + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "optional": true - }, - "console-control-strings": { + "has-symbols": { "version": "1.1.0", - "bundled": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "optional": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "needle": { - "version": "2.2.4", - "bundled": true, - "optional": true, - "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.3", - "bundled": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.5", - "bundled": true, - "optional": true - }, - "npm-packlist": { - "version": "1.2.0", - "bundled": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.6.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "optional": true + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" } } }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" - }, - "get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "requires": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - } - }, "get-own-enumerable-property-symbols": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz", - "integrity": "sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg==" + "integrity": "sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg==", + "dev": true }, "get-proto": { "version": "1.0.1", @@ -1988,12 +2316,14 @@ "get-stream": { "version": "3.0.0", "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true }, "glob": { "version": "7.1.3", @@ -2012,6 +2342,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" @@ -2021,6 +2352,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, "requires": { "is-extglob": "^2.1.0" } @@ -2031,6 +2363,7 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", + "dev": true, "requires": { "anymatch": "^2.0.0", "async-done": "^1.2.0", @@ -2044,6 +2377,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, "requires": { "ini": "^1.3.4" } @@ -2057,6 +2391,7 @@ "version": "6.7.1", "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, "requires": { "create-error-class": "^3.0.0", "duplexer3": "^0.1.4", @@ -2074,7 +2409,8 @@ "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true }, "grpc": { "version": "1.20.0", @@ -2496,17 +2832,23 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, - "has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0" + } }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -2517,6 +2859,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -2526,18 +2869,71 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, + "hash-base": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, "hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "requires": { "function-bind": "^1.1.2" + }, + "dependencies": { + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + } + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "hoist-non-react-statics": { @@ -2548,7 +2944,8 @@ "hosted-git-info": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true }, "http-errors": { "version": "2.0.0", @@ -2574,6 +2971,12 @@ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==" }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, "hyphenate-style-name": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz", @@ -2592,25 +2995,35 @@ "resolved": "https://registry.npmjs.org/idb/-/idb-3.0.2.tgz", "integrity": "sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw==" }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true }, "indent-string": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true }, "inflight": { "version": "1.0.6", @@ -2629,12 +3042,14 @@ "ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true }, "inquirer": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", + "dev": true, "requires": { "ansi-escapes": "^3.2.0", "chalk": "^2.4.2", @@ -2665,6 +3080,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -2673,6 +3089,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -2682,12 +3099,14 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true }, "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, "requires": { "binary-extensions": "^1.0.0" } @@ -2695,12 +3114,14 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true }, "is-builtin-module": { "version": "1.0.0", "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, "requires": { "builtin-modules": "^1.0.0" } @@ -2709,6 +3130,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, "requires": { "ci-info": "^1.5.0" } @@ -2717,6 +3139,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -2725,6 +3148,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -2735,6 +3159,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -2744,24 +3169,28 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true } } }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "is-function": { "version": "1.0.1", @@ -2772,6 +3201,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -2785,6 +3215,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, "requires": { "global-dirs": "^0.1.0", "is-path-inside": "^1.0.0" @@ -2793,17 +3224,20 @@ "is-negated-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true }, "is-npm": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -2812,6 +3246,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -2821,12 +3256,14 @@ "is-obj": { "version": "1.0.1", "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true }, "is-path-inside": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, "requires": { "path-is-inside": "^1.0.1" } @@ -2834,7 +3271,8 @@ "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true }, "is-plain-object": { "version": "2.0.4", @@ -2847,22 +3285,26 @@ "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true }, "is-redirect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true }, "is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true }, "is-retry-allowed": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true }, "is-stream": { "version": "1.1.0", @@ -2872,17 +3314,20 @@ "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true }, "isobject": { "version": "3.0.1", @@ -2906,17 +3351,20 @@ "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true }, "json-parse-even-better-errors": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", - "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==" + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", + "dev": true }, "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -3023,6 +3471,228 @@ } } }, + "jss-plugin-camel-case": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz", + "integrity": "sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==", + "requires": { + "@babel/runtime": "^7.3.1", + "hyphenate-style-name": "^1.0.3", + "jss": "10.10.0" + }, + "dependencies": { + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "hyphenate-style-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz", + "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==" + }, + "jss": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", + "requires": { + "@babel/runtime": "^7.3.1", + "csstype": "^3.0.2", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + } + } + } + }, + "jss-plugin-default-unit": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz", + "integrity": "sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0" + }, + "dependencies": { + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "jss": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", + "requires": { + "@babel/runtime": "^7.3.1", + "csstype": "^3.0.2", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + } + } + } + }, + "jss-plugin-global": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz", + "integrity": "sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0" + }, + "dependencies": { + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "jss": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", + "requires": { + "@babel/runtime": "^7.3.1", + "csstype": "^3.0.2", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + } + } + } + }, + "jss-plugin-nested": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz", + "integrity": "sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0", + "tiny-warning": "^1.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "jss": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", + "requires": { + "@babel/runtime": "^7.3.1", + "csstype": "^3.0.2", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + } + } + } + }, + "jss-plugin-props-sort": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz", + "integrity": "sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0" + }, + "dependencies": { + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "jss": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", + "requires": { + "@babel/runtime": "^7.3.1", + "csstype": "^3.0.2", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + } + } + } + }, + "jss-plugin-rule-value-function": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz", + "integrity": "sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0", + "tiny-warning": "^1.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "jss": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", + "requires": { + "@babel/runtime": "^7.3.1", + "csstype": "^3.0.2", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + } + } + } + }, + "jss-plugin-vendor-prefixer": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz", + "integrity": "sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==", + "requires": { + "@babel/runtime": "^7.3.1", + "css-vendor": "^2.0.8", + "jss": "10.10.0" + }, + "dependencies": { + "css-vendor": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", + "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", + "requires": { + "@babel/runtime": "^7.8.3", + "is-in-browser": "^1.0.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", + "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", + "requires": { + "regenerator-runtime": "^0.14.0" + } + } + } + }, + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "jss": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", + "requires": { + "@babel/runtime": "^7.3.1", + "csstype": "^3.0.2", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + } + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + } + } + }, "jss-preset-default": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/jss-preset-default/-/jss-preset-default-4.5.0.tgz", @@ -3074,17 +3744,20 @@ "just-debounce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", - "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=" + "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", + "dev": true }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true }, "latest-version": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, "requires": { "package-json": "^4.0.0" } @@ -3101,6 +3774,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", @@ -3112,6 +3786,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" @@ -3120,12 +3795,14 @@ "lodash": { "version": "4.17.11", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true }, "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true }, "lodash.camelcase": { "version": "4.3.0", @@ -3141,6 +3818,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", + "dev": true, "requires": { "lodash._reinterpolate": "~3.0.0", "lodash.templatesettings": "^4.0.0" @@ -3150,6 +3828,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", + "dev": true, "requires": { "lodash._reinterpolate": "~3.0.0" } @@ -3158,6 +3837,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, "requires": { "chalk": "^2.0.1" } @@ -3179,6 +3859,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, "requires": { "currently-unhandled": "^0.4.1", "signal-exit": "^3.0.0" @@ -3187,12 +3868,14 @@ "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -3202,6 +3885,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, "requires": { "pify": "^3.0.0" } @@ -3209,17 +3893,20 @@ "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true }, "map-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=" + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, "requires": { "object-visit": "^1.0.0" } @@ -3229,6 +3916,17 @@ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -3237,12 +3935,14 @@ "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==" + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true }, "meow": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", + "dev": true, "requires": { "camelcase-keys": "^4.0.0", "decamelize-keys": "^1.0.0", @@ -3269,6 +3969,7 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -3285,6 +3986,24 @@ "to-regex": "^3.0.2" } }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true + } + } + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -3313,7 +4032,20 @@ "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true }, "minimatch": { "version": "3.0.4", @@ -3326,12 +4058,14 @@ "minimist": { "version": "1.2.0", "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true }, "minimist-options": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, "requires": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0" @@ -3341,6 +4075,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -3350,6 +4085,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -3364,17 +4100,19 @@ "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true }, "nan": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", - "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==" + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz", + "integrity": "sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==" }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -3403,10 +4141,42 @@ "is-stream": "^1.0.1" } }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, "nodemon": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.9.tgz", "integrity": "sha512-hdr1oIb2p6ZSxu3PB2JWWYS7ZQ0qvaZsc3hK8DR8f02kRzc8rjYmxAIvdz+aYC+8F2IjNaB7HMcSDg8nQpJxyg==", + "dev": true, "requires": { "chokidar": "^3.5.2", "debug": "^4", @@ -3424,6 +4194,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -3432,12 +4203,14 @@ "binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true }, "braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, "requires": { "fill-range": "^7.1.1" } @@ -3446,6 +4219,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -3461,6 +4235,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, "requires": { "ms": "^2.1.3" } @@ -3469,20 +4244,16 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "optional": true - }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -3491,6 +4262,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "requires": { "binary-extensions": "^2.0.0" } @@ -3499,6 +4271,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -3506,12 +4279,14 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -3519,12 +4294,14 @@ "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "requires": { "picomatch": "^2.2.1" } @@ -3532,12 +4309,14 @@ "semver": { "version": "7.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==" + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { "is-number": "^7.0.0" } @@ -3548,6 +4327,7 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, "requires": { "hosted-git-info": "^2.1.4", "is-builtin-module": "^1.0.0", @@ -3558,17 +4338,20 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, "npm-normalize-package-bin": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", - "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==" + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", + "dev": true }, "npm-run-all2": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-7.0.2.tgz", "integrity": "sha512-7tXR+r9hzRNOPNTvXegM+QzCuMjzUIIq66VDunL6j60O4RrExx32XUhlrS7UK4VcdGw5/Wxzb3kfNcFix9JKDA==", + "dev": true, "requires": { "ansi-styles": "^6.2.1", "cross-spawn": "^7.0.6", @@ -3583,12 +4366,14 @@ "ansi-styles": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true }, "brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "requires": { "balanced-match": "^1.0.0" } @@ -3597,6 +4382,7 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3607,6 +4393,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "requires": { "isexe": "^2.0.0" } @@ -3617,6 +4404,7 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, "requires": { "brace-expansion": "^2.0.1" } @@ -3624,12 +4412,20 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -3637,12 +4433,20 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "dev": true }, "which": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, "requires": { "isexe": "^3.1.1" }, @@ -3650,7 +4454,8 @@ "isexe": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true } } } @@ -3660,6 +4465,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, "requires": { "path-key": "^2.0.0" } @@ -3678,6 +4484,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -3688,6 +4495,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -3696,6 +4504,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -3711,14 +4520,55 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, "requires": { "isobject": "^3.0.0" } }, + "object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "requires": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "dependencies": { + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, "object.defaults": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, "requires": { "array-each": "^1.0.1", "array-slice": "^1.0.0", @@ -3730,6 +4580,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, "requires": { "isobject": "^3.0.1" } @@ -3759,6 +4610,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, "requires": { "mimic-fn": "^1.0.0" } @@ -3772,6 +4624,7 @@ "version": "3.4.0", "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "dev": true, "requires": { "chalk": "^2.4.2", "cli-cursor": "^2.1.0", @@ -3781,6 +4634,12 @@ "wcwidth": "^1.0.1" } }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", @@ -3792,17 +4651,20 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, "requires": { "p-try": "^1.0.0" } @@ -3811,6 +4673,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, "requires": { "p-limit": "^1.1.0" } @@ -3818,12 +4681,14 @@ "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true }, "package-json": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, "requires": { "got": "^6.7.1", "registry-auth-token": "^3.0.1", @@ -3831,10 +4696,39 @@ "semver": "^5.1.0" } }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "dev": true, + "requires": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -3848,17 +4742,26 @@ "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true }, "path-is-absolute": { "version": "1.0.1", @@ -3868,12 +4771,14 @@ "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true }, "path-to-regexp": { "version": "0.1.12", @@ -3884,44 +4789,70 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, "requires": { "pify": "^3.0.0" } }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==" + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "popper.js": { + "version": "1.16.1-lts", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz", + "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true }, "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true }, "pretty-bytes": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.2.0.tgz", - "integrity": "sha512-ujANBhiUsl9AhREUDUEY1GPOharMGm8x8juS7qOHybcLi7XsKfrYQ88hSly1l2i0klXHTDYrlL8ihMCG55Dc3w==" + "integrity": "sha512-ujANBhiUsl9AhREUDUEY1GPOharMGm8x8juS7qOHybcLi7XsKfrYQ88hSly1l2i0klXHTDYrlL8ihMCG55Dc3w==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true }, "process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true }, "promise-polyfill": { "version": "8.1.0", @@ -3960,12 +4891,42 @@ "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true }, "pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true + } + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true }, "qs": { "version": "6.13.0", @@ -3975,10 +4936,36 @@ "side-channel": "^1.0.6" } }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true + }, "quick-lru": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=" + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } }, "range-parser": { "version": "1.2.1", @@ -4010,6 +4997,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -4038,6 +5026,11 @@ "scheduler": "^0.19.1" } }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, "react-jss": { "version": "8.6.1", "resolved": "https://registry.npmjs.org/react-jss/-/react-jss-8.6.1.tgz", @@ -4050,10 +5043,37 @@ "theming": "^1.3.0" } }, + "react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", + "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + } + } + }, "read-package-json-fast": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz", "integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==", + "dev": true, "requires": { "json-parse-even-better-errors": "^4.0.0", "npm-normalize-package-bin": "^4.0.0" @@ -4063,6 +5083,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, "requires": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", @@ -4073,6 +5094,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, "requires": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" @@ -4082,6 +5104,7 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -4096,16 +5119,24 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, "requires": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" } }, + "readline-sync": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", + "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", + "dev": true + }, "redent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, "requires": { "indent-string": "^3.0.0", "strip-indent": "^2.0.0" @@ -4120,6 +5151,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -4129,6 +5161,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, "requires": { "rc": "^1.1.6", "safe-buffer": "^5.0.1" @@ -4138,6 +5171,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, "requires": { "rc": "^1.0.1" } @@ -4145,27 +5179,32 @@ "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" @@ -4174,12 +5213,24 @@ "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } }, "run-async": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, "requires": { "is-promise": "^2.1.0" } @@ -4188,6 +5239,7 @@ "version": "6.5.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.1.tgz", "integrity": "sha512-y0j31WJc83wPu31vS1VlAFW5JGrnGC+j+TtGAa1fRQphy48+fDYiDmX8tjGloToEsMkxnouOg/1IzXGKkJnZMg==", + "dev": true, "requires": { "tslib": "^1.9.0" } @@ -4201,6 +5253,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, "requires": { "ret": "~0.1.10" } @@ -4222,12 +5275,14 @@ "semver": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true }, "semver-diff": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, "requires": { "semver": "^5.0.3" } @@ -4275,10 +5330,33 @@ "send": "0.19.0" } }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "dependencies": { + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + } + } + }, "set-value": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -4290,21 +5368,59 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shadow-cljs": { + "version": "2.28.21", + "resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.28.21.tgz", + "integrity": "sha512-O5VUJkTh0bWqPBSKoWnQwEe/jfvbxHkzCA7SEx8f1Eavb7nDFcoNFDkgGjJtaAyaaSw/cmABrT2EeksnXw/25g==", + "dev": true, + "requires": { + "node-libs-browser": "^2.2.1", + "readline-sync": "^1.4.7", + "shadow-cljs-jar": "1.3.4", + "source-map-support": "^0.4.15", + "which": "^1.3.1", + "ws": "^7.4.6" + } + }, + "shadow-cljs-jar": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/shadow-cljs-jar/-/shadow-cljs-jar-1.3.4.tgz", + "integrity": "sha512-cZB2pzVXBnhpJ6PQdsjO+j/MksR28mv4QD/hP/2y1fsIa9Z9RutYgh3N34FZ8Ktl4puAXaIGlct+gMCJ5BmwmA==", + "dev": true + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, "requires": { "shebang-regex": "^1.0.0" } @@ -4312,12 +5428,8 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==" + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true }, "side-channel": { "version": "1.1.0", @@ -4366,12 +5478,14 @@ "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true }, "simple-update-notifier": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, "requires": { "semver": "^7.5.3" }, @@ -4379,7 +5493,8 @@ "semver": { "version": "7.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==" + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true } } }, @@ -4387,6 +5502,7 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -4402,6 +5518,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -4410,6 +5527,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -4420,6 +5538,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -4430,6 +5549,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -4438,6 +5558,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -4446,6 +5567,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -4454,6 +5576,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -4466,6 +5589,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, "requires": { "kind-of": "^3.2.0" }, @@ -4474,6 +5598,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -4483,12 +5608,14 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true }, "source-map-resolve": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, "requires": { "atob": "^2.1.1", "decode-uri-component": "^0.2.0", @@ -4497,15 +5624,26 @@ "urix": "^0.1.0" } }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true }, "spdx-correct": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", + "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -4514,12 +5652,14 @@ "spdx-exceptions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true }, "spdx-expression-parse": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -4528,12 +5668,14 @@ "spdx-license-ids": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz", - "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==" + "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==", + "dev": true }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, "requires": { "extend-shallow": "^3.0.0" } @@ -4542,6 +5684,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -4551,6 +5694,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -4562,15 +5706,40 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, "stream-exhaust": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -4579,12 +5748,14 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -4595,6 +5766,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -4603,6 +5775,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, "requires": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", @@ -4613,6 +5786,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "requires": { "ansi-regex": "^4.1.0" } @@ -4620,12 +5794,14 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true }, "strip-comments": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", + "dev": true, "requires": { "babel-extract-comments": "^1.0.0", "babel-plugin-transform-object-rest-spread": "^6.26.0" @@ -4634,22 +5810,26 @@ "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true }, "strip-indent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=" + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -4658,6 +5838,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, "requires": { "execa": "^0.7.0" } @@ -4676,25 +5857,49 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "dev": true + }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -4703,6 +5908,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -4713,6 +5919,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -4724,6 +5931,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -4737,18 +5945,26 @@ "touch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", - "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==" + "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", + "dev": true }, "trim-newlines": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=" + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true }, "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -4761,12 +5977,14 @@ "undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true }, "union-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -4778,6 +5996,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -4786,6 +6005,7 @@ "version": "0.4.3", "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -4799,6 +6019,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, "requires": { "crypto-random-string": "^1.0.0" } @@ -4806,7 +6027,8 @@ "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true }, "unpipe": { "version": "1.0.0", @@ -4817,6 +6039,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -4826,6 +6049,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -4836,6 +6060,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, "requires": { "isarray": "1.0.0" } @@ -4845,24 +6070,28 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true } } }, "unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true }, "upath": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==" + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "dev": true }, "update-notifier": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "dev": true, "requires": { "boxen": "^1.2.1", "chalk": "^2.0.1", @@ -4880,6 +6109,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -4888,6 +6118,7 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -4898,6 +6129,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -4907,12 +6139,24 @@ "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "dev": true, + "requires": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + } }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, "requires": { "prepend-http": "^1.0.1" } @@ -4920,12 +6164,23 @@ "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true }, "utils-merge": { "version": "1.0.1", @@ -4936,6 +6191,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -4944,12 +6200,19 @@ "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, "requires": { "defaults": "^1.0.3" } @@ -4978,6 +6241,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "requires": { "isexe": "^2.0.0" } @@ -4986,6 +6250,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, "requires": { "string-width": "^2.1.1" } @@ -4999,6 +6264,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz", "integrity": "sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg==", + "dev": true, "requires": { "workbox-core": "^4.3.1" } @@ -5007,6 +6273,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz", "integrity": "sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA==", + "dev": true, "requires": { "workbox-core": "^4.3.1" } @@ -5015,6 +6282,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-4.3.1.tgz", "integrity": "sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw==", + "dev": true, "requires": { "@babel/runtime": "^7.3.4", "@hapi/joi": "^15.0.0", @@ -5045,6 +6313,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "dev": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -5057,6 +6326,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz", "integrity": "sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw==", + "dev": true, "requires": { "workbox-core": "^4.3.1" } @@ -5065,6 +6335,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-cli/-/workbox-cli-4.3.1.tgz", "integrity": "sha1-aV95luorXiJqIJr7DwXJtpUETYM=", + "dev": true, "requires": { "@babel/runtime": "^7.0.0", "chalk": "^2.4.1", @@ -5083,12 +6354,14 @@ "workbox-core": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", - "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==" + "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==", + "dev": true }, "workbox-expiration": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-4.3.1.tgz", "integrity": "sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw==", + "dev": true, "requires": { "workbox-core": "^4.3.1" } @@ -5097,6 +6370,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz", "integrity": "sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg==", + "dev": true, "requires": { "workbox-background-sync": "^4.3.1", "workbox-core": "^4.3.1", @@ -5108,6 +6382,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz", "integrity": "sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw==", + "dev": true, "requires": { "workbox-core": "^4.3.1" } @@ -5116,6 +6391,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-4.3.1.tgz", "integrity": "sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ==", + "dev": true, "requires": { "workbox-core": "^4.3.1" } @@ -5124,6 +6400,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz", "integrity": "sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA==", + "dev": true, "requires": { "workbox-core": "^4.3.1" } @@ -5132,6 +6409,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz", "integrity": "sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g==", + "dev": true, "requires": { "workbox-core": "^4.3.1" } @@ -5140,6 +6418,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz", "integrity": "sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw==", + "dev": true, "requires": { "workbox-core": "^4.3.1" } @@ -5148,6 +6427,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-4.3.1.tgz", "integrity": "sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA==", + "dev": true, "requires": { "workbox-core": "^4.3.1" } @@ -5155,12 +6435,14 @@ "workbox-sw": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-4.3.1.tgz", - "integrity": "sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w==" + "integrity": "sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w==", + "dev": true }, "workbox-window": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-4.3.1.tgz", "integrity": "sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg==", + "dev": true, "requires": { "workbox-core": "^4.3.1" } @@ -5216,22 +6498,36 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "dev": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", "signal-exit": "^3.0.2" } }, + "ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true + }, "xdg-basedir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true }, "xmlhttprequest": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, "y18n": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", @@ -5240,7 +6536,8 @@ "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true }, "yargs": { "version": "3.32.0", @@ -5298,6 +6595,7 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, "requires": { "camelcase": "^4.1.0" } diff --git a/front-end/package.json b/front-end/package.json index 9a696486..eadc6a52 100644 --- a/front-end/package.json +++ b/front-end/package.json @@ -1,32 +1,16 @@ { "name": "vr-match", "version": "1.0.0", - "description": "A [re-frame](https://github.com/Day8/re-frame) application designed to ... well, that part is up to you.", + "description": "VR Match Frontend", "scripts": { - "clean": "lein clean", - "start": "npm run watch", - "repl": "lein repl", - "figwheel": "lein figwheel", - "format": "lein cljfmt fix", - "workbox": "workbox generateSW", - "watch": "npm-run-all -p watch:server watch:worker", - "watch:server": "npm run watch:dev:server", - "watch:dev:server": "npm-run-all -p watch:dev:server:*", - "watch:dev:server:bundle": "nodemon target/server/js/compiled/server.js 8888 --watch target/server/js/compiled/server.js", - "watch:dev:server:src": "lein cljsbuild auto server-dev", - "watch:worker": "npm run watch:dev:worker", - "watch:dev:worker": "lein cljsbuild auto worker-dev", + "clean": "rm -rf resources/public/js/compiled resources/public/prod target", + "shadow-cljs": "shadow-cljs", "build": "npm run build:prod", - "build:dev": "npm run build:dev:client && npm run build:dev:server && npm run build:dev:worker", - "build:prod": "npm run build:prod:client && npm run build:prod:server && npm run build:prod:worker", - "build:dev:client": "lein cljsbuild once dev", - "build:prod:client": "lein cljsbuild once prod && npm run workbox", - "build:dev:server": "lein cljsbuild once server-dev", - "build:prod:server": "lein cljsbuild once server-prod && sed -i -e 's/goog.global.React/global.React/g' -e 's/goog.global.ReactDOM/global.ReactDOM/g' -e 's/goog.global.createReactClass/global.createReactClass/g' target/server/prod/js/compiled/server.js", - "build:dev:worker": "lein cljsbuild once worker-dev", - "build:prod:worker": "lein cljsbuild once worker-prod", - "deploy:now": "now --docker --public", - "test": "echo \"Error: no test specified\" && exit 1" + "build:dev": "shadow-cljs compile client server", + "build:prod": "shadow-cljs release client server && npm run workbox", + "watch": "shadow-cljs watch client server", + "workbox": "workbox generateSW", + "start": "node target/server/js/compiled/server.js 8888" }, "repository": { "type": "git", @@ -43,13 +27,18 @@ "create-react-class": "15.7.0", "express": "4.21.2", "firebase": "5.11.1", - "nodemon": "3.1.9", - "npm-run-all2": "7.0.2", "react": "16.14.0", "react-dom": "16.14.0", "react-jss": "8.6.1", + "@material-ui/core": "^4.11.0", + "@material-ui/icons": "^4.9.1", "whatwg-fetch": "3.6.20", - "workbox-cli": "4.3.1", "xmlhttprequest": "1.8.0" + }, + "devDependencies": { + "shadow-cljs": "^2.20.20", + "workbox-cli": "4.3.1", + "nodemon": "3.1.9", + "npm-run-all2": "7.0.2" } } diff --git a/front-end/resources/public/prod/img/logo.png b/front-end/resources/public/img/logo.png similarity index 100% rename from front-end/resources/public/prod/img/logo.png rename to front-end/resources/public/img/logo.png diff --git a/front-end/resources/public/prod/manifest.json b/front-end/resources/public/manifest.json similarity index 100% rename from front-end/resources/public/prod/manifest.json rename to front-end/resources/public/manifest.json diff --git a/front-end/resources/public/prod/favicon.ico b/front-end/resources/public/prod/favicon.ico deleted file mode 100644 index bb2d2d0a..00000000 Binary files a/front-end/resources/public/prod/favicon.ico and /dev/null differ diff --git a/front-end/resources/ssr-preamble.js b/front-end/resources/ssr-preamble.js index 308b576d..bfbc2dbb 100644 --- a/front-end/resources/ssr-preamble.js +++ b/front-end/resources/ssr-preamble.js @@ -1,26 +1,11 @@ -// https://github.com/reagent-project/reagent/issues/296 -var React = require("react"); -var ReactDOM = {server: require("react-dom/server")}; -var ReactDOMServer = require("react-dom/server"); -var createReactClass = require("create-react-class"); -global.React = React; -global.ReactDOM = ReactDOM; -global.ReactDOMServer = ReactDOMServer; -global.createReactClass = createReactClass; +// 簡素化したプリアンブルファイル +// shadow-cljsを使用することでほとんど不要になりますが、 +// 移行期間中は一部の機能をサポートする場合があります -// material-ui の universal 対応のための workaround -// もっといい手があれば知りたい +// Material-UIのSSRサポートのためのグローバル設定 global.window = global; -global.window.navigator = {}; -global.window.navigator.userAgent = ""; -global.window.localStorage = null; - -// SSRサーバーを :optimization :simple でビルドする時、モジュール解決に失敗して以下のエラーが出るので無理やり補完する -// TypeError: Cannot read property 'renderToString' of undefined -// goog.global = global; - -// for https://github.com/firebase/firebase-js-sdk/issues/965 -self = { - fetch: function(){}, +global.window.navigator = { + userAgent: "" }; +global.window.localStorage = null; diff --git a/front-end/shadow-cljs.edn b/front-end/shadow-cljs.edn new file mode 100644 index 00000000..191f78bf --- /dev/null +++ b/front-end/shadow-cljs.edn @@ -0,0 +1,92 @@ +{:source-paths ["src/clj" "src/cljs" "src/cljs-client" "src/cljs-server" "src/cljs-worker"] + :dependencies [[reagent "0.10.0"] + [re-frame "1.2.0"] + [clj-commons/secretary "1.2.4"] + [kibu/pushy "0.3.8"] + [e85th/venia "0.2.5-1"] + [cljs-ajax "0.8.4"]] + + ;; npmパッケージのエイリアスを設定 + :npm-aliases {"material-ui" "@material-ui/core"} + + :builds + {:client {:target :browser + :output-dir "resources/public/js/compiled" + :asset-path "/static/js/compiled" + :module-loader true + :modules {:cljs-base {:entries [] + :output-name "cljs_base.js"} + :client {:entries [vr-match.client] + :depends-on #{:cljs-base} + :output-name "app.js"} + :example {:entries [vr-match.example.container] + :depends-on #{:client} + :output-name "example.js"} + :welcome {:entries [vr-match.welcome.container] + :depends-on #{:client} + :output-name "welcome.js"} + :approach {:entries [vr-match.approach.container] + :depends-on #{:client} + :output-name "approach.js"} + :profile {:entries [vr-match.profile.container] + :depends-on #{:client} + :output-name "profile.js"} + :register {:entries [vr-match.auth.containers.register] + :depends-on #{:client} + :output-name "register.js"} + :email-register {:entries [vr-match.auth.containers.email-register] + :depends-on #{:client} + :output-name "email_register.js"} + :email-register-complete {:entries [vr-match.auth.containers.email-register-complete] + :depends-on #{:client} + :output-name "email_register_complete.js"} + :twitter-login {:entries [vr-match.auth.containers.twitter-login] + :depends-on #{:client} + :output-name "twitter_login.js"} + :email-login {:entries [vr-match.auth.containers.email-login] + :depends-on #{:client} + :output-name "email_login.js"} + :email-login-complete {:entries [vr-match.auth.containers.email-login-complete] + :depends-on #{:client} + :output-name "email_login_complete.js"} + :wizard {:entries [vr-match.wizard.container] + :depends-on #{:client} + :output-name "wizard.js"} + :favorite {:entries [vr-match.favorite.container] + :depends-on #{:client} + :output-name "favorite.js"} + :favorited-from-users {:entries [vr-match.favorited-from-users.container] + :depends-on #{:client} + :output-name "favorited-from-users.js"} + :matching {:entries [vr-match.matching.container] + :depends-on #{:client} + :output-name "matching.js"} + :myprofile {:entries [vr-match.myprofile.container] + :depends-on #{:client} + :output-name "myprofile.js"} + :mypage {:entries [vr-match.mypage.container] + :depends-on #{:client} + :output-name "mypage.js"} + :setting-top {:entries [vr-match.setting.containers.top] + :depends-on #{:client} + :output-name "setting_top.js"} + :setting-third-party-authorization {:entries [vr-match.setting.containers.third-party-authorization] + :depends-on #{:client} + :output-name "setting_third_party_authorization.js"} + :worker {:entries [vr-match.worker] + :depends-on #{:cljs-base} + :web-worker true + :init-fn vr-match.worker/init + :output-name "worker.js"}} + :devtools {:after-load vr-match.client/remount-for-figwheel}} + + :server {:target :node-script + :output-dir "target/server/js/compiled" + :output-to "target/server/js/compiled/server.js" + :main vr-match.server/main + :compiler-options {;; 常に simple 最適化を使用 + :optimizations :simple + }} + + ;; :worker ビルド定義は以前削除済み + }} \ No newline at end of file diff --git a/front-end/src/cljs-client/vr_match/client.cljs b/front-end/src/cljs-client/vr_match/client.cljs index 5e80d0fb..3bb37b26 100644 --- a/front-end/src/cljs-client/vr_match/client.cljs +++ b/front-end/src/cljs-client/vr_match/client.cljs @@ -1,16 +1,16 @@ (ns vr-match.client (:require [cljs.spec.alpha :as s] - [react-dom] + ["react-dom" :as react-dom] [cljs.loader :as loader] [cljs.reader :as reader] [pushy.core :as pushy] [reagent.core :as reagent] [re-frame.core :as re-frame] [secretary.core :as secretary] - ["material-ui"] - ["material-ui/styles"] - ["material-ui/colors"] + ["@material-ui/core/styles" :refer [MuiThemeProvider createMuiTheme createGenerateClassName]] + ["@material-ui/core/colors" :as colors] + ["react-jss" :refer [JssProvider SheetsRegistry]] [vr-match.events :as events] [vr-match.lib.component :as component] [vr-match.lib.components.material-ui :as mui] @@ -18,25 +18,16 @@ [vr-match.config :as config] [vr-match.util :as util])) -;; TODO: 現状では、 react-jss をクライアントサイドの ClojureScript で使える手がないので無理やり Context API を使って Material-UI の SSR を実現している -;; from https://github.com/cssinjs/react-jss/blob/master/src/ns.js -(def sheet-options "6fc570d6bd61383819d0f9e7407c452d") - -;; (def JSSContext -;; (.createContext js/React (clj->js {sheet-options {"generateClassName" ""}}))) - -;; (def JSSContextProvider -;; (reagent/adapt-react-class (.-Provider JSSContext))) - -(defn JSSContextProvider - [generate-class-name children] - (reagent/create-class - {:get-child-context (clj->js {sheet-options {"generateClassName" generate-class-name}}) - :reagent-render (fn [_ children] children)})) - +;; Material-UIテーマの設定 (def mui-theme (mui/theme)) (def mui-generate-class-name (mui/create-generate-class-name)) +;; SSRで生成されたCSSを取り除く関数 +(defn remove-ssr-styles [] + (let [jss-styles (.getElementById js/document "jss-server-side")] + (when (and jss-styles (.-parentNode jss-styles)) + (.removeChild (.-parentNode jss-styles) jss-styles)))) + (defn dev-setup [] (when config/debug? (enable-console-print!) @@ -46,29 +37,25 @@ (pushy/pushy secretary/dispatch! (fn [x] (when (secretary/locate-route x) (re-frame/dispatch [::events/send-pageview x]) - x)))) + x)))) -;; https://github.com/kibu-australia/pushy#routing-libraries から輸入 (defn hook-history [] (pushy/start! history)) (defn index [] (reagent/create-class - {:component-did-mount - (fn [] - ;; Remove the server-side injected CSS. - (let [jss-styles (.. js/document (getElementById "jss-server-side"))] - (when (and jss-styles (.-parentNode jss-styles)) - (.. jss-styles -parentNode (removeChild jss-styles))))) - :reagent-render - (fn [] - [JSSContextProvider mui-generate-class-name - [mui/MuiThemeProvider {:theme mui-theme} - [component/app]]])})) + {:component-did-mount + (fn [] + (remove-ssr-styles)) + :reagent-render + (fn [] + [:> JssProvider {:generate-class-name mui-generate-class-name} + [:> MuiThemeProvider {:theme mui-theme} + [component/app]]])})) (defn mount-root [] (react-dom/hydrate (reagent/as-element [index]) - (.getElementById js/document "app"))) + (.getElementById js/document "app"))) (defn ^:export remount-for-figwheel [] (re-frame/clear-subscription-cache!) @@ -77,23 +64,23 @@ (defn- preload-state [] (some-> - js/window - (aget "preload") - reader/read-string)) + js/window + (aget "preload") + reader/read-string)) (defn ^:export init [] (let [preload (preload-state)] (util/universal-load (-> preload :router :key route/route-table :module-name) - (fn [] - (re-frame/dispatch-sync - [::events/initialize - {:history history - :preload preload}]) - (re-frame/dispatch - [::events/initialize-worker]) - (dev-setup) - (hook-history) - (mount-root))))) + (fn [] + (re-frame/dispatch-sync + [::events/initialize + {:history history + :preload preload}]) + (re-frame/dispatch + [::events/initialize-worker]) + (dev-setup) + (hook-history) + (mount-root))))) (set! (. js/window -onload) init) diff --git a/front-end/src/cljs-server/vr_match/server.cljs b/front-end/src/cljs-server/vr_match/server.cljs index 69e34ed4..269b2696 100644 --- a/front-end/src/cljs-server/vr_match/server.cljs +++ b/front-end/src/cljs-server/vr_match/server.cljs @@ -1,40 +1,42 @@ (ns vr-match.server (:require - [cljs.reader :as reader] - [cljs.loader :as loader] - [re-frame.core :as re-frame] - [re-frame.db :as db] - [reagent.core :refer [adapt-react-class]] - [reagent.dom.server :as r] - [secretary.core :as secretary] - [vr-match.example.container] - [vr-match.welcome.container] - [vr-match.approach.container] - [vr-match.profile.container] - [vr-match.auth.containers.register] - [vr-match.auth.containers.email-register] - [vr-match.auth.containers.email-register-complete] - [vr-match.auth.containers.email-login] - [vr-match.auth.containers.email-login-complete] - [vr-match.auth.containers.twitter-login] - [vr-match.wizard.container] - [vr-match.favorite.container] - [vr-match.favorited-from-users.container] - [vr-match.matching.container] - [vr-match.myprofile.container] - [vr-match.mypage.container] - [vr-match.setting.containers.top] - [vr-match.setting.containers.third-party-authorization] - [vr-match.lib.component :as component] - [vr-match.lib.components.material-ui :as mui] - [vr-match.config :as config] - [vr-match.events :as events] - [vr-match.route])) - -(def express (js/require "express")) -(def compression (js/require "compression")) -(def ^:export app (express)) - + [cljs.reader :as reader] + [reagent.core :as reagent] + [reagent.dom.server :as r] + [secretary.core :as secretary] + ["express" :as express] + ["compression" :as compression] + ["react" :as react] + ["react-dom/server" :as react-dom-server] + ["@material-ui/core/styles" :as styles] + ["react-jss" :refer [JssProvider SheetsRegistry]] + [vr-match.lib.component :as component] + [vr-match.lib.components.material-ui :as mui] + [vr-match.events :as events] + [vr-match.config :as config] + ;; 各種コンテナコンポーネントのインポート + [vr-match.example.container] + [vr-match.welcome.container] + [vr-match.approach.container] + [vr-match.profile.container] + [vr-match.auth.containers.register] + [vr-match.auth.containers.email-register] + [vr-match.auth.containers.email-register-complete] + [vr-match.auth.containers.email-login] + [vr-match.auth.containers.email-login-complete] + [vr-match.auth.containers.twitter-login] + [vr-match.wizard.container] + [vr-match.favorite.container] + [vr-match.favorited-from-users.container] + [vr-match.matching.container] + [vr-match.myprofile.container] + [vr-match.mypage.container] + [vr-match.setting.containers.top] + [vr-match.setting.containers.third-party-authorization] + [re-frame.core :as re-frame] + [re-frame.db :as db])) + +(def express-app (express)) (def api-endpoint (or js/process.env.API_ENDPOINT "http://localhost:8080")) (def firebase-config @@ -48,11 +50,7 @@ (def google-analytics-tracking-id js/process.env.GOOGLE_ANALYTICS_TRACKING_ID) -(def JssProvider (-> (js/require "react-jss/lib/JssProvider") .-default adapt-react-class)) -(def jss (js/require "react-jss/lib/jss")) -(def sheets-registry (.-SheetsRegistry jss)) - -(goog-define static-file-path "/") +;; goog-define dev? は一旦残す (goog-define dev? false) (defn dev-setup [] @@ -60,16 +58,19 @@ (enable-console-print!) (println "dev mode"))) -(defn app-component - [registry generate-class-name theme sheets-manager] - [JssProvider {:registry registry - :generateClassName generate-class-name} - [mui/MuiThemeProvider {:theme theme - :sheetsManager sheets-manager} - [component/app]]]) - -(defn index - [app-html css] +(defn render-app-html [request-path] + (let [sheets (new (.-ServerStyleSheets styles)) + theme (mui/theme) + generate-class-name (mui/create-generate-class-name) + html (.renderToString react-dom-server + (.collect sheets + (react/createElement (.-MuiThemeProvider styles) + #js{:theme theme} + (reagent/as-element [component/app])))) + css (.toString sheets)] + {:html html :css css})) + +(defn index [html css] [:html {:lang "en"} [:head [:meta {:charset "utf-8"}] @@ -138,13 +139,13 @@ [:body [:div#app {:dangerouslySetInnerHTML - {:__html app-html}}] ] + {:__html html}}]] [:div {:dangerouslySetInnerHTML - {:__html (str "")}}] + {:__html (str "")}}] [:div {:dangerouslySetInnerHTML - {:__html (str "")}}] + {:__html (str "")}}] [:script {:src "/static/js/compiled/cljs_base.js"}] [:script {:src "/static/js/compiled/app.js"}] [:link {:rel "stylesheet" @@ -178,45 +179,35 @@ "}}])]) -(defn- render-index - [sheets-registry generate-class-name theme sheets-manager] - (let [app-html (r/render-to-string [app-component sheets-registry generate-class-name theme sheets-manager])] - (r/render-to-string [index app-html (.toString sheets-registry)]))) - -(defn handle-render - [req res] +(defn handle-render [req res] (let [request-path (.-baseUrl req) - sheets-registry (new sheets-registry) - sheets-manager (new js/Map) - generate-class-name (mui/create-generate-class-name) - theme (mui/theme)] - (re-frame/dispatch-sync [::events/initialize {:api-endpoint api-endpoint - :preload nil - :history nil}]) - (secretary/dispatch! request-path) - (.format res #js {"text/html" #(.send res (render-index sheets-registry - generate-class-name - theme - sheets-manager))}))) - -(defn serve - [port] - (.listen app port)) - -(defn -main - [& args] + _ (re-frame/dispatch-sync [::events/initialize {:api-endpoint api-endpoint + :preload nil + :history nil}]) + _ (secretary/dispatch! request-path) + {:keys [html css]} (render-app-html request-path)] + (.format res #js{"text/html" #(.send res (r/render-to-string [index html css]))}))) + +(defn serve [port] + (.listen express-app port)) + +(defn ^:export main [& args] (let [port (-> args first js/parseInt)] (dev-setup) (serve port))) -(doto app +(doto express-app (.use (compression)) - (.use "/sw.js" (.static express (str static-file-path "sw.js"))) - (.use "/manifest.json" (.static express (str static-file-path "manifest.json"))) - (.use "/favicon.ico" (.static express (str static-file-path "favicon.ico"))) - (.use "static" (.static express static-file-path)) - (.use "/static" (.static express static-file-path)) + ;; 静的ファイル配信を resources/public に一本化 + (.use "/static" (.static express "resources/public")) + + ;; ルートパスの特定ファイルに対する設定 (resources/public を参照) + (.get "/sw.js" (fn [req res] (.sendFile res "sw.js" #js{:root "resources/public/"}))) + (.get "/manifest.json" (fn [req res] (.sendFile res "manifest.json" #js{:root "resources/public/"}))) + (.get "/favicon.ico" (fn [req res] (.sendFile res "favicon.ico" #js{:root "resources/public/"}))) + + ;; その他のすべてのパスに対するSSRハンドラ (.use "/*" handle-render)) -(set! *main-cli-fn* -main) +(set! *main-cli-fn* main) diff --git a/front-end/src/cljs/cljsjs/firebase.cljs b/front-end/src/cljs/cljsjs/firebase.cljs new file mode 100644 index 00000000..edc52995 --- /dev/null +++ b/front-end/src/cljs/cljsjs/firebase.cljs @@ -0,0 +1,12 @@ +(ns cljsjs.firebase + (:require ["firebase/app" :as firebase])) + +;; グローバル変数の公開 +(js/goog.exportSymbol "Firebase" firebase) + +;; 追加サービスのインポート(必要に応じて) +(defn import-auth [] + (js/require "firebase/auth")) + +(defn import-firestore [] + (js/require "firebase/firestore")) \ No newline at end of file diff --git a/front-end/src/cljs/cljsjs/material_ui.cljs b/front-end/src/cljs/cljsjs/material_ui.cljs new file mode 100644 index 00000000..cbbd6938 --- /dev/null +++ b/front-end/src/cljs/cljsjs/material_ui.cljs @@ -0,0 +1,5 @@ +(ns cljsjs.material-ui + (:require ["@material-ui/core" :as mui])) + +;; グローバル変数の公開 +(js/goog.exportSymbol "MaterialUI" mui) \ No newline at end of file diff --git a/front-end/src/cljs/cljsjs/react.cljs b/front-end/src/cljs/cljsjs/react.cljs new file mode 100644 index 00000000..e5f98d28 --- /dev/null +++ b/front-end/src/cljs/cljsjs/react.cljs @@ -0,0 +1,5 @@ +(ns cljsjs.react + (:require ["react" :as react])) + +;; グローバル変数の公開(既存のコードとの互換性を保つため) +(js/goog.exportSymbol "React" react) \ No newline at end of file diff --git a/front-end/src/cljs/cljsjs/react/dom.cljs b/front-end/src/cljs/cljsjs/react/dom.cljs new file mode 100644 index 00000000..e454c154 --- /dev/null +++ b/front-end/src/cljs/cljsjs/react/dom.cljs @@ -0,0 +1,7 @@ +(ns cljsjs.react.dom + (:require ["react-dom" :as react-dom] + ["react-dom/server" :as react-dom-server])) + +;; グローバル変数の公開 +(js/goog.exportSymbol "ReactDOM" react-dom) +(js/goog.exportSymbol "ReactDOMServer" react-dom-server) \ No newline at end of file diff --git a/front-end/src/cljs/vr_match/approach/components/action_buttons.cljs b/front-end/src/cljs/vr_match/approach/components/action_buttons.cljs index 7678566c..a365a74a 100644 --- a/front-end/src/cljs/vr_match/approach/components/action_buttons.cljs +++ b/front-end/src/cljs/vr_match/approach/components/action_buttons.cljs @@ -11,13 +11,11 @@ onClickSkip onClickFavorite] :as props}] [mui/grid {:container true - :justify "space-around"} - [mui/button {:variant "fab" - :aria-label "スキップ" + :justify-content "space-around"} + [mui/fab {:aria-label "スキップ" :on-click onClickSkip} [mui/icon "reply"]] - [mui/button {:variant "fab" - :color "secondary" + [mui/fab {:color "secondary" :aria-label "すき" :on-click onClickFavorite} [mui/icon "favorite"]]]) diff --git a/front-end/src/cljs/vr_match/approach/components/empty.cljs b/front-end/src/cljs/vr_match/approach/components/empty.cljs index 03ba7112..9454e22a 100644 --- a/front-end/src/cljs/vr_match/approach/components/empty.cljs +++ b/front-end/src/cljs/vr_match/approach/components/empty.cljs @@ -2,7 +2,10 @@ (:require [cljs.spec.alpha :as s] [reagent.core :as r] - ["material-ui"] + ["@material-ui/core/Grid" :as Grid] + ["@material-ui/core/Typography" :as Typography] + ["@material-ui/core/Icon" :as Icon] + ["@material-ui/core/Button" :as Button] [vr-match.approach.components.reset-all-skip-alert :refer [reset-all-skip-alert]])) (defn swipe-cards-empty @@ -18,33 +21,33 @@ [reset-all-skip-alert {:isOpen @is-open-alert :handleClose handle-close-alert :handleSubmit handle-submit-alert}] - [:> js/MaterialUI.Grid {:container true - :spacing 32 - :direction "column" - :justify "space-between" - :align-items "flex-start" - :style {:height "100%" - :width "100vw" - :padding 32}} - [:> js/MaterialUI.Typography {:variant "display1" - :component "h1" - :gutterBottom true - :style {:text-align "left"}} + [:> Grid {:container true + :spacing 32 + :direction "column" + :justify "space-between" + :align-items "flex-start" + :style {:height "100%" + :width "100vw" + :padding 32}} + [:> Typography {:variant "display1" + :component "h1" + :gutterBottom true + :style {:text-align "left"}} "すべてのアバターをスワイプしました"] - [:> js/MaterialUI.Grid {:container true - :spacing 32 - :direction "column" - :justify "space-between" - :align-items "center" - :style {:padding 32}} - [:> js/MaterialUI.Icon + [:> Grid {:container true + :spacing 32 + :direction "column" + :justify "space-between" + :align-items "center" + :style {:padding 32}} + [:> Icon {:font-size "inherit" :color "primary" :style {:font-size "10em"}} "done"]] - [:> js/MaterialUI.Button {:variant "contained" - :color "primary" - :style {:margin-left "auto" - :margin-right "auto"} - :on-click handle-open-alert} + [:> Button {:variant "contained" + :color "primary" + :style {:margin-left "auto" + :margin-right "auto"} + :on-click handle-open-alert} "スキップしたお相手をもう一度みる"]]]))) diff --git a/front-end/src/cljs/vr_match/approach/components/reset_all_skip_alert.cljs b/front-end/src/cljs/vr_match/approach/components/reset_all_skip_alert.cljs index a8e15eaa..c821033a 100644 --- a/front-end/src/cljs/vr_match/approach/components/reset_all_skip_alert.cljs +++ b/front-end/src/cljs/vr_match/approach/components/reset_all_skip_alert.cljs @@ -1,22 +1,27 @@ (ns vr-match.approach.components.reset-all-skip-alert (:require [reagent.core :as r] - ["material-ui"])) + ["@material-ui/core/Dialog" :as Dialog] + ["@material-ui/core/DialogTitle" :as DialogTitle] + ["@material-ui/core/DialogContent" :as DialogContent] + ["@material-ui/core/DialogContentText" :as DialogContentText] + ["@material-ui/core/DialogActions" :as DialogActions] + ["@material-ui/core/Button" :as Button])) (defn reset-all-skip-alert [{:keys [isOpen handleClose handleSubmit] :as props}] - [:> js/MaterialUI.Dialog {:open isOpen - :onClose handleClose - :aria-labelledby "スキップしたお相手をもう一度表示しますか?" - :aria-describedby "この操作により全てのスキップが解除され、スキップしたお相手が再び表示されます。"} - [:> js/MaterialUI.DialogTitle "スキップしたお相手をもう一度表示しますか?" ] - [:> js/MaterialUI.DialogContent - [:> js/MaterialUI.DialogContentText + [:> Dialog {:open isOpen + :onClose handleClose + :aria-labelledby "スキップしたお相手をもう一度表示しますか?" + :aria-describedby "この操作により全てのスキップが解除され、スキップしたお相手が再び表示されます。"} + [:> DialogTitle "スキップしたお相手をもう一度表示しますか?" ] + [:> DialogContent + [:> DialogContentText "この操作により全てのスキップが解除され、スキップしたお相手が再び表示されます。"]] - [:> js/MaterialUI.DialogActions - [:> js/MaterialUI.Button {:onClick handleClose} + [:> DialogActions + [:> Button {:onClick handleClose} "キャンセル"] - [:> js/MaterialUI.Button {:onClick handleSubmit - :color "primary"} + [:> Button {:onClick handleSubmit + :color "primary"} "OK"]]]) diff --git a/front-end/src/cljs/vr_match/approach/components/swipe_card_item.cljs b/front-end/src/cljs/vr_match/approach/components/swipe_card_item.cljs index cc97072f..290293e5 100644 --- a/front-end/src/cljs/vr_match/approach/components/swipe_card_item.cljs +++ b/front-end/src/cljs/vr_match/approach/components/swipe_card_item.cljs @@ -42,7 +42,7 @@ :style {:font-size "40px"}} "info"]] [mui/grid {:container true - :justify "flex-start" + :justify-content "flex-start" :style {"marginBottom" "0.35em"} :spacing 8} (->> platforms @@ -51,7 +51,7 @@ :item true} [plat-form-chip {:name name}]])))] [mui/typo-graphy {:gutterBottom true - :variant "subheading" + :variant "subtitle1" :component "h2"} name] [mui/typo-graphy {:noWrap true} diff --git a/front-end/src/cljs/vr_match/auth/components/email_login.cljs b/front-end/src/cljs/vr_match/auth/components/email_login.cljs index 4c301edd..2bd9aeaf 100644 --- a/front-end/src/cljs/vr_match/auth/components/email_login.cljs +++ b/front-end/src/cljs/vr_match/auth/components/email_login.cljs @@ -1,7 +1,12 @@ (ns vr-match.auth.components.email-login (:require [reagent.core :as r] - ["material-ui"] + ["@material-ui/core/Grid" :as Grid] + ["@material-ui/core/Typography" :as Typography] + ["@material-ui/core/Icon" :as Icon] + ["@material-ui/core/Button" :as Button] + ["@material-ui/core/FormControl" :as FormControl] + ["@material-ui/core/TextField" :as TextField] [vr-match.lib.components.linear-progress :refer [linear-progress]])) (defn- handle-change-email @@ -16,32 +21,32 @@ (defn send-email-sign-in-link-complete [email] [:div {:style {:padding 16}} - [:> js/MaterialUI.Grid {:container true - :spacing 32 - :direction "column" - :justify "space-between" - :align-items "flex-start" - :style {:height "100%" - :width "100vw" - :padding 32}} - [:> js/MaterialUI.Typography {:variant "display1" - :component "h1" - :gutterBottom true - :style {:text-align "left"}} + [:> Grid {:container true + :spacing 32 + :direction "column" + :justify "space-between" + :align-items "flex-start" + :style {:height "100%" + :width "100vw" + :padding 32}} + [:> Typography {:variant "display1" + :component "h1" + :gutterBottom true + :style {:text-align "left"}} "ログイン確認メールを送信しました"] - [:> js/MaterialUI.Grid {:container true - :spacing 32 - :direction "column" - :justify "space-between" - :align-items "center" - :style {:padding 32}} - [:> js/MaterialUI.Icon + [:> Grid {:container true + :spacing 32 + :direction "column" + :justify "space-between" + :align-items "center" + :style {:padding 32}} + [:> Icon {:font-size "inherit" :color "primary" :style {:font-size "10em"}} "mail_outline"]] - [:> js/MaterialUI.Typography {:variant "body1" - :component "p"} + [:> Typography {:variant "body1" + :component "p"} [:span {:style {:font-weight "bold"}} email] " へ届いた確認用リンクを確認してください"]]]) @@ -61,28 +66,28 @@ [:<> (when isLoading [linear-progress]) [:div {:style {:padding 16}} - [:> js/MaterialUI.Grid {:container true - :spacing 32 - :direction "column" - :justify "space-between" - :align-items "flex-start" - :style {:height "100%" - :width "100vw" - :padding 32}} - [:> js/MaterialUI.Typography {:variant "display1" - :component "h1" - :gutterBottom true - :style {:text-align "left"}} + [:> Grid {:container true + :spacing 32 + :direction "column" + :justify "space-between" + :align-items "flex-start" + :style {:height "100%" + :width "100vw" + :padding 32}} + [:> Typography {:variant "display1" + :component "h1" + :gutterBottom true + :style {:text-align "left"}} "メールアドレスを入力してください"] - [:> js/MaterialUI.FormControl {:fullWidth true} - [:> js/MaterialUI.TextField {:type "email" - :auto-complete "email" - :on-change #(handle-change-email draft-email %) - :placeholder "sample@example.com"}]] - [:> js/MaterialUI.Button {:disabled (= @draft-email "") - :variant "contained" - :color "primary" - :on-click #(handleSubmit @draft-email) - :full-width true} + [:> FormControl {:fullWidth true} + [:> TextField {:type "email" + :auto-complete "email" + :on-change #(handle-change-email draft-email %) + :placeholder "sample@example.com"}]] + [:> Button {:disabled (= @draft-email "") + :variant "contained" + :color "primary" + :on-click #(handleSubmit @draft-email) + :full-width true} "次へ"]]]])) :component-did-mount component-did-mount}))) diff --git a/front-end/src/cljs/vr_match/auth/components/email_login_complete.cljs b/front-end/src/cljs/vr_match/auth/components/email_login_complete.cljs index 5b0f00f5..6b087531 100644 --- a/front-end/src/cljs/vr_match/auth/components/email_login_complete.cljs +++ b/front-end/src/cljs/vr_match/auth/components/email_login_complete.cljs @@ -1,7 +1,11 @@ (ns vr-match.auth.components.email-login-complete (:require [reagent.core :as r] - ["material-ui"] + ["@material-ui/core/Grid" :as Grid] + ["@material-ui/core/Typography" :as Typography] + ["@material-ui/core/Button" :as Button] + ["@material-ui/core/FormControl" :as FormControl] + ["@material-ui/core/TextField" :as TextField] [vr-match.lib.components.linear-progress :refer [linear-progress]])) (defn- handle-change-email @@ -24,7 +28,7 @@ [:<> (when isLoading [linear-progress]) [:div {:style {:padding 16}} - [:> js/MaterialUI.Grid {:container true + [:> Grid {:container true :spacing 32 :direction "column" :justify "space-between" @@ -32,18 +36,18 @@ :style {:height "100%" :width "100vw" :padding 32}} - [:> js/MaterialUI.Typography {:variant "display1" + [:> Typography {:variant "display1" :component "h1" :gutterBottom true :style {:text-align "left"}} "メールアドレスをもう一度入力してください"] - [:> js/MaterialUI.FormControl {:fullWidth true} - [:> js/MaterialUI.TextField {:type "email" + [:> FormControl {:fullWidth true} + [:> TextField {:type "email" :auto-complete "email" :on-change #(handle-change-email draft-email %) :placeholder "sample@example.com" :disabled isLoading}]] - [:> js/MaterialUI.Button {:disabled (or (= @draft-email "") + [:> Button {:disabled (or (= @draft-email "") isLoading) :variant "contained" :color "primary" diff --git a/front-end/src/cljs/vr_match/auth/components/email_register.cljs b/front-end/src/cljs/vr_match/auth/components/email_register.cljs index 2856e6f0..7145647c 100644 --- a/front-end/src/cljs/vr_match/auth/components/email_register.cljs +++ b/front-end/src/cljs/vr_match/auth/components/email_register.cljs @@ -1,6 +1,11 @@ (ns vr-match.auth.components.email-register (:require [reagent.core :as r] - ["material-ui"] + ["@material-ui/core/Grid" :as Grid] + ["@material-ui/core/Typography" :as Typography] + ["@material-ui/core/Icon" :as Icon] + ["@material-ui/core/Button" :as Button] + ["@material-ui/core/FormControl" :as FormControl] + ["@material-ui/core/TextField" :as TextField] [vr-match.lib.components.linear-progress :refer [linear-progress]] )) (defn- handle-change-email @@ -15,7 +20,7 @@ (defn send-email-sign-in-link-complete [email] [:div {:style {:padding 16}} - [:> js/MaterialUI.Grid {:container true + [:> Grid {:container true :spacing 32 :direction "column" :justify "space-between" @@ -23,23 +28,23 @@ :style {:height "100%" :width "100vw" :padding 32}} - [:> js/MaterialUI.Typography {:variant "display1" + [:> Typography {:variant "display1" :component "h1" :gutterBottom true :style {:text-align "left"}} "登録確認メールを送信しました"] - [:> js/MaterialUI.Grid {:container true + [:> Grid {:container true :spacing 32 :direction "column" :justify "space-between" :align-items "center" :style {:padding 32}} - [:> js/MaterialUI.Icon + [:> Icon {:font-size "inherit" :color "primary" :style {:font-size "10em"}} "mail_outline"]] - [:> js/MaterialUI.Typography {:variant "body1" + [:> Typography {:variant "body1" :component "p"} [:span {:style {:font-weight "bold"}} email] @@ -61,7 +66,7 @@ (when isLoading [linear-progress]) [:div {:style {:padding 16}} - [:> js/MaterialUI.Grid {:container true + [:> Grid {:container true :spacing 32 :direction "column" :justify "space-between" @@ -69,17 +74,17 @@ :style {:height "100%" :width "100vw" :padding 32}} - [:> js/MaterialUI.Typography {:variant "display1" + [:> Typography {:variant "display1" :component "h1" :gutterBottom true :style {:text-align "left"}} "メールアドレスを入力してください"] - [:> js/MaterialUI.FormControl {:fullWidth true} - [:> js/MaterialUI.TextField {:type "email" + [:> FormControl {:fullWidth true} + [:> TextField {:type "email" :auto-complete "email" :on-change #(handle-change-email draft-email %) :placeholder "sample@example.com"}]] - [:> js/MaterialUI.Button {:disabled (= @draft-email "") + [:> Button {:disabled (= @draft-email "") :variant "contained" :color "primary" :on-click #(handleSubmit @draft-email) diff --git a/front-end/src/cljs/vr_match/auth/components/email_register_complete.cljs b/front-end/src/cljs/vr_match/auth/components/email_register_complete.cljs index 5ef0d1ad..69bf1a77 100644 --- a/front-end/src/cljs/vr_match/auth/components/email_register_complete.cljs +++ b/front-end/src/cljs/vr_match/auth/components/email_register_complete.cljs @@ -1,7 +1,11 @@ (ns vr-match.auth.components.email-register-complete (:require [reagent.core :as r] - ["material-ui"] + ["@material-ui/core/Grid" :as Grid] + ["@material-ui/core/Typography" :as Typography] + ["@material-ui/core/Button" :as Button] + ["@material-ui/core/FormControl" :as FormControl] + ["@material-ui/core/TextField" :as TextField] [vr-match.lib.components.linear-progress :refer [linear-progress]])) (defn- handle-change-email @@ -24,7 +28,7 @@ [:<> (when isLoading [linear-progress]) [:div {:style {:padding 16}} - [:> js/MaterialUI.Grid {:container true + [:> Grid {:container true :spacing 32 :direction "column" :justify "space-between" @@ -32,18 +36,18 @@ :style {:height "100%" :width "100vw" :padding 32}} - [:> js/MaterialUI.Typography {:variant "display1" + [:> Typography {:variant "display1" :component "h1" :gutterBottom true :style {:text-align "left"}} "メールアドレスをもう一度入力してください"] - [:> js/MaterialUI.FormControl {:fullWidth true} - [:> js/MaterialUI.TextField {:type "email" + [:> FormControl {:fullWidth true} + [:> TextField {:type "email" :auto-complete "email" :on-change #(handle-change-email draft-email %) :placeholder "sample@example.com" :disabled isLoading}]] - [:> js/MaterialUI.Button {:disabled (or (= @draft-email "") + [:> Button {:disabled (or (= @draft-email "") isLoading) :variant "contained" :color "primary" diff --git a/front-end/src/cljs/vr_match/auth/components/twitter_login.cljs b/front-end/src/cljs/vr_match/auth/components/twitter_login.cljs index e7b45078..dc9559df 100644 --- a/front-end/src/cljs/vr_match/auth/components/twitter_login.cljs +++ b/front-end/src/cljs/vr_match/auth/components/twitter_login.cljs @@ -1,6 +1,8 @@ (ns vr-match.auth.components.twitter-login (:require [reagent.core :as r] - ["material-ui"] + ["@material-ui/core/Grid" :as Grid] + ["@material-ui/core/Typography" :as Typography] + ["@material-ui/core/Button" :as Button] [vr-match.lib.components.linear-progress :refer [linear-progress]])) (defn twitter-login @@ -9,22 +11,22 @@ [:<> (when isLoading [linear-progress]) [:div {:style {:padding 16}} - [:> js/MaterialUI.Grid {:container true - :spacing 32 - :direction "column" - :justify "space-between" - :align-items "flex-start" - :style {:height "100%" - :width "100vw" - :padding 32}} - [:> js/MaterialUI.Typography {:variant "display1" - :component "h1" - :gutterBottom true - :style {:text-align "left"}} + [:> Grid {:container true + :spacing 32 + :direction "column" + :justify "space-between" + :align-items "flex-start" + :style {:height "100%" + :width "100vw" + :padding 32}} + [:> Typography {:variant "display1" + :component "h1" + :gutterBottom true + :style {:text-align "left"}} "Twitter認証の準備中..."] - [:> js/MaterialUI.Button {:disabled isLoading - :variant "contained" - :color "primary" - :on-click handleClickLoginTwitter - :full-width true} + [:> Button {:disabled isLoading + :variant "contained" + :color "primary" + :on-click handleClickLoginTwitter + :full-width true} "認証ページへ手動で移動"]]]]) diff --git a/front-end/src/cljs/vr_match/auth/effects.cljs b/front-end/src/cljs/vr_match/auth/effects.cljs index 78253f8d..d5e67d9e 100644 --- a/front-end/src/cljs/vr_match/auth/effects.cljs +++ b/front-end/src/cljs/vr_match/auth/effects.cljs @@ -1,6 +1,6 @@ (ns vr-match.auth.effects - (:require [firebase.app] - [firebase.auth] + (:require ["firebase/app" :as firebase] + ["firebase/auth"] [cljs.reader :refer [read-string]] [ajax.core :refer [ajax-request json-request-format json-response-format]] [re-frame.core :as re-frame])) @@ -11,7 +11,7 @@ ::initialize-firebase (fn [{:keys [config on-success]}] (when-not @firebase-instance - (->> (js/firebase.initializeApp config) + (->> (firebase.initializeApp config) (reset! firebase-instance))) (re-frame/dispatch [on-success]))) @@ -78,13 +78,13 @@ (re-frame/reg-fx ::sign-in-with-twitter (fn [_] - (let [provider (new (.. js/firebase -auth -TwitterAuthProvider))] + (let [provider (new (.. firebase -auth -TwitterAuthProvider))] (.. @firebase-instance auth (signInWithRedirect provider))))) (re-frame/reg-fx ::link-with-twitter (fn [_] - (let [provider (new (.. js/firebase -auth -TwitterAuthProvider))] + (let [provider (new (.. firebase -auth -TwitterAuthProvider))] (.. @firebase-instance auth -currentUser (linkWithRedirect provider))))) (re-frame/reg-fx diff --git a/front-end/src/cljs/vr_match/effects.cljs b/front-end/src/cljs/vr_match/effects.cljs index f744d330..b28d1dd1 100644 --- a/front-end/src/cljs/vr_match/effects.cljs +++ b/front-end/src/cljs/vr_match/effects.cljs @@ -5,7 +5,7 @@ [re-frame.db :as db] [pushy.core :as pushy])) -(goog-define worker-resource-path "/static/worker/js/compiled/worker.js") +(goog-define worker-resource-path "/static/js/compiled/worker.js") (re-frame/reg-fx ::set-localstorage diff --git a/front-end/src/cljs/vr_match/favorite/component.cljs b/front-end/src/cljs/vr_match/favorite/component.cljs index 84dfb7f2..9a1d4a89 100644 --- a/front-end/src/cljs/vr_match/favorite/component.cljs +++ b/front-end/src/cljs/vr_match/favorite/component.cljs @@ -4,7 +4,7 @@ [vr-match.lib.component :refer [navigation-bar-layout]] [vr-match.lib.components.linear-progress :refer [linear-progress]] [vr-match.lib.components.progress-button :refer [progress-button]] - ["material-ui"] + ["@material-ui/core/List" :as List] [vr-match.lib.components.user-list-item :refer [user-list-item]])) (defn- component-did-mount @@ -27,7 +27,7 @@ [:div {:style {:padding "8px"}} (when isLoading [linear-progress]) - [:> js/MaterialUI.List + [:> List (map (fn [{:keys [id name platforms images introduction]}] ^{:key id} [:div {:style {:margin-bottom "16px"}} diff --git a/front-end/src/cljs/vr_match/favorited_from_users/component.cljs b/front-end/src/cljs/vr_match/favorited_from_users/component.cljs index e0d0bdb8..55e33f15 100644 --- a/front-end/src/cljs/vr_match/favorited_from_users/component.cljs +++ b/front-end/src/cljs/vr_match/favorited_from_users/component.cljs @@ -4,7 +4,7 @@ [vr-match.lib.component :refer [navigation-bar-layout]] [vr-match.lib.components.linear-progress :refer [linear-progress]] [vr-match.lib.components.progress-button :refer [progress-button]] - ["material-ui"] + ["@material-ui/core/List" :as List] [vr-match.lib.components.user-list-item :refer [user-list-item]])) (defn- component-did-mount @@ -27,7 +27,7 @@ [:div {:style {:padding "8px"}} (when isLoading [linear-progress]) - [:> js/MaterialUI.List + [:> List (map (fn [{:keys [id name platforms images introduction]}] ^{:key id} [:div {:style {:margin-bottom "16px"}} diff --git a/front-end/src/cljs/vr_match/lib/components/header.cljs b/front-end/src/cljs/vr_match/lib/components/header.cljs index acbe75d2..2991e641 100644 --- a/front-end/src/cljs/vr_match/lib/components/header.cljs +++ b/front-end/src/cljs/vr_match/lib/components/header.cljs @@ -52,7 +52,7 @@ :aria-label "Menu" :on-click (if isOpen handleClickClose handleOpenDrawer)} [mui/icon "menu"]] - [mui/typo-graphy {:variant "title" + [mui/typo-graphy {:variant "h6" :color "inherit" :style {:flex-grow 1}} title]]]] diff --git a/front-end/src/cljs/vr_match/lib/components/linear_progress.cljs b/front-end/src/cljs/vr_match/lib/components/linear_progress.cljs index 1e77ef9e..e9b6c59a 100644 --- a/front-end/src/cljs/vr_match/lib/components/linear_progress.cljs +++ b/front-end/src/cljs/vr_match/lib/components/linear_progress.cljs @@ -1,7 +1,7 @@ (ns vr-match.lib.components.linear-progress (:require [reagent.core :as r] - ["material-ui"] + ["@material-ui/core/LinearProgress" :as LinearProgress] [vr-match.lib.components.elevation :as elevation])) (defn linear-progress [] @@ -9,4 +9,4 @@ :position "fixed" :top 0 :z-index elevation/linear-progress}} - [:> js/MaterialUI.LinearProgress]]) + [:> LinearProgress]]) diff --git a/front-end/src/cljs/vr_match/lib/components/material_ui.cljs b/front-end/src/cljs/vr_match/lib/components/material_ui.cljs index a276bb00..74297687 100644 --- a/front-end/src/cljs/vr_match/lib/components/material_ui.cljs +++ b/front-end/src/cljs/vr_match/lib/components/material_ui.cljs @@ -2,60 +2,58 @@ (:refer-clojure :exclude [list]) (:require [reagent.core :as r] - ;; [reagent.impl.template :as rtpl] - ;; ["material-ui/styles" :refer [withStyles]] - ;; material-ui のバージョンアップによって変わったのか、 js/material_ui ではなく js/MaterialUI にモジュールが展開されるようになっていた - ["material-ui"] - ["material-ui/styles"] - ["material-ui/colors"])) + ["@material-ui/core" :as mui] + ["@material-ui/core/styles" :refer [withStyles createTheme createGenerateClassName MuiThemeProvider]] + ["@material-ui/core/colors" :as colors])) -;; material-ui -(def app-bar (r/adapt-react-class js/MaterialUI.AppBar)) -(def tool-bar (r/adapt-react-class js/MaterialUI.Toolbar)) -(def typo-graphy (r/adapt-react-class js/MaterialUI.Typography)) -(def icon-button (r/adapt-react-class js/MaterialUI.IconButton)) -(def icon (r/adapt-react-class js/MaterialUI.Icon)) -(def no-ssr (r/adapt-react-class js/MaterialUI.NoSsr)) -(def card (r/adapt-react-class js/MaterialUI.Card)) -(def card-action-area (r/adapt-react-class js/MaterialUI.CardActionArea)) -(def card-actions (r/adapt-react-class js/MaterialUI.CardActions)) -(def card-media (r/adapt-react-class js/MaterialUI.CardMedia)) -(def card-content (r/adapt-react-class js/MaterialUI.CardContent)) -(def checkbox (r/adapt-react-class js/MaterialUI.Checkbox)) -(def grid (r/adapt-react-class js/MaterialUI.Grid)) -(def button (r/adapt-react-class js/MaterialUI.Button)) -(def button-base (r/adapt-react-class js/MaterialUI.ButtonBase)) -(def switch (r/adapt-react-class js/MaterialUI.Switch)) -(def slide (r/adapt-react-class js/MaterialUI.Slide)) -(def fade (r/adapt-react-class js/MaterialUI.Fade)) -(def chip (r/adapt-react-class js/MaterialUI.Chip)) -(def divider (r/adapt-react-class js/MaterialUI.Divider)) -(def avatar (r/adapt-react-class js/MaterialUI.Avatar)) -(def dialog (r/adapt-react-class js/MaterialUI.Dialog)) -(def dialog-title (r/adapt-react-class js/MaterialUI.DialogTitle)) -(def dialog-content (r/adapt-react-class js/MaterialUI.DialogContent)) -(def dialog-content-text (r/adapt-react-class js/MaterialUI.DialogContentText)) -(def dialog-actions (r/adapt-react-class js/MaterialUI.DialogActions)) -(def drawer (r/adapt-react-class js/MaterialUI.Drawer)) -(def form-control (r/adapt-react-class js/MaterialUI.FormControl)) -(def form-control-label (r/adapt-react-class js/MaterialUI.FormControlLabel)) -(def text-field (r/adapt-react-class js/MaterialUI.TextField)) -(def list (r/adapt-react-class js/MaterialUI.List)) -(def list-item (r/adapt-react-class js/MaterialUI.ListItem)) -(def list-item-avatar (r/adapt-react-class js/MaterialUI.ListItemAvatar)) -(def list-item-text (r/adapt-react-class js/MaterialUI.ListItemText)) -(def list-item-icon (r/adapt-react-class js/MaterialUI.ListItemIcon)) -(def list-item-secondary-action (r/adapt-react-class js/MaterialUI.ListItemSecondaryAction)) -(def list-subheader (r/adapt-react-class js/MaterialUI.ListSubheader)) +;; material-ui/core +(def app-bar (r/adapt-react-class (.-AppBar mui))) +(def tool-bar (r/adapt-react-class (.-Toolbar mui))) +(def typo-graphy (r/adapt-react-class (.-Typography mui))) +(def icon-button (r/adapt-react-class (.-IconButton mui))) +(def icon (r/adapt-react-class (.-Icon mui))) +(def no-ssr (r/adapt-react-class (.-NoSsr mui))) +(def card (r/adapt-react-class (.-Card mui))) +(def card-action-area (r/adapt-react-class (.-CardActionArea mui))) +(def card-actions (r/adapt-react-class (.-CardActions mui))) +(def card-media (r/adapt-react-class (.-CardMedia mui))) +(def card-content (r/adapt-react-class (.-CardContent mui))) +(def checkbox (r/adapt-react-class (.-Checkbox mui))) +(def grid (r/adapt-react-class (.-Grid mui))) +(def button (r/adapt-react-class (.-Button mui))) +(def button-base (r/adapt-react-class (.-ButtonBase mui))) +(def switch (r/adapt-react-class (.-Switch mui))) +(def slide (r/adapt-react-class (.-Slide mui))) +(def fade (r/adapt-react-class (.-Fade mui))) +(def chip (r/adapt-react-class (.-Chip mui))) +(def divider (r/adapt-react-class (.-Divider mui))) +(def avatar (r/adapt-react-class (.-Avatar mui))) +(def dialog (r/adapt-react-class (.-Dialog mui))) +(def dialog-title (r/adapt-react-class (.-DialogTitle mui))) +(def dialog-content (r/adapt-react-class (.-DialogContent mui))) +(def dialog-content-text (r/adapt-react-class (.-DialogContentText mui))) +(def dialog-actions (r/adapt-react-class (.-DialogActions mui))) +(def drawer (r/adapt-react-class (.-Drawer mui))) +(def form-control (r/adapt-react-class (.-FormControl mui))) +(def form-control-label (r/adapt-react-class (.-FormControlLabel mui))) +(def text-field (r/adapt-react-class (.-TextField mui))) +(def list (r/adapt-react-class (.-List mui))) +(def list-item (r/adapt-react-class (.-ListItem mui))) +(def list-item-avatar (r/adapt-react-class (.-ListItemAvatar mui))) +(def list-item-text (r/adapt-react-class (.-ListItemText mui))) +(def list-item-icon (r/adapt-react-class (.-ListItemIcon mui))) +(def list-item-secondary-action (r/adapt-react-class (.-ListItemSecondaryAction mui))) +(def list-subheader (r/adapt-react-class (.-ListSubheader mui))) +(def fab (r/adapt-react-class (.-Fab mui))) ;; material-ui/styles -(def with-styles (.-withStyles js/MaterialUIStyles)) -(def create-mui-theme (.-createMuiTheme js/MaterialUIStyles)) -(def create-generate-class-name (.-createGenerateClassName js/MaterialUIStyles)) -(def MuiThemeProvider (-> (.-MuiThemeProvider js/MaterialUIStyles) r/adapt-react-class)) +(def with-styles withStyles) +(def create-theme createTheme) +(def create-generate-class-name createGenerateClassName) +(def MuiThemeProvider (r/adapt-react-class MuiThemeProvider)) ;; material-ui/colors -(def mui-color-red (.-red js/MaterialUIColors)) +(def mui-color-red (.-red colors)) (def primary-color "#ef5350") (def secondary-color mui-color-red) @@ -64,7 +62,8 @@ (def skip-color "#e0e0e0") (defn theme [] - (create-mui-theme - #js {"palette" - #js {"primary" #js {"main" primary-color} - "secondary" secondary-color}})) + (create-theme + #js {:palette + #js {:primary + #js {:main primary-color} + :secondary secondary-color}})) diff --git a/front-end/src/cljs/vr_match/lib/components/progress_button.cljs b/front-end/src/cljs/vr_match/lib/components/progress_button.cljs index afd6ea15..e55736de 100644 --- a/front-end/src/cljs/vr_match/lib/components/progress_button.cljs +++ b/front-end/src/cljs/vr_match/lib/components/progress_button.cljs @@ -1,17 +1,19 @@ (ns vr-match.lib.components.progress-button - (:require ["material-ui"])) + (:require + ["@material-ui/core/Button" :as Button] + ["@material-ui/core/CircularProgress" :as CircularProgress])) (defn progress-button [{:keys [loading?] :as props} children] [:div {:style {:position "relative"}} - [:> js/MaterialUI.Button (-> props - (dissoc :loading?) - (assoc :disabled loading?)) + [:> Button (-> props + (dissoc :loading?) + (assoc :disabled loading?)) children] (when loading? - [:> js/MaterialUI.CircularProgress {:size 24 - :style {:position "absolute" - :top "50%" - :left "50%" - :margin-top "-12" - :margin-left "-12"}}])]) + [:> CircularProgress {:size 24 + :style {:position "absolute" + :top "50%" + :left "50%" + :margin-top "-12" + :margin-left "-12"}}])]) diff --git a/front-end/src/cljs/vr_match/matching/component.cljs b/front-end/src/cljs/vr_match/matching/component.cljs index cda6e80b..d844c308 100644 --- a/front-end/src/cljs/vr_match/matching/component.cljs +++ b/front-end/src/cljs/vr_match/matching/component.cljs @@ -4,7 +4,7 @@ [vr-match.lib.component :refer [navigation-bar-layout]] [vr-match.lib.components.linear-progress :refer [linear-progress]] [vr-match.lib.components.progress-button :refer [progress-button]] - ["material-ui"] + ["@material-ui/core/List" :as List] [vr-match.lib.components.user-list-item :refer [user-list-item]])) (defn- component-did-mount @@ -26,7 +26,7 @@ [:div {:style {:padding "8px"}} (when isLoading [linear-progress]) - [:> js/MaterialUI.List + [:> List (map (fn [{:keys [id name platforms images introduction]}] ^{:key id} [:div {:style {:margin-bottom "16px"}} diff --git a/front-end/src/cljs/vr_match/mypage/components/edit_platform_dialog.cljs b/front-end/src/cljs/vr_match/mypage/components/edit_platform_dialog.cljs index a5efd87b..2a733006 100644 --- a/front-end/src/cljs/vr_match/mypage/components/edit_platform_dialog.cljs +++ b/front-end/src/cljs/vr_match/mypage/components/edit_platform_dialog.cljs @@ -4,7 +4,12 @@ [reagent.core :as r] [vr-match.lib.models.platform :as platform-model] [vr-match.mypage.components.platform-expansion-panel :as platform-expansion-panel] - ["material-ui"])) + ["@material-ui/core/Dialog" :as Dialog] + ["@material-ui/core/DialogTitle" :as DialogTitle] + ["@material-ui/core/DialogContent" :as DialogContent] + ["@material-ui/core/DialogActions" :as DialogActions] + ["@material-ui/core/Button" :as Button] + ["@material-ui/core/Icon" :as Icon])) (s/def ::platforms (s/coll-of ::platform-model/platForm)) @@ -108,12 +113,12 @@ platformOptions handleSubmit handleCancel]}] - [:> js/MaterialUI.Dialog {:open isOpen + [:> Dialog {:open isOpen :onClose handleCancel :aria-labelledby "活動場所を編集" :full-screen true} - [:> js/MaterialUI.DialogTitle "活動場所を編集"] - [:> js/MaterialUI.DialogContent + [:> DialogTitle "活動場所を編集"] + [:> DialogContent [:<> [:ul (->> @draft-platforms @@ -144,7 +149,7 @@ %)}]])) doall)] [:div {:style {:margin-top "16px"}} - [:> js/MaterialUI.Button + [:> Button {:color "primary" :variant "contained" :size "large" @@ -156,13 +161,13 @@ @draft-platforms platformOptions) not)} - [:> js/MaterialUI.Icon + [:> Icon "add"]]]]] - [:> js/MaterialUI.DialogActions - [:> js/MaterialUI.Button {:on-click (fn [] + [:> DialogActions + [:> Button {:on-click (fn [] (handleCancel) (reset! draft-platforms platforms))} "キャンセル"] - [:> js/MaterialUI.Button {:on-click #(handleSubmit @draft-platforms) + [:> Button {:on-click #(handleSubmit @draft-platforms) :color "primary"} "決定"]]])}))) diff --git a/front-end/src/cljs/vr_match/mypage/components/platform_expansion_panel.cljs b/front-end/src/cljs/vr_match/mypage/components/platform_expansion_panel.cljs index 89460b4f..954f73a3 100644 --- a/front-end/src/cljs/vr_match/mypage/components/platform_expansion_panel.cljs +++ b/front-end/src/cljs/vr_match/mypage/components/platform_expansion_panel.cljs @@ -2,7 +2,18 @@ (:require [cljs.spec.alpha :as s] [reagent.core :as r] [vr-match.lib.models.platform :as platform-model] - ["material-ui"])) + ["@material-ui/core/ExpansionPanel" :as ExpansionPanel] + ["@material-ui/core/ExpansionPanelSummary" :as ExpansionPanelSummary] + ["@material-ui/core/ExpansionPanelDetails" :as ExpansionPanelDetails] + ["@material-ui/core/ExpansionPanelActions" :as ExpansionPanelActions] + ["@material-ui/core/Typography" :as Typography] + ["@material-ui/core/Icon" :as Icon] + ["@material-ui/core/FormControl" :as FormControl] + ["@material-ui/core/InputLabel" :as InputLabel] + ["@material-ui/core/Select" :as Select] + ["@material-ui/core/MenuItem" :as MenuItem] + ["@material-ui/core/TextField" :as TextField] + ["@material-ui/core/IconButton" :as IconButton])) (s/def ::name string?) (s/def ::id number?) @@ -46,20 +57,20 @@ handleChangePlatform handleClickDelete handleChangePlatformUserId]}] - [:> js/MaterialUI.ExpansionPanel - [:> js/MaterialUI.ExpansionPanelSummary + [:> ExpansionPanel + [:> ExpansionPanelSummary {:expand-icon (r/as-element - [:> js/MaterialUI.Icon "expand_more"])} - [:> js/MaterialUI.Typography + [:> Icon "expand_more"])} + [:> Typography (-> platform :name)]] - [:> js/MaterialUI.ExpansionPanelDetails + [:> ExpansionPanelDetails [:form {:style {:width "100%"}} - [:> js/MaterialUI.FormControl + [:> FormControl {:full-width true} - [:> js/MaterialUI.InputLabel + [:> InputLabel {:html-for (str "platform-selector-" platformIdx)} "活動場所"] - [:> js/MaterialUI.Select + [:> Select {:value (-> platform :id) :onChange handleChangePlatform :full-width true @@ -68,11 +79,11 @@ (map (fn [{:keys [id name] :as option}] ^{:key id} - [:> js/MaterialUI.MenuItem + [:> MenuItem {:value id} name]) platformOptions)] - [:> js/MaterialUI.TextField + [:> TextField {:label "ID" :margin "dense" :type "text" @@ -82,8 +93,8 @@ :placeholder (platform->placeholder platform platformOptions)}]]]] - [:> js/MaterialUI.ExpansionPanelActions - [:> js/MaterialUI.IconButton + [:> ExpansionPanelActions + [:> IconButton {:on-click handleClickDelete} - [:> js/MaterialUI.Icon + [:> Icon "delete"]]]])) diff --git a/front-end/src/cljs/vr_match/setting/components/cannot_unlink_third_party_alert.cljs b/front-end/src/cljs/vr_match/setting/components/cannot_unlink_third_party_alert.cljs index 37bdd7d8..ce2eb7f8 100644 --- a/front-end/src/cljs/vr_match/setting/components/cannot_unlink_third_party_alert.cljs +++ b/front-end/src/cljs/vr_match/setting/components/cannot_unlink_third_party_alert.cljs @@ -1,19 +1,24 @@ (ns vr-match.setting.components.cannot-unlink-third-party-alert (:require [reagent.core :as r] - ["material-ui"])) + ["@material-ui/core/Dialog" :as Dialog] + ["@material-ui/core/DialogTitle" :as DialogTitle] + ["@material-ui/core/DialogContent" :as DialogContent] + ["@material-ui/core/DialogContentText" :as DialogContentText] + ["@material-ui/core/DialogActions" :as DialogActions] + ["@material-ui/core/Button" :as Button])) (defn cannot-unlink-third-party-alert [{:keys [isOpen handleClose] :as props}] (let [title "全ての認証先を解除することはできません" content "この認証を無効にしたい場合、代わりに他の認証を有効にしてください"] - [:> js/MaterialUI.Dialog {:open isOpen + [:> Dialog {:open isOpen :onClose handleClose :aria-labelledby title :aria-describedby content} - [:> js/MaterialUI.DialogTitle title] - [:> js/MaterialUI.DialogContent - [:> js/MaterialUI.DialogContentText content]] - [:> js/MaterialUI.DialogActions - [:> js/MaterialUI.Button {:onClick handleClose} + [:> DialogTitle title] + [:> DialogContent + [:> DialogContentText content]] + [:> DialogActions + [:> Button {:onClick handleClose} "閉じる"]]])) diff --git a/front-end/src/cljs/vr_match/setting/components/unlink_confirmation_alert.cljs b/front-end/src/cljs/vr_match/setting/components/unlink_confirmation_alert.cljs index 8bfb584a..fcf087ae 100644 --- a/front-end/src/cljs/vr_match/setting/components/unlink_confirmation_alert.cljs +++ b/front-end/src/cljs/vr_match/setting/components/unlink_confirmation_alert.cljs @@ -1,6 +1,9 @@ (ns vr-match.setting.components.unlink-confirmation-alert (:require [reagent.core :as r] - ["material-ui"])) + ["@material-ui/core/Dialog" :as Dialog] + ["@material-ui/core/DialogTitle" :as DialogTitle] + ["@material-ui/core/DialogActions" :as DialogActions] + ["@material-ui/core/Button" :as Button])) (defn unlink-confirmation-alert [{:keys [isOpen @@ -9,13 +12,13 @@ handleSubmit] :as props}] (let [title (get {"twitter.com" "Twitterとの連携を解除しますか?" "password" "登録されたEmailアドレスを削除し、認証を無効化しますか?"} thirdPartyId)] - [:> js/MaterialUI.Dialog {:open isOpen + [:> Dialog {:open isOpen :onClose handleClose :aria-labelledby title} - [:> js/MaterialUI.DialogTitle title] - [:> js/MaterialUI.DialogActions - [:> js/MaterialUI.Button {:onClick handleClose} + [:> DialogTitle title] + [:> DialogActions + [:> Button {:onClick handleClose} "キャンセル"] - [:> js/MaterialUI.Button {:onClick handleSubmit + [:> Button {:onClick handleSubmit :color "primary"} "OK"]]])) diff --git a/front-end/src/cljs-worker/vr_match/worker.cljs b/front-end/src/cljs/vr_match/worker.cljs similarity index 81% rename from front-end/src/cljs-worker/vr_match/worker.cljs rename to front-end/src/cljs/vr_match/worker.cljs index 81d18e43..fb8a521d 100644 --- a/front-end/src/cljs-worker/vr_match/worker.cljs +++ b/front-end/src/cljs/vr_match/worker.cljs @@ -7,7 +7,7 @@ [payload] (some-> payload pr-str - js/postMessage)) + (.postMessage js/self))) (defn- event->payload [event] @@ -27,7 +27,7 @@ (response {:handler (-> payload :error-handler) :response (-> res second :response)})) -(defn on-message +(defn handle-message [e] (let [payload (event->payload e) handler #(handle-response payload %)] @@ -37,4 +37,7 @@ (assoc :handler handler) ajax-request))) -(set! (.-onmessage js/self) on-message) +;; shadow-cljsのWeb Worker初期化関数 +(defn init [] + (js/console.log "Web Worker initialized") + (.addEventListener js/self "message" handle-message)) \ No newline at end of file diff --git a/front-end/workbox-config.js b/front-end/workbox-config.js index 5c6b62d7..efbacedc 100644 --- a/front-end/workbox-config.js +++ b/front-end/workbox-config.js @@ -1,12 +1,12 @@ module.exports = { - "globDirectory": "resources/public/prod", + "globDirectory": "resources/public", "globPatterns": [ "js/compiled/*.js" ], "modifyUrlPrefix": { "js/compiled": "/static/js/compiled", }, - "swDest": "resources/public/prod/sw.js", + "swDest": "resources/public/sw.js", "runtimeCaching": [ { "urlPattern": /\//,