mandate 0.4.0.beta.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b09d224e7ec0f4d9b2f7c3b4e15a87a2f28afb4447391172b8cb7c400d9d3a1f
4
- data.tar.gz: bf5866603824cb3ee5702476c04759bee58a263606265642dacd92f7b89f5abe
3
+ metadata.gz: 1c40c3c78438f78715fd0ada9e47b9e9e3b9c9245d43bf29624d486b568852ab
4
+ data.tar.gz: 8954343effdf23246d4d6359c9792ea12720a1573a41ff35fec8ff3a21dea564
5
5
  SHA512:
6
- metadata.gz: f71376313ee4ebe4409a16a1b2bfe394a6b7c847e6ca3c93e633614f36adc8a7845cf8a0191365e03da77c65e3a7c413e93e771d5e811d1ef4b6c3e0657db866
7
- data.tar.gz: c1f28ac5099779f02b1d57712d9dabd27df43be73ba1bd7032ff1d2d1098683f3170da39abf1ea07030f54948f77dae914958880cacc8cd508fb91c6f6a05a1d
6
+ metadata.gz: 63abfab520970461986313ecf404becb3e3689ef62ddc57ffd1d90c4b91440ec211c1335744c1a700ba6602fab5303eca2109b8bd8e7c1c04bd2b82a26ff5fac
7
+ data.tar.gz: fde32f5e6816c618ad6e88bfa1114729519a1eae8a24fe0462a4a7741951c43bcbe05aa86a93a57c7e911471ac4454f4bba15ee18a6526825a6f3b4e0ddb5cf8
@@ -0,0 +1,28 @@
1
+ name: Rubocop
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ rubocop:
11
+ runs-on: ubuntu-20.04
12
+
13
+ steps:
14
+ - uses: actions/checkout@v2
15
+
16
+ - name: Set up Ruby
17
+ uses: ruby/setup-ruby@4726835508d9debb3220096c92d7bf6388485faa
18
+ with:
19
+ ruby-version: '3.1.0'
20
+
21
+ - name: Install gems
22
+ run: |
23
+ gem install rubocop
24
+ gem install rubocop-minitest
25
+ gem install rubocop-performance
26
+
27
+ - name: Run Rubocop
28
+ run: rubocop --except Metrics
@@ -0,0 +1,30 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ test:
11
+ name: Ruby ${{ matrix.ruby-version }} - ${{ matrix.os }} - ${{ github.event_name }}
12
+ runs-on: ${{ matrix.os }}
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ os:
17
+ - ubuntu-20.04
18
+ ruby-version: ['3.0', '3.1']
19
+
20
+ steps:
21
+ - uses: actions/checkout@v2
22
+
23
+ - name: Set up Ruby
24
+ uses: ruby/setup-ruby@4726835508d9debb3220096c92d7bf6388485faa
25
+ with:
26
+ ruby-version: ${{ matrix.ruby-version }}
27
+ bundler-cache: true
28
+
29
+ - name: Test
30
+ run: bundle exec rake test
data/.gitignore CHANGED
@@ -7,5 +7,6 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /node_modules/
10
11
 
11
12
  *.gem
data/.rubocop.yml ADDED
@@ -0,0 +1,90 @@
1
+ require:
2
+ - rubocop-minitest
3
+ - rubocop-performance
4
+
5
+ AllCops:
6
+ TargetRubyVersion: 3.0.0
7
+ NewCops: disable
8
+ Exclude:
9
+ - "bin/**/*"
10
+
11
+ Bundler/OrderedGems:
12
+ Enabled: false
13
+
14
+ Layout/DotPosition:
15
+ EnforcedStyle: trailing
16
+
17
+ Layout/EndOfLine:
18
+ EnforcedStyle: lf
19
+
20
+ Layout/MultilineMethodCallIndentation:
21
+ EnforcedStyle: indented
22
+
23
+ Layout/EmptyLinesAroundAccessModifier:
24
+ EnforcedStyle: only_before
25
+
26
+ #Layout/LineLength:
27
+ #Exclude:
28
+
29
+ Lint/SuppressedException:
30
+ Exclude:
31
+ - "test/**/*"
32
+ - "lib/tooling_invoker/runc_wrapper.rb"
33
+ - "lib/tooling_invoker/external_command.rb"
34
+
35
+ Metrics/BlockLength:
36
+ Exclude:
37
+ - "test/**/*"
38
+
39
+ Metrics/MethodLength:
40
+ # We probably want to bring this down but let's start here for now
41
+ Max: 20
42
+ Exclude:
43
+ - "test/**/*"
44
+
45
+ Naming/PredicateName:
46
+ Enabled: false
47
+
48
+ Style/StringLiterals:
49
+ Enabled: false
50
+
51
+ Style/FrozenStringLiteralComment:
52
+ Enabled: false
53
+
54
+ Style/Documentation:
55
+ Enabled: false
56
+
57
+ Style/DocumentationMethod:
58
+ Enabled: false
59
+
60
+ Style/GuardClause:
61
+ Exclude:
62
+ - lib/exercism_config/environment.rb
63
+
64
+ Style/IfUnlessModifier:
65
+ Exclude:
66
+ - "lib/exercism_config/setup_dynamodb_client.rb"
67
+
68
+ Style/NumericPredicate:
69
+ Enabled: false
70
+
71
+ Style/RedundantSelf:
72
+ Enabled: false
73
+
74
+ Style/ZeroLengthPredicate:
75
+ Enabled: false
76
+
77
+ # I don't mind this being enabled if
78
+ # someone fixes all the fails.
79
+ Style/ClassAndModuleChildren:
80
+ Enabled: false
81
+
82
+ Naming/FileName:
83
+ Exclude:
84
+ - "lib/exercism-config.rb"
85
+
86
+ Naming/VariableNumber:
87
+ EnforcedStyle: snake_case
88
+
89
+ Style/LambdaCall:
90
+ EnforcedStyle: braces
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.1.0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
+ # 2.0.0 / 2022-04-19
2
+
3
+ - [FEATURE] Simplify code base for Ruby 3 (thanks to @erikschierboom)
4
+
1
5
  # 0.3.0 / 2019-09-06
2
- * [FEATURE] Add success/failure callbacks
6
+
7
+ - [FEATURE] Add success/failure callbacks
3
8
 
4
9
  # 0.2.0 / 2018-08-11
5
- * [FEATURE] Add initialize_with
10
+
11
+ - [FEATURE] Add initialize_with
data/Gemfile CHANGED
@@ -1,6 +1,11 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in mandate.gemspec
6
6
  gemspec
7
+
8
+ gem 'gem-release'
9
+ gem 'rubocop'
10
+ gem 'rubocop-minitest'
11
+ gem 'rubocop-performance'
data/README.md CHANGED
@@ -1,8 +1,11 @@
1
1
  # Mandate
2
- [![Build Status](https://travis-ci.org/ThalamusAI/mandate.svg?branch=master)](https://travis-ci.org/ThalamusAI/mandate)
2
+
3
+ ![Tests](https://github.com/iHiD/mandate/workflows/Tests/badge.svg)
3
4
 
4
5
  A simple command-pattern helper gem for Ruby.
5
6
 
7
+ **Note: As of 2.0.0, Mandate only supports Ruby 3.x. For Ruby 2.x, please use the 1.0.0 release.**
8
+
6
9
  ## Installation
7
10
 
8
11
  Add this line to your application's Gemfile:
data/Rakefile CHANGED
@@ -7,4 +7,4 @@ Rake::TestTask.new(:test) do |t|
7
7
  t.test_files = FileList["test/**/*_test.rb"]
8
8
  end
9
9
 
10
- task :default => :test
10
+ task default: :test
data/bin/release ADDED
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+
3
+ gem bump -c -v minor -t -p -r
data/bin/rubocop-quick ADDED
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+
3
+ git diff --name-status --staged | grep '^[MA]' | grep -o '\s\+.*rb' | xargs bundle exec rubocop --except Metrics --auto-correct --format quiet --force-exclusion Gemfile.lock && \
4
+ git diff --name-status --staged | grep '^[MA]' | grep -o '\s\+.*rb' | xargs git add
@@ -6,19 +6,10 @@ module Mandate
6
6
  # which internally calls:
7
7
  # Foobar.new(some, args).call()
8
8
  class << base
9
- def call(*args)
10
- # If the last argument is a hash and the last param is a keyword params (signified by
11
- # its type being :key, the we should pass the hash in in using the **kwords syntax.
12
- # This fixes a deprecation issue in Ruby 2.7.
13
- if args.last.is_a?(Hash) &&
14
- :key == instance_method(:initialize).parameters.last&.first
15
- new(*args[0..-2], **args[-1]).call
16
- else
17
- new(*args).call
18
- end
9
+ def call(...)
10
+ new(...).()
19
11
  end
20
12
  end
21
13
  end
22
14
  end
23
15
  end
24
-
@@ -23,15 +23,15 @@ module Mandate
23
23
  def succeeded?
24
24
  !!succeeded
25
25
  end
26
- alias_method :success?, :succeeded?
26
+ alias success? succeeded?
27
27
 
28
- def on_success(&block)
29
- block.call(result) if succeeded?
28
+ def on_success
29
+ yield(result) if succeeded?
30
30
  self
31
31
  end
32
32
 
33
- def on_failure(&block)
34
- block.call(errors) unless succeeded?
33
+ def on_failure
34
+ yield(errors) unless succeeded?
35
35
  self
36
36
  end
37
37
 
@@ -66,6 +66,7 @@ module Mandate
66
66
  # If call fails, succeeded! will never get called
67
67
  @__mandate_results.succeeded!(call)
68
68
  rescue AbortError
69
+ # Used for flow handling
69
70
  end
70
71
 
71
72
  @__mandate_results
@@ -6,39 +6,39 @@ module Mandate
6
6
  if kwattrs.empty?
7
7
  define_method :initialize do |*args|
8
8
  unless args.length == attrs.length
9
- raise ArgumentError.new("wrong number of arguments (given #{args.length}, expected #{attrs.length})")
9
+ raise ArgumentError, "wrong number of arguments (given #{args.length}, expected #{attrs.length})"
10
10
  end
11
11
 
12
- attrs.zip(args).each do |attr,arg|
12
+ attrs.zip(args).each do |attr, arg|
13
13
  instance_variable_set("@#{attr}", arg)
14
14
  end
15
15
  end
16
16
  else
17
17
  define_method :initialize do |*args, **kwargs|
18
18
  unless args.length == attrs.length
19
- raise ArgumentError.new("wrong number of arguments (given #{args.length}, expected #{attrs.length})")
19
+ raise ArgumentError, "wrong number of arguments (given #{args.length}, expected #{attrs.length})"
20
20
  end
21
21
 
22
- attrs.zip(args).each do |attr,arg|
22
+ attrs.zip(args).each do |attr, arg|
23
23
  instance_variable_set("@#{attr}", arg)
24
24
  end
25
25
 
26
- kwargs.each do |name,value|
27
- if kwattrs.keys.include?(name)
28
- instance_variable_set("@#{name}", value)
29
- else
30
- raise ArgumentError.new("unknown keyword: #{name}")
31
- end
26
+ kwargs.each do |name, value|
27
+ raise ArgumentError, "unknown keyword: #{name}" unless kwattrs.key?(name)
28
+
29
+ instance_variable_set("@#{name}", value)
32
30
  end
33
31
  end
34
32
  end
35
33
 
36
34
  attrs.each do |attr|
37
- define_method attr do instance_variable_get("@#{attr}") end
35
+ define_method attr do
36
+ instance_variable_get("@#{attr}")
37
+ end
38
38
  private attr
39
39
  end
40
40
 
41
- kwattrs.each do |attr,default|
41
+ kwattrs.each do |attr, default|
42
42
  define_method attr do
43
43
  if instance_variable_defined?("@#{attr}")
44
44
  instance_variable_get("@#{attr}")
@@ -1,6 +1,5 @@
1
1
  module Mandate
2
2
  module Memoize
3
-
4
3
  # This method is called on the line before a
5
4
  # define statement. It puts mandate into memoizing mode
6
5
  def memoize
@@ -9,15 +8,15 @@ module Mandate
9
8
 
10
9
  # Intercept a method being added.
11
10
  # Create the method as normal, then if we are in
12
- # memoize mode, call out to the memozie function and
13
- # reset out of memozing mode.
11
+ # memoize mode, call out to the memoize function and
12
+ # reset out of memoizing mode.
14
13
  def method_added(method_name)
15
14
  super
16
15
 
17
- if instance_variable_defined?("@__mandate_memoizing") && @__mandate_memoizing
18
- __mandate_memoize(method_name)
19
- @__mandate_memoizing = false
20
- end
16
+ return unless instance_variable_defined?("@__mandate_memoizing") && @__mandate_memoizing
17
+
18
+ __mandate_memoize(method_name)
19
+ @__mandate_memoizing = false
21
20
  end
22
21
 
23
22
  # Create an anonymous module that defines a method
@@ -29,6 +28,15 @@ module Mandate
29
28
  # We then prepend this module so that its method
30
29
  # comes first in the method-lookup chain.
31
30
  def __mandate_memoize(method_name)
31
+ # Capture the access level of the method outside the module
32
+ # then set the method inside the module to have the same
33
+ # access later.
34
+ if private_instance_methods.include?(method_name)
35
+ access_modifier = :private
36
+ elsif protected_instance_methods.include?(method_name)
37
+ access_modifier = :protected
38
+ end
39
+
32
40
  memoizer = Module.new do
33
41
  define_method method_name do
34
42
  @__mandate_memoized_results ||= {}
@@ -39,9 +47,10 @@ module Mandate
39
47
  @__mandate_memoized_results[method_name] = super()
40
48
  end
41
49
  end
50
+
51
+ send(access_modifier, method_name) if access_modifier
42
52
  end
43
53
  prepend memoizer
44
54
  end
45
55
  end
46
56
  end
47
-
@@ -1,3 +1,3 @@
1
1
  module Mandate
2
- VERSION = "0.4.0.beta.1"
2
+ VERSION = "2.0.0".freeze
3
3
  end
data/mandate.gemspec CHANGED
@@ -1,17 +1,17 @@
1
- # coding: utf-8
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require "mandate/version"
5
4
 
6
5
  Gem::Specification.new do |spec|
6
+ spec.required_ruby_version = '>= 3.0.0'
7
7
  spec.name = "mandate"
8
8
  spec.version = Mandate::VERSION
9
9
  spec.authors = ["Jeremy Walker"]
10
10
  spec.email = ["jez.walker@gmail.com"]
11
- spec.licenses = ['MIT']
11
+ spec.licenses = ['MIT']
12
12
 
13
- spec.summary = %q{A simple command-pattern helper gem for Ruby}
14
- spec.description = %q{This Ruby Gem adds functionality for the command pattern in Ruby, and for memoization.}
13
+ spec.summary = 'A simple command-pattern helper gem for Ruby'
14
+ spec.description = 'This Ruby Gem adds functionality for the command pattern in Ruby, and for memoization.'
15
15
  spec.homepage = "https://github.com/iHiD/mandate"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -22,6 +22,6 @@ Gem::Specification.new do |spec|
22
22
  spec.require_paths = ["lib"]
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 2.1"
25
- spec.add_development_dependency "rake", "~> 12.3"
26
25
  spec.add_development_dependency "minitest", "~> 5.0"
26
+ spec.add_development_dependency "rake", "~> 12.3"
27
27
  end
data/package.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "devDependencies": {
3
+ "husky": "^4.2.5",
4
+ "pretty-quick": "^2.0.1",
5
+ "prettier": "^2.0.5"
6
+ },
7
+ "husky": {
8
+ "hooks": {
9
+ "pre-commit": "pretty-quick --staged && ./bin/rubocop-quick"
10
+ }
11
+ }
12
+ }
data/yarn.lock ADDED
@@ -0,0 +1,555 @@
1
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+ # yarn lockfile v1
3
+
4
+
5
+ "@babel/code-frame@^7.0.0":
6
+ version "7.12.13"
7
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"
8
+ integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==
9
+ dependencies:
10
+ "@babel/highlight" "^7.12.13"
11
+
12
+ "@babel/helper-validator-identifier@^7.12.11":
13
+ version "7.12.11"
14
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
15
+ integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
16
+
17
+ "@babel/highlight@^7.12.13":
18
+ version "7.12.13"
19
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c"
20
+ integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==
21
+ dependencies:
22
+ "@babel/helper-validator-identifier" "^7.12.11"
23
+ chalk "^2.0.0"
24
+ js-tokens "^4.0.0"
25
+
26
+ "@types/minimatch@^3.0.3":
27
+ version "3.0.3"
28
+ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
29
+ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
30
+
31
+ "@types/parse-json@^4.0.0":
32
+ version "4.0.0"
33
+ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
34
+ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
35
+
36
+ ansi-styles@^3.2.1:
37
+ version "3.2.1"
38
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
39
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
40
+ dependencies:
41
+ color-convert "^1.9.0"
42
+
43
+ ansi-styles@^4.1.0:
44
+ version "4.3.0"
45
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
46
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
47
+ dependencies:
48
+ color-convert "^2.0.1"
49
+
50
+ array-differ@^3.0.0:
51
+ version "3.0.0"
52
+ resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b"
53
+ integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==
54
+
55
+ array-union@^2.1.0:
56
+ version "2.1.0"
57
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
58
+ integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
59
+
60
+ arrify@^2.0.1:
61
+ version "2.0.1"
62
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
63
+ integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
64
+
65
+ balanced-match@^1.0.0:
66
+ version "1.0.0"
67
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
68
+ integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
69
+
70
+ brace-expansion@^1.1.7:
71
+ version "1.1.11"
72
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
73
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
74
+ dependencies:
75
+ balanced-match "^1.0.0"
76
+ concat-map "0.0.1"
77
+
78
+ callsites@^3.0.0:
79
+ version "3.1.0"
80
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
81
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
82
+
83
+ chalk@^2.0.0, chalk@^2.4.2:
84
+ version "2.4.2"
85
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
86
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
87
+ dependencies:
88
+ ansi-styles "^3.2.1"
89
+ escape-string-regexp "^1.0.5"
90
+ supports-color "^5.3.0"
91
+
92
+ chalk@^4.0.0:
93
+ version "4.1.0"
94
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
95
+ integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
96
+ dependencies:
97
+ ansi-styles "^4.1.0"
98
+ supports-color "^7.1.0"
99
+
100
+ ci-info@^2.0.0:
101
+ version "2.0.0"
102
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
103
+ integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
104
+
105
+ color-convert@^1.9.0:
106
+ version "1.9.3"
107
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
108
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
109
+ dependencies:
110
+ color-name "1.1.3"
111
+
112
+ color-convert@^2.0.1:
113
+ version "2.0.1"
114
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
115
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
116
+ dependencies:
117
+ color-name "~1.1.4"
118
+
119
+ color-name@1.1.3:
120
+ version "1.1.3"
121
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
122
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
123
+
124
+ color-name@~1.1.4:
125
+ version "1.1.4"
126
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
127
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
128
+
129
+ compare-versions@^3.6.0:
130
+ version "3.6.0"
131
+ resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62"
132
+ integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==
133
+
134
+ concat-map@0.0.1:
135
+ version "0.0.1"
136
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
137
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
138
+
139
+ cosmiconfig@^7.0.0:
140
+ version "7.0.0"
141
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3"
142
+ integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==
143
+ dependencies:
144
+ "@types/parse-json" "^4.0.0"
145
+ import-fresh "^3.2.1"
146
+ parse-json "^5.0.0"
147
+ path-type "^4.0.0"
148
+ yaml "^1.10.0"
149
+
150
+ cross-spawn@^7.0.0:
151
+ version "7.0.3"
152
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
153
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
154
+ dependencies:
155
+ path-key "^3.1.0"
156
+ shebang-command "^2.0.0"
157
+ which "^2.0.1"
158
+
159
+ end-of-stream@^1.1.0:
160
+ version "1.4.4"
161
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
162
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
163
+ dependencies:
164
+ once "^1.4.0"
165
+
166
+ error-ex@^1.3.1:
167
+ version "1.3.2"
168
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
169
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
170
+ dependencies:
171
+ is-arrayish "^0.2.1"
172
+
173
+ escape-string-regexp@^1.0.5:
174
+ version "1.0.5"
175
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
176
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
177
+
178
+ execa@^2.1.0:
179
+ version "2.1.0"
180
+ resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99"
181
+ integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==
182
+ dependencies:
183
+ cross-spawn "^7.0.0"
184
+ get-stream "^5.0.0"
185
+ is-stream "^2.0.0"
186
+ merge-stream "^2.0.0"
187
+ npm-run-path "^3.0.0"
188
+ onetime "^5.1.0"
189
+ p-finally "^2.0.0"
190
+ signal-exit "^3.0.2"
191
+ strip-final-newline "^2.0.0"
192
+
193
+ find-up@^4.1.0:
194
+ version "4.1.0"
195
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
196
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
197
+ dependencies:
198
+ locate-path "^5.0.0"
199
+ path-exists "^4.0.0"
200
+
201
+ find-up@^5.0.0:
202
+ version "5.0.0"
203
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
204
+ integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
205
+ dependencies:
206
+ locate-path "^6.0.0"
207
+ path-exists "^4.0.0"
208
+
209
+ find-versions@^4.0.0:
210
+ version "4.0.0"
211
+ resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965"
212
+ integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==
213
+ dependencies:
214
+ semver-regex "^3.1.2"
215
+
216
+ get-stream@^5.0.0:
217
+ version "5.2.0"
218
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
219
+ integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
220
+ dependencies:
221
+ pump "^3.0.0"
222
+
223
+ has-flag@^3.0.0:
224
+ version "3.0.0"
225
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
226
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
227
+
228
+ has-flag@^4.0.0:
229
+ version "4.0.0"
230
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
231
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
232
+
233
+ husky@^4.2.5:
234
+ version "4.3.8"
235
+ resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d"
236
+ integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==
237
+ dependencies:
238
+ chalk "^4.0.0"
239
+ ci-info "^2.0.0"
240
+ compare-versions "^3.6.0"
241
+ cosmiconfig "^7.0.0"
242
+ find-versions "^4.0.0"
243
+ opencollective-postinstall "^2.0.2"
244
+ pkg-dir "^5.0.0"
245
+ please-upgrade-node "^3.2.0"
246
+ slash "^3.0.0"
247
+ which-pm-runs "^1.0.0"
248
+
249
+ ignore@^5.1.4:
250
+ version "5.1.8"
251
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
252
+ integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
253
+
254
+ import-fresh@^3.2.1:
255
+ version "3.3.0"
256
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
257
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
258
+ dependencies:
259
+ parent-module "^1.0.0"
260
+ resolve-from "^4.0.0"
261
+
262
+ is-arrayish@^0.2.1:
263
+ version "0.2.1"
264
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
265
+ integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
266
+
267
+ is-stream@^2.0.0:
268
+ version "2.0.0"
269
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
270
+ integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
271
+
272
+ isexe@^2.0.0:
273
+ version "2.0.0"
274
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
275
+ integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
276
+
277
+ js-tokens@^4.0.0:
278
+ version "4.0.0"
279
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
280
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
281
+
282
+ json-parse-even-better-errors@^2.3.0:
283
+ version "2.3.1"
284
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
285
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
286
+
287
+ lines-and-columns@^1.1.6:
288
+ version "1.1.6"
289
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
290
+ integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
291
+
292
+ locate-path@^5.0.0:
293
+ version "5.0.0"
294
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
295
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
296
+ dependencies:
297
+ p-locate "^4.1.0"
298
+
299
+ locate-path@^6.0.0:
300
+ version "6.0.0"
301
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
302
+ integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
303
+ dependencies:
304
+ p-locate "^5.0.0"
305
+
306
+ merge-stream@^2.0.0:
307
+ version "2.0.0"
308
+ resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
309
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
310
+
311
+ mimic-fn@^2.1.0:
312
+ version "2.1.0"
313
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
314
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
315
+
316
+ minimatch@^3.0.4:
317
+ version "3.0.4"
318
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
319
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
320
+ dependencies:
321
+ brace-expansion "^1.1.7"
322
+
323
+ mri@^1.1.4:
324
+ version "1.1.6"
325
+ resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.6.tgz#49952e1044db21dbf90f6cd92bc9c9a777d415a6"
326
+ integrity sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==
327
+
328
+ multimatch@^4.0.0:
329
+ version "4.0.0"
330
+ resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3"
331
+ integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==
332
+ dependencies:
333
+ "@types/minimatch" "^3.0.3"
334
+ array-differ "^3.0.0"
335
+ array-union "^2.1.0"
336
+ arrify "^2.0.1"
337
+ minimatch "^3.0.4"
338
+
339
+ npm-run-path@^3.0.0:
340
+ version "3.1.0"
341
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5"
342
+ integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==
343
+ dependencies:
344
+ path-key "^3.0.0"
345
+
346
+ once@^1.3.1, once@^1.4.0:
347
+ version "1.4.0"
348
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
349
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
350
+ dependencies:
351
+ wrappy "1"
352
+
353
+ onetime@^5.1.0:
354
+ version "5.1.2"
355
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
356
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
357
+ dependencies:
358
+ mimic-fn "^2.1.0"
359
+
360
+ opencollective-postinstall@^2.0.2:
361
+ version "2.0.3"
362
+ resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
363
+ integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
364
+
365
+ p-finally@^2.0.0:
366
+ version "2.0.1"
367
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561"
368
+ integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==
369
+
370
+ p-limit@^2.2.0:
371
+ version "2.3.0"
372
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
373
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
374
+ dependencies:
375
+ p-try "^2.0.0"
376
+
377
+ p-limit@^3.0.2:
378
+ version "3.1.0"
379
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
380
+ integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
381
+ dependencies:
382
+ yocto-queue "^0.1.0"
383
+
384
+ p-locate@^4.1.0:
385
+ version "4.1.0"
386
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
387
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
388
+ dependencies:
389
+ p-limit "^2.2.0"
390
+
391
+ p-locate@^5.0.0:
392
+ version "5.0.0"
393
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
394
+ integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
395
+ dependencies:
396
+ p-limit "^3.0.2"
397
+
398
+ p-try@^2.0.0:
399
+ version "2.2.0"
400
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
401
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
402
+
403
+ parent-module@^1.0.0:
404
+ version "1.0.1"
405
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
406
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
407
+ dependencies:
408
+ callsites "^3.0.0"
409
+
410
+ parse-json@^5.0.0:
411
+ version "5.2.0"
412
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
413
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
414
+ dependencies:
415
+ "@babel/code-frame" "^7.0.0"
416
+ error-ex "^1.3.1"
417
+ json-parse-even-better-errors "^2.3.0"
418
+ lines-and-columns "^1.1.6"
419
+
420
+ path-exists@^4.0.0:
421
+ version "4.0.0"
422
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
423
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
424
+
425
+ path-key@^3.0.0, path-key@^3.1.0:
426
+ version "3.1.1"
427
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
428
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
429
+
430
+ path-type@^4.0.0:
431
+ version "4.0.0"
432
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
433
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
434
+
435
+ pkg-dir@^5.0.0:
436
+ version "5.0.0"
437
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760"
438
+ integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==
439
+ dependencies:
440
+ find-up "^5.0.0"
441
+
442
+ please-upgrade-node@^3.2.0:
443
+ version "3.2.0"
444
+ resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
445
+ integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
446
+ dependencies:
447
+ semver-compare "^1.0.0"
448
+
449
+ prettier@^2.0.5:
450
+ version "2.2.1"
451
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
452
+ integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
453
+
454
+ pretty-quick@^2.0.1:
455
+ version "2.0.2"
456
+ resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-2.0.2.tgz#4e44d6489ed513ef111bee501f63688d854584e6"
457
+ integrity sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A==
458
+ dependencies:
459
+ chalk "^2.4.2"
460
+ execa "^2.1.0"
461
+ find-up "^4.1.0"
462
+ ignore "^5.1.4"
463
+ mri "^1.1.4"
464
+ multimatch "^4.0.0"
465
+
466
+ pump@^3.0.0:
467
+ version "3.0.0"
468
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
469
+ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
470
+ dependencies:
471
+ end-of-stream "^1.1.0"
472
+ once "^1.3.1"
473
+
474
+ resolve-from@^4.0.0:
475
+ version "4.0.0"
476
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
477
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
478
+
479
+ semver-compare@^1.0.0:
480
+ version "1.0.0"
481
+ resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
482
+ integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
483
+
484
+ semver-regex@^3.1.2:
485
+ version "3.1.2"
486
+ resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807"
487
+ integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==
488
+
489
+ shebang-command@^2.0.0:
490
+ version "2.0.0"
491
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
492
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
493
+ dependencies:
494
+ shebang-regex "^3.0.0"
495
+
496
+ shebang-regex@^3.0.0:
497
+ version "3.0.0"
498
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
499
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
500
+
501
+ signal-exit@^3.0.2:
502
+ version "3.0.3"
503
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
504
+ integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
505
+
506
+ slash@^3.0.0:
507
+ version "3.0.0"
508
+ resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
509
+ integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
510
+
511
+ strip-final-newline@^2.0.0:
512
+ version "2.0.0"
513
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
514
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
515
+
516
+ supports-color@^5.3.0:
517
+ version "5.5.0"
518
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
519
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
520
+ dependencies:
521
+ has-flag "^3.0.0"
522
+
523
+ supports-color@^7.1.0:
524
+ version "7.2.0"
525
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
526
+ integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
527
+ dependencies:
528
+ has-flag "^4.0.0"
529
+
530
+ which-pm-runs@^1.0.0:
531
+ version "1.0.0"
532
+ resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
533
+ integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
534
+
535
+ which@^2.0.1:
536
+ version "2.0.2"
537
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
538
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
539
+ dependencies:
540
+ isexe "^2.0.0"
541
+
542
+ wrappy@1:
543
+ version "1.0.2"
544
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
545
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
546
+
547
+ yaml@^1.10.0:
548
+ version "1.10.0"
549
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
550
+ integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==
551
+
552
+ yocto-queue@^0.1.0:
553
+ version "0.1.0"
554
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
555
+ integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mandate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0.beta.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Walker
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-29 00:00:00.000000000 Z
11
+ date: 2022-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -25,33 +25,33 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.1'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: minitest
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '12.3'
33
+ version: '5.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '12.3'
40
+ version: '5.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: minitest
42
+ name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '5.0'
47
+ version: '12.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '5.0'
54
+ version: '12.3'
55
55
  description: This Ruby Gem adds functionality for the command pattern in Ruby, and
56
56
  for memoization.
57
57
  email:
@@ -60,14 +60,19 @@ executables: []
60
60
  extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
63
+ - ".github/workflows/rubocop.yml"
64
+ - ".github/workflows/tests.yml"
63
65
  - ".gitignore"
64
- - ".travis.yml"
66
+ - ".rubocop.yml"
67
+ - ".ruby-version"
65
68
  - CHANGELOG.md
66
69
  - Gemfile
67
70
  - LICENCE
68
71
  - README.md
69
72
  - Rakefile
70
73
  - bin/console
74
+ - bin/release
75
+ - bin/rubocop-quick
71
76
  - bin/setup
72
77
  - lib/mandate.rb
73
78
  - lib/mandate/call_injector.rb
@@ -76,6 +81,8 @@ files:
76
81
  - lib/mandate/memoize.rb
77
82
  - lib/mandate/version.rb
78
83
  - mandate.gemspec
84
+ - package.json
85
+ - yarn.lock
79
86
  homepage: https://github.com/iHiD/mandate
80
87
  licenses:
81
88
  - MIT
@@ -88,14 +95,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
88
95
  requirements:
89
96
  - - ">="
90
97
  - !ruby/object:Gem::Version
91
- version: '0'
98
+ version: 3.0.0
92
99
  required_rubygems_version: !ruby/object:Gem::Requirement
93
100
  requirements:
94
- - - ">"
101
+ - - ">="
95
102
  - !ruby/object:Gem::Version
96
- version: 1.3.1
103
+ version: '0'
97
104
  requirements: []
98
- rubygems_version: 3.1.2
105
+ rubygems_version: 3.3.3
99
106
  signing_key:
100
107
  specification_version: 4
101
108
  summary: A simple command-pattern helper gem for Ruby
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.3.3
5
- before_install: gem install bundler -v 1.15.4