diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index bb4e9a03a..000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Release -on: - release: - types: - - published - -jobs: - release: - name: Release - runs-on: ubuntu-latest - steps: - - - name: Set up Go 1.15 - uses: actions/setup-go@v1 - with: - go-version: 1.15 - id: go - - - name: Checkout Code - uses: actions/checkout@master - - - name: Run GoReleaser - env: - GITHUB_TOKEN: ${{ secrets.GORELEASER_GITHUB_TOKEN }} - uses: goreleaser/goreleaser-action@v1 - with: - version: latest - args: release --rm-dist diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e4ac63566..1cdfe3e5d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -11,16 +11,21 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - go-version: [1.15.x, 1.16.x] - os: [macos-latest, windows-latest, ubuntu-latest] - env: - GO111MODULE: on + go-version: + - '1.15.x' + - '1.16.x' + os: + - 'macos-latest' + - 'windows-latest' + - 'ubuntu-latest' + steps: - - name: Checkout code - uses: actions/checkout@v1 + - uses: actions/checkout@v2 + - name: Setup Go ${{ matrix.go }} + uses: actions/setup-go@v2 with: - fetch-depth: 1 - path: src/github.com/${{ github.repository }} + go-version: ${{ matrix.go-version }} + - name: Test run: | go mod tidy -v diff --git a/.goreleaser.yml b/.goreleaser.yml deleted file mode 100644 index 6e132e7bb..000000000 --- a/.goreleaser.yml +++ /dev/null @@ -1,45 +0,0 @@ -builds: - - - main: ./buffalo/main.go - env: - - CGO_ENABLED=0 - ldflags: - - -s -w -X "github.com/gobuffalo/buffalo/runtime.Version={{.Tag}}" - goos: - - darwin - - linux - - windows - goarch: - - amd64 - - 386 - - arm - - arm64 - goarm: - - 6 - - 7 -archives: - - - replacements: - '386': i386 - darwin: Darwin - linux: Linux - windows: Windows - amd64: x86_64 -checksum: - name_template: checksums.txt -snapshot: - name_template: '{{ .Tag }}-next' -changelog: - sort: asc - filters: - exclude: - - '^docs:' - - '^test:' -brews: - - - name: 'buffalo' - tap: - owner: 'gobuffalo' - name: 'homebrew-tap' - install: | - bin.install "buffalo" diff --git a/buffalo/cmd/build.go b/buffalo/cmd/build.go deleted file mode 100644 index 9f75d89f7..000000000 --- a/buffalo/cmd/build.go +++ /dev/null @@ -1,167 +0,0 @@ -package cmd - -import ( - "bytes" - "context" - "log" - "os" - "os/exec" - "strings" - "time" - - "github.com/gobuffalo/buffalo/genny/build" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/logger" - "github.com/gobuffalo/meta" - "github.com/markbates/sigtx" - "github.com/spf13/cobra" -) - -var buildOptions = struct { - *build.Options - SkipAssets bool - SkipBuildDeps bool - Debug bool - Tags string - SkipTemplateValidation bool - DryRun bool - Verbose bool - bin string -}{ - Options: &build.Options{ - BuildTime: time.Now(), - }, -} - -var xbuildCmd = &cobra.Command{ - Use: "build", - Aliases: []string{"b", "bill", "install"}, - Short: "Build the application binary, including bundling of assets (packr & webpack)", - RunE: func(cmd *cobra.Command, args []string) error { - ctx, cancel := sigtx.WithCancel(context.Background(), os.Interrupt) - defer cancel() - - pwd, err := os.Getwd() - if err != nil { - return err - } - - buildOptions.App = meta.New(pwd) - if len(buildOptions.bin) > 0 { - buildOptions.App.Bin = buildOptions.bin - } - - buildOptions.Options.WithAssets = !buildOptions.SkipAssets - buildOptions.Options.WithBuildDeps = !buildOptions.SkipBuildDeps - - run := genny.WetRunner(ctx) - if buildOptions.DryRun { - run = genny.DryRunner(ctx) - } - - if buildOptions.Verbose || buildOptions.Debug { - lg := logger.New(logger.DebugLevel) - run.Logger = lg - // plog.Logger = lg - buildOptions.BuildFlags = append(buildOptions.BuildFlags, "-v") - } - - opts := buildOptions.Options - opts.BuildVersion = buildVersion(opts.BuildTime.Format(time.RFC3339)) - - if buildOptions.Tags != "" { - opts.Tags = append(opts.Tags, buildOptions.Tags) - } - - if !buildOptions.SkipTemplateValidation { - opts.TemplateValidators = append(opts.TemplateValidators, build.PlushValidator, build.GoTemplateValidator) - } - - if cmd.CalledAs() == "install" { - opts.GoCommand = "install" - } - clean := build.Cleanup(opts) - // defer clean(run) - defer func() { - if err := clean(run); err != nil { - log.Fatal("build:clean", err) - } - }() - if err := run.WithNew(build.New(opts)); err != nil { - return err - } - return run.Run() - }, -} - -func init() { - RootCmd.AddCommand(xbuildCmd) - - xbuildCmd.Flags().StringVarP(&buildOptions.bin, "output", "o", buildOptions.Bin, "set the name of the binary") - xbuildCmd.Flags().StringVarP(&buildOptions.Tags, "tags", "t", "", "compile with specific build tags") - xbuildCmd.Flags().BoolVarP(&buildOptions.ExtractAssets, "extract-assets", "e", false, "extract the assets and put them in a distinct archive") - xbuildCmd.Flags().BoolVarP(&buildOptions.SkipAssets, "skip-assets", "k", false, "skip running webpack and building assets") - xbuildCmd.Flags().BoolVarP(&buildOptions.SkipBuildDeps, "skip-build-deps", "", false, "skip building dependencies") - xbuildCmd.Flags().BoolVarP(&buildOptions.Static, "static", "s", false, "build a static binary using --ldflags '-linkmode external -extldflags \"-static\"'") - xbuildCmd.Flags().StringVar(&buildOptions.LDFlags, "ldflags", "", "set any ldflags to be passed to the go build") - xbuildCmd.Flags().BoolVarP(&buildOptions.Verbose, "verbose", "v", false, "print debugging information") - xbuildCmd.Flags().BoolVar(&buildOptions.DryRun, "dry-run", false, "runs the build 'dry'") - xbuildCmd.Flags().BoolVar(&buildOptions.SkipTemplateValidation, "skip-template-validation", false, "skip validating templates") - xbuildCmd.Flags().BoolVar(&buildOptions.CleanAssets, "clean-assets", false, "will delete public/assets before calling webpack") - xbuildCmd.Flags().StringVarP(&buildOptions.Environment, "environment", "", "development", "set the environment for the binary") - xbuildCmd.Flags().StringVar(&buildOptions.Mod, "mod", "", "-mod flag for go build") -} - -func buildVersion(version string) string { - vcs := buildOptions.VCS - - if len(vcs) == 0 { - return version - } - - ctx := context.Background() - run := genny.WetRunner(ctx) - if buildOptions.DryRun { - run = genny.DryRunner(ctx) - } - - _, err := exec.LookPath(vcs) - if err != nil { - run.Logger.Warnf("could not find %s; defaulting to version %s", vcs, version) - return vcs - } - - var cmd *exec.Cmd - switch vcs { - case "git": - // If .git folder does not exist return default version - if stat, err := os.Stat(".git"); err != nil || !stat.IsDir() { - run.Logger.Warnf("could not find .git folder; defaulting to version %s", version) - return version - } - - cmd = exec.Command("git", "rev-parse", "--short", "HEAD") - case "bzr": - cmd = exec.Command("bzr", "revno") - default: - run.Logger.Warnf("could not find %s; defaulting to version %s", vcs, version) - return vcs - } - - out := &bytes.Buffer{} - cmd.Stdout = out - run.WithRun(func(r *genny.Runner) error { - return r.Exec(cmd) - }) - - if err := run.Run(); err != nil { - run.Logger.Error(err) - return version - } - - if out.String() != "" { - return strings.TrimSpace(out.String()) - } - - return version -} diff --git a/buffalo/cmd/destroy.go b/buffalo/cmd/destroy.go deleted file mode 100644 index 1783529ae..000000000 --- a/buffalo/cmd/destroy.go +++ /dev/null @@ -1,24 +0,0 @@ -package cmd - -import ( - "github.com/gobuffalo/buffalo/buffalo/cmd/destroy" - "github.com/spf13/cobra" -) - -// DestroyCmd destroys generated code -var DestroyCmd = &cobra.Command{ - Use: "destroy", - Short: "Destroy generated components", - Aliases: []string{"d"}, -} - -func init() { - DestroyCmd.AddCommand(destroy.ResourceCmd) - DestroyCmd.AddCommand(destroy.ActionCmd) - DestroyCmd.AddCommand(destroy.MailerCmd) - - DestroyCmd.PersistentFlags().BoolVarP(&destroy.YesToAll, "yes", "y", false, "confirms all beforehand") - - decorate("destroy", DestroyCmd) - RootCmd.AddCommand(DestroyCmd) -} diff --git a/buffalo/cmd/destroy/action.go b/buffalo/cmd/destroy/action.go deleted file mode 100644 index e65b4a6d7..000000000 --- a/buffalo/cmd/destroy/action.go +++ /dev/null @@ -1,29 +0,0 @@ -package destroy - -import ( - "fmt" - - "github.com/gobuffalo/flect" - "github.com/spf13/cobra" -) - -//ActionCmd destroys passed action file -var ActionCmd = &cobra.Command{ - Use: "action [name]", - //Example: "resource cars", - Aliases: []string{"a"}, - Short: "Destroy action files", - RunE: func(cmd *cobra.Command, args []string) error { - if len(args) == 0 { - return fmt.Errorf("you need to provide a valid action file name in order to destroy it") - } - - name := args[0] - - //Generated actions keep the same name (not plural). - fileName := flect.Underscore(name) - - removeActions(fileName) - return nil - }, -} diff --git a/buffalo/cmd/destroy/mailer.go b/buffalo/cmd/destroy/mailer.go deleted file mode 100644 index 0e9269875..000000000 --- a/buffalo/cmd/destroy/mailer.go +++ /dev/null @@ -1,48 +0,0 @@ -package destroy - -import ( - "fmt" - "os" - "path/filepath" - - "github.com/gobuffalo/flect" - "github.com/sirupsen/logrus" - "github.com/spf13/cobra" -) - -// MailerCmd destroys a passed mailer -var MailerCmd = &cobra.Command{ - Use: "mailer [name]", - // Example: "mailer cars", - Aliases: []string{"l"}, - Short: "Destroy mailer files", - RunE: func(cmd *cobra.Command, args []string) error { - if len(args) == 0 { - return fmt.Errorf("you need to provide a valid mailer name in order to destroy it") - } - - name := args[0] - - removeMailer(name) - - return nil - }, -} - -func removeMailer(name string) { - if YesToAll || confirm("Want to remove mailer? (y/N)") { - mailerFileName := flect.Singularize(flect.Underscore(name)) - - files := []string{ - filepath.Join("mailers", fmt.Sprintf("%v.go", mailerFileName)), - filepath.Join("templates/mail", fmt.Sprintf("%v.html", mailerFileName)), - filepath.Join("templates/mail", fmt.Sprintf("%v.plush.html", mailerFileName)), - } - - for _, f := range files { - os.Remove(f) - logrus.Infof("- Deleted %v", f) - } - - } -} diff --git a/buffalo/cmd/destroy/resource.go b/buffalo/cmd/destroy/resource.go deleted file mode 100644 index 3a94328cc..000000000 --- a/buffalo/cmd/destroy/resource.go +++ /dev/null @@ -1,129 +0,0 @@ -package destroy - -import ( - "bufio" - "fmt" - "io/ioutil" - "os" - "path/filepath" - "strings" - - "github.com/gobuffalo/flect" - - "github.com/sirupsen/logrus" - "github.com/spf13/cobra" -) - -// YesToAll means not to ask when destroying but simply confirm all beforehand. -var YesToAll = false - -// ResourceCmd destroys a passed resource -var ResourceCmd = &cobra.Command{ - Use: "resource [name]", - // Example: "resource cars", - Aliases: []string{"r"}, - Short: "Destroy resource files", - RunE: func(cmd *cobra.Command, args []string) error { - if len(args) == 0 { - return fmt.Errorf("you need to provide a valid resource name in order to destroy it") - } - - name := args[0] - fileName := flect.Pluralize(flect.Underscore(name)) - - removeTemplates(fileName) - if err := removeActions(fileName); err != nil { - return err - } - - removeLocales(fileName) - removeModel(name) - removeMigrations(fileName) - - return nil - }, -} - -func confirm(msg string) bool { - reader := bufio.NewReader(os.Stdin) - fmt.Print(msg) - text, _ := reader.ReadString('\n') - - return (text == "y\n" || text == "Y\n") -} - -func removeTemplates(fileName string) { - if YesToAll || confirm("Want to remove templates? (y/N)") { - templatesFolder := filepath.Join("templates", fileName) - logrus.Infof("- Deleted %v folder", templatesFolder) - os.RemoveAll(templatesFolder) - } -} - -func removeActions(fileName string) error { - if YesToAll || confirm("Want to remove actions? (y/N)") { - logrus.Infof("- Deleted %v", fmt.Sprintf("actions/%v.go", fileName)) - os.Remove(filepath.Join("actions", fmt.Sprintf("%v.go", fileName))) - - logrus.Infof("- Deleted %v", fmt.Sprintf("actions/%v_test.go", fileName)) - os.Remove(filepath.Join("actions", fmt.Sprintf("%v_test.go", fileName))) - - content, err := ioutil.ReadFile(filepath.Join("actions", "app.go")) - if err != nil { - logrus.Warn("error reading app.go content") - return err - } - - resourceExpression := fmt.Sprintf("app.Resource(\"/%v\", %vResource{})", fileName, flect.Pascalize(fileName)) - newContents := strings.Replace(string(content), resourceExpression, "", -1) - - err = ioutil.WriteFile(filepath.Join("actions", "app.go"), []byte(newContents), 0) - if err != nil { - logrus.Error("error writing new app.go content") - return err - } - - logrus.Infof("- Deleted References for %v in actions/app.go", fileName) - } - - return nil -} - -func removeLocales(fileName string) { - if YesToAll || confirm("Want to remove locales? (y/N)") { - removeMatch("locales", fmt.Sprintf("%v.*.yaml", fileName)) - } -} - -func removeModel(name string) { - if YesToAll || confirm("Want to remove model? (y/N)") { - modelFileName := flect.Singularize(flect.Underscore(name)) - - os.Remove(filepath.Join("models", fmt.Sprintf("%v.go", modelFileName))) - os.Remove(filepath.Join("models", fmt.Sprintf("%v_test.go", modelFileName))) - - logrus.Infof("- Deleted %v", fmt.Sprintf("models/%v.go", modelFileName)) - logrus.Infof("- Deleted %v", fmt.Sprintf("models/%v_test.go", modelFileName)) - } -} - -func removeMigrations(fileName string) { - if YesToAll || confirm("Want to remove migrations? (y/N)") { - removeMatch("migrations", fmt.Sprintf("*_create_%v.up.*", fileName)) - removeMatch("migrations", fmt.Sprintf("*_create_%v.down.*", fileName)) - } -} - -func removeMatch(folder, pattern string) { - files, err := ioutil.ReadDir(folder) - if err == nil { - for _, f := range files { - matches, _ := filepath.Match(pattern, f.Name()) - if !f.IsDir() && matches { - path := filepath.Join(folder, f.Name()) - os.Remove(path) - logrus.Infof("- Deleted %v", path) - } - } - } -} diff --git a/buffalo/cmd/dev.go b/buffalo/cmd/dev.go deleted file mode 100644 index 7aae8e620..000000000 --- a/buffalo/cmd/dev.go +++ /dev/null @@ -1,150 +0,0 @@ -package cmd - -import ( - "context" - "fmt" - "os" - "os/exec" - "path/filepath" - "runtime" - "strings" - - "github.com/fatih/color" - "github.com/gobuffalo/buffalo/genny/assets/webpack" - rg "github.com/gobuffalo/buffalo/genny/refresh" - "github.com/gobuffalo/events" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/meta" - "github.com/markbates/refresh/refresh" - "github.com/sirupsen/logrus" - "github.com/spf13/cobra" - "golang.org/x/sync/errgroup" -) - -func init() { - events.NamedListen("buffalo:dev", func(e events.Event) { - if strings.HasPrefix(e.Kind, "refresh:") { - e.Kind = strings.Replace(e.Kind, "refresh:", "buffalo:dev:", 1) - events.Emit(e) - } - }) -} - -var devOptions = struct { - Debug bool -}{} - -// devCmd represents the dev command -var devCmd = &cobra.Command{ - Use: "dev", - Short: "Run the Buffalo app in 'development' mode", - Long: `Run the Buffalo app in 'development' mode. -This includes rebuilding the application when files change. -This behavior can be changed in .buffalo.dev.yml file.`, - RunE: func(c *cobra.Command, args []string) error { - if runtime.GOOS == "windows" { - color.NoColor = true - } - defer func() { - msg := "There was a problem starting the dev server, Please review the troubleshooting docs: %s\n" - cause := "Unknown" - if r := recover(); r != nil { - if err, ok := r.(error); ok { - cause = err.Error() - } - } - logrus.Errorf(msg, cause) - }() - os.Setenv("GO_ENV", "development") - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - wg, ctx := errgroup.WithContext(ctx) - - wg.Go(func() error { - return startDevServer(ctx, args) - }) - - wg.Go(func() error { - app := meta.New(".") - if !app.WithNodeJs { - // No need to run dev script - return nil - } - return runDevScript(ctx, app) - }) - - err := wg.Wait() - if err != context.Canceled { - return err - } - return nil - }, -} - -func runDevScript(ctx context.Context, app meta.App) error { - tool := "yarnpkg" - if !app.WithYarn { - tool = "npm" - } - - if _, err := exec.LookPath(tool); err != nil { - return fmt.Errorf("could not find %s tool", tool) - } - - // make sure that the node_modules folder is properly "installed" - if _, err := os.Stat(filepath.Join(app.Root, "node_modules")); err != nil { - cmd := exec.CommandContext(ctx, tool, "install") - cmd.Stderr = os.Stderr - cmd.Stdout = os.Stdout - if err := cmd.Run(); err != nil { - return err - } - } - - cmd := exec.CommandContext(ctx, tool, "run", "dev") - if _, err := app.NodeScript("dev"); err != nil { - // Fallback on legacy runner - cmd = exec.CommandContext(ctx, webpack.BinPath, "--watch") - } - cmd.Stderr = os.Stderr - cmd.Stdout = os.Stdout - return cmd.Run() -} - -func startDevServer(ctx context.Context, args []string) error { - app := meta.New(".") - - cfgFile := "./.buffalo.dev.yml" - if _, err := os.Stat(cfgFile); err != nil { - run := genny.WetRunner(ctx) - err = run.WithNew(rg.New(&rg.Options{App: app})) - if err != nil { - return err - } - - if err := run.Run(); err != nil { - return err - } - } - c := &refresh.Configuration{} - if err := c.Load(cfgFile); err != nil { - return err - } - c.Debug = devOptions.Debug - - bt := app.BuildTags("development") - if len(bt) > 0 { - c.BuildFlags = append(c.BuildFlags, "-tags", bt.String()) - } - r := refresh.NewWithContext(c, ctx) - r.CommandFlags = args - return r.Start() -} - -func init() { - devCmd.Flags().BoolVarP(&devOptions.Debug, "debug", "d", false, "use delve to debug the app") - decorate("dev", devCmd) - RootCmd.AddCommand(devCmd) -} diff --git a/buffalo/cmd/events.go b/buffalo/cmd/events.go deleted file mode 100644 index e725d60a6..000000000 --- a/buffalo/cmd/events.go +++ /dev/null @@ -1,10 +0,0 @@ -package cmd - -const ( - // EvtSetupStarted is emitted when `buffalo setup` starts - EvtSetupStarted = "buffalo:setup:started" - // EvtSetupErr is emitted if `buffalo setup` fails - EvtSetupErr = "buffalo:setup:err" - // EvtSetupFinished is emitted when `buffalo setup` finishes - EvtSetupFinished = "buffalo:setup:finished" -) diff --git a/buffalo/cmd/filetests/apiapp.json b/buffalo/cmd/filetests/apiapp.json deleted file mode 100644 index 071362540..000000000 --- a/buffalo/cmd/filetests/apiapp.json +++ /dev/null @@ -1,36 +0,0 @@ -[{ - "path": "actions/app.go", - "contains": [ - "app.Use(contenttype.Set(\"application/json\"))" - ], - "!contains": [ - "app.ServeFiles" - ] -}, { - "path": "actions/home.go", - "contains": [ - "r.JSON" - ], - "!contains": [ - "r.HTML" - ] -}, { - "path": "actions/render.go", - "contains": [ - "DefaultContentType: \"application/json\"," - ], - "!contains": [ - "HTMLLayout", - "TemplatesBox", - "Helpers" - ] -}, { - "path": "templates", - "absent": true -}, { - "path": "assets", - "absent": true -}, { - "path": "public", - "absent": true -}] diff --git a/buffalo/cmd/filetests/destroy_action_all.json b/buffalo/cmd/filetests/destroy_action_all.json deleted file mode 100644 index 9a45a02f0..000000000 --- a/buffalo/cmd/filetests/destroy_action_all.json +++ /dev/null @@ -1,8 +0,0 @@ -[{ - "path": "actions/ouch.go", - "absent": true -}, -{ - "path": "actions/ouch_test.go", - "absent": true -}] \ No newline at end of file diff --git a/buffalo/cmd/filetests/destroy_mailer_all.json b/buffalo/cmd/filetests/destroy_mailer_all.json deleted file mode 100644 index 358c1fd42..000000000 --- a/buffalo/cmd/filetests/destroy_mailer_all.json +++ /dev/null @@ -1,14 +0,0 @@ -[{ - "path": "mailers/ouch.go", - "absent": true - }, - { - "path": "templates/mail/ouch.html", - "absent": true - }, - { - "path": "templates/mail/ouch.plush.html", - "absent": true - } - -] diff --git a/buffalo/cmd/filetests/destroy_model_all.json b/buffalo/cmd/filetests/destroy_model_all.json deleted file mode 100644 index 858072622..000000000 --- a/buffalo/cmd/filetests/destroy_model_all.json +++ /dev/null @@ -1,8 +0,0 @@ -[{ - "path": "models/ouch.go", - "absent": true -}, -{ - "path": "models/ouch_test.go", - "absent": true -}] \ No newline at end of file diff --git a/buffalo/cmd/filetests/destroy_resource_all.json b/buffalo/cmd/filetests/destroy_resource_all.json deleted file mode 100644 index 5d1cc5d6d..000000000 --- a/buffalo/cmd/filetests/destroy_resource_all.json +++ /dev/null @@ -1,27 +0,0 @@ -[{ - "path": "actions/ouches.go", - "absent": true - }, - { - "path": "actions/ouches_test.go", - "absent": true - }, - { - "path": "actions/app.go", - "!contains": [ - "app.Resource(\"/ouches\", OuchesResource{})" - ] - }, - { - "path": "locales/ouches.en-us.yaml", - "absent": true - }, - { - "path": "models/ouch.go", - "absent": true - }, - { - "path": "models/ouch_test.go", - "absent": true - } -] diff --git a/buffalo/cmd/filetests/fix_old_app.json b/buffalo/cmd/filetests/fix_old_app.json deleted file mode 100644 index 6941260d6..000000000 --- a/buffalo/cmd/filetests/fix_old_app.json +++ /dev/null @@ -1,22 +0,0 @@ -[{ - "path": "actions/app.go", - "!contains": [ - "middleware.PopTransaction", - "ssl.ForceSSL", - "middleware.ParameterLogger", - "github.com/gobuffalo/buffalo/middleware", - "github.com/gobuffalo/buffalo/middleware", - "github.com/gobuffalo/buffalo/middleware/ssl", - "github.com/gobuffalo/buffalo/middleware/csrf", - "github.com/gobuffalo/buffalo/middleware/i18n" - ], - "contains": [ - "github.com/gobuffalo/mw-csrf", - "github.com/gobuffalo/mw-forcessl", - "github.com/gobuffalo/mw-i18n", - "github.com/gobuffalo/mw-paramlogger", - "forcessl.Middleware", - "popmw.Transaction", - "paramlogger.ParameterLogger" - ] -}] diff --git a/buffalo/cmd/filetests/generate_action_all.json b/buffalo/cmd/filetests/generate_action_all.json deleted file mode 100644 index 347e183bb..000000000 --- a/buffalo/cmd/filetests/generate_action_all.json +++ /dev/null @@ -1,23 +0,0 @@ -[{ - "path": "actions/comments.go", - "contains": [ - "func CommentsShow(c buffalo.Context) error {", - "func CommentsEdit(c buffalo.Context) error {", - "comments/edit.html", - "comments/show.html" - ] - }, - { - "path": "actions/app.go", - "contains": [ - "app.GET(\"/comments/show\", CommentsShow)", - "app.GET(\"/comments/edit\", CommentsEdit)" - ] - }, - { - "path": "templates/comments/show.plush.html", - "contains": [ - "

Comments#Show

" - ] - } -] diff --git a/buffalo/cmd/filetests/generate_action_existing.json b/buffalo/cmd/filetests/generate_action_existing.json deleted file mode 100644 index 9e7c7d598..000000000 --- a/buffalo/cmd/filetests/generate_action_existing.json +++ /dev/null @@ -1,19 +0,0 @@ -[{ - "path": "actions/comments.go", - "contains": [ - "func CommentsShow(c buffalo.Context) error {", - "func CommentsEdit(c buffalo.Context) error {", - "func CommentsDestroy(c buffalo.Context) error {", - "comments/edit.html", - "comments/destroy.html", - "comments/show.html" - ] -}, -{ - "path": "actions/app.go", - "contains": [ - "app.GET(\"/comments/destroy\", CommentsDestroy)", - "app.GET(\"/comments/edit\", CommentsEdit)", - "app.GET(\"/comments/show\", CommentsShow)" - ] -}] \ No newline at end of file diff --git a/buffalo/cmd/filetests/generate_action_skip_template.json b/buffalo/cmd/filetests/generate_action_skip_template.json deleted file mode 100644 index 9457342cd..000000000 --- a/buffalo/cmd/filetests/generate_action_skip_template.json +++ /dev/null @@ -1,15 +0,0 @@ -[{ - "path": "actions/users.go", - "contains": [ - "func UsersCreate(c buffalo.Context) error {" - ] - }, - { - "path": "templates/users/create.html", - "absent": true - }, - { - "path": "templates/users/create.plush.html", - "absent": true - } -] diff --git a/buffalo/cmd/filetests/generate_action_with_method.json b/buffalo/cmd/filetests/generate_action_with_method.json deleted file mode 100644 index 0492c6f44..000000000 --- a/buffalo/cmd/filetests/generate_action_with_method.json +++ /dev/null @@ -1,19 +0,0 @@ -[{ - "path": "actions/users.go", - "contains": [ - "func UsersCreate(c buffalo.Context) error {" - ] - }, - { - "path": "templates/users/update.html", - "absent": true - }, - { - "path": "templates/users/update.plush.html", - "absent": true - }, - { - "path": "actions/app.go", - "contains": ["app.POST(\"/users/update\", UsersUpdate)"] - } -] diff --git a/buffalo/cmd/filetests/generate_mailer.json b/buffalo/cmd/filetests/generate_mailer.json deleted file mode 100644 index 9785d1e64..000000000 --- a/buffalo/cmd/filetests/generate_mailer.json +++ /dev/null @@ -1,30 +0,0 @@ -[{ - "path": "mailers/mailers.go", - "contains": [ - "github.com/gobuffalo/buffalo/mail", - "smtp, err = mail.NewSMTPSender(host, port, user, password)" - ], - "!contains": [ - "github.com/gobuffalo/x/mail" - ] - }, - { - "path": "templates/mail/layout.plush.html", - "contains": [ - "

templates/mailers/layout.plush.html

" - ] - }, - { - "path": "mailers/welcome_email.go", - "contains": [ - "err := m.AddBody(r.HTML(\"welcome_email.html\"), render.Data{})" - ] - }, - { - "path": "templates/mail/welcome_email.plush.html", - "contains": [ - "

Welcome Email

", - "

../templates/mail/welcome_email.plush.html

" - ] - } -] diff --git a/buffalo/cmd/filetests/generate_nested_task.json b/buffalo/cmd/filetests/generate_nested_task.json deleted file mode 100644 index 2e7e73d66..000000000 --- a/buffalo/cmd/filetests/generate_nested_task.json +++ /dev/null @@ -1,10 +0,0 @@ -[{ - "path": "grifts/now.go", - "contains": [ - "var _ = Namespace(\"nested\", func() {", - "Namespace(\"task\", func() {", - "Desc(\"now\", \"Task Description\")", - "Add(\"now\", func(c *Context) error {", - "return nil" - ] -}] \ No newline at end of file diff --git a/buffalo/cmd/filetests/generate_plain_task.json b/buffalo/cmd/filetests/generate_plain_task.json deleted file mode 100644 index 6af6b59ff..000000000 --- a/buffalo/cmd/filetests/generate_plain_task.json +++ /dev/null @@ -1,8 +0,0 @@ -[{ - "path": "grifts/plain_task.go", - "contains": [ - "var _ = Desc(\"plain_task\", \"Task Description\")", - "var _ = Add(\"plain_task\", func(c *Context) error {", - "return nil" - ] -}] \ No newline at end of file diff --git a/buffalo/cmd/filetests/generate_resource_irregular.json b/buffalo/cmd/filetests/generate_resource_irregular.json deleted file mode 100644 index 9703402d9..000000000 --- a/buffalo/cmd/filetests/generate_resource_irregular.json +++ /dev/null @@ -1,7 +0,0 @@ -[{ - "path": "actions/people.go", - "contains": [ - "type PeopleResource struct", - "func (v PeopleResource)" - ] -}] \ No newline at end of file diff --git a/buffalo/cmd/filetests/generate_resource_nested_api.json b/buffalo/cmd/filetests/generate_resource_nested_api.json deleted file mode 100644 index 9e59e6011..000000000 --- a/buffalo/cmd/filetests/generate_resource_nested_api.json +++ /dev/null @@ -1,20 +0,0 @@ -[{ - "path": "actions/admin_planes.go", - "contains": [ - "type AdminPlanesResource struct", - "func (v AdminPlanesResource)", - "tx.Find(plane, c.Param(\"admin_plane_id\"))" - ] - }, - { - "path": "actions/admin_planes_test.go", - "contains": [ - "package actions", - "Test_AdminPlanesResource_List" - ] - }, - { - "path": "locales/admin/planes.en-us.yaml", - "absent": true - } -] diff --git a/buffalo/cmd/filetests/generate_resource_nested_model_name_api.json b/buffalo/cmd/filetests/generate_resource_nested_model_name_api.json deleted file mode 100644 index 6faab3ff1..000000000 --- a/buffalo/cmd/filetests/generate_resource_nested_model_name_api.json +++ /dev/null @@ -1,25 +0,0 @@ -[{ - "path": "actions/admin_users.go", - "contains": [ - "type AdminUsersResource struct", - "func (v AdminUsersResource)" - ] - }, - { - "path": "actions/admin_users_test.go", - "contains": [ - "package actions", - "Test_AdminUsersResource_List" - ] - }, - { - "path": "locales/admin/users.en-us.yaml", - "absent": true - }, - { - "path": "models/admin_user.go", - "contains": [ - "type AdminUser struct" - ] - } -] diff --git a/buffalo/cmd/filetests/generate_resource_nested_model_name_web.json b/buffalo/cmd/filetests/generate_resource_nested_model_name_web.json deleted file mode 100644 index f16bd5aff..000000000 --- a/buffalo/cmd/filetests/generate_resource_nested_model_name_web.json +++ /dev/null @@ -1,34 +0,0 @@ -[{ - "path": "actions/admin_users.go", - "contains": [ - "type AdminUsersResource struct", - "func (v AdminUsersResource)" - ] - }, - { - "path": "actions/admin_users_test.go", - "contains": [ - "package actions", - "Test_AdminUsersResource_List" - ] - }, - { - "path": "locales/admin/users.en-us.yaml", - "contains": [ - "translation: \"AdminUser was successfully created.\"" - ] - }, - { - "path": "templates/admin/users/_form.plush.html", - "contains": [ - "" - ] - }, - { - "path": "models/admin_user.go", - "contains": [ - "type AdminUser struct" - ] - } - -] diff --git a/buffalo/cmd/filetests/generate_resource_nested_web.json b/buffalo/cmd/filetests/generate_resource_nested_web.json deleted file mode 100644 index 11e04d498..000000000 --- a/buffalo/cmd/filetests/generate_resource_nested_web.json +++ /dev/null @@ -1,40 +0,0 @@ -[{ - "path": "actions/admin_planes.go", - "contains": [ - "type AdminPlanesResource struct", - "func (v AdminPlanesResource)", - "tx.Find(plane, c.Param(\"admin_plane_id\"))" - ] - }, - { - "path": "actions/admin_planes_test.go", - "contains": [ - "package actions", - "Test_AdminPlanesResource_List" - ] - }, - { - "path": "locales/admin/planes.en-us.yaml", - "contains": [ - "translation: \"Plane was successfully created.\"" - ] - }, - { - "path": "templates/admin/planes/_form.plush.html", - "contains": [ - "" - ] - }, - { - "path": "templates/admin/planes/index.plush.html", - "contains": [ - "newAdminPlanesPath()" - ] - }, - { - "path": "templates/admin/planes/show.plush.html", - "contains": [ - "editAdminPlanePath({ admin_plane_id: plane.ID })" - ] - } -] diff --git a/buffalo/cmd/filetests/generate_resource_plural.json b/buffalo/cmd/filetests/generate_resource_plural.json deleted file mode 100644 index 748432895..000000000 --- a/buffalo/cmd/filetests/generate_resource_plural.json +++ /dev/null @@ -1,23 +0,0 @@ -[{ - "path": "actions/cars.go", - "contains": [ - "func (v CarsResource) List(c buffalo.Context) error {", - "func (v CarsResource) Destroy(c buffalo.Context) error {", - "type CarsResource struct {" - ] - }, - { - "path": "actions/app.go", - "contains": [ - "app.Resource(\"/cars\", CarsResource{})" - ] - }, - { - "path": "actions/cars_test.go", - "contains": [ - "func (as *ActionSuite) Test_CarsResource_List", - "func (as *ActionSuite) Test_CarsResource_Show", - "func (as *ActionSuite) Test_CarsResource_Create" - ] - } -] diff --git a/buffalo/cmd/filetests/generate_resource_singular.json b/buffalo/cmd/filetests/generate_resource_singular.json deleted file mode 100644 index 1e8300ae4..000000000 --- a/buffalo/cmd/filetests/generate_resource_singular.json +++ /dev/null @@ -1,23 +0,0 @@ -[{ - "path": "actions/users.go", - "contains": [ - "func (v UsersResource) List(c buffalo.Context) error {", - "func (v UsersResource) Destroy(c buffalo.Context) error {", - "type UsersResource struct {" - ] - }, - { - "path": "actions/app.go", - "contains": [ - "app.Resource(\"/users\", UsersResource{})" - ] - }, - { - "path": "actions/users_test.go", - "contains": [ - "func (as *ActionSuite) Test_UsersResource_List", - "func (as *ActionSuite) Test_UsersResource_Show", - "func (as *ActionSuite) Test_UsersResource_Create" - ] - } -] diff --git a/buffalo/cmd/filetests/generate_underscore.json b/buffalo/cmd/filetests/generate_underscore.json deleted file mode 100644 index 830e375e4..000000000 --- a/buffalo/cmd/filetests/generate_underscore.json +++ /dev/null @@ -1,7 +0,0 @@ -[{ - "path": "actions/person_events.go", - "contains": [ - "c.Render(http.StatusOK, r.Auto(c, personEvents))", - "c.Render(http.StatusOK, r.Auto(c, personEvent))" - ] -}] diff --git a/buffalo/cmd/filetests/goth.json b/buffalo/cmd/filetests/goth.json deleted file mode 100644 index 70035fef0..000000000 --- a/buffalo/cmd/filetests/goth.json +++ /dev/null @@ -1,29 +0,0 @@ -[{ - "path": "actions/auth.go", - "contains": [ - "github.com/markbates/goth/providers/facebook", - "github.com/markbates/goth/providers/twitter", - "github.com/markbates/goth/providers/linkedin", - "github.com/markbates/goth/providers/github", - "FACEBOOK_KEY", - "FACEBOOK_SECRET", - "TWITTER_KEY", - "TWITTER_SECRET", - "GITHUB_KEY", - "GITHUB_SECRET", - "LINKEDIN_KEY", - "LINKEDIN_SECRET" - ], - "!contains": [ - "app := App().Group(\"/auth\")", - "github.com/markbates/goth/providers/yammer", - "buffalo.WrapHandlerFunc(gothic.BeginAuthHandler)" - ] -}, { - "path": "actions/app.go", - "contains": [ - "auth := app.Group(\"/auth\")", - "auth.GET(\"/{provider}\", buffalo.WrapHandlerFunc(gothic.BeginAuthHandler))", - "auth.GET(\"/{provider}/callback\", AuthCallback)" - ] -}] diff --git a/buffalo/cmd/filetests/new_travis.json b/buffalo/cmd/filetests/new_travis.json deleted file mode 100644 index 7917878fe..000000000 --- a/buffalo/cmd/filetests/new_travis.json +++ /dev/null @@ -1,16 +0,0 @@ -[{ - "path": ".travis.yml", - "contains": [ - "language: go", - "1.11.x", - "go_import_path:" - ] -}, { - "path": "database.yml", - "contains": [ - "dialect: \"sqlite3\"", - "development:", - "production:", - "test:" - ] -}] diff --git a/buffalo/cmd/filetests/no_assets_build.json b/buffalo/cmd/filetests/no_assets_build.json deleted file mode 100644 index 543063d71..000000000 --- a/buffalo/cmd/filetests/no_assets_build.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "path": "bin/assets.zip", - "absent": true - } -] \ No newline at end of file diff --git a/buffalo/cmd/filetests/resource_model_migration.json b/buffalo/cmd/filetests/resource_model_migration.json deleted file mode 100644 index 04e1f8172..000000000 --- a/buffalo/cmd/filetests/resource_model_migration.json +++ /dev/null @@ -1,6 +0,0 @@ -[{ - "path": "models/user.go", - "contains": [ - "type User struct {" - ] -}] \ No newline at end of file diff --git a/buffalo/cmd/filetests/resource_skip_model.json b/buffalo/cmd/filetests/resource_skip_model.json deleted file mode 100644 index 346b7caa4..000000000 --- a/buffalo/cmd/filetests/resource_skip_model.json +++ /dev/null @@ -1,13 +0,0 @@ -[{ - "path": "models/admin.go", - "absent": true -},{ - "path": "models/admin_test.go", - "absent": true -},{ - "path": "migrations/*_create_admins.up.fizz", - "absent": true -},{ - "path": "migrations/*_create_admins.down.fizz", - "absent": true -}] \ No newline at end of file diff --git a/buffalo/cmd/filetests/resource_use_model.json b/buffalo/cmd/filetests/resource_use_model.json deleted file mode 100644 index 15bfd9b71..000000000 --- a/buffalo/cmd/filetests/resource_use_model.json +++ /dev/null @@ -1,19 +0,0 @@ -[{ - "path": "actions/admins.go", - "contains": [ - "users := &models.Users{}" - ] - }, - { - "path": "models/admin.go", - "absent": true -},{ - "path": "models/admin_test.go", - "absent": true -},{ - "path": "migrations/*_create_admins.up.fizz", - "absent": true -},{ - "path": "migrations/*_create_admins.down.fizz", - "absent": true -}] \ No newline at end of file diff --git a/buffalo/cmd/filetests/skip_dep.json b/buffalo/cmd/filetests/skip_dep.json deleted file mode 100644 index 4fca4aa80..000000000 --- a/buffalo/cmd/filetests/skip_dep.json +++ /dev/null @@ -1,10 +0,0 @@ -[{ - "path": "vendor/", - "absent": true -}, { - "path": "Gopkg.toml", - "absent": true -}, { - "path": "Gopkg.lock", - "absent": true -}] diff --git a/buffalo/cmd/fix.go b/buffalo/cmd/fix.go deleted file mode 100644 index 368c15ff5..000000000 --- a/buffalo/cmd/fix.go +++ /dev/null @@ -1,27 +0,0 @@ -package cmd - -import ( - "fmt" - - "github.com/gobuffalo/buffalo/buffalo/cmd/fix" - "github.com/gobuffalo/buffalo/runtime" - "github.com/spf13/cobra" -) - -// fixCmd represents the info command -var fixCmd = &cobra.Command{ - Use: "fix", - Aliases: []string{"update"}, - Short: fmt.Sprintf("Attempt to fix a Buffalo application's API to match version %s", runtime.Version), - RunE: func(cmd *cobra.Command, args []string) error { - return fix.Run() - }, -} - -func init() { - decorate("fix", RootCmd) - decorate("update", RootCmd) - - fixCmd.Flags().BoolVarP(&fix.YesToAll, "y", "y", false, "update all without asking for confirmation") - RootCmd.AddCommand(fixCmd) -} diff --git a/buffalo/cmd/fix/deprecations.go b/buffalo/cmd/fix/deprecations.go deleted file mode 100644 index 1ad7e68cd..000000000 --- a/buffalo/cmd/fix/deprecations.go +++ /dev/null @@ -1,58 +0,0 @@ -package fix - -import ( - "bytes" - "fmt" - "io/ioutil" - "os" - "path/filepath" -) - -// DeprecrationsCheck will either log, or fix, deprecated items in the application -func DeprecrationsCheck(r *Runner) error { - fmt.Println("~~~ Checking for deprecations ~~~") - b, err := ioutil.ReadFile("main.go") - if err != nil { - return err - } - if bytes.Contains(b, []byte("app.Start")) { - r.Warnings = append(r.Warnings, "app.Start has been removed in v0.11.0. Use app.Serve Instead. [main.go]") - } - - return filepath.Walk(filepath.Join(r.App.Root, "actions"), func(path string, info os.FileInfo, _ error) error { - if info.IsDir() { - return nil - } - - if filepath.Ext(path) != ".go" { - return nil - } - - b, err := ioutil.ReadFile(path) - if err != nil { - return err - } - if bytes.Contains(b, []byte("Websocket()")) { - r.Warnings = append(r.Warnings, fmt.Sprintf("buffalo.Context#Websocket has been deprecated in v0.11.0, and removed in v0.12.0. Use github.com/gorilla/websocket directly. [%s]", path)) - } - if bytes.Contains(b, []byte("meta.Name")) { - r.Warnings = append(r.Warnings, fmt.Sprintf("meta.Name has been deprecated in v0.11.0, and removed in v0.12.0. Use github.com/markbates/inflect.Name directly. [%s]", path)) - } - if bytes.Contains(b, []byte("generators.Find(")) { - r.Warnings = append(r.Warnings, fmt.Sprintf("generators.Find(string) has been deprecated in v0.11.0, and removed in v0.12.0. Use generators.FindByBox() instead. [%s]", path)) - } - // i18n middleware changes in v0.11.1 - if bytes.Contains(b, []byte("T.CookieName")) { - b = bytes.Replace(b, []byte("T.CookieName"), []byte("T.LanguageExtractorOptions[\"CookieName\"]"), -1) - } - if bytes.Contains(b, []byte("T.SessionName")) { - b = bytes.Replace(b, []byte("T.SessionName"), []byte("T.LanguageExtractorOptions[\"SessionName\"]"), -1) - } - if bytes.Contains(b, []byte("T.LanguageFinder=")) || bytes.Contains(b, []byte("T.LanguageFinder ")) { - r.Warnings = append(r.Warnings, fmt.Sprintf("i18n.Translator#LanguageFinder has been deprecated in v0.11.1, and has been removed in v0.12.0. Use i18n.Translator#LanguageExtractors instead. [%s]", path)) - } - ioutil.WriteFile(path, b, 0664) - - return nil - }) -} diff --git a/buffalo/cmd/fix/docker.go b/buffalo/cmd/fix/docker.go deleted file mode 100644 index f1c24c8fa..000000000 --- a/buffalo/cmd/fix/docker.go +++ /dev/null @@ -1,38 +0,0 @@ -package fix - -import ( - "context" - "fmt" - "path/filepath" - "regexp" - "strings" - - "github.com/gobuffalo/buffalo/runtime" - "github.com/gobuffalo/genny/v2" -) - -func fixDocker(r *Runner) error { - app := r.App - if !app.WithDocker { - return nil - } - fmt.Println("~~~ Upgrading Dockerfile ~~~") - run := genny.WetRunner(context.Background()) - run.WithRun(func(r *genny.Runner) error { - dk, err := r.FindFile(filepath.Join(app.Root, "Dockerfile")) - if err != nil { - return err - } - - ex := regexp.MustCompile(`(v[0-9.][\S]+)`) - lines := strings.Split(dk.String(), "\n") - for i, l := range lines { - if strings.HasPrefix(strings.ToLower(l), "from gobuffalo/buffalo") { - l = ex.ReplaceAllString(l, runtime.Version) - lines[i] = l - } - } - return r.File(genny.NewFileS(dk.Name(), strings.Join(lines, "\n"))) - }) - return run.Run() -} diff --git a/buffalo/cmd/fix/fix.go b/buffalo/cmd/fix/fix.go deleted file mode 100644 index e28abc2d5..000000000 --- a/buffalo/cmd/fix/fix.go +++ /dev/null @@ -1,104 +0,0 @@ -package fix - -import ( - "bufio" - "fmt" - "os" - "path/filepath" - "strings" - - "github.com/BurntSushi/toml" -) - -// YesToAll will be used by the command to skip the questions -var YesToAll bool - -var replace = map[string]string{ - "github.com/gobuffalo/buffalo-plugins": "github.com/gobuffalo/buffalo/plugins", - "github.com/gobuffalo/genny": "github.com/gobuffalo/genny/v2", - "github.com/gobuffalo/pop": "github.com/gobuffalo/pop/v5", - "github.com/gobuffalo/pop/nulls": "github.com/gobuffalo/nulls", - "github.com/gobuffalo/uuid": "github.com/gofrs/uuid", - "github.com/markbates/pop": "github.com/gobuffalo/pop/v5", - "github.com/markbates/validate": "github.com/gobuffalo/validate/v3", - "github.com/markbates/willie": "github.com/gobuffalo/httptest", - "github.com/satori/go.uuid": "github.com/gofrs/uuid", - "github.com/shurcooL/github_flavored_markdown": "github.com/gobuffalo/github_flavored_markdown", - "github.com/gobuffalo/validate": "github.com/gobuffalo/validate/v3", - "github.com/gobuffalo/validate/validators": "github.com/gobuffalo/validate/v3/validators", - "github.com/gobuffalo/suite": "github.com/gobuffalo/suite/v3", - "github.com/gobuffalo/buffalo-pop/": "github.com/gobuffalo/buffalo-pop/v2", - "github.com/gobuffalo/buffalo-pop/pop/popmw": "github.com/gobuffalo/buffalo-pop/v2/pop/popmw", - "github.com/gobuffalo/plush": "github.com/gobuffalo/plush/v4", -} - -var ic = ImportConverter{ - Data: replace, -} - -var mr = MiddlewareTransformer{ - PackagesReplacement: map[string]string{ - "github.com/gobuffalo/buffalo/middleware/basicauth": "github.com/gobuffalo/mw-basicauth", - "github.com/gobuffalo/buffalo/middleware/csrf": "github.com/gobuffalo/mw-csrf", - "github.com/gobuffalo/buffalo/middleware/i18n": "github.com/gobuffalo/mw-i18n", - "github.com/gobuffalo/buffalo/middleware/ssl": "github.com/gobuffalo/mw-forcessl", - "github.com/gobuffalo/buffalo/middleware/tokenauth": "github.com/gobuffalo/mw-tokenauth", - }, - - Aliases: map[string]string{ - "github.com/gobuffalo/mw-basicauth": "basicauth", - "github.com/gobuffalo/mw-contenttype": "contenttype", - "github.com/gobuffalo/mw-csrf": "csrf", - "github.com/gobuffalo/mw-forcessl": "forcessl", - "github.com/gobuffalo/mw-i18n": "i18n", - "github.com/gobuffalo/mw-paramlogger": "paramlogger", - "github.com/gobuffalo/mw-tokenauth": "tokenauth", - }, -} - -var checks = []Check{ - PackrClean, - ic.Process, - mr.transformPackages, - WebpackCheck, - PackageJSONCheck, - AddPackageJSONScripts, - installTools, - DeprecrationsCheck, - fixDocker, - encodeApp, - Plugins{}.RemoveOld, - Plugins{}.CleanCache, - Plugins{}.Reinstall, - Plush, -} - -func encodeApp(r *Runner) error { - p := filepath.Join("config", "buffalo-app.toml") - if _, err := os.Stat(p); err == nil { - return nil - } - os.MkdirAll(filepath.Dir(p), 0755) - f, err := os.Create(p) - if err != nil { - return err - } - if err := toml.NewEncoder(f).Encode(r.App); err != nil { - return err - } - return nil -} - -func ask(q string) bool { - if YesToAll { - return true - } - - fmt.Printf("? %s [y/n]\n", q) - - reader := bufio.NewReader(os.Stdin) - text, _ := reader.ReadString('\n') - - text = strings.ToLower(strings.TrimSpace(text)) - return text == "y" || text == "yes" -} diff --git a/buffalo/cmd/fix/imports.go b/buffalo/cmd/fix/imports.go deleted file mode 100644 index ac127ff54..000000000 --- a/buffalo/cmd/fix/imports.go +++ /dev/null @@ -1,136 +0,0 @@ -package fix - -import ( - "fmt" - "go/ast" - "go/parser" - "go/token" - "os" - "path/filepath" - "strconv" - "strings" - - "golang.org/x/tools/go/ast/astutil" -) - -// ImportConverter will changes imports from a -> b -type ImportConverter struct { - Data map[string]string -} - -// Process will walk all the .go files in an application, excluding ./vendor. -// It will then attempt to convert any old import paths to any new import paths -// used by this version Buffalo. -func (c ImportConverter) Process(r *Runner) error { - fmt.Println("~~~ Rewriting Imports ~~~") - - return filepath.Walk(".", c.processFile) - -} - -func (c ImportConverter) processFile(p string, info os.FileInfo, err error) error { - er := onlyRelevantFiles(p, info, err, func(p string) error { - return c.rewriteFile(p) - }) - - return er -} - -func (c ImportConverter) rewriteFile(name string) error { - - // create an empty fileset. - fset := token.NewFileSet() - - // parse the .go file. - // we are parsing the entire file with comments, so we don't lose anything - // if we need to write it back out. - f, err := parser.ParseFile(fset, name, nil, parser.ParseComments) - if err != nil { - e := err.Error() - msg := "expected 'package', found 'EOF'" - if e[len(e)-len(msg):] == msg { - return nil - } - return err - } - - changed := false - for key, value := range c.Data { - if !astutil.DeleteImport(fset, f, key) { - continue - } - - astutil.AddImport(fset, f, value) - changed = true - } - - commentsChanged, err := c.handleFileComments(f) - if err != nil { - return err - } - - changed = changed || commentsChanged - - // if no change occurred, then we don't need to write to disk, just return. - if !changed { - return nil - } - - // since the imports changed, resort them. - ast.SortImports(fset, f) - - // create a temporary file, this easily avoids conflicts. - temp, err := writeTempResult(name, fset, f) - if err != nil { - return err - } - - // rename the .temp to .go - return os.Rename(temp, name) -} - -func (c ImportConverter) handleFileComments(f *ast.File) (bool, error) { - change := false - - for _, cg := range f.Comments { - for _, cl := range cg.List { - if !strings.HasPrefix(cl.Text, "// import \"") { - continue - } - - // trim off extra comment stuff - ctext := cl.Text - ctext = strings.TrimPrefix(ctext, "// import") - ctext = strings.TrimSpace(ctext) - - // unquote the comment import path value - ctext, err := strconv.Unquote(ctext) - if err != nil { - return false, err - } - - // match the comment import path with the given replacement map - if ctext, ok := c.match(ctext); ok { - cl.Text = "// import " + strconv.Quote(ctext) - change = true - } - - } - } - - return change, nil -} - -// match takes an import path and replacement map. -func (c ImportConverter) match(importpath string) (string, bool) { - for key, value := range c.Data { - if !strings.HasPrefix(importpath, key) { - continue - } - - result := strings.Replace(importpath, key, value, 1) - return result, true - } - - return importpath, false -} diff --git a/buffalo/cmd/fix/middleware.go b/buffalo/cmd/fix/middleware.go deleted file mode 100644 index 681942825..000000000 --- a/buffalo/cmd/fix/middleware.go +++ /dev/null @@ -1,161 +0,0 @@ -package fix - -import ( - "go/ast" - "go/parser" - "go/printer" - "go/token" - "io/ioutil" - "os" - "path/filepath" - "strings" - - "golang.org/x/tools/go/ast/astutil" -) - -//MiddlewareTransformer moves from our old middleware package to new one -type MiddlewareTransformer struct { - PackagesReplacement map[string]string - Aliases map[string]string -} - -func (mw MiddlewareTransformer) transformPackages(r *Runner) error { - return filepath.Walk(".", mw.processFile) -} - -func (mw MiddlewareTransformer) processFile(p string, fi os.FileInfo, err error) error { - er := onlyRelevantFiles(p, fi, err, func(p string) error { - if err := mw.rewriteMiddlewareUses(p); err != nil { - return err - } - - fset, f, err := buildASTFor(p) - if err != nil { - if e := err.Error(); strings.Contains(e, "expected 'package', found 'EOF'") { - return nil - } - - return err - } - - //Replacing mw packages - for old, new := range mw.PackagesReplacement { - deleted := astutil.DeleteImport(fset, f, old) - if deleted { - astutil.AddNamedImport(fset, f, mw.Aliases[new], new) - } - } - - if err := mw.addMissingRootMiddlewareImports(fset, f, p); err != nil { - return err - } - - ast.SortImports(fset, f) - - temp, err := writeTempResult(p, fset, f) - if err != nil { - return err - } - - // rename the .temp to .go - return os.Rename(temp, p) - }) - - return er -} - -func (mw MiddlewareTransformer) addMissingRootMiddlewareImports(fset *token.FileSet, f *ast.File, p string) error { - read, err := ioutil.ReadFile(p) - if err != nil { - return err - } - - content := string(read) - - astutil.DeleteImport(fset, f, "github.com/gobuffalo/buffalo/middleware") - if strings.Contains(content, "paramlogger.ParameterLogger") { - astutil.AddNamedImport(fset, f, "paramlogger", "github.com/gobuffalo/mw-paramlogger") - } - - if strings.Contains(content, "popmw.Transaction") { - astutil.AddImport(fset, f, "github.com/gobuffalo/buffalo-pop/v2/pop/popmw") - } - - if strings.Contains(content, "contenttype.Add") || strings.Contains(content, "contenttype.Set") { - astutil.AddNamedImport(fset, f, "contenttype", "github.com/gobuffalo/mw-contenttype") - } - - return ioutil.WriteFile(p, []byte(content), 0) -} - -func (mw MiddlewareTransformer) rewriteMiddlewareUses(p string) error { - read, err := ioutil.ReadFile(p) - if err != nil { - return err - } - - newContents := string(read) - newContents = strings.Replace(newContents, "middleware.SetContentType", "contenttype.Set", -1) - newContents = strings.Replace(newContents, "middleware.AddContentType", "contenttype.Add", -1) - newContents = strings.Replace(newContents, "middleware.ParameterLogger", "paramlogger.ParameterLogger", -1) - newContents = strings.Replace(newContents, "middleware.PopTransaction", "popmw.Transaction", -1) - newContents = strings.Replace(newContents, "ssl.ForceSSL", "forcessl.Middleware", -1) - - err = ioutil.WriteFile(p, []byte(newContents), 0) - return err -} - -func writeTempResult(name string, fset *token.FileSet, f *ast.File) (string, error) { - temp := name + ".temp" - w, err := os.Create(temp) - if err != nil { - return "", err - } - - // write changes to .temp file, and include proper formatting. - err = (&printer.Config{Mode: printer.TabIndent | printer.UseSpaces, Tabwidth: 8}).Fprint(w, fset, f) - if err != nil { - return "", err - } - - // close the writer - err = w.Close() - if err != nil { - return "", err - } - - return temp, nil -} - -func buildASTFor(p string) (*token.FileSet, *ast.File, error) { - fset := token.NewFileSet() - f, err := parser.ParseFile(fset, p, nil, parser.ParseComments) - return fset, f, err -} - -//onlyRelevantFiles processes only .go files excluding folders like node_modules and vendor. -func onlyRelevantFiles(p string, fi os.FileInfo, err error, fn func(p string) error) error { - if err != nil { - return err - } - - if fi.IsDir() { - base := filepath.Base(p) - if strings.HasPrefix(base, "_") { - return filepath.SkipDir - } - for _, n := range []string{"vendor", "node_modules", ".git"} { - if base == n { - return filepath.SkipDir - } - } - return nil - } - - ext := filepath.Ext(p) - if ext != ".go" { - return nil - } - - return fn(p) -} diff --git a/buffalo/cmd/fix/npm.go b/buffalo/cmd/fix/npm.go deleted file mode 100644 index 9d1aab499..000000000 --- a/buffalo/cmd/fix/npm.go +++ /dev/null @@ -1,145 +0,0 @@ -package fix - -import ( - "bytes" - "encoding/json" - "fmt" - "html/template" - "io/ioutil" - "os" - "os/exec" - "path/filepath" - - "github.com/gobuffalo/buffalo/genny/assets/webpack" -) - -// AddPackageJSONScripts rewrites the package.json file -// to add dev and build scripts if there are missing. -func AddPackageJSONScripts(r *Runner) error { - if !r.App.WithWebpack { - return nil - } - fmt.Println("~~~ Patching package.json to add dev and build scripts ~~~") - - b, err := ioutil.ReadFile("package.json") - if err != nil { - return err - } - - needRewrite := false - packageJSON := map[string]interface{}{} - if err := json.Unmarshal(b, &packageJSON); err != nil { - return fmt.Errorf("could not rewrite package.json: %s", err.Error()) - } - - if _, ok := packageJSON["scripts"]; !ok { - needRewrite = true - // Add scripts - packageJSON["scripts"] = map[string]string{ - "dev": "webpack --watch", - "build": "webpack -p --progress", - } - } else { - // Add missing scripts - scripts, ok := packageJSON["scripts"].(map[string]interface{}) - if !ok { - return fmt.Errorf("could not rewrite package.json: invalid scripts section") - } - if _, ok := scripts["dev"]; !ok { - needRewrite = true - scripts["dev"] = "webpack --watch" - } - if _, ok := scripts["build"]; !ok { - needRewrite = true - scripts["build"] = "webpack -p --progress" - } - packageJSON["scripts"] = scripts - } - - if needRewrite { - b, err = json.MarshalIndent(packageJSON, "", " ") - if err != nil { - return fmt.Errorf("could not rewrite package.json: %s", err.Error()) - } - - ioutil.WriteFile("package.json", b, 0644) - } else { - fmt.Println("~~~ package.json doesn't need to be patched, skipping. ~~~") - } - - return nil -} - -// PackageJSONCheck will compare the current default Buffalo -// package.json against the applications package.json. If they are -// different you have the option to overwrite the existing package.json -// file with the new one. -func PackageJSONCheck(r *Runner) error { - fmt.Println("~~~ Checking package.json ~~~") - - if !r.App.WithWebpack { - return nil - } - - box := webpack.Templates - - f, err := box.FindString("package.json.tmpl") - if err != nil { - return err - } - - tmpl, err := template.New("package.json").Parse(f) - if err != nil { - return err - } - - bb := &bytes.Buffer{} - err = tmpl.Execute(bb, map[string]interface{}{ - "opts": &webpack.Options{ - App: r.App, - }, - }) - if err != nil { - return err - } - - b, err := ioutil.ReadFile("package.json") - if err != nil { - return err - } - - if string(b) == bb.String() { - return nil - } - - if !ask("Your package.json file is different from the latest Buffalo template.\nWould you like to REPLACE yours with the latest template?") { - fmt.Println("\tskipping package.json") - return nil - } - - pf, err := os.Create("package.json") - if err != nil { - return err - } - _, err = pf.Write(bb.Bytes()) - if err != nil { - return err - } - err = pf.Close() - if err != nil { - return err - } - - os.RemoveAll(filepath.Join(r.App.Root, "node_modules")) - var cmd *exec.Cmd - if r.App.WithYarn { - cmd = exec.Command("yarnpkg", "install") - } else { - cmd = exec.Command("npm", "install") - } - - cmd.Stdin = os.Stdin - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - return cmd.Run() -} diff --git a/buffalo/cmd/fix/packr.go b/buffalo/cmd/fix/packr.go deleted file mode 100644 index 5fb976b03..000000000 --- a/buffalo/cmd/fix/packr.go +++ /dev/null @@ -1,9 +0,0 @@ -package fix - -import "github.com/gobuffalo/packr/v2/packr2/cmd/fix" - -// PackrClean will remove any packr files -func PackrClean(r *Runner) error { - fix.YesToAll = YesToAll - return fix.Run() -} diff --git a/buffalo/cmd/fix/plugins.go b/buffalo/cmd/fix/plugins.go deleted file mode 100644 index 1eb404fc9..000000000 --- a/buffalo/cmd/fix/plugins.go +++ /dev/null @@ -1,75 +0,0 @@ -package fix - -import ( - "context" - "fmt" - "os" - "path" - "strings" - - cmdPlugins "github.com/gobuffalo/buffalo/buffalo/cmd/plugins" - "github.com/gobuffalo/buffalo/genny/plugins/install" - "github.com/gobuffalo/buffalo/internal/takeon/github.com/markbates/errx" - "github.com/gobuffalo/buffalo/plugins" - "github.com/gobuffalo/buffalo/plugins/plugdeps" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/meta" -) - -//Plugins fixes the plugin configuration of the project by -//manipulating the plugins .toml file. -type Plugins struct{} - -//CleanCache cleans the plugins cache folder by removing it -func (pf Plugins) CleanCache(r *Runner) error { - fmt.Println("~~~ Cleaning plugins cache ~~~") - os.RemoveAll(plugins.CachePath) - return nil -} - -//Reinstall installs latest versions of the plugins -func (pf Plugins) Reinstall(r *Runner) error { - plugs, err := plugdeps.List(r.App) - if err != nil && (errx.Unwrap(err) != plugdeps.ErrMissingConfig) { - return err - } - - run := genny.WetRunner(context.Background()) - gg, err := install.New(&install.Options{ - App: r.App, - Plugins: plugs.List(), - }) - if err != nil { - return err - } - - run.WithGroup(gg) - - fmt.Println("~~~ Reinstalling plugins ~~~") - return run.Run() -} - -//RemoveOld removes old and deprecated plugins -func (pf Plugins) RemoveOld(r *Runner) error { - fmt.Println("~~~ Removing old plugins ~~~") - - run := genny.WetRunner(context.Background()) - app := meta.New(".") - plugs, err := plugdeps.List(app) - if err != nil && (errx.Unwrap(err) != plugdeps.ErrMissingConfig) { - return err - } - - a := strings.TrimSpace("github.com/gobuffalo/buffalo-pop") - bin := path.Base(a) - plugs.Remove(plugdeps.Plugin{ - Binary: bin, - GoGet: a, - }) - - fmt.Println("~~~ Removing github.com/gobuffalo/buffalo-pop plugin ~~~") - - run.WithRun(cmdPlugins.NewEncodePluginsRunner(app, plugs)) - - return run.Run() -} diff --git a/buffalo/cmd/fix/plush.go b/buffalo/cmd/fix/plush.go deleted file mode 100644 index 88f27d056..000000000 --- a/buffalo/cmd/fix/plush.go +++ /dev/null @@ -1,62 +0,0 @@ -package fix - -import ( - "fmt" - "io" - "os" - "path/filepath" - "strings" -) - -// Plush will update foo.html templates to foo.plush.html templates -func Plush(r *Runner) error { - templatesDir := filepath.Join(r.App.Root, "templates") - if _, err := os.Stat(templatesDir); os.IsNotExist(err) { - // Skip if the templates dir doesn't exist (e.g. API apps) - return nil - } - fmt.Println("~~~ Adding .plush extension to .html/.js/.md files ~~~") - return filepath.Walk(templatesDir, func(p string, info os.FileInfo, err error) error { - if err != nil { - return err - } - - if info.IsDir() { - return nil - } - - dir := filepath.Dir(p) - base := filepath.Base(p) - - var exts []string - ext := filepath.Ext(base) - for len(ext) != 0 { - if ext == ".plush" || ext == ".fizz" { - return nil - } - exts = append([]string{ext}, exts...) - base = strings.TrimSuffix(base, ext) - ext = filepath.Ext(base) - } - exts = append([]string{".plush"}, exts...) - - pn := filepath.Join(dir, base+strings.Join(exts, "")) - - fn, err := os.Create(pn) - if err != nil { - return err - } - defer fn.Close() - - fo, err := os.Open(p) - if err != nil { - return err - } - defer fo.Close() - _, err = io.Copy(fn, fo) - - defer os.Remove(p) - - return err - }) -} diff --git a/buffalo/cmd/fix/runner.go b/buffalo/cmd/fix/runner.go deleted file mode 100644 index dbbf49369..000000000 --- a/buffalo/cmd/fix/runner.go +++ /dev/null @@ -1,59 +0,0 @@ -package fix - -import ( - "fmt" - "os" - "os/exec" - - "github.com/gobuffalo/buffalo/runtime" - "github.com/gobuffalo/meta" -) - -// Check interface for runnable checker functions -type Check func(*Runner) error - -// Runner will run all compatible checks -type Runner struct { - App meta.App - Warnings []string -} - -// Run all compatible checks -func Run() error { - fmt.Printf("! This updater will attempt to update your application to Buffalo version: %s\n", runtime.Version) - if !ask("Do you wish to continue?") { - fmt.Println("~~~ cancelling update ~~~") - return nil - } - - r := &Runner{ - App: meta.New("."), - Warnings: []string{}, - } - - defer func() { - if len(r.Warnings) == 0 { - return - } - - fmt.Println("\n\n----------------------------") - fmt.Printf("!!! (%d) Warnings Were Found !!!\n\n", len(r.Warnings)) - for _, w := range r.Warnings { - fmt.Printf("[WARNING]: %s\n", w) - } - }() - - for _, c := range checks { - if r.App.WithModules { - cmd := exec.Command("go", "mod", "tidy") - cmd.Stderr = os.Stderr - if err := cmd.Run(); err != nil { - return err - } - } - if err := c(r); err != nil { - return err - } - } - return nil -} diff --git a/buffalo/cmd/fix/tools.go b/buffalo/cmd/fix/tools.go deleted file mode 100644 index 81806c5b4..000000000 --- a/buffalo/cmd/fix/tools.go +++ /dev/null @@ -1,26 +0,0 @@ -package fix - -import ( - "context" - "fmt" - "os/exec" - - "github.com/gobuffalo/genny/v2" -) - -var rTools = []string{} - -func installTools(r *Runner) error { - fmt.Println("~~~ Installing required tools ~~~") - run := genny.WetRunner(context.Background()) - g := genny.New() - app := r.App - if app.WithPop { - rTools = append(rTools, "github.com/gobuffalo/buffalo-pop/v2") - } - for _, t := range rTools { - g.Command(exec.Command("go", "get", t)) - } - run.With(g) - return run.Run() -} diff --git a/buffalo/cmd/fix/webpack.go b/buffalo/cmd/fix/webpack.go deleted file mode 100644 index 9774a5255..000000000 --- a/buffalo/cmd/fix/webpack.go +++ /dev/null @@ -1,69 +0,0 @@ -package fix - -import ( - "bytes" - "fmt" - "html/template" - "io/ioutil" - "os" - - "github.com/gobuffalo/buffalo/genny/assets/webpack" -) - -// WebpackCheck will compare the current default Buffalo -// webpack.config.js against the applications webpack.config.js. If they are -// different you have the option to overwrite the existing webpack.config.js -// file with the new one. -func WebpackCheck(r *Runner) error { - fmt.Println("~~~ Checking webpack.config.js ~~~") - - if !r.App.WithWebpack { - return nil - } - - box := webpack.Templates - - f, err := box.FindString("webpack.config.js.tmpl") - if err != nil { - return err - } - - tmpl, err := template.New("webpack").Parse(f) - if err != nil { - return err - } - - bb := &bytes.Buffer{} - err = tmpl.Execute(bb, map[string]interface{}{ - "opts": &webpack.Options{ - App: r.App, - }, - }) - if err != nil { - return err - } - - b, err := ioutil.ReadFile("webpack.config.js") - if err != nil { - return err - } - - if string(b) == bb.String() { - return nil - } - - if !ask("Your webpack.config.js file is different from the latest Buffalo template.\nWould you like to replace yours with the latest template?") { - fmt.Println("\tSkipping webpack.config.js") - return nil - } - - wf, err := os.Create("webpack.config.js") - if err != nil { - return err - } - _, err = wf.Write(bb.Bytes()) - if err != nil { - return err - } - return wf.Close() -} diff --git a/buffalo/cmd/generate.go b/buffalo/cmd/generate.go deleted file mode 100644 index 984858229..000000000 --- a/buffalo/cmd/generate.go +++ /dev/null @@ -1,22 +0,0 @@ -package cmd - -import ( - "github.com/gobuffalo/buffalo/buffalo/cmd/generate" - "github.com/spf13/cobra" -) - -var generateCmd = &cobra.Command{ - Use: "generate", - Short: "Generate application components", - Aliases: []string{"g"}, -} - -func init() { - generateCmd.AddCommand(generate.ResourceCmd) - generateCmd.AddCommand(generate.ActionCmd) - generateCmd.AddCommand(generate.TaskCmd) - generateCmd.AddCommand(generate.MailCmd) - decorate("generate", generateCmd) - - RootCmd.AddCommand(generateCmd) -} diff --git a/buffalo/cmd/generate/action.go b/buffalo/cmd/generate/action.go deleted file mode 100644 index e8fc2fe70..000000000 --- a/buffalo/cmd/generate/action.go +++ /dev/null @@ -1,58 +0,0 @@ -package generate - -import ( - "context" - "fmt" - - "github.com/gobuffalo/buffalo/genny/actions" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/logger" - "github.com/spf13/cobra" -) - -var actionOptions = struct { - *actions.Options - dryRun bool - verbose bool -}{ - Options: &actions.Options{}, -} - -//ActionCmd is the cmd that generates actions. -var ActionCmd = &cobra.Command{ - Use: "action [name] [handler name...]", - Aliases: []string{"a", "actions"}, - Short: "Generate new action(s)", - RunE: func(cmd *cobra.Command, args []string) error { - if len(args) == 0 { - return fmt.Errorf("you must provide a name") - } - actionOptions.Name = args[0] - if len(args) == 1 { - return fmt.Errorf("you must provide at least one action name") - } - actionOptions.Actions = args[1:] - - ctx := context.Background() - run := genny.WetRunner(ctx) - - if actionOptions.dryRun { - run = genny.DryRunner(ctx) - } - - if actionOptions.verbose { - run.Logger = logger.New(logger.DebugLevel) - } - - opts := actionOptions.Options - run.WithNew(actions.New(opts)) - return run.Run() - }, -} - -func init() { - ActionCmd.Flags().BoolVarP(&actionOptions.SkipTemplates, "skip-template", "", false, "skip generation of templates for action(s)") - ActionCmd.Flags().BoolVarP(&actionOptions.dryRun, "dry-run", "d", false, "dry run") - ActionCmd.Flags().BoolVarP(&actionOptions.verbose, "verbose", "v", false, "verbosely run the generator") - ActionCmd.Flags().StringVarP(&actionOptions.Method, "method", "m", "GET", "change the HTTP method for the generate action(s)") -} diff --git a/buffalo/cmd/generate/mailer.go b/buffalo/cmd/generate/mailer.go deleted file mode 100644 index e23122532..000000000 --- a/buffalo/cmd/generate/mailer.go +++ /dev/null @@ -1,53 +0,0 @@ -package generate - -import ( - "context" - - "github.com/gobuffalo/buffalo/genny/mail" - "github.com/gobuffalo/flect/name" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" - "github.com/gobuffalo/meta" - "github.com/spf13/cobra" -) - -var mailOptions = struct { - dryRun bool - *mail.Options -}{ - Options: &mail.Options{}, -} - -// MailCmd for generating mailers -var MailCmd = &cobra.Command{ - Use: "mailer [name]", - Short: "Generate a new mailer for Buffalo", - RunE: func(cmd *cobra.Command, args []string) error { - mailOptions.App = meta.New(".") - mailOptions.Name = name.New(args[0]) - gg, err := mail.New(mailOptions.Options) - if err != nil { - return err - } - - run := genny.WetRunner(context.Background()) - if mailOptions.dryRun { - run = genny.DryRunner(context.Background()) - } - - g, err := gogen.Fmt(mailOptions.App.Root) - if err != nil { - return err - } - run.With(g) - - gg.With(run) - return run.Run() - - }, -} - -func init() { - MailCmd.Flags().BoolVarP(&mailOptions.dryRun, "dry-run", "d", false, "dry run of the generator") - MailCmd.Flags().BoolVar(&mailOptions.SkipInit, "skip-init", false, "skip initializing mailers/") -} diff --git a/buffalo/cmd/generate/resource.go b/buffalo/cmd/generate/resource.go deleted file mode 100644 index fc6ed11cf..000000000 --- a/buffalo/cmd/generate/resource.go +++ /dev/null @@ -1,99 +0,0 @@ -package generate - -import ( - "context" - "fmt" - - "github.com/gobuffalo/attrs" - "github.com/gobuffalo/buffalo/genny/resource" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/logger" - "github.com/spf13/cobra" -) - -var resourceOptions = struct { - *resource.Options - Verbose bool - DryRun bool -}{ - Options: &resource.Options{}, -} - -// ResourceCmd generates a new actions/resource file and a stub test. -var ResourceCmd = &cobra.Command{ - Use: "resource [name]", - Example: resourceExamples, - Aliases: []string{"r"}, - Short: "Generate a new actions/resource file", - RunE: func(cmd *cobra.Command, args []string) error { - if len(args) == 0 { - return fmt.Errorf("you must supply a name") - } - ctx := context.Background() - run := genny.WetRunner(ctx) - if resourceOptions.DryRun { - run = genny.DryRunner(ctx) - } - - if resourceOptions.Verbose { - lg := logger.New(logger.DebugLevel) - run.Logger = lg - } - - if len(resourceOptions.Name) == 0 { - resourceOptions.Name = args[0] - } - if len(args) > 1 { - ats, err := attrs.ParseArgs(args[1:]...) - if err != nil { - return err - } - resourceOptions.Attrs = ats - } - - if err := run.WithNew(resource.New(resourceOptions.Options)); err != nil { - return err - } - return run.Run() - }, -} - -func init() { - ResourceCmd.Flags().BoolVarP(&resourceOptions.SkipMigration, "skip-migration", "s", false, "tells resource generator not-to add model migration") - ResourceCmd.Flags().BoolVarP(&resourceOptions.SkipModel, "skip-model", "", false, "tells resource generator not to generate model nor migrations") - ResourceCmd.Flags().BoolVarP(&resourceOptions.SkipTemplates, "skip-templates", "", false, "tells resource generator not to generate templates for the resource") - ResourceCmd.Flags().StringVarP(&resourceOptions.Model, "use-model", "", "", "tells resource generator to reference an existing model in generated code") - ResourceCmd.Flags().StringVarP(&resourceOptions.Name, "name", "n", "", "allows to define a different model name for the resource being generated.") - ResourceCmd.Flags().BoolVarP(&resourceOptions.DryRun, "dry-run", "d", false, "dry run") - ResourceCmd.Flags().BoolVarP(&resourceOptions.Verbose, "verbose", "v", false, "verbosely print out the go get commands") -} - -const resourceExamples = `$ buffalo g resource users -Generates: - -- actions/users.go -- actions/users_test.go -- models/user.go -- models/user_test.go -- migrations/2016020216301234_create_users.up.fizz -- migrations/2016020216301234_create_users.down.fizz - -$ buffalo g resource users --skip-migration -Generates: - -- actions/users.go -- actions/users_test.go -- models/user.go -- models/user_test.go - -$ buffalo g resource users --skip-model -Generates: - -- actions/users.go -- actions/users_test.go - -$ buffalo g resource users --use-model users -Generates: - -- actions/users.go -- actions/users_test.go` diff --git a/buffalo/cmd/generate/task.go b/buffalo/cmd/generate/task.go deleted file mode 100644 index e54e8d1c1..000000000 --- a/buffalo/cmd/generate/task.go +++ /dev/null @@ -1,52 +0,0 @@ -package generate - -import ( - "context" - "os" - - "github.com/gobuffalo/buffalo/genny/grift" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" - "github.com/spf13/cobra" -) - -var taskOptions = struct { - dryRun bool - *grift.Options -}{ - Options: &grift.Options{}, -} - -//TaskCmd is the command called with the generate grift cli. -var TaskCmd = &cobra.Command{ - Use: "task [name]", - Aliases: []string{"t", "grift"}, - Short: "Generate a grift task", - RunE: func(cmd *cobra.Command, args []string) error { - run := genny.WetRunner(context.Background()) - if taskOptions.dryRun { - run = genny.DryRunner(context.Background()) - } - - opts := taskOptions.Options - opts.Args = args - g, err := grift.New(opts) - if err != nil { - return err - } - run.With(g) - - pwd, _ := os.Getwd() - g, err = gogen.Fmt(pwd) - if err != nil { - return err - } - run.With(g) - - return run.Run() - }, -} - -func init() { - TaskCmd.Flags().BoolVarP(&taskOptions.dryRun, "dry-run", "d", false, "dry run of the generator") -} diff --git a/buffalo/cmd/info.go b/buffalo/cmd/info.go deleted file mode 100644 index d9423e6f9..000000000 --- a/buffalo/cmd/info.go +++ /dev/null @@ -1,63 +0,0 @@ -package cmd - -import ( - "context" - "os/exec" - "time" - - "github.com/gobuffalo/buffalo/genny/info" - "github.com/gobuffalo/clara/v2/genny/rx" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/meta" - "github.com/spf13/cobra" -) - -var infoOptions = struct { - Clara *rx.Options - Info *info.Options -}{ - Clara: &rx.Options{}, - Info: &info.Options{}, -} - -// infoCmd represents the info command -var infoCmd = &cobra.Command{ - Use: "info", - Short: "Print diagnostic information (useful for debugging)", - RunE: func(cmd *cobra.Command, args []string) error { - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - - run := genny.WetRunner(ctx) - - _, err := run.LookPath("clara") - if err == nil { - // use the clara binary if available - run.WithRun(func(r *genny.Runner) error { - return r.Exec(exec.Command("clara")) - }) - } else { - // no clara binary, so use the one bundled with buffalo - copts := infoOptions.Clara - if err := run.WithNew(rx.New(copts)); err != nil { - return err - } - } - - iopts := infoOptions.Info - if err := run.WithNew(info.New(iopts)); err != nil { - return err - } - - return run.Run() - }, -} - -func init() { - app := meta.New(".") - infoOptions.Clara.App = app - infoOptions.Info.App = app - - decorate("info", RootCmd) - RootCmd.AddCommand(infoCmd) -} diff --git a/buffalo/cmd/internal/integration/build_test.go b/buffalo/cmd/internal/integration/build_test.go deleted file mode 100644 index aac009c49..000000000 --- a/buffalo/cmd/internal/integration/build_test.go +++ /dev/null @@ -1,83 +0,0 @@ -// +build integration_test - -package integration - -import ( - "os" - "path/filepath" - "testing" - - "github.com/stretchr/testify/require" -) - -// Test_New_Build_Nominal creates a new nominal -// app and then builds it -func Test_New_Build_Nominal(t *testing.T) { - r := require.New(t) - args := []string{ - "new", - "build_nominal", - "--skip-pop", - "--skip-webpack", - "--vcs=none", - } - err := call(args, func(tdir string) { - ad := filepath.Join(tdir, "build_nominal") - r.DirExists(ad) - os.Chdir(ad) - - args = []string{"build"} - err := exec(args) - r.NoError(err) - }) - r.NoError(err) - -} - -// Test_New_Build_Api creates a new API -// app and then builds it -func Test_New_Build_Api(t *testing.T) { - r := require.New(t) - args := []string{ - "new", - "build_api", - "--skip-pop", - "--api", - "--vcs=none", - } - err := call(args, func(tdir string) { - ad := filepath.Join(tdir, "build_api") - r.DirExists(ad) - os.Chdir(ad) - - args = []string{"build"} - err := exec(args) - r.NoError(err) - }) - r.NoError(err) - -} -func Test_New_Build_Sqlite(t *testing.T) { - r := require.New(t) - - args := []string{ - "new", - "build_sqlite", - "--db-type=sqlite3", - "--skip-webpack", - "--vcs=none", - } - - err := call(args, func(tdir string) { - ad := filepath.Join(tdir, "build_sqlite") - r.DirExists(ad) - r.FileExists(filepath.Join(ad, "database.yml")) - os.Chdir(ad) - - args = []string{"build"} - err := exec(args) - r.NoError(err) - }) - r.NoError(err) - -} diff --git a/buffalo/cmd/internal/integration/integration_test.go b/buffalo/cmd/internal/integration/integration_test.go deleted file mode 100644 index 422230ea1..000000000 --- a/buffalo/cmd/internal/integration/integration_test.go +++ /dev/null @@ -1,67 +0,0 @@ -// +build integration_test - -package integration - -import ( - "os" - "path/filepath" - - "github.com/gobuffalo/buffalo/buffalo/cmd" - "github.com/gobuffalo/envy" - "github.com/gobuffalo/packr/v2/jam" - "github.com/markbates/safe" -) - -func call(args []string, fn func(dir string)) error { - jam.Clean() - defer jam.Clean() - ogp, err := envy.MustGet("GOPATH") - defer envy.MustSet("GOPATH", ogp) - gp := os.TempDir() - err = envy.MustSet("GOPATH", gp) - if err != nil { - return err - } - - if err != nil { - return err - } - if fn == nil { - if err := exec(args); err != nil { - return err - } - } - tdir := filepath.Join(gp, "src", "github.com", "gobuffalo", "testapp") - defer os.RemoveAll(tdir) - if err != nil { - return err - } - if err := os.RemoveAll(tdir); err != nil { - return err - } - if err := os.MkdirAll(tdir, 0755); err != nil { - return err - } - - pwd, err := os.Getwd() - if err != nil { - return err - } - os.Chdir(tdir) - os.Setenv("PWD", tdir) - defer os.Chdir(pwd) - defer os.Setenv("PWD", pwd) - - if err := exec(args); err != nil { - return err - } - return safe.Run(func() { - fn(tdir) - }) -} - -func exec(args []string) error { - c := cmd.RootCmd - c.SetArgs(args) - return c.Execute() -} diff --git a/buffalo/cmd/internal/integration/new_test.go b/buffalo/cmd/internal/integration/new_test.go deleted file mode 100644 index 93e63b21c..000000000 --- a/buffalo/cmd/internal/integration/new_test.go +++ /dev/null @@ -1,43 +0,0 @@ -// +build integration_test - -package integration - -import ( - "fmt" - "strings" - "testing" - - "github.com/gobuffalo/pop/v5" - "github.com/stretchr/testify/require" -) - -func Test_NewCmd_NoName(t *testing.T) { - err := call([]string{"new"}, nil) - r := require.New(t) - r.Error(err) - r.EqualError(err, "you must enter a name for your new application") -} - -func Test_NewCmd_InvalidDBType(t *testing.T) { - args := []string{ - "new", - "coke", - "--db-type", - "a", - } - err := call(args, nil) - r := require.New(t) - r.Error(err) - r.EqualError(err, fmt.Sprintf(`unknown dialect "a" expecting one of %s`, strings.Join(pop.AvailableDialects, ", "))) -} - -func Test_NewCmd_ForbiddenAppName(t *testing.T) { - args := []string{ - "new", - "buffalo", - } - err := call(args, nil) - r := require.New(t) - r.Error(err) - r.EqualError(err, "name buffalo is not allowed, try a different application name") -} diff --git a/buffalo/cmd/new.go b/buffalo/cmd/new.go deleted file mode 100644 index b58819482..000000000 --- a/buffalo/cmd/new.go +++ /dev/null @@ -1,349 +0,0 @@ -package cmd - -import ( - "bufio" - "bytes" - "context" - "fmt" - "os" - "os/exec" - "os/user" - "path/filepath" - "strings" - - pop "github.com/gobuffalo/buffalo-pop/v2/genny/newapp" - "github.com/gobuffalo/buffalo/genny/assets/standard" - "github.com/gobuffalo/buffalo/genny/assets/webpack" - "github.com/gobuffalo/buffalo/genny/ci" - "github.com/gobuffalo/buffalo/genny/docker" - "github.com/gobuffalo/buffalo/genny/newapp/api" - "github.com/gobuffalo/buffalo/genny/newapp/core" - "github.com/gobuffalo/buffalo/genny/newapp/web" - "github.com/gobuffalo/buffalo/genny/refresh" - "github.com/gobuffalo/buffalo/genny/vcs" - "github.com/gobuffalo/buffalo/internal/takeon/github.com/markbates/errx" - "github.com/gobuffalo/envy" - fname "github.com/gobuffalo/flect/name" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" - "github.com/gobuffalo/logger" - "github.com/gobuffalo/meta" - "github.com/gobuffalo/packr/v2/plog" - "github.com/gobuffalo/plush/v4" - "github.com/sirupsen/logrus" - "github.com/spf13/cobra" - "github.com/spf13/pflag" - "github.com/spf13/viper" -) - -type newAppOptions struct { - Options *core.Options - Module string - Force bool - Verbose bool - DryRun bool -} - -func parseNewOptions(args []string) (newAppOptions, error) { - nopts := newAppOptions{ - Force: viper.GetBool("force"), - Verbose: viper.GetBool("verbose"), - DryRun: viper.GetBool("dry-run"), - Module: viper.GetString("module"), - } - - if len(args) == 0 { - return nopts, fmt.Errorf("you must enter a name for your new application") - } - if configError != nil { - return nopts, configError - } - - pwd, err := os.Getwd() - if err != nil { - return nopts, err - } - app := meta.New(pwd) - app.WithGrifts = true - app.Name = fname.New(args[0]) - app.Bin = filepath.Join("bin", app.Name.String()) - - if app.Name.String() == "." { - app.Name = fname.New(filepath.Base(app.Root)) - } else { - app.Root = filepath.Join(app.Root, app.Name.File().String()) - } - - if len(nopts.Module) == 0 { - aa := meta.New(app.Root) - app.PackageRoot(aa.PackagePkg) - } else { - app.PackageRoot(nopts.Module) - } - - app.AsAPI = viper.GetBool("api") - app.VCS = viper.GetString("vcs") - - app.WithPop = !viper.GetBool("skip-pop") - app.WithWebpack = !viper.GetBool("skip-webpack") - app.WithYarn = !viper.GetBool("skip-yarn") - app.WithNodeJs = app.WithWebpack - app.AsWeb = !app.AsAPI - - if app.AsAPI { - app.WithWebpack = false - app.WithYarn = false - app.WithNodeJs = false - } - - opts := &core.Options{} - - x := viper.GetString("docker") - if len(x) > 0 && x != "none" { - opts.Docker = &docker.Options{ - Style: x, - } - app.WithDocker = true - } - - x = viper.GetString("ci-provider") - if len(x) > 0 && x != "none" { - opts.CI = &ci.Options{ - Provider: x, - DBType: viper.GetString("db-type"), - } - } - - if len(app.VCS) > 0 && app.VCS != "none" { - opts.VCS = &vcs.Options{ - Provider: app.VCS, - } - } - - if app.WithPop { - d := viper.GetString("db-type") - if d == "sqlite3" { - app.WithSQLite = true - } - - opts.Pop = &pop.Options{ - Prefix: app.Name.File().String(), - Dialect: d, - } - } - - opts.Refresh = &refresh.Options{} - - opts.App = app - nopts.Options = opts - return nopts, nil -} - -var configError error - -var newCmd = &cobra.Command{ - Use: "new [name]", - Short: "Creates a new Buffalo application", - RunE: func(cmd *cobra.Command, args []string) error { - // Restore default values after usage (useful for testing) - defer func() { - cmd.Flags().Visit(func(f *pflag.Flag) { - f.Value.Set(f.DefValue) - }) - viper.BindPFlags(cmd.Flags()) - }() - - nopts, err := parseNewOptions(args) - if err != nil { - return err - } - - opts := nopts.Options - app := opts.App - - ctx := context.Background() - - run := genny.WetRunner(ctx) - lg := logger.New(logger.DebugLevel) - run.Logger = lg - if nopts.Verbose { - plog.Logger = lg - } - - if nopts.DryRun { - run = genny.DryRunner(ctx) - } - run.Root = app.Root - if nopts.Force { - os.RemoveAll(app.Root) - } - - var gg *genny.Group - - if app.AsAPI { - gg, err = api.New(&api.Options{ - Options: opts, - }) - } else { - wo := &web.Options{ - Options: opts, - } - if app.WithWebpack { - wo.Webpack = &webpack.Options{} - } else { - wo.Standard = &standard.Options{} - } - gg, err = web.New(wo) - } - if err != nil { - if errx.Unwrap(err) == core.ErrNotInGoPath { - return notInGoPath(app) - } - return err - } - - g := genny.New() - g.Command(exec.Command("go", "mod", "tidy")) - gg.Add(g) - - g = genny.New() - g.RunFn(func(r *genny.Runner) error { - deps, err := exec.Command("go", "list", "-f", "{{if not (or .Main .Indirect)}}{{.Path}}{{end}}", "-m", "all").Output() - if err != nil { - return err - } - - scanner := bufio.NewScanner(bytes.NewReader(deps)) - for scanner.Scan() { - if err := exec.Command("go", "get", scanner.Text()).Run(); err != nil { - return err - } - } - - if err := scanner.Err(); err != nil { - return err - } - - return nil - }) - gg.Add(g) - - g = genny.New() - g.Command(exec.Command("go", "mod", "tidy")) - gg.Add(g) - - run.WithGroup(gg) - - if err := run.WithNew(gogen.Fmt(app.Root)); err != nil { - return err - } - - // setup VCS last - if opts.VCS != nil { - // add the VCS generator - if err := run.WithNew(vcs.New(opts.VCS)); err != nil { - return err - } - } - - if err := run.Run(); err != nil { - return err - } - - run.Logger.Infof("Congratulations! Your application, %s, has been successfully built!", app.Name) - run.Logger.Infof("You can find your new application at: %v", app.Root) - run.Logger.Info("Please read the README.md file in your new application for next steps on running your application.") - return nil - }, -} - -func currentUser() (string, error) { - if _, err := exec.LookPath("git"); err == nil { - if b, err := exec.Command("git", "config", "github.user").Output(); err == nil { - return string(b), nil - } - } - u, err := user.Current() - if err != nil { - return "", err - } - username := u.Username - if t := strings.Split(username, `\`); len(t) > 0 { - username = t[len(t)-1] - } - return username, nil -} - -func notInGoPath(app meta.App) error { - username, err := currentUser() - if err != nil { - return err - } - pwd, _ := os.Getwd() - t, err := plush.Render(notInGoWorkspace, plush.NewContextWith(map[string]interface{}{ - "name": app.Name, - "gopath": envy.GoPath(), - "current": pwd, - "username": username, - })) - if err != nil { - return err - } - logrus.Error(t) - os.Exit(-1) - return nil -} - -func init() { - decorate("new", newCmd) - RootCmd.AddCommand(newCmd) - newCmd.Flags().Bool("api", false, "skip all front-end code and configure for an API server") - newCmd.Flags().BoolP("force", "f", false, "delete and remake if the app already exists") - newCmd.Flags().BoolP("dry-run", "d", false, "dry run") - newCmd.Flags().BoolP("verbose", "v", false, "verbosely print out the go get commands") - newCmd.Flags().Bool("skip-pop", false, "skips adding pop/soda to your app") - newCmd.Flags().Bool("skip-webpack", false, "skips adding Webpack to your app") - newCmd.Flags().Bool("skip-yarn", false, "use npm instead of yarn for frontend dependencies management") - newCmd.Flags().String("db-type", "postgres", fmt.Sprintf("specify the type of database you want to use [%s]", strings.Join(pop.AvailableDialects, ", "))) - newCmd.Flags().String("docker", "multi", "specify the type of Docker file to generate [none, multi, standard]") - newCmd.Flags().String("ci-provider", "none", "specify the type of ci file you would like buffalo to generate [none, travis, gitlab-ci, circleci]") - newCmd.Flags().String("vcs", "git", "specify the Version control system you would like to use [none, git, bzr]") - newCmd.Flags().String("module", "", "specify the root module (package) name. [defaults to 'automatic']") - viper.BindPFlags(newCmd.Flags()) - cfgFile := newCmd.PersistentFlags().String("config", "", "config file (default is $HOME/.buffalo.yaml)") - skipConfig := newCmd.Flags().Bool("skip-config", false, "skips using the config file") - cobra.OnInitialize(initConfig(skipConfig, cfgFile)) -} - -func initConfig(skipConfig *bool, cfgFile *string) func() { - return func() { - if *skipConfig { - return - } - - var err error - if *cfgFile != "" { // enable ability to specify config file via flag - viper.SetConfigFile(*cfgFile) - // Will error only if the --config flag is used - if err = viper.ReadInConfig(); err != nil { - configError = err - } - } else { - viper.SetConfigName(".buffalo") // name of config file (without extension) - viper.AddConfigPath("$HOME") // adding home directory as first search path - viper.AutomaticEnv() // read in environment variables that match - viper.ReadInConfig() - } - - } -} - -const notInGoWorkspace = `Oops! It would appear that you are not in your Go Workspace. - -Your $GOPATH is set to "<%= gopath %>". - -You are currently in "<%= current %>". - -The standard location for putting Go projects is something along the lines of "$GOPATH/src/github.com/<%= username %>/<%= name %>" (adjust accordingly). - -We recommend you go to "$GOPATH/src/github.com/<%= username %>/" and try "buffalo new <%= name %>" again.` diff --git a/buffalo/cmd/new_test.go b/buffalo/cmd/new_test.go deleted file mode 100644 index 1d619dd05..000000000 --- a/buffalo/cmd/new_test.go +++ /dev/null @@ -1 +0,0 @@ -package cmd diff --git a/buffalo/cmd/plugins.go b/buffalo/cmd/plugins.go deleted file mode 100644 index 44b699346..000000000 --- a/buffalo/cmd/plugins.go +++ /dev/null @@ -1,36 +0,0 @@ -package cmd - -import ( - pluginscmd "github.com/gobuffalo/buffalo/buffalo/cmd/plugins" - "github.com/gobuffalo/buffalo/plugins" - "github.com/markbates/oncer" - "github.com/sirupsen/logrus" - "github.com/spf13/cobra" -) - -func init() { - RootCmd.AddCommand(pluginscmd.PluginsCmd) -} - -var _plugs plugins.List - -func plugs() plugins.List { - oncer.Do("buffalo/cmd/plugins", func() { - var err error - _plugs, err = plugins.Available() - if err != nil { - _plugs = plugins.List{} - logrus.Errorf("error loading plugins %s", err) - } - }) - return _plugs -} - -func decorate(name string, cmd *cobra.Command) { - pugs := plugs() - for _, c := range pugs[name] { - anywhereCommands = append(anywhereCommands, c.Name) - cc := plugins.Decorate(c) - cmd.AddCommand(cc) - } -} diff --git a/buffalo/cmd/plugins/add.go b/buffalo/cmd/plugins/add.go deleted file mode 100644 index b2e075fc3..000000000 --- a/buffalo/cmd/plugins/add.go +++ /dev/null @@ -1,68 +0,0 @@ -package plugins - -import ( - "context" - "os" - "path" - "strings" - - "github.com/gobuffalo/buffalo/genny/add" - "github.com/gobuffalo/buffalo/internal/takeon/github.com/markbates/errx" - "github.com/gobuffalo/buffalo/plugins/plugdeps" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/meta" - "github.com/spf13/cobra" -) - -var addOptions = struct { - dryRun bool - buildTags []string -}{} - -var addCmd = &cobra.Command{ - Use: "add", - Short: "adds plugins to config/buffalo-plugins.toml", - RunE: func(cmd *cobra.Command, args []string) error { - run := genny.WetRunner(context.Background()) - if addOptions.dryRun { - run = genny.DryRunner(context.Background()) - } - - app := meta.New(".") - plugs, err := plugdeps.List(app) - if err != nil && (errx.Unwrap(err) != plugdeps.ErrMissingConfig) { - return err - } - - tags := app.BuildTags("", addOptions.buildTags...) - for _, a := range args { - a = strings.TrimSpace(a) - bin := path.Base(a) - plug := plugdeps.Plugin{ - Binary: bin, - GoGet: a, - Tags: tags, - } - if _, err := os.Stat(a); err == nil { - plug.Local = a - plug.GoGet = "" - } - plugs.Add(plug) - } - g, err := add.New(&add.Options{ - App: app, - Plugins: plugs.List(), - }) - if err != nil { - return err - } - run.With(g) - - return run.Run() - }, -} - -func init() { - addCmd.Flags().BoolVarP(&addOptions.dryRun, "dry-run", "d", false, "dry run") - addCmd.Flags().StringSliceVarP(&addOptions.buildTags, "tags", "t", []string{}, "build tags") -} diff --git a/buffalo/cmd/plugins/available.go b/buffalo/cmd/plugins/available.go deleted file mode 100644 index a95078d00..000000000 --- a/buffalo/cmd/plugins/available.go +++ /dev/null @@ -1,26 +0,0 @@ -package plugins - -import ( - "github.com/gobuffalo/buffalo/plugins/plugcmds" - "github.com/spf13/cobra" -) - -// Available used to manage all of the available commands -// for the plugins -var Available = plugcmds.NewAvailable() - -// PluginsCmd is the "root" command for the plugin features. -var PluginsCmd = &cobra.Command{ - Use: "plugins", - Short: "tools for working with buffalo plugins", -} - -func init() { - PluginsCmd.AddCommand(addCmd) - PluginsCmd.AddCommand(listCmd) - PluginsCmd.AddCommand(removeCmd) - PluginsCmd.AddCommand(installCmd) - PluginsCmd.AddCommand(cacheCmd) - - Available.ListenFor("buffalo:setup:.+", Listen) -} diff --git a/buffalo/cmd/plugins/cache.go b/buffalo/cmd/plugins/cache.go deleted file mode 100644 index 2fda606c8..000000000 --- a/buffalo/cmd/plugins/cache.go +++ /dev/null @@ -1,22 +0,0 @@ -package plugins - -import ( - "github.com/gobuffalo/buffalo/buffalo/cmd/plugins/internal/cache" - "github.com/spf13/cobra" -) - -// cacheCmd represents the cache command -var cacheCmd = &cobra.Command{ - Use: "cache", - Short: "commands for managing the plugins cache", - RunE: func(cmd *cobra.Command, args []string) error { - return cache.ListCmd.RunE(cmd, args) - }, -} - -func init() { - cacheCmd.AddCommand(cache.CleanCmd) - cacheCmd.AddCommand(cache.ListCmd) - cacheCmd.AddCommand(cache.BuildCmd) - PluginsCmd.AddCommand(cacheCmd) -} diff --git a/buffalo/cmd/plugins/encode.go b/buffalo/cmd/plugins/encode.go deleted file mode 100644 index f44d165e5..000000000 --- a/buffalo/cmd/plugins/encode.go +++ /dev/null @@ -1,22 +0,0 @@ -package plugins - -import ( - "bytes" - - "github.com/gobuffalo/buffalo/plugins/plugdeps" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/meta" -) - -// NewEncodePluginsRunner will return a runner that will encode the plugins file -func NewEncodePluginsRunner(app meta.App, plugs *plugdeps.Plugins) func(r *genny.Runner) error { - return func(r *genny.Runner) error { - p := plugdeps.ConfigPath(app) - bb := &bytes.Buffer{} - if err := plugs.Encode(bb); err != nil { - return err - } - - return r.File(genny.NewFile(p, bb)) - } -} diff --git a/buffalo/cmd/plugins/install.go b/buffalo/cmd/plugins/install.go deleted file mode 100644 index 98a6abdd2..000000000 --- a/buffalo/cmd/plugins/install.go +++ /dev/null @@ -1,85 +0,0 @@ -package plugins - -import ( - "bytes" - "context" - "io" - "os" - "path" - "strings" - - "github.com/gobuffalo/buffalo/genny/plugins/install" - "github.com/gobuffalo/buffalo/internal/takeon/github.com/markbates/errx" - "github.com/gobuffalo/buffalo/plugins/plugdeps" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/logger" - "github.com/gobuffalo/meta" - "github.com/spf13/cobra" -) - -var installOptions = struct { - dryRun bool - vendor bool - verbose bool -}{} - -var installCmd = &cobra.Command{ - Use: "install", - Short: "installs plugins listed in config/buffalo-plugins.toml", - RunE: func(cmd *cobra.Command, args []string) error { - run := genny.WetRunner(context.Background()) - if installOptions.dryRun { - run = genny.DryRunner(context.Background()) - if installOptions.vendor { - run.FileFn = func(f genny.File) (genny.File, error) { - bb := &bytes.Buffer{} - if _, err := io.Copy(bb, f); err != nil { - return f, err - } - return genny.NewFile(f.Name(), bb), nil - } - } - } - - app := meta.New(".") - plugs, err := plugdeps.List(app) - if err != nil && (errx.Unwrap(err) != plugdeps.ErrMissingConfig) { - return err - } - - for _, a := range args { - a = strings.TrimSpace(a) - bin := path.Base(a) - plug := plugdeps.Plugin{ - Binary: bin, - GoGet: a, - } - if _, err := os.Stat(a); err == nil { - plug.Local = a - plug.GoGet = "" - } - plugs.Add(plug) - } - gg, err := install.New(&install.Options{ - App: app, - Plugins: plugs.List(), - Vendor: installOptions.vendor, - }) - if err != nil { - return err - } - run.WithGroup(gg) - - if installOptions.verbose { - run.Logger = logger.New(logger.DebugLevel) - } - - return run.Run() - }, -} - -func init() { - installCmd.Flags().BoolVarP(&installOptions.dryRun, "dry-run", "d", false, "dry run") - installCmd.Flags().BoolVarP(&installOptions.verbose, "verbose", "v", false, "turn on verbose logging") - installCmd.Flags().BoolVar(&installOptions.vendor, "vendor", false, "will install plugin binaries into ./plugins [WINDOWS not currently supported]") -} diff --git a/buffalo/cmd/plugins/internal/cache/build.go b/buffalo/cmd/plugins/internal/cache/build.go deleted file mode 100644 index 3d6378c64..000000000 --- a/buffalo/cmd/plugins/internal/cache/build.go +++ /dev/null @@ -1,19 +0,0 @@ -package cache - -import ( - "os" - - "github.com/gobuffalo/buffalo/plugins" - "github.com/spf13/cobra" -) - -// BuildCmd rebuilds the plugins cache -var BuildCmd = &cobra.Command{ - Use: "build", - Short: "rebuilds the plugins cache", - RunE: func(cmd *cobra.Command, args []string) error { - os.RemoveAll(plugins.CachePath) - _, err := plugins.Available() - return err - }, -} diff --git a/buffalo/cmd/plugins/internal/cache/clean.go b/buffalo/cmd/plugins/internal/cache/clean.go deleted file mode 100644 index 013cd0fb7..000000000 --- a/buffalo/cmd/plugins/internal/cache/clean.go +++ /dev/null @@ -1,18 +0,0 @@ -package cache - -import ( - "os" - - "github.com/gobuffalo/buffalo/plugins" - "github.com/spf13/cobra" -) - -// CleanCmd cleans the plugins cache -var CleanCmd = &cobra.Command{ - Use: "clean", - Short: "cleans the plugins cache", - RunE: func(cmd *cobra.Command, args []string) error { - os.RemoveAll(plugins.CachePath) - return nil - }, -} diff --git a/buffalo/cmd/plugins/internal/cache/list.go b/buffalo/cmd/plugins/internal/cache/list.go deleted file mode 100644 index 47f77b095..000000000 --- a/buffalo/cmd/plugins/internal/cache/list.go +++ /dev/null @@ -1,34 +0,0 @@ -package cache - -import ( - "encoding/json" - "fmt" - "io/ioutil" - - "github.com/gobuffalo/buffalo/plugins" - "github.com/spf13/cobra" -) - -// ListCmd displays the contents of the plugin cache -var ListCmd = &cobra.Command{ - Use: "list", - Short: "displays the contents of the plugin cache", - RunE: func(cmd *cobra.Command, args []string) error { - b, err := ioutil.ReadFile(plugins.CachePath) - if err != nil { - return err - } - m := map[string]interface{}{} - err = json.Unmarshal(b, &m) - if err != nil { - return err - } - is, err := json.MarshalIndent(m, "", " ") - if err != nil { - return err - } - - fmt.Println(string(is)) - return nil - }, -} diff --git a/buffalo/cmd/plugins/list.go b/buffalo/cmd/plugins/list.go deleted file mode 100644 index 69cca8573..000000000 --- a/buffalo/cmd/plugins/list.go +++ /dev/null @@ -1,57 +0,0 @@ -package plugins - -import ( - "bytes" - "fmt" - "os" - "path/filepath" - "sort" - "text/tabwriter" - - pluginsin "github.com/gobuffalo/buffalo/plugins" - "github.com/spf13/cobra" -) - -var listCmd = &cobra.Command{ - Use: "list", - Short: "a list of installed buffalo plugins", - RunE: func(cmd *cobra.Command, args []string) error { - list, err := pluginsin.Available() - if err != nil { - return err - } - - var cmds pluginsin.Commands - - for _, l := range list { - cmds = append(cmds, l...) - } - - sort.Slice(cmds, func(i, j int) bool { - c1 := cmds[i] - c2 := cmds[j] - - return c1.Name+c1.Name < c2.Name+c2.Name - }) - - w := tabwriter.NewWriter(os.Stdout, 0, 0, 1, ' ', tabwriter.Debug) - fmt.Fprintln(w, "Bin\tCommand\tDescription") - fmt.Fprintln(w, "---\t---\t---") - - for _, c := range cmds { - if c.Name == "" { - continue - } - sb := &bytes.Buffer{} - sb.WriteString("buffalo ") - if c.BuffaloCommand != "root" { - sb.WriteString(c.BuffaloCommand) - sb.WriteString(" ") - } - sb.WriteString(c.Name) - fmt.Fprintf(w, "%s\t%s\t%s\n", filepath.Base(c.Binary), sb.String(), c.Description) - } - - return w.Flush() - }, -} diff --git a/buffalo/cmd/plugins/listen.go b/buffalo/cmd/plugins/listen.go deleted file mode 100644 index 21d09a8ea..000000000 --- a/buffalo/cmd/plugins/listen.go +++ /dev/null @@ -1,35 +0,0 @@ -package plugins - -import ( - "context" - - "github.com/gobuffalo/buffalo/genny/plugins/install" - "github.com/gobuffalo/buffalo/plugins" - "github.com/gobuffalo/events" - "github.com/gobuffalo/genny/v2" -) - -// Listen is listener for plugin events pipeline -func Listen(e events.Event) error { - if e.Kind != "buffalo:setup:started" { - return nil - } - - run := genny.WetRunner(context.Background()) - - opts := &install.Options{} - gg, err := install.New(opts) - if err != nil { - return err - } - run.WithGroup(gg) - payload := e.Payload - payload["plugins"] = opts.Plugins - events.EmitPayload(plugins.EvtSetupStarted, payload) - if err := run.Run(); err != nil { - events.EmitError(plugins.EvtSetupErr, err, payload) - return err - } - events.EmitPayload(plugins.EvtSetupFinished, payload) - return nil -} diff --git a/buffalo/cmd/plugins/remove.go b/buffalo/cmd/plugins/remove.go deleted file mode 100644 index dde541bf7..000000000 --- a/buffalo/cmd/plugins/remove.go +++ /dev/null @@ -1,56 +0,0 @@ -package plugins - -import ( - "context" - "fmt" - "path" - "strings" - - "github.com/gobuffalo/buffalo/internal/takeon/github.com/markbates/errx" - "github.com/gobuffalo/buffalo/plugins/plugdeps" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/meta" - "github.com/spf13/cobra" -) - -var removeOptions = struct { - dryRun bool - vendor bool -}{} - -var removeCmd = &cobra.Command{ - Use: "remove", - Short: "removes plugin from config/buffalo-plugins.toml", - RunE: func(cmd *cobra.Command, args []string) error { - if len(args) == 0 { - return fmt.Errorf("you must specify at least one package") - } - run := genny.WetRunner(context.Background()) - if removeOptions.dryRun { - run = genny.DryRunner(context.Background()) - } - - app := meta.New(".") - plugs, err := plugdeps.List(app) - if err != nil && (errx.Unwrap(err) != plugdeps.ErrMissingConfig) { - return err - } - - for _, a := range args { - a = strings.TrimSpace(a) - bin := path.Base(a) - plugs.Remove(plugdeps.Plugin{ - Binary: bin, - GoGet: a, - }) - } - - run.WithRun(NewEncodePluginsRunner(app, plugs)) - return run.Run() - }, -} - -func init() { - removeCmd.Flags().BoolVarP(&removeOptions.dryRun, "dry-run", "d", false, "dry run") - removeCmd.Flags().BoolVar(&removeOptions.vendor, "vendor", false, "will install plugin binaries into ./plugins [WINDOWS not currently supported]") -} diff --git a/buffalo/cmd/root.go b/buffalo/cmd/root.go deleted file mode 100644 index 9d4ada248..000000000 --- a/buffalo/cmd/root.go +++ /dev/null @@ -1,82 +0,0 @@ -package cmd - -import ( - "fmt" - "os" - "strings" - - "github.com/gobuffalo/buffalo" - "github.com/sirupsen/logrus" - "github.com/spf13/cobra" -) - -var anywhereCommands = []string{"new", "version", "info", "help"} - -// RootCmd is the hook for all of the other commands in the buffalo binary. -var RootCmd = &cobra.Command{ - SilenceErrors: true, - Use: "buffalo", - Short: "Build Buffalo applications with ease", - PersistentPreRunE: func(cmd *cobra.Command, args []string) error { - if err := buffalo.LoadPlugins(); err != nil { - return err - } - isFreeCommand := false - for _, freeCmd := range anywhereCommands { - if freeCmd == cmd.Name() { - isFreeCommand = true - } - } - - if isFreeCommand { - return nil - } - - if !insideBuffaloProject() { - return fmt.Errorf("you need to be inside your buffalo project path to run this command") - } - - return nil - }, -} - -// Execute adds all child commands to the root command sets flags appropriately. -// This is called by main.main(). It only needs to happen once to the rootCmd. -func Execute() { - if err := RootCmd.Execute(); err != nil { - if strings.Contains(err.Error(), dbNotFound) || strings.Contains(err.Error(), popNotFound) { - logrus.Errorf(popInstallInstructions) - os.Exit(-1) - } - logrus.Errorf("Error: %s", err) - if strings.Contains(err.Error(), dbNotFound) || strings.Contains(err.Error(), popNotFound) { - fmt.Println(popInstallInstructions) - os.Exit(-1) - } - os.Exit(-1) - } -} - -const dbNotFound = `unknown command "db"` -const popNotFound = `unknown command "pop"` -const popInstallInstructions = `Pop support has been moved to the https://github.com/gobuffalo/buffalo-pop plugin. - -!! PLEASE READ PLUGIN DOCUMENTATION - https://gobuffalo.io/en/docs/plugins - -Buffalo Plugins Installation*: - - $ buffalo plugins install github.com/gobuffalo/buffalo-pop - -` - -func init() { - decorate("root", RootCmd) -} - -func insideBuffaloProject() bool { - if _, err := os.Stat(".buffalo.dev.yml"); err != nil { - return false - } - - return true -} diff --git a/buffalo/cmd/routes.go b/buffalo/cmd/routes.go deleted file mode 100644 index 100317901..000000000 --- a/buffalo/cmd/routes.go +++ /dev/null @@ -1,19 +0,0 @@ -package cmd - -import ( - grifts "github.com/markbates/grift/cmd" - "github.com/spf13/cobra" -) - -func init() { - decorate("routes", routesCmd) - RootCmd.AddCommand(routesCmd) -} - -var routesCmd = &cobra.Command{ - Use: "routes", - Short: "Print all defined routes", - RunE: func(c *cobra.Command, args []string) error { - return grifts.Run("buffalo task", []string{"routes"}) - }, -} diff --git a/buffalo/cmd/setup.go b/buffalo/cmd/setup.go deleted file mode 100644 index f85520f73..000000000 --- a/buffalo/cmd/setup.go +++ /dev/null @@ -1,178 +0,0 @@ -package cmd - -import ( - "bytes" - "fmt" - "os" - "os/exec" - "strings" - - "github.com/gobuffalo/events" - "github.com/gobuffalo/meta" - "github.com/sirupsen/logrus" - "github.com/spf13/cobra" -) - -var setupOptions = struct { - verbose bool - dropDatabases bool -}{} - -type setupCheck func(meta.App) error - -var setupCmd = &cobra.Command{ - Use: "setup", - Short: "Setup a newly created, or recently checked out application.", - Long: `Setup runs through checklist to make sure dependencies are setup correctly. - -Asset Pipeline (if used): -* Runs "npm install" or "yarn install" to install asset dependencies. - -Database (if used): -* Runs "buffalo db create -a" to create databases. -* Runs "buffalo db migrate" to run database migrations. -* Runs "buffalo task db:seed" to seed the database (if the task exists). - -Tests: -* Runs "buffalo test" to confirm the application's tests are running properly. -`, - RunE: func(cmd *cobra.Command, args []string) error { - app := meta.New(".") - payload := events.Payload{ - "app": app, - } - events.EmitPayload(EvtSetupStarted, payload) - for _, check := range []setupCheck{assetCheck, databaseCheck, testCheck} { - err := check(app) - if err != nil { - events.EmitError(EvtSetupErr, err, payload) - return err - } - } - events.EmitPayload(EvtSetupFinished, payload) - return nil - }, -} - -func testCheck(meta.App) error { - err := run(exec.Command("buffalo", "test")) - if err != nil { - return fmt.Errorf("We encountered the following error when trying to run your applications tests:\n%s", err) - } - return nil -} - -func databaseCheck(app meta.App) error { - if !app.WithPop { - return nil - } - for _, check := range []setupCheck{dbCreateCheck, dbMigrateCheck, dbSeedCheck} { - err := check(app) - if err != nil { - return err - } - } - return nil -} - -func dbCreateCheck(meta.App) error { - if setupOptions.dropDatabases { - err := run(exec.Command("buffalo", "pop", "drop", "-a")) - if err != nil { - return fmt.Errorf("We encountered an error when trying to drop your application's databases. Please check to make sure that your database server is running and that the username and passwords found in the database.yml are properly configured and set up on your database server.\n %s", err) - } - } - err := run(exec.Command("buffalo", "pop", "create", "-a")) - if err != nil { - return fmt.Errorf("We encountered an error when trying to create your application's databases. Please check to make sure that your database server is running and that the username and passwords found in the database.yml are properly configured and set up on your database server.\n %s", err) - } - return nil -} - -func dbMigrateCheck(meta.App) error { - err := run(exec.Command("buffalo", "pop", "migrate")) - if err != nil { - return fmt.Errorf("We encountered the following error when trying to migrate your database:\n%s", err) - } - return nil -} - -func dbSeedCheck(meta.App) error { - cmd := exec.Command("buffalo", "t", "list") - out, err := cmd.Output() - if err != nil { - // no tasks configured, so return - return nil - } - if bytes.Contains(out, []byte("db:seed")) { - err := run(exec.Command("buffalo", "task", "db:seed")) - if err != nil { - return fmt.Errorf("We encountered the following error when trying to seed your database:\n%s", err) - } - } - return nil -} - -func assetCheck(app meta.App) error { - if !app.WithWebpack { - return nil - } - if app.WithYarn { - return yarnCheck(app) - } - return npmCheck(app) -} - -func npmCheck(app meta.App) error { - err := nodeCheck(app) - if err != nil { - return err - } - err = run(exec.Command("npm", "install", "--no-progress")) - if err != nil { - return fmt.Errorf("We encountered the following error when trying to install your asset dependencies using npm:\n%s", err) - } - return nil -} - -func yarnCheck(app meta.App) error { - if err := nodeCheck(app); err != nil { - return err - } - if _, err := exec.LookPath("yarnpkg"); err != nil { - err := run(exec.Command("npm", "install", "-g", "yarn")) - if err != nil { - return fmt.Errorf("This application require yarn, and we could not find it installed on your system. We tried to install it for you, but ran into the following error:\n%s", err) - } - } - if err := run(exec.Command("yarnpkg", "install", "--no-progress")); err != nil { - return fmt.Errorf("We encountered the following error when trying to install your asset dependencies using yarn:\n%s", err) - } - return nil -} - -func nodeCheck(meta.App) error { - if _, err := exec.LookPath("node"); err != nil { - return fmt.Errorf("this application requires node, and we could not find it installed on your system please install node and try again") - } - if _, err := exec.LookPath("npm"); err != nil { - return fmt.Errorf("this application requires npm, and we could not find it installed on your system please install npm and try again") - } - return nil -} - -func run(cmd *exec.Cmd) error { - logrus.Infof("--> %s", strings.Join(cmd.Args, " ")) - cmd.Stdin = os.Stdin - cmd.Stderr = os.Stderr - cmd.Stdout = os.Stdout - return cmd.Run() -} - -func init() { - setupCmd.Flags().BoolVarP(&setupOptions.verbose, "verbose", "v", false, "run with verbose output") - setupCmd.Flags().BoolVarP(&setupOptions.dropDatabases, "drop", "d", false, "drop existing databases") - - decorate("setup", setupCmd) - RootCmd.AddCommand(setupCmd) -} diff --git a/buffalo/cmd/task.go b/buffalo/cmd/task.go deleted file mode 100644 index 198d18516..000000000 --- a/buffalo/cmd/task.go +++ /dev/null @@ -1,25 +0,0 @@ -package cmd - -import ( - grifts "github.com/markbates/grift/cmd" - "github.com/spf13/cobra" -) - -// task command is a forward to grift tasks -var taskCommand = &cobra.Command{ - Use: "task", - Aliases: []string{"t", "tasks"}, - Short: "Run grift tasks", - DisableFlagParsing: true, - RunE: func(c *cobra.Command, args []string) error { - return grifts.Run("buffalo task", args) - }, - PersistentPreRunE: func(cmd *cobra.Command, args []string) error { - return nil - }, -} - -func init() { - decorate("task", taskCommand) - RootCmd.AddCommand(taskCommand) -} diff --git a/buffalo/cmd/test.go b/buffalo/cmd/test.go deleted file mode 100644 index 509f01fab..000000000 --- a/buffalo/cmd/test.go +++ /dev/null @@ -1,241 +0,0 @@ -package cmd - -import ( - "bytes" - "fmt" - "io" - "os" - "os/exec" - "path/filepath" - "strings" - - "github.com/gobuffalo/envy" - "github.com/gobuffalo/meta" - "github.com/sirupsen/logrus" - - "github.com/gobuffalo/pop/v5" - "github.com/spf13/cobra" -) - -var forceMigrations = false - -func init() { - decorate("test", testCmd) - RootCmd.AddCommand(testCmd) -} - -var testCmd = &cobra.Command{ - Use: "test", - Short: "Run the tests for the Buffalo app. Use --force-migrations to skip schema load.", - DisableFlagParsing: true, - RunE: func(c *cobra.Command, args []string) error { - os.Setenv("GO_ENV", "test") - if _, err := os.Stat("database.yml"); err == nil { - // there's a database - test, err := pop.Connect("test") - if err != nil { - return err - } - - // drop the test db: - test.Dialect.DropDB() - - // create the test db: - err = test.Dialect.CreateDB() - if err != nil { - return err - } - - // Read and remove --force-migrations flag from args: - forceMigrations = strings.Contains(strings.Join(args, ""), "--force-migrations") - args = cutArg("--force-migrations", args) - if forceMigrations { - fm, err := pop.NewFileMigrator("./migrations", test) - - if err != nil { - return err - } - - if err := fm.Up(); err != nil { - return err - } - - return testRunner(args) - } - - if schema := findSchema(); schema != nil { - err = test.Dialect.LoadSchema(schema) - if err != nil { - return err - } - } - } - return testRunner(args) - }, -} - -func findSchema() io.Reader { - if f, err := os.Open(filepath.Join("migrations", "schema.sql")); err == nil { - return f - } - if dev, err := pop.Connect("development"); err == nil { - schema := &bytes.Buffer{} - if err = dev.Dialect.DumpSchema(schema); err == nil { - return schema - } - } - - if test, err := pop.Connect("test"); err == nil { - fm, err := pop.NewFileMigrator("./migrations", test) - if err != nil { - return nil - } - - if err := fm.Up(); err == nil { - return nil - } - } - return nil -} - -func testRunner(args []string) error { - var mFlag bool - var query string - - commandArgs := []string{} - packageArgs := []string{} - - var lastArg string - for index, arg := range args { - switch arg { - case "-run", "-m": - query = args[index+1] - mFlag = true - case "-v", "-timeout": - commandArgs = append(commandArgs, arg) - default: - if lastArg == "-timeout" { - commandArgs = append(commandArgs, arg) - } else if lastArg != "-run" && lastArg != "-m" { - packageArgs = append(packageArgs, arg) - } - } - - lastArg = arg - } - - cmd := newTestCmd(commandArgs) - if mFlag { - return mFlagRunner{ - query: query, - args: commandArgs, - pargs: packageArgs, - }.Run() - } - - pkgs, err := testPackages(packageArgs) - if err != nil { - return err - } - - cmd.Args = append(cmd.Args, pkgs...) - logrus.Info(strings.Join(cmd.Args, " ")) - return cmd.Run() -} - -type mFlagRunner struct { - query string - args []string - pargs []string -} - -func (m mFlagRunner) Run() error { - app := meta.New(".") - pwd, _ := os.Getwd() - defer os.Chdir(pwd) - - pkgs, err := testPackages(m.pargs) - if err != nil { - return err - } - - var errs bool - for _, p := range pkgs { - os.Chdir(pwd) - - if p == app.PackagePkg { - continue - } - - p = strings.TrimPrefix(p, app.PackagePkg+string(filepath.Separator)) - os.Chdir(p) - - cmd := newTestCmd(m.args) - if hasTestify(p) { - cmd.Args = append(cmd.Args, "-testify.m", m.query) - } else { - cmd.Args = append(cmd.Args, "-run", m.query) - } - - logrus.Info(strings.Join(cmd.Args, " ")) - - if err := cmd.Run(); err != nil { - errs = true - } - } - if errs { - return fmt.Errorf("errors running tests") - } - return nil -} - -func hasTestify(p string) bool { - cmd := exec.Command("go", "test", "-thisflagdoesntexist") - b, _ := cmd.Output() - return bytes.Contains(b, []byte("-testify.m")) -} - -func testPackages(givenArgs []string) ([]string, error) { - // If there are args, then assume these are the packages to test. - // - // Instead of always returning all packages from 'go list ./...', just - // return the given packages in this case - if len(givenArgs) > 0 { - return givenArgs, nil - } - - args := []string{} - out, err := exec.Command(envy.Get("GO_BIN", "go"), "list", "./...").Output() - if err != nil { - return args, err - } - pkgs := bytes.Split(bytes.TrimSpace(out), []byte("\n")) - for _, p := range pkgs { - if !strings.Contains(string(p), "/vendor/") { - args = append(args, string(p)) - } - } - return args, nil -} - -func newTestCmd(args []string) *exec.Cmd { - cargs := []string{"test", "-p", "1"} - app := meta.New(".") - cargs = append(cargs, "-tags", app.BuildTags("development").String()) - cargs = append(cargs, args...) - cmd := exec.Command(envy.Get("GO_BIN", "go"), cargs...) - cmd.Stdin = os.Stdin - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - return cmd -} - -func cutArg(arg string, args []string) []string { - for i, v := range args { - if v == arg { - return append(args[:i], args[i+1:]...) - } - } - - return args -} diff --git a/buffalo/cmd/test_test.go b/buffalo/cmd/test_test.go deleted file mode 100644 index 3e23b29dd..000000000 --- a/buffalo/cmd/test_test.go +++ /dev/null @@ -1,27 +0,0 @@ -package cmd - -import ( - "reflect" - "testing" -) - -func Test_CutArg(t *testing.T) { - var tests = []struct { - arg string - args []string - expected []string - }{ - {"b", []string{"a", "b", "c"}, []string{"a", "c"}}, - {"--is-not-in-args", []string{"a", "b", "c"}, []string{"a", "b", "c"}}, - {"--foo", []string{"--foo", "--bar", "--baz"}, []string{"--bar", "--baz"}}, - {"--force-migrations", []string{"./actions/", "--force-migrations"}, []string{"./actions/"}}, - {"--force-migrations", []string{"./actions/", "--force-migrations", "-m", "Test_HomeHandler"}, []string{"./actions/", "-m", "Test_HomeHandler"}}, - } - - for _, tt := range tests { - result := cutArg(tt.arg, tt.args) - if !reflect.DeepEqual(result, tt.expected) { - t.Errorf("got %s, want %s when cutting %s from %s", result, tt.expected, tt.arg, tt.args) - } - } -} \ No newline at end of file diff --git a/buffalo/cmd/version.go b/buffalo/cmd/version.go deleted file mode 100644 index 927a514dc..000000000 --- a/buffalo/cmd/version.go +++ /dev/null @@ -1,40 +0,0 @@ -package cmd - -import ( - "encoding/json" - "os" - - "github.com/gobuffalo/buffalo/runtime" - "github.com/sirupsen/logrus" - "github.com/spf13/cobra" -) - -var jsonOutput bool - -func init() { - decorate("version", versionCmd) - versionCmd.Flags().BoolVar(&jsonOutput, "json", false, "Print information in json format") - - RootCmd.AddCommand(versionCmd) -} - -var versionCmd = &cobra.Command{ - Use: "version", - Short: "Print the version information", - Run: func(c *cobra.Command, args []string) { - if jsonOutput { - build := runtime.BuildInfo{} - build.Version = runtime.Version - enc := json.NewEncoder(os.Stderr) - enc.SetIndent("", " ") - enc.Encode(build) - return - } - - logrus.Infof("Buffalo version is: %s", runtime.Version) - }, - // needed to override the root level pre-run func - PersistentPreRunE: func(c *cobra.Command, args []string) error { - return nil - }, -} diff --git a/buffalo/cmd/version_test.go b/buffalo/cmd/version_test.go deleted file mode 100644 index 5da3c1a63..000000000 --- a/buffalo/cmd/version_test.go +++ /dev/null @@ -1,30 +0,0 @@ -package cmd - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func Test_VersionCmd(t *testing.T) { - r := require.New(t) - - c := RootCmd - c.SetArgs([]string{ - "version", - }) - err := c.Execute() - r.NoError(err) -} - -func Test_VersionJSONCmd(t *testing.T) { - r := require.New(t) - - c := RootCmd - c.SetArgs([]string{ - "version", - "--json", - }) - err := c.Execute() - r.NoError(err) -} diff --git a/buffalo/main.go b/buffalo/main.go deleted file mode 100644 index 325c65e05..000000000 --- a/buffalo/main.go +++ /dev/null @@ -1,9 +0,0 @@ -package main - -import ( - "github.com/gobuffalo/buffalo/buffalo/cmd" -) - -func main() { - cmd.Execute() -} diff --git a/genny/actions/_fixtures/inputs/clean/actions/app.go b/genny/actions/_fixtures/inputs/clean/actions/app.go deleted file mode 100644 index ebfc56cd1..000000000 --- a/genny/actions/_fixtures/inputs/clean/actions/app.go +++ /dev/null @@ -1,18 +0,0 @@ -package actions - -import ( - "github.com/gobuffalo/buffalo" -) - -var app *buffalo.App - -func App() *buffalo.App { - if app == nil { - app = buffalo.New(buffalo.Options{}) - app.GET("/", HomeHandler) - - app.ServeFiles("/", assetsBox) // serve files from the public directory - } - - return app -} diff --git a/genny/actions/_fixtures/inputs/existing/actions/app.go.tmpl b/genny/actions/_fixtures/inputs/existing/actions/app.go.tmpl deleted file mode 100644 index 6f8b7caa5..000000000 --- a/genny/actions/_fixtures/inputs/existing/actions/app.go.tmpl +++ /dev/null @@ -1,19 +0,0 @@ -package actions - -import ( - "github.com/gobuffalo/buffalo" -) - -var app *buffalo.App - -func App() *buffalo.App { - if app == nil { - app = buffalo.New(buffalo.Options{}) - app.GET("/", HomeHandler) - - app.GET("/user/edit", UserEdit) - app.ServeFiles("/", assetsBox) // serve files from the public directory - } - - return app -} diff --git a/genny/actions/_fixtures/inputs/existing/actions/user.go.tmpl b/genny/actions/_fixtures/inputs/existing/actions/user.go.tmpl deleted file mode 100644 index b02820733..000000000 --- a/genny/actions/_fixtures/inputs/existing/actions/user.go.tmpl +++ /dev/null @@ -1,13 +0,0 @@ -package actions - -import ( - "net/http" - - "github.com/gobuffalo/buffalo" -) - -// UserEdit default implementation. -func UserEdit(c buffalo.Context) error { - // custom existing work - return c.Render(http.StatusOK, r.HTML("user/edit.html")) -} diff --git a/genny/actions/_fixtures/inputs/existing/actions/user_test.go.tmpl b/genny/actions/_fixtures/inputs/existing/actions/user_test.go.tmpl deleted file mode 100644 index 2a72d205a..000000000 --- a/genny/actions/_fixtures/inputs/existing/actions/user_test.go.tmpl +++ /dev/null @@ -1,6 +0,0 @@ -package actions - -func (as *ActionSuite) Test_User_Edit() { - // custom test work - as.Fail("Not Implemented!") -} diff --git a/genny/actions/_fixtures/inputs/existing/templates/user/edit.plush.html b/genny/actions/_fixtures/inputs/existing/templates/user/edit.plush.html deleted file mode 100644 index 90780ea5a..000000000 --- a/genny/actions/_fixtures/inputs/existing/templates/user/edit.plush.html +++ /dev/null @@ -1 +0,0 @@ -

User#Edit

\ No newline at end of file diff --git a/genny/actions/_fixtures/outputs/clean/actions/app.go.tmpl b/genny/actions/_fixtures/outputs/clean/actions/app.go.tmpl deleted file mode 100644 index 26fe0fe6d..000000000 --- a/genny/actions/_fixtures/outputs/clean/actions/app.go.tmpl +++ /dev/null @@ -1,19 +0,0 @@ -package actions - -import ( - "github.com/gobuffalo/buffalo" -) - -var app *buffalo.App - -func App() *buffalo.App { - if app == nil { - app = buffalo.New(buffalo.Options{}) - app.GET("/", HomeHandler) - - app.GET("/user/index", UserIndex) - app.ServeFiles("/", assetsBox) // serve files from the public directory - } - - return app -} diff --git a/genny/actions/_fixtures/outputs/clean/actions/user.go.tmpl b/genny/actions/_fixtures/outputs/clean/actions/user.go.tmpl deleted file mode 100644 index c24f36ade..000000000 --- a/genny/actions/_fixtures/outputs/clean/actions/user.go.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -package actions - -import ( - "net/http" - - "github.com/gobuffalo/buffalo" -) - -// UserIndex default implementation. -func UserIndex(c buffalo.Context) error { - return c.Render(http.StatusOK, r.HTML("user/index.html")) -} diff --git a/genny/actions/_fixtures/outputs/clean/actions/user_test.go.tmpl b/genny/actions/_fixtures/outputs/clean/actions/user_test.go.tmpl deleted file mode 100644 index 69949f7d1..000000000 --- a/genny/actions/_fixtures/outputs/clean/actions/user_test.go.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -package actions - -func (as *ActionSuite) Test_User_Index() { - as.Fail("Not Implemented!") -} diff --git a/genny/actions/_fixtures/outputs/clean/templates/user/index.plush.html b/genny/actions/_fixtures/outputs/clean/templates/user/index.plush.html deleted file mode 100644 index a400e2f5d..000000000 --- a/genny/actions/_fixtures/outputs/clean/templates/user/index.plush.html +++ /dev/null @@ -1 +0,0 @@ -

User#Index

diff --git a/genny/actions/_fixtures/outputs/existing/actions/app.go.tmpl b/genny/actions/_fixtures/outputs/existing/actions/app.go.tmpl deleted file mode 100644 index 0af30d6f5..000000000 --- a/genny/actions/_fixtures/outputs/existing/actions/app.go.tmpl +++ /dev/null @@ -1,20 +0,0 @@ -package actions - -import ( - "github.com/gobuffalo/buffalo" -) - -var app *buffalo.App - -func App() *buffalo.App { - if app == nil { - app = buffalo.New(buffalo.Options{}) - app.GET("/", HomeHandler) - - app.GET("/user/edit", UserEdit) - app.GET("/user/show", UserShow) - app.ServeFiles("/", assetsBox) // serve files from the public directory - } - - return app -} diff --git a/genny/actions/_fixtures/outputs/existing/actions/user.go.tmpl b/genny/actions/_fixtures/outputs/existing/actions/user.go.tmpl deleted file mode 100644 index 194804594..000000000 --- a/genny/actions/_fixtures/outputs/existing/actions/user.go.tmpl +++ /dev/null @@ -1,18 +0,0 @@ -package actions - -import ( - "net/http" - - "github.com/gobuffalo/buffalo" -) - -// UserEdit default implementation. -func UserEdit(c buffalo.Context) error { - // custom existing work - return c.Render(http.StatusOK, r.HTML("user/edit.html")) -} - -// UserShow default implementation. -func UserShow(c buffalo.Context) error { - return c.Render(http.StatusOK, r.HTML("user/show.html")) -} diff --git a/genny/actions/_fixtures/outputs/existing/actions/user_test.go.tmpl b/genny/actions/_fixtures/outputs/existing/actions/user_test.go.tmpl deleted file mode 100644 index f3a9f8b1b..000000000 --- a/genny/actions/_fixtures/outputs/existing/actions/user_test.go.tmpl +++ /dev/null @@ -1,10 +0,0 @@ -package actions - -func (as *ActionSuite) Test_User_Edit() { - // custom test work - as.Fail("Not Implemented!") -} - -func (as *ActionSuite) Test_User_Show() { - as.Fail("Not Implemented!") -} diff --git a/genny/actions/_fixtures/outputs/existing/templates/user/edit.plush.html b/genny/actions/_fixtures/outputs/existing/templates/user/edit.plush.html deleted file mode 100644 index 90780ea5a..000000000 --- a/genny/actions/_fixtures/outputs/existing/templates/user/edit.plush.html +++ /dev/null @@ -1 +0,0 @@ -

User#Edit

\ No newline at end of file diff --git a/genny/actions/_fixtures/outputs/existing/templates/user/show.plush.html b/genny/actions/_fixtures/outputs/existing/templates/user/show.plush.html deleted file mode 100644 index ba61b250d..000000000 --- a/genny/actions/_fixtures/outputs/existing/templates/user/show.plush.html +++ /dev/null @@ -1 +0,0 @@ -

User#Show

\ No newline at end of file diff --git a/genny/actions/_fixtures/outputs/multi/actions/app.go.tmpl b/genny/actions/_fixtures/outputs/multi/actions/app.go.tmpl deleted file mode 100644 index 137b3a9d9..000000000 --- a/genny/actions/_fixtures/outputs/multi/actions/app.go.tmpl +++ /dev/null @@ -1,20 +0,0 @@ -package actions - -import ( - "github.com/gobuffalo/buffalo" -) - -var app *buffalo.App - -func App() *buffalo.App { - if app == nil { - app = buffalo.New(buffalo.Options{}) - app.GET("/", HomeHandler) - - app.GET("/user/show", UserShow) - app.GET("/user/edit", UserEdit) - app.ServeFiles("/", assetsBox) // serve files from the public directory - } - - return app -} diff --git a/genny/actions/_fixtures/outputs/multi/actions/user.go.tmpl b/genny/actions/_fixtures/outputs/multi/actions/user.go.tmpl deleted file mode 100644 index 79689d17c..000000000 --- a/genny/actions/_fixtures/outputs/multi/actions/user.go.tmpl +++ /dev/null @@ -1,17 +0,0 @@ -package actions - -import ( - "net/http" - - "github.com/gobuffalo/buffalo" -) - -// UserShow default implementation. -func UserShow(c buffalo.Context) error { - return c.Render(http.StatusOK, r.HTML("user/show.html")) -} - -// UserEdit default implementation. -func UserEdit(c buffalo.Context) error { - return c.Render(http.StatusOK, r.HTML("user/edit.html")) -} diff --git a/genny/actions/_fixtures/outputs/multi/actions/user_test.go.tmpl b/genny/actions/_fixtures/outputs/multi/actions/user_test.go.tmpl deleted file mode 100644 index 39313628d..000000000 --- a/genny/actions/_fixtures/outputs/multi/actions/user_test.go.tmpl +++ /dev/null @@ -1,9 +0,0 @@ -package actions - -func (as *ActionSuite) Test_User_Show() { - as.Fail("Not Implemented!") -} - -func (as *ActionSuite) Test_User_Edit() { - as.Fail("Not Implemented!") -} diff --git a/genny/actions/_fixtures/outputs/multi/templates/user/edit.plush.html b/genny/actions/_fixtures/outputs/multi/templates/user/edit.plush.html deleted file mode 100644 index 90780ea5a..000000000 --- a/genny/actions/_fixtures/outputs/multi/templates/user/edit.plush.html +++ /dev/null @@ -1 +0,0 @@ -

User#Edit

\ No newline at end of file diff --git a/genny/actions/_fixtures/outputs/multi/templates/user/show.plush.html b/genny/actions/_fixtures/outputs/multi/templates/user/show.plush.html deleted file mode 100644 index ba61b250d..000000000 --- a/genny/actions/_fixtures/outputs/multi/templates/user/show.plush.html +++ /dev/null @@ -1 +0,0 @@ -

User#Show

\ No newline at end of file diff --git a/genny/actions/actions-packr.go b/genny/actions/actions-packr.go deleted file mode 100644 index 22612f6c7..000000000 --- a/genny/actions/actions-packr.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !skippackr -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr clean" command to clean up this, -// and any other packr generated files. -package actions - -import _ "github.com/gobuffalo/buffalo/packrd" diff --git a/genny/actions/actions.go b/genny/actions/actions.go deleted file mode 100644 index 20678aa49..000000000 --- a/genny/actions/actions.go +++ /dev/null @@ -1,84 +0,0 @@ -package actions - -import ( - "fmt" - "strings" - - "github.com/gobuffalo/flect/name" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" - "github.com/gobuffalo/packr/v2" -) - -var box = packr.New("github.com/gobuffalo/buffalo/genny/actions/templates", "../actions/templates") - -// New returns a new generator for build actions on a Buffalo app -func New(opts *Options) (*genny.Generator, error) { - g := genny.New() - - if err := opts.Validate(); err != nil { - return g, err - } - - g.RunFn(construct(opts)) - return g, nil -} - -func construct(opts *Options) genny.RunFn { - return func(r *genny.Runner) error { - pres := &presenter{ - Name: name.New(opts.Name), - Data: data{}, - Helpers: data{}, - Options: opts, - } - - if err := buildActions(pres)(r); err != nil { - return err - } - - if err := buildTests(pres)(r); err != nil { - return err - } - - if err := updateApp(pres)(r); err != nil { - return err - } - - if !opts.SkipTemplates { - if err := buildTemplates(pres)(r); err != nil { - return err - } - } - return nil - } -} - -func transform(pres *presenter, f genny.File) (genny.File, error) { - pres.Data["actions"] = pres.Actions - pres.Data["name"] = pres.Name - t := gogen.TemplateTransformer(pres.Data, pres.Helpers) - return t.Transform(f) -} - -func updateApp(pres *presenter) genny.RunFn { - return func(r *genny.Runner) error { - f, err := r.FindFile("actions/app.go") - if err != nil { - return err - } - var lines []string - body := f.String() - for _, a := range pres.Actions { - e := fmt.Sprintf("app.%s(\"/%s/%s\", %s%s)", strings.ToUpper(pres.Options.Method), pres.Name.Underscore(), a.Underscore(), pres.Name.Pascalize(), a.Pascalize()) - if !strings.Contains(body, e) { - lines = append(lines, e) - } - } - f, err = gogen.AddInsideBlock(f, "app == nil", strings.Join(lines, "\n\t\t")) - if err != nil { - return err - } - return r.File(f) - } -} diff --git a/genny/actions/actions_test.go b/genny/actions/actions_test.go deleted file mode 100644 index 9c9ce4ce3..000000000 --- a/genny/actions/actions_test.go +++ /dev/null @@ -1,165 +0,0 @@ -package actions - -import ( - "fmt" - "strings" - "testing" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gentest" - packr "github.com/gobuffalo/packr/v2" - "github.com/google/go-cmp/cmp" - "github.com/stretchr/testify/require" -) - -func compare(a, b string) bool { - a = strings.TrimSpace(a) - a = strings.Replace(a, "\r", "", -1) - b = strings.TrimSpace(b) - b = strings.Replace(b, "\r", "", -1) - a = strings.TrimSpace(a) - b = strings.TrimSpace(b) - res := cmp.Equal(a, b) - if !res { - fmt.Println(cmp.Diff(a, b)) - } - return res -} - -func runner() *genny.Runner { - run := gentest.NewRunner() - run.Disk.AddBox(packr.New("actions/start/test", "../actions/_fixtures/inputs/clean")) - return run -} - -func Test_New(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{ - Name: "user", - Actions: []string{"index"}, - }) - r.NoError(err) - - run := runner() - run.With(g) - - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 0) - // r.Len(res.Files, 4) - - box := packr.New("genny/actions/Test_New", "../actions/_fixtures/outputs/clean") - - files := []string{"actions/user.go.tmpl", "actions/app.go.tmpl", "actions/user_test.go.tmpl", "templates/user/index.plush.html"} - - for _, s := range files { - x, err := box.FindString(s) - r.NoError(err) - f, err := res.Find(strings.TrimSuffix(s, ".tmpl")) - r.NoError(err) - fmt.Printf("\nfile %s", s) - r.True(compare(x, f.String())) - } -} - -func Test_New_Multi(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{ - Name: "user", - Actions: []string{"show", "edit"}, - }) - r.NoError(err) - - run := runner() - run.With(g) - - err = run.Run() - r.NoError(err) - - res := run.Results() - - r.Len(res.Commands, 0) - - box := packr.New("genny/actions/Test_New_Multi", "../actions/_fixtures/outputs/multi") - - files := []string{"actions/user.go.tmpl", "actions/app.go.tmpl", "actions/user_test.go.tmpl", "templates/user/show.plush.html", "templates/user/edit.plush.html"} - - for _, s := range files { - x, err := box.FindString(s) - r.NoError(err) - f, err := res.Find(strings.TrimSuffix(s, ".tmpl")) - r.NoError(err) - fmt.Printf("\nfile %s", f) - r.True(compare(x, f.String())) - } -} - -func Test_New_Multi_Existing(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{ - Name: "user", - Actions: []string{"show", "edit"}, - }) - r.NoError(err) - - run := gentest.NewRunner() - ins := packr.New("Test_New_Multi_Existing_input", "../actions/_fixtures/inputs/existing") - for _, n := range ins.List() { - x, err := ins.FindString(n) - r.NoError(err) - n = strings.TrimSuffix(n, ".tmpl") - run.Disk.Add(genny.NewFileS(n, x)) - } - run.With(g) - - err = run.Run() - r.NoError(err) - - res := run.Results() - - r.Len(res.Commands, 0) - - box := packr.New("genny/actions/Test_New_Multi_Existing", "../actions/_fixtures/outputs/existing") - - files := []string{"actions/user.go.tmpl", "actions/app.go.tmpl", "actions/user_test.go.tmpl", "templates/user/show.plush.html", "templates/user/edit.plush.html"} - - for _, s := range files { - x, err := box.FindString(s) - r.NoError(err) - f, err := res.Find(strings.TrimSuffix(s, ".tmpl")) - r.NoError(err) - r.True(compare(x, f.String())) - } -} - -func Test_New_SkipTemplates(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{ - Name: "user", - Actions: []string{"index"}, - SkipTemplates: true, - }) - r.NoError(err) - - run := runner() - run.With(g) - - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 0) - - files := []string{"templates/user/index.html"} - - for _, s := range files { - _, err := res.Find(s) - r.Error(err) - } -} diff --git a/genny/actions/build_actions.go b/genny/actions/build_actions.go deleted file mode 100644 index daa2a4eed..000000000 --- a/genny/actions/build_actions.go +++ /dev/null @@ -1,83 +0,0 @@ -package actions - -import ( - "fmt" - "strings" - - "github.com/gobuffalo/flect/name" - "github.com/gobuffalo/genny/v2" -) - -// buildActions is the top level action builder -// it determines whether to build a new actions/foo.go file -// or append to an existing one -func buildActions(pres *presenter) genny.RunFn { - return func(r *genny.Runner) error { - fn := fmt.Sprintf("actions/%s.go", pres.Name.File()) - xf, err := r.FindFile(fn) - if err != nil { - return buildNewActions(fn, pres)(r) - } - if err := appendActions(xf, pres)(r); err != nil { - return err - } - - return nil - } -} - -// buildNewActions builds a brand new actions/foo.go file -// and files it with actions -func buildNewActions(fn string, pres *presenter) genny.RunFn { - return func(r *genny.Runner) error { - for _, a := range pres.Options.Actions { - pres.Actions = append(pres.Actions, name.New(a)) - } - - h, err := box.FindString("actions_header.go.tmpl") - if err != nil { - return err - } - a, err := box.FindString("actions.go.tmpl") - if err != nil { - return err - } - - f := genny.NewFileS(fn+".tmpl", h+a) - - f, err = transform(pres, f) - if err != nil { - return err - } - return r.File(f) - } -} - -// appendActions appends *only* actions that don't exist in -// actions/foo.go. if the action already exists it is not touched. -func appendActions(f genny.File, pres *presenter) genny.RunFn { - return func(r *genny.Runner) error { - body := f.String() - for _, ac := range pres.Options.Actions { - a := name.New(ac) - x := fmt.Sprintf("func %s%s", pres.Name.Pascalize(), a.Pascalize()) - if strings.Contains(body, x) { - continue - } - pres.Actions = append(pres.Actions, a) - } - - a, err := box.FindString("actions.go.tmpl") - if err != nil { - return err - } - - f = genny.NewFileS(f.Name()+".tmpl", f.String()+a) - - f, err = transform(pres, f) - if err != nil { - return err - } - return r.File(f) - } -} diff --git a/genny/actions/build_templates.go b/genny/actions/build_templates.go deleted file mode 100644 index 1fe50ca88..000000000 --- a/genny/actions/build_templates.go +++ /dev/null @@ -1,29 +0,0 @@ -package actions - -import ( - "fmt" - - "github.com/gobuffalo/genny/v2" -) - -func buildTemplates(pres *presenter) genny.RunFn { - return func(r *genny.Runner) error { - f, err := box.FindString("view.plush.html.tmpl") - if err != nil { - return err - } - for _, a := range pres.Actions { - pres.Data["action"] = a - fn := fmt.Sprintf("templates/%s/%s.plush.html.tmpl", pres.Name.Folder(), a.File()) - xf := genny.NewFileS(fn, f) - xf, err = transform(pres, xf) - if err != nil { - return err - } - if err := r.File(xf); err != nil { - return err - } - } - return nil - } -} diff --git a/genny/actions/build_tests.go b/genny/actions/build_tests.go deleted file mode 100644 index c1dadc90d..000000000 --- a/genny/actions/build_tests.go +++ /dev/null @@ -1,61 +0,0 @@ -package actions - -import ( - "fmt" - - "github.com/gobuffalo/genny/v2" -) - -// buildTests is the top level action/test builder -// it determines whether to build a new actions/foo_test.go file -// or append to an existing one -func buildTests(pres *presenter) genny.RunFn { - return func(r *genny.Runner) error { - fn := fmt.Sprintf("actions/%s_test.go", pres.Name.File()) - xf, err := r.FindFile(fn) - if err != nil { - return buildNewTests(fn, pres)(r) - } - return appendTests(xf, pres)(r) - } -} - -// buildNewTests builds a brand new actions/foo_test.go file -// and files it with tests -func buildNewTests(fn string, pres *presenter) genny.RunFn { - return func(r *genny.Runner) error { - h, err := box.FindString("tests_header.go.tmpl") - if err != nil { - return err - } - a, err := box.FindString("test.go.tmpl") - if err != nil { - return err - } - - f := genny.NewFileS(fn+".tmpl", h+a) - - f, err = transform(pres, f) - if err != nil { - return err - } - return r.File(f) - } -} - -// appendTests appends *only* tests that don't exist in -// actions/foo_test.go. if the test already exists it is not touched. -func appendTests(f genny.File, pres *presenter) genny.RunFn { - return func(r *genny.Runner) error { - a, err := box.FindString("test.go.tmpl") - if err != nil { - return err - } - f := genny.NewFileS(f.Name()+".tmpl", f.String()+a) - f, err = transform(pres, f) - if err != nil { - return err - } - return r.File(f) - } -} diff --git a/genny/actions/options.go b/genny/actions/options.go deleted file mode 100644 index f929d390f..000000000 --- a/genny/actions/options.go +++ /dev/null @@ -1,36 +0,0 @@ -package actions - -import ( - "fmt" - - "github.com/gobuffalo/meta" -) - -// Options for the actions generator -type Options struct { - App meta.App - Name string - Actions []string - Method string - SkipTemplates bool -} - -// Validate that options are usuable -func (opts *Options) Validate() error { - if len(opts.Name) == 0 { - return fmt.Errorf("you must provide a name") - } - - if len(opts.Actions) == 0 { - return fmt.Errorf("you must provide at least one action name") - } - - if opts.App.IsZero() { - opts.App = meta.New(".") - } - - if len(opts.Method) == 0 { - opts.Method = "GET" - } - return nil -} diff --git a/genny/actions/options_test.go b/genny/actions/options_test.go deleted file mode 100644 index df1fd7f6d..000000000 --- a/genny/actions/options_test.go +++ /dev/null @@ -1,24 +0,0 @@ -package actions - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func Test_Options_Validate(t *testing.T) { - r := require.New(t) - - opts := &Options{} - err := opts.Validate() - r.Error(err) - - opts.Name = "user" - - err = opts.Validate() - r.Error(err) - - opts.Actions = []string{"index", "show"} - err = opts.Validate() - r.NoError(err) -} diff --git a/genny/actions/presenter.go b/genny/actions/presenter.go deleted file mode 100644 index aac5e9cd6..000000000 --- a/genny/actions/presenter.go +++ /dev/null @@ -1,13 +0,0 @@ -package actions - -import "github.com/gobuffalo/flect/name" - -type data map[string]interface{} - -type presenter struct { - Name name.Ident - Actions []name.Ident - Helpers data - Data data - Options *Options -} diff --git a/genny/actions/templates/actions.go.tmpl b/genny/actions/templates/actions.go.tmpl deleted file mode 100644 index b9219344f..000000000 --- a/genny/actions/templates/actions.go.tmpl +++ /dev/null @@ -1,6 +0,0 @@ -{{ range $action := .actions }} -// {{$.name.Pascalize}}{{$action.Pascalize}} default implementation. -func {{$.name.Pascalize}}{{$action.Pascalize}}(c buffalo.Context) error { - return c.Render(http.StatusOK, r.HTML("{{$.name.File}}/{{$action.File}}.html")) -} -{{end}} diff --git a/genny/actions/templates/actions_header.go.tmpl b/genny/actions/templates/actions_header.go.tmpl deleted file mode 100644 index 214a6a3fa..000000000 --- a/genny/actions/templates/actions_header.go.tmpl +++ /dev/null @@ -1,7 +0,0 @@ -package actions - -import ( - "net/http" - - "github.com/gobuffalo/buffalo" -) diff --git a/genny/actions/templates/test.go.tmpl b/genny/actions/templates/test.go.tmpl deleted file mode 100644 index 1aa743a12..000000000 --- a/genny/actions/templates/test.go.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -{{ range $action := .actions}} -func (as *ActionSuite) Test_{{$.name.Pascalize}}_{{$action.Pascalize}}() { - as.Fail("Not Implemented!") -} -{{end}} diff --git a/genny/actions/templates/tests_header.go.tmpl b/genny/actions/templates/tests_header.go.tmpl deleted file mode 100644 index 0f3a37f39..000000000 --- a/genny/actions/templates/tests_header.go.tmpl +++ /dev/null @@ -1 +0,0 @@ -package actions diff --git a/genny/actions/templates/view.plush.html.tmpl b/genny/actions/templates/view.plush.html.tmpl deleted file mode 100644 index fce499d7b..000000000 --- a/genny/actions/templates/view.plush.html.tmpl +++ /dev/null @@ -1 +0,0 @@ -

{{.name.Pascalize}}#{{.action.Pascalize}}

diff --git a/genny/add/add.go b/genny/add/add.go deleted file mode 100644 index 76095ea2d..000000000 --- a/genny/add/add.go +++ /dev/null @@ -1,30 +0,0 @@ -package add - -import ( - "bytes" - "path/filepath" - - "github.com/gobuffalo/buffalo/plugins/plugdeps" - "github.com/gobuffalo/genny/v2" -) - -// New add plugin to the config file -func New(opts *Options) (*genny.Generator, error) { - g := genny.New() - - if err := opts.Validate(); err != nil { - return g, err - } - - bb := &bytes.Buffer{} - plugs := plugdeps.New() - plugs.Add(opts.Plugins...) - if err := plugs.Encode(bb); err != nil { - return g, err - } - - cpath := filepath.Join(opts.App.Root, "config", "buffalo-plugins.toml") - g.File(genny.NewFile(cpath, bb)) - - return g, nil -} diff --git a/genny/add/add_test.go b/genny/add/add_test.go deleted file mode 100644 index 673d0c48d..000000000 --- a/genny/add/add_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package add - -import ( - "bytes" - "go/build" - "path/filepath" - "strings" - "testing" - - "github.com/gobuffalo/buffalo/plugins/plugdeps" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/meta" - "github.com/stretchr/testify/require" -) - -func Test_New(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{ - App: meta.New("."), - Plugins: []plugdeps.Plugin{ - {Binary: "buffalo-pop", GoGet: "github.com/gobuffalo/buffalo-pop/v2"}, - {Binary: "buffalo-hello.rb", Local: "./plugins/buffalo-hello.rb"}, - }, - }) - r.NoError(err) - - run := gentest.NewRunner() - c := build.Default - run.Disk.Add(genny.NewFile(filepath.Join(c.GOPATH, "bin", "buffalo-pop"), &bytes.Buffer{})) - - run.With(g) - - r.NoError(run.Run()) - - res := run.Results() - - ecmds := []string{} - r.Len(res.Commands, len(ecmds)) - for i, c := range res.Commands { - r.Equal(ecmds[i], strings.Join(c.Args, " ")) - } - - efiles := []string{"bin/buffalo-pop", "config/buffalo-plugins.toml"} - r.Len(res.Files, len(efiles)) - for i, f := range res.Files { - r.True(strings.HasSuffix(f.Name(), efiles[i])) - } -} diff --git a/genny/add/options.go b/genny/add/options.go deleted file mode 100644 index 23b62d611..000000000 --- a/genny/add/options.go +++ /dev/null @@ -1,40 +0,0 @@ -package add - -import ( - "os" - - "github.com/gobuffalo/buffalo/internal/takeon/github.com/markbates/errx" - "github.com/gobuffalo/buffalo/plugins/plugdeps" - "github.com/gobuffalo/meta" -) - -// Options container for passing needed info for -// adding plugins to the config file. -type Options struct { - App meta.App - Plugins []plugdeps.Plugin -} - -// Validate that options are usuable -func (opts *Options) Validate() error { - if opts.App.IsZero() { - pwd, err := os.Getwd() - if err != nil { - return err - } - opts.App = meta.New(pwd) - } - if len(opts.Plugins) == 0 { - plugs, err := plugdeps.List(opts.App) - if err != nil && (errx.Unwrap(err) != plugdeps.ErrMissingConfig) { - return err - } - opts.Plugins = plugs.List() - } - - for i, p := range opts.Plugins { - p.Tags = opts.App.BuildTags("", p.Tags...) - opts.Plugins[i] = p - } - return nil -} diff --git a/genny/add/options_test.go b/genny/add/options_test.go deleted file mode 100644 index 30ee6fa84..000000000 --- a/genny/add/options_test.go +++ /dev/null @@ -1,15 +0,0 @@ -package add - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func Test_Options_Validate(t *testing.T) { - r := require.New(t) - - opts := &Options{} - err := opts.Validate() - r.NoError(err) -} diff --git a/genny/assets/standard/options.go b/genny/assets/standard/options.go deleted file mode 100644 index 45cd717b5..000000000 --- a/genny/assets/standard/options.go +++ /dev/null @@ -1,4 +0,0 @@ -package standard - -// Options for generating a new standard set of assets -type Options struct{} diff --git a/genny/assets/standard/standard-packr.go b/genny/assets/standard/standard-packr.go deleted file mode 100644 index e23057120..000000000 --- a/genny/assets/standard/standard-packr.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !skippackr -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr clean" command to clean up this, -// and any other packr generated files. -package standard - -import _ "github.com/gobuffalo/buffalo/packrd" diff --git a/genny/assets/standard/standard.go b/genny/assets/standard/standard.go deleted file mode 100644 index 8bcfc14a4..000000000 --- a/genny/assets/standard/standard.go +++ /dev/null @@ -1,35 +0,0 @@ -package standard - -import ( - "strings" - "text/template" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" - "github.com/gobuffalo/packr/v2" -) - -// New generator for creating basic asset files -func New(opts *Options) (*genny.Generator, error) { - g := genny.New() - g.Box(packr.New("buffalo:genny:assets:standard", "../standard/templates")) - - data := map[string]interface{}{} - h := template.FuncMap{} - t := gogen.TemplateTransformer(data, h) - g.Transformer(t) - - g.RunFn(func(r *genny.Runner) error { - f, err := r.FindFile("templates/application.plush.html") - if err != nil { - return err - } - - s := strings.Replace(f.String(), "", "\n"+bs4, 1) - return r.File(genny.NewFileS(f.Name(), s)) - }) - - return g, nil -} - -const bs4 = `` diff --git a/genny/assets/standard/standard_test.go b/genny/assets/standard/standard_test.go deleted file mode 100644 index 9a7d2a87c..000000000 --- a/genny/assets/standard/standard_test.go +++ /dev/null @@ -1,60 +0,0 @@ -package standard - -import ( - "testing" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gentest" - "github.com/stretchr/testify/require" -) - -func Test_New(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{}) - r.NoError(err) - - run := gentest.NewRunner() - run.Disk.Add(genny.NewFileS("templates/application.plush.html", layout)) - run.LookPathFn = func(s string) (string, error) { - return s, nil - } - - run.With(g) - - r.NoError(run.Run()) - - res := run.Results() - r.Len(res.Commands, 0) - - files := []string{ - "public/assets/application.css", - "public/assets/application.js", - "public/assets/buffalo.css", - "public/assets/images/favicon.ico", - "public/assets/images/logo.svg", - "templates/application.plush.html", - } - - r.Len(res.Files, len(files)) - for i, f := range res.Files { - r.Equal(files[i], f.Name()) - } - - layout, ferr := res.Find("templates/application.plush.html") - r.NoError(ferr) - - r.Contains(layout.String(), "href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css\"") -} - -const layout = ` - - - Buffalo - Foo - <%= stylesheetTag("buffalo.css") %> - <%= stylesheetTag("application.css") %> - - - - -` diff --git a/genny/assets/standard/templates/public/assets/application.css.tmpl b/genny/assets/standard/templates/public/assets/application.css.tmpl deleted file mode 100644 index e69de29bb..000000000 diff --git a/genny/assets/standard/templates/public/assets/application.js.tmpl b/genny/assets/standard/templates/public/assets/application.js.tmpl deleted file mode 100644 index e69de29bb..000000000 diff --git a/genny/assets/standard/templates/public/assets/buffalo.css.tmpl b/genny/assets/standard/templates/public/assets/buffalo.css.tmpl deleted file mode 100644 index 4cc761f6e..000000000 --- a/genny/assets/standard/templates/public/assets/buffalo.css.tmpl +++ /dev/null @@ -1,118 +0,0 @@ -.container { - min-width: 320px; -} - -header { - background-color: #62a5ee; - padding: 10px 20px; - box-sizing: border-box; -} - -.logo img { - width: 80px; -} - -.titles h1 { - font-size: 30px; - font-weight: 300; - color: white; - margin-bottom: 13px; - margin-top: 5px; -} - -.titles h2 { - font-weight: 300; - font-size: 18px; - display: inline-block; - margin: 0; -} - -.titles a { - color: white; - text-decoration: underline; -} - -.titles i { - margin-right: 5px; - text-decoration: none; -} - -.titles .documentation { - margin-left: 28px; -} - -.subtitle { - color: white; - margin: 0; - padding: 13px 0; - background-color: #2a3543; - margin-bottom: 20px; -} - -.subtitle h3 { - font-size: 22px; - font-weight: 400; - margin: 0; -} - -table { - font-size: 14px; -} - -table.table tbody tr td { - border-top: 0; - padding: 10px; -} - -.foot { - text-align: right; - color: #c5c5c5; - font-weight: 300; -} - -.foot a { - color: #8b8b8b; - text-decoration: underline; -} - -.centered { - text-align: center; -} - -@media all and (max-width: 770px) { - .titles h1 { - font-size: 25px; - margin: 15px 0 5px 0; - } -} - -@media all and (max-width: 640px) { - .titles h1 { - font-size: 23px; - margin: 15px 0 5px 0; - } - .titles h2 { - font-size: 15px; - } - .titles .documentation { - margin-left: 10px; - } -} - -@media all and (max-width: 530px) { - .titles h1 { - font-size: 20px; - margin: 5px 0; - } - .logo { - padding: 0 - } - .logo img { - width: 100% - } - .titles .documentation { - margin-left: 0px; - margin-top: 5px; - display: block; - } -} diff --git a/genny/assets/standard/templates/public/assets/images/favicon.ico.tmpl b/genny/assets/standard/templates/public/assets/images/favicon.ico.tmpl deleted file mode 100644 index 463b634a7..000000000 Binary files a/genny/assets/standard/templates/public/assets/images/favicon.ico.tmpl and /dev/null differ diff --git a/genny/assets/standard/templates/public/assets/images/logo.svg.tmpl b/genny/assets/standard/templates/public/assets/images/logo.svg.tmpl deleted file mode 100644 index 0d1f29ef7..000000000 --- a/genny/assets/standard/templates/public/assets/images/logo.svg.tmpl +++ /dev/null @@ -1,721 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/genny/assets/webpack/options.go b/genny/assets/webpack/options.go deleted file mode 100644 index 57dfadc0d..000000000 --- a/genny/assets/webpack/options.go +++ /dev/null @@ -1,18 +0,0 @@ -package webpack - -import ( - "github.com/gobuffalo/meta" -) - -// Options for creating a new webpack setup -type Options struct { - meta.App -} - -// Validate options -func (opts *Options) Validate() error { - if opts.App.IsZero() { - opts.App = meta.New(".") - } - return nil -} diff --git a/genny/assets/webpack/templates/-dot-babelrc.tmpl b/genny/assets/webpack/templates/-dot-babelrc.tmpl deleted file mode 100644 index 1320b9a32..000000000 --- a/genny/assets/webpack/templates/-dot-babelrc.tmpl +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["@babel/preset-env"] -} diff --git a/genny/assets/webpack/templates/assets/css/_buffalo.scss.tmpl b/genny/assets/webpack/templates/assets/css/_buffalo.scss.tmpl deleted file mode 100644 index 3cef17420..000000000 --- a/genny/assets/webpack/templates/assets/css/_buffalo.scss.tmpl +++ /dev/null @@ -1,133 +0,0 @@ -.container { - min-width: 320px; -} - -header { - background-color: #62a5ee; - padding: 10px 20px; - box-sizing: border-box; -} - -.logo { - img { - width: 80px; - } -} - -.titles { - h1 { - font-size: 30px; - font-weight: 300; - color: white; - margin-bottom: 13px; - margin-top: 5px; - } - - h2 { - font-weight: 300; - font-size: 18px; - display: inline-block; - margin: 0; - } - - a { - color: white; - text-decoration: underline; - } - - i { - margin-right: 5px; - text-decoration: none; - } - - .documentation { - margin-left: 28px; - } -} - -.subtitle { - color: white; - margin: 0; - padding: 13px 0; - background-color: #2a3543; - margin-bottom: 20px; - - h3 { - font-size: 22px; - font-weight: 400; - margin: 0; - } -} - -table { - font-size: 14px; - - &.table tbody tr td { - border-top: 0; - padding: 10px; - } -} - -.foot { - text-align: right; - color: #c5c5c5; - font-weight: 300; - - a { - color: #8b8b8b; - text-decoration: underline; - } -} - -.centered { - text-align: center; -} - -@media all and (max-width: 770px) { - .titles { - h1 { - font-size: 25px; - margin: 15px 0 5px 0; - } - } -} - -@media all and (max-width: 640px) { - .titles { - h1 { - font-size: 23px; - margin: 15px 0 5px 0; - } - - h2 { - font-size: 15px; - } - - .documentation { - margin-left: 10px; - } - } -} - -@media all and (max-width: 530px) { - .titles { - h1 { - font-size: 20px; - margin: 5px 0; - } - - .documentation { - margin-left: 0px; - margin-top: 5px; - display: block; - } - } - - .logo { - padding: 0; - - img { - width: 100% - } - } -} diff --git a/genny/assets/webpack/templates/assets/css/application.scss.tmpl b/genny/assets/webpack/templates/assets/css/application.scss.tmpl deleted file mode 100644 index 265400fa1..000000000 --- a/genny/assets/webpack/templates/assets/css/application.scss.tmpl +++ /dev/null @@ -1,4 +0,0 @@ -@import "~bootstrap/scss/bootstrap.scss"; -@import "~@fortawesome/fontawesome-free/css/all.min.css"; - -@import "buffalo"; diff --git a/genny/assets/webpack/templates/assets/images/favicon.ico.tmpl b/genny/assets/webpack/templates/assets/images/favicon.ico.tmpl deleted file mode 100644 index 463b634a7..000000000 Binary files a/genny/assets/webpack/templates/assets/images/favicon.ico.tmpl and /dev/null differ diff --git a/genny/assets/webpack/templates/assets/images/logo.svg b/genny/assets/webpack/templates/assets/images/logo.svg deleted file mode 100644 index 0d1f29ef7..000000000 --- a/genny/assets/webpack/templates/assets/images/logo.svg +++ /dev/null @@ -1,721 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/genny/assets/webpack/templates/assets/js/application.js.tmpl b/genny/assets/webpack/templates/assets/js/application.js.tmpl deleted file mode 100644 index 4374b72f0..000000000 --- a/genny/assets/webpack/templates/assets/js/application.js.tmpl +++ /dev/null @@ -1,7 +0,0 @@ -require("expose-loader?$!expose-loader?jQuery!jquery"); -require("bootstrap/dist/js/bootstrap.bundle.js"); -require("@fortawesome/fontawesome-free/js/all.js"); - -$(() => { - -}); diff --git a/genny/assets/webpack/templates/package.json.tmpl b/genny/assets/webpack/templates/package.json.tmpl deleted file mode 100644 index 23475a61d..000000000 --- a/genny/assets/webpack/templates/package.json.tmpl +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "buffalo", - "version": "1.0.0", - "main": "index.js", - "license": "MIT", - "scripts": { - "dev": "webpack --watch", - "build": "webpack -p --progress" - }, - "repository": "github.com/gobuffalo/buffalo", - "dependencies": { - "bootstrap": "4.5.0", - "popper.js": "^1.16.1", - "@fortawesome/fontawesome-free": "^5.12.0", - "jquery": "3.5.1", - "jquery-ujs": "~1.2.2" - }, - "devDependencies": { - "@babel/cli": "^7.8.4", - "@babel/core": "^7.9.0", - "@babel/preset-env": "^7.9.5", - - "autoprefixer": "^9.7.6", - "babel-loader": "^8.1.0", - "css-loader": "~3.5.1", - "expose-loader": "~0.7.5", - "file-loader": "~6.0.0", - "gopherjs-loader": "^0.0.1", - "postcss-loader": "^3.0.0", - "sass-loader": "~8.0.2", - "style-loader": "~1.1.3", - "url-loader": "~4.1.0", - "node-sass": "~4.13.1", - - "npm-install-webpack-plugin": "4.0.5", - "terser-webpack-plugin": "~2.3.1", - "mini-css-extract-plugin": "^0.9.0", - "webpack-clean-obsolete-chunks": "^0.4.0", - "copy-webpack-plugin": "~5.1.1", - - "webpack": "~4.42.1", - "webpack-cli": "^3.3.10", - "webpack-livereload-plugin": "~2.3.0", - "webpack-manifest-plugin": "~2.2.0" - } -} diff --git a/genny/assets/webpack/templates/postcss.config.js.tmpl b/genny/assets/webpack/templates/postcss.config.js.tmpl deleted file mode 100644 index cff57b574..000000000 --- a/genny/assets/webpack/templates/postcss.config.js.tmpl +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: [ - require('autoprefixer') - ] - } diff --git a/genny/assets/webpack/templates/public/assets/-dot-keep.tmpl b/genny/assets/webpack/templates/public/assets/-dot-keep.tmpl deleted file mode 100644 index e69de29bb..000000000 diff --git a/genny/assets/webpack/templates/webpack.config.js.tmpl b/genny/assets/webpack/templates/webpack.config.js.tmpl deleted file mode 100644 index 74ac691ec..000000000 --- a/genny/assets/webpack/templates/webpack.config.js.tmpl +++ /dev/null @@ -1,117 +0,0 @@ -const Webpack = require("webpack"); -const Glob = require("glob"); -const CopyWebpackPlugin = require("copy-webpack-plugin"); -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); -const ManifestPlugin = require("webpack-manifest-plugin"); -const CleanObsoleteChunks = require("webpack-clean-obsolete-chunks"); -const TerserPlugin = require("terser-webpack-plugin"); -const LiveReloadPlugin = require("webpack-livereload-plugin"); - -const configurator = { - entries: function(){ - var entries = { - application: [ - './node_modules/jquery-ujs/src/rails.js', - './assets/css/application.scss', - ], - } - - Glob.sync("./assets/*/*.*").forEach((entry) => { - if (entry === './assets/css/application.scss') { - return - } - - let key = entry.replace(/(\.\/assets\/(src|js|css|go)\/)|\.(ts|js|s[ac]ss|go)/g, '') - if(key.startsWith("_") || (/(ts|js|s[ac]ss|go)$/i).test(entry) == false) { - return - } - - if( entries[key] == null) { - entries[key] = [entry] - return - } - - entries[key].push(entry) - }) - return entries - }, - - plugins() { - var plugins = [ - new Webpack.ProvidePlugin({$: "jquery",jQuery: "jquery"}), - new MiniCssExtractPlugin({filename: "[name].[contenthash].css"}), - new CopyWebpackPlugin([{from: "./assets",to: ""}], {copyUnmodified: true,ignore: ["css/**", "js/**", "src/**"] }), - new Webpack.LoaderOptionsPlugin({minimize: true,debug: false}), - new ManifestPlugin({fileName: "manifest.json"}), - new CleanObsoleteChunks() - ]; - - return plugins - }, - - moduleOptions: function() { - return { - rules: [ - { - test: /\.s[ac]ss$/, - use: [ - MiniCssExtractPlugin.loader, - { loader: "css-loader", options: {sourceMap: true}}, - { loader: "postcss-loader", options: {sourceMap: true}}, - { loader: "sass-loader", options: {sourceMap: true}} - ] - }, - { test: /\.tsx?$/, use: "ts-loader", exclude: /node_modules/}, - { test: /\.jsx?$/,loader: "babel-loader",exclude: /node_modules/ }, - { test: /\.(woff|woff2|ttf|svg)(\?v=\d+\.\d+\.\d+)?$/,use: "url-loader"}, - { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,use: "file-loader" }, - { test: require.resolve("jquery"),use: "expose-loader?jQuery!expose-loader?$"}, - { test: /\.go$/, use: "gopherjs-loader"} - ] - } - }, - - buildConfig: function(){ - // NOTE: If you are having issues with this not being set "properly", make - // sure your GO_ENV is set properly as `buffalo build` overrides NODE_ENV - // with whatever GO_ENV is set to or "development". - const env = process.env.NODE_ENV || "development"; - - var config = { - mode: env, - entry: configurator.entries(), - output: {filename: "[name].[hash].js", path: `${__dirname}/public/assets`}, - plugins: configurator.plugins(), - module: configurator.moduleOptions(), - resolve: { - extensions: ['.ts', '.js', '.json'] - } - } - - if( env === "development" ){ - config.plugins.push(new LiveReloadPlugin({appendScriptTag: true})) - return config - } - - const terser = new TerserPlugin({ - terserOptions: { - compress: {}, - mangle: { - keep_fnames: true - }, - output: { - comments: false, - }, - }, - extractComments: false, - }) - - config.optimization = { - minimizer: [terser] - } - - return config - } -} - -module.exports = configurator.buildConfig() diff --git a/genny/assets/webpack/webpack-packr.go b/genny/assets/webpack/webpack-packr.go deleted file mode 100644 index 7370ca82b..000000000 --- a/genny/assets/webpack/webpack-packr.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !skippackr -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr clean" command to clean up this, -// and any other packr generated files. -package webpack - -import _ "github.com/gobuffalo/buffalo/packrd" diff --git a/genny/assets/webpack/webpack.go b/genny/assets/webpack/webpack.go deleted file mode 100644 index 0525a6318..000000000 --- a/genny/assets/webpack/webpack.go +++ /dev/null @@ -1,102 +0,0 @@ -package webpack - -import ( - "fmt" - "os/exec" - "path/filepath" - "runtime" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" - "github.com/gobuffalo/packr/v2" -) - -// BinPath is the path to the local install of webpack -var BinPath = func() string { - s := filepath.Join("node_modules", ".bin", "webpack") - if runtime.GOOS == "windows" { - s += ".cmd" - } - return s -}() - -// Templates used for generating webpack -// (exported mostly for the "fix" command) -var Templates = packr.New("github.com/gobuffalo/buffalo/genny/assets/webpack", "../webpack/templates") - -// New generator for creating webpack asset files -func New(opts *Options) (*genny.Generator, error) { - g := genny.New() - - if err := opts.Validate(); err != nil { - return g, err - } - - g.RunFn(func(r *genny.Runner) error { - if opts.App.WithYarn { - if _, err := r.LookPath("yarnpkg"); err == nil { - return nil - } - // If yarn is not installed, it still can be installed with npm. - } - if _, err := r.LookPath("npm"); err != nil { - return fmt.Errorf("could not find npm executable") - } - return nil - }) - - g.Box(Templates) - - data := map[string]interface{}{ - "opts": opts, - } - t := gogen.TemplateTransformer(data, gogen.TemplateHelpers) - g.Transformer(t) - g.Transformer(genny.Dot()) - - g.RunFn(func(r *genny.Runner) error { - return installPkgs(r, opts) - }) - - return g, nil -} - -func installPkgs(r *genny.Runner, opts *Options) error { - command := "yarnpkg" - - if !opts.App.WithYarn { - command = "npm" - } else { - if err := installYarn(r); err != nil { - return err - } - } - args := []string{"install", "--no-progress", "--save"} - - c := exec.Command(command, args...) - c.Stdout = yarnWriter{ - fn: r.Logger.Debug, - } - c.Stderr = yarnWriter{ - fn: r.Logger.Debug, - } - return r.Exec(c) -} - -type yarnWriter struct { - fn func(...interface{}) -} - -func (y yarnWriter) Write(p []byte) (int, error) { - y.fn(string(p)) - return len(p), nil -} - -func installYarn(r *genny.Runner) error { - // if there's no yarn, install it! - if _, err := r.LookPath("yarnpkg"); err == nil { - return nil - } - yargs := []string{"install", "-g", "yarn"} - return r.Exec(exec.Command("npm", yargs...)) -} diff --git a/genny/assets/webpack/webpack_test.go b/genny/assets/webpack/webpack_test.go deleted file mode 100644 index 3f8dfb862..000000000 --- a/genny/assets/webpack/webpack_test.go +++ /dev/null @@ -1,93 +0,0 @@ -package webpack - -import ( - "strings" - "testing" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/meta" - "github.com/stretchr/testify/require" -) - -func runner() *genny.Runner { - run := gentest.NewRunner() - run.Disk.Add(genny.NewFileS("templates/application.plush.html", layout)) - run.LookPathFn = func(s string) (string, error) { - return s, nil - } - return run -} - -func Test_Webpack_New(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{}) - r.NoError(err) - - run := runner() - - run.With(g) - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 1) - c := res.Commands[0] - r.Equal("npm install --no-progress --save", strings.Join(c.Args, " ")) - - files := []string{ - ".babelrc", - "assets/css/_buffalo.scss", - "assets/css/application.scss", - "assets/images/favicon.ico", - "assets/images/logo.svg", - "assets/js/application.js", - "package.json", - "postcss.config.js", - "public/assets/.keep", - "templates/application.plush.html", - "webpack.config.js", - } - r.Len(res.Files, len(files)) - for i, f := range res.Files { - r.Equal(files[i], f.Name()) - } - - f, err := res.Find("package.json") - r.NoError(err) - r.Contains(f.String(), `"bootstrap": "4.`) - -} - -func Test_Webpack_New_WithYarn(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{ - App: meta.App{WithYarn: true}, - }) - r.NoError(err) - - run := runner() - run.With(g) - r.NoError(run.Run()) - - res := run.Results() - r.Len(res.Commands, 1) - r.Len(res.Files, 11) - - c := res.Commands[0] - r.Equal("yarnpkg install --no-progress --save", strings.Join(c.Args, " ")) -} - -const layout = ` - - - Buffalo - Foo - <%= stylesheetTag("buffalo.css") %> - <%= stylesheetTag("application.css") %> - - - - -` diff --git a/genny/build/_fixtures/coke/README.md b/genny/build/_fixtures/coke/README.md deleted file mode 100644 index b01f313a8..000000000 --- a/genny/build/_fixtures/coke/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Welcome to Buffalo! - -Thank you for choosing Buffalo for your web development needs. - -## Database Setup - -It looks like you chose to set up your application using a postgres database! Fantastic! - -The first thing you need to do is open up the "database.yml" file and edit it to use the correct usernames, passwords, hosts, etc... that are appropriate for your environment. - -You will also need to make sure that **you** start/install the database of your choice. Buffalo **won't** install and start postgres for you. - -### Create Your Databases - -Ok, so you've edited the "database.yml" file and started postgres, now Buffalo can create the databases in that file for you: - - $ buffalo pop create -a - -## Starting the Application - -Buffalo ships with a command that will watch your application and automatically rebuild the Go binary and any assets for you. To do that run the "buffalo dev" command: - - $ buffalo dev - -If you point your browser to [http://127.0.0.1:3000](http://127.0.0.1:3000) you should see a "Welcome to Buffalo!" page. - -**Congratulations!** You now have your Buffalo application up and running. - -## What Next? - -We recommend you heading over to [http://gobuffalo.io](http://gobuffalo.io) and reviewing all of the great documentation there. - -Good luck! - -[Powered by Buffalo](http://gobuffalo.io) diff --git a/genny/build/_fixtures/coke/actions/actions_test.go b/genny/build/_fixtures/coke/actions/actions_test.go deleted file mode 100644 index 73118ef07..000000000 --- a/genny/build/_fixtures/coke/actions/actions_test.go +++ /dev/null @@ -1,24 +0,0 @@ -package actions - -import ( - "testing" - - "github.com/gobuffalo/packr/v2" - "github.com/gobuffalo/suite" -) - -type ActionSuite struct { - *suite.Action -} - -func Test_ActionSuite(t *testing.T) { - action, err := suite.NewActionWithFixtures(App(), packr.New("../fixtures", "../fixtures")) - if err != nil { - t.Fatal(err) - } - - as := &ActionSuite{ - Action: action, - } - suite.Run(t, as) -} diff --git a/genny/build/_fixtures/coke/actions/app.go b/genny/build/_fixtures/coke/actions/app.go deleted file mode 100644 index 07595f5dd..000000000 --- a/genny/build/_fixtures/coke/actions/app.go +++ /dev/null @@ -1,90 +0,0 @@ -package actions - -import ( - "github.com/gobuffalo/buffalo" - "github.com/gobuffalo/buffalo-pop/v2/pop/popmw" - "github.com/gobuffalo/envy" - csrf "github.com/gobuffalo/mw-csrf" - forcessl "github.com/gobuffalo/mw-forcessl" - i18n "github.com/gobuffalo/mw-i18n" - paramlogger "github.com/gobuffalo/mw-paramlogger" - "github.com/gobuffalo/packr/v2" - "github.com/markbates/coke/models" - "github.com/unrolled/secure" -) - -// ENV is used to help switch settings based on where the -// application is being run. Default is "development". -var ENV = envy.Get("GO_ENV", "development") -var app *buffalo.App -var T *i18n.Translator - -// App is where all routes and middleware for buffalo -// should be defined. This is the nerve center of your -// application. -// -// Routing, middleware, groups, etc... are declared TOP -> DOWN. -// This means if you add a middleware to `app` *after* declaring a -// group, that group will NOT have that new middleware. The same -// is true of resource declarations as well. -// -// It also means that routes are checked in the order they are declared. -// `ServeFiles` is a CATCH-ALL route, so it should always be -// placed last in the route declarations, as it will prevent routes -// declared after it to never be called. -func App() *buffalo.App { - if app == nil { - app = buffalo.New(buffalo.Options{ - Env: ENV, - SessionName: "_coke_session", - }) - - // Automatically redirect to SSL - app.Use(forceSSL()) - - // Log request parameters (filters apply). - app.Use(paramlogger.ParameterLogger) - - // Protect against CSRF attacks. https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF) - // Remove to disable this. - app.Use(csrf.New) - - // Wraps each request in a transaction. - // c.Value("tx").(*pop.Connection) - // Remove to disable this. - app.Use(popmw.Transaction(models.DB)) - - // Setup and use translations: - app.Use(translations()) - - app.GET("/", HomeHandler) - - app.ServeFiles("/", assetsBox) // serve files from the public directory - } - - return app -} - -// translations will load locale files, set up the translator `actions.T`, -// and will return a middleware to use to load the correct locale for each -// request. -// for more information: https://gobuffalo.io/en/docs/localization -func translations() buffalo.MiddlewareFunc { - var err error - if T, err = i18n.New(packr.New("../locales", "../locales"), "en-US"); err != nil { - app.Stop(err) - } - return T.Middleware() -} - -// forceSSL will return a middleware that will redirect an incoming request -// if it is not HTTPS. "http://example.com" => "https://example.com". -// This middleware does **not** enable SSL. for your application. To do that -// we recommend using a proxy: https://gobuffalo.io/en/docs/proxy -// for more information: https://github.com/unrolled/secure/ -func forceSSL() buffalo.MiddlewareFunc { - return forcessl.Middleware(secure.Options{ - SSLRedirect: ENV == "production", - SSLProxyHeaders: map[string]string{"X-Forwarded-Proto": "https"}, - }) -} diff --git a/genny/build/_fixtures/coke/actions/home.go b/genny/build/_fixtures/coke/actions/home.go deleted file mode 100644 index b1e903198..000000000 --- a/genny/build/_fixtures/coke/actions/home.go +++ /dev/null @@ -1,13 +0,0 @@ -package actions - -import ( - "net/http" - - "github.com/gobuffalo/buffalo" -) - -// HomeHandler is a default handler to serve up -// a home page. -func HomeHandler(c buffalo.Context) error { - return c.Render(http.StatusOK, r.HTML("index.html")) -} diff --git a/genny/build/_fixtures/coke/actions/home_test.go b/genny/build/_fixtures/coke/actions/home_test.go deleted file mode 100644 index 04d750a04..000000000 --- a/genny/build/_fixtures/coke/actions/home_test.go +++ /dev/null @@ -1,9 +0,0 @@ -package actions - -import "net/http" - -func (as *ActionSuite) Test_HomeHandler() { - res := as.HTML("/").Get() - as.Equal(http.StatusOK, res.Code) - as.Contains(res.Body.String(), "Welcome to Buffalo") -} diff --git a/genny/build/_fixtures/coke/actions/render.go b/genny/build/_fixtures/coke/actions/render.go deleted file mode 100644 index 55789a659..000000000 --- a/genny/build/_fixtures/coke/actions/render.go +++ /dev/null @@ -1,27 +0,0 @@ -package actions - -import ( - "github.com/gobuffalo/buffalo/render" - "github.com/gobuffalo/packr/v2" -) - -var r *render.Engine -var assetsBox = packr.NewBox("app:assets", "../public") - -func init() { - r = render.New(render.Options{ - // HTML layout to be used for all HTML requests: - HTMLLayout: "application.plush.html", - - // Box containing all of the templates: - TemplatesBox: packr.New("../templates", "../templates"), - AssetsBox: assetsBox, - - // Add template helpers here: - Helpers: render.Helpers{ - // uncomment for non-Bootstrap form helpers: - // "form": plush.FormHelper, - // "form_for": plush.FormForHelper, - }, - }) -} diff --git a/genny/build/_fixtures/coke/assets/css/_buffalo.scss b/genny/build/_fixtures/coke/assets/css/_buffalo.scss deleted file mode 100644 index 350270fd9..000000000 --- a/genny/build/_fixtures/coke/assets/css/_buffalo.scss +++ /dev/null @@ -1,118 +0,0 @@ -.container { - min-width: 320px; -} - -header { - background-color: #62a5ee; - padding: 10px 20px; - box-sizing: border-box; -} - -.logo img { - width: 80px; -} - -.titles h1 { - font-size: 30px; - font-weight: 300; - color: white; - margin-bottom: 13px; - margin-top: 5px; -} - -.titles h2 { - font-weight: 300; - font-size: 18px; - display: inline-block; - margin: 0; -} - -.titles a { - color: white; - text-decoration: underline; -} - -.titles i { - margin-right: 5px; - text-decoration: none; -} - -.titles .documentation { - margin-left: 28px; -} - -.subtitle { - color: white; - margin: 0; - padding: 13px 0; - background-color: #2a3543; - margin-bottom: 20px; -} - -.subtitle h3 { - font-size: 22px; - font-weight: 400; - margin: 0; -} - -table { - font-size: 14px; -} - -table.table tbody tr td { - border-top: 0; - padding: 10px; -} - -.foot { - text-align: right; - color: #c5c5c5; - font-weight: 300; -} - -.foot a { - color: #8b8b8b; - text-decoration: underline; -} - -.centered { - text-align: center; -} - -@media all and (max-width: 770px) { - .titles h1 { - font-size: 25px; - margin: 15px 0 5px 0; - } -} - -@media all and (max-width: 640px) { - .titles h1 { - font-size: 23px; - margin: 15px 0 5px 0; - } - .titles h2 { - font-size: 15px; - } - .titles .documentation { - margin-left: 10px; - } -} - -@media all and (max-width: 530px) { - .titles h1 { - font-size: 20px; - margin: 5px 0; - } - .logo { - padding: 0 - } - .logo img { - width: 100% - } - .titles .documentation { - margin-left: 0px; - margin-top: 5px; - display: block; - } -} \ No newline at end of file diff --git a/genny/build/_fixtures/coke/assets/css/application.scss b/genny/build/_fixtures/coke/assets/css/application.scss deleted file mode 100644 index 3c5a40304..000000000 --- a/genny/build/_fixtures/coke/assets/css/application.scss +++ /dev/null @@ -1,4 +0,0 @@ -@import "~bootstrap/scss/bootstrap.scss"; -@import "~font-awesome/css/font-awesome.css"; - -@import "buffalo" \ No newline at end of file diff --git a/genny/build/_fixtures/coke/assets/images/favicon.ico b/genny/build/_fixtures/coke/assets/images/favicon.ico deleted file mode 100644 index 463b634a7..000000000 Binary files a/genny/build/_fixtures/coke/assets/images/favicon.ico and /dev/null differ diff --git a/genny/build/_fixtures/coke/assets/images/logo.svg b/genny/build/_fixtures/coke/assets/images/logo.svg deleted file mode 100644 index 0d1f29ef7..000000000 --- a/genny/build/_fixtures/coke/assets/images/logo.svg +++ /dev/null @@ -1,721 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/genny/build/_fixtures/coke/assets/js/application.js b/genny/build/_fixtures/coke/assets/js/application.js deleted file mode 100644 index 9b457c511..000000000 --- a/genny/build/_fixtures/coke/assets/js/application.js +++ /dev/null @@ -1,5 +0,0 @@ -require("expose-loader?$!expose-loader?jQuery!jquery"); -require("bootstrap/dist/js/bootstrap.bundle.js"); -$(() => { - -}); diff --git a/genny/build/_fixtures/coke/config/buffalo-app.toml b/genny/build/_fixtures/coke/config/buffalo-app.toml deleted file mode 100644 index e3e1c3cba..000000000 --- a/genny/build/_fixtures/coke/config/buffalo-app.toml +++ /dev/null @@ -1,12 +0,0 @@ -name = "coke" -bin = "bin/coke" -vcs = "git" -with_pop = true -with_sqlite = false -with_dep = false -with_webpack = true -with_yarn = true -with_docker = true -with_grifts = false -as_web = true -as_api = false diff --git a/genny/build/_fixtures/coke/config/buffalo-plugins.toml b/genny/build/_fixtures/coke/config/buffalo-plugins.toml deleted file mode 100644 index c17b4e7bb..000000000 --- a/genny/build/_fixtures/coke/config/buffalo-plugins.toml +++ /dev/null @@ -1,7 +0,0 @@ -[[plugin]] - binary = "buffalo-docker" - go_get = "github.com/gobuffalo/buffalo-docker" - -[[plugin]] - binary = "buffalo-pop" - go_get = "github.com/gobuffalo/buffalo-pop" diff --git a/genny/build/_fixtures/coke/config/database.yml b/genny/build/_fixtures/coke/config/database.yml deleted file mode 100644 index 6d1d7e796..000000000 --- a/genny/build/_fixtures/coke/config/database.yml +++ /dev/null @@ -1,13 +0,0 @@ -development: - dialect: postgres - database: coke_development - user: postgres - password: postgres - host: 127.0.0.1 - pool: 5 - -test: - url: {{envOr "TEST_DATABASE_URL" "postgres://postgres:postgres@127.0.0.1:5432/coke_test?sslmode=disable"}} - -production: - url: {{envOr "DATABASE_URL" "postgres://postgres:postgres@127.0.0.1:5432/coke_production?sslmode=disable"}} diff --git a/genny/build/_fixtures/coke/fixtures/sample.toml b/genny/build/_fixtures/coke/fixtures/sample.toml deleted file mode 100644 index b9281d496..000000000 --- a/genny/build/_fixtures/coke/fixtures/sample.toml +++ /dev/null @@ -1,32 +0,0 @@ -[[scenario]] -name = "lots of widgets" - - [[scenario.table]] - name = "widgets" - - [[scenario.table.row]] - id = "<%= uuidNamed("widget") %>" - name = "This is widget #1" - body = "some widget body" - created_at = "<%= now() %>" - updated_at = "<%= now() %>" - - [[scenario.table.row]] - id = "<%= uuid() %>" - name = "This is widget #2" - body = "some widget body" - created_at = "<%= now() %>" - updated_at = "<%= now() %>" - - [[scenario.table]] - name = "users" - - [[scenario.table.row]] - id = "<%= uuid() %>" - name = "Mark Bates" - admin = true - age = 41 - widget_id = "<%= uuidNamed("widget") %>" - created_at = "<%= now() %>" - updated_at = "<%= now() %>" - diff --git a/genny/build/_fixtures/coke/grifts/db.go b/genny/build/_fixtures/coke/grifts/db.go deleted file mode 100644 index 1164b41f6..000000000 --- a/genny/build/_fixtures/coke/grifts/db.go +++ /dev/null @@ -1,15 +0,0 @@ -package grifts - -import ( - "github.com/markbates/grift/grift" -) - -var _ = grift.Namespace("db", func() { - - grift.Desc("seed", "Seeds a database") - grift.Add("seed", func(c *grift.Context) error { - // Add DB seeding stuff here - return nil - }) - -}) diff --git a/genny/build/_fixtures/coke/grifts/init.go b/genny/build/_fixtures/coke/grifts/init.go deleted file mode 100644 index 73c0c3939..000000000 --- a/genny/build/_fixtures/coke/grifts/init.go +++ /dev/null @@ -1,10 +0,0 @@ -package grifts - -import ( - "github.com/gobuffalo/buffalo" - "github.com/markbates/coke/actions" -) - -func init() { - buffalo.Grifts(actions.App()) -} diff --git a/genny/build/_fixtures/coke/inflections.json b/genny/build/_fixtures/coke/inflections.json deleted file mode 100644 index ef0214f3a..000000000 --- a/genny/build/_fixtures/coke/inflections.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "singular": "plural" -} diff --git a/genny/build/_fixtures/coke/locales/all.en-us.yaml b/genny/build/_fixtures/coke/locales/all.en-us.yaml deleted file mode 100644 index 6514e2100..000000000 --- a/genny/build/_fixtures/coke/locales/all.en-us.yaml +++ /dev/null @@ -1,3 +0,0 @@ -# For more information on using i18n see: https://github.com/nicksnyder/go-i18n -- id: welcome_greeting - translation: "Welcome to Buffalo (EN)" diff --git a/genny/build/_fixtures/coke/main.go b/genny/build/_fixtures/coke/main.go deleted file mode 100644 index 147f1013e..000000000 --- a/genny/build/_fixtures/coke/main.go +++ /dev/null @@ -1,38 +0,0 @@ -package main - -import ( - "log" - - "github.com/markbates/coke/actions" -) - -// main is the starting point for your Buffalo application. -// You can feel free and add to this `main` method, change -// what it does, etc... -// All we ask is that, at some point, you make sure to -// call `app.Serve()`, unless you don't want to start your -// application that is. :) -func main() { - app := actions.App() - if err := app.Serve(); err != nil { - log.Fatal(err) - } -} - -/* -# Notes about `main.go` - -## SSL Support - -We recommend placing your application behind a proxy, such as -Apache or Nginx and letting them do the SSL heavy lifting -for you. https://gobuffalo.io/en/docs/proxy - -## Buffalo Build - -When `buffalo build` is run to compile your binary, this `main` -function will be at the heart of that binary. It is expected -that your `main` function will start your application using -the `app.Serve()` method. - -*/ diff --git a/genny/build/_fixtures/coke/models/models.go b/genny/build/_fixtures/coke/models/models.go deleted file mode 100644 index 69b6747a8..000000000 --- a/genny/build/_fixtures/coke/models/models.go +++ /dev/null @@ -1,22 +0,0 @@ -package models - -import ( - "log" - - "github.com/gobuffalo/envy" - "github.com/gobuffalo/pop/v5" -) - -// DB is a connection to your database to be used -// throughout your application. -var DB *pop.Connection - -func init() { - var err error - env := envy.Get("GO_ENV", "development") - DB, err = pop.Connect(env) - if err != nil { - log.Fatal(err) - } - pop.Debug = env == "development" -} diff --git a/genny/build/_fixtures/coke/models/models_test.go b/genny/build/_fixtures/coke/models/models_test.go deleted file mode 100644 index c8cb6199f..000000000 --- a/genny/build/_fixtures/coke/models/models_test.go +++ /dev/null @@ -1,24 +0,0 @@ -package models_test - -import ( - "testing" - - "github.com/gobuffalo/packr/v2" - "github.com/gobuffalo/suite" -) - -type ModelSuite struct { - *suite.Model -} - -func Test_ModelSuite(t *testing.T) { - model, err := suite.NewModelWithFixtures(packr.New("../fixtures", "../fixtures")) - if err != nil { - t.Fatal(err) - } - - as := &ModelSuite{ - Model: model, - } - suite.Run(t, as) -} diff --git a/genny/build/_fixtures/coke/package.json b/genny/build/_fixtures/coke/package.json deleted file mode 100644 index c1ca5e7e0..000000000 --- a/genny/build/_fixtures/coke/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "buffalo", - "version": "1.0.0", - "main": "index.js", - "license": "MIT", - "scripts": { - "dev": "webpack --watch", - "build": "webpack -p --progress" - }, - "repository": "github.com/gobuffalo/buffalo", - "dependencies": { - "@fortawesome/fontawesome-free": "^5.12.0", - "bootstrap": "4.5.2", - "jquery": "3.5.1", - "jquery-ujs": "~1.2.2", - "popper.js": "^1.16.1" - }, - "devDependencies": { - "@babel/core": "^7.9.0", - "@babel/preset-env": "^7.9.5", - "babel-loader": "^8.1.0", - "copy-webpack-plugin": "~6.1.0", - "css-loader": "~3.5.1", - "expose-loader": "~0.7.5", - "file-loader": "~6.0.0", - "gopherjs-loader": "^0.0.1", - "mini-css-extract-plugin": "^0.11.0", - "node-sass": "~4.14.1", - "npm-install-webpack-plugin": "4.0.5", - "sass-loader": "~8.0.2", - "style-loader": "~1.1.3", - "terser-webpack-plugin": "~4.1.0", - "url-loader": "~4.1.0", - "webpack": "~4.42.1", - "webpack-clean-obsolete-chunks": "^0.4.0", - "webpack-cli": "^4.0.0-beta.8", - "webpack-livereload-plugin": "~2.3.0", - "webpack-manifest-plugin": "~2.2.0" - } -} diff --git a/genny/build/_fixtures/coke/public/assets/.keep b/genny/build/_fixtures/coke/public/assets/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/genny/build/_fixtures/coke/public/robots.txt b/genny/build/_fixtures/coke/public/robots.txt deleted file mode 100644 index 1f53798bb..000000000 --- a/genny/build/_fixtures/coke/public/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Disallow: / diff --git a/genny/build/_fixtures/coke/templates/_flash.html b/genny/build/_fixtures/coke/templates/_flash.html deleted file mode 100644 index adc4b27ba..000000000 --- a/genny/build/_fixtures/coke/templates/_flash.html +++ /dev/null @@ -1,14 +0,0 @@ -
-
- <%= for (k, messages) in flash { %> - <%= for (msg) in messages { %> - - <% } %> - <% } %> -
-
diff --git a/genny/build/_fixtures/coke/templates/application.html b/genny/build/_fixtures/coke/templates/application.html deleted file mode 100644 index c9125b4cc..000000000 --- a/genny/build/_fixtures/coke/templates/application.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - Buffalo - Coke - <%= stylesheetTag("application.css") %> - - - "> - - - -
- <%= partial("flash.html") %> - <%= yield %> -
- - <%= javascriptTag("application.js") %> - - diff --git a/genny/build/_fixtures/coke/templates/index.html b/genny/build/_fixtures/coke/templates/index.html deleted file mode 100644 index 320a5860f..000000000 --- a/genny/build/_fixtures/coke/templates/index.html +++ /dev/null @@ -1,64 +0,0 @@ -
-
-
- -
-

<%= t("welcome_greeting") %>

-

- https://github.com/gobuffalo/buffalo -

-

- Documentation -

-
-
-
- -
- -
-
-
-
-

Defined Routes

-
-
-
- - - - - - - - - - - - <%= for (r) in routes { %> - - - - - - - <% } %> - - -
METHODPATHNAMEHANDLER
- <%= r.Method %> - - <%= if (r.Method != "GET" || r.Path ~= "{") { %> - <%= r.Path %> - <% } else { %> - <%= r.Path %> - <% } %> - - <%= r.PathName %> - <%= r.HandlerName %>
-
-
-
-
Powered by gobuffalo.io
diff --git a/genny/build/_fixtures/coke/webpack.config.js b/genny/build/_fixtures/coke/webpack.config.js deleted file mode 100644 index 9405f28c1..000000000 --- a/genny/build/_fixtures/coke/webpack.config.js +++ /dev/null @@ -1,114 +0,0 @@ -const Webpack = require("webpack"); -const Glob = require("glob"); -const CopyWebpackPlugin = require("copy-webpack-plugin"); -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); -const ManifestPlugin = require("webpack-manifest-plugin"); -const CleanObsoleteChunks = require("webpack-clean-obsolete-chunks"); -const TerserPlugin = require("terser-webpack-plugin"); -const LiveReloadPlugin = require("webpack-livereload-plugin"); - -const configurator = { - entries: function(){ - var entries = { - application: [ - './node_modules/jquery-ujs/src/rails.js', - './assets/css/application.scss', - ], - } - - Glob.sync("./assets/*/*.*").forEach((entry) => { - if (entry === './assets/css/application.scss') { - return - } - - let key = entry.replace(/(\.\/assets\/(src|js|css|go)\/)|\.(ts|js|s[ac]ss|go)/g, '') - if(key.startsWith("_") || (/(ts|js|s[ac]ss|go)$/i).test(entry) == false) { - return - } - - if( entries[key] == null) { - entries[key] = [entry] - return - } - - entries[key].push(entry) - }) - return entries - }, - - plugins() { - var plugins = [ - new CleanObsoleteChunks(), - new Webpack.ProvidePlugin({$: "jquery",jQuery: "jquery"}), - new MiniCssExtractPlugin({filename: "[name].[contenthash].css"}), - new CopyWebpackPlugin([{from: "./assets",to: ""}], {copyUnmodified: true,ignore: ["css/**", "js/**", "src/**"] }), - new Webpack.LoaderOptionsPlugin({minimize: true,debug: false}), - new ManifestPlugin({fileName: "manifest.json"}) - ]; - - return plugins - }, - - moduleOptions: function() { - return { - rules: [ - { - test: /\.s[ac]ss$/, - use: [ - MiniCssExtractPlugin.loader, - { loader: "css-loader", options: {sourceMap: true}}, - { loader: "sass-loader", options: {sourceMap: true}} - ] - }, - { test: /\.tsx?$/, use: "ts-loader", exclude: /node_modules/}, - { test: /\.jsx?$/,loader: "babel-loader",exclude: /node_modules/ }, - { test: /\.(woff|woff2|ttf|svg)(\?v=\d+\.\d+\.\d+)?$/,use: "url-loader"}, - { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,use: "file-loader" }, - { test: require.resolve("jquery"),use: "expose-loader?jQuery!expose-loader?$"}, - { test: /\.go$/, use: "gopherjs-loader"} - ] - } - }, - - buildConfig: function(){ - // NOTE: If you are having issues with this not being set "properly", make - // sure your GO_ENV is set properly as `buffalo build` overrides NODE_ENV - // with whatever GO_ENV is set to or "development". - const env = process.env.NODE_ENV || "development"; - - var config = { - mode: env, - entry: configurator.entries(), - output: {filename: "[name].[hash].js", path: `${__dirname}/public/assets`}, - plugins: configurator.plugins(), - module: configurator.moduleOptions(), - resolve: { - extensions: ['.ts', '.js', '.json'] - } - } - - if( env === "development" ){ - config.plugins.push(new LiveReloadPlugin({appendScriptTag: true})) - return config - } - - const terser = new TerserPlugin({ - terserOptions: { - compress: {}, - mangle: {keep_fnames: true}, - output: { - comments: false, - }, - }, - extractComments: false, - }) - - config.optimization = { - minimizer: [terser] - } - - return config - } -} - -module.exports = configurator.buildConfig() diff --git a/genny/build/_fixtures/coke/yarn.lock b/genny/build/_fixtures/coke/yarn.lock deleted file mode 100644 index ed8d3f8b6..000000000 --- a/genny/build/_fixtures/coke/yarn.lock +++ /dev/null @@ -1,5802 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - -"@babel/compat-data@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.6.tgz#3f604c40e420131affe6f2c8052e9a275ae2049b" - integrity sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g== - dependencies: - browserslist "^4.11.1" - invariant "^2.2.4" - semver "^5.5.0" - -"@babel/core@^7.9.0": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.6.tgz#d9aa1f580abf3b2286ef40b6904d390904c63376" - integrity sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.6" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.6" - "@babel/parser" "^7.9.6" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43" - integrity sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ== - dependencies: - "@babel/types" "^7.9.6" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" - integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-compilation-targets@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz#1e05b7ccc9d38d2f8b40b458b380a04dcfadd38a" - integrity sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw== - dependencies: - "@babel/compat-data" "^7.9.6" - browserslist "^4.11.1" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" - integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" - integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/types" "^7.8.3" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" - integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== - dependencies: - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" - integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.9.5" - -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-hoist-variables@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" - integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.9.0" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== - -"@babel/helper-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" - integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" - integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-wrap-function" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz#03149d7e6a5586ab6764996cd31d6981a17e1444" - integrity sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" - -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" - integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== - -"@babel/helper-wrap-function@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" - integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helpers@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580" - integrity sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" - -"@babel/highlight@^7.8.3": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" - integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.8.6", "@babel/parser@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7" - integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q== - -"@babel/plugin-proposal-async-generator-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" - integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" - integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - -"@babel/plugin-proposal-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" - integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" - integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - -"@babel/plugin-proposal-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" - integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - -"@babel/plugin-proposal-object-rest-spread@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz#7a093586fcb18b08266eb1a7177da671ac575b63" - integrity sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.9.5" - -"@babel/plugin-proposal-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" - integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-optional-chaining@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" - integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" - integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.8" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-async-generators@^7.8.0": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-dynamic-import@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-json-strings@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" - integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-object-rest-spread@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" - integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-arrow-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" - integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" - integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - -"@babel/plugin-transform-block-scoped-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" - integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-block-scoping@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" - integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - lodash "^4.17.13" - -"@babel/plugin-transform-classes@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c" - integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-define-map" "^7.8.3" - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-split-export-declaration" "^7.8.3" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" - integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-destructuring@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50" - integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" - integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-duplicate-keys@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" - integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-exponentiation-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" - integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-for-of@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" - integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" - integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" - integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-member-expression-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" - integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-modules-amd@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz#8539ec42c153d12ea3836e0e3ac30d5aae7b258e" - integrity sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz#64b7474a4279ee588cacd1906695ca721687c277" - integrity sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-simple-access" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz#207f1461c78a231d5337a92140e52422510d81a4" - integrity sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg== - dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" - integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" - integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - -"@babel/plugin-transform-new-target@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" - integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-object-super@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" - integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" - -"@babel/plugin-transform-parameters@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795" - integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-property-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" - integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-regenerator@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" - integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" - integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-shorthand-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" - integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" - integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-sticky-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" - integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - -"@babel/plugin-transform-template-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" - integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-typeof-symbol@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" - integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-unicode-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" - integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/preset-env@^7.9.5": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.6.tgz#df063b276c6455ec6fcfc6e53aacc38da9b0aea6" - integrity sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ== - dependencies: - "@babel/compat-data" "^7.9.6" - "@babel/helper-compilation-targets" "^7.9.6" - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-proposal-async-generator-functions" "^7.8.3" - "@babel/plugin-proposal-dynamic-import" "^7.8.3" - "@babel/plugin-proposal-json-strings" "^7.8.3" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-numeric-separator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.6" - "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-chaining" "^7.9.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.8.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.8.3" - "@babel/plugin-transform-async-to-generator" "^7.8.3" - "@babel/plugin-transform-block-scoped-functions" "^7.8.3" - "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.9.5" - "@babel/plugin-transform-computed-properties" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.9.5" - "@babel/plugin-transform-dotall-regex" "^7.8.3" - "@babel/plugin-transform-duplicate-keys" "^7.8.3" - "@babel/plugin-transform-exponentiation-operator" "^7.8.3" - "@babel/plugin-transform-for-of" "^7.9.0" - "@babel/plugin-transform-function-name" "^7.8.3" - "@babel/plugin-transform-literals" "^7.8.3" - "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.9.6" - "@babel/plugin-transform-modules-commonjs" "^7.9.6" - "@babel/plugin-transform-modules-systemjs" "^7.9.6" - "@babel/plugin-transform-modules-umd" "^7.9.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" - "@babel/plugin-transform-new-target" "^7.8.3" - "@babel/plugin-transform-object-super" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.9.5" - "@babel/plugin-transform-property-literals" "^7.8.3" - "@babel/plugin-transform-regenerator" "^7.8.7" - "@babel/plugin-transform-reserved-words" "^7.8.3" - "@babel/plugin-transform-shorthand-properties" "^7.8.3" - "@babel/plugin-transform-spread" "^7.8.3" - "@babel/plugin-transform-sticky-regex" "^7.8.3" - "@babel/plugin-transform-template-literals" "^7.8.3" - "@babel/plugin-transform-typeof-symbol" "^7.8.4" - "@babel/plugin-transform-unicode-regex" "^7.8.3" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.9.6" - browserslist "^4.11.1" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/preset-modules@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/runtime@^7.8.4": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f" - integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.8.3", "@babel/template@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" - integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/traverse@^7.8.3", "@babel/traverse@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442" - integrity sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.6" - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.6" - "@babel/types" "^7.9.6" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.4.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" - integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA== - dependencies: - "@babel/helper-validator-identifier" "^7.9.5" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@fortawesome/fontawesome-free@^5.12.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.0.tgz#fcb113d1aca4b471b709e8c9c168674fbd6e06d9" - integrity sha512-xKOeQEl5O47GPZYIMToj6uuA2syyFlq9EMSl2ui0uytjY9xbe8XS0pexNWmxrdcCyNGyDmLyYw5FtKsalBUeOg== - -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== - dependencies: - "@nodelib/fs.stat" "2.0.3" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== - dependencies: - "@nodelib/fs.scandir" "2.1.3" - fastq "^1.6.0" - -"@npmcli/move-file@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" - integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== - dependencies: - mkdirp "^1.0.4" - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/json-schema@^7.0.5": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" - integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== - -"@types/node@*": - version "14.6.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.4.tgz#a145cc0bb14ef9c4777361b7bbafa5cf8e3acb5a" - integrity sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ== - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webpack-cli/logger@^1.0.1-alpha.4": - version "1.0.1-alpha.4" - resolved "https://registry.yarnpkg.com/@webpack-cli/logger/-/logger-1.0.1-alpha.4.tgz#f22b5ce6cd2f2d5089cae49583d0ee9c2de2d455" - integrity sha512-Q9y9guVd+mg1frxwjV65AsU7c6gQ+2x0XBPod3u+WU6bdEcBZCaFcmyVmAAtvmAxffiruYU291KkUmGaaHe9PA== - -"@webpack-cli/package-utils@^1.0.1-alpha.4": - version "1.0.1-alpha.4" - resolved "https://registry.yarnpkg.com/@webpack-cli/package-utils/-/package-utils-1.0.1-alpha.4.tgz#d6f8b3ef1f371a4f581c3eaf994f604942e0c0e1" - integrity sha512-GyuIwQ3PydTR/zb0W+Hb80qXvgQYIbWrKBl5sEzHPtGLZfagkIybRt+zZdklsmuWmkvLyeewlWL3LdXe40z1MA== - dependencies: - "@webpack-cli/logger" "^1.0.1-alpha.4" - chalk "^3.0.0" - enquirer "^2.3.4" - execa "^4.0.0" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -acorn@^6.2.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== - -aggregate-error@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" - integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4: - version "6.12.4" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" - integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.12.0, ajv@^6.5.5: - version "6.12.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= - -ansi-colors@^3.2.1: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-escapes@^4.2.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== - dependencies: - type-fest "^0.11.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.1.1, anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-back@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" - integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== - -array-back@^4.0.0, array-back@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.1.tgz#9b80312935a52062e1a233a9c7abeb5481b30e90" - integrity sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg== - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= - -async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" - integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== - -babel-loader@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== - dependencies: - find-cache-dir "^2.1.0" - loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" - schema-utils "^2.6.5" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" - integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= - dependencies: - inherits "~2.0.0" - -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.1.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" - integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== - -body@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/body/-/body-5.1.0.tgz#e4ba0ce410a46936323367609ecb4e6553125069" - integrity sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk= - dependencies: - continuable-cache "^0.3.1" - error "^7.0.0" - raw-body "~1.1.0" - safe-json-parse "~1.0.1" - -bootstrap@4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.5.2.tgz#a85c4eda59155f0d71186b6e6ad9b875813779ab" - integrity sha512-vlGn0bcySYl/iV+BGA544JkkZP5LB3jsmkeKLFQakCOwCM3AOk7VkldBz4jrzSe+Z0Ezn99NVXa1o45cQY4R6A== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - 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@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.11.1, browserslist@^4.8.5: - version "4.12.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" - integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== - dependencies: - caniuse-lite "^1.0.30001043" - electron-to-chromium "^1.3.413" - node-releases "^1.1.53" - pkg-up "^2.0.0" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" - integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g= - -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cacache@^15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" - integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== - dependencies: - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.0" - tar "^6.0.2" - unique-filename "^1.1.1" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30001043: - version "1.0.30001065" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001065.tgz#e8d7fef61cdfd8a7107493ad6bf551a4eb59c68f" - integrity sha512-DDxCLgJ266YnAHQv0jS1wdOaihRFF52Zgmlag39sQJVy2H46oROpJp4hITstqhdB8qnHSrKNoAEkQA9L/oYF9A== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.4.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" - integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.4.0" - optionalDependencies: - fsevents "~2.1.2" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-table3@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" - integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== - dependencies: - object-assign "^4.1.0" - string-width "^2.1.1" - optionalDependencies: - colors "^1.1.2" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colors@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -command-line-args@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.1.1.tgz#88e793e5bb3ceb30754a86863f0401ac92fd369a" - integrity sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg== - dependencies: - array-back "^3.0.1" - find-replace "^3.0.0" - lodash.camelcase "^4.3.0" - typical "^4.0.0" - -command-line-usage@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.0.tgz#f28376a3da3361ff3d36cfd31c3c22c9a64c7cb6" - integrity sha512-Ew1clU4pkUeo6AFVDFxCbnN7GIZfXl48HIOQeFQnkO3oOqvpI7wdqtLRwv9iOCZ/7A+z4csVZeiDdEcj8g6Wiw== - dependencies: - array-back "^4.0.0" - chalk "^2.4.2" - table-layout "^1.0.0" - typical "^5.2.0" - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -continuable-cache@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f" - integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8= - -convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -copy-webpack-plugin@~6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.1.0.tgz#5bde7f826d87e716d8d5e761ddd34bb675448458" - integrity sha512-aWjIuLt1OVQxaDVffnt3bnGmLA8zGgAJaFwPA+a+QYVPh1vhIKjVfh3SbOFLV0kRPvGBITbw17n5CsmiBS4LQQ== - dependencies: - cacache "^15.0.5" - fast-glob "^3.2.4" - find-cache-dir "^3.3.1" - glob-parent "^5.1.1" - globby "^11.0.1" - loader-utils "^2.0.0" - normalize-path "^3.0.0" - p-limit "^3.0.2" - schema-utils "^2.7.1" - serialize-javascript "^4.0.0" - webpack-sources "^1.4.3" - -core-js-compat@^3.6.2: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== - dependencies: - browserslist "^4.8.5" - semver "7.0.0" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - 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@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - 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" - -cross-spawn@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" - integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-loader@~3.5.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.5.3.tgz#95ac16468e1adcd95c844729e0bb167639eb0bcf" - integrity sha512-UEr9NH5Lmi7+dguAm+/JSPovNjYbm2k3TK58EiwQHzOHH5Jfq1Y+XoP2bQO6TMn7PptMd0opxxedAWcaSTRKHw== - dependencies: - camelcase "^5.3.1" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.27" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.0.3" - schema-utils "^2.6.6" - semver "^6.3.0" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.1.0, debug@^3.1.1: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -decamelize@^1.1.2, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-extend@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" - integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU= - dependencies: - globby "^6.1.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - p-map "^1.1.1" - pify "^3.0.0" - rimraf "^2.2.8" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -electron-to-chromium@^1.3.413: - version "1.3.451" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.451.tgz#0c075af3e2f06d706670bde0279432802ca8c83f" - integrity sha512-2fvco0F2bBIgqzO8GRP0Jt/91pdrf9KfZ5FsmkYkjERmIJG585cFeFZV4+CO6oTmU3HmCTgfcZuEa7kW8VUh3A== - -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - 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" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" - integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -enquirer@^2.3.4: - version "2.3.5" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.5.tgz#3ab2b838df0a9d8ab9e7dff235b0e8712ef92381" - integrity sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA== - dependencies: - ansi-colors "^3.2.1" - -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -error@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" - integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== - dependencies: - string-template "~0.2.1" - -es-abstract@^1.17.5: - version "1.17.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" - integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -esrecurse@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -events@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^3.2.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" - integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.2.tgz#ad87fb7b2d9d564f70d2b62d511bee41d5cbb240" - integrity sha512-QI2zLa6CjGWdiQsmSkZoGtDx2N+cQIGb3yNolGTdjSQzydzLgYYf8LRuagp7S7fPimjcrzUDSUFd/MgzELMi4Q== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expose-loader@~0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.5.tgz#e29ea2d9aeeed3254a3faa1b35f502db9f9c3f6f" - integrity sha512-iPowgKUZkTPX5PznYsmifVj9Bob0w2wTHVkt/eYNPSzyebkUgIedmskf/kcfEIWpiWjg3JRjnW+a17XypySMuw== - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.1.1, fast-glob@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" - integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" - merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fastq@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" - integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== - dependencies: - reusify "^1.0.4" - -faye-websocket@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -file-loader@~6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.0.0.tgz#97bbfaab7a2460c07bcbd72d3a6922407f67649f" - integrity sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ== - dependencies: - loader-utils "^2.0.0" - schema-utils "^2.6.5" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-replace@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" - integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== - dependencies: - array-back "^3.0.1" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -fstream@^1.0.0, fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - 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" - -gaze@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== - dependencies: - globule "^1.0.0" - -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= - -get-stream@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== - dependencies: - is-glob "^4.0.1" - -glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - 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" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globby@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" - integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" - slash "^3.0.0" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globule@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.1.tgz#90a25338f22b7fbeb527cee63c629aea754d33b9" - integrity sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g== - dependencies: - glob "~7.1.1" - lodash "~4.17.12" - minimatch "~3.0.2" - -gopherjs-loader@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/gopherjs-loader/-/gopherjs-loader-0.0.1.tgz#c9e25aa7693731de5daa0ea829a96b47f7e92668" - integrity sha1-yeJap2k3Md5dqg6oKalrR/fpJmg= - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -http-parser-js@>=0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" - integrity sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ== - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore@^5.1.4: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -import-local@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" - integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -in-publish@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.1.tgz#948b1a535c8030561cea522f73f78f4be357e00c" - integrity sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ== - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= - dependencies: - repeating "^2.0.0" - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -infer-owner@^1.0.3, infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -interpret@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.0.0.tgz#b783ffac0b8371503e9ab39561df223286aa5433" - integrity sha512-e0/LknJ8wpMMhTiWcjivB+ESwIuvHnBSlBbmP/pSb8CQJldoj1p2qv7xGZ/+BtbTziYRFSz8OsvdbiX45LtYQA== - -invariant@^2.2.2, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4, is-callable@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= - -is-path-in-cwd@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" - integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== - dependencies: - has "^1.0.3" - -is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -jest-worker@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.3.0.tgz#7c8a97e4f4364b4f05ed8bca8ca0c24de091871f" - integrity sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jquery-ujs@~1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jquery-ujs/-/jquery-ujs-1.2.2.tgz#6a8ef1020e6b6dda385b90a4bddc128c21c56397" - integrity sha1-ao7xAg5rbdo4W5CkvdwSjCHFY5c= - dependencies: - jquery ">=1.8.0" - -jquery@3.5.1, jquery@>=1.8.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5" - integrity sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg== - -js-base64@^2.1.8: - version "2.5.2" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.2.tgz#313b6274dda718f714d00b3330bbae6e38e90209" - integrity sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" - -livereload-js@^2.3.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" - integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw== - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= - -"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@~4.17.12: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -loglevelnext@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/loglevelnext/-/loglevelnext-3.0.1.tgz#e3e4659c4061c09264f6812c33586dc55a009a04" - integrity sha512-JpjaJhIN1reaSb26SIxDGtE0uc67gPl19OMVHrr+Ggt6b/Vy60jmCtKgQBrygAH0bhRA2nkxgDvM+8QvR8r0YA== - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== - -mime-types@^2.1.12, mime-types@^2.1.26, mime-types@~2.1.19: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== - dependencies: - mime-db "1.44.0" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mini-css-extract-plugin@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.0.tgz#3918953075109d4ca204bf1e8a393a78d3cc821f" - integrity sha512-dVWGuWJlQw2lZxsxBI3hOsoxg1k3DruLR0foHQLSkQMfk+qLJbv9dUk8fjmjWQKN9ef2n54ehA2FjClAsQhrWQ== - dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.4, minimatch@~3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz#55f7839307d74859d6e8ada9c3ebe72cec216a34" - integrity sha512-cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" - integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== - dependencies: - yallist "^4.0.0" - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -nan@^2.12.1, nan@^2.13.2: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -nanoid@^2.0.3: - version "2.1.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280" - integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -node-gyp@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" - integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "^2.87.0" - rimraf "2" - semver "~5.3.0" - tar "^2.0.0" - which "1" - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - 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" - -node-releases@^1.1.53: - version "1.1.56" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.56.tgz#bc054a417d316e3adac90eafb7e1932802f28705" - integrity sha512-EVo605FhWLygH8a64TjgpjyHYOihkxECwX1bHHr8tETJKWEiWS2YJjPbvsX2jFjnjTNEgBCmk9mLjKG1Mf11cw== - -node-sass@~4.14.1: - version "4.14.1" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5" - integrity sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g== - dependencies: - async-foreach "^0.1.3" - chalk "^1.1.1" - cross-spawn "^3.0.0" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - in-publish "^2.0.0" - lodash "^4.17.15" - meow "^3.7.0" - mkdirp "^0.5.1" - nan "^2.13.2" - node-gyp "^3.8.0" - npmlog "^4.0.0" - request "^2.88.0" - sass-graph "2.2.5" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - -"nopt@2 || 3": - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= - dependencies: - abbrev "1" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -npm-install-webpack-plugin@4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/npm-install-webpack-plugin/-/npm-install-webpack-plugin-4.0.5.tgz#0af5bbe45eaf2648e2cd51fd8b091e0b652fef1b" - integrity sha1-CvW75F6vJkjizVH9iwkeC2Uv7xs= - dependencies: - cross-spawn "^5.0.1" - json5 "^0.5.1" - memory-fs "^0.4.1" - resolve "^1.2.0" - -npm-run-path@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - 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@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.entries@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" - integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - has "^1.0.3" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== - dependencies: - mimic-fn "^2.1.0" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@0: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" - integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-map@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" - integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - -popper.js@^1.16.1: - version "1.16.1" - resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" - integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== - -portfinder@^1.0.17: - version "1.0.26" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.26.tgz#475658d56ca30bed72ac7f1378ed350bd1b64e70" - integrity sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.1" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915" - integrity sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.16" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.0" - -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" - integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.27, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.30" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.30.tgz#cc9378beffe46a02cbc4506a0477d05fcea9a8e2" - integrity sha512-nu/0m+NtIzoubO+xdAlwZl/u5S5vi/y6BCsoL8D+8IxsD3XvBS8X4YEADNIVXKVuQvduiucnRv+vPIqj56EGMQ== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - -private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - 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" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@^6.4.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" - integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -raw-body@~1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425" - integrity sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU= - dependencies: - bytes "1" - string_decoder "0.10" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - 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" - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== - dependencies: - picomatch "^2.2.1" - -rechoir@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" - integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== - dependencies: - resolve "^1.9.0" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -reduce-flatten@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" - integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - -regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== - dependencies: - "@babel/runtime" "^7.8.4" - private "^0.1.8" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== - dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -request@^2.87.0, request@^2.88.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.10.0, resolve@^1.2.0, resolve@^1.3.2, resolve@^1.9.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-json-parse@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-json-parse/-/safe-json-parse-1.0.1.tgz#3e76723e38dfdda13c9b1d29a1e07ffee4b30b57" - integrity sha1-PnZyPjjf3aE8mx0poeB//uSzC1c= - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sass-graph@2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" - integrity sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag== - dependencies: - glob "^7.0.0" - lodash "^4.0.0" - scss-tokenizer "^0.2.3" - yargs "^13.3.2" - -sass-loader@~8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" - integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== - dependencies: - clone-deep "^4.0.1" - loader-utils "^1.2.3" - neo-async "^2.6.1" - schema-utils "^2.6.1" - semver "^6.3.0" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.6.6: - version "2.6.6" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.6.tgz#299fe6bd4a3365dc23d99fd446caff8f1d6c330c" - integrity sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA== - dependencies: - ajv "^6.12.0" - ajv-keywords "^3.4.1" - -schema-utils@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -scss-tokenizer@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" - integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= - dependencies: - js-base64 "^2.1.8" - source-map "^0.4.2" - -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= - -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@~0.5.12: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - integrity sha1-66T12pwNyZneaAMti092FzZSA2s= - dependencies: - amdefine ">=0.0.4" - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - -ssri@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" - integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== - dependencies: - minipass "^3.1.1" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stdout-stream@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" - integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== - dependencies: - readable-stream "^2.0.1" - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string.prototype.trimend@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimleft@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" - integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimstart "^1.0.0" - -string.prototype.trimright@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" - integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimend "^1.0.0" - -string.prototype.trimstart@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@0.10: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= - dependencies: - get-stdin "^4.0.1" - -style-loader@~1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.1.4.tgz#1ad81283cefe51096756fd62697258edad933230" - integrity sha512-SbBHRD8fwK3pX+4UDF4ETxUF0+rCvk29LWTTI7Rt0cgsDjAj3SWM76ByTe6u2+4IlJ/WwluB7wuslWETCoPQdg== - dependencies: - loader-utils "^2.0.0" - schema-utils "^2.6.5" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - -table-layout@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.1.tgz#8411181ee951278ad0638aea2f779a9ce42894f9" - integrity sha512-dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q== - dependencies: - array-back "^4.0.1" - deep-extend "~0.6.0" - typical "^5.2.0" - wordwrapjs "^4.0.0" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tar@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" - integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== - dependencies: - block-stream "*" - fstream "^1.0.12" - inherits "2" - -tar@^6.0.2: - version "6.0.5" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" - integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser-webpack-plugin@~4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.1.0.tgz#6e9d6ae4e1a900d88ddce8da6a47507ea61f44bc" - integrity sha512-0ZWDPIP8BtEDZdChbufcXUigOYk6dOX/P/X0hWxqDDcVAQLb8Yy/0FAaemSfax3PAA67+DJR778oz8qVbmy4hA== - dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - jest-worker "^26.3.0" - p-limit "^3.0.2" - schema-utils "^2.6.6" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^5.0.0" - webpack-sources "^1.4.3" - -terser@^4.1.2: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^5.0.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.0.tgz#c481f4afecdcc182d5e2bdd2ff2dc61555161e81" - integrity sha512-XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== - dependencies: - setimmediate "^1.0.4" - -tiny-lr@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-1.1.1.tgz#9fa547412f238fedb068ee295af8b682c98b2aab" - integrity sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA== - dependencies: - body "^5.1.0" - debug "^3.1.0" - faye-websocket "~0.10.0" - livereload-js "^2.3.0" - object-assign "^4.1.0" - qs "^6.4.0" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= - -"true-case-path@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" - integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== - dependencies: - glob "^7.1.2" - -tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -typical@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" - integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== - -typical@^5.0.0, typical@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" - integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -uri-js@^4.2.2: - version "4.4.0" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" - integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-loader@~4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.0.tgz#c7d6b0d6b0fccd51ab3ffc58a78d32b8d89a7be2" - integrity sha512-IzgAAIC8wRrg6NYkFIJY09vtktQcsvU8V6HhtQj9PTefbYImzLB1hufqo4m+RyM5N3mLx5BqJKccgxJS+W3kqw== - dependencies: - loader-utils "^2.0.0" - mime-types "^2.1.26" - schema-utils "^2.6.5" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -v8-compile-cache@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" - integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.6.0: - version "1.7.4" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" - integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.0" - -webpack-clean-obsolete-chunks@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/webpack-clean-obsolete-chunks/-/webpack-clean-obsolete-chunks-0.4.0.tgz#1407d5a3cd155de6b0e42195901c5359da9d03cd" - integrity sha512-VSaM/iVkbtRgp3mBIHfuZ0Pm/ekWL3jR5b55+dOnlon77hkBsNfuylkz9UqvUPA1AIljrbtiFpdRuoDtu7v5/A== - dependencies: - del "^3.0.0" - -webpack-cli@^4.0.0-beta.8: - version "4.0.0-beta.8" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.0.0-beta.8.tgz#62dfd9daaba6d46d2035f91d8aa08fda4ae2fc9f" - integrity sha512-kitIlz9sjCw5OSWePZYlWopmZGxy4vK7gA3MTAll5/J96cTjXGCxUBO2j9beN6saCv46cpPp1IE5V0eTGK1S0A== - dependencies: - "@webpack-cli/logger" "^1.0.1-alpha.4" - "@webpack-cli/package-utils" "^1.0.1-alpha.4" - ansi-escapes "^4.2.1" - chalk "^3.0.0" - cli-table3 "^0.5.1" - command-line-args "^5.1.1" - command-line-usage "^6.1.0" - enquirer "^2.3.4" - execa "^3.2.0" - import-local "^3.0.2" - interpret "^2.0.0" - rechoir "^0.7.0" - v8-compile-cache "^2.1.0" - webpack-log "^3.0.1" - webpack-merge "^4.2.2" - -webpack-livereload-plugin@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/webpack-livereload-plugin/-/webpack-livereload-plugin-2.3.0.tgz#61994e0500a0c1e27355ff753a9642641bef5d6a" - integrity sha512-vVBLQLlNpElt2sfsBG+XLDeVbQFS4RrniVU8Hi1/hX5ycSfx6mtW8MEEITr2g0Cvo36kuPWShFFDuy+DS7KFMA== - dependencies: - anymatch "^3.1.1" - portfinder "^1.0.17" - tiny-lr "^1.1.1" - -webpack-log@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-3.0.1.tgz#647c42231b6f74d7cc3c3a66510370e635d066ea" - integrity sha512-mX/6BJPPpxco6BGCFZJ96NjgnwBrLQx6d7Kxe1PaJ7KvjI3LFmJK9QgRPCAr9tXrPVawPN1cuM8hJ2Vadnwm+Q== - dependencies: - chalk "^2.4.2" - loglevelnext "^3.0.1" - nanoid "^2.0.3" - -webpack-manifest-plugin@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz#19ca69b435b0baec7e29fbe90fb4015de2de4f16" - integrity sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ== - dependencies: - fs-extra "^7.0.0" - lodash ">=3.5 <5" - object.entries "^1.1.0" - tapable "^1.0.0" - -webpack-merge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" - integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== - dependencies: - lodash "^4.17.15" - -webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@~4.42.1: - version "4.42.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.1.tgz#ae707baf091f5ca3ef9c38b884287cfe8f1983ef" - integrity sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.2.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.6.0" - webpack-sources "^1.4.1" - -websocket-driver@>=0.5.1: - version "0.7.4" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== - dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@1, which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -wordwrapjs@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.0.tgz#9aa9394155993476e831ba8e59fb5795ebde6800" - integrity sha512-Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ== - dependencies: - reduce-flatten "^2.0.0" - typical "^5.0.0" - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" diff --git a/genny/build/_fixtures/template_validator/bad/a.html b/genny/build/_fixtures/template_validator/bad/a.html deleted file mode 100644 index aff0b4ba6..000000000 --- a/genny/build/_fixtures/template_validator/bad/a.html +++ /dev/null @@ -1 +0,0 @@ -A Hello <%= broken!>%>> diff --git a/genny/build/_fixtures/template_validator/bad/b.md b/genny/build/_fixtures/template_validator/bad/b.md deleted file mode 100644 index 71fd40999..000000000 --- a/genny/build/_fixtures/template_validator/bad/b.md +++ /dev/null @@ -1 +0,0 @@ -B Hello <%= broken!>%>> diff --git a/genny/build/apkg.go b/genny/build/apkg.go deleted file mode 100644 index 9a5479a65..000000000 --- a/genny/build/apkg.go +++ /dev/null @@ -1,52 +0,0 @@ -package build - -import ( - "os/exec" - - "github.com/gobuffalo/genny/v2" -) - -func apkg(opts *Options) (*genny.Generator, error) { - g := genny.New() - - if err := opts.Validate(); err != nil { - return g, err - } - - g.RunFn(copyInflections) - g.RunFn(copyDatabase) - g.RunFn(addDependencies) - - return g, nil -} - -func addDependencies(r *genny.Runner) error { - return r.Exec(exec.Command("go", "get", "-d")) -} - -func copyDatabase(r *genny.Runner) error { - defer func() { - r.Disk.Remove("database.yml") - }() - f, err := r.FindFile("database.yml") - if err != nil { - f, err = r.FindFile("config/database.yml") - if err != nil { - // it's ok to not have this file - return nil - } - } - return r.File(genny.NewFile("a/database.yml", f)) -} - -func copyInflections(r *genny.Runner) error { - defer func() { - r.Disk.Remove("inflections.json") - }() - f, err := r.FindFile("inflections.json") - if err != nil { - // it's ok to not have this file - return nil - } - return r.File(genny.NewFile("a/inflections.json", f)) -} diff --git a/genny/build/apkg_test.go b/genny/build/apkg_test.go deleted file mode 100644 index 5c93a9353..000000000 --- a/genny/build/apkg_test.go +++ /dev/null @@ -1 +0,0 @@ -package build diff --git a/genny/build/archived_assets.go b/genny/build/archived_assets.go deleted file mode 100644 index bfe9f4fc2..000000000 --- a/genny/build/archived_assets.go +++ /dev/null @@ -1,103 +0,0 @@ -package build - -import ( - "archive/zip" - "bytes" - "io" - "path/filepath" - "strings" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/packr/v2" -) - -func archivedAssets(opts *Options) (*genny.Generator, error) { - g := genny.New() - - if err := opts.Validate(); err != nil { - return g, err - } - - app := opts.App - - outputDir := filepath.Dir(filepath.Join(app.Root, app.Bin)) - target := filepath.Join(outputDir, "assets.zip") - source := filepath.Join(app.Root, "public", "assets") - - g.RunFn(func(r *genny.Runner) error { - bb := &bytes.Buffer{} - archive := zip.NewWriter(bb) - defer archive.Close() - - // set the initial resolution of the box to a folder - // that doesn't exist, then set the resolution to the - // source. don't change! MB - box := packr.New("buffalo:build:assets", "./undefined") - box.ResolutionDir = source - err := box.Walk(func(path string, file packr.File) error { - info, err := file.FileInfo() - if err != nil { - return err - } - - header, err := zip.FileInfoHeader(info) - if err != nil { - return err - } - - var baseDir string - if info.IsDir() { - baseDir = filepath.Base(source) - } - if baseDir != "" { - rel, err := filepath.Rel(source, path) - if err != nil { - return err - } - header.Name = filepath.Join(baseDir, rel) - } - - if info.IsDir() { - header.Name += "/" - } else { - header.Method = zip.Deflate - } - - writer, err := archive.CreateHeader(header) - if err != nil { - return err - } - - if info.IsDir() { - return nil - } - - _, err = io.Copy(writer, file) - return err - }) - if err != nil { - return err - } - // We need to close the archive before passing the buffer to genny, otherwise the zip - // will be corrupted. - archive.Close() - if err := r.File(genny.NewFile(target, bb)); err != nil { - return err - } - opts.keep.Store(target, struct{}{}) - return nil - }) - - g.RunFn(func(r *genny.Runner) error { - f, err := r.FindFile("actions/app.go") - if err != nil { - return err - } - opts.rollback.Store(f.Name(), f.String()) - body := strings.Replace(f.String(), `app.ServeFiles("/assets"`, `// app.ServeFiles("/assets"`, 1) - body = strings.Replace(body, `app.ServeFiles("/"`, `// app.ServeFiles("/"`, 1) - return r.File(genny.NewFileS(f.Name(), body)) - }) - - return g, nil -} diff --git a/genny/build/assets.go b/genny/build/assets.go deleted file mode 100644 index 3ffc8c03d..000000000 --- a/genny/build/assets.go +++ /dev/null @@ -1,83 +0,0 @@ -package build - -import ( - "bytes" - "os/exec" - "path/filepath" - - "github.com/gobuffalo/buffalo/genny/assets/webpack" - "github.com/gobuffalo/envy" - "github.com/gobuffalo/genny/v2" - - "github.com/gobuffalo/packr/v2/jam" - "github.com/gobuffalo/packr/v2/jam/parser" -) - -func assets(opts *Options) (*genny.Generator, error) { - g := genny.New() - - if err := opts.Validate(); err != nil { - return g, err - } - - if opts.App.WithNodeJs || opts.App.WithWebpack { - if opts.CleanAssets { - g.RunFn(func(r *genny.Runner) error { - r.Delete(filepath.Join(opts.App.Root, "public", "assets")) - return nil - }) - } - g.RunFn(func(r *genny.Runner) error { - r.Logger.Debugf("setting NODE_ENV = %s", opts.Environment) - return envy.MustSet("NODE_ENV", opts.Environment) - }) - g.RunFn(func(r *genny.Runner) error { - tool := "yarnpkg" - if !opts.App.WithYarn { - tool = "npm" - } - - c := exec.CommandContext(r.Context, tool, "run", "build") - if _, err := opts.App.NodeScript("build"); err != nil { - // Fallback on legacy runner - c = exec.CommandContext(r.Context, webpack.BinPath) - } - - bb := &bytes.Buffer{} - c.Stdout = bb - c.Stderr = bb - - if err := r.Exec(c); err != nil { - r.Logger.Error(bb.String()) - return err - } - return nil - - }) - } - - g.RunFn(func(r *genny.Runner) error { - ro := &parser.RootsOptions{} - - if !opts.WithAssets { - ro.Ignores = append(ro.Ignores, "public/assets") - } - - opts := jam.PackOptions{ - Roots: []string{opts.App.Root}, - RootsOptions: ro, - } - return jam.Pack(opts) - }) - - if opts.ExtractAssets && opts.WithAssets { - // mount the archived assets generator - aa, err := archivedAssets(opts) - if err != nil { - return g, err - } - g.Merge(aa) - } - - return g, nil -} diff --git a/genny/build/assets_test.go b/genny/build/assets_test.go deleted file mode 100644 index 2e1fbb476..000000000 --- a/genny/build/assets_test.go +++ /dev/null @@ -1,71 +0,0 @@ -package build - -import ( - "strings" - "testing" - - "github.com/gobuffalo/envy" - "github.com/stretchr/testify/require" -) - -func Test_assets(t *testing.T) { - r := require.New(t) - - opts := &Options{ - WithAssets: true, - } - r.NoError(opts.Validate()) - opts.App.WithNodeJs = true - opts.App.PackageJSON.Scripts = map[string]string{ - "build": "webpack -p --progress", - } - - run := cokeRunner() - run.WithNew(assets(opts)) - - envy.MustSet("NODE_ENV", "") - ne := envy.Get("NODE_ENV", "") - r.Empty(ne) - r.NoError(run.Run()) - - ne = envy.Get("NODE_ENV", "") - r.NotEmpty(ne) - r.Equal(opts.Environment, ne) - - res := run.Results() - - cmds := []string{"npm run build"} - r.Len(res.Commands, len(cmds)) - for i, c := range res.Commands { - r.Equal(cmds[i], strings.Join(c.Args, " ")) - } -} - -func Test_assets_Archived(t *testing.T) { - r := require.New(t) - - opts := &Options{ - WithAssets: true, - ExtractAssets: true, - } - r.NoError(opts.Validate()) - - run := cokeRunner() - opts.Root = run.Root - run.WithNew(assets(opts)) - r.NoError(run.Run()) - - res := run.Results() - - cmds := []string{} - r.Len(res.Commands, len(cmds)) - for i, c := range res.Commands { - r.Equal(cmds[i], strings.Join(c.Args, " ")) - } - - // r.Len(res.Files, 1) - - f, err := res.Find("actions/app.go") - r.NoError(err) - r.Contains(f.String(), `// app.ServeFiles("/"`) -} diff --git a/genny/build/bin.go b/genny/build/bin.go deleted file mode 100644 index d93d23141..000000000 --- a/genny/build/bin.go +++ /dev/null @@ -1,54 +0,0 @@ -package build - -import ( - "os/exec" - "runtime" - "strings" -) - -func buildCmd(opts *Options) (*exec.Cmd, error) { - if len(opts.GoCommand) == 0 { - opts.GoCommand = "build" - } - buildArgs := []string{opts.GoCommand} - - if len(opts.Mod) != 0 { - buildArgs = append(buildArgs, "-mod", opts.Mod) - } - - buildArgs = append(buildArgs, opts.BuildFlags...) - - tf := opts.App.BuildTags(opts.Environment, opts.Tags...) - if len(tf) > 0 { - buildArgs = append(buildArgs, "-tags", tf.String()) - } - - if opts.GoCommand == "build" { - bin := opts.App.Bin - if runtime.GOOS == "windows" { - if !strings.HasSuffix(bin, ".exe") { - bin += ".exe" - } - bin = strings.Replace(bin, "/", "\\", -1) - } else { - bin = strings.TrimSuffix(bin, ".exe") - } - buildArgs = append(buildArgs, "-o", bin) - } - - flags := []string{} - - if opts.Static { - flags = append(flags, "-linkmode external", "-extldflags \"-static\"") - } - - // Add any additional ldflags passed in to the build args - if len(opts.LDFlags) > 0 { - flags = append(flags, opts.LDFlags) - } - if len(flags) > 0 { - buildArgs = append(buildArgs, "-ldflags", strings.Join(flags, " ")) - } - - return exec.Command("go", buildArgs...), nil -} diff --git a/genny/build/bin_test.go b/genny/build/bin_test.go deleted file mode 100644 index 7353d8d81..000000000 --- a/genny/build/bin_test.go +++ /dev/null @@ -1,168 +0,0 @@ -package build - -import ( - "os/exec" - "runtime" - "strings" - "testing" - - "github.com/gobuffalo/envy" - "github.com/gobuffalo/meta" - "github.com/stretchr/testify/require" -) - -func Test_buildCmd(t *testing.T) { - envy.Set("GO_BIN", "go") - r := require.New(t) - - eq := func(s string, c *exec.Cmd) { - if runtime.GOOS == "windows" { - s = strings.Replace(s, "bin/build", `bin\build.exe`, 1) - s = strings.Replace(s, "bin/foo", `bin\foo.exe`, 1) - } - r.Equal(s, strings.Join(c.Args, " ")) - } - - opts := &Options{ - App: meta.New("."), - GoCommand: "build", - } - c, err := buildCmd(opts) - r.NoError(err) - eq("go build -o bin/build", c) - - opts.Environment = "bar" - c, err = buildCmd(opts) - r.NoError(err) - eq("go build -tags bar -o bin/build", c) - - opts.App.Bin = "bin/foo" - c, err = buildCmd(opts) - r.NoError(err) - eq("go build -tags bar -o bin/foo", c) - - opts.WithSQLite = true - c, err = buildCmd(opts) - r.NoError(err) - eq("go build -tags bar sqlite -o bin/foo", c) - - opts.LDFlags = "-X foo.Bar=baz" - c, err = buildCmd(opts) - r.NoError(err) - eq("go build -tags bar sqlite -o bin/foo -ldflags -X foo.Bar=baz", c) - - opts.Static = true - c, err = buildCmd(opts) - r.NoError(err) - eq("go build -tags bar sqlite -o bin/foo -ldflags -linkmode external -extldflags \"-static\" -X foo.Bar=baz", c) - - opts.LDFlags = "-X main.BuildTime=asdf" - c, err = buildCmd(opts) - r.NoError(err) - eq("go build -tags bar sqlite -o bin/foo -ldflags -linkmode external -extldflags \"-static\" -X main.BuildTime=asdf", c) - - opts.LDFlags = "-X main.BuildVersion=asdf" - c, err = buildCmd(opts) - r.NoError(err) - eq("go build -tags bar sqlite -o bin/foo -ldflags -linkmode external -extldflags \"-static\" -X main.BuildVersion=asdf", c) -} - -func Test_buildCmd_Unix_RemovesExe(t *testing.T) { - if runtime.GOOS == "windows" { - return - } - envy.Set("GO_BIN", "go") - r := require.New(t) - - eq := func(s string, c *exec.Cmd) { - r.Equal(s, strings.Join(c.Args, " ")) - } - app := meta.New(".") - app.Bin = "bin/build.exe" - opts := &Options{ - App: app, - GoCommand: "build", - } - c, err := buildCmd(opts) - r.NoError(err) - eq("go build -o bin/build", c) -} - -func Test_buildCmd_Windows_AddsExe(t *testing.T) { - if runtime.GOOS != "windows" { - return - } - envy.Set("GO_BIN", "go") - r := require.New(t) - - eq := func(s string, c *exec.Cmd) { - r.Equal(s, strings.Join(c.Args, " ")) - } - - app := meta.New(".") - for _, x := range []string{"bin\\build", "bin\\build.exe"} { - app.Bin = x - opts := &Options{ - App: app, - } - c, err := buildCmd(opts) - r.NoError(err) - eq("go build -o bin\\build.exe", c) - } -} - -func Test_installCmd(t *testing.T) { - envy.Set("GO_BIN", "go") - r := require.New(t) - - eq := func(s string, c *exec.Cmd) { - if runtime.GOOS == "windows" { - s = strings.Replace(s, "bin/build", `bin\build.exe`, 1) - s = strings.Replace(s, "bin/foo", `bin\foo.exe`, 1) - } - r.Equal(s, strings.Join(c.Args, " ")) - } - - opts := &Options{ - App: meta.New("."), - GoCommand: "install", - } - c, err := buildCmd(opts) - r.NoError(err) - eq("go install", c) - - opts.Environment = "bar" - c, err = buildCmd(opts) - r.NoError(err) - eq("go install -tags bar", c) - - opts.App.Bin = "bin/foo" - c, err = buildCmd(opts) - r.NoError(err) - eq("go install -tags bar", c) - - opts.WithSQLite = true - c, err = buildCmd(opts) - r.NoError(err) - eq("go install -tags bar sqlite", c) - - opts.LDFlags = "-X foo.Bar=baz" - c, err = buildCmd(opts) - r.NoError(err) - eq("go install -tags bar sqlite -ldflags -X foo.Bar=baz", c) - - opts.Static = true - c, err = buildCmd(opts) - r.NoError(err) - eq("go install -tags bar sqlite -ldflags -linkmode external -extldflags \"-static\" -X foo.Bar=baz", c) - - opts.LDFlags = "-X main.BuildTime=asdf" - c, err = buildCmd(opts) - r.NoError(err) - eq("go install -tags bar sqlite -ldflags -linkmode external -extldflags \"-static\" -X main.BuildTime=asdf", c) - - opts.LDFlags = "-X main.BuildVersion=asdf" - c, err = buildCmd(opts) - r.NoError(err) - eq("go install -tags bar sqlite -ldflags -linkmode external -extldflags \"-static\" -X main.BuildVersion=asdf", c) -} diff --git a/genny/build/build.go b/genny/build/build.go deleted file mode 100644 index a4edfa397..000000000 --- a/genny/build/build.go +++ /dev/null @@ -1,100 +0,0 @@ -package build - -import ( - "time" - - "github.com/gobuffalo/buffalo/runtime" - - "github.com/gobuffalo/events" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/plushgen" - "github.com/gobuffalo/packr/v2" - "github.com/gobuffalo/packr/v2/jam" - "github.com/gobuffalo/plush/v4" -) - -// New generator for building a Buffalo application -// This powers the `buffalo build` command and can be -// used to programatically build/compile Buffalo -// applications. -func New(opts *Options) (*genny.Generator, error) { - g := genny.New() - - if err := opts.Validate(); err != nil { - return g, err - } - g.ErrorFn = func(err error) { - events.EmitError(EvtBuildStopErr, err, events.Payload{"opts": opts}) - } - - g.RunFn(func(r *genny.Runner) error { - events.EmitPayload(EvtBuildStart, events.Payload{"opts": opts}) - return nil - }) - - g.Transformer(genny.Dot()) - - // validate templates - g.RunFn(ValidateTemplates(templateWalker(opts.App), opts.TemplateValidators)) - - // rename main() to originalMain() - g.RunFn(transformMain(opts)) - - // add any necessary templates for the build - box := packr.New("github.com/gobuffalo/buffalo@v0.15.6/genny/build", "../build/templates") - if err := g.Box(box); err != nil { - return g, err - } - - // configure plush - ctx := plush.NewContext() - ctx.Set("opts", opts) - ctx.Set("buildTime", opts.BuildTime.Format(time.RFC3339)) - ctx.Set("buildVersion", opts.BuildVersion) - ctx.Set("buffaloVersion", runtime.Version) - g.Transformer(plushgen.Transformer(ctx)) - - // create the ./a pkg - ag, err := apkg(opts) - if err != nil { - return g, err - } - g.Merge(ag) - - if opts.WithAssets { - // mount the assets generator - ag, err := assets(opts) - if err != nil { - return g, err - } - g.Merge(ag) - } - - if opts.WithBuildDeps { - // mount the build time dependency generator - dg, err := buildDeps(opts) - if err != nil { - return g, err - } - g.Merge(dg) - } - - g.RunFn(func(r *genny.Runner) error { - return jam.Pack(jam.PackOptions{}) - }) - - // create the final go build command - c, err := buildCmd(opts) - if err != nil { - return g, err - } - - g.Command(c) - g.RunFn(func(r *genny.Runner) error { - events.EmitPayload(EvtBuildStop, events.Payload{"opts": opts}) - return nil - }) - - g.RunFn(Cleanup(opts)) - return g, nil -} diff --git a/genny/build/build_deps.go b/genny/build/build_deps.go deleted file mode 100644 index 29c2dc03e..000000000 --- a/genny/build/build_deps.go +++ /dev/null @@ -1,31 +0,0 @@ -package build - -import ( - "os/exec" - - "github.com/gobuffalo/envy" - "github.com/gobuffalo/genny/v2" -) - -func buildDeps(opts *Options) (*genny.Generator, error) { - g := genny.New() - - if err := opts.Validate(); err != nil { - return g, err - } - - if envy.Mods() { - return g, nil - } - - // mount the go get runner - tf := opts.App.BuildTags(opts.Environment, opts.Tags...) - if len(tf) > 0 { - tf = append([]string{"-tags"}, tf.String()) - } - args := []string{"get"} - args = append(args, tf...) - args = append(args, "./...") - g.Command(exec.Command("go", args...)) - return g, nil -} diff --git a/genny/build/build_deps_test.go b/genny/build/build_deps_test.go deleted file mode 100644 index 81dece0aa..000000000 --- a/genny/build/build_deps_test.go +++ /dev/null @@ -1,35 +0,0 @@ -package build - -import ( - "strings" - "testing" - - "github.com/gobuffalo/envy" - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/meta" - "github.com/stretchr/testify/require" -) - -func Test_buildDeps(t *testing.T) { - r := require.New(t) - - opts := &Options{ - Tags: meta.BuildTags{"foo"}, - } - - run := gentest.NewRunner() - run.WithNew(buildDeps(opts)) - - r.NoError(run.Run()) - - res := run.Results() - - if envy.Mods() { - r.Len(res.Commands, 0) - return - } - r.Len(res.Commands, 1) - - c := res.Commands[0] - r.Equal("go get -tags development foo ./...", strings.Join(c.Args, " ")) -} diff --git a/genny/build/build_test.go b/genny/build/build_test.go deleted file mode 100644 index cfb73d8af..000000000 --- a/genny/build/build_test.go +++ /dev/null @@ -1,93 +0,0 @@ -package build - -import ( - "os/exec" - "runtime" - "strings" - "testing" - - "github.com/gobuffalo/envy" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/meta" - "github.com/gobuffalo/packr/v2" - "github.com/stretchr/testify/require" -) - -// TODO: once `buffalo new` is converted to use genny -// create an integration test that first generates a new application -// and then tries to build using genny/build. -var coke = packr.New("github.com/gobuffalo/buffalo/genny/build/build_test", "../build/_fixtures/coke") - -var cokeRunner = func() *genny.Runner { - run := gentest.NewRunner() - run.Disk.AddBox(coke) - run.Root = coke.Path - return run -} - -var eq = func(r *require.Assertions, s string, c *exec.Cmd) { - if runtime.GOOS == "windows" { - s = strings.Replace(s, "bin/build", `bin\build.exe`, 1) - s = strings.Replace(s, "bin/foo", `bin\foo.exe`, 1) - } - r.Equal(s, strings.Join(c.Args, " ")) -} - -func Test_New(t *testing.T) { - r := require.New(t) - - run := cokeRunner() - - opts := &Options{ - WithAssets: true, - WithBuildDeps: true, - Environment: "bar", - App: meta.New("."), - } - opts.App.Bin = "bin/foo" - r.NoError(run.WithNew(New(opts))) - run.Root = opts.App.Root - - r.NoError(run.Run()) - - res := run.Results() - - // we should never leave any files modified or dropped - r.Len(res.Files, 0) - - cmds := []string{"go get -d", "go build -tags bar -o bin/foo", "go mod tidy"} - r.Len(res.Commands, len(cmds)) - for i, c := range res.Commands { - eq(r, cmds[i], c) - } -} - -func Test_NewWithoutBuildDeps(t *testing.T) { - envy.Temp(func() { - envy.Set(envy.GO111MODULE, "off") - r := require.New(t) - - run := cokeRunner() - - opts := &Options{ - WithAssets: false, - WithBuildDeps: false, - Environment: "bar", - App: meta.New("."), - } - opts.App.Bin = "bin/foo" - r.NoError(run.WithNew(New(opts))) - run.Root = opts.App.Root - - r.NoError(run.Run()) - - res := run.Results() - - cmds := []string{"go get -d", "go build -tags bar -o bin/foo"} - r.Len(res.Commands, len(cmds)) - for i, c := range res.Commands { - eq(r, cmds[i], c) - } - }) -} diff --git a/genny/build/cleanup.go b/genny/build/cleanup.go deleted file mode 100644 index 860b89e07..000000000 --- a/genny/build/cleanup.go +++ /dev/null @@ -1,48 +0,0 @@ -package build - -import ( - "os" - "os/exec" - "path/filepath" - - "github.com/gobuffalo/envy" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/packr/v2/jam" -) - -// Cleanup all of the generated files -func Cleanup(opts *Options) genny.RunFn { - return func(r *genny.Runner) error { - defer os.RemoveAll(filepath.Join(opts.Root, "a")) - if err := jam.Clean(); err != nil { - return err - } - - var err error - opts.rollback.Range(func(k, v interface{}) bool { - f := genny.NewFileS(k.(string), v.(string)) - r.Logger.Debugf("Rollback: %s", f.Name()) - if err = r.File(f); err != nil { - return false - } - r.Disk.Remove(f.Name()) - return true - }) - if err != nil { - return err - } - for _, f := range r.Disk.Files() { - if _, keep := opts.keep.Load(f.Name()); keep { - // Keep this file - continue - } - r.Disk.Delete(f.Name()) - } - if envy.Mods() && opts.WithBuildDeps { - if err := r.Exec(exec.Command("go", "mod", "tidy")); err != nil { - return err - } - } - return nil - } -} diff --git a/genny/build/cleanup_test.go b/genny/build/cleanup_test.go deleted file mode 100644 index 16d8edf17..000000000 --- a/genny/build/cleanup_test.go +++ /dev/null @@ -1,62 +0,0 @@ -package build - -import ( - "sync" - "testing" - - "github.com/gobuffalo/envy" - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/meta" - "github.com/stretchr/testify/require" -) - -func Test_WithDeps(t *testing.T) { - r := require.New(t) - envy.Set(envy.GO111MODULE, "on") - - run := gentest.NewRunner() - - opts := &Options{ - WithAssets: false, - WithBuildDeps: true, - Environment: "bar", - App: meta.New("."), - } - - emptyMap := sync.Map{} - opts.rollback = &emptyMap - - f := Cleanup(opts) - f(run) - - results := run.Results() - - cmds := []string{"go mod tidy"} - for i, c := range results.Commands { - eq(r, cmds[i], c) - } -} - -func Test_WithoutDeps(t *testing.T) { - r := require.New(t) - envy.Set(envy.GO111MODULE, "on") - - run := gentest.NewRunner() - - opts := &Options{ - WithAssets: false, - WithBuildDeps: false, - Environment: "bar", - App: meta.New("."), - } - - emptyMap := sync.Map{} - opts.rollback = &emptyMap - - f := Cleanup(opts) - f(run) - - results := run.Results() - - r.Len(results.Commands, 0) -} diff --git a/genny/build/events.go b/genny/build/events.go deleted file mode 100644 index b9cb491a2..000000000 --- a/genny/build/events.go +++ /dev/null @@ -1,10 +0,0 @@ -package build - -const ( - // EvtBuildStart is emitted when building starts - EvtBuildStart = "buffalo:build:start" - // EvtBuildStop is emitted when building stops - EvtBuildStop = "buffalo:build:stop" - // EvtBuildStopErr is emitted when building is stopped due to an error - EvtBuildStopErr = "buffalo:build:stop:err" -) diff --git a/genny/build/options.go b/genny/build/options.go deleted file mode 100644 index 492259119..000000000 --- a/genny/build/options.go +++ /dev/null @@ -1,75 +0,0 @@ -package build - -import ( - "os" - "sync" - "time" - - "github.com/gobuffalo/meta" -) - -// Options for building a Buffalo application -type Options struct { - meta.App - // the "timestamp" of the build. defaults to time.Now() - BuildTime time.Time `json:"build_time,omitempty"` - // the "version" of the build. defaults to - // a) git sha of last commit or - // b) to time.RFC3339 of BuildTime - BuildVersion string `json:"build_version,omitempty"` - // CleanAssets will remove the public/assets folder build compiling - CleanAssets bool `json:"clean_assets"` - WithAssets bool `json:"with_assets,omitempty"` - WithBuildDeps bool `json:"with_build_deps,omitempty"` - // places ./public/assets into ./bin/assets.zip. - // requires WithAssets = true - ExtractAssets bool `json:"extract_assets,omitempty"` - // LDFlags to be passed to the final `go build` command - LDFlags string `json:"ld_flags,omitempty"` - // Tags to be passed to the final `go build` command - Tags meta.BuildTags `json:"tags,omitempty"` - // BuildFlags to be passed to the final `go build` command - BuildFlags []string `json:"build_flags,omitempty"` - // Static sets the following flags for the final `go build` command: - // -linkmode external - // -extldflags "-static" - Static bool `json:"static,omitempty"` - // Environment the binary is meant for. defaults to "development" - Environment string `json:"environment,omitempty"` - // TemplateValidators can be used to validate the applications templates. - // Empty by default - TemplateValidators []TemplateValidator `json:"-"` - // Mod is the -mod flag - Mod string `json:"mod"` - // GoCommand is the `go X` command to be used. Default is "build". - GoCommand string `json:"go_command"` - rollback *sync.Map - keep *sync.Map -} - -// Validate that options are usuable -func (opts *Options) Validate() error { - pwd, _ := os.Getwd() - if opts.App.IsZero() { - opts.App = meta.New(pwd) - } - if len(opts.Environment) == 0 { - opts.Environment = "development" - } - if opts.BuildTime.IsZero() { - opts.BuildTime = time.Now() - } - if len(opts.BuildVersion) == 0 { - opts.BuildVersion = opts.BuildTime.Format(time.RFC3339) - } - if opts.rollback == nil { - opts.rollback = &sync.Map{} - } - if opts.keep == nil { - opts.keep = &sync.Map{} - } - if len(opts.GoCommand) == 0 { - opts.GoCommand = "build" - } - return nil -} diff --git a/genny/build/options_test.go b/genny/build/options_test.go deleted file mode 100644 index 24d0acc39..000000000 --- a/genny/build/options_test.go +++ /dev/null @@ -1,14 +0,0 @@ -package build - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func Test_Options_Validate(t *testing.T) { - r := require.New(t) - - opts := &Options{} - r.NoError(opts.Validate()) -} diff --git a/genny/build/template_walker.go b/genny/build/template_walker.go deleted file mode 100644 index cc28ea1a7..000000000 --- a/genny/build/template_walker.go +++ /dev/null @@ -1,58 +0,0 @@ -package build - -import ( - "bytes" - "io/ioutil" - "path/filepath" - "strings" - - "github.com/gobuffalo/meta" - "github.com/gobuffalo/packd" - "github.com/karrick/godirwalk" -) - -type dirWalker struct { - dir string -} - -func (d dirWalker) WalkPrefix(pre string, fn packd.WalkFunc) error { - return d.Walk(func(path string, file packd.File) error { - if strings.HasPrefix(path, pre) { - return fn(path, file) - } - return nil - }) -} - -func (d dirWalker) Walk(fn packd.WalkFunc) error { - callback := func(path string, de *godirwalk.Dirent) error { - if de != nil && de.IsDir() { - base := filepath.Base(path) - for _, pre := range []string{"vendor", ".", "_"} { - if strings.HasPrefix(base, pre) { - return filepath.SkipDir - } - } - return nil - } - b, err := ioutil.ReadFile(path) - if err != nil { - return err - } - f, err := packd.NewFile(path, bytes.NewReader(b)) - if err != nil { - return err - } - return fn(path, f) - } - - godirwalk.Walk(d.dir, &godirwalk.Options{ - FollowSymbolicLinks: true, - Callback: callback, - }) - return nil -} - -func templateWalker(app meta.App) packd.Walkable { - return dirWalker{dir: app.Root} -} diff --git a/genny/build/templates/a/aa.go.plush b/genny/build/templates/a/aa.go.plush deleted file mode 100644 index 8d4e14b7c..000000000 --- a/genny/build/templates/a/aa.go.plush +++ /dev/null @@ -1,50 +0,0 @@ -package a - -import ( - "log" - "strings" - "github.com/gobuffalo/flect" - "github.com/gobuffalo/pop/v5" - "github.com/gobuffalo/packr/v2" - <%= if (opts.Environment != "development") { %> - "github.com/gobuffalo/envy" - <% } %> -) - -func init() { - <%= if (opts.Environment != "development") { %> - if err := envy.MustSet("GO_ENV", "<%= opts.Environment %>"); err != nil { - log.Fatal(err) - } - <% } %> - - dropDatabaseYml() - - box := packr.New("buffalo:a:init", "./") - if box.Has("inflections.json") { - s, err := box.FindString("inflections.json") - if err != nil { - log.Fatal(err) - } - r := strings.NewReader(s) - err = flect.LoadInflections(r) - if err != nil { - log.Fatal(err) - } - } -} - -func dropDatabaseYml() { - box := packr.New("buffalo:a:init", "./") - if box.Has("database.yml") { - s, err := box.FindString("database.yml") - if err != nil { - log.Fatal(err) - } - r := strings.NewReader(s) - err = pop.LoadFrom(r) - if err != nil { - log.Fatal(err) - } - } -} diff --git a/genny/build/templates/buffalo_build_main.go.plush b/genny/build/templates/buffalo_build_main.go.plush deleted file mode 100644 index 35a2fe72a..000000000 --- a/genny/build/templates/buffalo_build_main.go.plush +++ /dev/null @@ -1,104 +0,0 @@ -package main - -import ( - "fmt" - "log" - "os" - "os/exec" - "time" - - "github.com/markbates/grift/grift" - "github.com/gobuffalo/buffalo/runtime" - _ "<%= opts.PackagePkg %>/a" - _ "<%= opts.ActionsPkg %>" - <%= if (opts.WithPop) { %> - "github.com/gobuffalo/packr/v2" - "github.com/gobuffalo/pop/v5" - "<%= opts.ModelsPkg %>" - <% } %> - <%= if (opts.WithGrifts) { %> - _ "<%= opts.GriftsPkg %>" - <% } %> -) - -func init() { -t, err := time.Parse(time.RFC3339, "<%= buildTime %>") - if err != nil { - fmt.Println(err) - } - runtime.SetBuild(runtime.BuildInfo{ - Version: "<%= buildVersion %>", - Time: t, - }) -} - -func main() { - args := os.Args - var originalArgs []string - for i, arg := range args { - if arg == "--" { - originalArgs = append([]string{args[0]}, args[i+1:]...) - args = args[:i] - break - } - } - if len(args) == 1 { - if len(originalArgs) != 0 { - os.Args = originalArgs - } - originalMain() - return - } - c := args[1] - switch c { - <%= if (opts.WithPop) { %> - case "migrate": - migrate() - <% } %> - case "version": - printVersion() - case "task", "t", "tasks": - if len(args) < 3 { - log.Fatal("not enough arguments passed to task") - } - c := grift.NewContext(args[2]) - if len(args) > 2 { - c.Args = args[3:] - } - err := grift.Run(args[2], c) - if err != nil { - log.Fatal(err) - } - default: - if _, err := exec.LookPath("buffalo"); err != nil { - if err != nil { - log.Fatal(err) - } - } - cmd := exec.Command("buffalo", args[1:]...) - cmd.Stdin = os.Stdin - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - err := cmd.Run() - if err != nil { - log.Fatal(err) - } - } -} - -func printVersion() { - fmt.Printf("<%= opts.Name.Title() %> version %s\n", runtime.Build()) -} - -<%= if (opts.WithPop) { %> -func migrate() { - box, err := pop.NewMigrationBox(packr.New("app:migrations", "./migrations"), models.DB) - if err != nil { - log.Fatalf("Failed to unpack migrations: %s", err) - } - err = box.Up() - if err != nil { - log.Fatalf("Failed to run migrations: %s", err) - } -} -<% } %> diff --git a/genny/build/templates/migrations/-dot-pop-tmp.md b/genny/build/templates/migrations/-dot-pop-tmp.md deleted file mode 100644 index 0aa0de501..000000000 --- a/genny/build/templates/migrations/-dot-pop-tmp.md +++ /dev/null @@ -1,11 +0,0 @@ -hi! i'm just here to ensure that `buffalo build` has a `./migrations` if the application has pop. - -unfortunately, i'm just temporary, so as much as i would love to meet you, and trust me, i really would (i've heard good things), i have to be going. :( - -if you're seeing me in your application, then something horribly, horribly wrong happened during `buffalo build`, or you ran it with the `-d` flag. :) - -regardless, should you come across me laying about, feel free and delete me. it's ok. it won't hurt. well, it might if you use the `-f` flag, i don't know. - -i'll leave you with these famous parting words: - ->> So long, and thanks for all the fish diff --git a/genny/build/transform_main.go b/genny/build/transform_main.go deleted file mode 100644 index c29a56f79..000000000 --- a/genny/build/transform_main.go +++ /dev/null @@ -1,24 +0,0 @@ -package build - -import ( - "strings" - "sync" - - "github.com/gobuffalo/genny/v2" -) - -func transformMain(opts *Options) genny.RunFn { - if opts.rollback == nil { - opts.rollback = &sync.Map{} - } - return func(r *genny.Runner) error { - f, err := r.FindFile("main.go") - if err != nil { - return err - } - opts.rollback.Store(f.Name(), f.String()) - s := strings.Replace(f.String(), "func main()", "func originalMain()", -1) - f = genny.NewFile(f.Name(), strings.NewReader(s)) - return r.File(f) - } -} diff --git a/genny/build/transform_main_test.go b/genny/build/transform_main_test.go deleted file mode 100644 index f02050a83..000000000 --- a/genny/build/transform_main_test.go +++ /dev/null @@ -1,27 +0,0 @@ -package build - -import ( - "strings" - "testing" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gentest" - "github.com/stretchr/testify/require" -) - -func Test_transformMain(t *testing.T) { - r := require.New(t) - - run := gentest.NewRunner() - run.Disk.Add(genny.NewFile("main.go", strings.NewReader(coke.String("main.go")))) - - opts := &Options{} - run.WithRun(transformMain(opts)) - - r.NoError(run.Run()) - - res := run.Results() - r.Len(res.Files, 1) - f := res.Files[0] - r.Contains(f.String(), "func originalMain()") -} diff --git a/genny/build/validate.go b/genny/build/validate.go deleted file mode 100644 index 5259808a1..000000000 --- a/genny/build/validate.go +++ /dev/null @@ -1,83 +0,0 @@ -package build - -import ( - "fmt" - "html/template" - "strings" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/packd" - "github.com/gobuffalo/plush/v4" - "github.com/markbates/safe" -) - -// TemplateValidator is given a file and returns an -// effort if there is a template validation error -// with the template -type TemplateValidator func(f genny.File) error - -// ValidateTemplates returns a genny.RunFn that will walk the -// given box and run each of the files found through each of the -// template validators -func ValidateTemplates(walk packd.Walker, tvs []TemplateValidator) genny.RunFn { - if len(tvs) == 0 { - return func(r *genny.Runner) error { - return nil - } - } - return func(r *genny.Runner) error { - var errs []string - err := packd.SkipWalker(walk, packd.CommonSkipPrefixes, func(path string, file packd.File) error { - info, err := file.FileInfo() - if err != nil { - return err - } - if info.IsDir() { - return nil - } - - f := genny.NewFile(path, file) - for _, tv := range tvs { - err := safe.Run(func() { - if err := tv(f); err != nil { - errs = append(errs, fmt.Sprintf("template error in file %s: %s", path, err.Error())) - } - }) - if err != nil { - return err - } - } - - return nil - }) - if err != nil { - return err - } - if len(errs) == 0 { - return nil - } - return fmt.Errorf(strings.Join(errs, "\n")) - } -} - -// PlushValidator validates the file is a valid -// Plush file if the extension is .md, .html, or .plush -func PlushValidator(f genny.File) error { - if !genny.HasExt(f, ".html", ".md", ".plush") { - return nil - } - _, err := plush.Parse(f.String()) - return err -} - -// GoTemplateValidator validates the file is a -// valid Go text/template file if the extension -// is .tmpl -func GoTemplateValidator(f genny.File) error { - if !genny.HasExt(f, ".tmpl") { - return nil - } - t := template.New(f.Name()) - _, err := t.Parse(f.String()) - return err -} diff --git a/genny/build/validate_test.go b/genny/build/validate_test.go deleted file mode 100644 index bedc255d2..000000000 --- a/genny/build/validate_test.go +++ /dev/null @@ -1,43 +0,0 @@ -package build - -import ( - "testing" - - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/packd" - "github.com/gobuffalo/packr/v2" - "github.com/stretchr/testify/require" -) - -var goodTemplates = func() packd.Box { - box := packd.NewMemoryBox() - box.AddString("_ignored/c.html", "c") - box.AddString("a.html", "a") - box.AddString("b.md", "b") - return box -}() - -func Test_TemplateValidator_Good(t *testing.T) { - r := require.New(t) - - tvs := []TemplateValidator{PlushValidator} - - run := gentest.NewRunner() - run.WithRun(ValidateTemplates(goodTemplates, tvs)) - - r.NoError(run.Run()) -} - -func Test_TemplateValidator_Bad(t *testing.T) { - r := require.New(t) - - box := packr.New("../build/_fixtures/template_validator/bad", "../build/_fixtures/template_validator/bad") - tvs := []TemplateValidator{PlushValidator} - - run := gentest.NewRunner() - run.WithRun(ValidateTemplates(box, tvs)) - - err := run.Run() - r.Error(err) - r.Equal("template error in file a.html: line 1: no prefix parse function for > found\ntemplate error in file b.md: line 1: no prefix parse function for > found", err.Error()) -} diff --git a/genny/ci/ci-packr.go b/genny/ci/ci-packr.go deleted file mode 100644 index 06da48ef8..000000000 --- a/genny/ci/ci-packr.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !skippackr -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr clean" command to clean up this, -// and any other packr generated files. -package ci - -import _ "github.com/gobuffalo/buffalo/packrd" diff --git a/genny/ci/ci.go b/genny/ci/ci.go deleted file mode 100644 index 736d8b55e..000000000 --- a/genny/ci/ci.go +++ /dev/null @@ -1,66 +0,0 @@ -package ci - -import ( - "fmt" - "html/template" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" - "github.com/gobuffalo/packr/v2" -) - -// New generator for adding travis, gitlab, or circleci -func New(opts *Options) (*genny.Generator, error) { - g := genny.New() - - if err := opts.Validate(); err != nil { - return g, err - } - - g.Transformer(genny.Replace("-no-pop", "")) - g.Transformer(genny.Dot()) - - box := packr.New("buffalo:genny:ci", "../ci/templates") - - var fname string - switch opts.Provider { - case "travis", "travis-ci": - fname = "-dot-travis.yml.tmpl" - case "gitlab", "gitlab-ci": - if opts.App.WithPop { - fname = "-dot-gitlab-ci.yml.tmpl" - } else { - fname = "-dot-gitlab-ci-no-pop.yml.tmpl" - } - case "circleci": - fname = "-dot-circleci/config.yml.tmpl" - default: - return g, fmt.Errorf("could not find a template for %s", opts.Provider) - } - - f, err := box.FindString(fname) - if err != nil { - return g, err - } - - g.File(genny.NewFileS(fname, f)) - - data := map[string]interface{}{ - "opts": opts, - } - - if opts.DBType == "postgres" { - data["testDbUrl"] = "postgres://postgres:postgres@postgres:5432/" + opts.App.Name.File().String() + "_test?sslmode=disable" - } else if opts.DBType == "mysql" { - data["testDbUrl"] = "mysql://root:root@(mysql:3306)/" + opts.App.Name.File().String() + "_test?parseTime=true&multiStatements=true&readTimeout=1s" - } else { - data["testDbUrl"] = "" - } - - helpers := template.FuncMap{} - - t := gogen.TemplateTransformer(data, helpers) - g.Transformer(t) - - return g, nil -} diff --git a/genny/ci/ci_test.go b/genny/ci/ci_test.go deleted file mode 100644 index f8d735fb3..000000000 --- a/genny/ci/ci_test.go +++ /dev/null @@ -1,124 +0,0 @@ -package ci - -import ( - "testing" - - "gopkg.in/yaml.v2" - - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/meta" - "github.com/stretchr/testify/require" -) - -func Test_New(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{ - Provider: "travis", - DBType: "postgres", - }) - r.NoError(err) - - run := gentest.NewRunner() - run.With(g) - - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 0) - r.Len(res.Files, 1) - - f := res.Files[0] - r.Equal(".travis.yml", f.Name()) - travisYml := struct { - Language string - Go []string - Env []string - Services []string - BeforeScript []string `yaml:"before_script"` - GoImportPath string `yaml:"go_import_path"` - Install []string - Script string - }{} - r.NoError(yaml.NewDecoder(f).Decode(&travisYml), ".travis.yml is a valid YAML file") -} - -func Test_New_Gitlab(t *testing.T) { - r := require.New(t) - - app := meta.New(".") - app.WithPop = true - - g, err := New(&Options{ - App: app, - Provider: "gitlab", - DBType: "postgres", - }) - r.NoError(err) - - run := gentest.NewRunner() - run.With(g) - - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 0) - r.Len(res.Files, 1) - - f := res.Files[0] - r.Equal(".gitlab-ci.yml", f.Name()) - r.Contains(f.String(), "postgres:5432") -} - -func Test_New_Gitlab_No_pop(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{ - Provider: "gitlab", - DBType: "postgres", - }) - r.NoError(err) - - run := gentest.NewRunner() - run.With(g) - - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 0) - r.Len(res.Files, 1) - - f := res.Files[0] - r.Equal(".gitlab-ci.yml", f.Name()) - r.NotContains(f.String(), "postgres:5432") -} - -func Test_New_Circle(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{ - Provider: "circleci", - DBType: "postgres", - }) - r.NoError(err) - - run := gentest.NewRunner() - run.With(g) - - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 0) - r.Len(res.Files, 1) - - f := res.Files[0] - r.Equal(".circleci/config.yml", f.Name()) - circleYml := struct { - Version int - }{} - r.NoError(yaml.NewDecoder(f).Decode(&circleYml), "config.yml is a valid YAML file") -} diff --git a/genny/ci/options.go b/genny/ci/options.go deleted file mode 100644 index e809df0a4..000000000 --- a/genny/ci/options.go +++ /dev/null @@ -1,66 +0,0 @@ -package ci - -import ( - "fmt" - "strings" - - "github.com/gobuffalo/buffalo/runtime" - - "github.com/gobuffalo/meta" - "github.com/gobuffalo/pop/v5" -) - -// Available CI implementations -var Available = []string{"travis", "gitlab", "circleci"} - -// Options for CI -type Options struct { - App meta.App - DBType string - Provider string - Version string -} - -// Validate that options are usuable -func (opts *Options) Validate() error { - if opts.App.IsZero() { - opts.App = meta.New(".") - } - - if len(opts.Version) == 0 { - opts.Version = runtime.Version - } - - if len(opts.Provider) == 0 { - return fmt.Errorf("no provider chosen") - } - opts.Provider = strings.ToLower(opts.Provider) - - var found bool - for _, a := range Available { - if opts.Provider == a { - found = true - break - } - if opts.Provider == a+"-ci" { - opts.Provider = a - found = true - break - } - } - if !found { - return fmt.Errorf("unknown provider %s expecting one of %s", opts.Provider, strings.Join(Available, ", ")) - } - - found = false - for _, d := range pop.AvailableDialects { - if d == opts.DBType { - found = true - break - } - } - if !found { - return fmt.Errorf("unknown dialect %q expecting one of %s", opts.DBType, strings.Join(pop.AvailableDialects, ", ")) - } - return nil -} diff --git a/genny/ci/options_test.go b/genny/ci/options_test.go deleted file mode 100644 index 669008aeb..000000000 --- a/genny/ci/options_test.go +++ /dev/null @@ -1,21 +0,0 @@ -package ci - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func Test_Options_Validate(t *testing.T) { - r := require.New(t) - - opts := &Options{} - err := opts.Validate() - r.Error(err) - - opts.Provider = "travis-ci" - opts.DBType = "postgres" - - err = opts.Validate() - r.NoError(err) -} diff --git a/genny/ci/templates/-dot-circleci/config.yml.tmpl b/genny/ci/templates/-dot-circleci/config.yml.tmpl deleted file mode 100644 index 708bd6dd3..000000000 --- a/genny/ci/templates/-dot-circleci/config.yml.tmpl +++ /dev/null @@ -1,45 +0,0 @@ -version: 2 -jobs: - build: - docker: - - image: circleci/golang:1.12 - {{ if eq .opts.DBType "postgres" -}} - - image: circleci/postgres:9.6-alpine - environment: - POSTGRES_USER: postgres - POSTGRES_DB: {{.opts.App.Name.File}}_test - {{- end }} - - environment: - TEST_RESULTS: /tmp/test-results - - steps: - - checkout - - run: mkdir -p $TEST_RESULTS - - - restore_cache: - keys: - - v1-pkg-cache - - - run: go get github.com/jstemmer/go-junit-report - - - run: go get github.com/gobuffalo/buffalo/buffalo - - run: go mod download - - - run: - name: Run unit tests - command: | - trap "go-junit-report <${TEST_RESULTS}/go-test.out > ${TEST_RESULTS}/go-test-report.xml" EXIT - buffalo test | tee ${TEST_RESULTS}/go-test.out - - - save_cache: - key: v1-pkg-cache - paths: - - "/go/pkg" - - - store_artifacts: - path: /tmp/test-results - destination: raw-test-output - - - store_test_results: - path: /tmp/test-results diff --git a/genny/ci/templates/-dot-gitlab-ci-no-pop.yml.tmpl b/genny/ci/templates/-dot-gitlab-ci-no-pop.yml.tmpl deleted file mode 100644 index 2bbabae53..000000000 --- a/genny/ci/templates/-dot-gitlab-ci-no-pop.yml.tmpl +++ /dev/null @@ -1,26 +0,0 @@ -before_script: - - mkdir -p public/assets - - go get -u github.com/gobuffalo/buffalo/buffalo - - go mod download - -stages: - - test - -.test-vars: &test-vars - variables: - GO_ENV: "test" - -# Golang version choice helper -.use-golang-image: &use-golang-latest - image: golang:latest - -.use-golang-image: &use-golang-1-15 - image: golang:1.15 - -test: - # Change to "<<: *use-golang-latest" to use the latest Go version - <<: *use-golang-1-15 - <<: *test-vars - stage: test - script: - - buffalo test diff --git a/genny/ci/templates/-dot-gitlab-ci.yml.tmpl b/genny/ci/templates/-dot-gitlab-ci.yml.tmpl deleted file mode 100644 index 6e8f70f27..000000000 --- a/genny/ci/templates/-dot-gitlab-ci.yml.tmpl +++ /dev/null @@ -1,48 +0,0 @@ -before_script: -{{- if eq .opts.DBType "postgres" }} - - apt-get update && apt-get install -y postgresql-client -{{- else if eq .opts.DBType "mysql" }} - - apt-get update && apt-get install -y mysql-client -{{- end }} - - mkdir -p public/assets - - go get -u github.com/gobuffalo/buffalo/buffalo - - go mod download - -stages: - - test - -.test-vars: &test-vars - variables: - GO_ENV: "test" -{{- if eq .opts.DBType "postgres" }} - POSTGRES_DB: "{{.opts.App.Name.File}}_test" - POSTGRES_USER: runner - POSTGRES_PASSSWORD: "" - POSTGRES_HOST_AUTH_METHOD: trust - TEST_DATABASE_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable" -{{- else if eq .opts.DBType "mysql" }} - MYSQL_DATABASE: "{{.opts.App.Name.File}}_test" - MYSQL_ROOT_PASSWORD: "root" - TEST_DATABASE_URL: "{{.testDbUrl}}" -{{- end }} - -# Golang version choice helper -.use-golang-image: &use-golang-latest - image: golang:latest - -.use-golang-image: &use-golang-1-15 - image: golang:1.15 - -test: - # Change to "<<: *use-golang-latest" to use the latest Go version - <<: *use-golang-1-15 - <<: *test-vars - stage: test - services: -{{- if eq .opts.DBType "mysql" }} - - mysql:5 -{{- else if eq .opts.DBType "postgres" }} - - postgres:latest -{{- end }} - script: - - buffalo test diff --git a/genny/ci/templates/-dot-travis.yml.tmpl b/genny/ci/templates/-dot-travis.yml.tmpl deleted file mode 100644 index b6fd4e70a..000000000 --- a/genny/ci/templates/-dot-travis.yml.tmpl +++ /dev/null @@ -1,26 +0,0 @@ -language: go - -go: - - "1.11.x" - -env: - - GO_ENV=test - -{{ if eq .opts.DBType "postgres" -}} -services: - - postgresql -{{- end }} - -before_script: -{{- if eq .opts.DBType "postgres" }} - - psql -c 'create database {{.opts.App.Name.File}}_test;' -U postgres -{{- end }} - - mkdir -p $TRAVIS_BUILD_DIR/public/assets - -go_import_path: {{.opts.App.PackagePkg}} - -install: - - go get github.com/gobuffalo/buffalo/buffalo - - go mod download - -script: buffalo test diff --git a/genny/docker/docker-packr.go b/genny/docker/docker-packr.go deleted file mode 100644 index 4eb5f781c..000000000 --- a/genny/docker/docker-packr.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !skippackr -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr clean" command to clean up this, -// and any other packr generated files. -package docker - -import _ "github.com/gobuffalo/buffalo/packrd" diff --git a/genny/docker/docker.go b/genny/docker/docker.go deleted file mode 100644 index 4dd433133..000000000 --- a/genny/docker/docker.go +++ /dev/null @@ -1,37 +0,0 @@ -package docker - -import ( - "text/template" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" - "github.com/gobuffalo/packr/v2" -) - -func New(opts *Options) (*genny.Generator, error) { - g := genny.New() - - if err := opts.Validate(); err != nil { - return g, err - } - - data := map[string]interface{}{ - "opts": opts, - } - - g.Box(packr.New("github.com/gobuffalo/buffalo/common", "../docker/templates/common")) - - switch opts.Style { - case "multi": - g.Box(packr.New("github.com/gobuffalo/buffalo/multi", "../docker/templates/multi")) - case "standard": - g.Box(packr.New("github.com/gobuffalo/buffalo/standard", "../docker/templates/standard")) - } - - helpers := template.FuncMap{} - t := gogen.TemplateTransformer(data, helpers) - g.Transformer(t) - g.Transformer(genny.Dot()) - - return g, nil -} diff --git a/genny/docker/docker_test.go b/genny/docker/docker_test.go deleted file mode 100644 index c3b9e3c04..000000000 --- a/genny/docker/docker_test.go +++ /dev/null @@ -1,60 +0,0 @@ -package docker - -import ( - "testing" - - "github.com/gobuffalo/genny/v2/gentest" - "github.com/stretchr/testify/require" -) - -func Test_New(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{}) - r.NoError(err) - - run := gentest.NewRunner() - run.With(g) - - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 0) - - r.Len(res.Files, 2) - - f := res.Files[0] - r.Equal(".dockerignore", f.Name()) - - f = res.Files[1] - r.Equal("Dockerfile", f.Name()) - r.Contains(f.String(), "multi-stage") -} - -func Test_New_Standard(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{ - Style: "standard", - }) - r.NoError(err) - - run := gentest.NewRunner() - run.With(g) - - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 0) - - r.Len(res.Files, 2) - - f := res.Files[0] - r.Equal(".dockerignore", f.Name()) - - f = res.Files[1] - r.Equal("Dockerfile", f.Name()) - r.NotContains(f.String(), "multi-stage") -} diff --git a/genny/docker/options.go b/genny/docker/options.go deleted file mode 100644 index 0c662a6e1..000000000 --- a/genny/docker/options.go +++ /dev/null @@ -1,35 +0,0 @@ -package docker - -import ( - "fmt" - - "github.com/gobuffalo/buffalo/runtime" - "github.com/gobuffalo/meta" -) - -type Options struct { - App meta.App `json:"app"` - Version string `json:"version"` - Style string `json:"style"` -} - -// Validate that options are usuable -func (opts *Options) Validate() error { - if opts.App.IsZero() { - opts.App = meta.New(".") - } - if len(opts.Version) == 0 { - opts.Version = runtime.Version - } - if len(opts.Style) == 0 { - opts.Style = "multi" - } - - switch opts.Style { - case "multi", "standard": - default: - return fmt.Errorf("unknown style option %s", opts.Style) - } - - return nil -} diff --git a/genny/docker/options_test.go b/genny/docker/options_test.go deleted file mode 100644 index 6e484055c..000000000 --- a/genny/docker/options_test.go +++ /dev/null @@ -1,22 +0,0 @@ -package docker - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func Test_Options_Validate(t *testing.T) { - r := require.New(t) - - opts := &Options{ - Style: "foo", - } - err := opts.Validate() - r.Error(err) - - opts.Style = "multi" - err = opts.Validate() - r.NoError(err) - -} diff --git a/genny/docker/templates/common/-dot-dockerignore.tmpl b/genny/docker/templates/common/-dot-dockerignore.tmpl deleted file mode 100644 index af960a75a..000000000 --- a/genny/docker/templates/common/-dot-dockerignore.tmpl +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/ -*.log -bin/ diff --git a/genny/docker/templates/multi/Dockerfile.tmpl b/genny/docker/templates/multi/Dockerfile.tmpl deleted file mode 100644 index a1610a715..000000000 --- a/genny/docker/templates/multi/Dockerfile.tmpl +++ /dev/null @@ -1,50 +0,0 @@ -# This is a multi-stage Dockerfile and requires >= Docker 17.05 -# https://docs.docker.com/engine/userguide/eng-image/multistage-build/ -FROM gobuffalo/buffalo:{{.opts.Version}} as builder - -ENV GO111MODULE on -ENV GOPROXY http://proxy.golang.org - -RUN mkdir -p /src/{{.opts.App.PackagePkg}} -WORKDIR /src/{{.opts.App.PackagePkg}} - -{{if .opts.App.WithWebpack -}} -# this will cache the npm install step, unless package.json changes -ADD package.json . -{{if .opts.App.WithYarn -}} -ADD yarn.lock . -RUN yarn install --no-progress -{{else -}} -RUN npm install --no-progress -{{end -}} -{{end -}} - -# Copy the Go Modules manifests -COPY go.mod go.mod -COPY go.sum go.sum -# cache deps before building and copying source so that we don't need to re-download as much -# and so that source changes don't invalidate our downloaded layer -RUN go mod download - -ADD . . -RUN buffalo build --static -o /bin/app - -FROM alpine -RUN apk add --no-cache bash -RUN apk add --no-cache ca-certificates - -WORKDIR /bin/ - -COPY --from=builder /bin/app . - -# Uncomment to run the binary in "production" mode: -# ENV GO_ENV=production - -# Bind the app to 0.0.0.0 so it can be seen from outside the container -ENV ADDR=0.0.0.0 - -EXPOSE 3000 - -# Uncomment to run the migrations before running the binary: -# CMD /bin/app migrate; /bin/app -CMD exec /bin/app diff --git a/genny/docker/templates/standard/Dockerfile.tmpl b/genny/docker/templates/standard/Dockerfile.tmpl deleted file mode 100644 index 4c2e90504..000000000 --- a/genny/docker/templates/standard/Dockerfile.tmpl +++ /dev/null @@ -1,42 +0,0 @@ -FROM gobuffalo/buffalo:{{.opts.Version}} - -ENV GO111MODULE on -ENV GOPROXY http://proxy.golang.org - -RUN mkdir -p /src/{{.opts.App.PackagePkg}} -WORKDIR /src/{{.opts.App.PackagePkg}} - -{{if .opts.App.AsWeb -}} -{{if .opts.App.WithWebpack -}} -# this will cache the npm install step, unless package.json changes -ADD package.json . -{{if .opts.App.WithYarn -}} -ADD yarn.lock . -RUN yarn install --no-progress -{{else -}} -RUN npm install --no-progress -{{end -}} -{{end -}} -{{end -}} - -# Copy the Go Modules manifests -COPY go.mod go.mod -COPY go.sum go.sum -# cache deps before building and copying source so that we don't need to re-download as much -# and so that source changes don't invalidate our downloaded layer -RUN go mod download - -ADD . . -RUN buffalo build --static -o /bin/app - -# Uncomment to run the binary in "production" mode: -# ENV GO_ENV=production - -# Bind the app to 0.0.0.0 so it can be seen from outside the container -ENV ADDR=0.0.0.0 - -EXPOSE 3000 - -# Uncomment to run the migrations before running the binary: -# CMD /bin/app migrate; /bin/app -CMD exec /bin/app diff --git a/genny/grift/grift.go b/genny/grift/grift.go deleted file mode 100644 index 1d77deab1..000000000 --- a/genny/grift/grift.go +++ /dev/null @@ -1,39 +0,0 @@ -package grift - -import ( - "strings" - "text/template" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" -) - -// New generator to create a grift task -func New(opts *Options) (*genny.Generator, error) { - g := genny.New() - - if err := opts.Validate(); err != nil { - return g, err - } - - data := map[string]interface{}{ - "opts": opts, - } - t := gogen.TemplateTransformer(data, template.FuncMap{}) - g.Transformer(t) - - g.RunFn(func(r *genny.Runner) error { - return genFile(r, opts) - }) - return g, nil -} - -func genFile(r *genny.Runner, opts *Options) error { - header := tmplHeader - path := "grifts/" + opts.Name.File(".go.tmpl").String() - if f, err := r.FindFile(path); err == nil { - header = f.String() - } - f := genny.NewFile(path, strings.NewReader(header+tmplBody)) - return r.File(f) -} diff --git a/genny/grift/grift_test.go b/genny/grift/grift_test.go deleted file mode 100644 index 2fdb13524..000000000 --- a/genny/grift/grift_test.go +++ /dev/null @@ -1,55 +0,0 @@ -package grift - -import ( - "testing" - - "github.com/gobuffalo/genny/v2/gentest" - "github.com/stretchr/testify/require" -) - -func Test_New(t *testing.T) { - r := require.New(t) - - run := gentest.NewRunner() - err := run.WithNew(New(&Options{ - Args: []string{"foo"}, - })) - r.NoError(err) - r.NoError(run.Run()) - - res := run.Results() - r.Len(res.Commands, 0) - r.Len(res.Files, 1) - - f := res.Files[0] - r.Equal("grifts/foo.go", f.Name()) - body := f.String() - r.Contains(body, `var _ = Add("foo", func(c *Context) error`) -} - -func Test_New_Namespaced(t *testing.T) { - r := require.New(t) - - run := gentest.NewRunner() - err := run.WithNew(New(&Options{ - Args: []string{"foo:bar"}, - })) - r.NoError(err) - r.NoError(run.Run()) - - res := run.Results() - r.Len(res.Commands, 0) - r.Len(res.Files, 1) - - f := res.Files[0] - r.Equal("grifts/bar.go", f.Name()) - body := f.String() - r.Contains(body, `Add("bar", func(c *Context) error`) -} - -func Test_New_No_Name(t *testing.T) { - r := require.New(t) - - _, err := New(&Options{}) - r.Error(err) -} diff --git a/genny/grift/options.go b/genny/grift/options.go deleted file mode 100644 index ab69915ec..000000000 --- a/genny/grift/options.go +++ /dev/null @@ -1,36 +0,0 @@ -package grift - -import ( - "fmt" - "strings" - - "github.com/gobuffalo/flect/name" -) - -// Options for creating a new grift task -type Options struct { - Name name.Ident `json:"name"` - Parts []name.Ident `json:"parts"` - Args []string `json:"args"` - Namespaced bool `json:"namespaced"` -} - -// Last checks if the name is the last of the parts -func (opts Options) Last(n name.Ident) bool { - return opts.Parts[len(opts.Parts)-1].String() == n.String() -} - -// Validate options -func (opts *Options) Validate() error { - if len(opts.Args) == 0 { - return fmt.Errorf("you need to provide a name for the grift task") - } - - opts.Namespaced = strings.Contains(opts.Args[0], ":") - - for _, n := range strings.Split(opts.Args[0], ":") { - opts.Parts = append(opts.Parts, name.New(n)) - } - opts.Name = opts.Parts[len(opts.Parts)-1] - return nil -} diff --git a/genny/grift/templates.go b/genny/grift/templates.go deleted file mode 100644 index dd7c5f288..000000000 --- a/genny/grift/templates.go +++ /dev/null @@ -1,34 +0,0 @@ -package grift - -const tmplHeader = `package grifts - -import ( - . "github.com/markbates/grift/grift" -) -` - -const tmplBody = ` -{{ if .opts.Namespaced }} - {{ range $index, $element := .opts.Parts }} - {{ if $.opts.Last $element}} - Desc("{{$element.File}}", "Task Description") - Add("{{$element.File}}", func(c *Context) error{ - return nil - }) - {{ else }} - {{if eq $index 0}} - var _ = Namespace("{{$element.File}}", func(){ - {{ else }} - Namespace("{{$element.File}}", func(){ - {{end}} - {{ end }} - {{ end }} - {{ range $index, $element := .opts.Parts }} - {{ if $index }} }) {{ end }} - {{ end }} -{{ else }} - var _ = Desc("{{.opts.Name.File}}", "Task Description") - var _ = Add("{{.opts.Name.File}}", func(c *Context) error { - return nil - }) -{{ end }}` diff --git a/genny/info/app.go b/genny/info/app.go deleted file mode 100644 index fb9e6221c..000000000 --- a/genny/info/app.go +++ /dev/null @@ -1,34 +0,0 @@ -package info - -import ( - "fmt" - "reflect" - - "github.com/gobuffalo/genny/v2" -) - -func appDetails(opts *Options) genny.RunFn { - return func(r *genny.Runner) error { - opts.Out.Header("Buffalo: Application Details") - rv := reflect.ValueOf(opts.App) - rt := rv.Type() - - var lines [][]string - for i := 0; i < rt.NumField(); i++ { - f := rt.Field(i) - if !rv.FieldByName(f.Name).CanInterface() { - continue - } - - v := rv.FieldByName(f.Name).Interface() - line := []string{f.Name, fmt.Sprint(v)} - - lines = append(lines, line) - } - err := opts.Out.Tabs(lines) - if err != nil { - return err - } - return opts.Out.WriteString("\n") - } -} diff --git a/genny/info/app_test.go b/genny/info/app_test.go deleted file mode 100644 index 599f19d95..000000000 --- a/genny/info/app_test.go +++ /dev/null @@ -1,34 +0,0 @@ -package info - -import ( - "bytes" - "testing" - - "github.com/gobuffalo/clara/v2/genny/rx" - - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/meta" - "github.com/stretchr/testify/require" -) - -func Test_appDetails(t *testing.T) { - r := require.New(t) - - run := gentest.NewRunner() - - app := meta.New(".") - app.Bin = "paris elephant chevrolet" - - bb := &bytes.Buffer{} - - opts := &Options{ - App: app, - Out: rx.NewWriter(bb), - } - - run.WithRun(appDetails(opts)) - - r.NoError(run.Run()) - - r.Contains(bb.String(), "paris elephant chevrolet") -} diff --git a/genny/info/config.go b/genny/info/config.go deleted file mode 100644 index a3fbc908f..000000000 --- a/genny/info/config.go +++ /dev/null @@ -1,28 +0,0 @@ -package info - -import ( - "path" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/packd" - "github.com/gobuffalo/packr/v2" -) - -// ListWalker allows for a box that supports listing and walking -type ListWalker interface { - packd.Lister - packd.Walkable -} - -func configs(opts *Options, box ListWalker) genny.RunFn { - return func(r *genny.Runner) error { - if len(box.List()) == 0 { - return nil - } - return box.Walk(func(p string, f packr.File) error { - opts.Out.Header("Buffalo: " + path.Join("config", p)) - opts.Out.WriteString(f.String() + "\n") - return nil - }) - } -} diff --git a/genny/info/config_test.go b/genny/info/config_test.go deleted file mode 100644 index 83b61a876..000000000 --- a/genny/info/config_test.go +++ /dev/null @@ -1,39 +0,0 @@ -package info - -import ( - "bytes" - "testing" - - "github.com/gobuffalo/clara/v2/genny/rx" - - "github.com/gobuffalo/packd" - - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/meta" - "github.com/stretchr/testify/require" -) - -func Test_configs(t *testing.T) { - r := require.New(t) - - run := gentest.NewRunner() - - bb := &bytes.Buffer{} - - app := meta.New(".") - opts := &Options{ - App: app, - Out: rx.NewWriter(bb), - } - - box := packd.NewMemoryBox() - box.AddString("buffalo-app.toml", "app") - box.AddString("buffalo-plugins.toml", "plugins") - run.WithRun(configs(opts, box)) - - r.NoError(run.Run()) - - x := bb.String() - r.Contains(x, "Buffalo: config/buffalo-app.toml\napp") - r.Contains(x, "Buffalo: config/buffalo-plugins.toml\nplugins") -} diff --git a/genny/info/info.go b/genny/info/info.go deleted file mode 100644 index b5351455b..000000000 --- a/genny/info/info.go +++ /dev/null @@ -1,28 +0,0 @@ -package info - -import ( - "path/filepath" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/packr/v2" -) - -// New returns a generator that performs buffalo -// related rx checks -func New(opts *Options) (*genny.Generator, error) { - g := genny.New() - - if err := opts.Validate(); err != nil { - return g, err - } - - g.RunFn(appDetails(opts)) - - cBox := packr.Folder(filepath.Join(opts.App.Root, "config")) - g.RunFn(configs(opts, cBox)) - - aBox := packr.Folder(opts.App.Root) - g.RunFn(pkgChecks(opts, aBox)) - - return g, nil -} diff --git a/genny/info/info_test.go b/genny/info/info_test.go deleted file mode 100644 index fcd464e8a..000000000 --- a/genny/info/info_test.go +++ /dev/null @@ -1,25 +0,0 @@ -package info - -import ( - "testing" - - "github.com/gobuffalo/genny/v2/gentest" - "github.com/stretchr/testify/require" -) - -func Test_New(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{}) - r.NoError(err) - - run := gentest.NewRunner() - run.With(g) - - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 0) - r.Len(res.Files, 0) -} diff --git a/genny/info/options.go b/genny/info/options.go deleted file mode 100644 index dd22f9fb1..000000000 --- a/genny/info/options.go +++ /dev/null @@ -1,25 +0,0 @@ -package info - -import ( - "os" - - "github.com/gobuffalo/clara/v2/genny/rx" - "github.com/gobuffalo/meta" -) - -// Options for the info generator -type Options struct { - App meta.App - Out rx.Writer -} - -// Validate that options are usuable -func (opts *Options) Validate() error { - if opts.App.IsZero() { - opts.App = meta.New(".") - } - if opts.Out.Writer == nil { - opts.Out = rx.NewWriter(os.Stdout) - } - return nil -} diff --git a/genny/info/options_test.go b/genny/info/options_test.go deleted file mode 100644 index fc632295e..000000000 --- a/genny/info/options_test.go +++ /dev/null @@ -1,15 +0,0 @@ -package info - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func Test_Options_Validate(t *testing.T) { - r := require.New(t) - - opts := &Options{} - err := opts.Validate() - r.NoError(err) -} diff --git a/genny/info/pkg.go b/genny/info/pkg.go deleted file mode 100644 index ee677e440..000000000 --- a/genny/info/pkg.go +++ /dev/null @@ -1,19 +0,0 @@ -package info - -import ( - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/packd" -) - -func pkgChecks(opts *Options, box packd.Finder) genny.RunFn { - return func(r *genny.Runner) error { - for _, x := range []string{"go.mod"} { - f, err := box.FindString(x) - if err == nil { - opts.Out.Header("\nBuffalo: " + x) - opts.Out.WriteString(f) - } - } - return nil - } -} diff --git a/genny/info/pkg_test.go b/genny/info/pkg_test.go deleted file mode 100644 index 1119cc615..000000000 --- a/genny/info/pkg_test.go +++ /dev/null @@ -1,34 +0,0 @@ -package info - -import ( - "bytes" - "testing" - - "github.com/gobuffalo/clara/v2/genny/rx" - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/meta" - "github.com/gobuffalo/packd" - "github.com/stretchr/testify/require" -) - -func Test_pkgChecks(t *testing.T) { - r := require.New(t) - - bb := &bytes.Buffer{} - - run := gentest.NewRunner() - - opts := &Options{ - App: meta.New("."), - Out: rx.NewWriter(bb), - } - - box := packd.NewMemoryBox() - box.AddString("go.mod", "module foo") - run.WithRun(pkgChecks(opts, box)) - - r.NoError(run.Run()) - - res := bb.String() - r.Contains(res, "Buffalo: go.mod") -} diff --git a/genny/info/templates/example.txt b/genny/info/templates/example.txt deleted file mode 100644 index c53dd0d88..000000000 --- a/genny/info/templates/example.txt +++ /dev/null @@ -1 +0,0 @@ -Hello from Info diff --git a/genny/mail/init/templates/mailers/mailers.go.tmpl b/genny/mail/init/templates/mailers/mailers.go.tmpl deleted file mode 100644 index 5b6f366b6..000000000 --- a/genny/mail/init/templates/mailers/mailers.go.tmpl +++ /dev/null @@ -1,35 +0,0 @@ -package mailers - -import ( - "log" - - "github.com/gobuffalo/buffalo/render" - "github.com/gobuffalo/envy" - "github.com/gobuffalo/packr/v2" - "github.com/gobuffalo/buffalo/mail" -) - -var smtp mail.Sender -var r *render.Engine - -func init() { - - // Pulling config from the env. - port := envy.Get("SMTP_PORT", "1025") - host := envy.Get("SMTP_HOST", "localhost") - user := envy.Get("SMTP_USER", "") - password := envy.Get("SMTP_PASSWORD", "") - - var err error - smtp, err = mail.NewSMTPSender(host, port, user, password) - - if err != nil { - log.Fatal(err) - } - - r = render.New(render.Options{ - HTMLLayout: "layout.html", - TemplatesBox: packr.New("app:mailers:templates", "../templates/mail"), - Helpers: render.Helpers{}, - }) -} diff --git a/genny/mail/init/templates/templates/mail/layout.plush.html.tmpl b/genny/mail/init/templates/templates/mail/layout.plush.html.tmpl deleted file mode 100644 index 8b3241e9d..000000000 --- a/genny/mail/init/templates/templates/mail/layout.plush.html.tmpl +++ /dev/null @@ -1,3 +0,0 @@ -

templates/mailers/layout.plush.html

- -<%= yield %> diff --git a/genny/mail/mail-packr.go b/genny/mail/mail-packr.go deleted file mode 100644 index 5f3e353ab..000000000 --- a/genny/mail/mail-packr.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !skippackr -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr clean" command to clean up this, -// and any other packr generated files. -package mail - -import _ "github.com/gobuffalo/buffalo/packrd" diff --git a/genny/mail/mail.go b/genny/mail/mail.go deleted file mode 100644 index 3a2afc489..000000000 --- a/genny/mail/mail.go +++ /dev/null @@ -1,86 +0,0 @@ -package mail - -import ( - "text/template" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" - "github.com/gobuffalo/packr/v2" -) - -// New mailer generator. It will init the mailers directory if it doesn't already exist -func New(opts *Options) (*genny.Group, error) { - gg := &genny.Group{} - - if err := opts.Validate(); err != nil { - return gg, err - } - - if !opts.SkipInit { - g, err := initGenerator(opts) - if err != nil { - return gg, err - } - gg.Add(g) - } - - g := genny.New() - h := template.FuncMap{} - data := map[string]interface{}{ - "opts": opts, - } - t := gogen.TemplateTransformer(data, h) - g.Transformer(t) - - fn := opts.Name.File().String() - g.File(genny.NewFileS("mailers/"+fn+".go.tmpl", mailerTmpl)) - g.File(genny.NewFileS("templates/mail/"+fn+".plush.html.tmpl", mailTmpl)) - gg.Add(g) - - return gg, nil -} - -func initGenerator(opts *Options) (*genny.Generator, error) { - g := genny.New() - - g.Box(packr.New("github.com/gobuffalo/buffalo/genny/mail/init/templates", "../mail/init/templates")) - h := template.FuncMap{} - data := map[string]interface{}{ - "opts": opts, - } - t := gogen.TemplateTransformer(data, h) - g.Transformer(t) - - g.Should = func(r *genny.Runner) bool { - _, err := r.FindFile("mailers/mailers.go") - return err != nil - } - opts.Name.Titleize() - return g, nil -} - -const mailerTmpl = `package mailers - -import ( - "github.com/gobuffalo/buffalo/render" - "github.com/gobuffalo/buffalo/mail" -) - -func Send{{.opts.Name.Resource}}() error { - m := mail.NewMessage() - - // fill in with your stuff: - m.Subject = "{{.opts.Name.Titleize}}" - m.From = "" - m.To = []string{} - err := m.AddBody(r.HTML("{{.opts.Name.File}}.html"), render.Data{}) - if err != nil { - return err - } - return smtp.Send(m) -} -` - -const mailTmpl = `

{{.opts.Name.Titleize}}

- -

../templates/mail/{{.opts.Name.File}}.plush.html

` diff --git a/genny/mail/mail_test.go b/genny/mail/mail_test.go deleted file mode 100644 index a84121320..000000000 --- a/genny/mail/mail_test.go +++ /dev/null @@ -1,66 +0,0 @@ -package mail - -import ( - "testing" - - "github.com/gobuffalo/flect/name" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gentest" - "github.com/stretchr/testify/require" -) - -func Test_New_NoMailers(t *testing.T) { - r := require.New(t) - gg, err := New(&Options{Name: name.New("foo")}) - r.NoError(err) - - run := gentest.NewRunner() - gg.With(run) - r.NoError(run.Run()) - - res := run.Results() - r.Len(res.Commands, 0) - r.Len(res.Files, 4) - - f := res.Files[0] - r.Equal("mailers/foo.go", f.Name()) - body := f.String() - r.Contains(body, `err := m.AddBody(r.HTML("foo.html"), render.Data{})`) - - f = res.Files[1] - r.Equal("mailers/mailers.go", f.Name()) - - f = res.Files[2] - r.Equal("templates/mail/foo.plush.html", f.Name()) - body = f.String() - r.Contains(body, `

../templates/mail/foo.plush.html

`) - - f = res.Files[3] - r.Equal("templates/mail/layout.plush.html", f.Name()) -} - -func Test_New_WithMailers(t *testing.T) { - r := require.New(t) - - run := gentest.NewRunner() - run.Disk.Add(genny.NewFileS("mailers/mailers.go", "")) - - gg, err := New(&Options{Name: name.New("foo")}) - r.NoError(err) - gg.With(run) - r.NoError(run.Run()) - - res := run.Results() - r.Len(res.Commands, 0) - r.Len(res.Files, 3) - - f := res.Files[0] - r.Equal("mailers/foo.go", f.Name()) - body := f.String() - r.Contains(body, `err := m.AddBody(r.HTML("foo.html"), render.Data{})`) - - f = res.Files[2] - r.Equal("templates/mail/foo.plush.html", f.Name()) - body = f.String() - r.Contains(body, `

../templates/mail/foo.plush.html

`) -} diff --git a/genny/mail/options.go b/genny/mail/options.go deleted file mode 100644 index abd7bd01e..000000000 --- a/genny/mail/options.go +++ /dev/null @@ -1,27 +0,0 @@ -package mail - -import ( - "fmt" - - "github.com/gobuffalo/flect/name" - "github.com/gobuffalo/meta" -) - -// Options needed to create a new mailer -type Options struct { - App meta.App `json:"app"` - Name name.Ident `json:"name"` - SkipInit bool `json:"skip_init"` -} - -// Validate options are useful -func (opts *Options) Validate() error { - if opts.App.IsZero() { - opts.App = meta.New(".") - } - - if len(opts.Name.String()) == 0 { - return fmt.Errorf("you must supply a name for your mailer") - } - return nil -} diff --git a/genny/newapp/api/api-packr.go b/genny/newapp/api/api-packr.go deleted file mode 100644 index 488d9b971..000000000 --- a/genny/newapp/api/api-packr.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !skippackr -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr clean" command to clean up this, -// and any other packr generated files. -package api - -import _ "github.com/gobuffalo/buffalo/packrd" diff --git a/genny/newapp/api/api.go b/genny/newapp/api/api.go deleted file mode 100644 index 8e5bfa875..000000000 --- a/genny/newapp/api/api.go +++ /dev/null @@ -1,37 +0,0 @@ -package api - -import ( - "html/template" - - "github.com/gobuffalo/buffalo/genny/newapp/core" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" - "github.com/gobuffalo/packr/v2" -) - -// New generator for creating a Buffalo API application -func New(opts *Options) (*genny.Group, error) { - if err := opts.Validate(); err != nil { - return nil, err - } - - gg, err := core.New(opts.Options) - if err != nil { - return gg, err - } - - g := genny.New() - data := map[string]interface{}{ - "opts": opts, - } - - helpers := template.FuncMap{} - - t := gogen.TemplateTransformer(data, helpers) - g.Transformer(t) - g.Box(packr.New("buffalo:genny:newapp:api", "../api/templates")) - - gg.Add(g) - - return gg, nil -} diff --git a/genny/newapp/api/api_test.go b/genny/newapp/api/api_test.go deleted file mode 100644 index 4b9f26347..000000000 --- a/genny/newapp/api/api_test.go +++ /dev/null @@ -1,104 +0,0 @@ -package api - -import ( - "strings" - "testing" - - "github.com/gobuffalo/buffalo/genny/newapp/core" - "github.com/gobuffalo/envy" - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/meta" - "github.com/stretchr/testify/require" -) - -func init() { - // normalize command output - envy.Set("GO_BIN", "go") -} - -func Test_New(t *testing.T) { - r := require.New(t) - - app := meta.Named("api", ".") - (&app).PackageRoot("api") - app.WithModules = false - app.AsAPI = true - app.AsWeb = false - - gg, err := New(&Options{ - Options: &core.Options{ - App: app, - }, - }) - r.NoError(err) - - run := gentest.NewRunner() - run.WithGroup(gg) - - r.NoError(run.Run()) - - res := run.Results() - - cmds := []string{ - "go mod init api", - } - r.Len(res.Commands, len(cmds)) - - for i, c := range res.Commands { - r.Equal(cmds[i], strings.Join(c.Args, " ")) - } - - expected := commonExpected - for _, e := range expected { - _, err = res.Find(e) - r.NoError(err) - } - - f, err := res.Find("actions/render.go") - r.NoError(err) - r.Contains(f.String(), `DefaultContentType: "application/json",`) - - f, err = res.Find("actions/home.go") - r.NoError(err) - r.Contains(f.String(), `return c.Render(http.StatusOK, r.JSON(map[string]string{"message": "Welcome to Buffalo!"}))`) - - f, err = res.Find("actions/app.go") - r.NoError(err) - r.Contains(f.String(), `i18n "github.com/gobuffalo/mw-i18n"`) - r.Contains(f.String(), `var T *i18n.Translator`) - r.Contains(f.String(), `func translations() buffalo.MiddlewareFunc {`) - - f, err = res.Find("locales/all.en-us.yaml") - r.NoError(err) - r.Contains(f.String(), `translation: "Welcome to Buffalo (EN)"`) - - unexpected := []string{ - "Dockerfile", - "database.yml", - "models/models.go", - "go.mod", - ".buffalo.dev.yml", - "assets/css/application.scss.css", - "public/assets/application.js", - } - - for _, u := range unexpected { - _, err = res.Find(u) - r.Error(err) - } -} - -var commonExpected = []string{ - "main.go", - "actions/app.go", - "actions/actions_test.go", - "actions/render.go", - "actions/home.go", - "actions/home_test.go", - "fixtures/sample.toml", - "grifts/init.go", - ".codeclimate.yml", - ".env", - "inflections.json", - "README.md", -} diff --git a/genny/newapp/api/options.go b/genny/newapp/api/options.go deleted file mode 100644 index 286c643ca..000000000 --- a/genny/newapp/api/options.go +++ /dev/null @@ -1,18 +0,0 @@ -package api - -import ( - "github.com/gobuffalo/buffalo/genny/newapp/core" -) - -// Options for API applications -type Options struct { - *core.Options -} - -// Validate that options are usuable -func (opts *Options) Validate() error { - if opts.Options == nil { - opts.Options = &core.Options{} - } - return opts.Options.Validate() -} diff --git a/genny/newapp/api/options_test.go b/genny/newapp/api/options_test.go deleted file mode 100644 index 778f64ec1..000000000 --- a/genny/newapp/api/options_test.go +++ /dev/null @@ -1 +0,0 @@ -package api diff --git a/genny/newapp/api/templates/actions/app.go.tmpl b/genny/newapp/api/templates/actions/app.go.tmpl deleted file mode 100644 index c5bbe8f0c..000000000 --- a/genny/newapp/api/templates/actions/app.go.tmpl +++ /dev/null @@ -1,95 +0,0 @@ -package actions - -import ( - "github.com/gobuffalo/envy" - "github.com/gobuffalo/buffalo" - forcessl "github.com/gobuffalo/mw-forcessl" - paramlogger "github.com/gobuffalo/mw-paramlogger" - "github.com/unrolled/secure" - i18n "github.com/gobuffalo/mw-i18n" - - {{ if .opts.App.WithPop }} - "{{.opts.App.ModelsPkg}}" - "github.com/gobuffalo/buffalo-pop/v2/pop/popmw" - {{ end -}} - - "github.com/rs/cors" - "github.com/gobuffalo/x/sessions" - contenttype "github.com/gobuffalo/mw-contenttype" -) - -// ENV is used to help switch settings based on where the -// application is being run. Default is "development". -var ENV = envy.Get("GO_ENV", "development") -var app *buffalo.App -var T *i18n.Translator - -// App is where all routes and middleware for buffalo -// should be defined. This is the nerve center of your -// application. -// -// Routing, middleware, groups, etc... are declared TOP -> DOWN. -// This means if you add a middleware to `app` *after* declaring a -// group, that group will NOT have that new middleware. The same -// is true of resource declarations as well. -// -// It also means that routes are checked in the order they are declared. -// `ServeFiles` is a CATCH-ALL route, so it should always be -// placed last in the route declarations, as it will prevent routes -// declared after it to never be called. -func App() *buffalo.App { - if app == nil { - app = buffalo.New(buffalo.Options{ - Env: ENV, - SessionStore: sessions.Null{}, - PreWares: []buffalo.PreWare{ - cors.Default().Handler, - }, - SessionName: "_{{.opts.App.Name.File}}_session", - }) - - // Automatically redirect to SSL - app.Use(forceSSL()) - - // Log request parameters (filters apply). - app.Use(paramlogger.ParameterLogger) - - // Set the request content type to JSON - app.Use(contenttype.Set("application/json")) - - {{ if .opts.App.WithPop }} - // Wraps each request in a transaction. - // c.Value("tx").(*pop.Connection) - // Remove to disable this. - app.Use(popmw.Transaction(models.DB)) - {{ end }} - - app.GET("/", HomeHandler) - } - - return app -} - -// translations will load locale files, set up the translator `actions.T`, -// and will return a middleware to use to load the correct locale for each -// request. -// for more information: https://gobuffalo.io/en/docs/localization -func translations() buffalo.MiddlewareFunc { - var err error - if T, err = i18n.New(packr.New("app:locales", "../locales"), "en-US"); err != nil { - app.Stop(err) - } - return T.Middleware() -} - -// forceSSL will return a middleware that will redirect an incoming request -// if it is not HTTPS. "http://example.com" => "https://example.com". -// This middleware does **not** enable SSL. for your application. To do that -// we recommend using a proxy: https://gobuffalo.io/en/docs/proxy -// for more information: https://github.com/unrolled/secure/ -func forceSSL() buffalo.MiddlewareFunc { - return forcessl.Middleware(secure.Options{ - SSLRedirect: ENV == "production", - SSLProxyHeaders: map[string]string{"X-Forwarded-Proto": "https"}, - }) -} diff --git a/genny/newapp/api/templates/actions/home.go.tmpl b/genny/newapp/api/templates/actions/home.go.tmpl deleted file mode 100644 index 8ef5cd430..000000000 --- a/genny/newapp/api/templates/actions/home.go.tmpl +++ /dev/null @@ -1,13 +0,0 @@ -package actions - -import ( - "net/http" - - "github.com/gobuffalo/buffalo" -) - -// HomeHandler is a default handler to serve up -// a home page. -func HomeHandler(c buffalo.Context) error { - return c.Render(http.StatusOK, r.JSON(map[string]string{"message": "Welcome to Buffalo!"})) -} diff --git a/genny/newapp/api/templates/actions/home_test.go.tmpl b/genny/newapp/api/templates/actions/home_test.go.tmpl deleted file mode 100644 index d5cf583de..000000000 --- a/genny/newapp/api/templates/actions/home_test.go.tmpl +++ /dev/null @@ -1,10 +0,0 @@ -package actions - -import "net/http" - -func (as *ActionSuite) Test_HomeHandler() { - res := as.JSON("/").Get() - - as.Equal(http.StatusOK, res.Code) - as.Contains(res.Body.String(), "Welcome to Buffalo") -} diff --git a/genny/newapp/api/templates/actions/render.go.tmpl b/genny/newapp/api/templates/actions/render.go.tmpl deleted file mode 100644 index 5ea169e52..000000000 --- a/genny/newapp/api/templates/actions/render.go.tmpl +++ /dev/null @@ -1,13 +0,0 @@ -package actions - -import ( - "github.com/gobuffalo/buffalo/render" -) - -var r *render.Engine - -func init() { - r = render.New(render.Options{ - DefaultContentType: "application/json", - }) -} diff --git a/genny/newapp/api/templates/locales/all.en-us.yaml.tmpl b/genny/newapp/api/templates/locales/all.en-us.yaml.tmpl deleted file mode 100644 index 6514e2100..000000000 --- a/genny/newapp/api/templates/locales/all.en-us.yaml.tmpl +++ /dev/null @@ -1,3 +0,0 @@ -# For more information on using i18n see: https://github.com/nicksnyder/go-i18n -- id: welcome_greeting - translation: "Welcome to Buffalo (EN)" diff --git a/genny/newapp/core/core-packr.go b/genny/newapp/core/core-packr.go deleted file mode 100644 index 190c8a13d..000000000 --- a/genny/newapp/core/core-packr.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !skippackr -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr clean" command to clean up this, -// and any other packr generated files. -package core - -import _ "github.com/gobuffalo/buffalo/packrd" diff --git a/genny/newapp/core/core.go b/genny/newapp/core/core.go deleted file mode 100644 index 7c902827b..000000000 --- a/genny/newapp/core/core.go +++ /dev/null @@ -1,92 +0,0 @@ -package core - -import ( - pop "github.com/gobuffalo/buffalo-pop/v2/genny/newapp" - "github.com/gobuffalo/buffalo/genny/ci" - "github.com/gobuffalo/buffalo/genny/docker" - "github.com/gobuffalo/buffalo/genny/plugins/install" - "github.com/gobuffalo/buffalo/genny/refresh" - "github.com/gobuffalo/buffalo/internal/takeon/github.com/markbates/errx" - "github.com/gobuffalo/buffalo/plugins/plugdeps" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/meta" -) - -// New generator for creating a Buffalo application -func New(opts *Options) (*genny.Group, error) { - gg := &genny.Group{} - - // add the root generator - g, err := rootGenerator(opts) - if err != nil { - return gg, err - } - gg.Add(g) - - app := opts.App - - plugs, err := plugdeps.List(app) - if err != nil && (errx.Unwrap(err) != plugdeps.ErrMissingConfig) { - return nil, err - } - - if opts.Docker != nil { - // add the docker generator - g, err = docker.New(opts.Docker) - if err != nil { - return gg, err - } - gg.Add(g) - } - - if opts.Pop != nil { - // add the pop generator - gg2, err := pop.New(opts.Pop) - if err != nil { - return gg, err - } - gg.Merge(gg2) - - // add the plugin - plugs.Add(plugdeps.Plugin{ - Binary: "buffalo-pop", - GoGet: "github.com/gobuffalo/buffalo-pop/v2", - }) - } - - if opts.CI != nil { - // add the CI generator - g, err = ci.New(opts.CI) - if err != nil { - return gg, err - } - gg.Add(g) - } - - if opts.Refresh != nil { - g, err = refresh.New(opts.Refresh) - if err != nil { - return gg, err - } - gg.Add(g) - } - - // --- - - // install all of the plugins - iopts := &install.Options{ - App: app, - Plugins: plugs.List(), - } - if app.WithSQLite { - iopts.Tags = meta.BuildTags{"sqlite"} - } - - ig, err := install.New(iopts) - if err != nil { - return gg, err - } - gg.Merge(ig) - - return gg, nil -} diff --git a/genny/newapp/core/core_test.go b/genny/newapp/core/core_test.go deleted file mode 100644 index 78c2eb359..000000000 --- a/genny/newapp/core/core_test.go +++ /dev/null @@ -1,104 +0,0 @@ -package core - -import ( - "testing" - - "github.com/gobuffalo/buffalo/genny/docker" - "github.com/gobuffalo/envy" - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/meta" - "github.com/stretchr/testify/require" -) - -func init() { - // normalize command output - envy.Set("GO_BIN", "go") -} - -func Test_New(t *testing.T) { - r := require.New(t) - envy.Temp(func() { - envy.Set(envy.GO111MODULE, "on") - - app := meta.Named("coke", ".") - (&app).PackageRoot("coke") - app.WithModules = true - - gg, err := New(&Options{ - App: app, - }) - r.NoError(err) - - run := gentest.NewRunner() - run.WithGroup(gg) - - r.NoError(run.Run()) - - res := run.Results() - - cmds := []string{ - "go mod init coke", - } - r.NoError(gentest.CompareCommands(cmds, res.Commands)) - - expected := commonExpected - for _, e := range expected { - _, err = res.Find(e) - r.NoError(err) - } - - unexpected := []string{ - "Dockerfile", - "database.yml", - "models/models.go", - ".buffalo.dev.yml", - "assets/css/application.scss.css", - "public/assets/application.js", - } - for _, u := range unexpected { - _, err = res.Find(u) - r.Error(err) - } - - }) -} - -func Test_New_Docker(t *testing.T) { - r := require.New(t) - - app := meta.New(".") - app.WithModules = false - - gg, err := New(&Options{ - Docker: &docker.Options{}, - }) - r.NoError(err) - - run := gentest.NewRunner() - run.WithGroup(gg) - - r.NoError(run.Run()) - - res := run.Results() - - expected := append(commonExpected, "Dockerfile") - for _, e := range expected { - _, err := res.Find(e) - r.NoError(err) - } -} - -var commonExpected = []string{ - "main.go", - "actions/app.go", - "actions/actions_test.go", - "actions/render.go", - "actions/home.go", - "actions/home_test.go", - "fixtures/sample.toml", - "grifts/init.go", - ".codeclimate.yml", - ".env", - "inflections.json", - "README.md", -} diff --git a/genny/newapp/core/errors.go b/genny/newapp/core/errors.go deleted file mode 100644 index 854ce7521..000000000 --- a/genny/newapp/core/errors.go +++ /dev/null @@ -1,6 +0,0 @@ -package core - -import "fmt" - -// ErrNotInGoPath is thrown when not using go modules outside of GOPATH -var ErrNotInGoPath = fmt.Errorf("currently not in a $GOPATH") diff --git a/genny/newapp/core/options.go b/genny/newapp/core/options.go deleted file mode 100644 index 9ed4c344b..000000000 --- a/genny/newapp/core/options.go +++ /dev/null @@ -1,100 +0,0 @@ -package core - -import ( - "fmt" - "regexp" - "strings" - - "github.com/gobuffalo/buffalo-pop/v2/genny/newapp" - "github.com/gobuffalo/buffalo/genny/ci" - "github.com/gobuffalo/buffalo/genny/docker" - "github.com/gobuffalo/buffalo/genny/refresh" - "github.com/gobuffalo/buffalo/genny/vcs" - "github.com/gobuffalo/buffalo/runtime" - "github.com/gobuffalo/meta" -) - -// Options for a new Buffalo application -type Options struct { - App meta.App - Docker *docker.Options - Pop *newapp.Options - CI *ci.Options - VCS *vcs.Options - Refresh *refresh.Options - Version string - ForbiddenNames []string -} - -// Validate that options are usuable -func (opts *Options) Validate() error { - if opts.App.IsZero() { - opts.App = meta.New(".") - } - - if len(opts.Version) == 0 { - opts.Version = runtime.Version - } - - if opts.Pop != nil { - if err := opts.Pop.Validate(); err != nil { - return err - } - opts.Pop.Root = opts.App.Root - } - - if opts.CI != nil { - if opts.CI.App.IsZero() { - opts.CI.App = opts.App - } - if err := opts.CI.Validate(); err != nil { - return err - } - } - - if opts.Refresh != nil { - if opts.Refresh.App.IsZero() { - opts.Refresh.App = opts.App - } - if err := opts.Refresh.Validate(); err != nil { - return err - } - } - - if opts.VCS != nil { - if opts.VCS.App.IsZero() { - opts.VCS.App = opts.App - } - if err := opts.VCS.Validate(); err != nil { - return err - } - } - - name := strings.ToLower(opts.App.Name.String()) - for _, n := range opts.ForbiddenNames { - rx, err := regexp.Compile(n) - if err != nil { - return err - } - if rx.MatchString(name) { - return fmt.Errorf("name %s is not allowed, try a different application name", opts.App.Name) - } - } - - keywords := []string{"buffalo", "test", "dev"} - for _, kw := range keywords { - if name != kw { - continue - } - - return fmt.Errorf("name %s is not allowed, try a different application name", opts.App.Name) - } - - if !nameRX.MatchString(name) { - return fmt.Errorf("name %s is not allowed, application name can only contain [a-Z0-9-_]", opts.App.Name) - } - - return nil -} - -var nameRX = regexp.MustCompile(`^[\w-]+$`) diff --git a/genny/newapp/core/options_test.go b/genny/newapp/core/options_test.go deleted file mode 100644 index a8964c825..000000000 --- a/genny/newapp/core/options_test.go +++ /dev/null @@ -1,36 +0,0 @@ -package core - -import ( - "testing" - - "github.com/gobuffalo/flect/name" - "github.com/gobuffalo/meta" - "github.com/stretchr/testify/require" -) - -func Test_Options_Validate(t *testing.T) { - r := require.New(t) - - app := meta.New(".") - app.Name = name.New("buffalo") - - opts := &Options{ - App: app, - } - - err := opts.Validate() - r.Error(err) - - opts.App.Name = name.New("coke") - err = opts.Validate() - r.NoError(err) - - opts.App.Name = name.New("#$(@#)") - err = opts.Validate() - r.Error(err) - - opts.App.Name = name.New("coke") - err = opts.Validate() - r.NoError(err) - -} diff --git a/genny/newapp/core/root.go b/genny/newapp/core/root.go deleted file mode 100644 index afa7aea43..000000000 --- a/genny/newapp/core/root.go +++ /dev/null @@ -1,48 +0,0 @@ -package core - -import ( - "html/template" - "os/exec" - - "github.com/BurntSushi/toml" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" - "github.com/gobuffalo/packr/v2" -) - -func rootGenerator(opts *Options) (*genny.Generator, error) { - g := genny.New() - - // validate opts - if err := opts.Validate(); err != nil { - return g, err - } - - g.Command(exec.Command("go", "mod", "init", opts.App.PackagePkg)) - - g.Transformer(genny.Dot()) - - // add common templates - if err := g.Box(packr.New("buffalo:genny:newapp:core", "../core/templates")); err != nil { - return g, err - } - - data := map[string]interface{}{ - "opts": opts, - } - - helpers := template.FuncMap{} - - t := gogen.TemplateTransformer(data, helpers) - g.Transformer(t) - - g.RunFn(func(r *genny.Runner) error { - f := genny.NewFile("config/buffalo-app.toml", nil) - if err := toml.NewEncoder(f).Encode(opts.App); err != nil { - return err - } - return r.File(f) - }) - - return g, nil -} diff --git a/genny/newapp/core/templates/-dot-codeclimate.yml.tmpl b/genny/newapp/core/templates/-dot-codeclimate.yml.tmpl deleted file mode 100644 index bef69009f..000000000 --- a/genny/newapp/core/templates/-dot-codeclimate.yml.tmpl +++ /dev/null @@ -1,23 +0,0 @@ -version: "2" -checks: - method-lines: - config: - threshold: 100 -plugins: - fixme: - enabled: true - gofmt: - enabled: true - golint: - enabled: true - govet: - enabled: true -exclude_patterns: - - grifts/**/* - - "**/*_test.go" - - "*_test.go" - - "**_test.go" - - logs/* - - public/* - - templates/* - - "**/node_modules/" diff --git a/genny/newapp/core/templates/-dot-env.tmpl b/genny/newapp/core/templates/-dot-env.tmpl deleted file mode 100644 index 6dedde674..000000000 --- a/genny/newapp/core/templates/-dot-env.tmpl +++ /dev/null @@ -1,9 +0,0 @@ -# This .env file was generated by buffalo, add here the env variables you need -# buffalo to load into the ENV on application startup so your application works correctly. -# To add variables use KEY=VALUE format, you can later retrieve this in your application -# by using os.Getenv("KEY"). -# -# Example: -# DATABASE_PASSWORD=XXXXXXXXX -# SESSION_SECRET=XXXXXXXXX -# SMTP_SERVER=XXXXXXXXX diff --git a/genny/newapp/core/templates/README.md.tmpl b/genny/newapp/core/templates/README.md.tmpl deleted file mode 100644 index cb5c4f428..000000000 --- a/genny/newapp/core/templates/README.md.tmpl +++ /dev/null @@ -1,38 +0,0 @@ -# Welcome to Buffalo! - -Thank you for choosing Buffalo for your web development needs. - -{{ if .opts.App.WithPop -}} -## Database Setup - -It looks like you chose to set up your application using a database! Fantastic! - -The first thing you need to do is open up the "database.yml" file and edit it to use the correct usernames, passwords, hosts, etc... that are appropriate for your environment. - -You will also need to make sure that **you** start/install the database of your choice. Buffalo **won't** install and start it for you. - -### Create Your Databases - -Ok, so you've edited the "database.yml" file and started your database, now Buffalo can create the databases in that file for you: - - $ buffalo pop create -a - -{{end -}} - -## Starting the Application - -Buffalo ships with a command that will watch your application and automatically rebuild the Go binary and any assets for you. To do that run the "buffalo dev" command: - - $ buffalo dev - -If you point your browser to [http://127.0.0.1:3000](http://127.0.0.1:3000) you should see a "Welcome to Buffalo!" page. - -**Congratulations!** You now have your Buffalo application up and running. - -## What Next? - -We recommend you heading over to [http://gobuffalo.io](http://gobuffalo.io) and reviewing all of the great documentation there. - -Good luck! - -[Powered by Buffalo](http://gobuffalo.io) diff --git a/genny/newapp/core/templates/actions/actions_test.go.tmpl b/genny/newapp/core/templates/actions/actions_test.go.tmpl deleted file mode 100644 index 82bfe1e3f..000000000 --- a/genny/newapp/core/templates/actions/actions_test.go.tmpl +++ /dev/null @@ -1,24 +0,0 @@ -package actions - -import ( - "testing" - - "github.com/gobuffalo/packr/v2" - "github.com/gobuffalo/suite" -) - -type ActionSuite struct { - *suite.Action -} - -func Test_ActionSuite(t *testing.T) { - action, err := suite.NewActionWithFixtures(App(), packr.New("Test_ActionSuite", "../fixtures")) - if err != nil { - t.Fatal(err) - } - - as := &ActionSuite{ - Action: action, - } - suite.Run(t, as) -} diff --git a/genny/newapp/core/templates/actions/app.go.tmpl b/genny/newapp/core/templates/actions/app.go.tmpl deleted file mode 100644 index 985876b31..000000000 --- a/genny/newapp/core/templates/actions/app.go.tmpl +++ /dev/null @@ -1,58 +0,0 @@ -package actions - -import ( - "github.com/gobuffalo/buffalo" - "github.com/gobuffalo/envy" - forcessl "github.com/gobuffalo/mw-forcessl" - paramlogger "github.com/gobuffalo/mw-paramlogger" - "github.com/unrolled/secure" -) - -// ENV is used to help switch settings based on where the -// application is being run. Default is "development". -var ENV = envy.Get("GO_ENV", "development") -var app *buffalo.App - -// App is where all routes and middleware for buffalo -// should be defined. This is the nerve center of your -// application. -// -// Routing, middleware, groups, etc... are declared TOP -> DOWN. -// This means if you add a middleware to `app` *after* declaring a -// group, that group will NOT have that new middleware. The same -// is true of resource declarations as well. -// -// It also means that routes are checked in the order they are declared. -// `ServeFiles` is a CATCH-ALL route, so it should always be -// placed last in the route declarations, as it will ensure routes -// declared after it will never be called. -func App() *buffalo.App { - if app == nil { - app = buffalo.New(buffalo.Options{ - Env: ENV, - SessionName: "_{{.opts.App.Name.File}}_session", - }) - - // Automatically redirect to SSL - app.Use(forceSSL()) - - // Log request parameters (filters apply). - app.Use(paramlogger.ParameterLogger) - - app.GET("/", HomeHandler) - } - - return app -} - -// forceSSL will return a middleware that will redirect an incoming request -// if it is not HTTPS. "http://example.com" => "https://example.com". -// This middleware does **not** enable SSL. for your application. To do that -// we recommend using a proxy: https://gobuffalo.io/en/docs/proxy -// for more information: https://github.com/unrolled/secure/ -func forceSSL() buffalo.MiddlewareFunc { - return forcessl.Middleware(secure.Options{ - SSLRedirect: ENV == "production", - SSLProxyHeaders: map[string]string{"X-Forwarded-Proto": "https"}, - }) -} diff --git a/genny/newapp/core/templates/actions/home.go.tmpl b/genny/newapp/core/templates/actions/home.go.tmpl deleted file mode 100644 index efc4eee95..000000000 --- a/genny/newapp/core/templates/actions/home.go.tmpl +++ /dev/null @@ -1,13 +0,0 @@ -package actions - -import ( - "net/http" - - "github.com/gobuffalo/buffalo" -) - -// HomeHandler is a default handler to serve up -// a home page. -func HomeHandler(c buffalo.Context) error { - return c.Render(http.StatusOK, r.String("Hello from Buffalo")) -} diff --git a/genny/newapp/core/templates/actions/home_test.go.tmpl b/genny/newapp/core/templates/actions/home_test.go.tmpl deleted file mode 100644 index 08065ebdb..000000000 --- a/genny/newapp/core/templates/actions/home_test.go.tmpl +++ /dev/null @@ -1,10 +0,0 @@ -package actions - -import "net/http" - -func (as *ActionSuite) Test_HomeHandler() { - res := as.HTML("/").Get() - - as.Equal(http.StatusOK, res.Code) - as.Contains(res.Body.String(), "Welcome to Buffalo") -} diff --git a/genny/newapp/core/templates/actions/render.go.tmpl b/genny/newapp/core/templates/actions/render.go.tmpl deleted file mode 100644 index 5079adab5..000000000 --- a/genny/newapp/core/templates/actions/render.go.tmpl +++ /dev/null @@ -1,11 +0,0 @@ -package actions - -import ( - "github.com/gobuffalo/buffalo/render" -) - -var r *render.Engine - -func init() { - r = render.New(render.Options{}) -} diff --git a/genny/newapp/core/templates/fixtures/sample.toml.tmpl b/genny/newapp/core/templates/fixtures/sample.toml.tmpl deleted file mode 100644 index b9281d496..000000000 --- a/genny/newapp/core/templates/fixtures/sample.toml.tmpl +++ /dev/null @@ -1,32 +0,0 @@ -[[scenario]] -name = "lots of widgets" - - [[scenario.table]] - name = "widgets" - - [[scenario.table.row]] - id = "<%= uuidNamed("widget") %>" - name = "This is widget #1" - body = "some widget body" - created_at = "<%= now() %>" - updated_at = "<%= now() %>" - - [[scenario.table.row]] - id = "<%= uuid() %>" - name = "This is widget #2" - body = "some widget body" - created_at = "<%= now() %>" - updated_at = "<%= now() %>" - - [[scenario.table]] - name = "users" - - [[scenario.table.row]] - id = "<%= uuid() %>" - name = "Mark Bates" - admin = true - age = 41 - widget_id = "<%= uuidNamed("widget") %>" - created_at = "<%= now() %>" - updated_at = "<%= now() %>" - diff --git a/genny/newapp/core/templates/grifts/init.go.tmpl b/genny/newapp/core/templates/grifts/init.go.tmpl deleted file mode 100644 index 423a7eaf3..000000000 --- a/genny/newapp/core/templates/grifts/init.go.tmpl +++ /dev/null @@ -1,10 +0,0 @@ -package grifts - -import ( - "github.com/gobuffalo/buffalo" - "{{ .opts.App.ActionsPkg }}" -) - -func init() { - buffalo.Grifts(actions.App()) -} diff --git a/genny/newapp/core/templates/inflections.json.tmpl b/genny/newapp/core/templates/inflections.json.tmpl deleted file mode 100644 index ef0214f3a..000000000 --- a/genny/newapp/core/templates/inflections.json.tmpl +++ /dev/null @@ -1,3 +0,0 @@ -{ - "singular": "plural" -} diff --git a/genny/newapp/core/templates/main.go.tmpl b/genny/newapp/core/templates/main.go.tmpl deleted file mode 100644 index de000e5ec..000000000 --- a/genny/newapp/core/templates/main.go.tmpl +++ /dev/null @@ -1,38 +0,0 @@ -package main - -import ( - "log" - - "{{ .opts.App.ActionsPkg }}" -) - -// main is the starting point for your Buffalo application. -// You can feel free and add to this `main` method, change -// what it does, etc... -// All we ask is that, at some point, you make sure to -// call `app.Serve()`, unless you don't want to start your -// application that is. :) -func main() { - app := actions.App() - if err := app.Serve(); err != nil { - log.Fatal(err) - } -} - -/* -# Notes about `main.go` - -## SSL Support - -We recommend placing your application behind a proxy, such as -Apache or Nginx and letting them do the SSL heavy lifting -for you. https://gobuffalo.io/en/docs/proxy - -## Buffalo Build - -When `buffalo build` is run to compile your binary, this `main` -function will be at the heart of that binary. It is expected -that your `main` function will start your application using -the `app.Serve()` method. - -*/ diff --git a/genny/newapp/web/options.go b/genny/newapp/web/options.go deleted file mode 100644 index 559cfe12c..000000000 --- a/genny/newapp/web/options.go +++ /dev/null @@ -1,51 +0,0 @@ -package web - -import ( - "fmt" - - "github.com/gobuffalo/buffalo/genny/assets/standard" - "github.com/gobuffalo/buffalo/genny/assets/webpack" - "github.com/gobuffalo/buffalo/genny/newapp/core" -) - -// Options for a web app -type Options struct { - *core.Options - Webpack *webpack.Options - Standard *standard.Options -} - -// Validate that options are usuable -func (opts *Options) Validate() error { - if opts.Options == nil { - opts.Options = &core.Options{} - } - - if err := opts.Options.Validate(); err != nil { - return err - } - - if opts.Docker != nil { - if opts.Docker.App.IsZero() { - opts.Docker.App = opts.App - } - if err := opts.Docker.Validate(); err != nil { - return err - } - } - - if opts.Webpack != nil { - if opts.Webpack.App.IsZero() { - opts.Webpack.App = opts.App - } - if err := opts.Webpack.Validate(); err != nil { - return err - } - } - - if opts.Standard != nil && opts.Webpack != nil { - return fmt.Errorf("you can not use both webpack and standard generators") - } - - return nil -} diff --git a/genny/newapp/web/options_test.go b/genny/newapp/web/options_test.go deleted file mode 100644 index efb389526..000000000 --- a/genny/newapp/web/options_test.go +++ /dev/null @@ -1 +0,0 @@ -package web diff --git a/genny/newapp/web/templates/actions/app.go.tmpl b/genny/newapp/web/templates/actions/app.go.tmpl deleted file mode 100644 index d32d5568b..000000000 --- a/genny/newapp/web/templates/actions/app.go.tmpl +++ /dev/null @@ -1,96 +0,0 @@ -package actions - -import ( - "github.com/gobuffalo/envy" - "github.com/gobuffalo/buffalo" - forcessl "github.com/gobuffalo/mw-forcessl" - paramlogger "github.com/gobuffalo/mw-paramlogger" - "github.com/unrolled/secure" - - {{ if .opts.App.WithPop }} - "{{.opts.App.ModelsPkg}}" - "github.com/gobuffalo/buffalo-pop/v2/pop/popmw" - {{ end -}} - - csrf "github.com/gobuffalo/mw-csrf" - i18n "github.com/gobuffalo/mw-i18n" - "github.com/gobuffalo/packr/v2" -) - -// ENV is used to help switch settings based on where the -// application is being run. Default is "development". -var ENV = envy.Get("GO_ENV", "development") -var app *buffalo.App -var T *i18n.Translator - -// App is where all routes and middleware for buffalo -// should be defined. This is the nerve center of your -// application. -// -// Routing, middleware, groups, etc... are declared TOP -> DOWN. -// This means if you add a middleware to `app` *after* declaring a -// group, that group will NOT have that new middleware. The same -// is true of resource declarations as well. -// -// It also means that routes are checked in the order they are declared. -// `ServeFiles` is a CATCH-ALL route, so it should always be -// placed last in the route declarations, as it will prevent routes -// declared after it to never be called. -func App() *buffalo.App { - if app == nil { - app = buffalo.New(buffalo.Options{ - Env: ENV, - SessionName: "_{{.opts.App.Name.File}}_session", - }) - - // Automatically redirect to SSL - app.Use(forceSSL()) - - // Log request parameters (filters apply). - app.Use(paramlogger.ParameterLogger) - - // Protect against CSRF attacks. https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF) - // Remove to disable this. - app.Use(csrf.New) - - {{ if .opts.App.WithPop }} - // Wraps each request in a transaction. - // c.Value("tx").(*pop.Connection) - // Remove to disable this. - app.Use(popmw.Transaction(models.DB)) - {{ end }} - - // Setup and use translations: - app.Use(translations()) - - app.GET("/", HomeHandler) - - app.ServeFiles("/", assetsBox) // serve files from the public directory - } - - return app -} - -// translations will load locale files, set up the translator `actions.T`, -// and will return a middleware to use to load the correct locale for each -// request. -// for more information: https://gobuffalo.io/en/docs/localization -func translations() buffalo.MiddlewareFunc { - var err error - if T, err = i18n.New(packr.New("app:locales", "../locales"), "en-US"); err != nil { - app.Stop(err) - } - return T.Middleware() -} - -// forceSSL will return a middleware that will redirect an incoming request -// if it is not HTTPS. "http://example.com" => "https://example.com". -// This middleware does **not** enable SSL. for your application. To do that -// we recommend using a proxy: https://gobuffalo.io/en/docs/proxy -// for more information: https://github.com/unrolled/secure/ -func forceSSL() buffalo.MiddlewareFunc { - return forcessl.Middleware(secure.Options{ - SSLRedirect: ENV == "production", - SSLProxyHeaders: map[string]string{"X-Forwarded-Proto": "https"}, - }) -} diff --git a/genny/newapp/web/templates/actions/home.go.tmpl b/genny/newapp/web/templates/actions/home.go.tmpl deleted file mode 100644 index 151df6db8..000000000 --- a/genny/newapp/web/templates/actions/home.go.tmpl +++ /dev/null @@ -1,13 +0,0 @@ -package actions - -import ( - "net/http" - - "github.com/gobuffalo/buffalo" -) - -// HomeHandler is a default handler to serve up -// a home page. -func HomeHandler(c buffalo.Context) error { - return c.Render(http.StatusOK, r.HTML("index.html")) -} diff --git a/genny/newapp/web/templates/actions/home_test.go.tmpl b/genny/newapp/web/templates/actions/home_test.go.tmpl deleted file mode 100644 index 08065ebdb..000000000 --- a/genny/newapp/web/templates/actions/home_test.go.tmpl +++ /dev/null @@ -1,10 +0,0 @@ -package actions - -import "net/http" - -func (as *ActionSuite) Test_HomeHandler() { - res := as.HTML("/").Get() - - as.Equal(http.StatusOK, res.Code) - as.Contains(res.Body.String(), "Welcome to Buffalo") -} diff --git a/genny/newapp/web/templates/actions/render.go.tmpl b/genny/newapp/web/templates/actions/render.go.tmpl deleted file mode 100644 index 7256d3449..000000000 --- a/genny/newapp/web/templates/actions/render.go.tmpl +++ /dev/null @@ -1,28 +0,0 @@ -package actions - -import ( - "github.com/gobuffalo/packr/v2" - "github.com/gobuffalo/buffalo/render" -) - -var r *render.Engine -var assetsBox = packr.New("app:assets", "../public") - -func init() { - r = render.New(render.Options{ - // HTML layout to be used for all HTML requests: - HTMLLayout: "application.plush.html", - - // Box containing all of the templates: - TemplatesBox: packr.New("app:templates", "../templates"), - AssetsBox: assetsBox, - - // Add template helpers here: - Helpers: render.Helpers{ - // for non-bootstrap form helpers uncomment the lines - // below and import "github.com/gobuffalo/helpers/forms" - // forms.FormKey: forms.Form, - // forms.FormForKey: forms.FormFor, - }, - }) -} diff --git a/genny/newapp/web/templates/locales/all.en-us.yaml.tmpl b/genny/newapp/web/templates/locales/all.en-us.yaml.tmpl deleted file mode 100644 index 6514e2100..000000000 --- a/genny/newapp/web/templates/locales/all.en-us.yaml.tmpl +++ /dev/null @@ -1,3 +0,0 @@ -# For more information on using i18n see: https://github.com/nicksnyder/go-i18n -- id: welcome_greeting - translation: "Welcome to Buffalo (EN)" diff --git a/genny/newapp/web/templates/public/robots.txt.tmpl b/genny/newapp/web/templates/public/robots.txt.tmpl deleted file mode 100644 index 1f53798bb..000000000 --- a/genny/newapp/web/templates/public/robots.txt.tmpl +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Disallow: / diff --git a/genny/newapp/web/templates/templates/_flash.plush.html.tmpl b/genny/newapp/web/templates/templates/_flash.plush.html.tmpl deleted file mode 100644 index adc4b27ba..000000000 --- a/genny/newapp/web/templates/templates/_flash.plush.html.tmpl +++ /dev/null @@ -1,14 +0,0 @@ -
-
- <%= for (k, messages) in flash { %> - <%= for (msg) in messages { %> - - <% } %> - <% } %> -
-
diff --git a/genny/newapp/web/templates/templates/application.plush.html.tmpl b/genny/newapp/web/templates/templates/application.plush.html.tmpl deleted file mode 100644 index de0bef953..000000000 --- a/genny/newapp/web/templates/templates/application.plush.html.tmpl +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Buffalo - {{ .opts.App.Name.Titleize }} - {{- if not .opts.App.WithWebpack }} - <%= stylesheetTag("buffalo.css") %> - {{- end }} - <%= stylesheetTag("application.css") %> - - - "> - - - -
- <%= partial("flash.html") %> - <%= yield %> -
- - <%= javascriptTag("application.js") %> - - diff --git a/genny/newapp/web/templates/templates/index.plush.html.tmpl b/genny/newapp/web/templates/templates/index.plush.html.tmpl deleted file mode 100644 index 9f429382f..000000000 --- a/genny/newapp/web/templates/templates/index.plush.html.tmpl +++ /dev/null @@ -1,64 +0,0 @@ -
-
-
- -
-

<%= t("welcome_greeting") %>

-

- https://github.com/gobuffalo/buffalo -

-

- Documentation -

-
-
-
- -
- -
-
-
-
-

Defined Routes

-
-
-
- - - - - - - - - - - - <%= for (r) in routes { %> - - - - - - - <% } %> - - -
METHODPATHNAMEHANDLER
- <%= r.Method %> - - <%= if (r.Method != "GET" || r.Path ~= "{") { - return r.Path - } else { - return linkTo(r.Path, {body: r.Path}) - } %> - - <%= r.PathName %> - <%= r.HandlerName %>
-
-
-
-
Powered by gobuffalo.io
diff --git a/genny/newapp/web/web-packr.go b/genny/newapp/web/web-packr.go deleted file mode 100644 index 09a1cbd7b..000000000 --- a/genny/newapp/web/web-packr.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !skippackr -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr clean" command to clean up this, -// and any other packr generated files. -package web - -import _ "github.com/gobuffalo/buffalo/packrd" diff --git a/genny/newapp/web/web.go b/genny/newapp/web/web.go deleted file mode 100644 index aba3336cf..000000000 --- a/genny/newapp/web/web.go +++ /dev/null @@ -1,58 +0,0 @@ -package web - -import ( - "html/template" - - "github.com/gobuffalo/buffalo/genny/assets/standard" - "github.com/gobuffalo/buffalo/genny/assets/webpack" - "github.com/gobuffalo/buffalo/genny/newapp/core" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" - "github.com/gobuffalo/packr/v2" -) - -// New generator for creating a Buffalo Web application -func New(opts *Options) (*genny.Group, error) { - if err := opts.Validate(); err != nil { - return nil, err - } - - gg, err := core.New(opts.Options) - if err != nil { - return gg, err - } - - g := genny.New() - g.Transformer(genny.Dot()) - data := map[string]interface{}{ - "opts": opts, - } - - helpers := template.FuncMap{} - - t := gogen.TemplateTransformer(data, helpers) - g.Transformer(t) - g.Box(packr.New("github.com/gobuffalo/buffalo:genny/newapp/web", "../web/templates")) - - gg.Add(g) - - if opts.Webpack != nil { - // add the webpack generator - g, err = webpack.New(opts.Webpack) - if err != nil { - return gg, err - } - gg.Add(g) - } - - if opts.Standard != nil { - // add the standard generator - g, err = standard.New(opts.Standard) - if err != nil { - return gg, err - } - gg.Add(g) - } - - return gg, nil -} diff --git a/genny/newapp/web/web_test.go b/genny/newapp/web/web_test.go deleted file mode 100644 index ea38a98a1..000000000 --- a/genny/newapp/web/web_test.go +++ /dev/null @@ -1,95 +0,0 @@ -package web - -import ( - "strings" - "testing" - - "github.com/gobuffalo/buffalo/genny/newapp/core" - "github.com/gobuffalo/envy" - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/meta" - "github.com/stretchr/testify/require" -) - -func init() { - // normalize command output - envy.Set("GO_BIN", "go") -} - -func Test_New(t *testing.T) { - r := require.New(t) - - app := meta.Named("web", ".") - (&app).PackageRoot("web") - app.WithModules = true - envy.Set(envy.GO111MODULE, "on") - - gg, err := New(&Options{ - Options: &core.Options{ - App: app, - }, - }) - r.NoError(err) - - run := gentest.NewRunner() - run.WithGroup(gg) - - r.NoError(run.Run()) - - res := run.Results() - - cmds := []string{ - "go mod init web", - } - r.Len(res.Commands, len(cmds)) - - for i, c := range res.Commands { - r.Equal(cmds[i], strings.Join(c.Args, " ")) - } - - for _, e := range commonExpected { - _, err = res.Find(e) - r.NoError(err) - } - - f, err := res.Find("actions/render.go") - r.NoError(err) - - body := f.String() - r.Contains(body, `TemplatesBox: packr.New("app:templates", "../templates"),`) - r.NotContains(body, `DefaultContentType: "application/json",`) - unexpected := []string{ - "Dockerfile", - "database.yml", - "models/models.go", - "go.mod", - ".buffalo.dev.yml", - "assets/css/application.scss.css", - "public/assets/application.js", - } - - for _, u := range unexpected { - _, err = res.Find(u) - r.Error(err) - } -} - -var commonExpected = []string{ - "main.go", - "actions/app.go", - "actions/actions_test.go", - "actions/render.go", - "actions/home.go", - "actions/home_test.go", - "fixtures/sample.toml", - "grifts/init.go", - ".codeclimate.yml", - ".env", - "inflections.json", - "README.md", - "locales/all.en-us.yaml", - "public/robots.txt", - "templates/_flash.plush.html", - "templates/application.plush.html", - "templates/index.plush.html", -} diff --git a/genny/plugins/install/install.go b/genny/plugins/install/install.go deleted file mode 100644 index 238f76a4a..000000000 --- a/genny/plugins/install/install.go +++ /dev/null @@ -1,88 +0,0 @@ -package install - -import ( - "fmt" - "go/build" - "os" - "os/exec" - "path/filepath" - - "github.com/gobuffalo/buffalo/genny/add" - "github.com/gobuffalo/buffalo/plugins/plugdeps" - "github.com/gobuffalo/genny/v2" -) - -// New installs plugins and then added them to the config file -func New(opts *Options) (*genny.Group, error) { - gg := &genny.Group{} - - if err := opts.Validate(); err != nil { - return gg, err - } - - aopts := &add.Options{ - App: opts.App, - Plugins: opts.Plugins, - } - - if err := aopts.Validate(); err != nil { - return gg, err - } - - g := genny.New() - proot := filepath.Join(opts.App.Root, "plugins") - for _, p := range opts.Plugins { - if len(p.GoGet) == 0 { - continue - } - - var args []string - if len(p.Tags) > 0 { - args = append(args, "-tags", p.Tags.String()) - } - bargs := []string{"get"} - bargs = append(bargs, args...) - bargs = append(bargs, p.GoGet) - g.Command(exec.Command("go", bargs...)) - if opts.Vendor { - g.RunFn(pRun(proot, p)) - } - } - gg.Add(g) - - g, err := add.New(aopts) - if err != nil { - return gg, err - } - - gg.Add(g) - - return gg, nil -} - -func pRun(proot string, p plugdeps.Plugin) genny.RunFn { - return func(r *genny.Runner) error { - c := build.Default - if c.GOOS == "windows" { - return fmt.Errorf("vendoring of plugins is currently not supported on windows. PRs are VERY welcome! :)") - } - - bp := filepath.Join(c.GOPATH, "bin", p.Binary) - sf, err := r.FindFile(bp) - if err != nil { - return err - } - - pbp := filepath.Join(proot, p.Binary) - r.Disk.Delete(pbp) - - df := genny.NewFile(pbp, sf) - if err := r.File(df); err != nil { - return err - } - - os.Chmod(pbp, 0555) - - return nil - } -} diff --git a/genny/plugins/install/install_test.go b/genny/plugins/install/install_test.go deleted file mode 100644 index 8c177fbbf..000000000 --- a/genny/plugins/install/install_test.go +++ /dev/null @@ -1,58 +0,0 @@ -package install - -import ( - "bytes" - "go/build" - "io" - "path/filepath" - "strings" - "testing" - - "github.com/gobuffalo/buffalo/plugins/plugdeps" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/meta" - "github.com/stretchr/testify/require" -) - -func Test_New(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{ - App: meta.New("."), - Plugins: []plugdeps.Plugin{ - {Binary: "buffalo-pop", GoGet: "github.com/gobuffalo/buffalo-pop/v2", Tags: meta.BuildTags{"sqlite"}}, - {Binary: "buffalo-hello.rb", Local: "./plugins/buffalo-hello.rb"}, - }, - }) - r.NoError(err) - - run := gentest.NewRunner() - c := build.Default - run.Disk.Add(genny.NewFile(filepath.Join(c.GOPATH, "bin", "buffalo-pop"), &bytes.Buffer{})) - run.FileFn = func(f genny.File) (genny.File, error) { - bb := &bytes.Buffer{} - if _, err := io.Copy(bb, f); err != nil { - return f, err - } - return genny.NewFile(f.Name(), bb), nil - } - - run.WithGroup(g) - - r.NoError(run.Run()) - - res := run.Results() - - ecmds := []string{"go get -tags sqlite github.com/gobuffalo/buffalo-pop/v2"} - r.Len(res.Commands, len(ecmds)) - for i, c := range res.Commands { - r.Equal(ecmds[i], strings.Join(c.Args, " ")) - } - - efiles := []string{"bin/buffalo-pop", "config/buffalo-plugins.toml"} - r.Len(res.Files, len(efiles)) - for i, f := range res.Files { - r.True(strings.HasSuffix(f.Name(), efiles[i])) - } -} diff --git a/genny/plugins/install/options.go b/genny/plugins/install/options.go deleted file mode 100644 index 4b6bd4b5d..000000000 --- a/genny/plugins/install/options.go +++ /dev/null @@ -1,43 +0,0 @@ -package install - -import ( - "os" - - "github.com/gobuffalo/buffalo/internal/takeon/github.com/markbates/errx" - "github.com/gobuffalo/buffalo/plugins/plugdeps" - "github.com/gobuffalo/meta" -) - -// Options container for passing needed info for -// installing plugins and adding them to the config file. -type Options struct { - App meta.App - Plugins []plugdeps.Plugin - Tags meta.BuildTags - Vendor bool -} - -// Validate that options are usuable -func (opts *Options) Validate() error { - if opts.App.IsZero() { - pwd, err := os.Getwd() - if err != nil { - return err - } - opts.App = meta.New(pwd) - } - if len(opts.Plugins) == 0 { - plugs, err := plugdeps.List(opts.App) - if err != nil && (errx.Unwrap(err) != plugdeps.ErrMissingConfig) { - return err - } - opts.Plugins = plugs.List() - } - - for i, p := range opts.Plugins { - p.Tags = opts.App.BuildTags("", append(opts.Tags, p.Tags...)...) - opts.Plugins[i] = p - } - - return nil -} diff --git a/genny/plugins/install/options_test.go b/genny/plugins/install/options_test.go deleted file mode 100644 index e94ed1407..000000000 --- a/genny/plugins/install/options_test.go +++ /dev/null @@ -1,15 +0,0 @@ -package install - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func Test_Options_Validate(t *testing.T) { - r := require.New(t) - - opts := &Options{} - err := opts.Validate() - r.NoError(err) -} diff --git a/genny/refresh/options.go b/genny/refresh/options.go deleted file mode 100644 index a3ec0282b..000000000 --- a/genny/refresh/options.go +++ /dev/null @@ -1,16 +0,0 @@ -package refresh - -import "github.com/gobuffalo/meta" - -// Options for creating a new refresh config -type Options struct { - App meta.App -} - -// Validate options -func (opts *Options) Validate() error { - if opts.App.IsZero() { - opts.App = meta.New(".") - } - return nil -} diff --git a/genny/refresh/refresh-packr.go b/genny/refresh/refresh-packr.go deleted file mode 100644 index 2084ab042..000000000 --- a/genny/refresh/refresh-packr.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !skippackr -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr clean" command to clean up this, -// and any other packr generated files. -package refresh - -import _ "github.com/gobuffalo/buffalo/packrd" diff --git a/genny/refresh/refresh.go b/genny/refresh/refresh.go deleted file mode 100644 index 7142cfb40..000000000 --- a/genny/refresh/refresh.go +++ /dev/null @@ -1,23 +0,0 @@ -package refresh - -import ( - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/plushgen" - "github.com/gobuffalo/packr/v2" - "github.com/gobuffalo/plush/v4" -) - -// New generator to generate refresh templates -func New(opts *Options) (*genny.Generator, error) { - g := genny.New() - if err := opts.Validate(); err != nil { - return g, err - } - g.Box(packr.New("buffalo:genny:refresh", "../refresh/templates")) - - ctx := plush.NewContext() - ctx.Set("app", opts.App) - g.Transformer(plushgen.Transformer(ctx)) - g.Transformer(genny.Dot()) - return g, nil -} diff --git a/genny/refresh/refresh_test.go b/genny/refresh/refresh_test.go deleted file mode 100644 index 25d4ab337..000000000 --- a/genny/refresh/refresh_test.go +++ /dev/null @@ -1,32 +0,0 @@ -package refresh - -import ( - "context" - "testing" - - "github.com/gobuffalo/flect/name" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/meta" - "github.com/stretchr/testify/require" -) - -func Test_New(t *testing.T) { - r := require.New(t) - - app := meta.New(".") - app.Name = name.New("foo") - g, err := New(&Options{app}) - r.NoError(err) - - run := genny.DryRunner(context.Background()) - run.With(g) - - r.NoError(run.Run()) - - res := run.Results() - r.Len(res.Commands, 0) - r.Len(res.Files, 1) - - f := res.Files[0] - r.Contains(f.String(), "binary_name: foo-build") -} diff --git a/genny/refresh/templates/-dot-buffalo.dev.yml.plush b/genny/refresh/templates/-dot-buffalo.dev.yml.plush deleted file mode 100644 index 24c446b39..000000000 --- a/genny/refresh/templates/-dot-buffalo.dev.yml.plush +++ /dev/null @@ -1,21 +0,0 @@ -app_root: . -ignored_folders: -- vendor -- log -- logs -- assets -- public -- grifts -- tmp -- bin -- node_modules -- .sass-cache -included_extensions: -- .go -- .env -build_path: tmp -build_delay: 200ns -binary_name: <%= app.Name %>-build -command_flags: [] -enable_colors: true -log_name: buffalo diff --git a/genny/resource/_fixtures/coke/actions/app.go.tmpl b/genny/resource/_fixtures/coke/actions/app.go.tmpl deleted file mode 100644 index 3d002accf..000000000 --- a/genny/resource/_fixtures/coke/actions/app.go.tmpl +++ /dev/null @@ -1,10 +0,0 @@ -package actions - -import "github.com/gobuffalo/buffalo" - -func App() *buffalo.App { - if app == nil { - app.ServeFiles("/", assetsBox) // serve files from the public directory - } - return app -} diff --git a/genny/resource/_fixtures/default/actions/app.go.tmpl b/genny/resource/_fixtures/default/actions/app.go.tmpl deleted file mode 100644 index db7b667f2..000000000 --- a/genny/resource/_fixtures/default/actions/app.go.tmpl +++ /dev/null @@ -1,11 +0,0 @@ -package actions - -import "github.com/gobuffalo/buffalo" - -func App() *buffalo.App { - if app == nil { - app.Resource("/widgets", WidgetsResource{}) - app.ServeFiles("/", assetsBox) // serve files from the public directory - } - return app -} diff --git a/genny/resource/_fixtures/default/actions/widgets.go.tmpl b/genny/resource/_fixtures/default/actions/widgets.go.tmpl deleted file mode 100644 index 39da1a486..000000000 --- a/genny/resource/_fixtures/default/actions/widgets.go.tmpl +++ /dev/null @@ -1,260 +0,0 @@ -package actions - -import ( - - "fmt" - "net/http" - "github.com/gobuffalo/buffalo" - "github.com/gobuffalo/pop/v5" - "github.com/gobuffalo/x/responder" - "github.com/markbates/coke/models" -) - -// This file is generated by Buffalo. It offers a basic structure for -// adding, editing and deleting a page. If your model is more -// complex or you need more than the basic implementation you need to -// edit this file. - -// Following naming logic is implemented in Buffalo: -// Model: Singular (Widget) -// DB Table: Plural (widgets) -// Resource: Plural (Widgets) -// Path: Plural (/widgets) -// View Template Folder: Plural (/templates/widgets/) - -// WidgetsResource is the resource for the Widget model -type WidgetsResource struct{ - buffalo.Resource -} - -// List gets all Widgets. This function is mapped to the path -// GET /widgets -func (v WidgetsResource) List(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - widgets := &models.Widgets{} - - // Paginate results. Params "page" and "per_page" control pagination. - // Default values are "page=1" and "per_page=20". - q := tx.PaginateFromParams(c.Params()) - - // Retrieve all Widgets from the DB - if err := q.All(widgets); err != nil { - return err - } - - return responder.Wants("html", func (c buffalo.Context) error { - // Add the paginator to the context so it can be used in the template. - c.Set("pagination", q.Paginator) - - c.Set("widgets", widgets) - return c.Render(http.StatusOK, r.HTML("/widgets/index.plush.html")) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(200, r.JSON(widgets)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(200, r.XML(widgets)) - }).Respond(c) -} - -// Show gets the data for one Widget. This function is mapped to -// the path GET /widgets/{widget_id} -func (v WidgetsResource) Show(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Allocate an empty Widget - widget := &models.Widget{} - - // To find the Widget the parameter widget_id is used. - if err := tx.Find(widget, c.Param("widget_id")); err != nil { - return c.Error(http.StatusNotFound, err) - } - - return responder.Wants("html", func (c buffalo.Context) error { - c.Set("widget", widget) - - return c.Render(http.StatusOK, r.HTML("/widgets/show.plush.html")) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(200, r.JSON(widget)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(200, r.XML(widget)) - }).Respond(c) -} - -// New renders the form for creating a new Widget. -// This function is mapped to the path GET /widgets/new -func (v WidgetsResource) New(c buffalo.Context) error { - c.Set("widget", &models.Widget{}) - - return c.Render(http.StatusOK, r.HTML("/widgets/new.plush.html")) -} - -// Create adds a Widget to the DB. This function is mapped to the -// path POST /widgets -func (v WidgetsResource) Create(c buffalo.Context) error { - // Allocate an empty Widget - widget := &models.Widget{} - - // Bind widget to the html form elements - if err := c.Bind(widget); err != nil { - return err - } - - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Validate the data from the html form - verrs, err := tx.ValidateAndCreate(widget) - if err != nil { - return err - } - - if verrs.HasAny() { - return responder.Wants("html", func (c buffalo.Context) error { - // Make the errors available inside the html template - c.Set("errors", verrs) - - // Render again the new.html template that the user can - // correct the input. - c.Set("widget", widget) - - return c.Render(http.StatusUnprocessableEntity, r.HTML("/widgets/new.plush.html")) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusUnprocessableEntity, r.JSON(verrs)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusUnprocessableEntity, r.XML(verrs)) - }).Respond(c) - } - - return responder.Wants("html", func (c buffalo.Context) error { - // If there are no errors set a success message - c.Flash().Add("success", T.Translate(c, "widget.created.success")) - - // and redirect to the show page - return c.Redirect(http.StatusSeeOther, "/widgets/%v", widget.ID) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusCreated, r.JSON(widget)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusCreated, r.XML(widget)) - }).Respond(c) -} - -// Edit renders a edit form for a Widget. This function is -// mapped to the path GET /widgets/{widget_id}/edit -func (v WidgetsResource) Edit(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Allocate an empty Widget - widget := &models.Widget{} - - if err := tx.Find(widget, c.Param("widget_id")); err != nil { - return c.Error(http.StatusNotFound, err) - } - - c.Set("widget", widget) - return c.Render(http.StatusOK, r.HTML("/widgets/edit.plush.html")) -} - -// Update changes a Widget in the DB. This function is mapped to -// the path PUT /widgets/{widget_id} -func (v WidgetsResource) Update(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Allocate an empty Widget - widget := &models.Widget{} - - if err := tx.Find(widget, c.Param("widget_id")); err != nil { - return c.Error(http.StatusNotFound, err) - } - - // Bind Widget to the html form elements - if err := c.Bind(widget); err != nil { - return err - } - - verrs, err := tx.ValidateAndUpdate(widget) - if err != nil { - return err - } - - if verrs.HasAny() { - return responder.Wants("html", func (c buffalo.Context) error { - // Make the errors available inside the html template - c.Set("errors", verrs) - - // Render again the edit.html template that the user can - // correct the input. - c.Set("widget", widget) - - return c.Render(http.StatusUnprocessableEntity, r.HTML("/widgets/edit.plush.html")) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusUnprocessableEntity, r.JSON(verrs)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusUnprocessableEntity, r.XML(verrs)) - }).Respond(c) - } - - return responder.Wants("html", func (c buffalo.Context) error { - // If there are no errors set a success message - c.Flash().Add("success", T.Translate(c, "widget.updated.success")) - - // and redirect to the show page - return c.Redirect(http.StatusSeeOther, "/widgets/%v", widget.ID) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusOK, r.JSON(widget)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusOK, r.XML(widget)) - }).Respond(c) -} - -// Destroy deletes a Widget from the DB. This function is mapped -// to the path DELETE /widgets/{widget_id} -func (v WidgetsResource) Destroy(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Allocate an empty Widget - widget := &models.Widget{} - - // To find the Widget the parameter widget_id is used. - if err := tx.Find(widget, c.Param("widget_id")); err != nil { - return c.Error(http.StatusNotFound, err) - } - - if err := tx.Destroy(widget); err != nil { - return err - } - - return responder.Wants("html", func (c buffalo.Context) error { - // If there are no errors set a flash message - c.Flash().Add("success", T.Translate(c, "widget.destroyed.success")) - - // Redirect to the index page - return c.Redirect(http.StatusSeeOther, "/widgets") - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusOK, r.JSON(widget)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusOK, r.XML(widget)) - }).Respond(c) -} diff --git a/genny/resource/_fixtures/default/actions/widgets_test.go.tmpl b/genny/resource/_fixtures/default/actions/widgets_test.go.tmpl deleted file mode 100644 index 1948a9eb4..000000000 --- a/genny/resource/_fixtures/default/actions/widgets_test.go.tmpl +++ /dev/null @@ -1,29 +0,0 @@ -package actions - -func (as *ActionSuite) Test_WidgetsResource_List() { - as.Fail("Not Implemented!") -} - -func (as *ActionSuite) Test_WidgetsResource_Show() { - as.Fail("Not Implemented!") -} - -func (as *ActionSuite) Test_WidgetsResource_Create() { - as.Fail("Not Implemented!") -} - -func (as *ActionSuite) Test_WidgetsResource_Update() { - as.Fail("Not Implemented!") -} - -func (as *ActionSuite) Test_WidgetsResource_Destroy() { - as.Fail("Not Implemented!") -} - -func (as *ActionSuite) Test_WidgetsResource_New() { - as.Fail("Not Implemented!") -} - -func (as *ActionSuite) Test_WidgetsResource_Edit() { - as.Fail("Not Implemented!") -} diff --git a/genny/resource/_fixtures/default/locales/widgets.en-us.yaml b/genny/resource/_fixtures/default/locales/widgets.en-us.yaml deleted file mode 100644 index 49f5a96bf..000000000 --- a/genny/resource/_fixtures/default/locales/widgets.en-us.yaml +++ /dev/null @@ -1,6 +0,0 @@ -- id: "widget.created.success" - translation: "Widget was successfully created." -- id: "widget.updated.success" - translation: "Widget was successfully updated." -- id: "widget.destroyed.success" - translation: "Widget was successfully destroyed." diff --git a/genny/resource/_fixtures/default/templates/widgets/_form.plush.html b/genny/resource/_fixtures/default/templates/widgets/_form.plush.html deleted file mode 100644 index 61bcef1ff..000000000 --- a/genny/resource/_fixtures/default/templates/widgets/_form.plush.html +++ /dev/null @@ -1,3 +0,0 @@ -<%= f.InputTag("Name") %> -<%= f.TextAreaTag("Desc", {rows: 10}) %> - diff --git a/genny/resource/_fixtures/default/templates/widgets/edit.plush.html b/genny/resource/_fixtures/default/templates/widgets/edit.plush.html deleted file mode 100644 index 9a9cd5863..000000000 --- a/genny/resource/_fixtures/default/templates/widgets/edit.plush.html +++ /dev/null @@ -1,8 +0,0 @@ -
-

Edit Widget

-
- -<%= formFor(widget, {action: widgetPath({ widget_id: widget.ID }), method: "PUT"}) { %> - <%= partial("widgets/form.html") %> - <%= linkTo(widgetPath({ widget_id: widget.ID }), {class: "btn btn-warning", "data-confirm": "Are you sure?", body: "Cancel"}) %> -<% } %> diff --git a/genny/resource/_fixtures/default/templates/widgets/index.plush.html b/genny/resource/_fixtures/default/templates/widgets/index.plush.html deleted file mode 100644 index 5d328e62e..000000000 --- a/genny/resource/_fixtures/default/templates/widgets/index.plush.html +++ /dev/null @@ -1,33 +0,0 @@ -
-

Widgets

-
- <%= linkTo(newWidgetsPath(), {class: "btn btn-primary"}) { %> - Create New Widget - <% } %> -
-
- - - - - - - - <%= for (widget) in widgets { %> - - - - - <% } %> - -
Name 
<%= widget.Name %> -
- <%= linkTo(widgetPath({ widget_id: widget.ID }), {class: "btn btn-info", body: "View"}) %> - <%= linkTo(editWidgetPath({ widget_id: widget.ID }), {class: "btn btn-warning", body: "Edit"}) %> - <%= linkTo(widgetPath({ widget_id: widget.ID }), {class: "btn btn-danger", "data-method": "DELETE", "data-confirm": "Are you sure?", body: "Destroy"}) %> -
-
- -
- <%= paginator(pagination) %> -
diff --git a/genny/resource/_fixtures/default/templates/widgets/new.plush.html b/genny/resource/_fixtures/default/templates/widgets/new.plush.html deleted file mode 100644 index 743430c1f..000000000 --- a/genny/resource/_fixtures/default/templates/widgets/new.plush.html +++ /dev/null @@ -1,8 +0,0 @@ -
-

New Widget

-
- -<%= formFor(widget, {action: widgetsPath(), method: "POST"}) { %> - <%= partial("widgets/form.html") %> - <%= linkTo(widgetsPath(), {class: "btn btn-warning", "data-confirm": "Are you sure?", body: "Cancel"}) %> -<% } %> diff --git a/genny/resource/_fixtures/default/templates/widgets/show.plush.html b/genny/resource/_fixtures/default/templates/widgets/show.plush.html deleted file mode 100644 index 434b2f404..000000000 --- a/genny/resource/_fixtures/default/templates/widgets/show.plush.html +++ /dev/null @@ -1,22 +0,0 @@ -
-

Widget Details

- -
- <%= linkTo(widgetsPath(), {class: "btn btn-info"}) { %> - Back to all Widgets - <% } %> - <%= linkTo(editWidgetPath({ widget_id: widget.ID }), {class: "btn btn-warning", body: "Edit"}) %> - <%= linkTo(widgetPath({ widget_id: widget.ID }), {class: "btn btn-danger", "data-method": "DELETE", "data-confirm": "Are you sure?", body: "Destroy"}) %> -
-
- - diff --git a/genny/resource/_fixtures/nested/actions/admin_widgets.go.tmpl b/genny/resource/_fixtures/nested/actions/admin_widgets.go.tmpl deleted file mode 100644 index 9dd73cb40..000000000 --- a/genny/resource/_fixtures/nested/actions/admin_widgets.go.tmpl +++ /dev/null @@ -1,260 +0,0 @@ -package actions - -import ( - - "fmt" - "net/http" - "github.com/gobuffalo/buffalo" - "github.com/gobuffalo/pop/v5" - "github.com/gobuffalo/x/responder" - "github.com/markbates/coke/models" -) - -// This file is generated by Buffalo. It offers a basic structure for -// adding, editing and deleting a page. If your model is more -// complex or you need more than the basic implementation you need to -// edit this file. - -// Following naming logic is implemented in Buffalo: -// Model: Singular (Widget) -// DB Table: Plural (widgets) -// Resource: Plural (AdminWidgets) -// Path: Plural (/admin/widgets) -// View Template Folder: Plural (/templates/admin/widgets/) - -// AdminWidgetsResource is the resource for the Widget model -type AdminWidgetsResource struct{ - buffalo.Resource -} - -// List gets all Widgets. This function is mapped to the path -// GET /admin/widgets -func (v AdminWidgetsResource) List(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - widgets := &models.Widgets{} - - // Paginate results. Params "page" and "per_page" control pagination. - // Default values are "page=1" and "per_page=20". - q := tx.PaginateFromParams(c.Params()) - - // Retrieve all Widgets from the DB - if err := q.All(widgets); err != nil { - return err - } - - return responder.Wants("html", func (c buffalo.Context) error { - // Add the paginator to the context so it can be used in the template. - c.Set("pagination", q.Paginator) - - c.Set("widgets", widgets) - return c.Render(http.StatusOK, r.HTML("/admin/widgets/index.plush.html")) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(200, r.JSON(widgets)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(200, r.XML(widgets)) - }).Respond(c) -} - -// Show gets the data for one Widget. This function is mapped to -// the path GET /admin/widgets/{admin_widget_id} -func (v AdminWidgetsResource) Show(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Allocate an empty Widget - widget := &models.Widget{} - - // To find the Widget the parameter admin_widget_id is used. - if err := tx.Find(widget, c.Param("admin_widget_id")); err != nil { - return c.Error(http.StatusNotFound, err) - } - - return responder.Wants("html", func (c buffalo.Context) error { - c.Set("widget", widget) - - return c.Render(http.StatusOK, r.HTML("/admin/widgets/show.plush.html")) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(200, r.JSON(widget)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(200, r.XML(widget)) - }).Respond(c) -} - -// New renders the form for creating a new Widget. -// This function is mapped to the path GET /admin/widgets/new -func (v AdminWidgetsResource) New(c buffalo.Context) error { - c.Set("widget", &models.Widget{}) - - return c.Render(http.StatusOK, r.HTML("/admin/widgets/new.plush.html")) -} - -// Create adds a Widget to the DB. This function is mapped to the -// path POST /admin/widgets -func (v AdminWidgetsResource) Create(c buffalo.Context) error { - // Allocate an empty Widget - widget := &models.Widget{} - - // Bind widget to the html form elements - if err := c.Bind(widget); err != nil { - return err - } - - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Validate the data from the html form - verrs, err := tx.ValidateAndCreate(widget) - if err != nil { - return err - } - - if verrs.HasAny() { - return responder.Wants("html", func (c buffalo.Context) error { - // Make the errors available inside the html template - c.Set("errors", verrs) - - // Render again the new.html template that the user can - // correct the input. - c.Set("widget", widget) - - return c.Render(http.StatusUnprocessableEntity, r.HTML("/admin/widgets/new.plush.html")) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusUnprocessableEntity, r.JSON(verrs)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusUnprocessableEntity, r.XML(verrs)) - }).Respond(c) - } - - return responder.Wants("html", func (c buffalo.Context) error { - // If there are no errors set a success message - c.Flash().Add("success", T.Translate(c, "widget.created.success")) - - // and redirect to the show page - return c.Redirect(http.StatusSeeOther, "/admin/widgets/%v", widget.ID) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusCreated, r.JSON(widget)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusCreated, r.XML(widget)) - }).Respond(c) -} - -// Edit renders a edit form for a Widget. This function is -// mapped to the path GET /admin/widgets/{admin_widget_id}/edit -func (v AdminWidgetsResource) Edit(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Allocate an empty Widget - widget := &models.Widget{} - - if err := tx.Find(widget, c.Param("admin_widget_id")); err != nil { - return c.Error(http.StatusNotFound, err) - } - - c.Set("widget", widget) - return c.Render(http.StatusOK, r.HTML("/admin/widgets/edit.plush.html")) -} - -// Update changes a Widget in the DB. This function is mapped to -// the path PUT /admin/widgets/{admin_widget_id} -func (v AdminWidgetsResource) Update(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Allocate an empty Widget - widget := &models.Widget{} - - if err := tx.Find(widget, c.Param("admin_widget_id")); err != nil { - return c.Error(http.StatusNotFound, err) - } - - // Bind Widget to the html form elements - if err := c.Bind(widget); err != nil { - return err - } - - verrs, err := tx.ValidateAndUpdate(widget) - if err != nil { - return err - } - - if verrs.HasAny() { - return responder.Wants("html", func (c buffalo.Context) error { - // Make the errors available inside the html template - c.Set("errors", verrs) - - // Render again the edit.html template that the user can - // correct the input. - c.Set("widget", widget) - - return c.Render(http.StatusUnprocessableEntity, r.HTML("/admin/widgets/edit.plush.html")) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusUnprocessableEntity, r.JSON(verrs)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusUnprocessableEntity, r.XML(verrs)) - }).Respond(c) - } - - return responder.Wants("html", func (c buffalo.Context) error { - // If there are no errors set a success message - c.Flash().Add("success", T.Translate(c, "widget.updated.success")) - - // and redirect to the show page - return c.Redirect(http.StatusSeeOther, "/admin/widgets/%v", widget.ID) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusOK, r.JSON(widget)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusOK, r.XML(widget)) - }).Respond(c) -} - -// Destroy deletes a Widget from the DB. This function is mapped -// to the path DELETE /admin/widgets/{admin_widget_id} -func (v AdminWidgetsResource) Destroy(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Allocate an empty Widget - widget := &models.Widget{} - - // To find the Widget the parameter admin_widget_id is used. - if err := tx.Find(widget, c.Param("admin_widget_id")); err != nil { - return c.Error(http.StatusNotFound, err) - } - - if err := tx.Destroy(widget); err != nil { - return err - } - - return responder.Wants("html", func (c buffalo.Context) error { - // If there are no errors set a flash message - c.Flash().Add("success", T.Translate(c, "widget.destroyed.success")) - - // Redirect to the index page - return c.Redirect(http.StatusSeeOther, "/admin/widgets") - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusOK, r.JSON(widget)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusOK, r.XML(widget)) - }).Respond(c) -} diff --git a/genny/resource/_fixtures/nested/actions/admin_widgets_test.go.tmpl b/genny/resource/_fixtures/nested/actions/admin_widgets_test.go.tmpl deleted file mode 100644 index fe4f33caa..000000000 --- a/genny/resource/_fixtures/nested/actions/admin_widgets_test.go.tmpl +++ /dev/null @@ -1,29 +0,0 @@ -package actions - -func (as *ActionSuite) Test_AdminWidgetsResource_List() { - as.Fail("Not Implemented!") -} - -func (as *ActionSuite) Test_AdminWidgetsResource_Show() { - as.Fail("Not Implemented!") -} - -func (as *ActionSuite) Test_AdminWidgetsResource_Create() { - as.Fail("Not Implemented!") -} - -func (as *ActionSuite) Test_AdminWidgetsResource_Update() { - as.Fail("Not Implemented!") -} - -func (as *ActionSuite) Test_AdminWidgetsResource_Destroy() { - as.Fail("Not Implemented!") -} - -func (as *ActionSuite) Test_AdminWidgetsResource_New() { - as.Fail("Not Implemented!") -} - -func (as *ActionSuite) Test_AdminWidgetsResource_Edit() { - as.Fail("Not Implemented!") -} diff --git a/genny/resource/_fixtures/nested/actions/app.go.tmpl b/genny/resource/_fixtures/nested/actions/app.go.tmpl deleted file mode 100644 index 39e7ba6be..000000000 --- a/genny/resource/_fixtures/nested/actions/app.go.tmpl +++ /dev/null @@ -1,11 +0,0 @@ -package actions - -import "github.com/gobuffalo/buffalo" - -func App() *buffalo.App { - if app == nil { - app.Resource("/admin/widgets", AdminWidgetsResource{}) - app.ServeFiles("/", assetsBox) // serve files from the public directory - } - return app -} diff --git a/genny/resource/_fixtures/nested/locales/admin/widgets.en-us.yaml b/genny/resource/_fixtures/nested/locales/admin/widgets.en-us.yaml deleted file mode 100644 index 49f5a96bf..000000000 --- a/genny/resource/_fixtures/nested/locales/admin/widgets.en-us.yaml +++ /dev/null @@ -1,6 +0,0 @@ -- id: "widget.created.success" - translation: "Widget was successfully created." -- id: "widget.updated.success" - translation: "Widget was successfully updated." -- id: "widget.destroyed.success" - translation: "Widget was successfully destroyed." diff --git a/genny/resource/_fixtures/nested/templates/admin/widgets/_form.plush.html b/genny/resource/_fixtures/nested/templates/admin/widgets/_form.plush.html deleted file mode 100644 index 61bcef1ff..000000000 --- a/genny/resource/_fixtures/nested/templates/admin/widgets/_form.plush.html +++ /dev/null @@ -1,3 +0,0 @@ -<%= f.InputTag("Name") %> -<%= f.TextAreaTag("Desc", {rows: 10}) %> - diff --git a/genny/resource/_fixtures/nested/templates/admin/widgets/edit.plush.html b/genny/resource/_fixtures/nested/templates/admin/widgets/edit.plush.html deleted file mode 100644 index 40d76b106..000000000 --- a/genny/resource/_fixtures/nested/templates/admin/widgets/edit.plush.html +++ /dev/null @@ -1,8 +0,0 @@ -
-

Edit Widget

-
- -<%= formFor(widget, {action: adminWidgetPath({ admin_widget_id: widget.ID }), method: "PUT"}) { %> - <%= partial("admin/widgets/form.html") %> - <%= linkTo(adminWidgetPath({ admin_widget_id: widget.ID }), {class: "btn btn-warning", "data-confirm": "Are you sure?", body: "Cancel"}) %> -<% } %> diff --git a/genny/resource/_fixtures/nested/templates/admin/widgets/index.plush.html b/genny/resource/_fixtures/nested/templates/admin/widgets/index.plush.html deleted file mode 100644 index f57f8302a..000000000 --- a/genny/resource/_fixtures/nested/templates/admin/widgets/index.plush.html +++ /dev/null @@ -1,33 +0,0 @@ -
-

Widgets

-
- <%= linkTo(newAdminWidgetsPath(), {class: "btn btn-primary"}) { %> - Create New Widget - <% } %> -
-
- - - - - - - - <%= for (widget) in widgets { %> - - - - - <% } %> - -
Name 
<%= widget.Name %> -
- <%= linkTo(adminWidgetPath({ admin_widget_id: widget.ID }), {class: "btn btn-info", body: "View"}) %> - <%= linkTo(editAdminWidgetPath({ admin_widget_id: widget.ID }), {class: "btn btn-warning", body: "Edit"}) %> - <%= linkTo(adminWidgetPath({ admin_widget_id: widget.ID }), {class: "btn btn-danger", "data-method": "DELETE", "data-confirm": "Are you sure?", body: "Destroy"}) %> -
-
- -
- <%= paginator(pagination) %> -
diff --git a/genny/resource/_fixtures/nested/templates/admin/widgets/new.plush.html b/genny/resource/_fixtures/nested/templates/admin/widgets/new.plush.html deleted file mode 100644 index 55fbbc73a..000000000 --- a/genny/resource/_fixtures/nested/templates/admin/widgets/new.plush.html +++ /dev/null @@ -1,8 +0,0 @@ -
-

New Widget

-
- -<%= formFor(widget, {action: adminWidgetsPath(), method: "POST"}) { %> - <%= partial("admin/widgets/form.html") %> - <%= linkTo(adminWidgetsPath(), {class: "btn btn-warning", "data-confirm": "Are you sure?", body: "Cancel"}) %> -<% } %> diff --git a/genny/resource/_fixtures/nested/templates/admin/widgets/show.plush.html b/genny/resource/_fixtures/nested/templates/admin/widgets/show.plush.html deleted file mode 100644 index a2ea675dc..000000000 --- a/genny/resource/_fixtures/nested/templates/admin/widgets/show.plush.html +++ /dev/null @@ -1,23 +0,0 @@ -
-

Widget Details

- -
- <%= linkTo(adminWidgetsPath(), {class: "btn btn-info"}) { %> - Back to all Widgets - <% } %> - <%= linkTo(editAdminWidgetPath({ admin_widget_id: widget.ID }), {class: "btn btn-warning", body: "Edit"}) %> - <%= linkTo(adminWidgetPath({ admin_widget_id: widget.ID }), {class: "btn btn-danger", "data-method": "DELETE", "data-confirm": "Are you sure?", body: "Destroy"}) %> -
-
- - - diff --git a/genny/resource/actions.go b/genny/resource/actions.go deleted file mode 100644 index 9d947d77b..000000000 --- a/genny/resource/actions.go +++ /dev/null @@ -1,40 +0,0 @@ -package resource - -import ( - "fmt" - - "github.com/gobuffalo/flect/name" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" -) - -func addResource(pres presenter) genny.RunFn { - return func(r *genny.Runner) error { - f, err := r.FindFile("actions/app.go") - if err != nil { - return err - } - stmt := fmt.Sprintf("app.Resource(\"/%s\", %sResource{})", pres.Name.URL(), pres.Name.Resource()) - f, err = gogen.AddInsideBlock(f, "if app == nil {", stmt) - if err != nil { - return err - } - return r.File(f) - } -} - -func actions(opts *Options) []name.Ident { - actions := []name.Ident{ - name.New("list"), - name.New("show"), - name.New("create"), - name.New("update"), - name.New("destroy"), - } - - if opts.App.AsWeb { - actions = append(actions, name.New("new"), name.New("edit")) - } - - return actions -} diff --git a/genny/resource/models.go b/genny/resource/models.go deleted file mode 100644 index 4c3adbe1c..000000000 --- a/genny/resource/models.go +++ /dev/null @@ -1,35 +0,0 @@ -package resource - -import ( - "os/exec" - - "github.com/gobuffalo/flect/name" - "github.com/gobuffalo/genny/v2" -) - -func modelCommand(model name.Ident, opts *Options) *exec.Cmd { - args := opts.Attrs.Slice() - mn := model.Singularize().Underscore().String() - args = append([]string{"pop", "g", "model", mn}, args...) - - if opts.SkipMigration { - args = append(args, "--skip-migration") - } - - return exec.Command("buffalo-pop", args...) -} - -func installPop(opts *Options) genny.RunFn { - return func(r *genny.Runner) error { - if opts.SkipModel { - return nil - } - if _, err := r.LookPath("buffalo-pop"); err != nil { - c := exec.Command("go", "get", "github.com/gobuffalo/buffalo-pop/v2") - if err := r.Exec(c); err != nil { - return err - } - } - return r.Exec(modelCommand(name.New(opts.Model), opts)) - } -} diff --git a/genny/resource/options.go b/genny/resource/options.go deleted file mode 100644 index 2b9f69924..000000000 --- a/genny/resource/options.go +++ /dev/null @@ -1,46 +0,0 @@ -package resource - -import ( - "fmt" - "strings" - - "github.com/gobuffalo/attrs" - "github.com/gobuffalo/meta" -) - -// Options for generating a new resource -type Options struct { - App meta.App `json:"app"` - Name string `json:"name"` - Model string `json:"model"` - SkipMigration bool `json:"skip_migration"` - SkipModel bool `json:"skip_model"` - SkipTemplates bool `json:"skip_templates"` - Attrs attrs.Attrs `json:"props"` -} - -// Validate that options are usuable -func (opts *Options) Validate() error { - if opts.App.IsZero() { - opts.App = meta.New(".") - } - - if len(opts.Name) == 0 { - return fmt.Errorf("you must provide a name") - } - - if len(opts.Model) == 0 { - opts.Model = opts.Name - } - - if strings.Contains(opts.Model, "/") { - parts := strings.Split(opts.Model, "/") - opts.Model = parts[len(parts)-1] - } - - if opts.App.AsAPI { - opts.SkipTemplates = true - } - - return nil -} diff --git a/genny/resource/options_test.go b/genny/resource/options_test.go deleted file mode 100644 index 83c5fe520..000000000 --- a/genny/resource/options_test.go +++ /dev/null @@ -1,20 +0,0 @@ -package resource - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func Test_Options_Validate(t *testing.T) { - r := require.New(t) - - opts := &Options{} - err := opts.Validate() - r.Error(err) - - opts.Name = "coke" - - err = opts.Validate() - r.NoError(err) -} diff --git a/genny/resource/presenter.go b/genny/resource/presenter.go deleted file mode 100644 index 2c254bd51..000000000 --- a/genny/resource/presenter.go +++ /dev/null @@ -1,14 +0,0 @@ -package resource - -import ( - "github.com/gobuffalo/attrs" - "github.com/gobuffalo/flect/name" - "github.com/gobuffalo/meta" -) - -type presenter struct { - App meta.App - Name name.Ident - Model name.Ident - Attrs attrs.Attrs -} diff --git a/genny/resource/resource-packr.go b/genny/resource/resource-packr.go deleted file mode 100644 index 385b06d4e..000000000 --- a/genny/resource/resource-packr.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !skippackr -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr clean" command to clean up this, -// and any other packr generated files. -package resource - -import _ "github.com/gobuffalo/buffalo/packrd" diff --git a/genny/resource/resource.go b/genny/resource/resource.go deleted file mode 100644 index fcd56eab8..000000000 --- a/genny/resource/resource.go +++ /dev/null @@ -1,69 +0,0 @@ -package resource - -import ( - "text/template" - - "github.com/gobuffalo/flect" - "github.com/gobuffalo/flect/name" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gogen" - "github.com/gobuffalo/packd" - "github.com/gobuffalo/packr/v2" -) - -// New resource generator -func New(opts *Options) (*genny.Generator, error) { - g := genny.New() - - if err := opts.Validate(); err != nil { - return g, err - } - - if !opts.SkipTemplates { - core := packr.New("github.com/gobuffalo/buffalo/@v0.15.4/genny/resource/templates/core", "../resource/templates/core") - - if err := g.Box(core); err != nil { - return g, err - } - } - - var abox packd.Box - if opts.SkipModel { - abox = packr.New("github.com/gobuffalo/buffalo/@v0.15.4/genny/resource/templates/standard", "../resource/templates/standard") - } else { - abox = packr.New("github.com/gobuffalo/buffalo/@v0.15.4/genny/resource/templates/use_model", "../resource/templates/use_model") - } - - if err := g.Box(abox); err != nil { - return g, err - } - - pres := presenter{ - App: opts.App, - Name: name.New(opts.Name), - Model: name.New(opts.Model), - Attrs: opts.Attrs, - } - x := pres.Name.Resource().File().String() - folder := pres.Name.Folder().Pluralize().String() - g.Transformer(genny.Replace("resource-name", x)) - g.Transformer(genny.Replace("resource-use_model", x)) - g.Transformer(genny.Replace("folder-name", folder)) - - data := map[string]interface{}{ - "opts": pres, - "actions": actions(opts), - "folder": folder, - } - helpers := template.FuncMap{ - "camelize": func(s string) string { - return flect.Camelize(s) - }, - } - g.Transformer(gogen.TemplateTransformer(data, helpers)) - - g.RunFn(installPop(opts)) - - g.RunFn(addResource(pres)) - return g, nil -} diff --git a/genny/resource/resource_test.go b/genny/resource/resource_test.go deleted file mode 100644 index a208e3dc5..000000000 --- a/genny/resource/resource_test.go +++ /dev/null @@ -1,256 +0,0 @@ -package resource - -import ( - "fmt" - "path" - "path/filepath" - "strings" - "testing" - - "github.com/gobuffalo/attrs" - "github.com/gobuffalo/flect/name" - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/genny/v2/gentest" - "github.com/gobuffalo/meta" - packr "github.com/gobuffalo/packr/v2" - "github.com/stretchr/testify/require" -) - -type pass struct { - Name string - Options Options -} - -func runner() *genny.Runner { - run := gentest.NewRunner() - box := packr.New("./_fixtures/coke", "./_fixtures/coke") - box.Walk(func(path string, file packr.File) error { - path = strings.TrimSuffix(path, ".tmpl") - run.Disk.Add(genny.NewFile(path, file)) - return nil - }) - return run -} - -func Test_New(t *testing.T) { - ats, err := attrs.ParseArgs("name", "desc:nulls.Text") - if err != nil { - t.Fatal(err) - } - - table := []pass{ - {"default", Options{Name: "widget", Attrs: ats}}, - {"nested", Options{Name: "admin/widget", Attrs: ats}}, - } - - app := meta.New(".") - app.PackageRoot("github.com/markbates/coke") - - for _, tt := range table { - t.Run(tt.Name, func(st *testing.T) { - tt.Options.App = app - r := require.New(st) - g, err := New(&tt.Options) - r.NoError(err) - - run := runner() - run.With(g) - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 1) - - c := res.Commands[0] - r.Equal("buffalo-pop pop g model widget name desc:nulls.Text", strings.Join(c.Args, " ")) - - r.Len(res.Files, 9) - - nn := name.New(tt.Options.Name).Pluralize().String() - actions := []string{"_form", "index", "show", "new", "edit"} - for _, s := range actions { - p := path.Join("templates", nn, s+".plush.html") - _, err = res.Find(p) - r.NoError(err) - } - - exp := packr.Folder(filepath.Join("_fixtures", tt.Name)) - gentest.CompareFiles(exp.List(), res.Files) - - for _, n := range exp.List() { - n = strings.Replace(n, "\\", "/", -1) - f, err := res.Find(strings.TrimSuffix(n, ".tmpl")) - r.NoError(err) - s, err := exp.FindString(n) - r.NoError(err) - - clean := func(s string) string { - s = strings.TrimSpace(s) - s = strings.Replace(s, "\n", "", -1) - s = strings.Replace(s, "\t", "", -1) - s = strings.Replace(s, "\r", "", -1) - return s - } - r.Equal(clean(s), clean(f.String())) - } - - }) - } -} - -func Test_New_SkipTemplates(t *testing.T) { - ats, err := attrs.ParseArgs("name", "desc:nulls.Text") - if err != nil { - t.Fatal(err) - } - table := []pass{ - {"default", Options{Name: "widget", Attrs: ats}}, - {"nested", Options{Name: "admin/widget", Attrs: ats}}, - } - - app := meta.New(".") - app.PackageRoot("github.com/markbates/coke") - - for _, tt := range table { - t.Run(tt.Name, func(st *testing.T) { - tt.Options.App = app - tt.Options.SkipTemplates = true - r := require.New(st) - g, err := New(&tt.Options) - r.NoError(err) - - run := runner() - run.With(g) - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 1) - - for _, s := range []string{"_form", "edit", "index", "new", "show"} { - p := path.Join("templates", tt.Name, s+".html") - _, err = res.Find(p) - r.Error(err) - } - - r.Len(res.Files, 3) - }) - } -} - -func Test_New_API(t *testing.T) { - ats, err := attrs.ParseArgs("name", "desc:nulls.Text") - if err != nil { - t.Fatal(err) - } - table := []pass{ - {"default", Options{Name: "widget", Attrs: ats}}, - {"nested", Options{Name: "admin/widget", Attrs: ats}}, - } - - app := meta.New(".") - app.PackageRoot("github.com/markbates/coke") - app.AsAPI = true - - for _, tt := range table { - t.Run(tt.Name, func(st *testing.T) { - tt.Options.App = app - r := require.New(st) - g, err := New(&tt.Options) - r.NoError(err) - - run := runner() - run.With(g) - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 1) - - nn := name.New(tt.Options.Name).Pluralize().String() - for _, s := range []string{"_form", "edit", "index", "new", "show"} { - p := path.Join("templates", nn, s+".html") - _, err = res.Find(p) - r.Error(err) - } - - r.Len(res.Files, 3) - }) - } -} - -func Test_New_UseModel(t *testing.T) { - r := require.New(t) - - ats, err := attrs.ParseArgs("name", "desc:nulls.Text") - r.NoError(err) - - app := meta.New(".") - app.PackageRoot("github.com/markbates/coke") - - opts := &Options{ - App: app, - Name: "Widget", - Model: "User", - Attrs: ats, - } - g, err := New(opts) - r.NoError(err) - - run := runner() - run.With(g) - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 1) - - c := res.Commands[0] - r.Equal("buffalo-pop pop g model user name desc:nulls.Text", strings.Join(c.Args, " ")) - - r.Len(res.Files, 9) - - for _, s := range []string{"_form", "edit", "index", "new", "show"} { - p := path.Join("templates", "widgets", s+".plush.html") - _, err = res.Find(p) - r.NoError(err) - } - - f, err := res.Find("actions/widgets.go") - r.NoError(err) - r.Contains(f.String(), "users := &models.Users{}") - -} - -func Test_New_SkipModel(t *testing.T) { - r := require.New(t) - - app := meta.New(".") - app.PackageRoot("github.com/markbates/coke") - - opts := &Options{ - App: app, - Name: "Widget", - SkipModel: true, - } - - g, err := New(opts) - r.NoError(err) - - run := runner() - run.With(g) - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Commands, 0) - r.Len(res.Files, 9) - - f, err := res.Find("actions/widgets.go") - r.NoError(err) - actions := []string{"List", "Show", "Create", "Update", "Destroy", "New", "Edit"} - for _, action := range actions { - r.Contains(f.String(), fmt.Sprintf("func (v WidgetsResource) %v(c buffalo.Context) error {", action)) - } - -} diff --git a/genny/resource/templates/core/locales/folder-name.en-us.yaml.tmpl b/genny/resource/templates/core/locales/folder-name.en-us.yaml.tmpl deleted file mode 100644 index 5fbdf0c50..000000000 --- a/genny/resource/templates/core/locales/folder-name.en-us.yaml.tmpl +++ /dev/null @@ -1,6 +0,0 @@ -- id: "{{.opts.Model.Singularize.Underscore}}.created.success" - translation: "{{.opts.Model.Proper}} was successfully created." -- id: "{{.opts.Model.Singularize.Underscore}}.updated.success" - translation: "{{.opts.Model.Proper}} was successfully updated." -- id: "{{.opts.Model.Singularize.Underscore}}.destroyed.success" - translation: "{{.opts.Model.Proper}} was successfully destroyed." diff --git a/genny/resource/templates/core/templates/folder-name/_form.plush.html.tmpl b/genny/resource/templates/core/templates/folder-name/_form.plush.html.tmpl deleted file mode 100644 index 11aa4adad..000000000 --- a/genny/resource/templates/core/templates/folder-name/_form.plush.html.tmpl +++ /dev/null @@ -1,13 +0,0 @@ -{{ range $p := .opts.Attrs -}} -{{ if eq $p.CommonType "text" -}} -<%= f.TextAreaTag("{{$p.Name.Pascalize}}", {rows: 10}) %> -{{ else -}} -{{ if eq $p.CommonType "bool" -}} -<%= f.CheckboxTag("{{$p.Name.Pascalize}}", {unchecked: false}) %> -{{ else -}} -<%= f.InputTag("{{$p.Name.Pascalize}}") %> -{{ end -}} -{{ end -}} -{{ end -}} - - diff --git a/genny/resource/templates/core/templates/folder-name/edit.plush.html.tmpl b/genny/resource/templates/core/templates/folder-name/edit.plush.html.tmpl deleted file mode 100644 index 062a451c5..000000000 --- a/genny/resource/templates/core/templates/folder-name/edit.plush.html.tmpl +++ /dev/null @@ -1,8 +0,0 @@ -
-

Edit {{.opts.Model.Proper}}

-
- -<%= formFor({{.opts.Model.VarCaseSingle}}, {action: {{.opts.Name.VarCaseSingle}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), method: "PUT"}) { %> - <%= partial("{{.folder}}/form.html") %> - <%= linkTo({{.opts.Name.VarCaseSingle}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), {class: "btn btn-warning", "data-confirm": "Are you sure?", body: "Cancel"}) %> -<% } %> diff --git a/genny/resource/templates/core/templates/folder-name/index.plush.html.tmpl b/genny/resource/templates/core/templates/folder-name/index.plush.html.tmpl deleted file mode 100644 index bd133ed4f..000000000 --- a/genny/resource/templates/core/templates/folder-name/index.plush.html.tmpl +++ /dev/null @@ -1,41 +0,0 @@ -
-

{{.opts.Model.Group}}

-
- <%= linkTo(new{{.opts.Name.Resource}}Path(), {class: "btn btn-primary"}) { %> - Create New {{.opts.Model.Proper}} - <% } %> -
-
- - - - {{ range $p := .opts.Attrs -}} - {{- if ne $p.CommonType "text" -}} - - {{- end -}} - {{- end }} - - - - <%= for ({{.opts.Model.VarCaseSingle}}) in {{.opts.Model.VarCasePlural}} { %> - - {{ range $mp := .opts.Attrs -}} - {{- if ne $mp.CommonType "text" -}} - - {{- end -}} - {{- end }} - - - <% } %> - -
{{ $p.Name.Pascalize }} 
<%= {{$.opts.Model.VarCaseSingle}}.{{$mp.Name.Pascalize}} %> -
- <%= linkTo({{.opts.Name.VarCaseSingle}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), {class: "btn btn-info", body: "View"}) %> - <%= linkTo(edit{{.opts.Name.Proper}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), {class: "btn btn-warning", body: "Edit"}) %> - <%= linkTo({{.opts.Name.VarCaseSingle}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), {class: "btn btn-danger", "data-method": "DELETE", "data-confirm": "Are you sure?", body: "Destroy"}) %> -
-
- -
- <%= paginator(pagination) %> -
diff --git a/genny/resource/templates/core/templates/folder-name/new.plush.html.tmpl b/genny/resource/templates/core/templates/folder-name/new.plush.html.tmpl deleted file mode 100644 index 775e4a2a8..000000000 --- a/genny/resource/templates/core/templates/folder-name/new.plush.html.tmpl +++ /dev/null @@ -1,8 +0,0 @@ -
-

New {{.opts.Model.Proper}}

-
- -<%= formFor({{.opts.Model.VarCaseSingle}}, {action: {{.opts.Name.VarCasePlural}}Path(), method: "POST"}) { %> - <%= partial("{{.folder}}/form.html") %> - <%= linkTo({{.opts.Name.VarCasePlural}}Path(), {class: "btn btn-warning", "data-confirm": "Are you sure?", body: "Cancel"}) %> -<% } %> diff --git a/genny/resource/templates/core/templates/folder-name/show.plush.html.tmpl b/genny/resource/templates/core/templates/folder-name/show.plush.html.tmpl deleted file mode 100644 index 657f5a837..000000000 --- a/genny/resource/templates/core/templates/folder-name/show.plush.html.tmpl +++ /dev/null @@ -1,24 +0,0 @@ -
-

{{.opts.Model.Proper}} Details

- -
- <%= linkTo({{.opts.Name.VarCasePlural}}Path(), {class: "btn btn-info"}) { %> - Back to all {{.opts.Model.Group}} - <% } %> - <%= linkTo(edit{{.opts.Name.Proper}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), {class: "btn btn-warning", body: "Edit"}) %> - <%= linkTo({{.opts.Name.VarCaseSingle}}Path({ {{.opts.Name.ParamID}}: {{.opts.Model.VarCaseSingle}}.ID }), {class: "btn btn-danger", "data-method": "DELETE", "data-confirm": "Are you sure?", body: "Destroy"}) %> -
-
- - - - diff --git a/genny/resource/templates/standard/actions/resource-name.go.tmpl b/genny/resource/templates/standard/actions/resource-name.go.tmpl deleted file mode 100644 index 35c6d5f03..000000000 --- a/genny/resource/templates/standard/actions/resource-name.go.tmpl +++ /dev/null @@ -1,19 +0,0 @@ -package actions - -import ( - "net/http" - - "github.com/gobuffalo/buffalo" -) - -type {{.opts.Name.Resource}}Resource struct{ - buffalo.Resource -} - -{{ range $a := .actions }} -// {{$a.Pascalize}} default implementation. -func (v {{$.opts.Name.Resource}}Resource) {{$a.Pascalize}}(c buffalo.Context) error { - return c.Render(http.StatusOK, r.String("{{$.opts.Model.Proper}}#{{$a.Pascalize}}")) -} - -{{end}} diff --git a/genny/resource/templates/standard/actions/resource-name_test.go.tmpl b/genny/resource/templates/standard/actions/resource-name_test.go.tmpl deleted file mode 100644 index b0d71ef37..000000000 --- a/genny/resource/templates/standard/actions/resource-name_test.go.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -package actions - -import ( - "testing" - - "github.com/stretchr/testify/require" -) -{{ range $a := .actions }} -func (as *ActionSuite) Test_{{$.opts.Name.Resource}}Resource_{{ $a.Pascalize }}() { - as.Fail("Not Implemented!") -} -{{ end }} diff --git a/genny/resource/templates/use_model/actions/resource-name.go.tmpl b/genny/resource/templates/use_model/actions/resource-name.go.tmpl deleted file mode 100644 index 7443b7c8b..000000000 --- a/genny/resource/templates/use_model/actions/resource-name.go.tmpl +++ /dev/null @@ -1,264 +0,0 @@ -package actions - -import ( - - "fmt" - "net/http" - "github.com/gobuffalo/buffalo" - "github.com/gobuffalo/pop/v5" - "github.com/gobuffalo/x/responder" - "{{.opts.App.ModelsPkg}}" -) - -// This file is generated by Buffalo. It offers a basic structure for -// adding, editing and deleting a page. If your model is more -// complex or you need more than the basic implementation you need to -// edit this file. - -// Following naming logic is implemented in Buffalo: -// Model: Singular ({{.opts.Model.Proper}}) -// DB Table: Plural ({{.opts.Model.Tableize}}) -// Resource: Plural ({{.opts.Name.Resource}}) -// Path: Plural (/{{.opts.Name.URL}}) -// View Template Folder: Plural (/templates/{{.opts.Name.File.Pluralize}}/) - -// {{.opts.Name.Resource}}Resource is the resource for the {{.opts.Model.Proper}} model -type {{.opts.Name.Resource}}Resource struct{ - buffalo.Resource -} - -// List gets all {{.opts.Model.Group}}. This function is mapped to the path -// GET /{{.opts.Name.URL}} -func (v {{.opts.Name.Resource}}Resource) List(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - {{.opts.Model.VarCasePlural}} := &models.{{.opts.Model.Group}}{} - - // Paginate results. Params "page" and "per_page" control pagination. - // Default values are "page=1" and "per_page=20". - q := tx.PaginateFromParams(c.Params()) - - // Retrieve all {{.opts.Model.Group}} from the DB - if err := q.All({{.opts.Model.VarCasePlural}}); err != nil { - return err - } - - return responder.Wants("html", func (c buffalo.Context) error { - // Add the paginator to the context so it can be used in the template. - c.Set("pagination", q.Paginator) - - c.Set("{{.opts.Model.VarCasePlural}}", {{.opts.Model.VarCasePlural}}) - return c.Render(http.StatusOK, r.HTML("/{{.opts.Name.File.Pluralize}}/index.plush.html")) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(200, r.JSON({{.opts.Model.VarCasePlural}})) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(200, r.XML({{.opts.Model.VarCasePlural}})) - }).Respond(c) -} - -// Show gets the data for one {{.opts.Model.Proper}}. This function is mapped to -// the path GET /{{.opts.Name.URL}}/{{"{"}}{{.opts.Name.ParamID}}} -func (v {{.opts.Name.Resource}}Resource) Show(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Allocate an empty {{.opts.Model.Proper}} - {{.opts.Model.VarCaseSingle}} := &models.{{.opts.Model.Proper}}{} - - // To find the {{.opts.Model.Proper}} the parameter {{.opts.Name.ParamID}} is used. - if err := tx.Find({{.opts.Model.VarCaseSingle}}, c.Param("{{.opts.Name.ParamID}}")); err != nil { - return c.Error(http.StatusNotFound, err) - } - - return responder.Wants("html", func (c buffalo.Context) error { - c.Set("{{.opts.Model.VarCaseSingle}}", {{.opts.Model.VarCaseSingle}}) - - return c.Render(http.StatusOK, r.HTML("/{{.opts.Name.File.Pluralize}}/show.plush.html")) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(200, r.JSON({{.opts.Model.VarCaseSingle}})) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(200, r.XML({{.opts.Model.VarCaseSingle}})) - }).Respond(c) -} - -{{ if .opts.App.AsWeb -}} -// New renders the form for creating a new {{.opts.Model.Proper}}. -// This function is mapped to the path GET /{{.opts.Name.URL}}/new -func (v {{.opts.Name.Resource}}Resource) New(c buffalo.Context) error { - c.Set("{{.opts.Model.VarCaseSingle}}", &models.{{.opts.Model.Proper}}{}) - - return c.Render(http.StatusOK, r.HTML("/{{.opts.Name.File.Pluralize}}/new.plush.html")) -} -{{ end -}} - -// Create adds a {{.opts.Model.Proper}} to the DB. This function is mapped to the -// path POST /{{.opts.Name.URL}} -func (v {{.opts.Name.Resource}}Resource) Create(c buffalo.Context) error { - // Allocate an empty {{.opts.Model.Proper}} - {{.opts.Model.VarCaseSingle}} := &models.{{.opts.Model.Proper}}{} - - // Bind {{.opts.Model.VarCaseSingle}} to the html form elements - if err := c.Bind({{.opts.Model.VarCaseSingle}}); err != nil { - return err - } - - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Validate the data from the html form - verrs, err := tx.ValidateAndCreate({{.opts.Model.VarCaseSingle}}) - if err != nil { - return err - } - - if verrs.HasAny() { - return responder.Wants("html", func (c buffalo.Context) error { - // Make the errors available inside the html template - c.Set("errors", verrs) - - // Render again the new.html template that the user can - // correct the input. - c.Set("{{.opts.Model.VarCaseSingle}}", {{.opts.Model.VarCaseSingle}}) - - return c.Render(http.StatusUnprocessableEntity, r.HTML("/{{.opts.Name.File.Pluralize}}/new.plush.html")) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusUnprocessableEntity, r.JSON(verrs)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusUnprocessableEntity, r.XML(verrs)) - }).Respond(c) - } - - return responder.Wants("html", func (c buffalo.Context) error { - // If there are no errors set a success message - c.Flash().Add("success", T.Translate(c, "{{.opts.Model.VarCaseSingle}}.created.success")) - - // and redirect to the show page - return c.Redirect(http.StatusSeeOther, "/{{.opts.Name.URL}}/%v", {{.opts.Model.VarCaseSingle}}.ID) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusCreated, r.JSON({{.opts.Model.VarCaseSingle}})) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusCreated, r.XML({{.opts.Model.VarCaseSingle}})) - }).Respond(c) -} - -{{ if .opts.App.AsWeb -}} -// Edit renders a edit form for a {{.opts.Model.Proper}}. This function is -// mapped to the path GET /{{.opts.Name.URL}}/{{"{"}}{{.opts.Name.ParamID}}}/edit -func (v {{.opts.Name.Resource}}Resource) Edit(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Allocate an empty {{.opts.Model.Proper}} - {{.opts.Model.VarCaseSingle}} := &models.{{.opts.Model.Proper}}{} - - if err := tx.Find({{.opts.Model.VarCaseSingle}}, c.Param("{{.opts.Name.ParamID}}")); err != nil { - return c.Error(http.StatusNotFound, err) - } - - c.Set("{{.opts.Model.VarCaseSingle}}", {{.opts.Model.VarCaseSingle}}) - return c.Render(http.StatusOK, r.HTML("/{{.opts.Name.File.Pluralize}}/edit.plush.html")) -} -{{ end -}} - -// Update changes a {{.opts.Model.Proper}} in the DB. This function is mapped to -// the path PUT /{{.opts.Name.URL}}/{{"{"}}{{.opts.Name.ParamID}}} -func (v {{.opts.Name.Resource}}Resource) Update(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Allocate an empty {{.opts.Model.Proper}} - {{.opts.Model.VarCaseSingle}} := &models.{{.opts.Model.Proper}}{} - - if err := tx.Find({{.opts.Model.VarCaseSingle}}, c.Param("{{.opts.Name.ParamID}}")); err != nil { - return c.Error(http.StatusNotFound, err) - } - - // Bind {{.opts.Model.Proper}} to the html form elements - if err := c.Bind({{.opts.Model.VarCaseSingle}}); err != nil { - return err - } - - verrs, err := tx.ValidateAndUpdate({{.opts.Model.VarCaseSingle}}) - if err != nil { - return err - } - - if verrs.HasAny() { - return responder.Wants("html", func (c buffalo.Context) error { - // Make the errors available inside the html template - c.Set("errors", verrs) - - // Render again the edit.html template that the user can - // correct the input. - c.Set("{{.opts.Model.VarCaseSingle}}", {{.opts.Model.VarCaseSingle}}) - - return c.Render(http.StatusUnprocessableEntity, r.HTML("/{{.opts.Name.File.Pluralize}}/edit.plush.html")) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusUnprocessableEntity, r.JSON(verrs)) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusUnprocessableEntity, r.XML(verrs)) - }).Respond(c) - } - - return responder.Wants("html", func (c buffalo.Context) error { - // If there are no errors set a success message - c.Flash().Add("success", T.Translate(c, "{{.opts.Model.VarCaseSingle}}.updated.success")) - - // and redirect to the show page - return c.Redirect(http.StatusSeeOther, "/{{.opts.Name.URL}}/%v", {{.opts.Model.VarCaseSingle}}.ID) - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusOK, r.JSON({{.opts.Model.VarCaseSingle}})) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusOK, r.XML({{.opts.Model.VarCaseSingle}})) - }).Respond(c) -} - -// Destroy deletes a {{.opts.Model.Proper}} from the DB. This function is mapped -// to the path DELETE /{{.opts.Name.URL}}/{{"{"}}{{.opts.Name.ParamID}}} -func (v {{.opts.Name.Resource}}Resource) Destroy(c buffalo.Context) error { - // Get the DB connection from the context - tx, ok := c.Value("tx").(*pop.Connection) - if !ok { - return fmt.Errorf("no transaction found") - } - - // Allocate an empty {{.opts.Model.Proper}} - {{.opts.Model.VarCaseSingle}} := &models.{{.opts.Model.Proper}}{} - - // To find the {{.opts.Model.Proper}} the parameter {{.opts.Name.ParamID}} is used. - if err := tx.Find({{.opts.Model.VarCaseSingle}}, c.Param("{{.opts.Name.ParamID}}")); err != nil { - return c.Error(http.StatusNotFound, err) - } - - if err := tx.Destroy({{.opts.Model.VarCaseSingle}}); err != nil { - return err - } - - return responder.Wants("html", func (c buffalo.Context) error { - // If there are no errors set a flash message - c.Flash().Add("success", T.Translate(c, "{{.opts.Model.VarCaseSingle}}.destroyed.success")) - - // Redirect to the index page - return c.Redirect(http.StatusSeeOther, "/{{.opts.Name.URL}}") - }).Wants("json", func (c buffalo.Context) error { - return c.Render(http.StatusOK, r.JSON({{.opts.Model.VarCaseSingle}})) - }).Wants("xml", func (c buffalo.Context) error { - return c.Render(http.StatusOK, r.XML({{.opts.Model.VarCaseSingle}})) - }).Respond(c) -} diff --git a/genny/resource/templates/use_model/actions/resource-name_test.go.tmpl b/genny/resource/templates/use_model/actions/resource-name_test.go.tmpl deleted file mode 100644 index 486536d81..000000000 --- a/genny/resource/templates/use_model/actions/resource-name_test.go.tmpl +++ /dev/null @@ -1,7 +0,0 @@ -package actions - -{{ range $a := .actions }} -func (as *ActionSuite) Test_{{$.opts.Name.Resource}}Resource_{{ $a.Pascalize }}() { - as.Fail("Not Implemented!") -} -{{ end }} diff --git a/genny/vcs/options.go b/genny/vcs/options.go deleted file mode 100644 index c6afbff53..000000000 --- a/genny/vcs/options.go +++ /dev/null @@ -1,36 +0,0 @@ -package vcs - -import ( - "fmt" - "strings" - - "github.com/gobuffalo/meta" -) - -// Available VCS implementations -var Available = []string{"git", "bzr", "none"} - -// Options for VCS generator -type Options struct { - App meta.App - Provider string -} - -// Validate that options are usuable -func (opts *Options) Validate() error { - if opts.App.IsZero() { - opts.App = meta.New(".") - } - - var found bool - for _, a := range Available { - if opts.Provider == a { - found = true - break - } - } - if !found { - return fmt.Errorf("unknown provider %q expecting one of %s", opts.Provider, strings.Join(Available, ", ")) - } - return nil -} diff --git a/genny/vcs/options_test.go b/genny/vcs/options_test.go deleted file mode 100644 index 1755486b6..000000000 --- a/genny/vcs/options_test.go +++ /dev/null @@ -1,20 +0,0 @@ -package vcs - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func Test_Options_Validate(t *testing.T) { - r := require.New(t) - - opts := &Options{} - err := opts.Validate() - r.Error(err) - - opts.Provider = "git" - - err = opts.Validate() - r.NoError(err) -} diff --git a/genny/vcs/templates/ignore.tmpl b/genny/vcs/templates/ignore.tmpl deleted file mode 100644 index 3e7fd5c09..000000000 --- a/genny/vcs/templates/ignore.tmpl +++ /dev/null @@ -1,27 +0,0 @@ -vendor/ -**/*.log -**/*.sqlite -.idea/ -bin/ -tmp/ -node_modules/ -.sass-cache/ -*-packr.go -public/assets/ -.vscode/ -.grifter/ -.env -**/.DS_Store -*.pid -coverage -coverage.data -.svn -.console_history -.sass-cache/* -.jhw-cache/ -jhw.* -*.sublime* -dist/ -generated/ -.vendor/ - diff --git a/genny/vcs/vcs-packr.go b/genny/vcs/vcs-packr.go deleted file mode 100644 index 8db6172a1..000000000 --- a/genny/vcs/vcs-packr.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !skippackr -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr clean" command to clean up this, -// and any other packr generated files. -package vcs - -import _ "github.com/gobuffalo/buffalo/packrd" diff --git a/genny/vcs/vcs.go b/genny/vcs/vcs.go deleted file mode 100644 index 29a6e4f5a..000000000 --- a/genny/vcs/vcs.go +++ /dev/null @@ -1,42 +0,0 @@ -package vcs - -import ( - "fmt" - "os/exec" - - "github.com/gobuffalo/genny/v2" - "github.com/gobuffalo/packr/v2" -) - -// New generator for adding VCS to an application -func New(opts *Options) (*genny.Generator, error) { - g := genny.New() - - if err := opts.Validate(); err != nil { - return g, err - } - - if opts.Provider == "none" { - return g, nil - } - - box := packr.New("buffalo:genny:vcs", "../vcs/templates") - s, err := box.FindString("ignore.tmpl") - if err != nil { - return g, err - } - - p := opts.Provider - n := fmt.Sprintf(".%signore", p) - g.File(genny.NewFileS(n, s)) - g.Command(exec.Command(p, "init")) - - args := []string{"add", "."} - if p == "bzr" { - // Ensure Bazaar is as quiet as Git - args = append(args, "-q") - } - g.Command(exec.Command(p, args...)) - g.Command(exec.Command(p, "commit", "-q", "-m", "Initial Commit")) - return g, nil -} diff --git a/genny/vcs/vcs_test.go b/genny/vcs/vcs_test.go deleted file mode 100644 index a8a06a627..000000000 --- a/genny/vcs/vcs_test.go +++ /dev/null @@ -1,41 +0,0 @@ -package vcs - -import ( - "strings" - "testing" - - "github.com/gobuffalo/genny/v2/gentest" - "github.com/stretchr/testify/require" -) - -func Test_New(t *testing.T) { - r := require.New(t) - - g, err := New(&Options{ - Provider: "bzr", - }) - r.NoError(err) - - run := gentest.NewRunner() - run.With(g) - - r.NoError(run.Run()) - - res := run.Results() - - r.Len(res.Files, 1) - - f := res.Files[0] - r.Equal(".bzrignore", f.Name()) - - cmds := []string{ - "bzr init", - "bzr add . -q", - "bzr commit -q -m Initial Commit", - } - - r.Len(res.Commands, len(cmds)) - for i, c := range res.Commands { - r.Equal(cmds[i], strings.Join(c.Args, " ")) - } -} diff --git a/go.mod b/go.mod index 21eef3615..ee5bfbb40 100644 --- a/go.mod +++ b/go.mod @@ -6,13 +6,9 @@ require ( github.com/BurntSushi/toml v0.3.1 github.com/dustin/go-humanize v1.0.0 github.com/fatih/color v1.12.0 - github.com/gobuffalo/attrs v1.0.0 - github.com/gobuffalo/buffalo-pop/v2 v2.3.0 - github.com/gobuffalo/clara/v2 v2.0.2 github.com/gobuffalo/envy v1.9.0 github.com/gobuffalo/events v1.4.1 github.com/gobuffalo/flect v0.2.3 - github.com/gobuffalo/genny/v2 v2.0.6 github.com/gobuffalo/github_flavored_markdown v1.1.0 github.com/gobuffalo/helpers v0.6.2 github.com/gobuffalo/httptest v1.5.0 @@ -24,7 +20,6 @@ require ( github.com/gobuffalo/plush/v4 v4.1.5 github.com/gobuffalo/pop/v5 v5.3.4 github.com/gobuffalo/tags/v3 v3.1.0 - github.com/google/go-cmp v0.5.6 github.com/gorilla/handlers v1.5.1 github.com/gorilla/mux v1.8.0 github.com/gorilla/sessions v1.2.1 @@ -37,11 +32,6 @@ require ( github.com/monoculum/formam v0.0.0-20210523135142-1af3317b7b9b github.com/sirupsen/logrus v1.8.1 github.com/spf13/cobra v1.2.1 - github.com/spf13/pflag v1.0.5 - github.com/spf13/viper v1.8.1 github.com/stretchr/testify v1.7.0 - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - golang.org/x/tools v0.1.5 gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc - gopkg.in/yaml.v2 v2.4.0 ) diff --git a/go.sum b/go.sum index dfcd18cd3..87ff4ef93 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,5 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.36.0/go.mod h1:RUoy9p/M4ge0HzT8L+SDZ8jg+Q6fth0CiBuhFJpSV40= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= @@ -38,19 +36,11 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= -dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= -dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= -git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/semver/v3 v3.0.3/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= @@ -59,13 +49,10 @@ github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWX github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/ajg/form v0.0.0-20160822230020-523a5da1a92f/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= -github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= @@ -81,10 +68,7 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= -github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -100,26 +84,18 @@ github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnht github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= -github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= -github.com/cockroachdb/cockroach-go v0.0.0-20190916165215-ad57a61cc915/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= -github.com/cockroachdb/cockroach-go v0.0.0-20190925194419-606b3d062051/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= @@ -129,7 +105,6 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v0.0.0-20180713052910-9f541cc9db5d/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= @@ -148,19 +123,16 @@ github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5Kwzbycv github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= -github.com/fatih/structs v1.0.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -171,506 +143,58 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/attrs v0.0.0-20190219185331-f338c9388485/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= -github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= github.com/gobuffalo/attrs v0.1.0/go.mod h1:fmNpaWyHM0tRm8gCZWKx8yY9fvaNLo2PyzBNSrBZ5Hw= -github.com/gobuffalo/attrs v1.0.0 h1:aAK8D55L0GNVbVRlaCwvAGE2BcGdEoVoK86vgQpuUZ8= -github.com/gobuffalo/attrs v1.0.0/go.mod h1:YWU+sjOr7V05rNzvCoVc5qQTC2IgEz9434TFW5GhNaw= -github.com/gobuffalo/buffalo v0.12.8-0.20181004233540-fac9bb505aa8/go.mod h1:sLyT7/dceRXJUxSsE813JTQtA3Eb1vjxWfo/N//vXIY= -github.com/gobuffalo/buffalo v0.13.0/go.mod h1:Mjn1Ba9wpIbpbrD+lIDMy99pQ0H0LiddMIIDGse7qT4= -github.com/gobuffalo/buffalo v0.13.1/go.mod h1:K9c22KLfDz7obgxvHv1amvJtCQEZNiox9+q6FDJ1Zcs= -github.com/gobuffalo/buffalo v0.13.2/go.mod h1:vA8I4Dwcfkx7RAzIRHVDZxfS3QJR7muiOjX4r8P2/GE= -github.com/gobuffalo/buffalo v0.13.4/go.mod h1:y2jbKkO0k49OrNIOAkbWQiPBqxAFpHn5OKnkc7BDh+I= -github.com/gobuffalo/buffalo v0.13.5/go.mod h1:hPcP12TkFSZmT3gUVHZ24KRhTX3deSgu6QSgn0nbWf4= -github.com/gobuffalo/buffalo v0.13.6/go.mod h1:/Pm0MPLusPhWDayjRD+/vKYnelScIiv0sX9YYek0wpg= -github.com/gobuffalo/buffalo v0.13.7/go.mod h1:3gQwZhI8DSbqmDqlFh7kfwuv/wd40rqdVxXtFWlCQHw= -github.com/gobuffalo/buffalo v0.13.9/go.mod h1:vIItiQkTHq46D1p+bw8mFc5w3BwrtJhMvYjSIYK3yjE= -github.com/gobuffalo/buffalo v0.13.12/go.mod h1:Y9e0p0cdo/eI+lHm7EFzlkc9YzjwGo5QeDj+FbsyqVA= -github.com/gobuffalo/buffalo v0.13.13/go.mod h1:WAL36xBN8OkU71lNjuYv6llmgl0o8twjlY+j7oGUmYw= -github.com/gobuffalo/buffalo v0.14.0/go.mod h1:A9JI3juErlXNrPBeJ/0Pdky9Wz+GffEg7ZN0d1B5h48= -github.com/gobuffalo/buffalo v0.14.2/go.mod h1:VNMTzddg7bMnkVxCUXzqTS4PvUo6cDOs/imtG8Cnt/k= -github.com/gobuffalo/buffalo v0.14.3/go.mod h1:3O9vB/a4UNb16TevehTvDCaPnb98NWvYz0msJQ6ZlVA= -github.com/gobuffalo/buffalo v0.14.5/go.mod h1:RWK6evR4hY4nRVfw9xie9V/LYK3j0U9wU2oKgQUFZ88= -github.com/gobuffalo/buffalo v0.14.6/go.mod h1:71Un+T2JGgwXLjBqYFdGSooz/OUjw15BJM0nbbcAM0o= -github.com/gobuffalo/buffalo v0.14.9/go.mod h1:M8XWw+Rcotn7C4NYpCEGBg3yX+O1TeD1pBfmiILhgHw= -github.com/gobuffalo/buffalo v0.14.10/go.mod h1:49A7/JYlsCyTkVHtvKl91w6rG35ZiywwjWMVC1zKWsQ= -github.com/gobuffalo/buffalo v0.14.11/go.mod h1:RO5OwOJQjv6/TukzszV5ELA54lg84D1kZwla6oAkTlo= -github.com/gobuffalo/buffalo v0.15.5/go.mod h1:MeAI3aC7vGegr6Ruh+nfj0TvIoBhlLeO7VLueBjwj2o= -github.com/gobuffalo/buffalo v0.16.26 h1:1z8Ehnx93sDV9MX7jsk0wJ51Ro4z4iaUYbxHKk+/uXA= -github.com/gobuffalo/buffalo v0.16.26/go.mod h1:NBHN9MBgV4zeIReK4nWZb71mMWMb5ckh4JpbNZfsEaE= -github.com/gobuffalo/buffalo-docker v1.0.5/go.mod h1:NZ3+21WIdqOUlOlM2onCt7cwojYp4Qwlsngoolw8zlE= -github.com/gobuffalo/buffalo-docker v1.0.6/go.mod h1:UlqKHJD8CQvyIb+pFq+m/JQW2w2mXuhxsaKaTj1X1XI= -github.com/gobuffalo/buffalo-docker v1.0.7/go.mod h1:BdB8AhcmjwR6Lo3rDPMzyh/+eNjYnZ1TAO0eZeLkhig= -github.com/gobuffalo/buffalo-plugins v1.0.2/go.mod h1:pOp/uF7X3IShFHyobahTkTLZaeUXwb0GrUTb9ngJWTs= -github.com/gobuffalo/buffalo-plugins v1.0.4/go.mod h1:pWS1vjtQ6uD17MVFWf7i3zfThrEKWlI5+PYLw/NaDB4= -github.com/gobuffalo/buffalo-plugins v1.4.3/go.mod h1:uCzTY0woez4nDMdQjkcOYKanngeUVRO2HZi7ezmAjWY= -github.com/gobuffalo/buffalo-plugins v1.5.1/go.mod h1:jbmwSZK5+PiAP9cC09VQOrGMZFCa/P0UMlIS3O12r5w= -github.com/gobuffalo/buffalo-plugins v1.6.1/go.mod h1:/XZt7UuuDnx5P4v3cStK0+XoYiNOA2f0wDIsm1oLJQA= -github.com/gobuffalo/buffalo-plugins v1.6.4/go.mod h1:/+N1aophkA2jZ1ifB2O3Y9yGwu6gKOVMtUmJnbg+OZI= -github.com/gobuffalo/buffalo-plugins v1.6.5/go.mod h1:0HVkbgrVs/MnPZ/FOseDMVanCTm2RNcdM0PuXcL1NNI= -github.com/gobuffalo/buffalo-plugins v1.6.6/go.mod h1:hSWAEkJyL9RENJlmanMivgnNkrQ9RC4xJARz8dQryi0= -github.com/gobuffalo/buffalo-plugins v1.6.7/go.mod h1:ZGZRkzz2PiKWHs0z7QsPBOTo2EpcGRArMEym6ghKYgk= -github.com/gobuffalo/buffalo-plugins v1.6.9/go.mod h1:yYlYTrPdMCz+6/+UaXg5Jm4gN3xhsvsQ2ygVatZV5vw= -github.com/gobuffalo/buffalo-plugins v1.6.10/go.mod h1:HxzPZjAEzh9H0gnHelObxxrut9O+1dxydf7U93SYsc8= -github.com/gobuffalo/buffalo-plugins v1.6.11/go.mod h1:eAA6xJIL8OuynJZ8amXjRmHND6YiusVAaJdHDN1Lu8Q= -github.com/gobuffalo/buffalo-plugins v1.7.2/go.mod h1:vEbx30cLFeeZ48gBA/rkhbqC2M/2JpsKs5CoESWhkPw= -github.com/gobuffalo/buffalo-plugins v1.8.1/go.mod h1:vu71J3fD4b7KKywJQ1tyaJGtahG837Cj6kgbxX0e4UI= -github.com/gobuffalo/buffalo-plugins v1.8.2/go.mod h1:9te6/VjEQ7pKp7lXlDIMqzxgGpjlKoAcAANdCgoR960= -github.com/gobuffalo/buffalo-plugins v1.8.3/go.mod h1:IAWq6vjZJVXebIq2qGTLOdlXzmpyTZ5iJG5b59fza5U= -github.com/gobuffalo/buffalo-plugins v1.9.3/go.mod h1:BNRunDThMZKjqx6R+n14Rk3sRSOWgbMuzCKXLqbd7m0= -github.com/gobuffalo/buffalo-plugins v1.9.4/go.mod h1:grCV6DGsQlVzQwk6XdgcL3ZPgLm9BVxlBmXPMF8oBHI= -github.com/gobuffalo/buffalo-plugins v1.10.0/go.mod h1:4osg8d9s60txLuGwXnqH+RCjPHj9K466cDFRl3PErHI= -github.com/gobuffalo/buffalo-plugins v1.11.0/go.mod h1:rtIvAYRjYibgmWhnjKmo7OadtnxuMG5ZQLr25ozAzjg= -github.com/gobuffalo/buffalo-plugins v1.12.0/go.mod h1:kw4Mj2vQXqe4X5TI36PEQgswbL30heGQwJEeDKd1v+4= -github.com/gobuffalo/buffalo-plugins v1.13.0/go.mod h1:Y9nH2VwHVkeKhmdM380ulNXmhhD5On81nRVeD+WlDTQ= -github.com/gobuffalo/buffalo-plugins v1.13.1/go.mod h1:VcvhrgWcZLhOp8JPLckHBDtv05KepY/MxHsT2+06xX4= -github.com/gobuffalo/buffalo-plugins v1.14.0/go.mod h1:r2lykSXBT79c3T5JK1ouivVDrHvvCZUdZBmn+lPMHU8= -github.com/gobuffalo/buffalo-plugins v1.14.1/go.mod h1:9BRBvXuKxR0m4YttVFRtuUcAP9Rs97mGq6OleyDbIuo= -github.com/gobuffalo/buffalo-pop v1.0.5/go.mod h1:Fw/LfFDnSmB/vvQXPvcXEjzP98Tc+AudyNWUBWKCwQ8= -github.com/gobuffalo/buffalo-pop v1.1.2/go.mod h1:czNLXcYbg5/fjr+uht0NyjZaQ0V2W23H1jzyORgCzQ4= -github.com/gobuffalo/buffalo-pop v1.1.5/go.mod h1:H01JIg42XwOHS4gRMhSeDZqBovNVlfBUsVXckU617s4= -github.com/gobuffalo/buffalo-pop v1.1.8/go.mod h1:1uaxOFzzVud/zR5f1OEBr21tMVLQS3OZpQ1A5cr0svE= -github.com/gobuffalo/buffalo-pop v1.1.13/go.mod h1:47GQoBjCMcl5Pw40iCWHQYJvd0HsT9kdaOPWgnzHzk4= -github.com/gobuffalo/buffalo-pop v1.1.14/go.mod h1:sAMh6+s7wytCn5cHqZIuItJbAqzvs6M7FemLexl+pwc= -github.com/gobuffalo/buffalo-pop v1.1.15/go.mod h1:vnvvxhbEFAaEbac9E2ZPjsBeL7WHkma2UyKNVA4y9Wo= -github.com/gobuffalo/buffalo-pop v1.2.1/go.mod h1:SHqojN0bVzaAzCbQDdWtsib202FDIxqwmCO8VDdweF4= -github.com/gobuffalo/buffalo-pop v1.3.0/go.mod h1:P0PhA225dRGyv0WkgYjYKqgoxPdDPDFZDvHj60AGF5w= -github.com/gobuffalo/buffalo-pop v1.6.0/go.mod h1:vrEVNOBKe042HjSNMj72J4FgER/VG6lt4xW6WMpTdlY= -github.com/gobuffalo/buffalo-pop v1.7.0/go.mod h1:UB5HHeFucJG7esTPUPjinBaJTEpVoREJHfSJJELnyeI= -github.com/gobuffalo/buffalo-pop v1.9.0/go.mod h1:MfrkBg0iN9+RdlxdHHAqqGFAC/iyCfTiKqH7Jvt+vhE= -github.com/gobuffalo/buffalo-pop v1.10.0/go.mod h1:C3/cFXB8Zd38XiGgHFdE7dw3Wu9MOKeD7bfELQicGPI= -github.com/gobuffalo/buffalo-pop v1.12.0/go.mod h1:pO2ONSJOCjyroGp4BwVHfMkfd7sLg1U9BvMJqRy6Otk= -github.com/gobuffalo/buffalo-pop v1.13.0/go.mod h1:h+zfyXCUFwihFqz6jmo9xsdsZ1Tm9n7knYpQjW0gv18= -github.com/gobuffalo/buffalo-pop v1.16.0/go.mod h1:XYA72cNFvL6m1o7PZ+Z7Yd/WDQTPcOiuDukiHvEo2KY= -github.com/gobuffalo/buffalo-pop v1.17.2/go.mod h1:nyOm0mtmp9/+m2NaXrp+9SqtuKZslA7Ys2DBaT/t2n4= -github.com/gobuffalo/buffalo-pop v1.22.0/go.mod h1:S8uJpbC9PUMFA6ZWbPnbk3c32n4vJ32p5NLsREcz+H8= -github.com/gobuffalo/buffalo-pop v1.23.1 h1:AnxJQZu/ZN7HCm3L8YBJoNWc2UiwSe6UHv5S4DfXUDA= -github.com/gobuffalo/buffalo-pop v1.23.1/go.mod h1:Sb+fy/hLtxfhOrtLAJiL7JsKqazydmAVqp5rcHio/yg= -github.com/gobuffalo/buffalo-pop/v2 v2.3.0 h1:Xy8HVOf0gL9kkEAucPNMdSpwhUGy95DbQ0qTRTQBPOw= -github.com/gobuffalo/buffalo-pop/v2 v2.3.0/go.mod h1:JTPnhmIjK3IW8mNI9UFbngNw0HVobXtcVyAD/w9xMTE= -github.com/gobuffalo/clara v0.4.1/go.mod h1:3QgAPqYgPqAzhfGbNLlp4UztaZRi2SOg+ZrZwaq9L94= -github.com/gobuffalo/clara v0.6.0/go.mod h1:RKZxkcH80pLykRi2hLkoxGMxA8T06Dc9fN/pFvutMFY= -github.com/gobuffalo/clara v0.7.0/go.mod h1:pen7ZMmnuYUYVF/3BbnvidYVAbMEfkyO4O+Tc+FKICU= -github.com/gobuffalo/clara v0.9.1/go.mod h1:OQ3HmSqLQJHaMmKhuTkmBCvBLL4BhgjweNpywRGulWo= -github.com/gobuffalo/clara v0.10.1 h1:tY6AR1eFEXQwj2fUZVkjPaA47x8Rw5w5UiDaHnExlPM= -github.com/gobuffalo/clara v0.10.1/go.mod h1:XcB5V5Vx5wuq/cXZOV0kAPetk7CYxSLFG5YvpyTxzxI= -github.com/gobuffalo/clara/v2 v2.0.2 h1:3BEYfr5xVoS3bpv/12iz/sGER0PE0UmHF9Rq4Z754pc= -github.com/gobuffalo/clara/v2 v2.0.2/go.mod h1:bbPiHMLsf17cx+hTe0q7Y/yWN8KmpJjgir1t5MZuf0w= -github.com/gobuffalo/depgen v0.0.0-20190219190223-ba8c93fa0c2c/go.mod h1:CE/HUV4vDCXtJayRf6WoMWgezb1yH4QHg8GNK8FL0JI= -github.com/gobuffalo/depgen v0.0.0-20190315122043-8442b3fa16db/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= -github.com/gobuffalo/depgen v0.0.0-20190315124901-e02f65b90669/go.mod h1:yTQe8xo5pGIDOApkeO95DjePS4ZOSSSx+ItkqJHxUG4= -github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= -github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= -github.com/gobuffalo/depgen v0.1.1/go.mod h1:65EOv3g7CMe4kc8J1Ds+l2bjcwrWKGXkE4/vpRRLPWY= -github.com/gobuffalo/depgen v0.2.0/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= -github.com/gobuffalo/envy v1.6.4/go.mod h1:Abh+Jfw475/NWtYMEt+hnJWRiC8INKWibIMyNt1w2Mc= -github.com/gobuffalo/envy v1.6.5/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ= -github.com/gobuffalo/envy v1.6.6/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ= -github.com/gobuffalo/envy v1.6.7/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ= -github.com/gobuffalo/envy v1.6.8/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ= -github.com/gobuffalo/envy v1.6.9/go.mod h1:N+GkhhZ/93bGZc6ZKhJLP6+m+tCNPKwgSpH9kaifseQ= -github.com/gobuffalo/envy v1.6.10/go.mod h1:X0CFllQjTV5ogsnUrg+Oks2yTI+PU2dGYBJOEI2D1Uo= -github.com/gobuffalo/envy v1.6.11/go.mod h1:Fiq52W7nrHGDggFPhn2ZCcHw4u/rqXkqo+i7FB6EAcg= -github.com/gobuffalo/envy v1.6.12/go.mod h1:qJNrJhKkZpEW0glh5xP2syQHH5kgdmgsKss2Kk8PTP0= -github.com/gobuffalo/envy v1.6.13/go.mod h1:w9DJppgl51JwUFWWd/M/6/otrPtWV3WYMa+NNLunqKA= -github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/envy v1.7.1/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= github.com/gobuffalo/envy v1.8.1/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= github.com/gobuffalo/envy v1.9.0 h1:eZR0DuEgVLfeIb1zIKt3bT4YovIMf9O9LXQeCZLXpqE= github.com/gobuffalo/envy v1.9.0/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= -github.com/gobuffalo/events v1.0.3/go.mod h1:Txo8WmqScapa7zimEQIwgiJBvMECMe9gJjsKNPN3uZw= -github.com/gobuffalo/events v1.0.7/go.mod h1:z8txf6H9jWhQ5Scr7YPLWg/cgXBRj8Q4uYI+rsVCCSQ= -github.com/gobuffalo/events v1.0.8/go.mod h1:A5KyqT1sA+3GJiBE4QKZibse9mtOcI9nw8gGrDdqYGs= -github.com/gobuffalo/events v1.1.1/go.mod h1:Ia9OgHMco9pEhJaPrPQJ4u4+IZlkxYVco2VbJ2XgnAE= -github.com/gobuffalo/events v1.1.3/go.mod h1:9yPGWYv11GENtzrIRApwQRMYSbUgCsZ1w6R503fCfrk= -github.com/gobuffalo/events v1.1.4/go.mod h1:09/YRRgZHEOts5Isov+g9X2xajxdvOAcUuAHIX/O//A= -github.com/gobuffalo/events v1.1.5/go.mod h1:3YUSzgHfYctSjEjLCWbkXP6djH2M+MLaVRzb4ymbAK0= -github.com/gobuffalo/events v1.1.6/go.mod h1:H/3ZB9BA+WorMb/0F79UvU6u0Cyo2hU97WA51bG2ONY= -github.com/gobuffalo/events v1.1.7/go.mod h1:6fGqxH2ing5XMb3EYRq9LEkVlyPGs4oO/eLzh+S8CxY= -github.com/gobuffalo/events v1.1.8/go.mod h1:UFy+W6X6VbCWS8k2iT81HYX65dMtiuVycMy04cplt/8= -github.com/gobuffalo/events v1.1.9/go.mod h1:/0nf8lMtP5TkgNbzYxR6Bl4GzBy5s5TebgNTdRfRbPM= -github.com/gobuffalo/events v1.2.0/go.mod h1:pxvpvsKXKZNPtHuIxUV3K+g+KP5o4forzaeFj++bh68= -github.com/gobuffalo/events v1.3.1/go.mod h1:9JOkQVoyRtailYVE/JJ2ZQ/6i4gTjM5t2HsZK4C1cSA= -github.com/gobuffalo/events v1.4.0/go.mod h1:gQbNh681BwO+urxPpHHBiVD8Y+2lg17Wj2xuCMMKr8E= github.com/gobuffalo/events v1.4.1 h1:OLJIun6wRx4DOW19XoL/AoyjuJltqeOBFH3q8cDvNb8= github.com/gobuffalo/events v1.4.1/go.mod h1:SjXgWKpeSuvQDvGhgMz5IXx3Czu+IbL+XPLR41NvVQY= -github.com/gobuffalo/fizz v1.0.12/go.mod h1:C0sltPxpYK8Ftvf64kbsQa2yiCZY4RZviurNxXdAKwc= -github.com/gobuffalo/fizz v1.0.15/go.mod h1:EI3mEpjImuji6Bwu++N2uXhljQwOhwtimZQJ89zwyF4= -github.com/gobuffalo/fizz v1.0.16/go.mod h1:EI3mEpjImuji6Bwu++N2uXhljQwOhwtimZQJ89zwyF4= -github.com/gobuffalo/fizz v1.1.2/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc= -github.com/gobuffalo/fizz v1.1.3/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc= -github.com/gobuffalo/fizz v1.3.0/go.mod h1:THqzNTlNxNaF5hq3ddp16SnEcl2m83bTeTzJEoD+kqc= -github.com/gobuffalo/fizz v1.5.0/go.mod h1:Uu3ch14M4S7LDU7LAP1GQ+KNCRmZYd05Gqasc96XLa0= -github.com/gobuffalo/fizz v1.6.0/go.mod h1:V4V6EA8eYu/L43y6gZj7mjmPkigl9m+Eu3Pe+SWQRRg= -github.com/gobuffalo/fizz v1.6.1/go.mod h1:V4V6EA8eYu/L43y6gZj7mjmPkigl9m+Eu3Pe+SWQRRg= -github.com/gobuffalo/fizz v1.8.0/go.mod h1:2LqJOOGUp1JpN9m54ac5jMQ1MpbNvSVbFi9BY+AEXOo= -github.com/gobuffalo/fizz v1.9.0/go.mod h1:2LqJOOGUp1JpN9m54ac5jMQ1MpbNvSVbFi9BY+AEXOo= -github.com/gobuffalo/fizz v1.9.2/go.mod h1:XJb7Do1keOPkaJnJ48OCjV+7ABQ7mbOqui2WfDobXTQ= -github.com/gobuffalo/fizz v1.9.5/go.mod h1:v9cFl56oXm+hNNayTsIQHnq209bTDUbIM8GYWCJw3TE= github.com/gobuffalo/fizz v1.10.0 h1:I8vad0PnmR+CLjSnZ5L5jlhBm4S88UIGOoZZL3/3e24= github.com/gobuffalo/fizz v1.10.0/go.mod h1:J2XGPO0AfJ1zKw7+2BA+6FEGAkyEsdCOLvN93WCT2WI= -github.com/gobuffalo/flect v0.0.0-20180907193754-dc14d8acaf9f/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= -github.com/gobuffalo/flect v0.0.0-20181002182613-4571df4b1daf/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= -github.com/gobuffalo/flect v0.0.0-20181007231023-ae7ed6bfe683/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= -github.com/gobuffalo/flect v0.0.0-20181018182602-fd24a256709f/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= -github.com/gobuffalo/flect v0.0.0-20181019110701-3d6f0b585514/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= -github.com/gobuffalo/flect v0.0.0-20181024204909-8f6be1a8c6c2/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= -github.com/gobuffalo/flect v0.0.0-20181104133451-1f6e9779237a/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= -github.com/gobuffalo/flect v0.0.0-20181108195648-8fe1b44cfe32/go.mod h1:rCiQgmAE4axgBNl3jZWzS5rETRYTGOsrixTRaCPzNdA= -github.com/gobuffalo/flect v0.0.0-20181109221320-179d36177b5b/go.mod h1:0HvNbHdfh+WOvDSIASqJOSxTOWSxCCUF++k/Y53v9rI= -github.com/gobuffalo/flect v0.0.0-20181114183036-47375f6d8328/go.mod h1:0HvNbHdfh+WOvDSIASqJOSxTOWSxCCUF++k/Y53v9rI= -github.com/gobuffalo/flect v0.0.0-20181210151238-24a2b68e0316/go.mod h1:en58vff74S9b99Eg42Dr+/9yPu437QjlNsO/hBYPuOk= -github.com/gobuffalo/flect v0.0.0-20190104192022-4af577e09bf2/go.mod h1:en58vff74S9b99Eg42Dr+/9yPu437QjlNsO/hBYPuOk= -github.com/gobuffalo/flect v0.0.0-20190117212819-a62e61d96794/go.mod h1:397QT6v05LkZkn07oJXXT6y9FCfwC8Pug0WA2/2mE9k= -github.com/gobuffalo/flect v0.0.0-20190205211104-b2cb381e56e0/go.mod h1:397QT6v05LkZkn07oJXXT6y9FCfwC8Pug0WA2/2mE9k= -github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= -github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= -github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= github.com/gobuffalo/flect v0.1.5/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/gobuffalo/flect v0.1.6/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= github.com/gobuffalo/flect v0.2.1/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc= github.com/gobuffalo/flect v0.2.3 h1:f/ZukRnSNA/DUpSNDadko7Qc0PhGvsew35p/2tu+CRY= github.com/gobuffalo/flect v0.2.3/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc= -github.com/gobuffalo/genny v0.0.0-20180924032338-7af3a40f2252/go.mod h1:tUTQOogrr7tAQnhajMSH6rv1BVev34H2sa1xNHMy94g= -github.com/gobuffalo/genny v0.0.0-20181003150629-3786a0744c5d/go.mod h1:WAd8HmjMVrnkAZbmfgH5dLBUchsZfqzp/WS5sQz+uTM= -github.com/gobuffalo/genny v0.0.0-20181005145118-318a41a134cc/go.mod h1:WAd8HmjMVrnkAZbmfgH5dLBUchsZfqzp/WS5sQz+uTM= -github.com/gobuffalo/genny v0.0.0-20181007153042-b8de7d566757/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA= -github.com/gobuffalo/genny v0.0.0-20181012161047-33e5f43d83a6/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA= -github.com/gobuffalo/genny v0.0.0-20181017160347-90a774534246/go.mod h1:+oG5Ljrw04czAHbPXREwaFojJbpUvcIy4DiOnbEJFTA= -github.com/gobuffalo/genny v0.0.0-20181019144442-df0a36fdd146/go.mod h1:IyRrGrQb/sbHu/0z9i5mbpZroIsdxjCYfj+zFiFiWZQ= -github.com/gobuffalo/genny v0.0.0-20181024195656-51392254bf53/go.mod h1:o9GEH5gn5sCKLVB5rHFC4tq40rQ3VRUzmx6WwmaqISE= -github.com/gobuffalo/genny v0.0.0-20181025145300-af3f81d526b8/go.mod h1:uZ1fFYvdcP8mu0B/Ynarf6dsGvp7QFIpk/QACUuFUVI= -github.com/gobuffalo/genny v0.0.0-20181027191429-94d6cfb5c7fc/go.mod h1:x7SkrQQBx204Y+O9EwRXeszLJDTaWN0GnEasxgLrQTA= -github.com/gobuffalo/genny v0.0.0-20181027195209-3887b7171c4f/go.mod h1:JbKx8HSWICu5zyqWOa0dVV1pbbXOHusrSzQUprW6g+w= -github.com/gobuffalo/genny v0.0.0-20181030163439-ed103521b8ec/go.mod h1:3Xm9z7/2oRxlB7PSPLxvadZ60/0UIek1YWmcC7QSaVs= -github.com/gobuffalo/genny v0.0.0-20181106193839-7dcb0924caf1/go.mod h1:x61yHxvbDCgQ/7cOAbJCacZQuHgB0KMSzoYcw5debjU= -github.com/gobuffalo/genny v0.0.0-20181107223128-f18346459dbe/go.mod h1:utQD3aKKEsdb03oR+Vi/6ztQb1j7pO10N3OBoowRcSU= -github.com/gobuffalo/genny v0.0.0-20181109163038-9539921b620f/go.mod h1:118bnhJR2oviiji++mZj0IH/IaFBCzwkWHaI4OQq5hQ= -github.com/gobuffalo/genny v0.0.0-20181110202416-7b7d8756a9e2/go.mod h1:118bnhJR2oviiji++mZj0IH/IaFBCzwkWHaI4OQq5hQ= -github.com/gobuffalo/genny v0.0.0-20181111200257-599b33630ab4/go.mod h1:w+iD/cdtIpPDFax6LlUFuCdXFD0DLRUXsfp3IeT/Doc= -github.com/gobuffalo/genny v0.0.0-20181114215459-0a4decd77f5d/go.mod h1:kN2KZ8VgXF9VIIOj/GM0Eo7YK+un4Q3tTreKOf0q1ng= -github.com/gobuffalo/genny v0.0.0-20181119162812-e8ff4adce8bb/go.mod h1:BA9htSe4bZwBDJLe8CUkoqkypq3hn3+CkoHqVOW718E= -github.com/gobuffalo/genny v0.0.0-20181127225641-2d959acc795b/go.mod h1:l54xLXNkteX/PdZ+HlgPk1qtcrgeOr3XUBBPDbH+7CQ= -github.com/gobuffalo/genny v0.0.0-20181128191930-77e34f71ba2a/go.mod h1:FW/D9p7cEEOqxYA71/hnrkOWm62JZ5ZNxcNIVJEaWBU= -github.com/gobuffalo/genny v0.0.0-20181203165245-fda8bcce96b1/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM= -github.com/gobuffalo/genny v0.0.0-20181203201232-849d2c9534ea/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM= -github.com/gobuffalo/genny v0.0.0-20181206121324-d6fb8a0dbe36/go.mod h1:wpNSANu9UErftfiaAlz1pDZclrYzLtO5lALifODyjuM= -github.com/gobuffalo/genny v0.0.0-20181207164119-84844398a37d/go.mod h1:y0ysCHGGQf2T3vOhCrGHheYN54Y/REj0ayd0Suf4C/8= -github.com/gobuffalo/genny v0.0.0-20181211165820-e26c8466f14d/go.mod h1:sHnK+ZSU4e2feXP3PA29ouij6PUEiN+RCwECjCTB3yM= -github.com/gobuffalo/genny v0.0.0-20190104222617-a71664fc38e7/go.mod h1:QPsQ1FnhEsiU8f+O0qKWXz2RE4TiDqLVChWkBuh1WaY= -github.com/gobuffalo/genny v0.0.0-20190112155932-f31a84fcacf5/go.mod h1:CIaHCrSIuJ4il6ka3Hub4DR4adDrGoXGEEt2FbBxoIo= -github.com/gobuffalo/genny v0.0.0-20190124191459-3310289fa4b4/go.mod h1:yIRqxhZV2sAzb+B3iPUMLauTRrYP8tJUlZ1zV9teKik= -github.com/gobuffalo/genny v0.0.0-20190131150032-1045e97d19fb/go.mod h1:yIRqxhZV2sAzb+B3iPUMLauTRrYP8tJUlZ1zV9teKik= -github.com/gobuffalo/genny v0.0.0-20190131190646-008a76242145/go.mod h1:NJvPZJxb9M4z790P6N2SMZKSUYpASpEvLuUWnHGKzb4= -github.com/gobuffalo/genny v0.0.0-20190219203444-c95082806342/go.mod h1:3BLT+Vs94EEz3fKR8WWOkYpL6c1tdJcZUNCe3LZAnvQ= -github.com/gobuffalo/genny v0.0.0-20190315121735-8b38fb089e88/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= -github.com/gobuffalo/genny v0.0.0-20190315124720-e16e52a93c79/go.mod h1:nKeefjbhYowo36ys9nG9VUvD9FRIS0p3BC2JFfcOucM= -github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= -github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= -github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= -github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= -github.com/gobuffalo/genny v0.2.0/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= -github.com/gobuffalo/genny v0.3.0/go.mod h1:ywJ2CoXrTZj7rbS8HTbzv7uybnLKlsNSBhEQ+yFI3E8= -github.com/gobuffalo/genny v0.4.0/go.mod h1:Kdo8wsw5zmooVvEfMkfv4JI9Ogz/PMvBNvl133soylI= -github.com/gobuffalo/genny v0.4.1/go.mod h1:dpded+KBgICFciAb+6R5Lo+1VxzofjqHgKqFYIL8M7U= -github.com/gobuffalo/genny v0.6.0 h1:d7c6d66ZrTHHty01hDX1/TcTWvAJQxRZl885KWX5kHY= -github.com/gobuffalo/genny v0.6.0/go.mod h1:Vigx9VDiNscYpa/LwrURqGXLSIbzTfapt9+K6gF1kTA= github.com/gobuffalo/genny/v2 v2.0.5/go.mod h1:kRkJuAw9mdI37AiEYjV4Dl+TgkBDYf8HZVjLkqe5eBg= -github.com/gobuffalo/genny/v2 v2.0.6 h1:5M1Cl4pkS3mIl/X5s27nhq/o/2S8e5cPXmlcGwSDBI4= -github.com/gobuffalo/genny/v2 v2.0.6/go.mod h1:3tUHnhxSOSe1wmx669WaBtIA3OSvtVkwRTvJFsH+d9o= -github.com/gobuffalo/gitgen v0.0.0-20190219185555-91c2c5f0aad5/go.mod h1:ZzGIrxBvCJEluaU4i3CN0GFlu1Qmb3yK8ziV02evJ1E= -github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= -github.com/gobuffalo/github_flavored_markdown v1.0.4/go.mod h1:uRowCdK+q8d/RF0Kt3/DSalaIXbb0De/dmTqMQdkQ4I= -github.com/gobuffalo/github_flavored_markdown v1.0.5/go.mod h1:U0643QShPF+OF2tJvYNiYDLDGDuQmJZXsf/bHOJPsMY= -github.com/gobuffalo/github_flavored_markdown v1.0.7/go.mod h1:w93Pd9Lz6LvyQXEG6DktTPHkOtCbr+arAD5mkwMzXLI= github.com/gobuffalo/github_flavored_markdown v1.1.0 h1:8Zzj4fTRl/OP2R7sGerzSf6g2nEJnaBEJe7UAOiEvbQ= github.com/gobuffalo/github_flavored_markdown v1.1.0/go.mod h1:TSpTKWcRTI0+v7W3x8dkSKMLJSUpuVitlptCkpeY8ic= -github.com/gobuffalo/gogen v0.0.0-20190219194924-d32a17ad9761/go.mod h1:v47C8sid+ZM2qK+YpQ2MGJKssKAqyTsH1wl/pTCPdz8= -github.com/gobuffalo/gogen v0.0.0-20190224213239-1c6076128bbc/go.mod h1:tQqPADZKflmJCR4FHRHYNPP79cXPICyxUiUHyhuXtqg= -github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= -github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= -github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= -github.com/gobuffalo/gogen v0.2.0/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= -github.com/gobuffalo/helpers v0.0.0-20190422082217-384f90c6579f/go.mod h1:g0I3qKQEyJxwnHtEmLugD75eoOiWxEtibcV62tYah9w= -github.com/gobuffalo/helpers v0.0.0-20190506214229-8e6f634af7c3/go.mod h1:HlNpmw2+Rjx882VUf6hJfNJs5wpNRzX02KcqCXDlLGc= -github.com/gobuffalo/helpers v0.2.1/go.mod h1:5UhA1EfGvyPZfzo9PqhKkSgmLolaTpnWYDbqCJcmiAE= -github.com/gobuffalo/helpers v0.2.2/go.mod h1:xYbzUdCUpVzLwLnqV8HIjT6hmG0Cs7YIBCJkNM597jw= -github.com/gobuffalo/helpers v0.2.4/go.mod h1:NX7v27yxPDOPTgUFYmJ5ow37EbxdoLraucOGvMNawyk= -github.com/gobuffalo/helpers v0.4.0/go.mod h1:2q/ZnVxCehM4/y1bNz3+wXsvWvWUY+iTUr7mPC6QqGQ= -github.com/gobuffalo/helpers v0.5.0/go.mod h1:stpgxJ2C7T99NLyAxGUnYMM2zAtBk5NKQR0SIbd05j4= github.com/gobuffalo/helpers v0.6.0/go.mod h1:pncVrer7x/KRvnL5aJABLAuT/RhKRR9klL6dkUOhyv8= github.com/gobuffalo/helpers v0.6.1/go.mod h1:wInbDi0vTJKZBviURTLRMFLE4+nF2uRuuL2fnlYo7w4= github.com/gobuffalo/helpers v0.6.2 h1:0caYR4GAtgZ/O0vTU2uyoMxtqRXUcKaIyRlRnw0GRgw= github.com/gobuffalo/helpers v0.6.2/go.mod h1:wInbDi0vTJKZBviURTLRMFLE4+nF2uRuuL2fnlYo7w4= -github.com/gobuffalo/here v0.2.3/go.mod h1:2a6G14FaAKOGJMK/5UNa4Og/+iyFS5cq3MnlvFR7YDk= github.com/gobuffalo/here v0.4.0/go.mod h1:bTNk/uKZgycuB358iR0D32dI9kHBClBGpXjW2HVHkNo= -github.com/gobuffalo/here v0.5.1/go.mod h1:wAG085dHOYqUpf+Ap+WOdrPTp5IYcDAs/x7PLa8Y5fM= -github.com/gobuffalo/here v0.6.0 h1:hYrd0a6gDmWxBM4TnrGw8mQg24iSVoIkHEk7FodQcBI= -github.com/gobuffalo/here v0.6.0/go.mod h1:wAG085dHOYqUpf+Ap+WOdrPTp5IYcDAs/x7PLa8Y5fM= -github.com/gobuffalo/httptest v1.0.2/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E= -github.com/gobuffalo/httptest v1.0.3/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E= -github.com/gobuffalo/httptest v1.0.4/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E= -github.com/gobuffalo/httptest v1.0.5/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E= -github.com/gobuffalo/httptest v1.0.6/go.mod h1:7T1IbSrg60ankme0aDLVnEY0h056g9M1/ZvpVThtB7E= -github.com/gobuffalo/httptest v1.1.0/go.mod h1:BIfCgiqCOotRc5xYwCcZN7IFYag4277Ynqjar/Ra3iI= -github.com/gobuffalo/httptest v1.2.0/go.mod h1:0KfourZCsapuvkljDMSr7YM+66kCt/rXv54YcWRWwhc= -github.com/gobuffalo/httptest v1.3.0/go.mod h1:Y4qebOsMH91XdB0cZuS8OUdAKHGV7hVDcjgzGupoYlk= -github.com/gobuffalo/httptest v1.4.0/go.mod h1:VDkgCFmIxAunkLNts49TC949NRLTtvyLKuN67o6hrXM= -github.com/gobuffalo/httptest v1.4.1/go.mod h1:F541Rwcu9Ypo1NBAsYxrCV0J6ibAGGEvhM3653G+u5I= github.com/gobuffalo/httptest v1.5.0 h1:kzrM6oEJccNN36cow9fLvgWfwUpUfwBBelsgA6Gghnk= github.com/gobuffalo/httptest v1.5.0/go.mod h1:F541Rwcu9Ypo1NBAsYxrCV0J6ibAGGEvhM3653G+u5I= -github.com/gobuffalo/licenser v0.0.0-20180924033006-eae28e638a42/go.mod h1:Ubo90Np8gpsSZqNScZZkVXXAo5DGhTb+WYFIjlnog8w= -github.com/gobuffalo/licenser v0.0.0-20181025145548-437d89de4f75/go.mod h1:x3lEpYxkRG/XtGCUNkio+6RZ/dlOvLzTI9M1auIwFcw= -github.com/gobuffalo/licenser v0.0.0-20181027200154-58051a75da95/go.mod h1:BzhaaxGd1tq1+OLKObzgdCV9kqVhbTulxOpYbvMQWS0= -github.com/gobuffalo/licenser v0.0.0-20181109171355-91a2a7aac9a7/go.mod h1:m+Ygox92pi9bdg+gVaycvqE8RVSjZp7mWw75+K5NPHk= -github.com/gobuffalo/licenser v0.0.0-20181116224424-1b7fd3f9cbb4/go.mod h1:icHYfF2FVDi6CpI8BK9Sy1ChkSijz/0GNN7Qzzdk6JE= -github.com/gobuffalo/licenser v0.0.0-20181128165715-cc7305f8abed/go.mod h1:oU9F9UCE+AzI/MueCKZamsezGOOHfSirltllOVeRTAE= -github.com/gobuffalo/licenser v0.0.0-20181128170751-82cc989582b9/go.mod h1:oU9F9UCE+AzI/MueCKZamsezGOOHfSirltllOVeRTAE= -github.com/gobuffalo/licenser v0.0.0-20181203160806-fe900bbede07/go.mod h1:ph6VDNvOzt1CdfaWC+9XwcBnlSTBz2j49PBwum6RFaU= -github.com/gobuffalo/licenser v0.0.0-20181211173111-f8a311c51159/go.mod h1:ve/Ue99DRuvnTaLq2zKa6F4KtHiYf7W046tDjuGYPfM= -github.com/gobuffalo/licenser v0.0.0-20190224205124-37799bc2ebf6/go.mod h1:ve/Ue99DRuvnTaLq2zKa6F4KtHiYf7W046tDjuGYPfM= -github.com/gobuffalo/licenser v0.0.0-20190329153211-c35c0a2813b2/go.mod h1:ZVWE6uKUE3rGf7sedUHWVjNWrEgxaUQLVFL+pQiWpfY= -github.com/gobuffalo/licenser v1.1.0/go.mod h1:ZVWE6uKUE3rGf7sedUHWVjNWrEgxaUQLVFL+pQiWpfY= -github.com/gobuffalo/licenser v1.2.0/go.mod h1:ZqDQ+UOqsXPovl65rbCr3Tye6+nKjT4ovwurjVxvMQM= -github.com/gobuffalo/licenser v1.4.0/go.mod h1:YkyTh2T/d7KECTh32j65auPV876gkJJk55aAdBfDehg= -github.com/gobuffalo/logger v0.0.0-20181022175615-46cfb361fc27/go.mod h1:8sQkgyhWipz1mIctHF4jTxmJh1Vxhp7mP8IqbljgJZo= -github.com/gobuffalo/logger v0.0.0-20181027144941-73d08d2bb969/go.mod h1:7uGg2duHKpWnN4+YmyKBdLXfhopkAdVM6H3nKbyFbz8= -github.com/gobuffalo/logger v0.0.0-20181027193913-9cf4dd0efe46/go.mod h1:7uGg2duHKpWnN4+YmyKBdLXfhopkAdVM6H3nKbyFbz8= -github.com/gobuffalo/logger v0.0.0-20181109185836-3feeab578c17/go.mod h1:oNErH0xLe+utO+OW8ptXMSA5DkiSEDW1u3zGIt8F9Ew= -github.com/gobuffalo/logger v0.0.0-20181117211126-8e9b89b7c264/go.mod h1:5etB91IE0uBlw9k756fVKZJdS+7M7ejVhmpXXiSFj0I= -github.com/gobuffalo/logger v0.0.0-20181127160119-5b956e21995c/go.mod h1:+HxKANrR9VGw9yN3aOAppJKvhO05ctDi63w4mDnKv2U= -github.com/gobuffalo/logger v0.0.0-20190224201004-be78ebfea0fa/go.mod h1:+HxKANrR9VGw9yN3aOAppJKvhO05ctDi63w4mDnKv2U= -github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= -github.com/gobuffalo/logger v1.0.0/go.mod h1:2zbswyIUa45I+c+FLXuWl9zSWEiVuthsk8ze5s8JvPs= -github.com/gobuffalo/logger v1.0.1/go.mod h1:2zbswyIUa45I+c+FLXuWl9zSWEiVuthsk8ze5s8JvPs= github.com/gobuffalo/logger v1.0.3/go.mod h1:SoeejUwldiS7ZsyCBphOGURmWdwUFXs0J7TCjEhjKxM= github.com/gobuffalo/logger v1.0.4 h1:HFJRqL7AmL4QNvQb9Grss9sDz+3u02VBgAoR03A7q4o= github.com/gobuffalo/logger v1.0.4/go.mod h1:/GRUdWb+gM3shxj0P5jiV6ecVS3X0aboJvl+hBu0HeE= -github.com/gobuffalo/makr v1.1.5/go.mod h1:Y+o0btAH1kYAMDJW/TX3+oAXEu0bmSLLoC9mIFxtzOw= -github.com/gobuffalo/makr v1.2.0/go.mod h1:SFQUrDtwDpmQ6BxKJqxg0emc4KkNzzvUtAtnHiVK/QQ= -github.com/gobuffalo/mapi v1.0.0/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/mapi v1.1.0/go.mod h1:pqQ1XAqvpy/JYtRwoieNps2yU8MFiMxBUpAm2FBtQ50= -github.com/gobuffalo/meta v0.0.0-20181018155829-df62557efcd3/go.mod h1:XTTOhwMNryif3x9LkTTBO/Llrveezd71u3quLd0u7CM= -github.com/gobuffalo/meta v0.0.0-20181018192820-8c6cef77dab3/go.mod h1:E94EPzx9NERGCY69UWlcj6Hipf2uK/vnfrF4QD0plVE= -github.com/gobuffalo/meta v0.0.0-20181025145500-3a985a084b0a/go.mod h1:YDAKBud2FP7NZdruCSlmTmDOZbVSa6bpK7LJ/A/nlKg= -github.com/gobuffalo/meta v0.0.0-20181109154556-f76929ccd5fa/go.mod h1:1rYI5QsanV6cLpT1BlTAkrFi9rtCZrGkvSK8PglwfS8= -github.com/gobuffalo/meta v0.0.0-20181114191255-b130ebedd2f7/go.mod h1:K6cRZ29ozr4Btvsqkjvg5nDFTLOgTqf03KA70Ks0ypE= -github.com/gobuffalo/meta v0.0.0-20181116202903-8850e47774f5/go.mod h1:K6cRZ29ozr4Btvsqkjvg5nDFTLOgTqf03KA70Ks0ypE= -github.com/gobuffalo/meta v0.0.0-20181127070345-0d7e59dd540b/go.mod h1:RLO7tMvE0IAKAM8wny1aN12pvEKn7EtkBLkUZR00Qf8= -github.com/gobuffalo/meta v0.0.0-20190120163247-50bbb1fa260d/go.mod h1:KKsH44nIK2gA8p0PJmRT9GvWJUdphkDUA8AJEvFWiqM= -github.com/gobuffalo/meta v0.0.0-20190121163014-ecaa953cbfb3/go.mod h1:KLfkGnS+Tucc+iTkUcAUBtxpwOJGfhw2pHRLddPxMQY= -github.com/gobuffalo/meta v0.0.0-20190126124307-c8fb6f4eb5a9/go.mod h1:zoh6GLgkk9+iI/62dST4amAuVAczZrBXoAk/t64n7Ew= -github.com/gobuffalo/meta v0.0.0-20190207205153-50a99e08b8cf/go.mod h1:+VGfK9Jm9I7oJyFeJzIT6omCPvrDktzAtpHJKaieugY= -github.com/gobuffalo/meta v0.0.0-20190320152240-a5320142224a/go.mod h1:+VGfK9Jm9I7oJyFeJzIT6omCPvrDktzAtpHJKaieugY= -github.com/gobuffalo/meta v0.0.0-20190329152330-e161e8a93e3b/go.mod h1:mCRSy5F47tjK8yaIDcJad4oe9fXxY5gLrx3Xx2spK+0= -github.com/gobuffalo/meta v0.1.0/go.mod h1:vAgu28tKdaPIkt8j60wYv1dLuJ1UwOmAjZtYOnLJlko= -github.com/gobuffalo/meta v0.2.0/go.mod h1:KZ9Hk/o+kFpwRhzUO95EOuxf3jXU4GleCTUDSTpe3hQ= -github.com/gobuffalo/meta v0.2.1/go.mod h1:KZ9Hk/o+kFpwRhzUO95EOuxf3jXU4GleCTUDSTpe3hQ= github.com/gobuffalo/meta v0.3.0 h1:F0BFeZuQ1UmsHAVBgsnzolheLmv11t2GQ+53OFOP7lk= github.com/gobuffalo/meta v0.3.0/go.mod h1:cpr6mrUX5H/B4wEP86Gdq568TK4+dKUD8oRPl698RUw= -github.com/gobuffalo/mw-basicauth v1.0.3/go.mod h1:dg7+ilMZOKnQFHDefUzUHufNyTswVUviCBgF244C1+0= -github.com/gobuffalo/mw-basicauth v1.0.6/go.mod h1:RFyeGeDLZlVgp/eBflqu2eavFqyv0j0fVVP87WPYFwY= -github.com/gobuffalo/mw-basicauth v1.0.7/go.mod h1:xJ9/OSiOWl+kZkjaSun62srODr3Cx8OB4AKr+G4FlS4= -github.com/gobuffalo/mw-contenttype v0.0.0-20180802152300-74f5a47f4d56/go.mod h1:7EvcmzBbeCvFtQm5GqF9ys6QnCxz2UM1x0moiWLq1No= -github.com/gobuffalo/mw-contenttype v0.0.0-20190129203934-2554e742333b/go.mod h1:7x87+mDrr9Peh7AqhOtESyJLanMd2zQNz2Hts+vtBoE= -github.com/gobuffalo/mw-csrf v0.0.0-20180802151833-446ff26e108b/go.mod h1:sbGtb8DmDZuDUQoxjr8hG1ZbLtZboD9xsn6p77ppcHo= -github.com/gobuffalo/mw-csrf v0.0.0-20190129204204-25460a055517/go.mod h1:o5u+nnN0Oa7LBeDYH9QP36qeMPnXV9qbVnbZ4D+Kb0Q= -github.com/gobuffalo/mw-forcessl v0.0.0-20180802152810-73921ae7a130/go.mod h1:JvNHRj7bYNAMUr/5XMkZaDcw3jZhUZpsmzhd//FFWmQ= -github.com/gobuffalo/mw-i18n v0.0.0-20180802152014-e3060b7e13d6/go.mod h1:91AQfukc52A6hdfIfkxzyr+kpVYDodgAeT5cjX1UIj4= -github.com/gobuffalo/mw-i18n v0.0.0-20181027200759-09e0c99be4d3/go.mod h1:1PpGPgqP8VsfUppgBA9FrTOXjI6X9gjqhh/8dmg48lg= -github.com/gobuffalo/mw-i18n v0.0.0-20190129204410-552713a3ebb4/go.mod h1:rBg2eHxsyxVjtYra6fGy4GSF5C8NysOvz+Znnzk42EM= -github.com/gobuffalo/mw-paramlogger v0.0.0-20181005191442-d6ee392ec72e/go.mod h1:6OJr6VwSzgJMqWMj7TYmRUqzNe2LXu/W1rRW4MAz/ME= -github.com/gobuffalo/mw-paramlogger v0.0.0-20190129202837-395da1998525/go.mod h1:gEo/ABCsKqvpp/KCxN2AIzDEe0OJUXbJ9293FYrXw+w= -github.com/gobuffalo/mw-tokenauth v0.0.0-20181001105134-8545f626c189/go.mod h1:UqBF00IfKvd39ni5+yI5MLMjAf4gX7cDKN/26zDOD6c= -github.com/gobuffalo/mw-tokenauth v0.0.0-20190129201951-95847f29c5c8/go.mod h1:n2oa93LHGD94hGI+PoJO+6cf60DNrXrAIv9L/Ke3GXc= -github.com/gobuffalo/nulls v0.0.0-20190305142546-85f3c9250d87/go.mod h1:KhaLCW+kFA/G97tZkmVkIxhRw3gvZszJn7JjPLI3gtI= -github.com/gobuffalo/nulls v0.1.0/go.mod h1:/HRtuDRoVoN5fABk3J6jzZaGEdcIZEMs0qczj71eKZY= github.com/gobuffalo/nulls v0.2.0/go.mod h1:w4q8RoSCEt87Q0K0sRIZWYeIxkxog5mh3eN3C/n+dUc= github.com/gobuffalo/nulls v0.4.0 h1:xi+JHGWIetYqLmS520dSWc8Ifj1P0aNXKTVDMVsPXmw= github.com/gobuffalo/nulls v0.4.0/go.mod h1:2KmsoLnMrxpwPLN5LmBbm6tmttHSIZr/v/OdGsATM3M= -github.com/gobuffalo/packd v0.0.0-20181027182251-01ad393492c8/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc= -github.com/gobuffalo/packd v0.0.0-20181027190505-aafc0d02c411/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc= -github.com/gobuffalo/packd v0.0.0-20181027194105-7ae579e6d213/go.mod h1:SmdBdhj6uhOsg1Ui4SFAyrhuc7U4VCildosO5IDJ3lc= -github.com/gobuffalo/packd v0.0.0-20181028162033-6d52e0eabf41/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI= -github.com/gobuffalo/packd v0.0.0-20181029140631-cf76bd87a5a6/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI= -github.com/gobuffalo/packd v0.0.0-20181031195726-c82734870264/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI= -github.com/gobuffalo/packd v0.0.0-20181103221656-16c4ed88b296/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI= -github.com/gobuffalo/packd v0.0.0-20181104210303-d376b15f8e96/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI= -github.com/gobuffalo/packd v0.0.0-20181111195323-b2e760a5f0ff/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI= -github.com/gobuffalo/packd v0.0.0-20181114190715-f25c5d2471d7/go.mod h1:Yf2toFaISlyQrr5TfO3h6DB9pl9mZRmyvBGQb/aQ/pI= -github.com/gobuffalo/packd v0.0.0-20181124090624-311c6248e5fb/go.mod h1:Foenia9ZvITEvG05ab6XpiD5EfBHPL8A6hush8SJ0o8= -github.com/gobuffalo/packd v0.0.0-20181207120301-c49825f8f6f4/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA= -github.com/gobuffalo/packd v0.0.0-20181212173646-eca3b8fd6687/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA= -github.com/gobuffalo/packd v0.0.0-20190224160250-d04dd98aca5b/go.mod h1:LYc0TGKFBBFTRC9dg2pcRcMqGCTMD7T2BIMP7OBuQAA= -github.com/gobuffalo/packd v0.0.0-20190315122247-83d601d65093/go.mod h1:LpEu7OkoplvlhztyAEePkS6JwcGgANdgGL5pB4Knxaw= -github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packd v0.2.0/go.mod h1:k2CkHP3bjbqL2GwxwhxUy1DgnlbW644hkLC9iIUvZwY= github.com/gobuffalo/packd v0.3.0/go.mod h1:zC7QkmNkYVGKPw4tHpBQ+ml7W/3tIebgeo1b36chA3Q= github.com/gobuffalo/packd v1.0.0 h1:6ERZvJHfe24rfFmA9OaoKBdC7+c9sydrytMg8SdFGBM= github.com/gobuffalo/packd v1.0.0/go.mod h1:6VTc4htmJRFB7u1m/4LeMTWjFoYrUiBkU9Fdec9hrhI= -github.com/gobuffalo/packr v1.13.7/go.mod h1:KkinLIn/n6+3tVXMwg6KkNvWwVsrRAz4ph+jgpk3Z24= -github.com/gobuffalo/packr v1.15.0/go.mod h1:t5gXzEhIviQwVlNx/+3SfS07GS+cZ2hn76WLzPp6MGI= -github.com/gobuffalo/packr v1.15.1/go.mod h1:IeqicJ7jm8182yrVmNbM6PR4g79SjN9tZLH8KduZZwE= -github.com/gobuffalo/packr v1.16.0/go.mod h1:Yx/lcR/7mDLXhuJSzsz2MauD/HUwSc+EK6oigMRGGsM= -github.com/gobuffalo/packr v1.19.0/go.mod h1:MstrNkfCQhd5o+Ct4IJ0skWlxN8emOq8DsoT1G98VIU= -github.com/gobuffalo/packr v1.20.0/go.mod h1:JDytk1t2gP+my1ig7iI4NcVaXr886+N0ecUga6884zw= -github.com/gobuffalo/packr v1.21.0/go.mod h1:H00jGfj1qFKxscFJSw8wcL4hpQtPe1PfU2wa6sg/SR0= -github.com/gobuffalo/packr v1.21.5/go.mod h1:zCvDxrZzFmq5Xd7Jw4vaGe/OYwzuXnma31D2EbTHMWk= -github.com/gobuffalo/packr v1.21.7/go.mod h1:73tmYjwi4Cvb1eNiAwpmrzZ0gxVA4KBqVSZ2FNeJodM= -github.com/gobuffalo/packr v1.21.9/go.mod h1:GC76q6nMzRtR+AEN/VV4w0z2/4q7SOaEmXh3Ooa8sOE= -github.com/gobuffalo/packr v1.22.0/go.mod h1:Qr3Wtxr3+HuQEwWqlLnNW4t1oTvK+7Gc/Rnoi/lDFvA= -github.com/gobuffalo/packr v1.24.0/go.mod h1:p9Sgang00I1hlr1ub+tgI9AQdFd4f+WH1h62jYpzetM= -github.com/gobuffalo/packr v1.24.1/go.mod h1:absPnW/XUUa4DmIh5ga7AipGXXg0DOcd5YWKk5RZs8Y= -github.com/gobuffalo/packr v1.25.0 h1:NtPK45yOKFdTKHTvRGKL+UIKAKmJVWIVJOZBDI/qEdY= -github.com/gobuffalo/packr v1.25.0/go.mod h1:NqsGg8CSB2ZD+6RBIRs18G7aZqdYDlYNNvsSqP6T4/U= -github.com/gobuffalo/packr/v2 v2.0.0-rc.5/go.mod h1:e6gmOfhf3KmT4zl2X/NDRSfBXk2oV4TXZ+NNOM0xwt8= -github.com/gobuffalo/packr/v2 v2.0.0-rc.7/go.mod h1:BzhceHWfF3DMAkbPUONHYWs63uacCZxygFY1b4H9N2A= -github.com/gobuffalo/packr/v2 v2.0.0-rc.8/go.mod h1:y60QCdzwuMwO2R49fdQhsjCPv7tLQFR0ayzxxla9zes= -github.com/gobuffalo/packr/v2 v2.0.0-rc.9/go.mod h1:fQqADRfZpEsgkc7c/K7aMew3n4aF1Kji7+lIZeR98Fc= -github.com/gobuffalo/packr/v2 v2.0.0-rc.10/go.mod h1:4CWWn4I5T3v4c1OsJ55HbHlUEKNWMITG5iIkdr4Px4w= -github.com/gobuffalo/packr/v2 v2.0.0-rc.11/go.mod h1:JoieH/3h3U4UmatmV93QmqyPUdf4wVM9HELaHEu+3fk= -github.com/gobuffalo/packr/v2 v2.0.0-rc.12/go.mod h1:FV1zZTsVFi1DSCboO36Xgs4pzCZBjB/tDV9Cz/lSaR8= -github.com/gobuffalo/packr/v2 v2.0.0-rc.13/go.mod h1:2Mp7GhBFMdJlOK8vGfl7SYtfMP3+5roE39ejlfjw0rA= -github.com/gobuffalo/packr/v2 v2.0.0-rc.14/go.mod h1:06otbrNvDKO1eNQ3b8hst+1010UooI2MFg+B2Ze4MV8= -github.com/gobuffalo/packr/v2 v2.0.0-rc.15/go.mod h1:IMe7H2nJvcKXSF90y4X1rjYIRlNMJYCxEhssBXNZwWs= -github.com/gobuffalo/packr/v2 v2.0.0/go.mod h1:7McfLpSxaPUoSQm7gYpTZRQSK63mX8EKzzYSEFKvfkM= -github.com/gobuffalo/packr/v2 v2.0.1/go.mod h1:tp5/5A2e67F1lUGTiNadtA2ToP045+mvkWzaqMCsZr4= -github.com/gobuffalo/packr/v2 v2.0.2/go.mod h1:6Y+2NY9cHDlrz96xkJG8bfPwLlCdJVS/irhNJmwD7kM= -github.com/gobuffalo/packr/v2 v2.0.6/go.mod h1:/TYKOjadT7P9jRWZtj4BRTgeXy2tIYntifGkD+aM2KY= -github.com/gobuffalo/packr/v2 v2.0.7/go.mod h1:1SBFAIr3YnxYdJRyrceR7zhOrhV/YhHzOjDwA9LLZ5Y= -github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= -github.com/gobuffalo/packr/v2 v2.0.10/go.mod h1:n90ZuXIc2KN2vFAOQascnPItp9A2g9QYSvYvS3AjQEM= -github.com/gobuffalo/packr/v2 v2.1.0/go.mod h1:n90ZuXIc2KN2vFAOQascnPItp9A2g9QYSvYvS3AjQEM= -github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= -github.com/gobuffalo/packr/v2 v2.3.2/go.mod h1:93elRVdDhpUgox9GnXswWK5dzpVBQsnlQjnnncSLoiU= -github.com/gobuffalo/packr/v2 v2.4.0/go.mod h1:ra341gygw9/61nSjAbfwcwh8IrYL4WmR4IsPkPBhQiY= -github.com/gobuffalo/packr/v2 v2.5.1/go.mod h1:8f9c96ITobJlPzI44jj+4tHnEKNt0xXWSVlXRN9X1Iw= -github.com/gobuffalo/packr/v2 v2.5.2/go.mod h1:sgEE1xNZ6G0FNN5xn9pevVu4nywaxHvgup67xisti08= -github.com/gobuffalo/packr/v2 v2.5.3/go.mod h1:sgEE1xNZ6G0FNN5xn9pevVu4nywaxHvgup67xisti08= -github.com/gobuffalo/packr/v2 v2.6.0/go.mod h1:sgEE1xNZ6G0FNN5xn9pevVu4nywaxHvgup67xisti08= -github.com/gobuffalo/packr/v2 v2.7.1/go.mod h1:qYEvAazPaVxy7Y7KR0W8qYEE+RymX74kETFqjFoFlOc= github.com/gobuffalo/packr/v2 v2.8.0/go.mod h1:PDk2k3vGevNE3SwVyVRgQCCXETC9SaONCNSXT1Q8M1g= github.com/gobuffalo/packr/v2 v2.8.1 h1:tkQpju6i3EtMXJ9uoF5GT6kB+LMTimDWD8Xvbz6zDVA= github.com/gobuffalo/packr/v2 v2.8.1/go.mod h1:c/PLlOuTU+p3SybaJATW3H6lX/iK7xEz5OeMf+NnJpg= -github.com/gobuffalo/plush v3.7.16+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= -github.com/gobuffalo/plush v3.7.20+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= -github.com/gobuffalo/plush v3.7.21+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= -github.com/gobuffalo/plush v3.7.22+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= -github.com/gobuffalo/plush v3.7.23+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= -github.com/gobuffalo/plush v3.7.30+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= -github.com/gobuffalo/plush v3.7.31+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= -github.com/gobuffalo/plush v3.7.32+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= -github.com/gobuffalo/plush v3.7.33+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= -github.com/gobuffalo/plush v3.7.34+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= -github.com/gobuffalo/plush v3.8.0+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= -github.com/gobuffalo/plush v3.8.2+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= -github.com/gobuffalo/plush v3.8.3+incompatible h1:kzvUTnFPhwyfPEsx7U7LI05/IIslZVGnAlMA1heWub8= -github.com/gobuffalo/plush v3.8.3+incompatible/go.mod h1:rQ4zdtUUyZNqULlc6bqd5scsPfLKfT0+TGMChgduDvI= github.com/gobuffalo/plush/v4 v4.0.0/go.mod h1:ErFS3UxKqEb8fpFJT7lYErfN/Nw6vHGiDMTjxpk5bQ0= github.com/gobuffalo/plush/v4 v4.1.5 h1:vXkdb99kUqlgJMcdW4KeewnZgwbo26heEDdTdJTTUi4= github.com/gobuffalo/plush/v4 v4.1.5/go.mod h1:ErFS3UxKqEb8fpFJT7lYErfN/Nw6vHGiDMTjxpk5bQ0= -github.com/gobuffalo/plushgen v0.0.0-20181128164830-d29dcb966cb2/go.mod h1:r9QwptTFnuvSaSRjpSp4S2/4e2D3tJhARYbvEBcKSb4= -github.com/gobuffalo/plushgen v0.0.0-20181203163832-9fc4964505c2/go.mod h1:opEdT33AA2HdrIwK1aibqnTJDVVKXC02Bar/GT1YRVs= -github.com/gobuffalo/plushgen v0.0.0-20181207152837-eedb135bd51b/go.mod h1:Lcw7HQbEVm09sAQrCLzIxuhFbB3nAgp4c55E+UlynR0= -github.com/gobuffalo/plushgen v0.0.0-20190104222512-177cd2b872b3/go.mod h1:tYxCozi8X62bpZyKXYHw1ncx2ZtT2nFvG42kuLwYjoc= -github.com/gobuffalo/plushgen v0.0.0-20190224160205-347ea233336e/go.mod h1:tYxCozi8X62bpZyKXYHw1ncx2ZtT2nFvG42kuLwYjoc= -github.com/gobuffalo/plushgen v0.0.0-20190329152458-0555238fe0d9/go.mod h1:3U71v6HWZpVER1nInTXeAwdoRNsRd4W8aeIa1Lyp+Bk= -github.com/gobuffalo/plushgen v0.1.0/go.mod h1:NK33QLkRK/xKexiPFSxlWRT286F4yStZUa/Fbx0guvo= -github.com/gobuffalo/plushgen v0.1.2/go.mod h1:3U71v6HWZpVER1nInTXeAwdoRNsRd4W8aeIa1Lyp+Bk= -github.com/gobuffalo/pop v4.8.2+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.8.3+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.8.4+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.8.5+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.8.7+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.8.8+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.9.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.9.1+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.9.2+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.9.3+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.9.5+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.9.6+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.9.8+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.9.9+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.10.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.11.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.11.1+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.11.2+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.11.3+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.12.0+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.12.1+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.12.2+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop v4.13.1+incompatible h1:AhbqPxNOBN/DBb2DBaiBqzOXIBQXxEYzngHHJ+ytP4g= -github.com/gobuffalo/pop v4.13.1+incompatible/go.mod h1:DwBz3SD5SsHpTZiTubcsFWcVDpJWGsxjVjMPnkiThWg= -github.com/gobuffalo/pop/v5 v5.3.0/go.mod h1:vcEDhh6cJ3WVENqJDFt/6z7zNb7lLnlN8vj3n5G9rYA= -github.com/gobuffalo/pop/v5 v5.3.3/go.mod h1:Ey1hqzDLkWQKNEfsnafaz+3P1h/TrS++W9PmpGsNxvk= github.com/gobuffalo/pop/v5 v5.3.4 h1:VWH74icA8khG8SyWDAq6Ch00jcPiC4n436JMFh0lLm0= github.com/gobuffalo/pop/v5 v5.3.4/go.mod h1:UiVurv2aTKC7MuR27PnMrQjAazoLr8SoC/LuTKTS/tQ= -github.com/gobuffalo/release v1.0.35/go.mod h1:VtHFAKs61vO3wboCec5xr9JPTjYyWYcvaM3lclkc4x4= -github.com/gobuffalo/release v1.0.38/go.mod h1:VtHFAKs61vO3wboCec5xr9JPTjYyWYcvaM3lclkc4x4= -github.com/gobuffalo/release v1.0.42/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug= -github.com/gobuffalo/release v1.0.51/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug= -github.com/gobuffalo/release v1.0.52/go.mod h1:RPs7EtafH4oylgetOJpGP0yCZZUiO4vqHfTHJjSdpug= -github.com/gobuffalo/release v1.0.53/go.mod h1:FdF257nd8rqhNaqtDWFGhxdJ/Ig4J7VcS3KL7n/a+aA= -github.com/gobuffalo/release v1.0.54/go.mod h1:Pe5/RxRa/BE8whDpGfRqSI7D1a0evGK1T4JDm339tJc= -github.com/gobuffalo/release v1.0.61/go.mod h1:mfIO38ujUNVDlBziIYqXquYfBF+8FDHUjKZgYC1Hj24= -github.com/gobuffalo/release v1.0.63/go.mod h1:/7hQAikt0l8Iu/tAX7slC1qiOhD6Nb+3KMmn/htiUfc= -github.com/gobuffalo/release v1.0.72/go.mod h1:NP5NXgg/IX3M5XmHmWR99D687/3Dt9qZtTK/Lbwc1hU= -github.com/gobuffalo/release v1.0.74/go.mod h1:NP5NXgg/IX3M5XmHmWR99D687/3Dt9qZtTK/Lbwc1hU= -github.com/gobuffalo/release v1.1.1/go.mod h1:Sluak1Xd6kcp6snkluR1jeXAogdJZpFFRzTYRs/2uwg= -github.com/gobuffalo/release v1.1.3/go.mod h1:CuXc5/m+4zuq8idoDt1l4va0AXAn/OSs08uHOfMVr8E= -github.com/gobuffalo/release v1.1.6/go.mod h1:18naWa3kBsqO0cItXZNJuefCKOENpbbUIqRL1g+p6z0= -github.com/gobuffalo/release v1.2.2/go.mod h1:tkFFZua2N5WRxyGDk2cSwQjzkZ/apKKXl5T8P+kEO+E= -github.com/gobuffalo/release v1.2.5/go.mod h1:tkFFZua2N5WRxyGDk2cSwQjzkZ/apKKXl5T8P+kEO+E= -github.com/gobuffalo/release v1.4.0/go.mod h1:f4uUPnD9dxrWxVy9yy0k/mvDf3EzhFtf7/byl0tTdY4= -github.com/gobuffalo/release v1.7.0/go.mod h1:xH2NjAueVSY89XgC4qx24ojEQ4zQ9XCGVs5eXwJTkEs= -github.com/gobuffalo/release v1.8.3/go.mod h1:gCk/x5WD+aIGkPodO4CuLxdnhYn9Jgp7yFYxntK/8mk= -github.com/gobuffalo/release v1.13.4/go.mod h1:5Cc4TSNxP4QFV2ZUYcgPiBBV7YyRomHecGTQuuy26G4= -github.com/gobuffalo/shoulders v1.0.1/go.mod h1:V33CcVmaQ4gRUmHKwq1fiTXuf8Gp/qjQBUL5tHPmvbA= -github.com/gobuffalo/shoulders v1.0.3/go.mod h1:LqMcHhKRuBPMAYElqOe3POHiZ1x7Ry0BE8ZZ84Bx+k4= -github.com/gobuffalo/shoulders v1.0.4/go.mod h1:LqMcHhKRuBPMAYElqOe3POHiZ1x7Ry0BE8ZZ84Bx+k4= -github.com/gobuffalo/shoulders v1.1.0/go.mod h1:kcIJs3p7VqoBJ36Mzs+x767NyzTx0pxBvzZdWTWZYF8= -github.com/gobuffalo/shoulders v1.2.0/go.mod h1:Ia3oFybQWg4711cb2S5JkFSt9V4rMiLGusWZ6mRAdNM= -github.com/gobuffalo/syncx v0.0.0-20181120191700-98333ab04150/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= -github.com/gobuffalo/syncx v0.0.0-20181120194010-558ac7de985f/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= -github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= -github.com/gobuffalo/tags v2.0.11+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY= -github.com/gobuffalo/tags v2.0.14+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY= -github.com/gobuffalo/tags v2.0.15+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY= -github.com/gobuffalo/tags v2.0.16+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY= -github.com/gobuffalo/tags v2.1.0+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY= -github.com/gobuffalo/tags v2.1.5+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY= -github.com/gobuffalo/tags v2.1.7+incompatible h1:GUxxh34f9SI4U0Pj3ZqvopO9SlzuqSf+g4ZGSPSszt4= -github.com/gobuffalo/tags v2.1.7+incompatible/go.mod h1:9XmhOkyaB7UzvuY4UoZO4s67q8/xRMVJEaakauVQYeY= github.com/gobuffalo/tags/v3 v3.0.2/go.mod h1:ZQeN6TCTiwAFnS0dNcbDtSgZDwNKSpqajvVtt6mlYpA= github.com/gobuffalo/tags/v3 v3.1.0 h1:mzdCYooN2VsLRr8KIAdEZ1lh1Py7JSMsiEGCGata2AQ= github.com/gobuffalo/tags/v3 v3.1.0/go.mod h1:ZQeN6TCTiwAFnS0dNcbDtSgZDwNKSpqajvVtt6mlYpA= -github.com/gobuffalo/uuid v2.0.3+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE= -github.com/gobuffalo/uuid v2.0.4+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE= -github.com/gobuffalo/uuid v2.0.5+incompatible/go.mod h1:ErhIzkRhm0FtRuiE/PeORqcw4cVi1RtSpnwYrxuvkfE= -github.com/gobuffalo/validate v2.0.3+incompatible/go.mod h1:N+EtDe0J8252BgfzQUChBgfd6L93m9weay53EWFVsMM= -github.com/gobuffalo/validate v2.0.4+incompatible h1:ZTxozrIw8qQ5nfhShmc4izjYPTsPhfdXTdhXOd5OS9o= -github.com/gobuffalo/validate v2.0.4+incompatible/go.mod h1:N+EtDe0J8252BgfzQUChBgfd6L93m9weay53EWFVsMM= github.com/gobuffalo/validate/v3 v3.0.0/go.mod h1:HFpjq+AIiA2RHoQnQVTFKF/ZpUPXwyw82LgyDPxQ9r0= github.com/gobuffalo/validate/v3 v3.1.0 h1:/QQN920PciCfBs3aywtJTvDTHmBFMKoiwkshUWa/HLQ= github.com/gobuffalo/validate/v3 v3.1.0/go.mod h1:HFpjq+AIiA2RHoQnQVTFKF/ZpUPXwyw82LgyDPxQ9r0= -github.com/gobuffalo/x v0.0.0-20181003152136-452098b06085/go.mod h1:WevpGD+5YOreDJznWevcn8NTmQEW5STSBgIkpkjzqXc= -github.com/gobuffalo/x v0.0.0-20181007152206-913e47c59ca7/go.mod h1:9rDPXaB3kXdKWzMc4odGQQdG2e2DIEmANy5aSJ9yesY= -github.com/gobuffalo/x v0.0.0-20181025165825-f204f550da9d/go.mod h1:Qh2Pb/Ak1Ko2mzHlGPigrnxkhO4WTTCI1jJM58sbgtE= -github.com/gobuffalo/x v0.0.0-20181025192250-1ef645d63fe8/go.mod h1:AIlnMGlYXOCsoCntLPFLYtrJNS/pc2HD4IdSXH62TpU= -github.com/gobuffalo/x v0.0.0-20181109195216-5b3131238124/go.mod h1:GpdLUY6/Ztf/3FfxfwsLkDqAGZ0brhlh7LzIibHyZp0= -github.com/gobuffalo/x v0.0.0-20181110221217-14085ca3e1a9/go.mod h1:ig5vdn4+5IPtxgESlZWo1SSDyHKKef8EjVVKhY9kkIQ= -github.com/gobuffalo/x v0.0.0-20190224155809-6bb134105960/go.mod h1:ig5vdn4+5IPtxgESlZWo1SSDyHKKef8EjVVKhY9kkIQ= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/uuid v3.1.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= @@ -684,7 +208,6 @@ github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4er github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= @@ -693,7 +216,6 @@ github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= -github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -712,7 +234,6 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -726,10 +247,6 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -748,38 +265,26 @@ github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLe github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= -github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1/go.mod h1:YeAe0gNeiNT5hoiZRI4yiOky6jVdNvfO2N6Kav/HmxY= github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= -github.com/gorilla/sessions v1.1.2/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= -github.com/gorilla/sessions v1.1.3/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= @@ -801,7 +306,6 @@ github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= @@ -819,17 +323,12 @@ github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9 github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= -github.com/jackc/fake v0.0.0-20150926172116-812a484cc733/go.mod h1:WrMFNQdiFJ80sQsxDoMokWK1W5TQtxBFNpzWTD84ibQ= github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA= github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= -github.com/jackc/pgconn v1.0.1/go.mod h1:GgY/Lbj1VonNaVdNUHs9AwWom3yP2eymFQ1C8z9r/Lk= -github.com/jackc/pgconn v1.3.1/go.mod h1:2Ze5IP7prCiM28C4nc5LUoRaSyMDYZFE32L4gMJVtcU= github.com/jackc/pgconn v1.4.0/go.mod h1:Y2O3ZDF0q4mMacyWV3AstPJpeHXWGEetiFttmq5lahk= github.com/jackc/pgconn v1.5.0/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= github.com/jackc/pgconn v1.5.1-0.20200601181101-fa742c524853/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= -github.com/jackc/pgconn v1.6.0/go.mod h1:yeseQo4xhQbgyJs2c87RAXOH2i624N0Fh1KSPJya7qo= -github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= github.com/jackc/pgconn v1.8.1 h1:ySBX7Q87vOMqKU2bbmKbUvtYhauDFclYbNDYIE1/h6s= github.com/jackc/pgconn v1.8.1/go.mod h1:JV6m6b6jhjdmzchES0drzCcYcAHS1OPD5xu3OZ/lE2g= github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= @@ -844,9 +343,7 @@ github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= -github.com/jackc/pgproto3/v2 v2.0.0/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= github.com/jackc/pgproto3/v2 v2.0.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.0.2/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgproto3/v2 v2.0.6 h1:b1105ZGEMFe7aCvrT1Cca3VoVb4ZFMaFJLJcg/3zD+8= github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= @@ -856,25 +353,16 @@ github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01C github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= github.com/jackc/pgtype v1.2.0/go.mod h1:5m2OfMh1wTK7x+Fk952IDmI4nw3nPrvtQdM0ZT4WpC0= -github.com/jackc/pgtype v1.3.0/go.mod h1:b0JqxHvPmljG+HQ5IsvQ0yqeSi4nGcDTVjFoiLDb0Ik= github.com/jackc/pgtype v1.3.1-0.20200510190516-8cd94a14c75a/go.mod h1:vaogEUkALtxZMCH411K+tKzNpwzCKU+AnPzBKZ+I+Po= github.com/jackc/pgtype v1.3.1-0.20200606141011-f6355165a91c/go.mod h1:cvk9Bgu/VzJ9/lxTO5R5sf80p0DiucVtN7ZxvaC4GmQ= -github.com/jackc/pgtype v1.6.2/go.mod h1:JCULISAZBFGrHaOXIIFiyfzW5VY0GRitRr8NeJsrdig= github.com/jackc/pgtype v1.7.0 h1:6f4kVsW01QftE38ufBYxKciO6gyioXSC0ABIRLcZrGs= github.com/jackc/pgtype v1.7.0/go.mod h1:ZnHF+rMePVqDKaOfJVI4Q8IVvAQMryDlDkZnKOI75BE= -github.com/jackc/pgx v3.2.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= -github.com/jackc/pgx v3.3.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= -github.com/jackc/pgx v3.5.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= -github.com/jackc/pgx v3.6.2+incompatible h1:2zP5OD7kiyR3xzRYMhOcXVvkDZsImVXfj+yIyTQf3/o= -github.com/jackc/pgx v3.6.2+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= github.com/jackc/pgx/v4 v4.5.0/go.mod h1:EpAKPLdnTorwmPUUsqrPxy5fphV18j9q3wrfRXgo+kA= -github.com/jackc/pgx/v4 v4.6.0/go.mod h1:vPh43ZzxijXUVJ+t/EmXBtFmbFVO72cuneCT9oAlxAg= github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6fOLDxqtlyhe9UWgfIi9R8+8v8GKV5TRA/o= github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg= -github.com/jackc/pgx/v4 v4.10.1/go.mod h1:QlrWebbs3kqEZPHCTGyxecvzG6tvIsYu+A5b1raylkA= github.com/jackc/pgx/v4 v4.11.0 h1:J86tSWd3Y7nKjwT/43xZBvpi04keQWx8gNC2YkdJhZI= github.com/jackc/pgx/v4 v4.11.0/go.mod h1:i62xJgdrtVDsnL3U8ekyrQXEwGNTRoG7/8r+CIdYfcc= github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= @@ -882,13 +370,10 @@ github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= -github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmoiron/sqlx v0.0.0-20180614180643-0dae4fefe7c0/go.mod h1:IiEW3SEiiErVyFdH8NTuWjSifiEQKUoyK3LNqr2kCHU= github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/jmoiron/sqlx v1.3.3 h1:j82X0bf7oQ27XeqxicSZsTU5suPwKElg3oyxNn43iTk= github.com/jmoiron/sqlx v1.3.3/go.mod h1:2BljVx/86SuTyjE+aPYlHCTNvZrnJXghYGpNiXLBMCQ= -github.com/joho/godotenv v1.2.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= @@ -898,17 +383,8 @@ github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= -github.com/karrick/godirwalk v1.7.7/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= -github.com/karrick/godirwalk v1.7.8/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= -github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= -github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/karrick/godirwalk v1.10.12/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/karrick/godirwalk v1.12.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= -github.com/karrick/godirwalk v1.15.2/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= github.com/karrick/godirwalk v1.15.3/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= github.com/karrick/godirwalk v1.15.8/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw= @@ -918,7 +394,6 @@ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:C github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= @@ -927,7 +402,6 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -943,53 +417,20 @@ github.com/luna-duclos/instrumentedsql v1.1.3 h1:t7mvC0z1jUt5A0UQ6I/0H31ryymuQRn github.com/luna-duclos/instrumentedsql v1.1.3/go.mod h1:9J1njvFds+zN7y85EDhN9XNQLANWwZt2ULeIC8yMNYs= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/markbates/deplist v1.0.4/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM= -github.com/markbates/deplist v1.0.5/go.mod h1:gRRbPbbuA8TmMiRvaOzUlRfzfjeCCBqX2A6arxN01MM= -github.com/markbates/deplist v1.1.3/go.mod h1:BF7ioVzAJYEtzQN/os4rt8H8Ti3h0T7EoN+7eyALktE= -github.com/markbates/deplist v1.2.0/go.mod h1:dtsWLZ5bWoazbM0rCxZncQaAPifWbvHgBJk8UNI1Yfk= -github.com/markbates/deplist v1.3.0/go.mod h1:dtsWLZ5bWoazbM0rCxZncQaAPifWbvHgBJk8UNI1Yfk= github.com/markbates/errx v1.1.0 h1:QDFeR+UP95dO12JgW+tgi2UVfo0V8YBHiUIOaeBPiEI= github.com/markbates/errx v1.1.0/go.mod h1:PLa46Oex9KNbVDZhKel8v1OT7hD5JZ2eI7AHhA0wswc= -github.com/markbates/going v1.0.2/go.mod h1:UWCk3zm0UKefHZ7l8BNqi26UyiEMniznk8naLdTcy6c= -github.com/markbates/going v1.0.3/go.mod h1:fQiT6v6yQar9UD6bd/D4Z5Afbk9J6BBVBtLiyY4gp2o= -github.com/markbates/grift v1.0.4/go.mod h1:wbmtW74veyx+cgfwFhlnnMWqhoz55rnHR47oMXzsyVs= -github.com/markbates/grift v1.0.5/go.mod h1:EHmVIjOQoj/OOBDzlZ8RW0ZkvOtQ4xRHjrPvmfoiFaU= -github.com/markbates/grift v1.0.6/go.mod h1:2AUYA/+pODhwonRbYwsltPVPIztBzw5nIJEGiWgKMPM= -github.com/markbates/grift v1.1.0/go.mod h1:8N7ybWEcnMOvtSb0kW+dLJpYii9eq/FP3Gtu/cNPDTY= github.com/markbates/grift v1.5.0 h1:CZyK0k+8BdhQMgbwzuKMysC12y4tf9H004jAs/FutX4= github.com/markbates/grift v1.5.0/go.mod h1:1ssFm5gSGmzTkhi3Wfh/nqlU74J73TlAjoDMttQbpfY= -github.com/markbates/hmax v1.0.0/go.mod h1:cOkR9dktiESxIMu+65oc/r/bdY4bE8zZw3OLhLx0X2c= -github.com/markbates/hmax v1.1.0/go.mod h1:hhn8pJiRwNTEmNlxhfiTbL+CtEYiAX3wuhSf/kg/6wI= -github.com/markbates/inflect v1.0.0/go.mod h1:oTeZL2KHA7CUX6X+fovmK9OvIOFuqu0TwdQrZjLTh88= -github.com/markbates/inflect v1.0.1/go.mod h1:uv3UVNBe5qBIfCm8O8Q+DW+S1EopeyINj+Ikhc7rnCk= -github.com/markbates/inflect v1.0.3/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs= -github.com/markbates/inflect v1.0.4/go.mod h1:1fR9+pO2KHEO9ZRtto13gDwwZaAKstQzferVeWqbgNs= -github.com/markbates/oncer v0.0.0-20180924031910-e862a676800b/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/oncer v0.0.0-20180924034138-723ad0170a46/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/oncer v0.0.0-20181014194634-05fccaae8fc4/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= github.com/markbates/oncer v1.0.0 h1:E83IaVAHygyndzPimgUYJjbshhDTALZyXxvk9FOlQRY= github.com/markbates/oncer v1.0.0/go.mod h1:Z59JA581E9GP6w96jai+TGqafHPW+cPfRxz2aSZ0mcI= -github.com/markbates/refresh v1.4.10/go.mod h1:NDPHvotuZmTmesXxr95C9bjlw1/0frJwtME2dzcVKhc= -github.com/markbates/refresh v1.4.11/go.mod h1:awpJuyo4zgexB/JaHfmBX0sRdvOjo2dXwIayWIz9i3g= -github.com/markbates/refresh v1.5.0/go.mod h1:ZYMLkxV+x7wXQ2Xd7bXAPyF0EXiEWAMfiy/4URYb1+M= -github.com/markbates/refresh v1.6.0/go.mod h1:p8jWGABFUaFf/cSw0pxbo0MQVujiz5NTQ0bmCHLC4ac= -github.com/markbates/refresh v1.7.1/go.mod h1:hcGVJc3m5EeskliwSVJxcTHzUtMz2h8gBtCS0V94CgE= -github.com/markbates/refresh v1.8.0/go.mod h1:ppl0l94oz3OKBAx3MV65vCDWPo51JQnypdtFUmps1NM= -github.com/markbates/refresh v1.10.0/go.mod h1:txAFIPNbphfNCZELWAQ440wIKnmZKRX64TBdKiAMWfg= github.com/markbates/refresh v1.11.1 h1:DaCu+K4Mx5Z48FRBLDlsxldFETsqe20JgLFDMQuaIfE= github.com/markbates/refresh v1.11.1/go.mod h1:bqXClKcAcW8FF7N8nNR6Vl9m14+qGSL4MQjsVQJKDUc= -github.com/markbates/safe v1.0.0/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/markbates/sigtx v1.0.0 h1:y/xtkBvNPRjD4KeEplf4w9rJVSc23/xl+jXYGowTwy0= github.com/markbates/sigtx v1.0.0/go.mod h1:QF1Hv6Ic6Ca6W+T+DL0Y/ypborFKyvUY9HmuCD4VeTc= -github.com/markbates/willie v1.0.9/go.mod h1:fsrFVWl91+gXpx/6dv715j7i11fYPfZ9ZGfH0DQzY7w= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -1002,18 +443,15 @@ github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= -github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= -github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= github.com/microcosm-cc/bluemonday v1.0.2 h1:5lPfLTTAvAbtS0VqT+94yOtFnGfUWYyx0+iToC3Os3s= github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= @@ -1025,19 +463,12 @@ github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eI github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.0.0/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/monoculum/formam v0.0.0-20180901015400-4e68be1d79ba/go.mod h1:RKgILGEJq24YyJ2ban8EO0RUVSJlF1pGsEvoLEACr/Q= -github.com/monoculum/formam v0.0.0-20190307031628-bc555adff0cd/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= -github.com/monoculum/formam v0.0.0-20190730134247-0612307a4099/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= -github.com/monoculum/formam v0.0.0-20190830100315-7ff9597b1407/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= -github.com/monoculum/formam v0.0.0-20191229172733-952f0766a724/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= github.com/monoculum/formam v0.0.0-20210523135142-1af3317b7b9b h1:uW2/EKDF9aqxF4+MozaKxL1ROmc8FX5BeTrTKpr9+Vo= github.com/monoculum/formam v0.0.0-20210523135142-1af3317b7b9b/go.mod h1:JKa2av1XVkGjhxdLS59nDoXa2JpmIHpnURWNbzCtXtc= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -1048,33 +479,19 @@ github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzE github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= -github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= -github.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.9.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.6.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= -github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= @@ -1082,7 +499,6 @@ github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIw github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.9.3 h1:zeC5b1GviRUyKYd6OJPvBU/mcVDVoL1OhT17FCt5dSQ= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= @@ -1096,7 +512,6 @@ github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= @@ -1107,13 +522,11 @@ github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1: github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= -github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -1123,69 +536,31 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.0.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.4.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.5.2 h1:qLvObTrvO/XRCqmkKxUlOBc48bI3efyDuAZe25QiF0w= github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/serenize/snaker v0.0.0-20171204205717-a683aaf2d516/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc h1:jUIKcSPO9MoMJBbEoyE/RJoE8vz7Mb8AjvifMMwSyvY= github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= -github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= -github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= -github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= -github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= -github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= -github.com/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw= -github.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c/go.mod h1:8d3azKNyqcHP1GaQE/c6dDgjkgSx2BZ4IoEi4F1reUI= -github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU= -github.com/shurcooL/highlight_go v0.0.0-20170515013102-78fb10f4a5f8/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag= -github.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag= -github.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9/go.mod h1:+rgNQw2P9ARFAs37qieuu7ohDNQ3gds9msbT2yn85sg= -github.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50/go.mod h1:zPn1wHpTIePGnXSHpsVPWEktKXHr6+SS6x/IKRb7cpw= -github.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc/go.mod h1:aYMfkZ6DWSJPJ6c4Wwz3QtW22G7mf/PEgaB9k/ik5+Y= -github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= -github.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9/go.mod h1:919LwcH0M7/W4fcZ0/jy0qGght1GIhqyS/EgWGH2j5Q= -github.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191/go.mod h1:e2qWDig5bLteJ4fwvDAc2NHzqFEthkqn7aOZAOpj+PQ= -github.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241/go.mod h1:NPpHK2TI7iSaM0buivtFUc9offApnI0Alt/K8hcHy0I= -github.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122/go.mod h1:b5uSkrEVM1jQUspwbixRBhaIjIzL2xazXp6kntxYle0= -github.com/shurcooL/octicon v0.0.0-20180602230221-c42b0e3b24d9/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ= -github.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ= -github.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82/go.mod h1:TCR1lToEk4d2s07G3XGfz2QrgHXg4RJBvjrOozvoWfk= -github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= -github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= -github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= -github.com/sirupsen/logrus v1.1.0/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A= -github.com/sirupsen/logrus v1.1.1/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.5.0/go.mod h1:+F7Ogzej0PZc/94MaYx/nvG9jOFMD2osvC3s+Squfpo= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= @@ -1195,38 +570,20 @@ github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e h1:qpG github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.0/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/afero v1.2.1/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v0.0.4/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.2.1 h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.2.1/go.mod h1:P4AexN0a+C9tGAnUFNwDMYYZv3pjFuvmeiMyKRaNVlI= -github.com/spf13/viper v1.3.0/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.8.1 h1:Kq1fyeebqsBfbjZj4EL7gj2IO0mMaiyjYUWcUsl2O44= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= @@ -1241,17 +598,10 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/unrolled/secure v0.0.0-20180918153822-f340ee86eb8b/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA= -github.com/unrolled/secure v0.0.0-20181005190816-ff9db2ff917f/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA= -github.com/unrolled/secure v0.0.0-20181022170031-4b6b7cf51606/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA= -github.com/unrolled/secure v0.0.0-20190103195806-76e6d4e9b90c/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= @@ -1268,7 +618,6 @@ go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mI go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= @@ -1292,43 +641,17 @@ go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= -golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20180910181607-0e37d006457b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181015023909-0c41d7ab0a0e/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181024171144-74cb1d3d52f4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181025113841-85e1b3f9139a/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181025213731-e84da0312774/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181106171534-e4dc69e5b2fd/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190102171810-8d7daa0c54b3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190103213133-ff983b9c42bc/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190122013713-64072686203f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190130090550-b01c7a725664/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190403202508-8e1b8d32e692/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= -golang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= -golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200206161412-a0c6ece9d31a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 h1:It14KIkyBFYkHkwZ7k45minvA9aorojkyjGk9KJ5B/w= @@ -1345,7 +668,6 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1368,36 +690,21 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180816102801-aaf60122140d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180921000356-2f5d2388922f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180926154720-4dfa2610cdf3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181017193950-04a2e542c03f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181029044818-c44066c5c816/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181102091132-c10e9556a7bc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181108082009-03003ca0c849/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181207154023-610586996380/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181213202711-891ebc4b82d6/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190119204137-ed066c81e75e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190514140710-3ec191127204/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1429,8 +736,6 @@ golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLd golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1442,12 +747,10 @@ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1456,48 +759,22 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180906133057-8cf3aee42992/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180921163948-d47a0f339242/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180927150500-dad3d9fb7b6e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181005133103-4497e2df6f9e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181011152604-fa43e7bc11ba/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181019084534-8f1d3d21f81b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181022134430-8a28ead16f52/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181024145615-5cd93ef61a7c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181025063200-d989b31c8746/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026064943-731415f00dce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181030150119-7e31e0c00fa0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181106135930-3a76605856fd/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181206074257-70b957f3b65e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181213150753-586ba8c9bb14/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181213200352-4d1cda033e06/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190116161447-11f53e031339/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190122071731-054c452bb702/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190220154126-629670e5acc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1505,7 +782,6 @@ golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1556,82 +832,23 @@ golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181003024731-2f84ea8ef872/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181006002542-f60d9635b16a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181008205924-a2b3f7f249e9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181013182035-5e66757b835f/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181017214349-06f26fdaaa28/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181019005945-6adeb8aab2de/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181024171208-a2dc47679d30/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181026183834-f60e5f99f081/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030151751-bb28844c46df/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181102223251-96e9e165b75e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181105230042-78dc5bac0cac/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181107215632-34b416bd17b3/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181109152631-138c20b93253/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181109202920-92d8274bd7b8/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181111003725-6d71ab8aade0/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181114190951-94339b83286c/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181119130350-139d099f6620/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181120060634-fc4f04983f62/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181122213734-04b5d21e00f1/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181127195227-b4e97c0ed882/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181127232545-e782529d0ddd/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181201035826-d0ca3933b724/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181203210056-e5f3ab76ea4b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181205224935-3576414c54a4/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181206194817-bcd4e47d0288/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181207183836-8bc39b988060/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181212172921-837e80568c09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181213190329-bbccd8cae4a9/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190102213336-ca9055ed7d04/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190104182027-498d95493402/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190111214448-fc1d57b08d7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190118193359-16909d206f00/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190122202912-9c309ee22fab/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190124004107-78ee07aa9465/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190131142011-8dbcc66f33bb/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190206221403-44bcb96178d3/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190214204934-8dcb7bc8c7fe/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44= -golang.org/x/tools v0.0.0-20190219135230-f000d56b39dc/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44= -golang.org/x/tools v0.0.0-20190219185102-9394956cfdc5/go.mod h1:E6PF97AdD6v0s+fPshSmumCW1S1Ne85RbPQxELkKa44= -golang.org/x/tools v0.0.0-20190221204921-83362c3779f5/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190315044204-8b67d361bba2/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190318200714-bb1270c20edf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190404132500-923d25813098/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190407030857-0fdf0c73855b/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190603152906-08e0b306e832/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190603231351-8aaa1484dc10/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190613204242-ed0dc450797f/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190624180213-70d37148ca0c/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190809145639-6d4652c779c4/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190825031127-d72b05d2b1b6/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190905035308-adb45749da8e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190906203814-12febf440ab1/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191004055002-72853e10c5a3/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191015150414-f936694f27bf/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1641,14 +858,12 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191224055732-dd894d0a8a40/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200131211209-ecb101ed6550/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1657,7 +872,6 @@ golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200308013534-11ec41452d41/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200323192200-8849913b6971/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -1675,19 +889,12 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= -google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= -google.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -1713,19 +920,13 @@ google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg= -google.golang.org/genproto v0.0.0-20190201180003-4b09977fb922/go.mod h1:L3J43x8/uS+qIUoksaLKe6OS3nUKxOKuIFz1sl2/jx4= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -1767,8 +968,6 @@ google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1806,7 +1005,6 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= @@ -1818,14 +1016,8 @@ gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qS gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= -gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= -gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/mail.v2 v2.0.0-20180731213649-a0242b2233b4/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= @@ -1834,14 +1026,12 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1855,5 +1045,3 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= -sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= -sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= diff --git a/packrd/packed-packr.go b/packrd/packed-packr.go deleted file mode 100644 index 70c7ec2c6..000000000 --- a/packrd/packed-packr.go +++ /dev/null @@ -1,232 +0,0 @@ -// +build !skippackr -// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. - -// You can use the "packr2 clean" command to clean up this, -// and any other packr generated files. -package packrd - -import ( - "github.com/gobuffalo/packr/v2" - "github.com/gobuffalo/packr/v2/file/resolver" -) - -var _ = func() error { - const gk = "c0c964921797caa6d52bcd12ef38ede5" - g := packr.New(gk, "") - hgr, err := resolver.NewHexGzip(map[string]string{ - "0234b5edc6e81c1e266d31f193fe20b9": "1f8b08000000000000ff8c8d414a04410c45d7d629c2308b6e90f45e702588a0a2a81788d569a7a12a35a4532086dc5d70445dbafb3c1effb98392bc31ec29dbda042e2e014f738388344de0be47a1caf8485ba6b27e7084fbb7ff17c2cc0bf562b0d663e1ca62f4a5a4a54bfeffcd90e1b52f0b9586574d8cdf6d04566d0a9ece94adab40c62796997538981df1d9c8faf6707b0e8a372ff777c3ee2776bd168e987e43278007ab65378e29923bcb1c913e030000ffff1fc509720a010000", - "02c0cabc5d0ccf06bf62aef1259e6eaa": "1f8b08000000000000ffcacd4f29cd49d54bad28c82f2a2956b055a8e65250505028c8294dcfcc2bb65288067315148a520b4b338b5235d4134b4bf20b8a52d3322b528bd435c1b2b15c0a0ab55c80000000ffffa429f83f4a000000", - "11a0cc9b3e885f72d7f5b4c016722237": "1f8b08000000000000ff010000ffff0000000000000000", - "11da39f868d54d3279affe59a569252f": "1f8b08000000000000ff348d310ec2301004ebec2b4ea9628ae40594b4f006c7d8e604b9b30e1b8a287f478250ed6a34d2141fee3e47f2a1b2ca13e0a5a8551ad0f599ebadcd63d065ca3ab794fc43a7ff5a946bb41e0e787923a3c38f8c27c92c11484d02b1701d1cade88c8eb41be7f81ef67b29dfecba396cf8040000ffff2bd288128c000000", - "1ec08471990f98ece7e8d944aa3cd415": "1f8b08000000000000ff010000ffff0000000000000000", - "1ecd294aa90a5a249902dadd8b1b7502": "1f8b08000000000000ff348e314fc330148477ff8ac3ca9030383b12030b124b8580bd7ab8afa9456c07bfe7012cff77948a6e77a7d3ddb791ffa285415e434e624c885b2e8ad100565934a4c59add2c412ff5d3f91c67d1c2ea2f65be16ce3f73e1ef1a0a5b3399d650282d8c81f0f008f73f8cdecdb9268f9104f74fd7f0bd06e5091f2c7a6c6d70795371078aecde58722d9e7bbfa9636b18c8bd92785ac32fa3f771423300897ba6b08ef690152f715b3972523eddd9c9f41d87d3697fff0b0000ffffd638316cea000000", - "1f893bc0a5e86464fb13af76078ae912": "1f8b08000000000000ffb2c930b42b49cd2dc8492c492dd6cf4dcccc492d2ad6cf49accc2f2dd12bc8292dced0cb28c9cdb1d1cf30b4e3e2b251b555a8cc4ccd495150b5e302040000ffff448386763b000000", - "1fd3e4602afd3c7e8d6adf2c2aca985c": "1f8b08000000000000ffa4935b4cd3671887ff26de6d59d8922d9b2eb33aa6558aadd406e3d45a40c64108300373ba1a8452a0500e838156401ca70844c7383928c7164a2dd0ca414e15778893a51048c620dbc230195bb22cc8b8a63c0b2064f77b9237bf2f5fbee77baf7e82b04bd82578786ca44848dc2d086f0882201604c143100491b075bfc96e4178eda5add98617acadb937f3f9f3659a4d7da87515f845e57136328f8bdadb7cf9958da53ffedc79bbbebebeade2766f9dedfde3f886e4f2e6891cde3e654074c680e8d475f61ccfe6755926126526f75a1cb0beb6e96fccb65b5963c1439c88e7f9124ec616732cbe0ec9d53abce38d48a38bf009c9c033a89457c449a4196a5ffcb1b5bfbbcfc9ab122d074f5fc753994de0d57c62efd850dfed475d35486c652767626f7128bc0cb1d2c0cbe238caab4c9beef2df7fa1d21bf1d2b4228b337230b21275452fe9ed8f894a2f223aa7820cf3d7846519d92bcfe4685809b24bb5482e55323bf70b2d3d4ec4da0e14993dc8756df8e5b4139e5e8ad7c9300e78fb73c05b85541941f8a795f86aeea248ef24a0681c454e3f85f71cc4df6cc24b67c3476f45a16be1d4875af61c3cc33b9200ce4705e11f1acc5b87fcd92f0d40f5710e87833fc7d3ff069ee70af8405d4a68463d47d3ecc8d36c48350dec93a808bb10c4a0ed0263c3597cebd4d1d61081af4ac561df18fc937bf152d72055d713a83111906e449a6a439e66c53bae91d331494c4d14b3f49b93d68e62ec0faa595eeaa3c79ec989c81b84660fe095d080546f2144dfcdfb294dc852adc8f55d48932d4414753038d2c4946b9edfe7ef303f6361c6354daba39ae8422731d726507e3688a2e009970d03f8c455732cb50b9f940e8e6adbf0cbed22bfc5ccf0680521091a92f232187df405ba9a2e0c75e32494b8f8e4d614970b2729ab1b22bfda8a58d3caf1e4667c7466e4574a286fba4f424115fb4e46f3eed98b14d69ac82a6f446d3061ec71d1f77896fc2a3b13ae196e37f6225237234bb17248634671a58ce8f85444de4a8e28cef19e4cc511df603e4acce2669505ebc8240ee7534cf7fb8175565756d116d713985c4a446e2389e5163a1f0c11a54e65efe1b3ec97faa1bf5648f7c8180ee7389d030fa96e32b3b2f2cf4e7fa6e77e64e1d90293ae27d807da714d7fc7af8b0b34771ae91f3633fbf337fc30fd90c1d12e0686fa585d5dddf4fedba1ed362e3e5be4d1b883a1e1562626cc3cfddec4d8580b63ce1ee6e67ec2ed76efb81b08ff937f030000ffff6ddbe2317e040000", - "200603a93cae9aee719dcb679b44c289": "1f8b08000000000000ffcacb4f498dcfcd4f29cd492dd6e7d2d2cbc94fe74acaccd3e702040000ffffe55507d519000000", - "357939eff9d3a7884ef4ebadca1b1668": "1f8b08000000000000ff748dc16ec3201044ef7cc58aa3a5d4698ffe19cb8131465d58044b94cfaf6afb5045f56ddebc817da2b6287922fb658ddbe0bedb64881274137fe398b1339193bcc6706422dd2ada26ec27fabcdf4de11e62de976b7c251c33e4e5c1f01369ed304441d6a4578a63be744ffcabf072dc3de6b2a8a21ee76f146a5cb58dc3300e3bdbdf342b9a7e04b167f5ce6f054b68e7f3d21f1cdd098a547851b43f7f67f19893f8ce68a3353f010000ffff524107ee51010000", - "3a5d3f320c662fc4951dba09e5ca48af": "1f8b08000000000000ff54cc4d0a83301005e07d4ea1e22259680e20fdb9428f10c90b1852476712da527af722b482ab99f7e07b8cb54c0cdde0b990a04be43cf8d2d6c71c6f05fcaae3ba9dc60c6a77235196cc6eb17e926ca3d8bde9c732fb843eca415c0371760f08dd6103cdffbf0b0c6c032ea59f51add6a63a9dabb7521f33a86f000000ffff52246deaae000000", - "3ab914a64676d62186c6060f4988dd39": "1f8b08000000000000ff7c94c1ab1b3710c6cfd55f31cf2ea4599c7d4e7b28bc4b49531a7269030998107a186bc796b0ac11d2c8db25e47f2fa3f53a79f491e38ad137bfef9bd1ae6147c1f29940187eaf870306be33e683c37882892b1c388375ccc5c7e352d00e27ae1946dac340170a9cce140522d1507a633e7f067f809e9394fe554afdce8b7bc7095e7cf962d66bf80305f75808de93d464cc5b81c07c2a10fc895a5bebb834a6420235cddd30a5e02d8ae708b501210c57a93bf813a360116f1b3fc1c1e722204eeb5452d9547160f005385154617104ab45a49fce6105071f08300e408317f0a297aad23802cb399315fdce11cf543690b09491f35036e0b848d90089edfb1ec4a1006652eecc297b14fa1a1dc58bcf1c35b6de988f5c61f4210086c237d4339e084acd346b75ddc4b5eba00866b9f7b10886d0b01603c08759dd3af696fadbc4ba6ee4f84cba0e966b6ab009a9c32b556fcc7abd86d79914f5a30a2da32ac6fc7dda4061ad7b76a1168e527e27bf264fc34cb4d46c20f278e3b218c1ceedbef551c0c7d97313bbe23d18f3c38fb0bf5e4d9c96ab2f50578ee2d0164c37ecbdb6d6c9abeaabaf7b63ccd2b9389f0a8c5e1c20583e9f95b8b56c731851acfbffda691156e1338ab718c20499f6d5873988370c7b1f314f735d9c004b2129b77ce143dbbfd626d738a7b7181ae8b25a481e5b1de862ccdb365a48eca3cc60fbcc63a1ac9bf2c989a487fbfb973fffda6ffb6dfff2e197ed76fbcf4f4f1e3f6f42c5710d03142240583df11b5841c223f5c674dd6b8ec78c52434ba1dc759d6e479ba4c30bcd384bb28f9e696a51e41aa38fc7b65fb053f77fd1bff29b313b824cea5987a7548e70d0b9f1e5b1b1235fc3e83ddf6c7d7bf87c6e44174f63fb3584a0af41133eea96c0c0b6ea6b9bc1c451566f6f980708d59eee8cf9f48e47ca34c07e5acc3cddcafc170000ffff90de672137050000", - "3c5378f5aa59242753fa2bcf50bbb6d2": "1f8b08000000000000ffa454516fda30107ee757dc2c2181b4e0419f5a39912a81c6c3da5515ef93832f89d5c446f6415bd1eeb74f26c012085da53dc5f6ddf7dd77be2f16054a852ee90108a537b02ca5f7315b5a43521b742c44da31679ff7a7a79832aa543486b0f05534d92d5e7c3481d2e6f6880110120a8759cc443f06672d3d482a0643e8272c11bacac1bb6547507a8fe4b9ae648e9e07ce91dfe40c6449316389e0f2288b2bbdf940e3f541e3f541e3f81b90a6127d5366314e82081ab0672c97b6c25fb943246d7216f4085e8c9bd993bf9b468f05d1cadf709e6b2ad6e968692b9edb749d65b2b47cff0d6d1f246632854c46753a03e9b48c0aad149a98915b63685427f019dac68d843b690a14c5e45050d9e5ba424392b435ec620fa1d6a1c0485bded61c24a7d63e5d163c6d96b9a8ac31b9e372bfe8097e306bafcb8f5d5e9c74f8d7afd3dda82f98b86dfcfaaeae922966daa08247bb26f48217571f296e73924c4b8c1cfa95355e6f1a857791561ad4c99e9c5ea16a8aa0d07c6b3ae480f0852259eadcc4acc48c5ae3db818e8da1217481f26eb698ff9c0a4ec55972f270bb987747ee6fef66dd91f9edfdf4c7ecf1342838b9e68c4ff40b4aad7a4d7a4d443f86cc3a18b82168036e77d5b085fe694dd73e0847eabccf939c9adf8dee900aab4e49770a55076f378dce6070a4fa1203fb3e5b30787b03370acf15fc8e816dd910b667680087b476669f79167f072c3d7e042cb5795ad8418dff0adb708f377bbaf76107e1ffb55a13dfcb0a3f4f2496566152a3e7d2a812dd9e40f03a74066cdb2594ae95371d543be6b80d7f4af75371f8347ec2cc5a620908bf92268107fb1c4c02e9ebbf1eb9e636bc5a82d70cfb127f020000ffff0dbe9ce240070000", - "3e00c27b916d08ee5aa54c8a3d2f31a5": "1f8b08000000000000ff548fcb6dc3301044ef530a01ef36910e5c80409313890ec555b8348d741f08f900bebdc300efcd64cbd6152168906aeb0ff8672d8390921915b7d214633f14cd3297ddf2a3d215e2d1fd9262daa8089723a68f2eabe178dc6a491add39ced9f464990a597b791fec0a619ba749deaecb755827821c2523d9648f2bff41721c11e2b3419235b7ca652b3eac7fbde803e4be3dff5aeedb530282f819b23320171f8a958d3d0ee6b3e9f737be030000ffffcfa015bc01010000", - "4a4954ee92c57e00f8a0f34ec9a08084": "1f8b08000000000000ff84513d6bc33010ddef573c1cc8509083872c225b29d9daad6b90ed8b2c2afb8c24bb7fbfc876da900c9d4ebc0f9eee5dcd57097c894d7063d20428f45fad0b5023c6a9f6ae39981839c585b202cb096a8275a99beab291fe60a59eae57e3e5f0306f965e5ab4f23d78312d514cc6725ca312c74454e6a16613a2c6fef74dc06c8233b55fd5c0f9e3f2f6fea951644d41b4c359bc192c660ed1c980a613d7303af623072aa7c8ca2e0ae57a6359637f0779b3a4031bb7c27a83ff7357aa3a3e79abb23a12657ffef00eaf9d192c23098ad349e3e529bdc8dc1419a963ac10ce72db878047db16bbc0f74d2da56a6c1bfd5d3397bc5d63257f020000ffff5d890c59f0010000", - "524efd5799b78f65989b6c1104215481": "1f8b08000000000000ff94544d8fa3300c3dc3afb0345a69f740c54799a9d2cbfe95405288066294ba2ab3abf9efab244009add4ae7273ece717bf17ef6ad4c4959606fec651af747255825a06459e0ee331fe8ee35672e1af2b5e7f36062f5a2435766818bcbde7bc94f21847031742e98641960e23f8e2a8c23139ab3f2e5ea111d224157ad45d870d82ea1b0b3cf53ccc2d77a4a8936768337b7b424d164632283cae8b5ca56a5ab2b1f4184713a16babc8d2e9b969944e2a24c29e4156b8ba294a383028b7bdf2a55788bc6a9f1d1c8c50e7a1e35f0c94ee949649d561fdb9c0334803606e7137f4488e940859a3e1a45033b868218d050b4a9513c593369e93a37d5faf7153ba13585f7aa9c925ac703a792206f9617efef952b992072c57ef59e95b0ca38b3c7043ce8b725fdc8f7ff1d2ad5b5b6ca4cdf37b69f74e8070acc42b4f76adcb7ec277973b9f42158a2f2003249c79bdff9cf6e9d6b09edc09916caa9b2eef54a319b8b1dffcf55697f63cf4e002b156fced50d9f382e6b5d4248d145b063eee727ef752280ebceb806b013f7b3ecefff5e3231dc65fb636fc3cc188bd79968166a59512ca49d0ef272ddef72fb4289eb488c2ff16a8e8e9ad72ee4d1cbad84bf7947859bc403c0d89af19bb5565f317cfa4ab8b6987cd4b2c4bd31ffff588a0f16a3745b73d332f18fbd07f010000ffffa680b9a8b2050000", - "52f14062d5b60ffc0896c4bda40d83fc": "1f8b08000000000000ff9c55df8be336107ef75f311504649a53ee36f4a1ee65e176cb9642f70877d7f6611b0ec5961d114b32929c0b2cf9dfcb48b2e3dcfe80f625966646df37f34933e978b9e78d00c5a5ce32a93a633dd00c80d4ca13fcb6a6095fe3d267218ea20c6b2f952019ae1ae977fd9695462d14b7fb2df7c22d1a2b6b1f7fc977418dd9f675cd5bb318beb6d7110ee02b90f7b31598ce3bb68ef9adf70dccae17fc7bf787d24ba35d74a3133db2061abc7f4bbf5b9b2e8747985dbf98014a601787ab9773ec4cb738fc14fc23f3bda9447b410ca7c8f22485df5001376631cd3fba9ea2e45956f7ba04a9a5a7393c667e0ec25a2856802ab135b74ed0b0fc7477bb5c2e7f9e47d46d2fdbea8b540201f30c30133cf8c30ab46ce1310300a895676b2bb56f3515d662d829034857c03e0b7f8330743084ddefba3678fc2f619d34ba98f0251352ce0301265080c7cd29cf4ea9187c63a118006e1b87c518c73ed8c66500076ec158d948cd5b34c1c3c6792b759301d4c6829ce3213c63b96e444488e5c83ab8562b206fde9064844bb415f0ae13baa203ec23023cbcdd9c02ae7b903fbe2b368cb13c9de6e914fa0ab949d6ad157c1fd6a7249aaca1159a625c8e29bc3b2785f6691239dec2db737eb176585d643a829f0bb80fba059315beb73a5197a84648f01de6e7be495feea00c04aff641c99d00a26463b917a408c8691778ce6f39461ee2fda6c80e5f4ebaf2101e833c777b3207e2c30f777b97e22f147a0fcb5180d634ec8e7bde52a28d07a14ddfecb0a05e09ed1d74dc3951813710b0f38934a1f43059d847f1edd6682f8e3e503c5c6df2a7b4d77035d29683ec217c596c26b8a9c722f2a75e0f90732847d427ed34ad24b553c4ab44cdfbd68f327c1d9b184728fbc398fd9afb1d2569d090fc97e7d09fe77c9675a823a9a4aa91ecd628c57575e64aef7efaea4b55b1cfbe921a426786e5d4617a3f7a4cefa72e4c7070096ba76262044af93f043c8db3e3f2d18573e314abe979a07ee44ab02fd2b782e630bb86c3309adc3f9acce162a2d13ccca6575a258eada13302ebd61cc75bec4c87cfef3e0448a36fcc91867f13b452c2bbae5083cf615bb0c5649fcf41853f11f6ebcd4b937ad4a5a6e48ecb36b643af9105ce5805cc107f32cbe37d6ccd91fdd9d1ff866e7bfd0af4291ba6c3bf010000ffff364833083b080000", - "545676fd88c0d1d27198d283049c41b0": "1f8b08000000000000ff4c8e3f4bc4401047fbfd143fb74a4036bda5368782075e612116739bc92698fdc3ecac08c77d770997e2aac70cc37b53c8ff506090d725a76acc124b164567009b588759b558b34d61d1b99d9dcf7108f9dca689d63cecb4a637661870c8910f94c695054b0561e489daaa98f7a56654965f462bdb3d61ce915128b033534bfeded079ec7af79293f29ff660912cb81840589b2478f7c16964e9b647dd49495b3dbe3d42dcebe9f8de452a5f556549e1fb868b8d5c2b05b64fb09fbcfaadaf19cfb7d283bdf6bdb99aff000000ffff5167c69218010000", - "59c3c4502bfd1cb86f9a7572f82ea9ed": "1f8b08000000000000ff7455516fe3360c7eb67f05e1a72448edf7003da0b8eb5d07646971ceba01c3d02a161d0b278b9a24c71714f9ef03653b97146b5e224be4c78fe427ca8aea87d823882a28323e4d556bc90598a549b657a1e97679456db1a75d57d7425331fe671f9da3391cb334a9c955e8bd86ffb76afb9bc9224b132b9c6835edf7e83eb6bf307a17bc338eb4465978ac3a87593a4fd3a280fbcd33280f9d470981a0416dc1f72a540d780c4199bd879de05332d037e8104283ec29acd5aa125c1146d8a1327b709dc9e10bd6a2d38177338907d4645b3421cbd3837031e22d7005f26f1866d9b7c797fbcd73b6bcb69d475b612d2cc6f4f23b6b23e53b6b197a2023b406475d400fc2486895941a7be1106a7230bab2976fa8d3127608126b6550e6b06d9467a4d020187407840a4d400754c3913af72ecb3c2d0adefa4e1dd76579116c097b479df54bc050e5790e4c4062a5854309dbc727b8f9045f1effdc30c610b745613ca818098494202ec907825761ed2b2c441dd02d46302eb16088186e09a111615843afb486cde3161a71c0e1c0607f81c9f92278d1c6ee71daae434ed5a1a7ce5513e198ab07e1a147ada7a47f0b20b4a79176849fcaee10aa06ab1f284199584c72121daf8e578588c9bf965ce9af4aa37f6516023edf6d3f3fdcdcadd703e2123c810a53c384eec591e5c5ce568b0a2568e1c3142bfa5c515f327715868aa0f19d1bad3c439cbb120b7bb6337840c7eaa804df923cad3b53b1d466f32b05c25b9aa83a0af3f6168cd2bc91c4cf496df906fbd9b47eb491131b25f7e6b082e977bf795ea6c3b244ef15998d687105d9cbdb5b4e36788e96f35ecec53a9d5efc60962dd32439cdd33449f83274815a1114d33e8243a91c5681f55396eb8159fe87c7591c2465b99ecd27cf35edc1e1bf1dfa00716c6040e761562b1d17acfce33cbfc0b8182ef9d3e4b18edf1194edbedd6f6759912de1815a7c10466a3e4c4e699a380c9d338c9b9ee2459e380d1d988eafae01eb6c3c1d33130694a9a88dd366a01ff55c732b950743011eb6dba73287ac09c1ae8a027f8ad66ae43198c1eda761dfbf3bb8b899bfe24b420f8b85a1b058001ab1d3c875cde370e11171351f604b20299266b01ec161456d8b4642e7e3dd05ebe8e771051383f3f0ce15bf0a85a4ca17d1662c10b4e41094a9c9b531ca85ef87c3bd18d4fbabe76769fe7eceed2b5bbc9dbb323d341716b301ec52c265b9fe3e366235a998ef41661dc92ebe8e519e65b97ee2241e5048747e05adb07ffbc0f3eb9fe1ef2dfbebe62bb95e3889f2e6c951a06c3576263b2d5356f829fd2f0000fffff938fe4679070000", - "5a632d314f6d6797fef503c04ff3e44b": "1f8b08000000000000ff2a484cce4e4c4f55484c2ec9cccf2be602040000ffffe129fcc910000000", - "5c28c6abb0b23e98772f3aaed045abf5": "1f8b08000000000000ffecbd6d8f1cc7912efa79f82beace7e590399c98cc8c837c3f48145c9f6023cf72cb05e5ddc4f06b74489bcdb228921454bfaf517f14454750f3994a8e1c86c9f630356176bbaba3223232322e3e589dffd8fefbf3d2c6f9e5cbd7af6e2f9834b4af97279f27c7df1d5b3e7df3cb8fceef5d7715cfe8fdfdffbddff15e3f2a727cf9f5c3d7efde2eab7cb1fbe7af15f4f967f3b1cbe7bf51ab716a694530ecb7f7cf9a7e58bef5fbeb87abdfcfbe1bb6fe2bf3d5f126e7e69eff8edd252cecb67df3d3b7cb5e4df2c4b8cfaf39fffaf877ff97ffffd8be5d59b6f967fffcfcf1efddbc3e532debfffff9487f7ef7ffe97cff10b94e8fefd2ffeefcbe5f2e9ebd72f7f7bfffedffef6b7f4b7925e5c7d73ff4f578f5f3e7db6bebaff1f5ffee9be7ef1f3bf7c7effd59b6f88d257afbfbafcfdbddfe92f9fcc932e97675f3db8fcecbbafbf7e7c78f1d7efeb1ffffaa7172f9f3eb9ba5cbefff6f0fcd5831b5ec23967fd51ffca6fbf3f3c7bfedf377d91e69cf7f1d7cbe5fb0797f9e5f797f72e961fec6a79f3ecc9df3e7ba1f797bccc8cff2bd51fffd7e149fcafc7eb7f7f73f5e2bbe75f3db87cfee46fcbb5ef7cffede1b7af5e3e5e9f3cb87c79f5e4d593ab374f746adffcfedec5ef5e3e7efd74f9fad9e1f0e0f2f98be74f2e9757afaf5efcf7930797ffc24493ea7623feedd957af9f3eb8a4b6df393c7bfe647dfcf2c125de7bedf6fff7e2d9f3b7ef7ffbecf593abc3b36f9fbd7e7049f972f9eac1e5bd8b8bff496d240934c6da66ec1ca8d53423514f25702fa9d8f5c3562971e839f53098024b4e822b9199c643bd6a75a612ec8b836710217c7bdebbb878c88553c1edc6a9e2bb6c97f88143cc89435e634e142951d04fd65bb1245e23a51eb9a7164b92586be25813c5c169e8233d12a516f5ff5cf020c522a9dfbbb8d03f732ca9c59c5aec8963d639e5d4d7ac132da904e23422e9a4f4e525d535871c721c3d75ff7895f52b55bfc291ea23e2ae447b3a93e8d06be49c585fa7cfd95b7aec69c6a62f0a19ffae4ae9d4624b823770121db37e869a26ee29f138b550f4bf071d3b4dffba4d44ffdcf5d3df1674c2ba2c2591fec9be1ab827b18fb6e2517c4fdfa66bcaab5243a92c51dfae33c0bcf19d8155183eda9186be8a31291dacbe4a473182a4b1e654424915eb37a20e9d729a4a76fb59c12b9b7ff2460c257adf2f9ee654fe0c56fcf1f2beee0be5e2c7577fba7afcd5b327cf5f63d3ffc7977ffab7cfff4a7fbd5cbef1dbfff9fcd9eb570f2ebf7bf5e4ea3f747ffdafe7fff9eac9e5f23d3db89429a9895c2e3fd083cb2a39b5dacae5f23d9ffe891f5cf69c6aa172f9fb7b1717bf7bf5fac5cb6579f1f5d7af9ebc7e709975ebfc7078f2e052efc7f5c5e1c5d56fffe573ea0f6bc320df7920491ef3e6a7f2c8f5b31b9fa21b1ff88cbf685ffcc16871ff3a31de121bdf5d1dfef55f36dafc06fb1a9bba041a1d9b9ad208d45a246a49b0a9c5ae8f9bbaee9bba1c37f59a95dd4bd48d2b2391f272e804ce3b44aa9466e8caff4df98138954734f426979cf8d13e085fd2972f0e3f7cf3e2b90ffb5ffef0c74ea55c2e2f5f3c7baeabd89ba8f490b934a92a1b724fb2d4ae7c53674fbcd43e12872a6369ac5ba99691ead2cad8af479e7e3db66ba154977b171723d7d443ad2df5a5cf9128d43ef57a8cd0724bbc74fd77689c535d7ae734432b92da72f141c36fa0928c5416154fa1144e75a9a2bb8570b7250a85ca5287ee84ac2f6fa2f7b24eaeebf04aae49963e702969e8c0bb4e8f5b4bb4d825eb4cbb8a4fa6aa93d63dc779a4b90c7d92b3a4b2cc1138531a0b652c49563a509e69069a4a5993607db125a3d1535d3863fff696445fcdd49575babe8565e8d77a496de1aa0ba1d7b4701bf8ced0eb5ef15365e101969839c9c243e9c1194f4e888bacb4e1a1220a9cb6f0245dac4636679e3d51682a6c17ee84eba9636e59af2be6c2e012a5e6a22a8a4313251265d1a5c3b313927576ac689aa1d6ae64645dfd5297a6e4aa042eaaa9059923b1bebf15d54bbd276535957375a6fa1e46e89f95cf59aef3f1084df0ab52f43aeb00949347a853c7c853c06a92faf5794063b6417abfe277664fdb1a756e200ef754436f9cfac24d257a1f25d5a55053119cf58152671a61704eb494a1ea58794254d486c13dcd45ca4ca4fa78912a50e57391a15c3fb8a5b12859200b74e349d1fb5413e900aa3263185997bc4edd897d369d2d29b9fbc0cc791b9872b9da05bd299bb7a65baf5749b4b4a933ec8595fd5507874e75e945d43e98398da5575299a02cb653ff28f9f63da8224fb7ce0cad97340fb1aa2ea4340e9cf186540fac6bdd0ea21f94cad3515239508dc574684b3dce5443e976a11a8f420e8d5458ea1cf7ab436f6a38ccc46f22cd43644923724be51065268e2dcd4727a3f9f1dd717ff6707ed11edab86b515ee342fa3ca9de95549e4612fd37d7d4637baab64c3bc4a202ad3d8d95f45f0c8191caaaef1e816a1a5174ab488b552da75e4c7147ddb80c5b43d7416a64e5a636cdae2a814ce3b34afb1194054a4f7c502b2a70a203bea41357f9cf9cc6a1c008a8a91d5ab7ab7aa8d574793d88287d929a7d072e6a9c49ea87d6d47ca1540f45ad0e4c905a2a5138f53791f8906145c83ad56aa846893860a2084cbca1d69e32995a7945a7d1a2c0b6503ad59ee6bbb46e7ff8bc7f518dd63c27e803aad14c2336d588983fc94c2d0c5d40bd948374d842f254482d3cb595cada7b12908af20ca3e0fb41bfaf8ba7dc3f92403b327e78ea42917d3fc953651f02c3347d693f28152434dc1cca067aafe8dcb2b2310fd8a5a93d526dc24166769e509bf0d1c9746e60b23fb6cff90f6c1317557041ca487d153556cd4a93585355ce51d394d68a498afe45774fd3bfa89d27abf285ee24e51ffd2495079c9ab21726a37f0b2a774999465f53549eeaafdb5c2516650f49758d2a9a945b6960044de75974282bb6206c509512532d793d87502a7a8428b34316ebe82567e85b7dddc9ec6ea203fee7741013ec92ca2a30be39546cd9118a32ad1e0b708ca87124561358cf033acab92a3b068e2aa71acce68989e9c8a4e43483f4aae3534b04d72d9cbcefe74646b01f549cafaa03d4245312e650c10d6dc5512cb1ae41d4f7e0c453d25c752f32560c6b596d852af6dfaae7a58089e8c6f6e38eb27fb53d8a93911e27aa4e7eac19363e36a8b1bc9ebc6ce84f0e87672f5f3d595e5f3d7efeeaeb1757df3eb8fcf6f1ebab67dfff6b4ec463519e9d3496fd436f4a4d35cb5846a9494aa1df5cbe3dfbf57b35c97b1a97cbfac383cb32492faf70f772b9fa019f3a00359d6f3586d839e5cc63e95992cc516e1e446992da368892f86e07d1d31cc5ecd95e3bbf6708256f74603ddbda105477db2070f50e1f756eb38e4dc489eed9ae7c14ab2d9f8a90ae4bdf54deb06e2e3000c5b9f1f84c12672c387f632bda2e54e1deedefd088d891ca416ab7eaaf06ce2627c63aa1246660bdad3bbf98ecb093abddcafb9951796be23e43a628b7d36aa2555f82932743ca90f3b1deebd10e93aad22ab481ee423bbceae932aac4aafa3b105838ef12045ec16070e0c4b91ffb60469c63ed67e034504182c3ea0ccdd527e11cdca31d73f5a45ed748f6749250ec341eaa523c43e2956813ab7a96d6a71ef26c81bb8a2c9e1557339c2cd5cfd8085c7194a1b1aa71112452379f05e368a7477c8874d61556f2135c225827b50fd49e523b081aa60635d887096fc29fa632432052598367d7ea16012437848b1a48b20e9fac1e9294bd42818722bbab420eee6c394415e9c36d9aa29c34d4a0e82a3eff8cf9fc7879efe2e2ed697f900f4ceed805564829d39aa89057abb729e734651de535d8905cb0a1365b6906eea60729f0486d9d60385ddad8942caad628a7baaa0a87e280882d38039aeebbc158b9b6e86aa106ae53175d42562d39c388259b229dbe27d80cb70e3d1e8a1de0121f8619a9f5d1fe433f7e900483cc8a26b4b6ffda3d1d38892c3da74679de2cc260cf7e9408738b9839d10adb0976287c62902aba99d706cf12991684b5c0f068a950e81015caef4aa8000b621abf43bb11dc52fa408f33a8d0834501c3bf2bf128520d3460a0817b0b2e093f0f438f60aa1fa03d39f5472763feb9556da14ad3d5c38c942174797bb65d4581724eb482f758d7146ec91a601f16350470b2527e13d8fdca753d1b29860b6963453267224cd4a47bb7d89e6e7086ce6096649295cdb690a087d6088710a920192b8c9f66f4afba8b0503512634f9a1d28fa71d305a6c50084a1c50c74e280433174ec30328cc6adbc23eee4a5736ff044ce50981aa4f408ce93d1c76533db841d60f3066ccce7e245542cb662aeb146c7554d1c841d9a2c6a9bf36201cf56755b4f32196a1a3c4407403412f1e224c42d8e513ebaa7bc797eb67247483d30167e615225a79ce5c9b6113d2b2ba8c0e9b8cd645d6adccab8be868225aa289e8eafa07323a988c8ebb8c8e2ea4e326a4a30969d5a32ea7e326a7e3514ec35bdd533b0c18bea4a7bad8931c7485479a8792f425ca4a8f4ea6f5cefc3f89a8aee07913d52ea9c32ea9c351529ba00e9ba08e47411d5d524793d4f128a9a38beab88beaf881a2ba9a376e4c089f8915c3efaaf15dd8fc066d85675db5ad0711b08b225570bb4ee1d1c90fddc070324be3133b4f25800a499ba19a20f8193d43c1972a7c88ddce34b0fb5453d83952cd311c17da8a63605122aa39d6cca0ab387041fae26cc415b6d108a586ac473bd58419fc22cadf7a402a6a01821795e445c9c6784b24ddc5c6b370fa9b2c87042f70f9c2098017ea8e257821f4740e55574aace27c1bca5a084195aa3fa007b081788aca41e5e982bd6fa456918425ac01dbbd92f977e4a09235bb5da9328ab15daa0a4018434a41610bc860157b80bc28aa52d6683e80a20489b6793ca0644e146c3d4214041ef34d2ee377328e5c6ab38a79323c5682af91ee4b446eb0954311634bc6299986bb9ab0626a466f3195d861663668a67d66165d9a6e89a9ecf4331e8c6509d95c007d972766a1739c300895732265b89758d92bd666ee88199b0a7bc92038c7fd8530f4a34c7d56854e85656e14af38c4ea8aeb54a3e4487a8a8820acaeddaa36baeaae6a4a78eaa8d46e81187cc8bde3c00f653470b88673fd6423dcb065da1795b62d23f05af1187031cde81ab75b540bcebf5457e85378323a2219b0f27425e000d063b7ae8d4af7083f2c4d0f33aa98d0430ee68fc3471de6a90169a7528e7028283950d1159c0fc56e22d028d8173a3e0a2763bdd1e95c3fab9fd53f1e9dce0ca7692d736151215095ce0b4b4d23d49a93de1f887e0cbb6a053efd0eaf7bd7ef16c1f5d0ef16d6e770ffdec505179563b50e7d047ed45a259585558e855a8b3ec22db9aa7c8f9ffced213786cb5ff4698fe7484e7d69b0736bd181347bb3706a4b1335722ac205ad4c7d5b2da92c4d256da8d59dd34d8fd01ee7d16bc65c6569100436277d5d0bb5cdc44bc34ef3fba4df10b8b22b8205157fd7c9e7f74c6bd303dbb44a472862e8fb4b535e6eb32e4594bbbbf9e6b9208e56970269d94957a540d57635e2179e3abd4e88afcc167aaebe1216379833c9c2b3223ea05f41b464e89a94dc4243c0a650c3a9a6a6b614d0baf5acf74bc635be236d8f3758c8a08d9aca4dbef66bfaeed7d3c2eeb07eaf223ea876a5035c877aced4c36f6c7a41309be8d1c9e06e0e3cbecd8816ced015e345d75c0982d0a3e84e6c5389560b488c604cc5d1afe796ca52595747f9484f00baaa8c27e1385139817889f266e8d497da085715f1c0866b4a6d5156ec58665c8786409432a54542e803f7d4754e5065a253290b2290a14d4eb49462315f7d6f4110482750970297b532ddbcc698f72e2edecf9b826113227bba55dbd4a9f16cd803a7619b9f09feb2ee8fd6556a2965058c5b1765c7e3753686d74d3f95d394f93f2c28d77044ac3c122dadb16a7a8f0a9e5c5b3c728e6580512b22c10381297db25c0b2f7770815e37133be47f7a5fc0f88f7ffcbcfde1445034c1ea668b556378ca70cbc826701021ab704411ddb8277fda02ff7883fb7f76e4e7d43adfc476cc6e611c1f29321c60e4091df0347a3e096d4e3fd86cf085f91d813080f3ef90f73c98cddd4cf815f23c180fb4d8335bb24b868980ffc23a235868fe9a68593d96e2939116334256dbc5fcda3eece1c39cab3dc3e631779f24d9c9d662201ccca46b9e6103171fc14a820711ffcd9eba93032c3cfdef2758ab8ab029b77faed5d9af55eb0db6889cae5580211d1807355f1578ef33bca6dbdacd6861d219b6542a318736d609546b27f96204cab66da994cad1a83e7e72a9a279b16bb4b5b5b38daf55f15f29c7d502ab0dbc89fd40e30f4cf8f3695baa785cab6abe10a48f350f09280f29cf114ea367b05475ea61a9cefccfa5fa5597cafd457cd7d9ad057ec6d1cded4596d596f73c50cbd02c27199ac53334cb498666fd800ccd7d793c42522c59d333347799f493199a6c39ac01a19d3d43933d4393dfcad064cfd0947733349b6768f60fccd0849b169fbca7ab22c23cf78b1bb26f1e7efe793e5a0abb9de08a475c82b7931dc1ae78ea89e219ae11c6cd8ac736c991ba6cdae744f7b0eb1e3e61c37715cfb4d8dca9da09bbda014ddf553c3a4cdb77bbee99a7ba67533c2e0dccabfe96e269c1b26e6fd8227fee8d6ff0595ca36b955da7ff93ae1f4cd72a3f43d7d6dbae7f7da36f6f3b358ac8a5fa29ad874bf5f193527d27ac8bf5b98b75b2f57a3f51fd89ea9fd7e439ed5ae15d79be53f51d91be9135be6528057a4b9e77c8f37e23515bbf294c7d4ad43acbae29ff49d40f226a9d3725069d12f557d760f72e2ede2e33f85535981bec3729b15f5783ddbbb878b453f3180bbf7afcd5b3c7871b2a0df8af16d1eea5a7d6a758505b724b34695c2e570f2ea5a632271f2b12fe725340bdf445974a262ffb076e4e4a75f4b2f0e0346b97dffc5c69c30757293c943ef83d550a37d71bd45a48de53d630f2e49b5f33c71f8b47bcef5f27e4fbab1478ab52e8390761c42b113cc602b23bfcf4c09a13af14b95a244704b97489a394242bd74001f71849802509feba6dd640cdc2b908c155fd99325379b4bff56732f27aae81e1f7cfa608c16d26baea6a5a49903da89f5d15db2a76c60d081d58fa0c83812d5083642a4826fd3f79811276644f25224d8103c9da548906825354efc01189b7b225a758ee21458498914b808371b4644cb6b8931296d8cf012c183147c4cdb2056cece4c0b10acc8a16518590b7dfd3f5a878ba2153802c6b4c3795253a53ec88a2af6c31654b8fd1c32d59bd485df5cbd411958c24dbe7bd8b8b877a0a9e817922fdc1897dbc7ab45ffdcc429561abdd53f5fc2e4b6043224ebec52c3d2e7827135d955f91f05b908d37b7cf37f926be3233fe4e58eb26beea1ec6d5a9985c6c10f4f2d314ae73aa002e9ccaca16e42d816a4431093e9eda6caca0ccbd344ad295dc2434361497e2165dc6c1912ccd35759daf92014c8e502d84fa083ac1cda2e86a35789450b78365a935b304c2c08b78c541d5680865d17c4d2de550229b8e0b08865ab2a34eca2c0e2c6a923536a8164b7554d3d57209df3dd85e23556b3a74290539855e7ba84b6b99ce88816e37a6b9d24ce0916527ca6e0e6d264bd9861ecdf556118b55535a4cc1daa4dd46c6817ff5c37db0f424da3e57b2fc1095254e187c1e72c8fb31c053ddb7a82e0e1196ace9fe3dd5ebdd6d1b4bdd44828bdf85dc31ab0703eb6f5982f3661a9ee636d48c7c9d5a61901c39c84e3492d808857c66ec938e9d3c525d2baca116105a27d702b09a8ae7aac769bb17c95c2e45b99941382dbadd635191b1a50f9415894158ad1ec93734ebf3d59faa6aee288b23a5aa0c4bcd2c5e37e0312d952f88de531ca9458461f2ba25ed547d0c59a47ad19046bb5ab688e5204e0804b68cfd15a5046aa5423fe8d8a0058ba5caaf88ed8f005eee961b4601d314cbcff7f423361980307641da2c923455b82131dfd20656378e0526a8399b24f1216fb906c5f4924a12fbcd692f1e2b922af41f1c3ce36b062be3d0c9588e020cf8026121a17b165c433225e40caa35500a4c4865a8f8249f2a92232d7f05f5299e7bc16b337bd3f2dd2c97a058e29eca126327b20c57af8229ab551b50e06a89139ecae2f93096ee5b603f4306e6807163f96deaa2bc8269aa41fbb0669450a01252af4b60140a9eb0f887c5c7c60835e76b512abfea057791758638591f308550b2b65dd3f11a8592fa7dbdf6e248ff27b37fad0751822e7d203c465612296f5f733d86d04a3e5ed7a6d7a8ad915a126dd782fb153c2162f17aff67c64fa1e44d32a3f40b994a39275eba28d79789b85ba9ca68134335ebceaeb3d2b50cd4ec75e4110e14a5f576bc6ed063282dbb7771d15ac5e3082e361b0642fe56cba92cb3a83cd7998ee3f53b81c39be37d22c2c2c72594822c71e24590f55949872d1637a49a44af916bc7b83b425519b08825632018a94fcefd3bf04ceb46d1c96cff2ca9ec5fe30f1e9a9a34faacfeecc0754de43582953a0687b40ccea9e19a4265c6f79be5a6a3a6b0fbf77d48482fa1869fd2ad55493e30922d48c7aa9cf1828a97e9af28252aa832432d4613bd325a5a2570c1df319422692c621922c533449c3a459cb81d8f545cb3fe14ae74ae0df3c6b7d9be514181899f2c3b352a663df17bdb0215fcca4625bc1606890ae145d802c9a47362e4b2948291aa98d291caf6b8ce7efbd9d2f09d8661dab5cdb86121505785598a64a403a18a57ffd16d5e765b5f88af0b8829f8c98919946bebf9a14b555046cba08b71a15c634f2928e2a689253c5dd89b38e7946d9c8bd899f33dc17e4f1e3fe51d5b1cc1ab09cb872179201f5765db514692be0d93e7c6313c4063702eea8f311c23797686a3fd27b187b81e69a816c136e4f5d9d57a78f2f60644ed9312c47c0bb530dc0a25b13d75f5647dbde03b7cb9e00bedf238eb4ebd5d2e1e391997cbd327cfbe798af8c70df6fcf64acb84aba10a3ff5e2d7edbca4f64cdefdb1279fabf9596036ab6de8ee2e31e310f6623ff96c7eaaddad4471df103db437abe9e163d83e7f7c7bc2dd26ac437e6b063ee1729cb0bce7e19a6ff3b0935ada473c5ce563863d3ee2e1f631c36eb7a2b63fdc6f456d1f76ff18828d8f1af6ada8ed0f8f5b51db873d3f8660f363863d6f456d7bb8e58fd8922d7f04c11a7dccb0e9238441a38fd8928d3f8660e56386cd1f210c5af905d47e27ce8f737c538b84695865a79518593400de8158de5b5682c8c7d4c362af3880c259e4304e285b573df5530f0fb8155b5e2dbec3eed380c3e2ad675fbc7cbc3e7bfdc3834bbd6d5e9c593c1d71ac5b6c125568a1a04ed5ab483d9062c1154e03e594e6abb0ac72c111dfa6dddcf9a1bf30f509af0998f876572bc4ca3767e856c180a7a29533557c130e2bc645858f9791ae8f842a87ce7202b3875bca0a002df8e39a8786dc19623f5ef012d40f468be09a726f1eb34185b847769ba172052073ad79cba10768842060531eb6a9c441aa31723567681d6eeb2349dff5e77e506e48b9ebdc1064ccb1f09b2a16fa42a15fb47a3f54c779a4adc46265129ce84ba16325b8bef1934ce17b7a70d947aa866f258d0cdaca6fb11a11f53c464983b76116553b3acced1e230bf63c32855a1d762e49f52745c39691e1314fb8513dc3329c246478c4b76ff782d56452dc9231aa0790e1b83d642b03ddd2362da4bce5436c09195b4019b167b7dc11e68e0873fb53e22e59099e92114cea59e6a45bef1e9e6e70cd8e4d3a995430d39f3ccb1359161eb0453c225a8cb7444fc8409a88951fe2bfc7b19987b25e2b89bd41d676f8451a006f548076a72b3cf851875bf79c00cf5b85973f6f7e69681389b4c5a5375c398bf6185819aa14b628790b0e74b2ff8afdaa67b180d8f0df013963eea4adbe2015de6e0ec763914532688f3e1e535dd98f466535f28be3030c1fb3de2feeeaa7688a6300d7c333139cb696db83300106886a2dfcf727a95b274a6026997bb782e308e118b270cceadab1c68d04804cd86641ae3465539e2733ac4eb96adc6d3439090121e0b87a30c1ffbde50c1182fa793f3a921f344b38fef6ceb247c6a42d07c3a321b491c9c2255bd064bac6c271d455a967403bf52d7b64383a84f87df1dc941a8f01b9874a43e48002896ebbb6ff3a6d7ffc6999d1e0caa933f1c143167cc2e4cd55fa3861737656e9276cde9c65aea76c1b3b1567731477faefd49db1f73d79fc3790968cd53d9089cf768dd9c7c6f46fc991beb1fd293318bb070bf3bccdeed5b7e3588f49a99bbc18b1bccdec5ecfec392c668594edf38810794d61a8b619e2baa6b2abc4a1e77868447e8f1c2abb99eb59137bcc53f581ac967e860043377c13440d2682052d8d5003a11c5680b2b55afe0c0255d103b3b1986c773016f2a273849450728f0014024878580d322b156e660a1603392d0815954812694b3cead898e201b67a2d96fbb3b3449d5a6035d4578b095bccb4a2e095535bb71f1e006a21035269ab6ffb025955ac8ed2726cd6e28ce7a62de23e865304e9a34304338fe031cf6196af8130b0c5e5d82c5d64434741d8ba02a7a8acbb755b215e4bd4a1752f79c53e89cdb813da915644042165d9c36908ceab3488823fe09c62c5ad5d976035394c41409369203886f5d40632badb447555d12701de7042caf748839b97a00bea9d2bc25cc5923b62b71097efb415822a14577628904d7db5f02b329e8201bb2add0cba4ed7ca8f25c52cf3dd1810a46c6fd85c92eabac5cf05a803d3b49ca34491e1c61a400e2020c009168084f02a961e263558a89a8ae7a317147ba30018cfad11201091bba52e4412032bb18497b6010b89e14d30b8863675c226b43a629c5be091c4bd910c6d1dc480ff44f726f605c996ff0641bf5657cb645f2cc04a81295310bb230b2b237fcd227f641b93900562c1dbb187e5c54bc1c5f58fe530d1c35eb13056ee270824d61e4e96fa97b1086a57591af497a7f1fada12407595c563d73dd800eb34232298dd76d1f032766c2b2be8b7d147ab399f911dd4c450a32c47171926c5405518675272e8b18a743dc490c11a6db5a0710f16096d61c62d59062ad2d45ce847cad9e112722b9871d6a001d9f54875f56d8fd4552c75c3e04e106b4501602a0f3b23942abaf77b81252ba267ff23d17e11b19be5c4b08b0120b08d606926dd4fff96f260d9082530a0a8c8ad6ed9c4a8a53a98e93282e1534f24c014307931680f334caaa76fc14c729f03721e0305377775f9105d66a4792a19a609b011871f0c802c52b6640731c9ad6b13c84a400c2c5a0f1b961e0be1ee542760e018d529d2bae5ec54186a0dcab979ce890954cbe6a951764b004695b29319b130ca2defc67d0d03b3cfe6d311cfb0edf8ae0abf6a9901c80e30540b53786be4702c5cb38236da2aef8d73233240516a2fa64e2d47d8b2e8807112b29925ae3625f8c47f097f948ab27fdd142e6500e3a2ec482a3ecb8ae81372216670109fba56cf10a66630dd8190a3412e465aa8b6e5b09f238aced5d23bcd6cedd8d11ca6eed16699bd6c0e18834082355fede069ba2c3b6acf495a9b95fe109945d16c15574ffba890600c241aa59c1ca96bfc69291b3a77c79768c09a01e761b31bba844a158c07c972dda5256f1920dc2c838242a98e610588126c2b1ed841c584790654a31f7d375f1cf084f09768893102a9667076d34090a6ed11867466202de9e4d6b6953aa4061044b687b77c2d8928a28a767631a445f0a831638bae11d873562be0408094d2772bc4322da160b7446dd722782147cb4dd13366736c7b689f0adc0d03026a2b2ae3abe14f217f2bb29da1c666736fc7cfed735cc754fb7959570780273cff49e2564ee6ca4005d31ac9b724769c4145c2be9f5e19e65526e6ec3079c72eef0cb30f7688e7f58923520a3c232e01d90d1f896650f21a69ab1e81cc401dca06eb2791bcb8c49c2f1b4cd2d8ab5eec3ef291762ba9b8be81de59f5a02a38ab00ed723d06299ba31512f491493a1841f8bb183a260cc1860c15604cb4069b8a517e7f24ea2d3d9d77eddbe2897492464853252f06da2ca07a5b70a7bb1fa65ad3b50386c5cf999674b969c3726b9fe69d8d554f993c879f325bb353a6dd618b829e05316bb735379f876915007fb86135cf8598a0218859a711d3eeb0c5a3cf83980d293e9d37d16bc52b65af8b399b3d54e187685312add610449019ce663bab603b13877b25835439f135d613f712fe7f262385cba74d2bbf6dee5fb781f2f90cb354023e4a36a768738886091f49b1a8e4b98cb463a4303c77605f83888c94771efde4b2a94836d9d4a60bfa22ec81abd9ce0312b16471dc1e2b8850731b18cf4089ed916fa990ee1cba11f85236ceed3c86d306a1b4a62363fe3cf853c6087554c39fb5e24ea0c2b2b97f917bde572a8e8a4f1dec6b4eab787bb0cc3bdf6632520db51ba6bc01881a9a2a908b01ab7a1e23ad79a2594c5b6345798c75e43297f730a4ef6ad8e3704bc13d4ee6e53d1313a1d4e253c0f8dddb85536e77cf4bb7a2019a96e731d05de97ca4b2107cc203b1392f2bea51cd07547bb8b3c3dc606225b87005ae7db3d33b8ed42db0956e9dc9cac8a87009b6b5794f39da40eeb173adc078c3592927500ad5a0a4c384eb03809400d11de731b182b208a6e926fe0080e606c5d7ad1d0bced806421aa695fca0a0d4dabe9cc7442413da5a11f06103e5c0c38a5e457054e1550ca574070297c06878733e9ba704d601aed5db0d585719ec28fd3893610e00abf66a81816e38b6c1ea027b7097b449d8e6413684a3cf64f802dd55ab753ce8ee3eaea1e0bf67c30d65e4405d5071392ccce4d9141641ad5ee68a6a0f2febc5bfce63f86a3208a257b26e5c6c6e750ee6a0bca5ed7bf703059e7cb54a634378630418f87c4443ed56512830c3c8e30edd50c2e1473e13e150e17037416ce7dcadc4b78433b2b4ea003d293b35eb09e6dff889b4e0bff3301925995ccd9b8976598816aad5dac399685e1e680ea707058f2c0f3bee2095e75c283911f5accd738ab6e4cae2b18733d93e6ced39ad97c006c8615d72d97bf09cc9488ba573f03c71b41707fa3b12f4d37b5f98cdfbc23cdcfbc2deb657ef9cc718c9bdd75cbcbd70a1ee632c3f55dd50ad599c4cef368dd424f893cfc5086833719026c9fb699982453282f7b53a132ba0a1fbabd49e8a9db2c7067f01ac002be53c17b5a0eb2e0186ec6a9156a40a20b14310517e176af113a959b1324d649a0dc311410b040beb9f892cab1dbd13304c4b891deef81e1e7b3e177aa297010b599e2f1c0b563f546e8444f94483b4766266026ea905b215f69ecf49b01658fed2d056c9b29aab53b3eb71e53c8659d81a78795fd1ee0950d54edcba93ce659cc69c96e56760421b969fc4b361cf82c41fb5a98be7916fdd1c2d13fa6cd853182825c2a9ae561f52bd118632e799a408189441114ad3f35cd8f25c8261c5b5f330b1ac20556dade24138299e20a077ce8294dc9be70201a1d98a42d146a8c0f03f139b8e07524fc5f2388b953219b696f5fd3e1779c403febc821295bd90a4fad9f44ca2c3dc37dbbf796123f7cdf66f7226631cf9ed310e3ab731f6b18d716e63ccdb18cfc57a33a7531335dbadc66903b43b1f4959fb7442f6eca954fb627b5edaa71fe3d8177b6c639cdb629f8957ac6571c8a9b26e5949e4e988c0873b97610e87706a3ecc7a8aa21ece269f42e969c05da79041732b0f3c9f14aa86b499daac4ef1b8f0c5eb20cfc431d6b86cf9a76c7ba8713db394c956ac5d5f8571c97bab77b811c2993026a3ab327a0a9e380fac6d7c897c1eabcd65cf36aeae1e256fab7d2ef69a20c1a85507677564f6b2378738939dc365beb57358e8cc764e6146cf3b83199fc1fadc3a887da019e84c768f77926c76e8a9ae20556272a0f358efb2ed9db6ed9db2ad773b97bd23841e8743c93880a0c0e4f03b3cc299d81a95045d430b6a3107d61a30c7bade259e89bb0dc899d62e72dd6036d80120249ec9fe06ae282a860c34deaa3336bcf2e3c6b90619f9ab363afb3918cabf67c3b51d1ff4d86dad58b9b8d552d20d60f59f6050d10635a30fea97ca923b19145a2ed3d87aaaf0eeaa27ef91c8b06b643f15b06774006cdbbd3e8c8c0442f700de30628095e2adcc67f01613860bef85acb1591dde49dd6f75e81aab09ae0efd72f47a5b9f976a45ecd1c7147d4c8655660d7a82a769a254fa972abb3ba1ac4335ef50a6a8cc169423ce4fd186504abf369e20c1fb127caaf138c2f4de973092437e58eaf32759b57e6d44c147144f47f48b2c923b715e5372f7753dbaaf737297472bf336a6f19d0c6c1e075653df863693bc3db44fae31a54f43ad460ebad9c23d0db472e0a9e735ebfa015c9d1e0093c364187e825afa950db8c3212bc0a7c31056cec498e60ecca05150a26e260b0d203d601e2d967558ae801570c0c35303104ac49070806a12d10f4225bba5af8b7d59bc7adece102648a878d57311c77204d636b573f1c7f0a870c4e91c7b6a685c81d311da5e9466384c30a7546d6d39fa8131db33890d9509379d65faa462c84ad626a37afb8dd5baf264acef006044303c847a3e7b1098e682be3bd635039c350dad021050a897aa08794d6bbd32ad668a93ac15e042649e496b948b6d7c26f363a9413a5b7f1e548758b5116afc0d95aa58ce79031a1059b4b4443a9f446361ef2a50572207712b193d5328941cf996c7b4bb465eb56dcdb9be01c448368812ee91d190c83e0fb122869ee810d9a17fca9f89fb2132e4b7a08601686368c883cd72bc7a95038a1decc320222cd659f52933621956d48664198afb7c3d1b1f254e06f763fe74b1f632f0610af2a23aba1f422ad78af4780a83cd2c3ea2788a7749aeb7757cdef90a14ccaacb9b421b90a9b5130a15a07b86f903542dfbf8b2ccdba75cfe5a88b234fa3b88b2a59c0997df01bef0cb17871f3e19adb7761af72e2e2823a121d3e257bd2d13a86683d35c28034f043d312ece8349fe41c091e139b061663f1d6cf7d41ae7db6374dce938598d170fdbd21e8498fb9693db874afecf049b268bdc8e4407116b06d7dec4d1121f8a1a466fe254e910bb956e4e0376dbaf0e6c8d3ee50020c7a72ca91c28a3472819ae2e7963c4fde24d19c0a73a10f059dfb4d40faab8ca9bc8edc0b17e29949ff6240742ca523f14b54fdfcc432ca1bf613a48e86f0aebdb91d498d3fc73ab1f27acee8cb027c2aa3564d6e79e68697d0621ef0916a4eefd783e3907209fa48c96da215b3dbe41fd4eaf139c9645864e75584fc322d48f37b7f219fc1ae1954eb4ed360fa7d91d955df54cf65ae71284da1b16afb468def00f107b1bc470f14e9a05487ce54b9972768cdda58532c7a29fd6baaf0b8aa48be0baebb55aa1274af86cc6de5109555b92a5f71ea4b17d8ef21126c3dd32f3064425c3b3a7fa064475ca0d9f768cb5fb18ab971bd99db31aa3f04647cff0ea1b688ecc33c9946b3d6fd6a19f20ecce598d71ba7015d9b27c269dd918770520a3bcad00ce658cad79b6944c5febdecb36c63351520d27ed5a86376f46adcdb0061dfe797687c25a4b12a05dcad2d07db535514b8b3b7aff64bfea797ea442fa3546cf1dd8fc32132d5c9167d36baa4bc93d35243adcda56bc73674db5d6493555745acea102551ba8c1db95da3772883c1162fd38e3e5d7a077c925f4aa868a08fa3ce3ba010bfe3c39a4cc9a4ae8d4535f8a489aa17349732979831aa7331c75958291ce3416c1a1a197bc94397527524b63399dd799786b303c13d218a3a76acd9c5c99f473f1d880a43ed2e266a2de9377c7791b8eb833d0bd53d35ba572683274bf09a51e5a563ea81d59d9b35de3e34f366203d6edc90d8ac692dcec21ae69435dace3b661bdbb96ca3d238851c41b44b177e411ef745357832591501df4a5eb09dec1cc9bf592d960d0258d55104740bf189cfe11e2f07654dd609aa67e5faceb3d9c027543d91ec0f4afabe5f3a089087e3902046c1e0129cc71c480db44fb243298ff12591cb71cdda0f30a40460332b756022d7680cb3bc8395afd00b45c9f6e28bf24c3e923f45e61c03b02cccf7a41a866a5bddfd00020bbe5c05147d03a926c9f40d8ee1d803468e57824f7e9f5a393eb33e92bd83a107e3aa5be16efd281eefcb6d8e8eab01aa27e31c453fcb1a3210d79d3062b7a23e0ee187e4c067b34f00c72022cc8e4ada32c892b4c5be5553656dc1a7390752699ab35a19c480b10f4f969684755d1838b3278879056707b64a2bb266919c86a6bddb028fadeb21adbe0fd9cfa8bd9d428facb3875ed16486ca1603bceedf34dfe2582c15a767cac6c583b7a250dec7aab67403b935f9c35f96bad240acda9e67fa8cde13843c83ff12c1a245b9ec7e1b1cea9c42a9ccaea08a925508d53478a8fa7d9dbba1d7bf301bfdc6bfd4bd85abd58f266719a12686af8e6bc35b3f1cccc60189f0350a0cd1b29f6d4228341aba3117bf00132050143246a9550f65663fa34798f9824d1760b3ac578c3926aa89c962d4ad6aa4ed6d8ac4991a741aa0868d74a837fe9aa502ad2da5deb828cc98a35f16a601e03bc6e4e53f2c223eb8d4181adc1dfde2b51f6f67f74eccd6929b5d646c65b57146fe4c9d6bac256ca9a3756f76d23e5c6bfde1d776458b7ad95bdb79f60cd66b014b44f90598abcf820c57b89595e1a3081adf1337c23eb7e635a267144e69bf79313743f1c7b53c86cbd2fb79691d5da9978d7c7e648b786796179f8e3d81e7906efbdb27dae8695096bcbb9179f871cb2372b645fbae26d2eebb684de9595d7ad83a2153f5a3729ef9cd23d811b80165e9cdf1d216a2f39be3d604c4e77b95a607151a5243cf62aa0d32a54ef6be9ad3e9b3711457f9fbd5da8352429616f0abaf5a6f5566779af6f3d5663b6635bd0719d36f1f875714d61ddd268df41c506e66dba3f4191436faa516a9d6f623b9614985960bdad8ead84b70c7ad9eeed9d3fb18bfd8e37850b68261c9bf7f6dcf2ec0d1069eb232c9bb8d93a78e2ab16790cd3be76d2c1d6fbe93a4672f14e9d0329df0cbdb20d7bf830e72ed31c376c2b493e6645f1d66dc7811bdbd60382b11f0dca736f5b0a6583ffde5abce7d42bddf919b04e6fec3a5677d67a462ded22bb6e26cb890928de29feedbe425bd7540a5b6110a2be9f804191bbd4b8fd9341ffc11914ad4bb8fdefc6a0adab21589b9c32e88ec9c14756f446cefd846167dcdaaff3de7119b6259813ac72e44f7613a26dfce9a6c58617ff7efef4b6bdd5fb1cf6ad597a89c716c8e5c8a2d85f636b078d63eed6ebdaa01737fe8c4706b54e679eb7e03ddd6d69c917f8ccf9b3751cb100abe24470068d1b83fa6291534ce2c6a1de3b8ebca1e406595eb63671e4d623baaa7f0a1eadb35897f07ff2e83f328fd659bdf1fbdf8747b7d8c1372f9e7ff2ac9d6ca5ca7569a3ee57f0a84c5ada440fde99d35c3ac393d34b9233cc3e6ac3e6d196366768232f9d2642be92c6b9e41fb5e9d8146dcb3f6a1e0ed1cb31d299e4dfb74c69475590b437edcb5b9a6de77a2e9d45a820cb6ff48349b969e0ab5b535674b96d9602086156ed70b9ddb31ebbde71babaa0226f138a46f887ec8dfc77118b9a6986efb2b85bac1cadc8fd349f03a32131ea471c107643dc44f771f34d58958a8b1b6b4047915cba0fb7d7c6e6ed64c827eb90c230cdc44fdfc55b715b7b6eca26bd2558f7e6638f611f9e798e697321d306a2fbe47078f6f2d593e5f5d5e3e7afbe7e71f5ed83cb6f1fbfbe7af6fdbfe6443c16d50493c6b27fe066974475d6a5674a3c6bfd8d410e9446a91be44099ac3c75f5fd834b92542e97ab1ffceaf6af959a2a2fa3d424329abf5366d717d93be9a7de09d6b5ba62eb4443d60f1840b891d8030a540d0e7bf526c94004888c8ef0de58b9c15f54a2d729c69e642dae359b1f80a6a10fd9329a73a87ae35a6baf34d0329ddc274bde4ca0a4f950d0e6cbc03c45e092950ce8e67ddc3fee92e3d694cc328c96a5d06f2e6fded319ff7b47f8a4c6e56eb12a6e5c4499b684323f6eb6b173ca99c7d2b32499a37ceae99626a96dd32d896f9ceeff495bf3a7dfd9e74d2fd5bb35e5c1bcc05f33fbd8e64a757b2f8f7daed0bcfada9ee8e3f8a9a7398a20dda2d7ceefe3a65f39bd02332df98699f24e6196139484f7abeebf07dfef9dc1ac4b425e058e1b2fe06f56eb59d340dc1a870d3b5520720d1dee3045354c6f6143a8c244477d159fe86e6051c01a869dcf2c9e652075441657153d154d38fa4b446b018423071427e99f6af036fbfaa33322a58d537b58e60852f5f7246788e61ef609fd7866842e8805551c71a057a2d16ea8c5038468af8df012758bb80a7aeaa16f480466664455e37e0eb2941294539fd97c49d5a934b68c826dc6c571ba39f49f9f7247f8b8e013483b30d7aada06e69ca473db4dffbb58329fbc992d370a629d7e8ac18e08e804c01156d275a40db4881e9f48c69066ed63676c331554e8abac18865252079a94c45e6e7b76baf3c6c205ee27e6d5c00e58c76b678b1a0b4e256b6c26062321ae0a680b30151a0c024c240dab6214e59640d39b683b52c40cac278c198a87ac951b7a18697a1b4bf17695e741131e2d545d48ec86500a02c1123a08647a28275a5ba0623804141865e0c3b018dacaa67c4690b6617ef46cfa66acd3fba0b3f7069916073993c9d7a9c7605d0d5df8a9fb16f950debd19701e629461eb71db213523418ff2ea6db006ba20a814180005a9ab959cce882c34601000234459a27a16092047a0989b45e0d7e1476d36b8b1a2f4457fd673e9cc4d288468a2ec3290e884aec5608e16c1f88cc852b56433ec37efce4cca326d9d6ec43070473cb3cc90224784a9a2bb11df2f40ae1db7ed7773f75b053de7eb5ca12eb29a4c338c58b275269fdefadd1acee83dd54885ad77ed2db11aef1e274300a932d240ca2d6f96e6b0a143b4b7d540627a30c4100b26b67399c3696d51f449c46d12f13889e8b388368b787d163f75f4c16127fa296bffb0bb85529b8d97ce89a5743f73a90cad1f7fe63abe783b6c9dbc7690c8d2736a94e7273c74d5526e98ea0d87ae4fbe63a543c490dab2bd6f51f83cc32861587ae93c97b1963130d6023bc3071b6db0f1dc062b452d611e23c93a1d698d2d760600bb6a59afd9daecaaf89b2ad7550f009a6d35a82d32a02dea11757534d1546a4011d728d38136abea45fd23027162901100138825072a517ff2a1d8cd81ee6930eb747c144ec67a1ec4f39664aadb570377c271a1a075910e5e4f6c75acc088f28e466a910163c7e836cec5a4862c5093daa0d260536f1dcd6b804d5d5637a9813905933a1c4d6ab7a8ed242501a041d37253cca48e629cb519d4d12dea0840b6ae921f09edb74c1fbc738274ddc666516f0675dc0cea78625047b3a8e36e51c7a3451d37933aee26753c9ad4d16d6a808ca1f4852bcea172efe296059e774d85960568aa03ab0fbb3ab85d1d8e76b59bd56137abc36656bb551dddaa8e9b551dddac0e6656c753b33aba5d1d37bb3aee767574c33a6e86753c33c3ba629dcdb076bb3aec767538dad5665687cdac8e47b33aba5d1dcdae8e47bb3aba611d77c33a9e99615d07a9599d18c09740679bc110fe0009ba6e6675c4c993e0bf81cba5de7601efda11c51315164de5a0ad0cf09675f8aa0d1b7ca67c885dd7a4af641d943994cdd01634036b2a4445edd5e635202a2981604706510de78a15c4946a59f17af4aa2624ac5f33d2cacb3aad72429455e0e865bc25523b44ecb7beda4117720a421a65d9ca2bc22b0dab461886488b534e29b14a6a883d07642b17b87ff45fd6d56120d6ac32aba77630f8c1b6a279a92a0965bdaa4a8d62c5554f7230ec42320f1e63afa2a52ccecf4a3e396220a7160bdc29a467f0ae0683d94a4569826aa86e30b896fae390df38e44cab11840c2dde68d1009ec51c5e9e5884d0b6d51aea0a7483dcedaa86b19d1859fb34941d07a01cd502196bb4a2268edd9a096f7e5352a525488c19c0aee408da6e1521c0c935842b31d83c8c5e2c433c4eb811947322e5357283579363c5e91bf487233383e0c8c65a235be05e6d28207d82dcd1c95d55bb9a3185f6c2142547c2be026175ed504061852fdd0c38e070714df521771da54883f4a9aa902b62edc75df021d180f7644ca431a8dff1fea4a66295465fdb8c1d1aa8b548d4b03d8aae8e5e3f6c9550be9f6a186c7d4e0bae44661a0ff5aaa9a40af6c5c1135edcae57f72e2e1e72613c300312e2fdbb68fda73f701ec2aae6a17c5d01551a8e1553239ac16e1d6f507a404813e99055aa802b36510bd82e64358c96865256490d6125ec1caa5bbd2e37d7cfd90cf719bb4a811237795094d5bdf0a5ab5103390fcba8fa53aada99f5191d4c419f0e4ae56089bef045a9d4817d1587c1cfb1d7f5ba1550f53146e950c1f449f79801fac275a546054ca9aa2ac7ecb21c81cb4c3a3666734995359b5304855bddac320adb340575619b3dc38e871c40a1680df43bf25d2a720e210a2c49d18b29a3e52f4ae203321aa1fd1a248ad80f4e7bf13067a2a0b08fd8e0bf3a5427421e1cd9e48e037516544a75f7ea36f8e05057a72303bd903c09d1e44577ae90a18d5402b24b52b68a6db6cebfcd4c0db8eecc110390b711dd64357432fc5eb776732a46200c5d375514fa4928f8b3174eead1ce4a62b0fc367beb2baed354bbe661cde8918cddadd72570635cef2cfe1182280f99777d726e40d7550e6bae82dc7d0c4f166dddbdcf66c065aa08d301fb787777f7b5f17e7a23b20346bdf7adb80c7e02353b86d51e9fc730b9d13fc2302bcabf7b56a31c6609b0f619e272335755229e891ba214b5546cb8711f6fdcc71baf8df777f7bff9fdbd7308602349a10669c3dcc3e7312680a14a173b5bfdeefeab37dffcfedeff1f0000ffff5fe69651a1010100", - "67965ff5ea3fd75bf5d6891d715a8d5f": "1f8b08000000000000ffaae65250502acecc4b2fcd492c52b252502ac8292d4acc51e2aae502040000ffff3f6c01c21b000000", - "6d6389bc500aa7c88f06a525ffdc3964": "1f8b08000000000000ff2ccdb10dc3201046e13a37c52f2a68f00caed266058c023939e690392ac4ee511257affaf46a887bc84fe4939336223eaa9c0a4b80c9acafbef928c79265eb2985b72c570dddcc18f052b5f9b556bf466529edb167cc69c811a55e22b8b05a8741c025fdfdb7b2e10fbed83a47933e010000fffff34f28648b000000", - "6db581c2c298b22b8281e79de71aa56a": "1f8b08000000000000ffb491c16ae3301086ef7e8a61c0e080edc0664fc6f1b224bb90438ba169ef634b8945248d91959420f4eec581b6a487de7a9ac37cccfc1f7f2dd4057a4dd3b4c6f15afc06d315bfb04900ea61f5be1085b25a5959749afb1336ff84f21042c9a39fca07165297ade351ba18ebe5b06a927a29d4a549923a5dc3819df9cf2ebbe75fc86d68924fca1eb58c318740bd576cab8fbb8f64e457ac253f64e11e69c991d96d63ace0db17e56e0b719183917e605101b6cf7b8c0b0890de74d3358ce4bc229d6108e581b598859673fe72f046e3e293d4ca9ef69cfd74d6702ba002ecbc85cedbe2959c55f68839a0204f45cff6a09cc10af0af9370e5334c6727ff600e1d8b6b05b821db4b3d8ba64d52a710e7f9160000ffff43242cc0f6010000", - "6e0c924074f3636a40c0a94549a7d6b0": "1f8b08000000000000ffbc544f6b1b3f10bde7530c22fee14064c32f3db9eb2d213625d006d386dcb5d6d82ba295965939ae2bf4dd8bf68fbd9bbabeb5975d09cd8cde7b9a3789546fb0d6a2aae6ac3cf00f5064fc7f965e0124f95d7720b9325a19e499b6eb57967a3fb1a5ab265fad443df94c765786904cf3bb3aaf5771a3ad709cd43677754d80643407adccebb31d1bdc77859e4481936f58d91dad31849570f9f8e6167c5d66062c730632677849aa107460e1063c8c9a8a000f84c2213ce11e86c856644ba410da9b213439c954aab7f4aafd5d254e641a3bc8cda6fef2dcbe21b5ebcc924442d968e37214f29812375cf7587a0f24cc16e1ba84d91c1a4cf7ce5105bc85138338a80d98183579b04561cdf3a144600e7f38d60b4c5c9e7a1fa36a9d56a25a0bad7e2244d15d9ef6eaa191c7c46edff17779fa9fc9aaf2639714ff28644328b3f2707aa28d25180fc57c11f4202afcaecc56630837a00c9c8d58e91d091d42ff891247ddb2af4e71419e77121597358a571c1f4468b535bc50526a6469e4e3fdf5052e13ef63fda1ba21764b3275327d07a8aff1199d5b2cfdaccb9638469dac31f0c53bb0b5393c0c42568244f1b8086176fe498e441f1710ce194b998d65b7109b6006ec45e13e7a6cf4478028951b2268adf657d0ed051965b627804ba9dc6580ff5c41193b9ad82d30299ce005badc4a3603b6587e593e2f8f076b6b368a8a78724f0807bb836a47f8e9446e8195237bf88d5f3baf4edb539325d3ce5ffd29d77a3a99d6132c4eba5e1f4603f1351a87d48cb4d11c4ab15546384be376a5aca941b457ff0a0000ffffc89382642d060000", - "70731710a6b9f5808311e8dc2d8f7460": "1f8b08000000000000ff7c52cd8a1b3d10bcfb29fa1318fc416686dc72900cf9bb267b302c3985b6a667d56b8d24a4f62c8ef1bb87b16cafc3929c24d155d5adaad6ff7df9fe79f3e3e12b3819fd7aa1eb01a01d613f5f00f44882107024a326a69714b328b031080531ea857b71a6a7892d35e7c73be0c0c2e89b62d19379afee85acc35c488cdacbd07cb89684c5d3fad37e18d04768e07884362629edc794da6f3852bb9911fc8be074d25d852f008ec706788010e50effc8e21e699bd0eee074aa0d96068a1c3c1547241b7c5aa96d6dd6da52d4ffb0bcaa51e8ff41c2943c5b148ee19ef8a74bb6e4a1499871bcf309f7e228085b96c34f893b0a0ababf702fe51b771ee42d1f96eb5709cf610799bc516c6350e0320d176229240f286ea578c4272add80d30c6ad9c6f307ce21e8ee1ab9dec6feb05e54dd9e27b01e4b316a1e073950be84560d4a98e7ac576af0585c3b2fd0ab2b157260f2fdcda8aee7e9aabe34f08c13169b39bd35f8f9e6afeeea4cbaab0bfa3b0000ffff85cad3beb8020000", - "70ae08ec6bfcd89151868c693af94486": "1f8b08000000000000ff7492c18edb201086cfcc534c39d99585db957ab19443ab6ebb87dd4d14a7eab1621deca0624018278da2bc7b35d8de5372b060f0c7fcffcce065f357760a7ba98d0a0380eebd0b113360dcb88e0330dee97818df44e3fab2736f63db4ae3ca650dcaee55e0f730658fe7bb3f493c94c787bbc0b2923b0e39c051061cfae8935f5127ed7418f0e3e4443cda4e5b05d08eb6416d75cc72bc00b0b2c4cd688cb61d36ceb6bac336b81ee341a1b247012cd55dad283a8b9f2a66bc7ed96dfe6cd6db1d2f907ffef4f085e7c00e6eb8853dadeb8419d748430cb1e3a0c20df657fdb82596102f87e1e4c2fe96f2d7bafebdde7e9f516054a80ae973011835a24807aba91fafea4417a7b66464a240aaaa403252e0a245b9749b6e7e58a1d5062fc098719df821a334990a2107760560947aeeebab3a65f376eda37676b80022e2d3eee5f9599edd182be4266dc421f68617c0d84ef5dec8a8866fee5f8569de291197de57f39babe20251a14294eff134f7bc987494f1442f7ee6f8722d805d73b8c2ff000000ffff685bab16cb020000", - "749dc26d85a249c8c5a3efa92cb0293b": "1f8b08000000000000ff010000ffff0000000000000000", - "7a58ef101f5e8bc63d4aa81d805d3dba": "1f8b08000000000000ff72c8cc2dc82f2a5150aa4bcacf2f292e294a2cd02f4e2e2ed68773f5405c256b2e844a87b4fca292c4f2d4e2fcdc54fdb4fc3c185b37ad2835551fa4393127472f37334f0fa213a135a9342d2d31275fc99a0b100000ffff04baf43578000000", - "82bafaaf693dd31835437687f3bc795c": "1f8b08000000000000ff24ccb1aec2300c05d0bd5f71d5b73c8612b1a18c4830b232a2d2baa9456223c711e2ef11b01f9d3f9cd450d4082c8b5a199d55a08256591278b71754a288d5fd516308897d6db7eda425084ff72aaf992c241d3eb41bc073c493f2a485aec9889c257580db28357ff788fef20370c5a12dcb9815ffc7f3a6efde010000fffff7ca089490000000", - "83e722486c9aaa60954a8c8bcd026763": "1f8b08000000000000ff7c90c14ac4400c86ef798a50f7d0824cef82278fa22ebb4f909da6ddc17666c864441de6dda5587b50f09404fe3fff9744b2af34319255177c02704b0ca2d80262e359fbab6a6c609d26a7d77c31362cfd142e791c690efd561be800f42332966242d4649e696173e214b258aef5a7c3a492ad1640dcacbb082a402928e427c603e1dd3d9a0d0b6b85bec7520e648e942ccdee936bc58147cab3a25be2cc0b7ba5556e60ccde62fbb61afea5e9feac6cedcef510bcf2bb76c82241704516d62c1ead39b11f58daf539e6aca439bd3cdea298b38af353dbecc14f61e0d91c2544965a6f7ec7355df77d36fba156f80a0000ffff7c5baa9c8e010000", - "8d1395ead30d0841f952b8cca46300a8": "1f8b08000000000000ffacce410a02310c40d17d4f11ba3707f00e82201ea034510aa529498a8c43efeec6c185ab8139c0ffbc13143a435c5794ee861721ae782bed396ad2f266bc3762b52cca7362564ece84367266b318005c53b39abc48fbfb5c553aeb9cf04a06dfe6316a5d601bc5b00f303a1d03d8467b01c4e62acb1184df2a864f000000ffff4c95c89e87010000", - "8f7214811ed4641d8d06c428e736e427": "1f8b08000000000000ffaae65250502a284a2d4e2d2956b252885672484a4c4acdd18708e9a6e69529c572d57201020000ffff2214070e27000000", - "9897b71949d4e127aa00c50724ae4b5a": "1f8b08000000000000ff24ccb1aec2300c05d0bd5f71d5b73c8612b1a18c4830b232a2d2baa9456223c711e2ef11b01f9d3f9cd450d4082c8b5a199d55a08256591278b71754a288d5fd516308897d6db7eda425084ff72aaf992c241d3eb41bc073c493f2a485aec9889c257580db28357ff788fef20370c5a12dcb9815ffc7f3a6efde010000fffff7ca089490000000", - "9a6b926cb5a5d57f2ebe46e33ce680be": "1f8b08000000000000ff7c51cf6bc23014bee7af789481a7b678edd841711bc270e2d46b784d5f63306d6292ba8d92ff7dd4ead876d82990efc7fbdef734b6b243490548c39834050348219966d369f6913046ed79fc7a7ee58fabfd43201f18eb7b5035d009326383cf16f3eda72548acf1413af209a431324feeac04f9517fc34e9af57d0ad45610236325d5c611f7c2291b8a0bf4bf738ca39d3f6948054c84230c0415062cd113f4fda89c599badb0a1ec49698a910fc1ef2790eebe93fccc315836c74a39482ddc6d37b3fdf28dcf77cb97055f2c37b9ed4aad448ede53f0434d5c35d6b8c02d8643f16be61ac51125ad8f72584fb53ea0d66305d280a4005285435766c234b9346557d7a84dfee7bdf11b534165de5b6db062ecda125c497039c657000000ffffeab6a341c2010000", - "9aec4669fcf2f836741c92fc02cc9098": "1f8b08000000000000ff2cc74d0a84300c06d0f5e41421ab7163cf9496fea16d827ebdbf20ae1ecf351d5a336b42b77913f5e17681ffc4cc2c332334c0e52dfda476b415f76423548bab143d2d7c0a6df4040000ffff73c1922350000000", - "a2aa87a7f3879b4244cf8c8555382e93": "1f8b08000000000000ffbc92414b03311085effb2b1e2b85f552a878743d78d793b7b2946967acc126914cc2e2bf9760060b2a56058f99f95ee6bd4cd66bdd49a0e4e2347581bc60447f8859111f303bde4bd6beeb80777099697b9069ea00c024c7e8477899e2dc0480e32ab85a8c28c5f11d79e1a1e9fb732caefbc6d9d5f78f4ee1b4b9c1d9ca806de4970a68f462dd5ab3fe2e0965e10d651b18e23c1c8f28cffc25f1d320c329de2ffecdfb37fb2a2ae917dbfa34e42da527dc5016b50eb1770123722a62a57d652f57edf8167973ea5ff8e373bc060000fffff48dcecee6020000", - "a5bd9ef051dd34fa95a8ddfe363e527a": "1f8b08000000000000ffec5a5f73dbb8117fd7a7d8e34c3b644785d29be94b3a79b063fbceade3786c25d7b70e4c2e25d420c000a02d57c3efde5900d4bf9328275192bb8b9f64098bfd87c56f7f4bbae6f91d9f20f0dc09adec6020aa5a1b07e960009094954be853a11b4d9dabfd978970d3e696e5ba1a4df46d53965cea51fcdc2d50eb7a74fff7ddebb391415b6b55a0f142f339d3b5b3eca8aed91b5da0b4577793b64d06d960301ac1782a2c944222080b135468b8c3026e1fe138286470ee4097251a0b1c6eb9153958679adc3506a1d486b4f0a2106a32042c84136a025c1550a0c4f0056a3e4106e7253ceac640455e90b94a1ba4ddb9ae6a8933d086044021167e0ddc942b70538c66058955a81ca71c2f659d262d641b5c170ef3d19d6929f50339a178451f524f48915deac20284ea827d499b7c965ec28d5093467203699742bfc0ae8caed1b46d46b227c730e6b7125fc2956c0c979bc27e51fc0fa3f8355add987c8bf825af9075cb51fa8abbe95272b426faeefa224abd17f80063ac6ac91d52c4059a955d2eaed8f5fd6794a320e4dd1b8572d8e14ef717658ecec374df4b6dfc0fdb53148e7ae01e6bdcab39d4d47c00102b79213468bd6b17c23a98a0b3c0a5dc30f893d14dddb62c9673a3fc2df435c6ebda978877b3e66e4aba7e3a1dc3967c0e6827a4f7fb9ccdbc3369be70f5b5560e672e0334461ba028c80a3a6ff5e41872ad1406a74aa32bff731e360d00dc6c08fa0e5ebe829cbde7b2c13471b32463e95f6a5d93f2b8371b0088127ed077de048041d7180565e5d829592ed3446970862bcba335dda822a18d2d21d17adade73f39a5b0c65d0b6e4c09ffd9159b635bf73afc357e644282a3783b691ce32b8e286571612baea89bfff498de63fe12b456ab4241ca06d422b16f49c60c91be9e09e82b6c00d060daffeb6a1e3d58f2f12daf3817c7433d639706674154ca7398b7f6459f4f21a9d11788fbb0b66791827c721b7680c99f8c08ea44c7bb395fdc30bfff00a9490ebe781c674098fbf2c3099fdc295b3693275954c86100aaeb7907c284745110bd8c74db74eaf1611580dc241ce15dc223436a01a0974f79f795539bb419726cb834886f0a1cba6363e730ba9def093617f3165ab09c9d93552f429353f76e3b86becdb7f0dc1b09fc76f2ed2640f360955e08cd5b2b153e61397f982ceba64fed7fa409e94cc4d8f7e7cf182fcf8e7cddbcb3de7bd6e73f6f4f3db61f2df6f2e9e66f13a144f9a67110a6fa6fa2140219d70c11df740acd52e20ee034652d861e32e601ccde7c93c69dbb5157fddce4fda8fc14df2fcf7889b7405a5d439611e578055ed1e77e47a17ca129f90d887b29d8605cc8e359442157d1d369c9ce1153a34b0fd7ce8b80912d81ac4b9193b13aad85e829db34388b0ba448375dd49d6838379c8eeeaadbfd4ee8c523ba44dd92151b20fb4ba70768156b71ef1ef30a865a7fae15b81d622a0af065a9b16d7416b3ea7ca5b4e2247f617bc85bfb62da1cf253e80f15602a095da541ed072833c8e100a1f7661db728ce9e57d3bb14de1c3d301ec12f7e0d713cb701f02642bd7e233eb50e16619b6741ea80a7f0094bed79468a4318e86bc5d50a3232aefa3d9a4d167fceaedcd67f2ece0d8de8ef10db0f99880b95f594c18653dd4348691d3aee170ce8ef7c2f0d3b8e66fb675bee75214743c4bbad279b448ce00e01e8db1c395fed4ed3b52452c843de8bdc8eb9e4c893218633f737ba41ed36c5df2b3fa908ff80dbf0bd1fa150bfc9e0bc96f2582505614b88cbde3e7716f848fb02d190637635b8a430d39067cc223c1a7ebbda609dc94872a682c1a9a0996bb736d0ce66155a8ba716cddee21ba672f6ebd53b5d1395a4bc938554eb8c7cf003232f6691df5539cf4ed361cc8a6e98f68ac9f6299baee86e195fe7ad851f3bca4ea30e8a771a5bb0ab6e880836d72f20e2a72718291789d496ea769c68e8a224da2483284311b132c488fe043e82f2ee69b3d16acdb9fc5721a8dfca300838508a51b5095d8957fb0b8c95682d86a526f10df52484348b6f5ff3fddef2b6c767e7238eeb6e25800b5e26b53b9ed1e7c0966775a08b7a0763c3ca25db0bb5d44e3d7f482547d04a1eb1f5647e4c5d3190885f03cb13e8915fd3667cbc374b64391712abe7d6cfc5dedc9523ee56a823d843c12807e42bef678e7eadd977dbc133c7fbe2ebfe3ebb27db4d91c02bfda4cd33713c46a7b9e097e35137894f93e86822d80fa3c15fc71a682c6dff1ef6a2a086ce21b0d04c1f827ce02fe8dae75463f86fffee8232f2b6f5e77d217cf5d5608ffc9e9c5e9f8f48b3298e8ff3385797e47b5418cd6bceacae4000ce76b00744950fc25e0b90879d80ed0d71be0ec5fe31f049d9367e05d05deff070000ffffe23875a37d280000", - "a85bfd7cc3b5f9eb04967d04cf35cc5e": "1f8b08000000000000ffb4525fabd330147fcfa738373048e09282e0cbb4f7c93b15748203c12749dbb4c6a5392149ebc6e87797a415953995827de99ffcceefdfa993f551760a2421ba77e8233002400d7634dd43f4da76213f773a7e1e2a51635f74580d6d2b0d16ad5175bc7decd015e3d33f9ccbfae88bf149423cdf94a05b60e862108f76d41e6daf6c84bb1268a34665d0a577cae1029b879b9cca8ee7990fa684e384b483ad415b1d1987cb2a29dd82f21eb625247af17608f1a022a32fdf7d7adc7fa0f74013e715dfe681f26779f2ae04ab4d564f97c14eec64948629ef3901987e724c001a8fee858cb292417dec0de3e96385a7e4209726f6ea2ba34be6addca674c98628289ffd567812af646054dbbc258d36882f012de58b8d70ff3d54c2eeb46d0e79dfbf1bc9034b0b7fcb32a701c8d4cb2f94fcbe57b2519e851993984ac83ae20dcae6f50f4de657e84d645a367d555e1e5dd95eb31089736ffea1b95fe1ffab35872e77b6f3d8af2eeb5b000000ffffd35ecdf2fc030000", - "a8ec67aa1e41fcbd2cdd86240d37c5e0": "1f8b08000000000000ff8c565f6fdb36107ff7a7b8e9c9326c0adbd3e02105b2366d36b88e51b9cd80a26818f16c73a5781c49d9f1027ff7e12829b10da4dd83219a3cfeeeffefe864f54dae11641535d93018e8da918f301c00646b1d37cdbda8a82ed674dfac56d2508176bbcf5e3cedbe2cb0225f6108e605c97a37e92558da492f6b43eb35fa972f1c099d9bd0584fc6a02a02568d473ed63fff6a5fc6e2d36c3000787c04bd02412e0671e99cb8d571b320078703ab787c7c3e794f0a4d587c5b1f0e3f8cc0c4912bb6bf14fc71e4ea5dd6aa42ab6072380cceeefb5054e4c3cbb00f45c01038472c53918d6863dc3b7cd9c323a16c900f06450157f34fa00334011544820d1a0761a763b58180316abb0e702ff9942cec36e811e206f9a674cee84a729530c23d6abb06df58016f70251b13793753b84543ae461b3331d84a9f345e00178d78877198bdbbf97a35ff948d4f65f3242b9d8351e700073c6d2e61c4a9124b2f6d3032924f9e5c3ac71a5b1ba531e0a98918405a05b556cae04e7ae422840e916f850d3546c13d82c295b6a8042c373a3052dc2058f45b840a6d440fb4823d35fecc7931280adefa400d876b7ca46c0c6b4f8d0b63c0580921800d505819e951c1f266019357f0e6e676ce18adde1aa50d5c7e7b6a402a05f2d8f84870279dbb83915c45f4a30e8c232f1922a91b43dcc8d8ae61a78d81f9cd1236728bed81c5dd1126fb8b10649d92ca6efb06d9558f811a5ff506275f03c8003b34a677fa8f08d204eacc4ef07dd83d42b5c1ea1b2ad0360593bc42cfabfd492092f3772547faad3618eed80a09af2f97afaf2797b3598b388640a0639f30697672cf55c7979d91152a3032c45e57ba7362fa986dd7b18d88f3b845db1bcb184f69499165c14860718b9e8ba3924c2562b06a6cc59536cc4fea121e995d56a95e2f2ec06a9376a0dde8eb4dcc7137ecd7372e59d58a015cd9ed945b63dcfd2fdbde2e23799c42dfe962de18f378e885161e6fa5c73085cf5f7adc6eafc76566f041742d39ccc5b5b4caa0ef210e670ae7b2c629645f8f598ef704a7e670f8da5992b5d70ef9207db9fd9a48b58c9a23b5078f4a7bac5210cb72d6c7427c0c384c245f96b361fe7c7b466bf0f84f8321b6c48f117d80e14a9bb4e07edbe7e204e788fbc5a2bf334bff9f814b8c6d3d74e01d054222ca48f06779333f413de24851323f1db57af177209bf5667f774c24e5b75eba0028abcd937e6d414264e66a07ace865a1129fa4697098c5872c17c39123275e93b598e4f25eee03d6b44da62b1de4bde1a6d6e12c323c5e5a7e6cb50ceb34a8c49bdff3bcb79de74e3b76da8befae96c3acc8c6704d357655c2c249c4636cbc65b9c121b16decc83791426a29435281a14a1a8415f7f1982708342ec53f3e9135dc754f0bb1bc1b272eb5aa45e8959c315e13d227e13354453e9556af8b7c0a314375514e8cc2fb3579046d57e4eb64ea143631ba302d9ee7a2d0fc82291455a14888fadf24dab6fab19bc3fca991df3f19f896a5b8d97832a14f3ff22d1b2cc769e722bd3b52f3f3e3caa71597d5b4f520f0ec13a2e8ffe563c8d04e3e9659fe5b02f8e98c514419c90dd177e979cacef2c8ae61de25aaefb6ef849859bb3bedba565ad0b6a23a8df436a6693aac981775004b11ae97cb452920e3884e8b021f64ed0cf2a323838b57ed7e383b389a73cffa156180d1c8521c8d006daae9b29c8994411eb827d31696048a92d10cb6e3d6aea8aeb99c9b902621384f0ffb1fe43ac9fc8f3a79f14159b415f2cc66dfab8e2eeefdfbf638512ddae93c28cbd9872e17d3763cf0a3e90232e74935a97d3a062ecbd9823db946a9d08729d4d27d0e919f045fdacf63f6d7e42df99df40ad564e1295236edd29325fa3f70adfc170000ffff9db270a2f80b0000", - "ab8942bb19a00ddb54dfc22df4c36c21": "1f8b08000000000000ff8453d16e2b35107df7578c6e1e7861775321845454a4d2842b046da240dbdb27e4d893dd21de19637be98da2fc3bb2779b80a04279f0c66766ceccf19919fcda51048aa0a11f5ca22a26dd222cc4ec31ecc82168b610f08f810246f8ee6682e0ea9b7afeb59a4197928fd74d63c5c4da16ac36d237c82d313643c4d00e64315f54d4eb169b425478aaed40ce36ea87cdea1e5ad90ebb9d76d24ce7f5f1588b4fb17ec21049f874021da1a460506af9f0041f57575757f7abc5e3cf4b109eaed69bd5a797d2d875d3f8209f0f752b4e735b4b6895da3c3e40bfb714a0f2d0c4609a379e5befebb5367bdde27adf9e4eea79b5f969f1e3e67fa2d4f1483bb880cf94ba67dc7a6df6509d4e6a06298bfc4ace81d1a643481d02fb1e8863d2ce414ce8bf84811dc6087eac5dff1e85c1749a5b8cea76b1f82750ff17eb8b0e5c2873f84107ae9d983dd465e6fcffcc58552c950fd2068c511d8fe82296cc1cf9f7d6fe15c8b6c45dbed40ceec41fca501f05eec50e0e23f49a6987314575b75abf402b752f763ace5771e8a743cd266d2cfa085bdc49c0f1ad89db624223fe90bfa30cc1204481d4e904af0856f88b048c68210904acacbcb2136db35ffac1746a562abca54c15266da774e23fb523ab13820c01de4aa005a70f188a30ad401ee20d5345e77ad27772edd8345479931219a8049a2d71a3bd57a3d1b5f3c45872b4df83b67654799c7fab63f71e6674653024da91d109a3ba183433a851d6aada05e96fa63d3993439d5fea918df43d722a4a0d5c5e6d4bacc30188e1830f62079348f8431e15afd50cc6adfa6df9f074738173b1ef896d2990cb2781795d7e59674a6034c316212232e48e408614c98eee37c2491363283b7bbb586c6ea66ca5969fd6ab5f96f0d57c3e7fb7e59edaa0731f67af848139dbe33250eefdee7e7151604cc26f2f0f9261fc8ce672f357000000ffffc5fa989b12050000", - "ad0590eeb12863588f25c48a5f376f57": "1f8b08000000000000ff94545daf9b300c7de75758aa366d0f547c947babf4657f25909446176294ba2a7753fffb44122014b4f58a07a4c43e3ef139f6be424d5c6969e04f04d02a1ddf95a00b833c4bbafe143da2e822b9f0f725af3e6a83372de20a1b340c766f192fa43c45001d1742e99a419a743db8748012fbf8aa7edb8b128d90262ed101ef1bacd1e2aab6b67f005ffde8b31f368e1435f26a232ea90f3ca3a6015832c87db03fbc4b555f68384edca9a77abf2892eea4e5a6563a2e91085b06693e02f80bc28e41315218ca6661d95585804c7a1cb184ba760dff64a074a3b48ccb06ab8fb00c83642ac03dfe9a2bc99e62212b349c146a06372da41910a764e5933d7be3d81523911582c620792fb0bab55293bd5c2235f24c0cb26328c6f5565a3d6ce433ddc5c36643e45def8e360c94f1bc38e473f2a48a73d0d0fc7cad79966d6a7e181579eaf0238a88979e74a8d6c1d7f8be77f754a2f8043240c217f5a6b596f0e00ba7cf9d3923924db20de78daa35032bc6696ed5ae2a86ef146d79696d84ddb11cbed7ac3090a8a42669a45811711776f07eb552280ebc69806b013f5ade8f63fffe9e74fd4f9b1c8e5d30784b192693cd2d4f8b416d2846cd07669edd3f0abf1dbe56387fadb083c8b620d289bb0fdb9c84a759489339e9ff8f2af2af3d2a593f6afd9a5768ae80162b6db19d82b5f49876c2b49903b33b7f86cb7a5ad769927c5b34e56f000000ffffca7f6ab658060000", - "ad984a19840b1660f7b799cfc369022d": "1f8b08000000000000ff8c535f6bdb30107ff7a7384c5f6dd33e0c26c660a5d9188c6dc42eec2d28f245516de934e99caea4feeec3499ad86dc2f6645bf7bbdf9f3b7983211a72026e92075a460109c0b2336d2d1200809a548361ff0e9081b152a30065826a519942532b9d16d7f9f5cd01b3dd825901fe869c3cc7fceeb67af208a9a7c83a604c21ebfb8b742f28f13e7f97c9d61b87072c00ba8d09e42c3a16c743809f3fcaeacb7c562eeecbd95cc00bc339c4ddad80ed76efeb93f7f9776931ff6c5aecfb0563e463820cd0d5d0f7497241b89a95d5623e2befbf55a58082ad2f06822c60ec5a8efbbec8e8e369746a8daaa18e8f07a173026c539b009987ab3167720261640ab85052ad719cbbc1a738fe1ec09bebcc373adb6193a98e26d0c8a00dafbb65aec8160f91d15a0c85a6eca1736670ef29f03f1b352dbbd54ab654bc7abe69b454434d8fae25594f6947c69db42860de39184cc030c7f1f614592b5d2de079129683f490beb20e1faeb6e331f643b68130a78ee1235ca81ebaf33fb64d61f6eb6b35513a84db19836760c44b3c83ca2966949bf36b13d33d9d6a5ef2facd4ed34253e11b9d8e9877374206362ba978d231509cbb9027448d918d93bcfbe9837cdc4f803af613f33b89a1b43850fc8fcadf000000ffff09da42524d040000", - "addf37c61e119909debf422a9b655510": "1f8b08000000000000ffa4935b4cd3671887ff26de6d59d8922d9b2eb33aa6558aadd406e3d45a40c64108300373ba1a8452a0500e838156401ca70844c7383928c7164a2dd0ca414e15778893a51048c620dbc230195bb22cc8b8a63c0b2064f77b9237bf2f5fbee77baf7e82b04bd82578786ca44848dc2d086f0882201604c143100491b075bfc96e4178eda5add98617acadb937f3f9f3659a4d7da87515f845e57136328f8bdadb7cf9958da53ffedc79bbbebebeade2766f9dedfde3f886e4f2e6891cde3e654074c680e8d475f61ccfe6755926126526f75a1cb0beb6e96fccb65b5963c1439c88e7f9124ec616732cbe0ec9d53abce38d48a38bf009c9c033a89457c449a4196a5ffcb1b5bfbbcfc9ab122d074f5fc753994de0d57c62efd850dfed475d35486c652767626f7128bc0cb1d2c0cbe238caab4c9beef2df7fa1d21bf1d2b4228b337230b21275452fe9ed8f894a2f223aa7820cf3d7846519d92bcfe4685809b24bb5482e55323bf70b2d3d4ec4da0e14993dc8756df8e5b4139e5e8ad7c9300e78fb73c05b85541941f8a795f86aeea248ef24a0681c454e3f85f71cc4df6cc24b67c3476f45a16be1d4875af61c3cc33b9200ce4705e11f1acc5b87fcd92f0d40f5710e87833fc7d3ff069ee70af8405d4a68463d47d3ecc8d36c48350dec93a808bb10c4a0ed0263c3597cebd4d1d61081af4ac561df18fc937bf152d72055d713a83111906e449a6a439e66c53bae91d331494c4d14b3f49b93d68e62ec0faa595eeaa3c79ec989c81b84660fe095d080546f2144dfcdfb294dc852adc8f55d48932d4414753038d2c4946b9edfe7ef303f6361c6354daba39ae8422731d726507e3688a2e009970d03f8c455732cb50b9f940e8e6adbf0cbed22bfc5ccf0680521091a92f232187df405ba9a2e0c75e32494b8f8e4d614970b2729ab1b22bfda8a58d3caf1e4667c7466e4574a286fba4f424115fb4e46f3eed98b14d69ac82a6f446d3061ec71d1f77896fc2a3b13ae196e37f6225237234bb17248634671a58ce8f85444de4a8e28cef19e4cc511df603e4acce2669505ebc8240ee7534cf7fb8175565756d116d713985c4a446e2389e5163a1f0c11a54e65efe1b3ec97faa1bf5648f7c8180ee7389d030fa96e32b3b2f2cf4e7fa6e77e64e1d90293ae27d807da714d7fc7af8b0b34771ae91f3633fbf337fc30fd90c1d12e0686fa585d5dddf4fedba1ed362e3e5be4d1b883a1e1562626cc3cfddec4d8580b63ce1ee6e67ec2ed76efb81b08ff937f030000ffff6ddbe2317e040000", - "afc1533d018c2d1730753da9c1eec198": "1f8b08000000000000ff8453c16e133110bdfb2b46cd810bbb49c5ada887d00d158274a3a036ed0979edc9ae8977c6b2bdb451947f47de6c12a02094831dbf9937ef3d7b3f2ecb39d45c75ebb5b43c1ed6abdd2e671743fe803e18a6fd5e88d9dd03dc96979797f3b2b8ff3203a6e168b12c1f9fa089d15d8dc7cef3cb36afd94aaa73f6b510cbfb3b6837da78c81c8c8357e323f9d4b97c21d546d6b8d8d4fbbd5895cbcfc5a7e57faac46e67d67006a761851564fbfd9fc0cac4668595936ad3c323888d09f06cac05255583101b04722d180a515a0b21a27b0b1d590c01dc6168fe3d30816a24d518c4b4287e07f2bf4d7d929efa91a97c2b3de596d506f23e8cf4ff3431cb8833e7b9f61882d8edd006ec3b53e5afd25e15921e3cbfde8911dcb0dbf6f66e19e6ac3b8b015a49668d210671532e9ea0e6bc653d2ca7a3d0b5c32246434a1a5d800ad7ec11aace586da806491a14bb6dda07eebc42080cb191119e1134d39b0884a8213278cc343f9365a94106683bd58851cf706c191886948776433fa4355a4604ee3c1c295083955bf47d4435433271c4449f783e243dbce68368c8b21065340a32867165682c9d4b51dd93e2b6458abdd48efad82a43d26fc1105c38cfba53d1305da4597825467078f9df66770fd76738917d30a47b02e95ce29be4fd2f1935119424a8100222c1da730bdcc560f4e1212aa6280da1efbfab69512caf876e21668f8bf2eb0cde4d26937f4a6e4ded65d271ba2cdf11a5fb391b4ada6fe6c5c9ffd084efcf8924185f509d4f7e060000ffff7cd3d84624040000", - "b1025117b1edd497f09f8663eb3a853b": "1f8b08000000000000ff7452cb6edc300cbceb2b089dd6856b033d1ac821011a1468da5ef203b24ddb42255195a83c50ecbf17921f9b069bbdac389a1992637935fc5633821a58938b4268eb29309c04809c352fa96f06b2ed4c7d9a2665a8cd8ad03e7d911f32f6ff806ec4204525c4930a10e0d38a345fddac1d1650c5881cefe8056ea038373ff1f92495f7dd7a256b904dd3fad41b3dc84a8829b901b4d37caae0af000870039b6f966ec75fbeec9309f9d7b6f0edf1c70318f54a8981097a8414718489022863d6eb807f12468edd26cbe0439174a5ce73193da8ecdd7893e2d22c6c8dacc5a54fde6520c74a3bede6e24d13f082c068bd518c87fde30edcd14bf77efd83bd2570a9ab7ad3dfeee195e98e28df4e733b8e475f58d0780c11160c78acb862dd9ee156efc115939c9123f7b927e2c841f98cd8c32eb981ac45c7654ba31dc6b7ea1e0d3d8372236c6febfaabd9dcda6c1de5bbf63636f714ec777c5d3fc405aaaf33ef29ace4ffa09d7cce877325cee25f000000ffff1baf99a500030000", - "b33656abe4a19add5fb7502f0b6b2dee": "1f8b08000000000000ff0a2d4e2dd24d4c4fcd2bb152d0e272c92c4eccc9c92fb752d0e702040000ffff4284a48f1a000000", - "b8438980c36888bd6a7b788a487d06ed": "1f8b08000000000000ff348eb1aac2401045fbfd8afb428ae415fb010f5e6123d80451fb306cc6b098ec86cca671987f978876977b8a73160a0f1a19144acc499c53c54a6964d484bf7ff80f8099bb6f29a021c1efe17d5eb758b8c58da5f4aab5cf4b11dfd1ccfec292b735b0d977f5aaa8c99f49024df1c9306b5aa80348fc91e2d4545d2e38cdcbc433a7c2c34fd53adb73380dbbfd150000ffff01382a01aa000000", - "b97ef3b8e9a685594ebc0fc9eebc931a": "1f8b08000000000000ffb493516bdb301485dffd2b2e228516229bad7b328e47378751d8466065efb2a5d822d79291e48e4ce8bf0f3971da2cd9defae487cb3df73b47c70597cfd020b37645863dfd007d4ddf93320128bafb79c0a9542895a035ea66474aef533d389b7ed35c60ba317a102604a88463126d9175f76512155e696f5133478d6c3b37a90314372b40a9764ffa76d6fbce7a91fe64e633b36283a36118c286b9eef66e097e12ca81d44e41ed14956aab49b8030f370741804facd981d3c010e19cf18bd1e310c2f1308479e71584e0d29d81ccbe26020fe7336658ff588590ff75e848ff43aa164508e96305e11afd2f6694542d5942adf93e07b2e6d2453b9760d7d299f5df848d33d50a43964038738cf6c2759a931c48b5feba7e5a9f068d565b69fa38793002f67a043b1af1f1c55425ac337a7ff255645c3e97c9f193244931e2dc1094d6d136bed3d4412065e23d98c8028b01f2151cbc3c38672c8430350ce5e53a954ef430d4f4dddc3464b538ddb17dac077fe9322c863938db3094bf05845064d3d25160f8d79f109fc9fbc5ff52f6fe423fc4fe15d9708804659944ab42f168abc8462c933f010000ffffef62da7b98030000", - "baca6b4ebf8cc8bd0ea945a5a2fffe15": "1f8b08000000000000ff4ccbb10ac2400c80e1d97b8a583af41cee01040717c14504dd255ca31cdca562d2c5907717ede2f6f3c16f062fe407418f59cbc4b0dd415a52dcc37de60c030a6cf63fbbcc4529c295446f667d626c94ce28196b7993fb1797fb5f8708165628e980a50edd695238b667a546ac34aebb183c98118feee1130000ffff2bf5ff9191000000", - "c3816880f9d6ede8f28a4a1f0360251d": "1f8b08000000000000ff648ec14ec2401086ef7d8a3ff4a209e9039870a8b2310605d2ad282732b453d8b8ec34bbdb62dfde948428718ef3ff33df97a23c9a808c5d8fc658c699020eecd853e41afb01fbae69c8ca1454d738b267c42363ecf7e40ded2d070cd2c131d748d26b1f5160856a1817e572a2961b8803b5ad351545230e21928f5d8b20e30b7f939dc57f0554e23d57d10e5992a2948bc42fb70b8c85dace36f9ebbb4223fe44717ab1a9c8c152640fcfd11bee476d1360dc3fd2e83ca00bc61d20217be6c8aebf9b2cd476729f256992427dd3a9b5fc90a498e765fe986bb55be75a7fac8af9ecf33a490aadb47e592d775a3d15aabc8ddecaf54eab62a38a3ffb9f000000ffffb53849697f010000", - "c6660b1c6a1a45d1cb79e72c7bb65764": "1f8b08000000000000ff2c8d4b6a03310c86f73a8536597a085d9ab647e8054a311a5be31864c9f8119adb974cbaf9d0e3e7fba9b5d0cda6c70d4a56eb9cc26192b80f0f0eefacc93a3814cb2f0e704863f07c0e6ded522238ccbd1ce765d6060ef7a2e0502d71a89696f0f3b50d1ac3458a3786a25156e214f877b28e627ad66dd99e64bdc3be8aa4d068defc297ded89851e1edfae571db017a5fe084a953dbe5f3e905adbbea8325e3edd998768b592a67008e5e1f1fb075869170ed1c4faf038fb6210cbff967d1d0789c15f000000ffff20a0099817010000", - "c6e3e8d28eed67725402c2b7c09dd7e7": "1f8b08000000000000ff5c514d6edc3a0cdeeb14df5b3901fcdc7d16b9442f60ce88b2d89144839262f8f6853c13b4e8ca04cdef5751fe834c19bf7a6d886c8ca6e052fb982235acb71e0225c5ad4bf22b225510d6e54796cda88996ba42025a64d0be27b95fcbeb6ed77d71ae97a0d67aa1c6e99cffa835cebb1ad939a32aa822f77b1c5fc1a13d7924fdbaec64e68653fb0c2a1ecd0638f30c8131a574becedf64fa624426f3d8543d5a94b2d5f77118e94975636c2a655bf0f1e69c84413b19a3324bd9901952c6cefece328f700555335f94886a26b711e67bc2613a7ed0be73610fdf6d1cfe53de0cb5c10ea3026938a4c5abb8f57fbf22241abede9d33dec87ce25a67d478851ba8bb6606dd4d6b1d4e139d43836edadb8cc09c108cf92ac973e2c6c8bc40da54a18fe512d43235c46e6dc1c129cd6399658b0dcf2ed02bbf1c85a7a3d19ebf608fa2c7e29c4c2921f1287400be335446a0acbd62276bc3d8a1e6eb87739f9ff8a9485ab6d703462a8f8aa0064ae9520b52a3fb1d0000ffffd31e584a8b020000", - "c7bf78b3701e04e6225e9c327e2e71a1": "1f8b08000000000000ffecbd6d8f1cc7912efa79f82beace7e590399c98cc8c837c3f48145c9f6023cf72cb05e5ddc4f06b74489bcdb228921454bfaf517f14454750f3994a8e1c86c9f630356176bbaba3223232322e3e589dffd8fefbf3d2c6f9e5cbd7af6e2f9834b4af97279f27c7df1d5b3e7df3cb8fceef5d7715cfe8fdfdffbddff15e3f2a727cf9f5c3d7efde2eab7cb1fbe7af15f4f967f3b1cbe7bf51ab716a694530ecb7f7cf9a7e58bef5fbeb87abdfcfbe1bb6fe2bf3d5f126e7e69eff8edd252cecb67df3d3b7cb5e4df2c4b8cfaf39fffaf877ff97ffffd8be5d59b6f967fffcfcf1efddbc3e532debfffff9487f7ef7ffe97cff10b94e8fefd2ffeefcbe5f2e9ebd72f7f7bfffedffef6b7f4b7925e5c7d73ff4f578f5f3e7db6bebaff1f5ffee9be7ef1f3bf7c7effd59b6f88d257afbfbafcfdbddfe92f9fcc932e97675f3db8fcecbbafbf7e7c78f1d7efeb1ffffaa7172f9f3eb9ba5cbefff6f0fcd5831b5ec23967fd51ffca6fbf3f3c7bfedf377d91e69cf7f1d7cbe5fb0797f9e5f797f72e961fec6a79f3ecc9df3e7ba1f797bccc8cff2bd51fffd7e149fcafc7eb7f7f73f5e2bbe75f3db87cfee46fcbb5ef7cffede1b7af5e3e5e9f3cb87c79f5e4d593ab374f746adffcfedec5ef5e3e7efd74f9fad9e1f0e0f2f98be74f2e9757afaf5efcf7930797ffc24493ea7623feedd957af9f3eb8a4b6df393c7bfe647dfcf2c125de7bedf6fff7e2d9f3b7ef7ffbecf593abc3b36f9fbd7e7049f972f9eac1e5bd8b8bff496d240934c6da66ec1ca8d53423514f25702fa9d8f5c3562971e839f53098024b4e822b9199c643bd6a75a612ec8b836710217c7bdebbb878c88553c1edc6a9e2bb6c97f88143cc89435e634e142951d04fd65bb1245e23a51eb9a7164b92586be25813c5c169e8233d12a516f5ff5cf020c522a9dfbbb8d03f732ca9c59c5aec8963d639e5d4d7ac132da904e23422e9a4f4e525d535871c721c3d75ff7895f52b55bfc291ea23e2ae447b3a93e8d06be49c585fa7cfd95b7aec69c6a62f0a19ffae4ae9d4624b823770121db37e869a26ee29f138b550f4bf071d3b4dffba4d44ffdcf5d3df1674c2ba2c2591fec9be1ab827b18fb6e2517c4fdfa66bcaab5243a92c51dfae33c0bcf19d8155183eda9186be8a31291dacbe4a473182a4b1e654424915eb37a20e9d729a4a76fb59c12b9b7ff2460c257adf2f9ee654fe0c56fcf1f2beee0be5e2c7577fba7afcd5b327cf5f63d3ffc7977ffab7cfff4a7fbd5cbef1dbfff9fcd9eb570f2ebf7bf5e4ea3f747ffdafe7fff9eac9e5f23d3db89429a9895c2e3fd083cb2a39b5dacae5f23d9ffe891f5cf69c6aa172f9fb7b1717bf7bf5fac5cb6579f1f5d7af9ebc7e709975ebfc7078f2e052efc7f5c5e1c5d56fffe573ea0f6bc320df7920491ef3e6a7f2c8f5b31b9fa21b1ff88cbf685ffcc16871ff3a31de121bdf5d1dfef55f36dafc06fb1a9bba041a1d9b9ad208d45a246a49b0a9c5ae8f9bbaee9bba1c37f59a95dd4bd48d2b2391f272e804ce3b44aa9466e8caff4df98138954734f426979cf8d13e085fd2972f0e3f7cf3e2b90ffb5ffef0c74ea55c2e2f5f3c7baeabd89ba8f490b934a92a1b724fb2d4ae7c53674fbcd43e12872a6369ac5ba99691ead2cad8af479e7e3db66ba154977b171723d7d443ad2df5a5cf9128d43ef57a8cd0724bbc74fd77689c535d7ae734432b92da72f141c36fa0928c5416154fa1144e75a9a2bb8570b7250a85ca5287ee84ac2f6fa2f7b24eaeebf04aae49963e702969e8c0bb4e8f5b4bb4d825eb4cbb8a4fa6aa93d63dc779a4b90c7d92b3a4b2cc1138531a0b652c49563a509e69069a4a5993607db125a3d1535d3863fff696445fcdd49575babe8565e8d77a496de1aa0ba1d7b4701bf8ced0eb5ef15365e101969839c9c243e9c1194f4e888bacb4e1a1220a9cb6f0245dac4636679e3d51682a6c17ee84eba9636e59af2be6c2e012a5e6a22a8a4313251265d1a5c3b313927576ac689aa1d6ae64645dfd5297a6e4aa042eaaa9059923b1bebf15d54bbd276535957375a6fa1e46e89f95cf59aef3f1084df0ab52f43aeb00949347a853c7c853c06a92faf5794063b6417abfe277664fdb1a756e200ef754436f9cfac24d257a1f25d5a55053119cf58152671a61704eb494a1ea58794254d486c13dcd45ca4ca4fa78912a50e57391a15c3fb8a5b12859200b74e349d1fb5413e900aa3263185997bc4edd897d369d2d29b9fbc0cc791b9872b9da05bd299bb7a65baf5749b4b4a933ec8595fd5507874e75e945d43e98398da5575299a02cb653ff28f9f63da8224fb7ce0cad97340fb1aa2ea4340e9cf186540fac6bdd0ea21f94cad3515239508dc574684b3dce5443e976a11a8f420e8d5458ea1cf7ab436f6a38ccc46f22cd43644923724be51065268e2dcd4727a3f9f1dd717ff6707ed11edab86b515ee342fa3ca9de95549e4612fd37d7d4637baab64c3bc4a202ad3d8d95f45f0c8191caaaef1e816a1a5174ab488b552da75e4c7147ddb80c5b43d7416a64e5a636cdae2a814ce3b34afb1194054a4f7c502b2a70a203bea41357f9cf9cc6a1c008a8a91d5ab7ab7aa8d574793d88287d929a7d072e6a9c49ea87d6d47ca1540f45ad0e4c905a2a5138f53791f8906145c83ad56aa846893860a2084cbca1d69e32995a7945a7d1a2c0b6503ad59ee6bbb46e7ff8bc7f518dd63c27e803aad14c2336d588983fc94c2d0c5d40bd948374d842f254482d3cb595cada7b12908af20ca3e0fb41bfaf8ba7dc3f92403b327e78ea42917d3fc953651f02c3347d693f28152434dc1cca067aafe8dcb2b2310fd8a5a93d526dc24166769e509bf0d1c9746e60b23fb6cff90f6c1317557041ca487d153556cd4a93585355ce51d394d68a498afe45774fd3bfa89d27abf285ee24e51ffd2495079c9ab21726a37f0b2a774999465f53549eeaafdb5c2516650f49758d2a9a945b6960044de75974282bb6206c509512532d793d87502a7a8428b34316ebe82567e85b7dddc9ec6ea203fee7741013ec92ca2a30be39546cd9118a32ad1e0b708ca87124561358cf033acab92a3b068e2aa71acce68989e9c8a4e43483f4aae3534b04d72d9cbcefe74646b01f549cafaa03d4245312e650c10d6dc5512cb1ae41d4f7e0c453d25c752f32560c6b596d852af6dfaae7a58089e8c6f6e38eb27fb53d8a93911e27aa4e7eac19363e36a8b1bc9ebc6ce84f0e87672f5f3d595e5f3d7efeeaeb1757df3eb8fcf6f1ebab67dfff6b4ec463519e9d3496fd436f4a4d35cb5846a9494aa1df5cbe3dfbf57b35c97b1a97cbfac383cb32492faf70f772b9fa019f3a00359d6f3586d839e5cc63e95992cc516e1e446992da368892f86e07d1d31cc5ecd95e3bbf6708256f74603ddbda105477db2070f50e1f756eb38e4dc489eed9ae7c14ab2d9f8a90ae4bdf54deb06e2e3000c5b9f1f84c12672c387f632bda2e54e1deedefd088d891ca416ab7eaaf06ce2627c63aa1246660bdad3bbf98ecb093abddcafb9951796be23e43a628b7d36aa2555f82932743ca90f3b1deebd10e93aad22ab481ee423bbceae932aac4aafa3b105838ef12045ec16070e0c4b91ffb60469c63ed67e034504182c3ea0ccdd527e11cdca31d73f5a45ed748f6749250ec341eaa523c43e2956813ab7a96d6a71ef26c81bb8a2c9e1557339c2cd5cfd8085c7194a1b1aa71112452379f05e368a7477c8874d61556f2135c225827b50fd49e523b081aa60635d887096fc29fa632432052598367d7ea16012437848b1a48b20e9fac1e9294bd42818722bbab420eee6c394415e9c36d9aa29c34d4a0e82a3eff8cf9fc7879efe2e2ed697f900f4ceed805564829d39aa89057abb729e734651de535d8905cb0a1365b6906eea60729f0486d9d60385ddad8942caad628a7baaa0a87e280882d38039aeebbc158b9b6e86aa106ae53175d42562d39c388259b229dbe27d80cb70e3d1e8a1de0121f8619a9f5d1fe433f7e900483cc8a26b4b6ffda3d1d38892c3da74679de2cc260cf7e9408738b9839d10adb0976287c62902aba99d706cf12991684b5c0f068a950e81015caef4aa8000b621abf43bb11dc52fa408f33a8d0834501c3bf2bf128520d3460a0817b0b2e093f0f438f60aa1fa03d39f5472763feb9556da14ad3d5c38c942174797bb65d4581724eb482f758d7146ec91a601f16350470b2527e13d8fdca753d1b29860b6963453267224cd4a47bb7d89e6e7086ce6096649295cdb690a087d6088710a920192b8c9f66f4afba8b0503512634f9a1d28fa71d305a6c50084a1c50c74e280433174ec30328cc6adbc23eee4a5736ff044ce50981aa4f408ce93d1c76533db841d60f3066ccce7e245542cb662aeb146c7554d1c841d9a2c6a9bf36201cf56755b4f32196a1a3c4407403412f1e224c42d8e513ebaa7bc797eb67247483d30167e615225a79ce5c9b6113d2b2ba8c0e9b8cd645d6adccab8be868225aa289e8eafa07323a988c8ebb8c8e2ea4e326a4a30969d5a32ea7e326a7e3514ec35bdd533b0c18bea4a7bad8931c7485479a8792f425ca4a8f4ea6f5cefc3f89a8aee07913d52ea9c32ea9c351529ba00e9ba08e47411d5d524793d4f128a9a38beab88beaf881a2ba9a376e4c089f8915c3efaaf15dd8fc066d85675db5ad0711b08b225570bb4ee1d1c90fddc070324be3133b4f25800a499ba19a20f8193d43c1972a7c88ddce34b0fb5453d83952cd311c17da8a63605122aa39d6cca0ab387041fae26cc415b6d108a586ac473bd58419fc22cadf7a402a6a01821795e445c9c6784b24ddc5c6b370fa9b2c87042f70f9c2098017ea8e257821f4740e55574aace27c1bca5a084195aa3fa007b081788aca41e5e982bd6fa456918425ac01dbbd92f977e4a09235bb5da9328ab15daa0a4018434a41610bc860157b80bc28aa52d6683e80a20489b6793ca0644e146c3d4214041ef34d2ee377328e5c6ab38a79323c5682af91ee4b446eb0954311634bc6299986bb9ab0626a466f3195d861663668a67d66165d9a6e89a9ecf4331e8c6509d95c007d972766a1739c300895732265b89758d92bd666ee88199b0a7bc92038c7fd8530f4a34c7d56854e85656e14af38c4ea8aeb54a3e4487a8a8820acaeddaa36baeaae6a4a78eaa8d46e81187cc8bde3c00f653470b88673fd6423dcb065da1795b62d23f05af1187031cde81ab75b540bcebf5457e85378323a2219b0f27425e000d063b7ae8d4af7083f2c4d0f33aa98d0430ee68fc3471de6a90169a7528e7028283950d1159c0fc56e22d028d8173a3e0a2763bdd1e95c3fab9fd53f1e9dce0ca7692d736151215095ce0b4b4d23d49a93de1f887e0cbb6a053efd0eaf7bd7ef16c1f5d0ef16d6e770ffdec505179563b50e7d047ed45a259585558e855a8b3ec22db9aa7c8f9ffced213786cb5ff4698fe7484e7d69b0736bd181347bb3706a4b1335722ac205ad4c7d5b2da92c4d256da8d59dd34d8fd01ee7d16bc65c6569100436277d5d0bb5cdc44bc34ef3fba4df10b8b22b8205157fd7c9e7f74c6bd303dbb44a472862e8fb4b535e6eb32e4594bbbbf9e6b9208e56970269d94957a540d57635e2179e3abd4e88afcc167aaebe1216379833c9c2b3223ea05f41b464e89a94dc4243c0a650c3a9a6a6b614d0baf5acf74bc635be236d8f3758c8a08d9aca4dbef66bfaeed7d3c2eeb07eaf223ea876a5035c877aced4c36f6c7a41309be8d1c9e06e0e3cbecd8816ced015e345d75c0982d0a3e84e6c5389560b488c604cc5d1afe796ca52595747f9484f00baaa8c27e1385139817889f266e8d497da085715f1c0866b4a6d5156ec58665c8786409432a54542e803f7d4754e5065a253290b2290a14d4eb49462315f7d6f4110482750970297b532ddbcc698f72e2edecf9b826113227bba55dbd4a9f16cd803a7619b9f09feb2ee8fd6556a2965058c5b1765c7e3753686d74d3f95d394f93f2c28d77044ac3c122dadb16a7a8f0a9e5c5b3c728e6580512b22c10381297db25c0b2f7770815e37133be47f7a5fc0f88f7ffcbcfde1445034c1ea668b556378ca70cbc826701021ab704411ddb8277fda02ff7883fb7f76e4e7d43adfc476cc6e611c1f29321c60e4091df0347a3e096d4e3fd86cf085f91d813080f3ef90f73c98cddd4cf815f23c180fb4d8335bb24b868980ffc23a235868fe9a68593d96e2939116334256dbc5fcda3eece1c39cab3dc3e631779f24d9c9d662201ccca46b9e6103171fc14a820711ffcd9eba93032c3cfdef2758ab8ab029b77faed5d9af55eb0db6889cae5580211d1807355f1578ef33bca6dbdacd6861d219b6542a318736d609546b27f96204cab66da994cad1a83e7e72a9a279b16bb4b5b5b38daf55f15f29c7d502ab0dbc89fd40e30f4cf8f3695baa785cab6abe10a48f350f09280f29cf114ea367b05475ea61a9cefccfa5fa5597cafd457cd7d9ad057ec6d1cded4596d596f73c50cbd02c27199ac53334cb498666fd800ccd7d793c42522c59d333347799f493199a6c39ac01a19d3d43933d4393dfcad064cfd0947733349b6768f60fccd0849b169fbca7ab22c23cf78b1bb26f1e7efe793e5a0abb9de08a475c82b7931dc1ae78ea89e219ae11c6cd8ac736c991ba6cdae744f7b0eb1e3e61c37715cfb4d8dca9da09bbda014ddf553c3a4cdb77bbee99a7ba67533c2e0dccabfe96e269c1b26e6fd8227fee8d6ff0595ca36b955da7ff93ae1f4cd72a3f43d7d6dbae7f7da36f6f3b358ac8a5fa29ad874bf5f193527d27ac8bf5b98b75b2f57a3f51fd89ea9fd7e439ed5ae15d79be53f51d91be9135be6528057a4b9e77c8f37e23515bbf294c7d4ad43acbae29ff49d40f226a9d3725069d12f557d760f72e2ede2e33f85535981bec3729b15f5783ddbbb878b453f3180bbf7afcd5b3c7871b2a0df8af16d1eea5a7d6a758505b724b34695c2e570f2ea5a632271f2b12fe725340bdf445974a262ffb076e4e4a75f4b2f0e0346b97dffc5c69c30757293c943ef83d550a37d71bd45a48de53d630f2e49b5f33c71f8b47bcef5f27e4fbab1478ab52e8390761c42b113cc602b23bfcf4c09a13af14b95a244704b97489a394242bd74001f71849802509feba6dd640cdc2b908c155fd99325379b4bff56732f27aae81e1f7cfa608c16d26baea6a5a49903da89f5d15db2a76c60d081d58fa0c83812d5083642a4826fd3f79811276644f25224d8103c9da548906825354efc01189b7b225a758ee21458498914b808371b4644cb6b8931296d8cf012c183147c4cdb2056cece4c0b10acc8a16518590b7dfd3f5a878ba2153802c6b4c3795253a53ec88a2af6c31654b8fd1c32d59bd485df5cbd411958c24dbe7bd8b8b877a0a9e817922fdc1897dbc7ab45ffdcc429561abdd53f5fc2e4b6043224ebec52c3d2e7827135d955f91f05b908d37b7cf37f926be3233fe4e58eb26beea1ec6d5a9985c6c10f4f2d314ae73aa002e9ccaca16e42d816a4431093e9eda6caca0ccbd344ad295dc2434361497e2165dc6c1912ccd35759daf92014c8e502d84fa083ac1cda2e86a35789450b78365a935b304c2c08b78c541d5680865d17c4d2de550229b8e0b08865ab2a34eca2c0e2c6a923536a8164b7554d3d57209df3dd85e23556b3a74290539855e7ba84b6b99ce88816e37a6b9d24ce0916527ca6e0e6d264bd9861ecdf556118b55535a4cc1daa4dd46c6817ff5c37db0f424da3e57b2fc1095254e187c1e72c8fb31c053ddb7a82e0e1196ace9fe3dd5ebdd6d1b4bdd44828bdf85dc31ab0703eb6f5982f3661a9ee636d48c7c9d5a61901c39c84e3492d808857c66ec938e9d3c525d2baca116105a27d702b09a8ae7aac769bb17c95c2e45b99941382dbadd635191b1a50f9415894158ad1ec93734ebf3d59faa6aee288b23a5aa0c4bcd2c5e37e0312d952f88de531ca9458461f2ba25ed547d0c59a47ad19046bb5ab688e5204e0804b68cfd15a5046aa5423fe8d8a0058ba5caaf88ed8f005eee961b4601d314cbcff7f423361980307641da2c923455b82131dfd20656378e0526a8399b24f1216fb906c5f4924a12fbcd692f1e2b922af41f1c3ce36b062be3d0c9588e020cf8026121a17b165c433225e40caa35500a4c4865a8f8249f2a92232d7f05f5299e7bc16b337bd3f2dd2c97a058e29eca126327b20c57af8229ab551b50e06a89139ecae2f93096ee5b603f4306e6807163f96deaa2bc8269aa41fbb0669450a01252af4b60140a9eb0f887c5c7c60835e76b512abfea057791758638591f308550b2b65dd3f11a8592fa7dbdf6e248ff27b37fad0751822e7d203c465612296f5f733d86d04a3e5ed7a6d7a8ad915a126dd782fb153c2162f17aff67c64fa1e44d32a3f40b994a39275eba28d79789b85ba9ca68134335ebceaeb3d2b50cd4ec75e4110e14a5f576bc6ed063282dbb7771d15ac5e3082e361b0642fe56cba92cb3a83cd7998ee3f53b81c39be37d22c2c2c72594822c71e24590f55949872d1637a49a44af916bc7b83b425519b08825632018a94fcefd3bf04ceb46d1c96cff2ca9ec5fe30f1e9a9a34faacfeecc0754de43582953a0687b40ccea9e19a4265c6f79be5a6a3a6b0fbf77d48482fa1869fd2ad55493e30922d48c7aa9cf1828a97e9af28252aa832432d4613bd325a5a2570c1df319422692c621922c533449c3a459cb81d8f545cb3fe14ae74ae0df3c6b7d9be514181899f2c3b352a663df17bdb0215fcca4625bc1606890ae145d802c9a47362e4b2948291aa98d291caf6b8ce7efbd9d2f09d8661dab5cdb86121505785598a64a403a18a57ffd16d5e765b5f88af0b8829f8c98919946bebf9a14b555046cba08b71a15c634f2928e2a689253c5dd89b38e7946d9c8bd899f33dc17e4f1e3fe51d5b1cc1ab09cb872179201f5765db514692be0d93e7c6313c4063702eea8f311c23797686a3fd27b187b81e69a816c136e4f5d9d57a78f2f60644ed9312c47c0bb530dc0a25b13d75f5647dbde03b7cb9e00bedf238eb4ebd5d2e1e391997cbd327cfbe798af8c70df6fcf64acb84aba10a3ff5e2d7edbca4f64cdefdb1279fabf9596036ab6de8ee2e31e310f6623ff96c7eaaddad4471df103db437abe9e163d83e7f7c7bc2dd26ac437e6b063ee1729cb0bce7e19a6ff3b0935ada473c5ce563863d3ee2e1f631c36eb7a2b63fdc6f456d1f76ff18828d8f1af6ada8ed0f8f5b51db873d3f8660f363863d6f456d7bb8e58fd8922d7f04c11a7dccb0e9238441a38fd8928d3f8660e56386cd1f210c5af905d47e27ce8f737c538b84695865a79518593400de8158de5b5682c8c7d4c362af3880c259e4304e285b573df5530f0fb8155b5e2dbec3eed380c3e2ad675fbc7cbc3e7bfdc3834bbd6d5e9c593c1d71ac5b6c125568a1a04ed5ab483d9062c1154e03e594e6abb0ac72c111dfa6dddcf9a1bf30f509af0998f876572bc4ca3767e856c180a7a29533557c130e2bc645858f9791ae8f842a87ce7202b3875bca0a002df8e39a8786dc19623f5ef012d40f468be09a726f1eb34185b847769ba172052073ad79cba10768842060531eb6a9c441aa31723567681d6eeb2349dff5e77e506e48b9ebdc1064ccb1f09b2a16fa42a15fb47a3f54c779a4adc46265129ce84ba16325b8bef1934ce17b7a70d947aa866f258d0cdaca6fb11a11f53c464983b76116553b3acced1e230bf63c32855a1d762e49f52745c39691e1314fb8513dc3329c246478c4b76ff782d56452dc9231aa0790e1b83d642b03ddd2362da4bce5436c09195b4019b167b7dc11e68e0873fb53e22e59099e92114cea59e6a45bef1e9e6e70cd8e4d3a995430d39f3ccb1359161eb0453c225a8cb7444fc8409a88951fe2bfc7b19987b25e2b89bd41d676f8451a006f548076a72b3cf851875bf79c00cf5b85973f6f7e69681389b4c5a5375c398bf6185819aa14b628790b0e74b2ff8afdaa67b180d8f0df013963eea4adbe2015de6e0ec763914532688f3e1e535dd98f466535f28be3030c1fb3de2feeeaa7688a6300d7c333139cb696db83300106886a2dfcf727a95b274a6026997bb782e308e118b270cceadab1c68d04804cd86641ae3465539e2733ac4eb96adc6d3439090121e0b87a30c1ffbde50c1182fa793f3a921f344b38fef6ceb247c6a42d07c3a321b491c9c2255bd064bac6c271d455a967403bf52d7b64383a84f87df1dc941a8f01b9874a43e48002896ebbb6ff3a6d7ffc6999d1e0caa933f1c143167cc2e4cd55fa3861737656e9276cde9c65aea76c1b3b1567731477faefd49db1f73d79fc3790968cd53d9089cf768dd9c7c6f46fc991beb1fd293318bb070bf3bccdeed5b7e3588f49a99bbc18b1bccdec5ecfec392c668594edf38810794d61a8b619e2baa6b2abc4a1e77868447e8f1c2abb99eb59137bcc53f581ac967e860043377c13440d2682052d8d5003a11c5680b2b55afe0c0255d103b3b1986c773016f2a273849450728f0014024878580d322b156e660a1603392d0815954812694b3cead898e201b67a2d96fbb3b3449d5a6035d4578b095bccb4a2e095535bb71f1e006a21035269ab6ffb025955ac8ed2726cd6e28ce7a62de23e865304e9a34304338fe031cf6196af8130b0c5e5d82c5d64434741d8ba02a7a8acbb755b215e4bd4a1752f79c53e89cdb813da915644042165d9c36908ceab3488823fe09c62c5ad5d976035394c41409369203886f5d40632badb447555d12701de7042caf748839b97a00bea9d2bc25cc5923b62b71097efb415822a14577628904d7db5f02b329e8201bb2add0cba4ed7ca8f25c52cf3dd1810a46c6fd85c92eabac5cf05a803d3b49ca34491e1c61a400e2020c009168084f02a961e263558a89a8ae7a317147ba30018cfad11201091bba52e4412032bb18497b6010b89e14d30b8863675c226b43a629c5be091c4bd910c6d1dc480ff44f726f605c996ff0641bf5657cb645f2cc04a81295310bb230b2b237fcd227f641b93900562c1dbb187e5c54bc1c5f58fe530d1c35eb13056ee270824d61e4e96fa97b1086a57591af497a7f1fada12407595c563d73dd800eb34232298dd76d1f032766c2b2be8b7d147ab399f911dd4c450a32c47171926c5405518675272e8b18a743dc490c11a6db5a0710f16096d61c62d59062ad2d45ce847cad9e112722b9871d6a001d9f54875f56d8fd4552c75c3e04e106b4501602a0f3b23942abaf77b81252ba267ff23d17e11b19be5c4b08b0120b08d606926dd4fff96f260d9082530a0a8c8ad6ed9c4a8a53a98e93282e1534f24c014307931680f334caaa76fc14c729f03721e0305377775f9105d66a4792a19a609b011871f0c802c52b6640731c9ad6b13c84a400c2c5a0f1b961e0be1ee542760e018d529d2bae5ec54186a0dcab979ce890954cbe6a951764b004695b29319b130ca2defc67d0d03b3cfe6d311cfb0edf8ae0abf6a9901c80e30540b53786be4702c5cb38236da2aef8d73233240516a2fa64e2d47d8b2e8807112b29925ae3625f8c47f097f948ab27fdd142e6500e3a2ec482a3ecb8ae81372216670109fba56cf10a66630dd8190a3412e465aa8b6e5b09f238aced5d23bcd6cedd8d11ca6eed16699bd6c0e18834082355fede069ba2c3b6acf495a9b95fe109945d16c15574ffba890600c241aa59c1ca96bfc69291b3a77c79768c09a01e761b31bba844a158c07c972dda5256f1920dc2c838242a98e610588126c2b1ed841c584790654a31f7d375f1cf084f09768893102a9667076d34090a6ed11867466202de9e4d6b6953aa4061044b687b77c2d8928a28a767631a445f0a831638bae11d873562be0408094d2772bc4322da160b7446dd722782147cb4dd13366736c7b689f0adc0d03026a2b2ae3abe14f217f2bb29da1c666736fc7cfed735cc754fb7959570780273cff49e2564ee6ca4005d31ac9b724769c4145c2be9f5e19e65526e6ec3079c72eef0cb30f7688e7f58923520a3c232e01d90d1f896650f21a69ab1e81cc401dca06eb2791bcb8c49c2f1b4cd2d8ab5eec3ef291762ba9b8be81de59f5a02a38ab00ed723d06299ba31512f491493a1841f8bb183a260cc1860c15604cb4069b8a517e7f24ea2d3d9d77eddbe2897492464853252f06da2ca07a5b70a7bb1fa65ad3b50386c5cf999674b969c3726b9fe69d8d554f993c879f325bb353a6dd618b829e05316bb735379f876915007fb86135cf8598a0218859a711d3eeb0c5a3cf83980d293e9d37d16bc52b65af8b399b3d54e187685312add610449019ce663bab603b13877b25835439f135d613f712fe7f262385cba74d2bbf6dee5fb781f2f90cb354023e4a36a768738886091f49b1a8e4b98cb463a4303c77605f83888c94771efde4b2a94836d9d4a60bfa22ec81abd9ce0312b16471dc1e2b8850731b18cf4089ed916fa990ee1cba11f85236ceed3c86d306a1b4a62363fe3cf853c6087554c39fb5e24ea0c2b2b97f917bde572a8e8a4f1dec6b4eab787bb0cc3bdf6632520db51ba6bc01881a9a2a908b01ab7a1e23ad79a2594c5b6345798c75e43297f730a4ef6ad8e3704bc13d4ee6e53d1313a1d4e253c0f8dddb85536e77cf4bb7a2019a96e731d05de97ca4b2107cc203b1392f2bea51cd07547bb8b3c3dc606225b87005ae7db3d33b8ed42db0956e9dc9cac8a87009b6b5794f39da40eeb173adc078c3592927500ad5a0a4c384eb03809400d11de731b182b208a6e926fe0080e606c5d7ad1d0bced806421aa695fca0a0d4dabe9cc7442413da5a11f06103e5c0c38a5e457054e1550ca574070297c06878733e9ba704d601aed5db0d585719ec28fd3893610e00abf66a81816e38b6c1ea027b7097b449d8e6413684a3cf64f802dd55ab753ce8ee3eaea1e0bf67c30d65e4405d5071392ccce4d9141641ad5ee68a6a0f2febc5bfce63f86a3208a257b26e5c6c6e750ee6a0bca5ed7bf703059e7cb54a634378630418f87c4443ed56512830c3c8e30edd50c2e1473e13e150e17037416ce7dcadc4b78433b2b4ea003d293b35eb09e6dff889b4e0bff3301925995ccd9b8976598816aad5dac399685e1e680ea707058f2c0f3bee2095e75c283911f5accd738ab6e4cae2b18733d93e6ced39ad97c006c8615d72d97bf09cc9488ba573f03c71b41707fa3b12f4d37b5f98cdfbc23cdcfbc2deb657ef9cc718c9bdd75cbcbd70a1ee632c3f55dd50ad599c4cef368dd424f893cfc5086833719026c9fb699982453282f7b53a132ba0a1fbabd49e8a9db2c7067f01ac002be53c17b5a0eb2e0186ec6a9156a40a20b14310517e176af113a959b1324d649a0dc311410b040beb9f892cab1dbd13304c4b891deef81e1e7b3e177aa297010b599e2f1c0b563f546e8444f94483b4766266026ea905b215f69ecf49b01658fed2d056c9b29aab53b3eb71e53c8659d81a78795fd1ee0950d54edcba93ce659cc69c96e56760421b969fc4b361cf82c41fb5a98be7916fdd1c2d13fa6cd853182825c2a9ae561f52bd118632e799a408189441114ad3f35cd8f25c8261c5b5f330b1ac20556dade24138299e20a077ce8294dc9be70201a1d98a42d146a8c0f03f139b8e07524fc5f2388b953219b696f5fd3e1779c403febc821295bd90a4fad9f44ca2c3dc37dbbf796123f7cdf66f7226631cf9ed310e3ab731f6b18d716e63ccdb18cfc57a33a7531335dbadc66903b43b1f4959fb7442f6eca954fb627b5edaa71fe3d8177b6c639cdb629f8957ac6571c8a9b26e5949e4e988c0873b97610e87706a3ecc7a8aa21ece269f42e969c05da79041732b0f3c9f14aa86b499daac4ef1b8f0c5eb20cfc431d6b86cf9a76c7ba8713db394c956ac5d5f8571c97bab77b811c2993026a3ab327a0a9e380fac6d7c897c1eabcd65cf36aeae1e256fab7d2ef69a20c1a85507677564f6b2378738939dc365beb57358e8cc764e6146cf3b83199fc1fadc3a887da019e84c768f77926c76e8a9ae20556272a0f358efb2ed9db6ed9db2ad773b97bd23841e8743c93880a0c0e4f03b3cc299d81a95045d430b6a3107d61a30c7bade259e89bb0dc899d62e72dd6036d80120249ec9fe06ae282a860c34deaa3336bcf2e3c6b90619f9ab363afb3918cabf67c3b51d1ff4d86dad58b9b8d552d20d60f59f6050d10635a30fea97ca923b19145a2ed3d87aaaf0eeaa27ef91c8b06b643f15b06774006cdbbd3e8c8c0442f700de30628095e2adcc67f01613860bef85acb1591dde49dd6f75e81aab09ae0efd72f47a5b9f976a45ecd1c7147d4c8655660d7a82a769a254fa972abb3ba1ac4335ef50a6a8cc169423ce4fd186504abf369e20c1fb127caaf138c2f4de973092437e58eaf32759b57e6d44c147144f47f48b2c923b715e5372f7753dbaaf737297472bf336a6f19d0c6c1e075653df863693bc3db44fae31a54f43ad460ebad9c23d0db472e0a9e735ebfa015c9d1e0093c364187e825afa950db8c3212bc0a7c31056cec498e60ecca05150a26e260b0d203d601e2d967558ae801570c0c35303104ac49070806a12d10f4225bba5af8b7d59bc7adece102648a878d57311c77204d636b573f1c7f0a870c4e91c7b6a685c81d311da5e9466384c30a7546d6d39fa8131db33890d9509379d65faa462c84ad626a37afb8dd5baf264acef006044303c847a3e7b1098e682be3bd635039c350dad021050a897aa08794d6bbd32ad668a93ac15e042649e496b948b6d7c26f363a9413a5b7f1e548758b5116afc0d95aa58ce79031a1059b4b4443a9f446361ef2a50572207712b193d5328941cf996c7b4bb465eb56dcdb9be01c448368812ee91d190c83e0fb122869ee810d9a17fca9f89fb2132e4b7a08601686368c883cd72bc7a95038a1decc320222cd659f52933621956d48664198afb7c3d1b1f254e06f763fe74b1f632f0610af2a23aba1f422ad78af4780a83cd2c3ea2788a7749aeb7757cdef90a14ccaacb9b421b90a9b5130a15a07b86f903542dfbf8b2ccdba75cfe5a88b234fa3b88b2a59c0997df01bef0cb17871f3e19adb7761af72e2e2823a121d3e257bd2d13a86683d35c28034f043d312ece8349fe41c091e139b061663f1d6cf7d41ae7db6374dce938598d170fdbd21e8498fb9693db874afecf049b268bdc8e4407116b06d7dec4d1121f8a1a466fe254e910bb956e4e0376dbaf0e6c8d3ee50020c7a72ca91c28a3472819ae2e7963c4fde24d19c0a73a10f059dfb4d40faab8ca9bc8edc0b17e29949ff6240742ca523f14b54fdfcc432ca1bf613a48e86f0aebdb91d498d3fc73ab1f27acee8cb027c2aa3564d6e79e68697d0621ef0916a4eefd783e3907209fa48c96da215b3dbe41fd4eaf139c9645864e75584fc322d48f37b7f219fc1ae1954eb4ed360fa7d91d955df54cf65ae71284da1b16afb468def00f107b1bc470f14e9a05487ce54b9972768cdda58532c7a29fd6baaf0b8aa48be0baebb55aa1274af86cc6de5109555b92a5f71ea4b17d8ef21126c3dd32f3064425c3b3a7fa064475ca0d9f768cb5fb18ab971bd99db31aa3f04647cff0ea1b688ecc33c9946b3d6fd6a19f20ecce598d71ba7015d9b27c269dd918770520a3bcad00ce658cad79b6944c5febdecb36c63351520d27ed5a86376f46adcdb0061dfe797687c25a4b12a05dcad2d07db535514b8b3b7aff64bfea797ea442fa3546cf1dd8fc32132d5c9167d36baa4bc93d35243adcda56bc73674db5d6493555745acea102551ba8c1db95da3772883c1162fd38e3e5d7a077c925f4aa868a08fa3ce3ba010bfe3c39a4cc9a4ae8d4535f8a489aa17349732979831aa7331c75958291ce3416c1a1a197bc94397527524b63399dd799786b303c13d218a3a76acd9c5c99f473f1d880a43ed2e266a2de9377c7791b8eb833d0bd53d35ba572683274bf09a51e5a563ea81d59d9b35de3e34f366203d6edc90d8ac692dcec21ae69435dace3b661bdbb96ca3d238851c41b44b177e411ef745357832591501df4a5eb09dec1cc9bf592d960d0258d55104740bf189cfe11e2f07654dd609aa67e5faceb3d9c027543d91ec0f4afabe5f3a089087e3902046c1e0129cc71c480db44fb243298ff12591cb71cdda0f30a40460332b756022d7680cb3bc8395afd00b45c9f6e28bf24c3e923f45e61c03b02cccf7a41a866a5bddfd00020bbe5c05147d03a926c9f40d8ee1d803468e57824f7e9f5a393eb33e92bd83a107e3aa5be16efd281eefcb6d8e8eab01aa27e31c453fcb1a3210d79d3062b7a23e0ee187e4c067b34f00c72022cc8e4ada32c892b4c5be5553656dc1a7390752699ab35a19c480b10f4f969684755d1838b3278879056707b64a2bb266919c86a6bddb028fadeb21adbe0fd9cfa8bd9d428facb3875ed16486ca1603bceedf34dfe2582c15a767cac6c583b7a250dec7aab67403b935f9c35f96bad240acda9e67fa8cde13843c83ff12c1a245b9ec7e1b1cea9c42a9ccaea08a925508d53478a8fa7d9dbba1d7bf301bfdc6bfd4bd85abd58f266719a12686af8e6bc35b3f1cccc60189f0350a0cd1b29f6d4228341aba3117bf00132050143246a9550f65663fa34798f9824d1760b3ac578c3926aa89c962d4ad6aa4ed6d8ac4991a741aa0868d74a837fe9aa502ad2da5deb828cc98a35f16a601e03bc6e4e53f2c223eb8d4181adc1dfde2b51f6f67f74eccd6929b5d646c65b57146fe4c9d6bac256ca9a3756f76d23e5c6bfde1d776458b7ad95bdb79f60cd66b014b44f90598abcf820c57b89595e1a3081adf1337c23eb7e635a267144e69bf79313743f1c7b53c86cbd2fb79691d5da9978d7c7e648b786796179f8e3d81e7906efbdb27dae8695096bcbb9179f871cb2372b645fbae26d2eebb684de9595d7ad83a2153f5a3729ef9cd23d811b80165e9cdf1d216a2f39be3d604c4e77b95a607151a5243cf62aa0d32a54ef6be9ad3e9b3711457f9fbd5da8352429616f0abaf5a6f5566779af6f3d5663b6635bd0719d36f1f875714d61ddd268df41c506e66dba3f4191436faa516a9d6f623b9614985960bdad8ead84b70c7ad9eeed9d3fb18bfd8e37850b68261c9bf7f6dcf2ec0d1069eb232c9bb8d93a78e2ab16790cd3be76d2c1d6fbe93a4672f14e9d0329df0cbdb20d7bf830e72ed31c376c2b493e6645f1d66dc7811bdbd60382b11f0dca736f5b0a6583ffde5abce7d42bddf919b04e6fec3a5677d67a462ded22bb6e26cb890928de29feedbe425bd7540a5b6110a2be9f804191bbd4b8fd9341ffc11914ad4bb8fdefc6a0adab21589b9c32e88ec9c14756f446cefd846167dcdaaff3de7119b6259813ac72e44f7613a26dfce9a6c58617ff7efef4b6bdd5fb1cf6ad597a89c716c8e5c8a2d85f636b078d63eed6ebdaa01737fe8c4706b54e679eb7e03ddd6d69c917f8ccf9b3751cb100abe24470068d1b83fa6291534ce2c6a1de3b8ebca1e406595eb63671e4d623baaa7f0a1eadb35897f07ff2e83f328fd659bdf1fbdf8747b7d8c1372f9e7ff2ac9d6ca5ca7569a3ee57f0a84c5ada440fde99d35c3ac393d34b9233cc3e6ac3e6d196366768232f9d2642be92c6b9e41fb5e9d8146dcb3f6a1e0ed1cb31d299e4dfb74c69475590b437edcb5b9a6de77a2e9d45a820cb6ff48349b969e0ab5b535674b96d9602086156ed70b9ddb31ebbde71babaa0226f138a46f887ec8dfc77118b9a6986efb2b85bac1cadc8fd349f03a32131ea471c107643dc44f771f34d58958a8b1b6b4047915cba0fb7d7c6e6ed64c827eb90c230cdc44fdfc55b715b7b6eca26bd2558f7e6638f611f9e798e697321d306a2fbe47078f6f2d593e5f5d5e3e7afbe7e71f5ed83cb6f1fbfbe7af6fdbfe6443c16d50493c6b27fe066974475d6a5674a3c6bfd8d410e9446a91be44099ac3c75f5fd834b92542e97ab1ffceaf6af959a2a2fa3d424329abf5366d717d93be9a7de09d6b5ba62eb4443d60f1840b891d8030a540d0e7bf526c94004888c8ef0de58b9c15f54a2d729c69e642dae359b1f80a6a10fd9329a73a87ae35a6baf34d0329ddc274bde4ca0a4f950d0e6cbc03c45e092950ce8e67ddc3fee92e3d694cc328c96a5d06f2e6fded319ff7b47f8a4c6e56eb12a6e5c4499b684323f6eb6b173ca99c7d2b32499a37ceae99626a96dd32d896f9ceeff495bf3a7dfd9e74d2fd5bb35e5c1bcc05f33fbd8e64a757b2f8f7daed0bcfada9ee8e3f8a9a7398a20dda2d7ceefe3a65f39bd02332df98699f24e6196139484f7abeebf07dfef9dc1ac4b425e058e1b2fe06f56eb59d340dc1a870d3b5520720d1dee3045354c6f6143a8c244477d159fe86e6051c01a869dcf2c9e652075441657153d154d38fa4b446b018423071427e99f6af036fbfaa33322a58d537b58e60852f5f7246788e61ef609fd7866842e8805551c71a057a2d16ea8c5038468af8df012758bb80a7aeaa16f480466664455e37e0eb2941294539fd97c49d5a934b68c826dc6c571ba39f49f9f7247f8b8e013483b30d7aada06e69ca473db4dffbb58329fbc992d370a629d7e8ac18e08e804c01156d275a40db4881e9f48c69066ed63676c331554e8abac18865252079a94c45e6e7b76baf3c6c205ee27e6d5c00e58c76b678b1a0b4e256b6c26062321ae0a680b30151a0c024c240dab6214e59640d39b683b52c40cac278c198a87ac951b7a18697a1b4bf17695e741131e2d545d48ec86500a02c1123a08647a28275a5ba0623804141865e0c3b018dacaa67c4690b6617ef46cfa66acd3fba0b3f7069916073993c9d7a9c7605d0d5df8a9fb16f950debd19701e629461eb71db213523418ff2ea6db006ba20a814180005a9ab959cce882c34601000234459a27a16092047a0989b45e0d7e1476d36b8b1a2f4457fd673e9cc4d288468a2ec3290e884aec5608e16c1f88cc852b56433ec37efce4cca326d9d6ec43070473cb3cc90224784a9a2bb11df2f40ae1db7ed7773f75b053de7eb5ca12eb29a4c338c58b275269fdefadd1acee83dd54885ad77ed2db11aef1e274300a932d240ca2d6f96e6b0a143b4b7d540627a30c4100b26b67399c3696d51f449c46d12f13889e8b388368b787d163f75f4c16127fa296bffb0bb85529b8d97ce89a5743f73a90cad1f7fe63abe783b6c9dbc7690c8d2736a94e7273c74d5526e98ea0d87ae4fbe63a543c490dab2bd6f51f83cc32861587ae93c97b1963130d6023bc3071b6db0f1dc062b452d611e23c93a1d698d2d760600bb6a59afd9daecaaf89b2ad7550f009a6d35a82d32a02dea11757534d1546a4011d728d38136abea45fd23027162901100138825072a517ff2a1d8cd81ee6930eb747c144ec67a1ec4f39664aadb570377c271a1a075910e5e4f6c75acc088f28e466a910163c7e836cec5a4862c5093daa0d260536f1dcd6b804d5d5637a9813905933a1c4d6ab7a8ed242501a041d37253cca48e629cb519d4d12dea0840b6ae921f09edb74c1fbc738274ddc666516f0675dc0cea78625047b3a8e36e51c7a3451d37933aee26753c9ad4d16d6a808ca1f4852bcea172efe296059e774d85960568aa03ab0fbb3ab85d1d8e76b59bd56137abc36656bb551dddaa8e9b551dddac0e6656c753b33aba5d1d37bb3aee767574c33a6e86753c33c3ba629dcdb076bb3aec767538dad5665687cdac8e47b33aba5d1dcdae8e47bb3aba611d77c33a9e99615d07a9599d18c09740679bc110fe0009ba6e6675c4c993e0bf81cba5de7601efda11c51315164de5a0ad0cf09675f8aa0d1b7ca67c885dd7a4af641d943994cdd01634036b2a4445edd5e635202a2981604706510de78a15c4946a59f17af4aa2624ac5f33d2cacb3aad72429455e0e865bc25523b44ecb7beda4117720a421a65d9ca2bc22b0dab461886488b534e29b14a6a883d07642b17b87ff45fd6d56120d6ac32aba77630f8c1b6a279a92a0965bdaa4a8d62c5554f7230ec42320f1e63afa2a52ccecf4a3e396220a7160bdc29a467f0ae0683d94a4569826aa86e30b896fae390df38e44cab11840c2dde68d1009ec51c5e9e5884d0b6d51aea0a7483dcedaa86b19d1859fb34941d07a01cd502196bb4a2268edd9a096f7e5352a525488c19c0aee408da6e1521c0c935842b31d83c8c5e2c433c4eb811947322e5357283579363c5e91bf487233383e0c8c65a235be05e6d28207d82dcd1c95d55bb9a3185f6c2142547c2be026175ed504061852fdd0c38e070714df521771da54883f4a9aa902b62edc75df021d180f7644ca431a8dff1fea4a66295465fdb8c1d1aa8b548d4b03d8aae8e5e3f6c9550be9f6a186c7d4e0bae44661a0ff5aaa9a40af6c5c1135edcae57f72e2e1e72613c300312e2fdbb68fda73f701ec2aae6a17c5d01551a8e1553239ac16e1d6f507a404813e99055aa802b36510bd82e64358c96865256490d6125ec1caa5bbd2e37d7cfd90cf719bb4a811237795094d5bdf0a5ab5103390fcba8fa53aada99f5191d4c419f0e4ae56089bef045a9d4817d1587c1cfb1d7f5ba1550f53146e950c1f449f79801fac275a546054ca9aa2ac7ecb21c81cb4c3a3666734995359b5304855bddac320adb340575619b3dc38e871c40a1680df43bf25d2a720e210a2c49d18b29a3e52f4ae203321aa1fd1a248ad80f4e7bf13067a2a0b08fd8e0bf3a5427421e1cd9e48e037516544a75f7ea36f8e05057a72303bd903c09d1e44577ae90a18d5402b24b52b68a6db6cebfcd4c0db8eecc110390b711dd64357432fc5eb776732a46200c5d375514fa4928f8b3174eead1ce4a62b0fc367beb2baed354bbe661cde8918cddadd72570635cef2cfe1182280f99777d726e40d7550e6bae82dc7d0c4f166dddbdcf66c065aa08d301fb787777f7b5f17e7a23b20346bdf7adb80c7e02353b86d51e9fc730b9d13fc2302bcabf7b56a31c6609b0f619e272335755229e891ba214b5546cb8711f6fdcc71baf8df777f7bff9fdbd7308602349a10669c3dcc3e7312680a14a173b5bfdeefeab37dffcfedeff1f0000ffff5fe69651a1010100", - "c942384692540a659219d8746ee9fcae": "1f8b08000000000000ff5490cf4ec3300c87ef3cc54f968640a2aae04ad20b4fe22d5e172d69a6381b428877476bba35bbe49f3ffbb3639cbf601758d5524edf343c01eddb2e852ebaeefd638e006663b14f192fc7374451e551f4157ec23eb01ef08b4de51a32ea381337bc851e651c2417cc6b774d3f623310720ab2c468cdab82a8635b0c30db73296942f93989a57aa1fb3021a9101c17ee9cd7e8ef520267cf5de0ad044b5f33d796058c9e78aad4c13b2793a592cf42c373f151f4d3f457e0a195beea9b597be72febffe0efd6fb7a5e9065fb0f0000ffff829b6c549e010000", - "cc0ec998cebfa39579cabe0ebf0062f9": "1f8b08000000000000ff1cccc14a03311080e173e729869c1229e95df0608bb8a0e2610b1e65c8ced66036b366260711dfbd74af3f1fff4ae99b2e8c942c4b5580bcacd20c5d653b7c99ad0e60ee35a127c5bbc74d8d3d1b073cb3dae7200b0f54a7c2cd07fc835d63c5fb07248dc3f9edd5bb830bf199cd07801d697cfae954fc6d1c4723ebfafeb2c7c61a4f3271d8c849aa51aeea6ff928d36f1cade57af1618fee834b9285d1048f7d9ea9880bf00fd7000000ffffecd480c3c7000000", - "ce01971710d9b9f11bba237baf76ec52": "1f8b08000000000000ff1cccc14a03311080e173e729869c1229e95df0608b5814ec21824719b2b33598cdac99c941c4772fedf5e7e35f297fd39991b215690a509655baa16b6cbb2fb3d501cca365f4a478f778536914e380efacf67994858fd4a6cadd07fc834d67c5fb07248d2fe9f4e6ddce85f8cce603c086343efd0caafe3a8ec9c8869e5eb7d859e341260e37729066549afa6bdecbf41b93f5d2ce3e6cd17d70cdb2309ae07ecc33557101fee1120000ffff2fa22d1ac7000000", - "cf6712125ddfa9d651b4f66d736d6303": "1f8b08000000000000ff5492416be3301085effa156fdbc326c5c8f72e3da4878585a52ce450f6e6893cb645648d90e4a6a1e4bf2f92b3b4b9198fdeccbcf95e2073a4913193f54ad93948ccd828e0cec978a7cac7c707b4849cf42e04bd33d98a4f7f8e232e973bb555aa6dab1836214f8c942966eb4704b13e639088b32c11cfcb3090135008ce1a2a5d74d1fe9505863c0666872132837c0fea7b64419e6c4257da7798394fd2373013f9918bf4345186cde8855303ce46ebda72e71c4e0c4ac77529ca0d2823c9cceb564d5909331d1969898c2c4566c839741482de737ce3cdb66bb078c729d5e7bdf8ef1927f2b96c566d566745fac5549d079b341eb76a58bca9d7d96cf1a150dee1f109b41eb11c74b355801dc031d6cae7f41ff5dfb72778ebaa187032ea9f94c96d38c622bca88b52ed83bac78b644ea0832c793d981ea553eafe1efbfd6fec9750c02af5ca886c649ed9f7088e4c2155f97cb570e0c916080851decf0dd262265052bb40666248c4cb68fd7b25e53857dc79e219bdd40c949113d3db19ce0ea5aaae31d098720ee9b16d4739ac81d0565af66d2f26b5755c5dfa7f5a9e17eb7aa55e27f6e8ae0a1ccacfaeb08d8b2f308cccc13a5e8d1caca7786ebe66a772a8ce4ed6391cb8c4a12c3a71a128c30a6d556afc2afcc0ef814de65ed55a6d7d4de26db7cf24dcdc7049c577197213a96b8cb5520fadfa170000ffff71ae9b187d030000", - "d439a742bb76bceaa50df253815eda39": "1f8b08000000000000ff6c53b98edb3014ecfd1584eae5b32eef556d912645bad40628e9c9a697e26348ca0782f5b70794684bcaba1366067388e4df156389161d26ef2ca9fab6158a92a7001ed13a493ae019a4908e6827e40049dde0190e6e4495ac51bbc1e3d7cfdf23e66a2b8d77c93b0b198c250d1e83e0849511f527e3fc247cbd1fc42c644bd52c78c338379676169d4b568c7d0db6160d39e9c95e827827fdbeafa0a66ebda3587fbd98d1a041dda0ae25ceba5444de792b4c30296113e731961832066d58f6ce926d06d9336437eea325ebc5091d75b86e49dfbe796b7118bfdd40964f5e873f3d8e3d0bd84c3623ccfb31e39a410ef934b0c1e38f879d3f2a51a15ad74a0e512ff00ae5bd59e4c86224dfa61a9134161d7a8efa78976c92a7d5a811bd2763b19567b403fd062ff07c3f9c60c0158926b2af904dfeb57333eebad88a67430ee7740a2f43ee40b7522dc8e7fb4d632cd991d9a33dcccdb729a493b921e797e1db626ee0c4b2d92ba490df497f596667904171637b3bdf7b2de77b3535c883f78d2a864a91341d97da79a1148f57991bd5efc66753423a8df7681dda07aa6b0ec5b4b2935af23013cfde8adacf84db747ece37a35aa1d09c2a470a3df27adfeb4f17e5e5ecd8c85c1e856f209bed898238b5cca75e539c8cbfbe80ec5b19258f6831fccaff077e937642cb169d5f0ac37b0a8f63f5b5fa170000ffff7d5869daad040000", - "d7356a0c96560b441eda4c9e940b5754": "1f8b08000000000000ff8c90c16aeb301045f7fe8a61c0e080edc0cb5b19c7a504ba6b6a48e87e6c29b188a431b2926084febd389096eeba9ac51cee3ddc5aa81bf49aa6698be35cfc07d315ffb04900ea61f37c884259adac2c3acdfd059bbdbc4308258f7e2adf59485db68e47e962acd7c3a649eab550b72649ea740b2776e68d5df69bff24b7a3491e943d6b19630e817aafd856dfb97b32f289b5faea48c7d8921fb2550e46fa814505d87e1c8e185710207d28a75b18c979453ac310ca136bb158ad178972f046e3ea87d4ca5e8e9cfda5303c86a8003b6fa1f3b6b893b3ca9e310714e4a9e8d99e94335801be3a09335f61ba3af98239742ce60a7047b6977a914d9ba44e212ef72b0000ffff7e16bb647e010000", - "daae3f6c1877694081e2d9bbe1ef33a2": "1f8b08000000000000ffa4574f6fe3b613bdfb53cc4f0860293f59027ad4c2dd431a2c0aec26db76db3dd846424b239bb64c6a399412afedef5e50a464f94fba059a836593f31e8733a33793540ad2f015e7254bd7300685df2aaed0f75eec9217bc1b589b0f859cf70d16859c1f77ef64b9752c9f8b6ac145df3495e576e4084765b37d447ee282df11ddbf6ac5527d09de70c14729d108adc52501133c47ba026d8fdc388b0be85d814c3cce4916a8f16e5989355dc3a7c66c249ddd286d0c8f2c5f5011aacbe375b3fee6c53ff21a7fc742b2ec6dcf0b5ea36a6c7a70874fa5c8f9a2524c4b0563d80d005068c59112c82b916a2e851f9865809aa976d3999a3f5696054f99314c60e2160186512c64864f1b99550552bcfa56a1da8eaa15c5a4d258315e50b4a261d8473022d414a744718f36a2948e8633fbe530681ea6a022da8ad4f73af86d7c1bdd7a41944b75cfd2a5ef1ba7b7018c7fee9ce639d855188fc73f3a39e860000a75a584fbe97c002850c31ab7306ee2b38d1496054bd18ffd693475dcd3d82795ee57b44f89f60b194ce3603f8d7c4d668d262c9dd9f57811c27018749efa6bdc46a499d2f495eba5ef3d7901ecf7e0c797d89b98079146d2dd9dc790b382f0c777e0b9df6677b2c6edcc404555147de4e93e4c9a43663f20ee83a2b2a2a5f3cda6d13e2cb2351d001c4203b7e54a7eeb83a940b7668e7707087c69c527faac64cd33b42f83bfbb49c0b395e785abdfccf3b87008c21ec13505f177392f50b00d26e04dcc73164d5229340abd64b49c4529d119cf8586f9935daee42681ae40bd50cb043cef300b616764ed4fb19119cf396609685561c817422a4c60e29982bcbdf542f056ed17f3fadcde7a33383db88dc047c932548fa5a95f6aef61f46fc3bfa3e3cf705e2d125b19676138d1411b80071b805600a31549717eeb4b0df46d6667ef06fd0cbbec7519b6f2e0bced4b8ecbb883b525a88c96f465e6589b00a6ee1388a7917b216ee2b0b75b11f681e6ef5acea3a2895f7862b803bb9a8049c8c8fef04290addf3b92954af1132b6d840f8737094a49fa3f9310fb970c3d82e37bdae3dd1da3a6e9f5fd4d1cda4079bac78faf69516598c0a9a45fa759599aced5399b63d171bd41f5864bfe8bccf3bdf9f869af75bea77a11f8d3f7f5789afd7f1ab51f8139cf7a5da9eea8eb8c28f53f12987a6f19ae39e59a6ba4906451a3df8a49e0f0f85a4a6a19de5bc9f9dfe9e2cd1bae2de431fa0b592e51adba1cb4799cb9ded7be3ef38a17d95dd3c32ffb751cc3c3e397fb047ecd612b2b600a61c96a2e16c0892a2478e17a097ac90984d43047b345a8c12b952c51155b2f840d5b634b47954243a5e0c3e3d3fdc35fc0a9b16fcd81113ccfab3c6785b4be3d83ac51299e21c1c3e32ff706d5b235a7bf2c99c61acf19b504a9c0cbb0c642961b14da8b1a9c1d5b50d43036c7a64814a1a8a396dc74c61398d31fd33aecb0d39b5d36d294228a3aecf5aa6d72321545ae29f99de0c94a97954ee05a77b06d61455e0825d3cb049e6f764f4f195766ff1097d5bce0a9eb03cf5d1d38553c3bb8eb7ee1d1ddaac033ab13053ddaba024dfaddfb55a320ab149361a46918c2b099c19a8714c359d7bbe1d8c1ed60503793d249642168b9ad43adc3b6c99bb6703e9dfa3b569628b23f52c54bfd852d9c4c0541e77523f796afef844dbb1d8661dcf49cfec4ecb79e588bae9f1c2f9fca4da990cc5aeff5db30b1284e8204b0462c9f72932fb2ee5dd3cdae067ac0546e4c5cc835d6f012d77d71ff86dc5d431c82eeca26a846dc37fc7b338ff64bd7757495c0c45e7ad68fd779200f83c360604b253272a4b499a04e0aa9a7257e30f83b0000fffff3292c28d40d0000", - "db8e1e2167d7993bdf62512ba883d4d0": "1f8b08000000000000ff9456dd6ee3bc11bdf7534c75651b36857e57858b2c90cd269b02de2488bcbb058a2261a4914d84e2b02465c50dfceec590926307c86ebf8bc00a393c73e687676865f92cd708b20c8a8c1f8d5463c905188f00b2b50a9bf64994d4e46b7a6aeb5a6acad16c77d987bbfd2f1bd4e44af45e7f60d974f3c182adad74b2d1b45ea3fbf8c091d17b0aad71a43556b9c7b275988d4600afafa06a10648317e7d68a9f2a6ceec8c27ecf875f5fdf76be5185dadf3daff7fbdfc636b764f3ed1f39ff58b24d972557682a98eff7ecb8f4aefe380adee533eaaf7f331f5bf1eec75cb86e2edffe918d26a3519ec3e5cd0f501e5a8f1504820d6a0bbe53a1dc80c71094597b7892bc4b06ba0d3a84b0413e29add5aa945c7e46784265d6e05a23e00bd6b2d58157b30ab7a8c936684226465be9a2c733e06e105f318cb3afb70f97373fb2d9a9ed24da4a6b61da53e77cc7c5154c3946b172d2782d03b918c9b9b5ec3171945a83a336a007692a68545569eca443ee2ee811f994df50ab2b7842a8b056062b01ab8df28c14360806dd16a14413d001d5b0a3d6bd0b5e8cf29c97eea9e574cd8e9ccd60eda8b57e06184a210430810a4b2d1d56b0babd83f927f872fbf3863192df06a5f1dc7d3b6a415615c863f281e0515afb0853590774d31e8c332f1922ba9b41d8c890bea1535ac3cded0a36728b69c3607784c9f12278d9c4a272d8ae450ed5a1a7d69503e118ab07e9a143ad87a0ff11406a4f3ded083fa4dd21941b2c9fb102656232c955e8f86b77928818fc63c199be521afd23b3907071bebab89e9f2f970971069e4085a160527772c75dc787ad962556a0a50f83af78e684fa8cb9ab9032621d6ed10c6419e350969859360c0406b7e8b8394ac91a2146756b4aeeb4f1e4a42fe195af651dfbf5ec0c8cd27105d2c2d06fe206bbf1f07d6b23ab64067069b60bbe1ab3feff02bd57646e64830bc81e8e3587d704676abf7ff0c92c4bc7f69351fce5dbd0066a64504c7c070e2be5b08c3115c572a026be7b1c47312d8ae578f2767a496b70f89f167d48028b019d8771ad74fce0f6df4dc409ce91c68abbe1cc32feff067ce728300fb996caf80017c5fd15c81064f9ec056c42b07e91e75dd709eaa4b782dc3a57a6c217613736bf70e4fdbc50011fee13bb872b726b74bb8731234d0637f7d8d0365e974a79f9a4b9f3953fe5cb6aca15e9c9fd52f323e84f27ad0794e5e6901b654042601d4a73500cb6508a1f52b738cec24b3611e3a9252b2ec8188c767f8a689c1549ed92977113a78ef8f2793219b8f310493324e216185a1ba5aff59818ea740d1627d8c73b8706e0cdaf97ab71966733b8a606afa5a9f4a18cbcfd765b9395f41e83ff4c2f13f6eea36ad6bc0db5a326de48db3e6955426a4472bb1140e4eb30b4ce30ea681f85fc9853baad9a64059a4aa97bd4190f27686d040e8739008ffd7344ac1e6751a64d95100627efc4342687123e4395e4e235197c918bf566a8bee451ac78bd2187a04c4dae89541787ee3d0c5ba1f8d5935754fa3c22aaff46d3a422a7a93f68c4b703c12bb6627de0a1872efe914b42b39ac595b3f81688ba12077bfccaa4b58b1481e7b12a443efc3799418666febdc8267f8f007f792756a20864c7e8dc2496e7509dd511aff1a42fd4a01cbf48310f847eb75720694099929af85a48398d83a766c9551e0c05b85eadee0a0119677491e7f8221bab915f32199c7d4aebfeddc6d1087df35f117a984e0d85e914d0c40b56144b112bc8b3fc6490c38aa0a2489ac13a048725350dc66b14872c58472fbbdfd43adafc1f7df2e123344f1df2a6ccbfea8e3eefc39bf8b85009ed74d414c5f2beafc5224d1e7e8f9d41661d556dbc3efd34298ae51d47728db242e717d048fb2f1ff8b5f1eff4f39afd737e45ae93aec26aceda4ed9a22f4fb667943df7caff020000ffffcc4ac5ca2c0c0000", - "db9e7b0a79a9cfb135df713ae83ce099": "1f8b08000000000000ff4c8e414ac6301085d7ce2986ac5a90e4106e0a2a827a81f9d369136c326132911fc4bb4ba10b578ff7787c7c8de217ed8c142d4bed00b93451c309105d650bc9ac3938db9e2d8d9b8f52c22eb7b16d7448b8d2c10c10022e5278a1ba1eac983b12aebcd1380cd3359a6067fd661cedfc1326298c8d76f6b08d1aff13a68817de3f4935bedb8cac2a8a3ff0a06c432b46ffce75659d4e4fff6164a3bf3d3fa2fae5f3f56572b9ae7cf7c9cae1e6197ee12f0000ffff1754f1f8f0000000", - "e255094fe51ef01862178e311e17f754": "1f8b08000000000000ff7c8ec14ac4301086ef7d8a217441c18d7a2d6d61d9931711ec0b24d9e95a4c9398996835e4dd655d1441e96d0efff77d933344e58e087580a603e90393dc3147826d2955ce308d802f5007b9f7f3ecddf01e1004e3c2e26bd16e3a18e5800bef22aa411d2f44ce7590f76a46f9a0c8283b7d6029e20a72f46fd4c0ed4db9844d7f72a3255ced68efedefcefe09cdb3f6cb7a273973dae1a1815159c2bfbdb3edce85c42baa1fcc1dbebffce7ac5a9d98bd0363155127343bd0ecb6948c412201d15bec04253d4f2cfa47f58aedf519e9abcf000000ffffdcd8bf6980010000", - "e2d5d81577b142a416eee01f2874f794": "1f8b08000000000000ffb2c930b4abaed6cb4bcc4dd50b482c4e4eccc9ac4aadad55aeaed64b4c2ec9cccf4316b5d1cf30b4e302040000ffff9ca0bf3a33000000", - "e8972ac6dc3e57b0c59883df456ad37c": "1f8b08000000000000ff34cdc16ec2301004d0fb7ec5c8a7a4aa927ba59eda5ecb851fd898b531246bcbb14108e5df5120ec6547a3274d627b662f605b42d499284c29e6828600e34339d6a1b371ea7d1caa733cc6fefdb3e841b2a196e8c219191fafa6fb531f54885c558ba0a1342dee04647c6323ff726db6b84bcfe115acf72b8eeb587ea216d1b2bf25f982e194c6607985fd698e6a3e09585a5ae8110000ffff7d25ad33bf000000", - "ea761d55cd5f5d08a297041a98564260": "1f8b08000000000000ff4c8e414ac5401044d7f6298aac1290c91d74f3c185e03f41ff4927199c991e3a3d228877974016ae8a2a8ac76b1c3f791370f4a4f5204aa5a9394602862a3eefee6da0b36dc9f7fe0851cbbce9a3af2b679daf1c68229a67dcb4c88deb92c5900e301659b967c77e8dae38c4be04bd9d7fc6ae45d07893406baff13f618cb8f0e155abcbb74f103335fcd0938977ab88e143ea22369e9ee1eeecfd787f7b8685bb5baadb38dc2467c56a5af072c94e13fdd25f000000ffff16411447fa000000", - "efa72723cef2e8bfedc523738bf5d159": "1f8b08000000000000ff9454516f9b30107ef7af38d1290f934c946d79b13a6dc9c8d287b674816cda1372e042ac194c6d93a942fcf709082cb4ddd63d81eebeefbef3f93bef70af344626d6a2b08c541505b107bc075715d6b8de327c28109c42199b6a340ed43501a0c00b4b53b4501609b70893c91011b9b15c4aa00fd0b3ee258da5c0dcb6f5511a7c56247b30f7f2ff145acaa8789ef405b21f89d0400b28ca9d14f1941b83d6b4a95441538896900a7b28776eacb269aa76e57ecfa59a3efaf6944c2590a89fb9543c21c4589ea2616dd2a2b184b8cd871eb9360c26c33f0138722df84e766880b51fad6ebf32701a8cf3d29903dcf941b8deac82c85b3270aaaa832f8ac2bde519ba9f85c4ba8ebaa223fc36586d18e832cf518f33778b2008bef91b8f81f38874e50761b4d88657d1cd2abcf23d065697c6b6a070158491b70817cb45b08ab69b6bf6bb5d369dbeaa46d2353b0b348a8d60fd7120ccdfbd7d73cef196f5076364a6127c9f08d34cce79b973006ebe075fae87f65e34aa8eb2f1fd70689081a3953ae59f3b7055b517eeedb65ad6b5736e3f72016b25799ec211b5112a87f8a0448c704059a0266e6990a62d828a8ca7c860721692bc3514c029d785d929fc2ff68ccee64fb833773627a4e1371ebc804f079ea70856817379c9e0f51375a7c99506c11e10ba10ac557f1e02f09876926dc3e7e66ff784c1e94406f551c4cd26fcc9f6e3bba4dd8ab3f9df0df06457e8f0f8f4631bbd0efd7bd7414f7bdef5f82b0000ffffdc2fe29312050000", - "fb822827dff50f68a3cd4cbdf7a507a1": "1f8b08000000000000ff74903d6b342114856befafb8afc58b2e83032917b6d866cb14c942cae08ace4a6655f49a0fc2fcf7e038c51248a93ecf390793366f7ab2a80df9180a80bfa5980905304eb6900f1307607cf274ad1765e26d9ce2a53aa7e73836398fef0ffc2fa0544f968304a0af64f1b8963cb74b2c94ab21fc06b65b29d51f61017035183cdb42af778220dc6d83d45936af4f1ed0e68cfb03f69447fbd1a5174fd793ffa49a6d11c794841c70dddb10c17fc7f301b952a3db0c2e2530efd6ec7f070c7e6e8d8cd449939e85cd59025b00982eadfbff5d52e3fa71bffdead050d6f73dd52068405d242cf0130000ffff7b2fce9c7d010000", - "fcf9b1fe98670ffe85fadf1593a3b534": "1f8b08000000000000ff1cccc14a03311080e173e729869c1229e95df0608bb8a0e2610b1e65c8ced66036b366260711dfbd74af3f1fff4ae99b2e8c942c4b5580bcacd20c5d653b7c99ad0e60ee35a127c5bbc74d8d3d1b073cb3dae7200b0f54a7c2cd07fc835d63c5fb07248dc3f9edd5bb830bf199cd07801d697cfae954fc6d1c4723ebfafeb2c7c61a4f3271d8c849aa51aeea6ff928d36f1cade57af1618fee834b9285d1048f7d9ea9880bf00fd7000000ffffecd480c3c7000000", - }) - if err != nil { - panic(err) - } - g.DefaultResolver = hgr - - - func() { - b := packr.New("buffalo:genny:assets:standard", "../standard/templates") - b.SetResolver("public/assets/application.css.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "749dc26d85a249c8c5a3efa92cb0293b"}) - b.SetResolver("public/assets/application.js.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "1ec08471990f98ece7e8d944aa3cd415"}) - b.SetResolver("public/assets/buffalo.css.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "524efd5799b78f65989b6c1104215481"}) - b.SetResolver("public/assets/images/favicon.ico.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "1fd3e4602afd3c7e8d6adf2c2aca985c"}) - b.SetResolver("public/assets/images/logo.svg.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "5c28c6abb0b23e98772f3aaed045abf5"}) - }() - - func() { - b := packr.New("buffalo:genny:ci", "../ci/templates") - b.SetResolver("-dot-circleci/config.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "ad984a19840b1660f7b799cfc369022d"}) - b.SetResolver("-dot-gitlab-ci-no-pop.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "4a4954ee92c57e00f8a0f34ec9a08084"}) - b.SetResolver("-dot-gitlab-ci.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "efa72723cef2e8bfedc523738bf5d159"}) - b.SetResolver("-dot-travis.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "9a6b926cb5a5d57f2ebe46e33ce680be"}) - }() - - func() { - b := packr.New("buffalo:genny:newapp:api", "../api/templates") - b.SetResolver("actions/app.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "a8ec67aa1e41fcbd2cdd86240d37c5e0"}) - b.SetResolver("actions/home.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "545676fd88c0d1d27198d283049c41b0"}) - b.SetResolver("actions/home_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "ce01971710d9b9f11bba237baf76ec52"}) - b.SetResolver("actions/render.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "e8972ac6dc3e57b0c59883df456ad37c"}) - b.SetResolver("locales/all.en-us.yaml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "9897b71949d4e127aa00c50724ae4b5a"}) - }() - - func() { - b := packr.New("buffalo:genny:newapp:core", "../core/templates") - b.SetResolver("-dot-codeclimate.yml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "357939eff9d3a7884ef4ebadca1b1668"}) - b.SetResolver("-dot-env.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "c3816880f9d6ede8f28a4a1f0360251d"}) - b.SetResolver("README.md.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "3ab914a64676d62186c6060f4988dd39"}) - b.SetResolver("actions/actions_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "fb822827dff50f68a3cd4cbdf7a507a1"}) - b.SetResolver("actions/app.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "59c3c4502bfd1cb86f9a7572f82ea9ed"}) - b.SetResolver("actions/home.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "ea761d55cd5f5d08a297041a98564260"}) - b.SetResolver("actions/home_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "fcf9b1fe98670ffe85fadf1593a3b534"}) - b.SetResolver("actions/render.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "11da39f868d54d3279affe59a569252f"}) - b.SetResolver("fixtures/sample.toml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "a2aa87a7f3879b4244cf8c8555382e93"}) - b.SetResolver("grifts/init.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "6d6389bc500aa7c88f06a525ffdc3964"}) - b.SetResolver("inflections.json.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "67965ff5ea3fd75bf5d6891d715a8d5f"}) - b.SetResolver("main.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "cf6712125ddfa9d651b4f66d736d6303"}) - }() - - func() { - b := packr.New("buffalo:genny:refresh", "../refresh/templates") - b.SetResolver("-dot-buffalo.dev.yml.plush", packr.Pointer{ForwardBox: gk, ForwardPath: "c6660b1c6a1a45d1cb79e72c7bb65764"}) - }() - - func() { - b := packr.New("buffalo:genny:vcs", "../vcs/templates") - b.SetResolver("ignore.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "3e00c27b916d08ee5aa54c8a3d2f31a5"}) - }() - - func() { - b := packr.New("github.com/gobuffalo/buffalo/@v0.15.4/genny/resource/templates/core", "../resource/templates/core") - b.SetResolver("locales/folder-name.en-us.yaml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "8d1395ead30d0841f952b8cca46300a8"}) - b.SetResolver("templates/folder-name/_form.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "e255094fe51ef01862178e311e17f754"}) - b.SetResolver("templates/folder-name/edit.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "6db581c2c298b22b8281e79de71aa56a"}) - b.SetResolver("templates/folder-name/index.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "6e0c924074f3636a40c0a94549a7d6b0"}) - b.SetResolver("templates/folder-name/new.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "d7356a0c96560b441eda4c9e940b5754"}) - b.SetResolver("templates/folder-name/show.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "b97ef3b8e9a685594ebc0fc9eebc931a"}) - }() - - func() { - b := packr.New("github.com/gobuffalo/buffalo/@v0.15.4/genny/resource/templates/standard", "../resource/templates/standard") - b.SetResolver("actions/resource-name.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "83e722486c9aaa60954a8c8bcd026763"}) - b.SetResolver("actions/resource-name_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "1ecd294aa90a5a249902dadd8b1b7502"}) - }() - - func() { - b := packr.New("github.com/gobuffalo/buffalo/@v0.15.4/genny/resource/templates/use_model", "../resource/templates/use_model") - b.SetResolver("actions/resource-name.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "a5bd9ef051dd34fa95a8ddfe363e527a"}) - b.SetResolver("actions/resource-name_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "b8438980c36888bd6a7b788a487d06ed"}) - }() - - func() { - b := packr.New("github.com/gobuffalo/buffalo/common", "../docker/templates/common") - b.SetResolver("-dot-dockerignore.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "200603a93cae9aee719dcb679b44c289"}) - }() - - func() { - b := packr.New("github.com/gobuffalo/buffalo/genny/actions/templates", "../actions/templates") - b.SetResolver("actions.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "0234b5edc6e81c1e266d31f193fe20b9"}) - b.SetResolver("actions_header.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "9aec4669fcf2f836741c92fc02cc9098"}) - b.SetResolver("test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "baca6b4ebf8cc8bd0ea945a5a2fffe15"}) - b.SetResolver("tests_header.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "5a632d314f6d6797fef503c04ff3e44b"}) - b.SetResolver("view.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "e2d5d81577b142a416eee01f2874f794"}) - }() - - func() { - b := packr.New("github.com/gobuffalo/buffalo/genny/assets/webpack", "../webpack/templates") - b.SetResolver("-dot-babelrc.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "8f7214811ed4641d8d06c428e736e427"}) - b.SetResolver("assets/css/_buffalo.scss.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "ad0590eeb12863588f25c48a5f376f57"}) - b.SetResolver("assets/css/application.scss.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "7a58ef101f5e8bc63d4aa81d805d3dba"}) - b.SetResolver("assets/images/favicon.ico.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "addf37c61e119909debf422a9b655510"}) - b.SetResolver("assets/images/logo.svg", packr.Pointer{ForwardBox: gk, ForwardPath: "c7bf78b3701e04e6225e9c327e2e71a1"}) - b.SetResolver("assets/js/application.js.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "3a5d3f320c662fc4951dba09e5ca48af"}) - b.SetResolver("package.json.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "d439a742bb76bceaa50df253815eda39"}) - b.SetResolver("postcss.config.js.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "02c0cabc5d0ccf06bf62aef1259e6eaa"}) - b.SetResolver("public/assets/-dot-keep.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "11a0cc9b3e885f72d7f5b4c016722237"}) - b.SetResolver("webpack.config.js.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "daae3f6c1877694081e2d9bbe1ef33a2"}) - }() - - func() { - b := packr.New("github.com/gobuffalo/buffalo/genny/mail/init/templates", "../mail/init/templates") - b.SetResolver("mailers/mailers.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "70ae08ec6bfcd89151868c693af94486"}) - b.SetResolver("templates/mail/layout.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "1f893bc0a5e86464fb13af76078ae912"}) - }() - - func() { - b := packr.New("github.com/gobuffalo/buffalo/multi", "../docker/templates/multi") - b.SetResolver("Dockerfile.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "ab8942bb19a00ddb54dfc22df4c36c21"}) - }() - - func() { - b := packr.New("github.com/gobuffalo/buffalo/standard", "../docker/templates/standard") - b.SetResolver("Dockerfile.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "afc1533d018c2d1730753da9c1eec198"}) - }() - - func() { - b := packr.New("github.com/gobuffalo/buffalo:genny/newapp/web", "../web/templates") - b.SetResolver("actions/app.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "db8e1e2167d7993bdf62512ba883d4d0"}) - b.SetResolver("actions/home.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "db9e7b0a79a9cfb135df713ae83ce099"}) - b.SetResolver("actions/home_test.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "cc0ec998cebfa39579cabe0ebf0062f9"}) - b.SetResolver("actions/render.go.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "b1025117b1edd497f09f8663eb3a853b"}) - b.SetResolver("locales/all.en-us.yaml.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "82bafaaf693dd31835437687f3bc795c"}) - b.SetResolver("public/robots.txt.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "b33656abe4a19add5fb7502f0b6b2dee"}) - b.SetResolver("templates/_flash.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "c942384692540a659219d8746ee9fcae"}) - b.SetResolver("templates/application.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "70731710a6b9f5808311e8dc2d8f7460"}) - b.SetResolver("templates/index.plush.html.tmpl", packr.Pointer{ForwardBox: gk, ForwardPath: "3c5378f5aa59242753fa2bcf50bbb6d2"}) - }() - - func() { - b := packr.New("github.com/gobuffalo/buffalo@v0.15.6/genny/build", "../build/templates") - b.SetResolver("a/aa.go.plush", packr.Pointer{ForwardBox: gk, ForwardPath: "a85bfd7cc3b5f9eb04967d04cf35cc5e"}) - b.SetResolver("buffalo_build_main.go.plush", packr.Pointer{ForwardBox: gk, ForwardPath: "52f14062d5b60ffc0896c4bda40d83fc"}) - b.SetResolver("migrations/-dot-pop-tmp.md", packr.Pointer{ForwardBox: gk, ForwardPath: "c6e3e8d28eed67725402c2b7c09dd7e7"}) - }() - return nil -}()