From b8756fb7091878cba94409e539033a607ec40415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ste=CC=81phane=20Este-Gracias?= Date: Thu, 31 Mar 2022 13:45:31 +0200 Subject: [PATCH 01/22] Update install procedure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Este-Gracias --- docs/1001-install.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/1001-install.md b/docs/1001-install.md index 1d0db574..3c7413d9 100644 --- a/docs/1001-install.md +++ b/docs/1001-install.md @@ -10,9 +10,9 @@ slug: /1001/install/ ::: -## Option 1: Use Homebrew (Mac OS only) +## Option 1 (Mac OS and Linux): Use Homebrew -From your Mac OS terminal, run the following command: +From a terminal, run the following command: ```shell brew install dagger/tap/dagger @@ -25,7 +25,7 @@ brew update brew upgrade dagger ``` -## Option 2: Run a shell script +## Option 2 (Mac OS and Linux): Run a shell script From a terminal, run the following command: From 095d4a327b382f3eb9cf94072da6a1fa98224b04 Mon Sep 17 00:00:00 2001 From: jffarge Date: Thu, 31 Mar 2022 15:53:25 +0200 Subject: [PATCH 02/22] Display getting started as the index page Signed-off-by: jffarge --- docs/getting-started/1200-local-dev.md | 2 +- docs/getting-started/index.md | 15 +++++++++++++++ website/sidebars.js | 7 ++----- website/src/css/custom.scss | 2 +- 4 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 docs/getting-started/index.md diff --git a/docs/getting-started/1200-local-dev.md b/docs/getting-started/1200-local-dev.md index a3b1fda7..5ed0166f 100644 --- a/docs/getting-started/1200-local-dev.md +++ b/docs/getting-started/1200-local-dev.md @@ -1,5 +1,5 @@ --- -slug: / +slug: /1200/local-dev displayed_sidebar: europa --- diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md new file mode 100644 index 00000000..35acded1 --- /dev/null +++ b/docs/getting-started/index.md @@ -0,0 +1,15 @@ +--- +slug: / +displayed_sidebar: europa +--- + +# Getting Started + +```mdx-code-block +import DocCardList from '@theme/DocCardList'; +import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; + +Run your CI/CD pipelines locally, then easily integrate them with any CI environment. + + +``` diff --git a/website/sidebars.js b/website/sidebars.js index 24011247..8c9cb7ba 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -79,12 +79,9 @@ module.exports = { type: "category", label: "Getting Started", collapsible: false, - collapsed: false, link: { - type: 'generated-index', - title: 'Getting Started', - description: - "Run your CI/CD pipelines locally, then easily integrate them with any CI environment.", + type: 'doc', + id: 'getting-started/index' }, items: ["getting-started/local-dev", "getting-started/ci-environment"], }, diff --git a/website/src/css/custom.scss b/website/src/css/custom.scss index 97476723..c74aec50 100644 --- a/website/src/css/custom.scss +++ b/website/src/css/custom.scss @@ -124,7 +124,7 @@ code { --ifm-h3-vertical-rhythm-top: 2; } - a { + a:not(.card) { font-weight: bold; text-decoration: underline; color: var(--ifm-color-primary-dark); From a7fa4d674ef8863f01fd5d39920e4333d3c54163 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tanguy=20=E2=A7=93=20Herrmann?= Date: Thu, 31 Mar 2022 15:56:34 +0200 Subject: [PATCH 03/22] doc: remove the bash syntax highlighting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit it was highlighting the wrong keywords (test, do) Signed-off-by: Tanguy ⧓ Herrmann --- docs/use-cases/1211-go-docker-swarm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/use-cases/1211-go-docker-swarm.md b/docs/use-cases/1211-go-docker-swarm.md index d2ad2629..28b12634 100644 --- a/docs/use-cases/1211-go-docker-swarm.md +++ b/docs/use-cases/1211-go-docker-swarm.md @@ -23,7 +23,7 @@ This is a high level overview of all actions in the Particubes docs Dagger plan: We can see all available actions in a Plan by running the following command: -```bash +```console $ dagger do Execute a dagger action. From e6754ad626c118e71b12a8a7cffb4800e235073a Mon Sep 17 00:00:00 2001 From: jffarge Date: Thu, 31 Mar 2022 17:43:44 +0200 Subject: [PATCH 04/22] reduce main wrapper padding and sidebar width to avoid horizontal scrolling Signed-off-by: jffarge --- website/src/css/custom.scss | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/website/src/css/custom.scss b/website/src/css/custom.scss index 97476723..71c458f6 100644 --- a/website/src/css/custom.scss +++ b/website/src/css/custom.scss @@ -310,15 +310,6 @@ h1[class^="h1Heading"] { } /* sidebar */ -@include desktop { - aside[class^="docSidebarContainer"] { - width: 340px; - - div[class^="sidebar"] { - width: 340px; - } - } -} a[class^="sidebarLogo"] { img { @@ -341,7 +332,7 @@ a[class^="sidebarLogo"] { main[class^="docMainContainer"] { background: #ffffff; - padding: 2rem 2rem 2rem 5rem; + padding: 2rem; @include tablet { padding: 2rem; From 2b79d755ea3203cb6861a00d7166779c53df117e Mon Sep 17 00:00:00 2001 From: jffarge Date: Thu, 31 Mar 2022 17:51:32 +0200 Subject: [PATCH 05/22] bump up docusaurus preset classic theme while dependabot automatically bump up docusaurus core, the package preset-classic is ignore. Signed-off-by: jffarge --- website/package.json | 2 +- website/src/css/custom.scss | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/website/package.json b/website/package.json index b11bf4be..93188643 100644 --- a/website/package.json +++ b/website/package.json @@ -17,7 +17,7 @@ }, "dependencies": { "@docusaurus/core": "^2.0.0-beta.18", - "@docusaurus/preset-classic": "^2.0.0-beta.17", + "@docusaurus/preset-classic": "^2.0.0-beta.18", "@mdx-js/react": "^1.6.22", "@svgr/webpack": "^6.2.1", "amplitude-js": "^8.17.0", diff --git a/website/src/css/custom.scss b/website/src/css/custom.scss index c74aec50..370f15e3 100644 --- a/website/src/css/custom.scss +++ b/website/src/css/custom.scss @@ -279,9 +279,9 @@ h1[class^="h1Heading"] { line-height: 36px; @include desktop { width: 48px; - span { - display: none; - } + text-indent: 9999px; + white-space: nowrap; + overflow: hidden; } } From 9189b5cb202f07e95c4e88e36639a0f5e0fd1f62 Mon Sep 17 00:00:00 2001 From: jffarge Date: Thu, 31 Mar 2022 19:55:03 +0200 Subject: [PATCH 06/22] use h2 title instead of h3 + fix code css Signed-off-by: jffarge --- docs/use-cases/1211-go-docker-swarm.md | 19 +++++++++++-------- website/src/css/custom.scss | 4 +++- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/docs/use-cases/1211-go-docker-swarm.md b/docs/use-cases/1211-go-docker-swarm.md index 28b12634..8b971c91 100644 --- a/docs/use-cases/1211-go-docker-swarm.md +++ b/docs/use-cases/1211-go-docker-swarm.md @@ -15,7 +15,7 @@ The production setup is a multi-node Docker Swarm cluster running on AWS. The Particubes team chose Dagger for continuous deployment because it was the easiest way of integrating GitHub with Docker Swarm. Every commit to the main branch goes straight to [docs.particubes.com](https://docs.particubes.com) via a Dagger pipeline that runs in GitHub Actions. Let us see how the Particubes Dagger plan fits together. -### Actions API +## Actions API This is a high level overview of all actions in the Particubes docs Dagger plan: @@ -34,7 +34,7 @@ Available Actions: deploy Deploy a container image ``` -### Client API +## Client API Dagger actions usually need to interact with the host environment where the Dagger client runs. The Particubes' plan uses environment variables and the filesystem. @@ -45,20 +45,22 @@ This is an overview of all client interactions for this plan: This is what the above looks like in the Dagger plan config: ```cue file=../tests/use-cases/go-docker-swarm/client-api.cue.fragment + ``` -### The *build* Action +## The `build` Action -This is a more in-depth overview of the *build* action and how it interacts with the client in the Particubes docs Dagger plan: +This is a more in-depth overview of the _build_ action and how it interacts with the client in the Particubes docs Dagger plan: ![build action](/img/use-cases/build-action.png) This is what the above looks like in the Dagger plan config: ```cue file=../tests/use-cases/go-docker-swarm/build-action.cue.fragment + ``` -### Github Action integration +## Github Action integration This is the GitHub Actions workflow config that invokes `dagger`, which in turn runs the full plan: @@ -102,16 +104,17 @@ dagger do This is the first step that enabled the Particubes team to have the same CI/CD experience everywhere. -### Full Particubes docs Dagger plan +## Full Particubes docs Dagger plan This is the entire plan running on Particubes' CI: ```cue file=../tests/use-cases/go-docker-swarm/full/particubes.docs.cue + ``` -### What comes next ? +## What comes next ? -Particubes' team suggested that we create a `dev` action with *hot reload*, that way Dagger would even asbtract away the ramp-up experience when developing the doc +Particubes' team suggested that we create a `dev` action with _hot reload_, that way Dagger would even asbtract away the ramp-up experience when developing the doc :::tip The latest version of this pipeline can be found at [github.com/voxowl/particubes/pull/144](https://github.com/voxowl/particubes/blob/2af173596729929cfb7a7a1f78f1ec0d8b685e5e/lua-docs/docs.cue) diff --git a/website/src/css/custom.scss b/website/src/css/custom.scss index c74aec50..729b5042 100644 --- a/website/src/css/custom.scss +++ b/website/src/css/custom.scss @@ -101,7 +101,9 @@ h2 { line-height: 32px; } -code { +code, +.table-of-contents__link code, +.table-of-contents__link:hover code { margin: 0 1px; color: var(--ifm-code-color); .alert & { From 19c0f999f45bde711e623213b9dc07c6d08b3c33 Mon Sep 17 00:00:00 2001 From: Tom Chauveau Date: Wed, 23 Mar 2022 23:02:17 +0100 Subject: [PATCH 07/22] Fix export cache issue Resolve #1551 and #1020. We are never returning the result of solved operations so Buildkit could not cache the layer. This commit implements a simple system to forward operations' result to the main build to cache it. Signed-off-by: Vasek - Tom C --- .github/workflows/dagger-ci.yml | 11 ++--- .github/workflows/test-integration.yml | 9 ++-- .github/workflows/test-universe.yml | 3 -- Makefile | 2 +- client/client.go | 44 +++++++++++------ cmd/dagger/cmd/do.go | 2 +- docs/learn/tests/helpers.bash | 6 +++ pkg/universe.dagger.io/bats_helpers.bash | 7 +++ pkg/universe.dagger.io/package.json | 2 +- plan/plan.go | 2 +- plan/runner.go | 4 +- plan/task/clientcommand.go | 2 +- plan/task/clientenv.go | 2 +- plan/task/clientfilesystemread.go | 8 ++-- plan/task/clientfilesystemwrite.go | 6 +-- plan/task/clientnetwork.go | 2 +- plan/task/clientplatform.go | 2 +- plan/task/copy.go | 2 +- plan/task/decodesecret.go | 2 +- plan/task/diff.go | 2 +- plan/task/dockerfile.go | 2 +- plan/task/exec.go | 8 ++-- plan/task/export.go | 4 +- plan/task/gitpull.go | 2 +- plan/task/httpfetch.go | 2 +- plan/task/merge.go | 2 +- plan/task/mkdir.go | 2 +- plan/task/newsecret.go | 2 +- plan/task/nop.go | 2 +- plan/task/pull.go | 4 +- plan/task/push.go | 2 +- plan/task/readfile.go | 2 +- plan/task/source.go | 4 +- plan/task/task.go | 2 +- plan/task/transformsecret.go | 2 +- plan/task/trimsecret.go | 2 +- plan/task/writefile.go | 7 +-- solver/solver.go | 61 ++++++++++++++++-------- tests/helpers.bash | 7 +++ tests/package.json | 2 +- tests/plan.bats | 4 +- tests/project.bats | 2 +- 42 files changed, 144 insertions(+), 103 deletions(-) diff --git a/.github/workflows/dagger-ci.yml b/.github/workflows/dagger-ci.yml index 03d3f90b..1492b19e 100644 --- a/.github/workflows/dagger-ci.yml +++ b/.github/workflows/dagger-ci.yml @@ -2,7 +2,7 @@ name: "Dagger CI" on: push: - branches: [main] + branches: [ main ] paths: - '**.sh' - '**.bash' @@ -14,7 +14,7 @@ on: - 'go.sum' - '.github/workflows/dagger-ci.yml' pull_request: - branches: [main] + branches: [ main ] paths: - '**.sh' - '**.bash' @@ -33,11 +33,10 @@ jobs: build: runs-on: ubuntu-latest steps: - - - name: Checkout + - name: Checkout uses: actions/checkout@v2 - - - name: Dagger CI + + - name: Dagger CI uses: dagger/dagger-for-github@v2 with: workdir: ci diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml index e6c4d84c..78332524 100644 --- a/.github/workflows/test-integration.yml +++ b/.github/workflows/test-integration.yml @@ -2,7 +2,7 @@ name: "Test Integration" on: push: - branches: [main] + branches: [ main ] paths: - "**.sh" - "**.bash" @@ -16,7 +16,7 @@ on: - "!docs/**" pull_request: - branches: [main] + branches: [ main ] paths: - "**.sh" - "**.bash" @@ -67,9 +67,6 @@ jobs: - name: Test env: DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} - # TODO: https://github.com/dagger/dagger/pull/1341 - # DAGGER_CACHE_TO: "type=gha,mode=max,scope=test-integration" - # DAGGER_CACHE_FROM: "type=gha,mode=max,scope=test-integration" run: | env - make core-integration + make core-integration \ No newline at end of file diff --git a/.github/workflows/test-universe.yml b/.github/workflows/test-universe.yml index 212a273d..dcfb1b2c 100644 --- a/.github/workflows/test-universe.yml +++ b/.github/workflows/test-universe.yml @@ -57,8 +57,5 @@ jobs: uses: crazy-max/ghaction-github-runtime@v1 - name: Test - env: - DAGGER_CACHE_TO: "type=gha,mode=max,scope=test-universe" - DAGGER_CACHE_FROM: "type=gha,mode=max,scope=test-universe" run: | make universe-test diff --git a/Makefile b/Makefile index 4cf048ec..31d3d09b 100644 --- a/Makefile +++ b/Makefile @@ -93,4 +93,4 @@ web: # Run the website locally .PHONY: todo todo: # Find all TODO items - grep -r -A 1 "TODO:" $(CURDIR) + grep -r -A 1 "TODO:" $(CURDIR) \ No newline at end of file diff --git a/client/client.go b/client/client.go index bd8cc25b..071ea373 100644 --- a/client/client.go +++ b/client/client.go @@ -7,7 +7,7 @@ import ( "strings" "sync" - "github.com/containerd/containerd/platforms" + "github.com/google/uuid" "go.opentelemetry.io/otel/trace" "golang.org/x/sync/errgroup" @@ -18,7 +18,6 @@ import ( // buildkit bk "github.com/moby/buildkit/client" _ "github.com/moby/buildkit/client/connhelper/dockercontainer" // import the container connection driver - "github.com/moby/buildkit/client/llb" bkgw "github.com/moby/buildkit/frontend/gateway/client" "github.com/moby/buildkit/session" @@ -72,7 +71,7 @@ func New(ctx context.Context, host string, cfg Config) (*Client, error) { }, nil } -type DoFunc func(context.Context, solver.Solver) error +type DoFunc func(context.Context, *solver.Solver) error // FIXME: return completed *Route, instead of *compiler.Value func (c *Client) Do(ctx context.Context, pctx *plancontext.Context, fn DoFunc) error { @@ -96,6 +95,19 @@ func (c *Client) Do(ctx context.Context, pctx *plancontext.Context, fn DoFunc) e return eg.Wait() } +func convertCacheOptionEntries(ims []bk.CacheOptionsEntry) []bkgw.CacheOptionsEntry { + convertIms := []bkgw.CacheOptionsEntry{} + + for _, im := range ims { + convertIm := bkgw.CacheOptionsEntry{ + Type: im.Type, + Attrs: im.Attrs, + } + convertIms = append(convertIms, convertIm) + } + return convertIms +} + func (c *Client) buildfn(ctx context.Context, pctx *plancontext.Context, fn DoFunc, ch chan *bk.SolveStatus) error { wg := sync.WaitGroup{} @@ -156,29 +168,31 @@ func (c *Client) buildfn(ctx context.Context, pctx *plancontext.Context, fn DoFu resp, err := c.c.Build(ctx, opts, "", func(ctx context.Context, gw bkgw.Client) (*bkgw.Result, error) { s := solver.New(solver.Opts{ - Control: c.c, - Gateway: gw, - Events: eventsCh, - Auth: auth, - NoCache: c.cfg.NoCache, + Control: c.c, + Gateway: gw, + Events: eventsCh, + Auth: auth, + NoCache: c.cfg.NoCache, + CacheImports: convertCacheOptionEntries(opts.CacheImports), }) // Close events channel defer s.Stop() // Compute output overlay + res := bkgw.NewResult() if fn != nil { - if err := fn(ctx, s); err != nil { + err := fn(ctx, s) + if err != nil { return nil, compiler.Err(err) } - } - ref, err := s.Solve(ctx, llb.Scratch(), platforms.DefaultSpec()) - if err != nil { - return nil, err + refs := s.References() + // Add functions layers + for _, ref := range refs { + res.AddRef(uuid.New().String(), ref) + } } - res := bkgw.NewResult() - res.SetRef(ref) return res, nil }, buildCh) if err != nil { diff --git a/cmd/dagger/cmd/do.go b/cmd/dagger/cmd/do.go index ff6f6a27..c11c2313 100644 --- a/cmd/dagger/cmd/do.go +++ b/cmd/dagger/cmd/do.go @@ -67,7 +67,7 @@ var doCmd = &cobra.Command{ Value: target.String(), }) - err = cl.Do(ctx, p.Context(), func(ctx context.Context, s solver.Solver) error { + err = cl.Do(ctx, p.Context(), func(ctx context.Context, s *solver.Solver) error { return p.Do(ctx, target, s) }) diff --git a/docs/learn/tests/helpers.bash b/docs/learn/tests/helpers.bash index 96408a91..4eaf18ea 100644 --- a/docs/learn/tests/helpers.bash +++ b/docs/learn/tests/helpers.bash @@ -28,6 +28,12 @@ common_setup() { export DAGGER_SANDBOX dagger init --project "$DAGGER_SANDBOX" + if [ -n "$GITHUB_ACTIONS" ]; + then + export DAGGER_CACHE_TO="type=gha,mode=max,scope=docs-tests-$BATS_TEST_NAME" + export DAGGER_CACHE_FROM="type=gha,scope=docs-tests-$BATS_TEST_NAME" + fi + # allows the use of `sops` SOPS_AGE_KEY_FILE=~/.config/dagger/keys.txt export SOPS_AGE_KEY_FILE diff --git a/pkg/universe.dagger.io/bats_helpers.bash b/pkg/universe.dagger.io/bats_helpers.bash index b8609ebe..d38d8876 100644 --- a/pkg/universe.dagger.io/bats_helpers.bash +++ b/pkg/universe.dagger.io/bats_helpers.bash @@ -15,6 +15,13 @@ common_setup() { DAGGER_LOG_FORMAT="plain" export DAGGER_LOG_FORMAT + export DAGGER_LOG_LEVEL="debug" + if [ -n "$GITHUB_ACTIONS" ]; + then + export DAGGER_CACHE_TO="type=gha,mode=max,scope=universe-tests-$BATS_TEST_NAME" + export DAGGER_CACHE_FROM="type=gha,scope=universe-tests-$BATS_TEST_NAME" + fi + # cd into the directory containing the bats file cd "$BATS_TEST_DIRNAME" || exit 1 } diff --git a/pkg/universe.dagger.io/package.json b/pkg/universe.dagger.io/package.json index bc23fdf5..a6d7bbba 100644 --- a/pkg/universe.dagger.io/package.json +++ b/pkg/universe.dagger.io/package.json @@ -1,7 +1,7 @@ { "license": "Apache-2.0", "scripts": { - "test": "bats --report-formatter junit --jobs 4 $(find . -type f -name '*.bats' -not -path '*/node_modules/*')" + "test": "bats --report-formatter junit --print-output-on-failure --jobs 4 $(find . -type f -name '*.bats' -not -path '*/node_modules/*')" }, "devDependencies": { "bats": "^1.5.0", diff --git a/plan/plan.go b/plan/plan.go index 04adf17a..dc4cc0df 100644 --- a/plan/plan.go +++ b/plan/plan.go @@ -168,7 +168,7 @@ func (p *Plan) prepare(ctx context.Context) error { } // Do executes an action in the plan -func (p *Plan) Do(ctx context.Context, path cue.Path, s solver.Solver) error { +func (p *Plan) Do(ctx context.Context, path cue.Path, s *solver.Solver) error { ctx, span := otel.Tracer("dagger").Start(ctx, "plan.Up") defer span.End() diff --git a/plan/runner.go b/plan/runner.go index 219f5fbe..a59e80ac 100644 --- a/plan/runner.go +++ b/plan/runner.go @@ -22,13 +22,13 @@ import ( type Runner struct { pctx *plancontext.Context target cue.Path - s solver.Solver + s *solver.Solver tasks sync.Map mirror *compiler.Value l sync.Mutex } -func NewRunner(pctx *plancontext.Context, target cue.Path, s solver.Solver) *Runner { +func NewRunner(pctx *plancontext.Context, target cue.Path, s *solver.Solver) *Runner { return &Runner{ pctx: pctx, target: target, diff --git a/plan/task/clientcommand.go b/plan/task/clientcommand.go index 50858c67..eab1f0bf 100644 --- a/plan/task/clientcommand.go +++ b/plan/task/clientcommand.go @@ -23,7 +23,7 @@ func init() { type clientCommandTask struct { } -func (t clientCommandTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t clientCommandTask) Run(ctx context.Context, pctx *plancontext.Context, _ *solver.Solver, v *compiler.Value) (*compiler.Value, error) { var opts struct { Name string Args []string diff --git a/plan/task/clientenv.go b/plan/task/clientenv.go index 5b51c483..52fe75db 100644 --- a/plan/task/clientenv.go +++ b/plan/task/clientenv.go @@ -19,7 +19,7 @@ func init() { type clientEnvTask struct { } -func (t clientEnvTask) Run(ctx context.Context, pctx *plancontext.Context, _ solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t clientEnvTask) Run(ctx context.Context, pctx *plancontext.Context, _ *solver.Solver, v *compiler.Value) (*compiler.Value, error) { log.Ctx(ctx).Debug().Msg("loading environment variables") fields, err := v.Fields() diff --git a/plan/task/clientfilesystemread.go b/plan/task/clientfilesystemread.go index 792a217b..0ec37f1a 100644 --- a/plan/task/clientfilesystemread.go +++ b/plan/task/clientfilesystemread.go @@ -21,7 +21,7 @@ func init() { type clientFilesystemReadTask struct { } -func (t clientFilesystemReadTask) PreRun(ctx context.Context, pctx *plancontext.Context, v *compiler.Value) error { +func (t clientFilesystemReadTask) PreRun(_ context.Context, pctx *plancontext.Context, v *compiler.Value) error { path, err := t.parsePath(v) if err != nil { return err @@ -38,7 +38,7 @@ func (t clientFilesystemReadTask) PreRun(ctx context.Context, pctx *plancontext. return nil } -func (t clientFilesystemReadTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t clientFilesystemReadTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { path, err := t.parsePath(v) if err != nil { return nil, err @@ -70,7 +70,7 @@ func (t clientFilesystemReadTask) parsePath(v *compiler.Value) (path string, err return } -func (t clientFilesystemReadTask) readContents(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value, path string) (interface{}, error) { +func (t clientFilesystemReadTask) readContents(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value, path string) (interface{}, error) { lg := log.Ctx(ctx) contents := v.Lookup("contents") @@ -97,7 +97,7 @@ func (t clientFilesystemReadTask) readContents(ctx context.Context, pctx *planco return nil, fmt.Errorf("unsupported type %q", k) } -func (t clientFilesystemReadTask) readFS(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value, path string) (*compiler.Value, error) { +func (t clientFilesystemReadTask) readFS(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value, path string) (*compiler.Value, error) { var dir struct { Include []string Exclude []string diff --git a/plan/task/clientfilesystemwrite.go b/plan/task/clientfilesystemwrite.go index 1ccbb325..dc0994b1 100644 --- a/plan/task/clientfilesystemwrite.go +++ b/plan/task/clientfilesystemwrite.go @@ -21,7 +21,7 @@ func init() { type clientFilesystemWriteTask struct { } -func (t clientFilesystemWriteTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t clientFilesystemWriteTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { path, err := v.Lookup("path").String() if err != nil { return nil, err @@ -39,7 +39,7 @@ func (t clientFilesystemWriteTask) Run(ctx context.Context, pctx *plancontext.Co return compiler.NewValue(), nil } -func (t clientFilesystemWriteTask) writeContents(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value, path string) error { +func (t clientFilesystemWriteTask) writeContents(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value, path string) error { lg := log.Ctx(ctx) contents := v.Lookup("contents") @@ -79,7 +79,7 @@ func (t clientFilesystemWriteTask) writeContents(ctx context.Context, pctx *plan return fmt.Errorf("unsupported type %q", k) } -func (t clientFilesystemWriteTask) writeFS(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value, path string) error { +func (t clientFilesystemWriteTask) writeFS(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value, path string) error { contents, err := pctx.FS.FromValue(v) if err != nil { return err diff --git a/plan/task/clientnetwork.go b/plan/task/clientnetwork.go index 7b1330b8..270cb7b7 100644 --- a/plan/task/clientnetwork.go +++ b/plan/task/clientnetwork.go @@ -20,7 +20,7 @@ func init() { type clientNetwork struct { } -func (t clientNetwork) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t clientNetwork) Run(ctx context.Context, pctx *plancontext.Context, _ *solver.Solver, v *compiler.Value) (*compiler.Value, error) { lg := log.Ctx(ctx) addr, err := v.Lookup("address").String() diff --git a/plan/task/clientplatform.go b/plan/task/clientplatform.go index 4fc2ad06..a2bc1169 100644 --- a/plan/task/clientplatform.go +++ b/plan/task/clientplatform.go @@ -16,7 +16,7 @@ func init() { type clientPlatformTask struct { } -func (t clientPlatformTask) Run(ctx context.Context, pctx *plancontext.Context, _ solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t clientPlatformTask) Run(_ context.Context, _ *plancontext.Context, _ *solver.Solver, _ *compiler.Value) (*compiler.Value, error) { return compiler.NewValue().FillFields(map[string]interface{}{ "os": runtime.GOOS, "arch": runtime.GOARCH, diff --git a/plan/task/copy.go b/plan/task/copy.go index dc6b8995..172cb064 100644 --- a/plan/task/copy.go +++ b/plan/task/copy.go @@ -16,7 +16,7 @@ func init() { type copyTask struct { } -func (t *copyTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t *copyTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { var err error input, err := pctx.FS.FromValue(v.Lookup("input")) diff --git a/plan/task/decodesecret.go b/plan/task/decodesecret.go index c7e9906d..2c0a4aa9 100644 --- a/plan/task/decodesecret.go +++ b/plan/task/decodesecret.go @@ -20,7 +20,7 @@ func init() { type decodeSecretTask struct { } -func (c *decodeSecretTask) Run(ctx context.Context, pctx *plancontext.Context, _ solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (c *decodeSecretTask) Run(ctx context.Context, pctx *plancontext.Context, _ *solver.Solver, v *compiler.Value) (*compiler.Value, error) { lg := log.Ctx(ctx) lg.Debug().Msg("decoding secret") diff --git a/plan/task/diff.go b/plan/task/diff.go index 5adbf709..fcb1b256 100644 --- a/plan/task/diff.go +++ b/plan/task/diff.go @@ -16,7 +16,7 @@ func init() { type diffTask struct { } -func (t diffTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t *diffTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { lowerFS, err := pctx.FS.FromValue(v.Lookup("lower")) if err != nil { return nil, err diff --git a/plan/task/dockerfile.go b/plan/task/dockerfile.go index 1254114f..4a8f1712 100644 --- a/plan/task/dockerfile.go +++ b/plan/task/dockerfile.go @@ -28,7 +28,7 @@ func init() { type dockerfileTask struct { } -func (t *dockerfileTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t *dockerfileTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { lg := log.Ctx(ctx) auths, err := v.Lookup("auth").Fields() if err != nil { diff --git a/plan/task/exec.go b/plan/task/exec.go index c5e3f16e..3f9b3d9e 100644 --- a/plan/task/exec.go +++ b/plan/task/exec.go @@ -20,7 +20,7 @@ func init() { type execTask struct { } -func (t execTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t *execTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { // Get input state input, err := pctx.FS.FromValue(v.Lookup("input")) if err != nil { @@ -52,7 +52,7 @@ func (t execTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.S }) } -func (t execTask) getRunOpts(v *compiler.Value, pctx *plancontext.Context) ([]llb.RunOption, error) { +func (t *execTask) getRunOpts(v *compiler.Value, pctx *plancontext.Context) ([]llb.RunOption, error) { opts := []llb.RunOption{} var cmd struct { Args []string @@ -141,7 +141,7 @@ func (t execTask) getRunOpts(v *compiler.Value, pctx *plancontext.Context) ([]ll return opts, nil } -func (t execTask) mountAll(pctx *plancontext.Context, mounts *compiler.Value) ([]llb.RunOption, error) { +func (t *execTask) mountAll(pctx *plancontext.Context, mounts *compiler.Value) ([]llb.RunOption, error) { opts := []llb.RunOption{} fields, err := mounts.Fields() if err != nil { @@ -165,7 +165,7 @@ func (t execTask) mountAll(pctx *plancontext.Context, mounts *compiler.Value) ([ return opts, err } -func (t execTask) mount(pctx *plancontext.Context, dest string, mnt *compiler.Value) (llb.RunOption, error) { +func (t *execTask) mount(pctx *plancontext.Context, dest string, mnt *compiler.Value) (llb.RunOption, error) { typ, err := mnt.Lookup("type").String() if err != nil { return nil, err diff --git a/plan/task/export.go b/plan/task/export.go index 92c7d9df..53f557e4 100644 --- a/plan/task/export.go +++ b/plan/task/export.go @@ -25,7 +25,7 @@ func init() { type exportTask struct { } -func (t exportTask) PreRun(ctx context.Context, pctx *plancontext.Context, v *compiler.Value) error { +func (t exportTask) PreRun(_ context.Context, pctx *plancontext.Context, v *compiler.Value) error { dir, err := os.MkdirTemp("", "dagger-export-*") if err != nil { return err @@ -37,7 +37,7 @@ func (t exportTask) PreRun(ctx context.Context, pctx *plancontext.Context, v *co return nil } -func (t exportTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t exportTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { lg := log.Ctx(ctx) dir := pctx.TempDirs.Get(v.Path().String()) diff --git a/plan/task/gitpull.go b/plan/task/gitpull.go index cb8532bd..a3dc5738 100644 --- a/plan/task/gitpull.go +++ b/plan/task/gitpull.go @@ -19,7 +19,7 @@ func init() { type gitPullTask struct { } -func (c gitPullTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (c *gitPullTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { var gitPull struct { Remote string Ref string diff --git a/plan/task/httpfetch.go b/plan/task/httpfetch.go index d70caffe..8a8e68fd 100644 --- a/plan/task/httpfetch.go +++ b/plan/task/httpfetch.go @@ -21,7 +21,7 @@ func init() { type httpFetchTask struct { } -func (c httpFetchTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (c *httpFetchTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { var httpFetch struct { Source string Checksum string diff --git a/plan/task/merge.go b/plan/task/merge.go index 1c5c18b1..60d62e3c 100644 --- a/plan/task/merge.go +++ b/plan/task/merge.go @@ -16,7 +16,7 @@ func init() { type mergeTask struct { } -func (t mergeTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t *mergeTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { inputs, err := v.Lookup("inputs").List() if err != nil { return nil, err diff --git a/plan/task/mkdir.go b/plan/task/mkdir.go index 04e2f40c..c887ead2 100644 --- a/plan/task/mkdir.go +++ b/plan/task/mkdir.go @@ -18,7 +18,7 @@ func init() { type mkdirTask struct { } -func (t *mkdirTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t *mkdirTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { path, err := v.Lookup("path").String() if err != nil { return nil, err diff --git a/plan/task/newsecret.go b/plan/task/newsecret.go index 0fbaf8ec..cd749bad 100644 --- a/plan/task/newsecret.go +++ b/plan/task/newsecret.go @@ -18,7 +18,7 @@ func init() { type newSecretTask struct { } -func (t *newSecretTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t *newSecretTask) Run(_ context.Context, pctx *plancontext.Context, _ *solver.Solver, v *compiler.Value) (*compiler.Value, error) { path, err := v.Lookup("path").String() if err != nil { return nil, err diff --git a/plan/task/nop.go b/plan/task/nop.go index 8a7dfc81..81f4c5f9 100644 --- a/plan/task/nop.go +++ b/plan/task/nop.go @@ -15,6 +15,6 @@ func init() { type nopTask struct { } -func (t *nopTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t *nopTask) Run(_ context.Context, _ *plancontext.Context, _ *solver.Solver, v *compiler.Value) (*compiler.Value, error) { return v, nil } diff --git a/plan/task/pull.go b/plan/task/pull.go index d374ff5c..88e179ba 100644 --- a/plan/task/pull.go +++ b/plan/task/pull.go @@ -19,7 +19,7 @@ func init() { type pullTask struct { } -func (c *pullTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (c *pullTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { lg := log.Ctx(ctx) rawRef, err := v.Lookup("source").String() @@ -68,8 +68,8 @@ func (c *pullTask) Run(ctx context.Context, pctx *plancontext.Context, s solver. if err != nil { return nil, err } - fs := pctx.FS.New(result) + fs := pctx.FS.New(result) return compiler.NewValue().FillFields(map[string]interface{}{ "output": fs.MarshalCUE(), "digest": digest, diff --git a/plan/task/push.go b/plan/task/push.go index 1adf5546..2ce8b64c 100644 --- a/plan/task/push.go +++ b/plan/task/push.go @@ -19,7 +19,7 @@ func init() { type pushTask struct { } -func (c *pushTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (c *pushTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { lg := log.Ctx(ctx) rawDest, err := v.Lookup("dest").String() diff --git a/plan/task/readfile.go b/plan/task/readfile.go index cb6a1f25..6d31d06d 100644 --- a/plan/task/readfile.go +++ b/plan/task/readfile.go @@ -18,7 +18,7 @@ func init() { type readFileTask struct { } -func (t *readFileTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t *readFileTask) Run(_ context.Context, pctx *plancontext.Context, _ *solver.Solver, v *compiler.Value) (*compiler.Value, error) { path, err := v.Lookup("path").String() if err != nil { return nil, err diff --git a/plan/task/source.go b/plan/task/source.go index 50062f84..19556b39 100644 --- a/plan/task/source.go +++ b/plan/task/source.go @@ -21,7 +21,7 @@ func init() { type sourceTask struct { } -func (c *sourceTask) PreRun(ctx context.Context, pctx *plancontext.Context, v *compiler.Value) error { +func (c *sourceTask) PreRun(_ context.Context, pctx *plancontext.Context, v *compiler.Value) error { origPath, err := v.Lookup("path").String() if err != nil { return err @@ -50,7 +50,7 @@ func (c *sourceTask) PreRun(ctx context.Context, pctx *plancontext.Context, v *c return nil } -func (c *sourceTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (c *sourceTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { lg := log.Ctx(ctx) path, err := v.Lookup("path").AbsPath() diff --git a/plan/task/task.go b/plan/task/task.go index 937a4a9b..1682144f 100644 --- a/plan/task/task.go +++ b/plan/task/task.go @@ -40,7 +40,7 @@ const ( type NewFunc func() Task type Task interface { - Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) + Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) } type PreRunner interface { diff --git a/plan/task/transformsecret.go b/plan/task/transformsecret.go index 3bc482ea..4b1993b1 100644 --- a/plan/task/transformsecret.go +++ b/plan/task/transformsecret.go @@ -20,7 +20,7 @@ func init() { type transformSecretTask struct { } -func (c *transformSecretTask) Run(ctx context.Context, pctx *plancontext.Context, _ solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (c *transformSecretTask) Run(ctx context.Context, pctx *plancontext.Context, _ *solver.Solver, v *compiler.Value) (*compiler.Value, error) { lg := log.Ctx(ctx) lg.Debug().Msg("transforming secret") diff --git a/plan/task/trimsecret.go b/plan/task/trimsecret.go index f4441d9d..6882a98a 100644 --- a/plan/task/trimsecret.go +++ b/plan/task/trimsecret.go @@ -16,7 +16,7 @@ func init() { type trimSecretTask struct { } -func (t *trimSecretTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t *trimSecretTask) Run(_ context.Context, pctx *plancontext.Context, _ *solver.Solver, v *compiler.Value) (*compiler.Value, error) { input, err := pctx.Secrets.FromValue(v.Lookup("input")) if err != nil { return nil, err diff --git a/plan/task/writefile.go b/plan/task/writefile.go index 90af30c7..6bfa7843 100644 --- a/plan/task/writefile.go +++ b/plan/task/writefile.go @@ -19,7 +19,7 @@ func init() { type writeFileTask struct { } -func (t *writeFileTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.Solver, v *compiler.Value) (*compiler.Value, error) { +func (t *writeFileTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver.Solver, v *compiler.Value) (*compiler.Value, error) { var contents []byte var err error @@ -49,19 +49,16 @@ func (t *writeFileTask) Run(ctx context.Context, pctx *plancontext.Context, s so } permissions, err := v.Lookup("permissions").Int64() - if err != nil { return nil, err } input, err := pctx.FS.FromValue(v.Lookup("input")) - if err != nil { return nil, err } inputState, err := input.State() - if err != nil { return nil, err } @@ -72,7 +69,6 @@ func (t *writeFileTask) Run(ctx context.Context, pctx *plancontext.Context, s so ) result, err := s.Solve(ctx, outputState, pctx.Platform.Get()) - if err != nil { return nil, err } @@ -80,7 +76,6 @@ func (t *writeFileTask) Run(ctx context.Context, pctx *plancontext.Context, s so outputFS := pctx.FS.New(result) output := compiler.NewValue() - if err := output.FillPath(cue.ParsePath("output"), outputFS.MarshalCUE()); err != nil { return nil, err } diff --git a/solver/solver.go b/solver/solver.go index 0bd2d384..56ee900c 100644 --- a/solver/solver.go +++ b/solver/solver.go @@ -25,19 +25,22 @@ type Solver struct { opts Opts eventsWg *sync.WaitGroup closeCh chan *bk.SolveStatus + refs []bkgw.Reference + l sync.RWMutex } type Opts struct { - Control *bk.Client - Gateway bkgw.Client - Events chan *bk.SolveStatus - Context *plancontext.Context - Auth *RegistryAuthProvider - NoCache bool + Control *bk.Client + Gateway bkgw.Client + Events chan *bk.SolveStatus + Context *plancontext.Context + Auth *RegistryAuthProvider + NoCache bool + CacheImports []bkgw.CacheOptionsEntry } -func New(opts Opts) Solver { - return Solver{ +func New(opts Opts) *Solver { + return &Solver{ eventsWg: &sync.WaitGroup{}, closeCh: make(chan *bk.SolveStatus), opts: opts, @@ -63,25 +66,25 @@ func invalidateCache(def *llb.Definition) error { return nil } -func (s Solver) GetOptions() Opts { +func (s *Solver) GetOptions() Opts { return s.opts } -func (s Solver) NoCache() bool { +func (s *Solver) NoCache() bool { return s.opts.NoCache } -func (s Solver) Stop() { +func (s *Solver) Stop() { close(s.closeCh) s.eventsWg.Wait() close(s.opts.Events) } -func (s Solver) AddCredentials(target, username, secret string) { +func (s *Solver) AddCredentials(target, username, secret string) { s.opts.Auth.AddCredentials(target, username, secret) } -func (s Solver) Marshal(ctx context.Context, st llb.State, co ...llb.ConstraintsOpt) (*bkpb.Definition, error) { +func (s *Solver) Marshal(ctx context.Context, st llb.State, co ...llb.ConstraintsOpt) (*bkpb.Definition, error) { // FIXME: do not hardcode the platform def, err := st.Marshal(ctx, co...) if err != nil { @@ -97,11 +100,11 @@ func (s Solver) Marshal(ctx context.Context, st llb.State, co ...llb.Constraints return def.ToPB(), nil } -func (s Solver) SessionID() string { +func (s *Solver) SessionID() string { return s.opts.Gateway.BuildOpts().SessionID } -func (s Solver) ResolveImageConfig(ctx context.Context, ref string, opts llb.ResolveImageConfigOpt) (dockerfile2llb.Image, digest.Digest, error) { +func (s *Solver) ResolveImageConfig(ctx context.Context, ref string, opts llb.ResolveImageConfigOpt) (dockerfile2llb.Image, digest.Digest, error) { var image dockerfile2llb.Image // Load image metadata and convert to to LLB. @@ -119,7 +122,7 @@ func (s Solver) ResolveImageConfig(ctx context.Context, ref string, opts llb.Res } // Solve will block until the state is solved and returns a Reference. -func (s Solver) SolveRequest(ctx context.Context, req bkgw.SolveRequest) (*bkgw.Result, error) { +func (s *Solver) SolveRequest(ctx context.Context, req bkgw.SolveRequest) (*bkgw.Result, error) { // makes Solve() to block until LLB graph is solved. otherwise it will // return result (that you can for example use for next build) that // will be evaluated on export or if you access files on it. @@ -131,9 +134,15 @@ func (s Solver) SolveRequest(ctx context.Context, req bkgw.SolveRequest) (*bkgw. return res, nil } +func (s *Solver) References() []bkgw.Reference { + s.l.RLock() + defer s.l.RUnlock() + return s.refs +} + // Solve will block until the state is solved and returns a Reference. // It takes a platform as argument which correspond to the targeted platform. -func (s Solver) Solve(ctx context.Context, st llb.State, platform specs.Platform) (bkgw.Reference, error) { +func (s *Solver) Solve(ctx context.Context, st llb.State, platform specs.Platform) (bkgw.Reference, error) { def, err := s.Marshal(ctx, st, llb.Platform(platform)) if err != nil { return nil, err @@ -152,19 +161,29 @@ func (s Solver) Solve(ctx context.Context, st llb.State, platform specs.Platform // call solve res, err := s.SolveRequest(ctx, bkgw.SolveRequest{ - Definition: def, + Definition: def, + CacheImports: s.opts.CacheImports, }) if err != nil { return nil, err } - return res.SingleRef() + ref, err := res.SingleRef() + if err != nil { + return nil, err + } + + s.l.Lock() + defer s.l.Unlock() + s.refs = append(s.refs, ref) + + return ref, nil } // Forward events from solver to the main events channel // It creates a task in the solver waiting group to be // sure that everything will be forward to the main channel -func (s Solver) forwardEvents(ch chan *bk.SolveStatus) { +func (s *Solver) forwardEvents(ch chan *bk.SolveStatus) { s.eventsWg.Add(1) defer s.eventsWg.Done() @@ -177,7 +196,7 @@ func (s Solver) forwardEvents(ch chan *bk.SolveStatus) { // FIXME: this is currently implemented as a hack, starting a new Build session // within buildkit from the Control API. Ideally the Gateway API should allow to // Export directly. -func (s Solver) Export(ctx context.Context, st llb.State, img *dockerfile2llb.Image, output bk.ExportEntry, platform specs.Platform) (*bk.SolveResponse, error) { +func (s *Solver) Export(ctx context.Context, st llb.State, img *dockerfile2llb.Image, output bk.ExportEntry, platform specs.Platform) (*bk.SolveResponse, error) { // Check close event channel and return if we're already done with the main pipeline select { case <-s.closeCh: diff --git a/tests/helpers.bash b/tests/helpers.bash index b5bcba91..3a90421d 100644 --- a/tests/helpers.bash +++ b/tests/helpers.bash @@ -13,6 +13,13 @@ common_setup() { DAGGER_TELEMETRY_DISABLE="1" export DAGGER_TELEMETRY_DISABLE + export DAGGER_LOG_LEVEL="debug" + if [ -n "$GITHUB_ACTIONS" ]; + then + export DAGGER_CACHE_TO="type=gha,mode=max,scope=integration-tests-$BATS_TEST_NAME" + export DAGGER_CACHE_FROM="type=gha,scope=integration-tests-$BATS_TEST_NAME" + fi + SOPS_AGE_KEY_FILE=~/.config/dagger/keys.txt export SOPS_AGE_KEY_FILE } diff --git a/tests/package.json b/tests/package.json index 94e0d7b4..b959fad7 100644 --- a/tests/package.json +++ b/tests/package.json @@ -1,7 +1,7 @@ { "license": "Apache-2.0", "scripts": { - "test": "bats --jobs 4 --show-output-of-passing-tests --print-output-on-failure ." + "test": "bats --jobs 4 --print-output-on-failure --verbose-run ." }, "devDependencies": { "bats": "https://github.com/bats-core/bats-core#master", diff --git a/tests/plan.bats b/tests/plan.bats index 8af74b72..c783daa9 100644 --- a/tests/plan.bats +++ b/tests/plan.bats @@ -144,7 +144,7 @@ setup() { cd "$TESTDIR/plan/client/filesystem/conflict" echo -n foo > test.txt - run "$DAGGER" "do" --log-level debug -p . test + run "$DAGGER" "do" -p . test assert_line --regexp "client\.filesystem\..+\.write.+dependency=client\.filesystem\..+\.read" rm -f test.txt @@ -221,4 +221,4 @@ setup() { # Run with invalid platform run "$DAGGER" "do" -p./plan/platform/config_platform_failure_invalid_platform.cue verify assert_failure -} +} \ No newline at end of file diff --git a/tests/project.bats b/tests/project.bats index 111c073e..65574fe3 100644 --- a/tests/project.bats +++ b/tests/project.bats @@ -25,6 +25,6 @@ setup() { test -f ./cue.mod/pkg/.gitattributes run cat ./cue.mod/pkg/.gitattributes assert_output --partial "generated by dagger" - + test ! -f ./cue.mod/pkg/.gitignore } From 7263f326ba5e1ae515b03b84be27701a249de308 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 31 Mar 2022 19:30:42 +0000 Subject: [PATCH 08/22] build(deps): bump sass from 1.49.9 to 1.49.10 in /website Bumps [sass](https://github.com/sass/dart-sass) from 1.49.9 to 1.49.10. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.49.9...1.49.10) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- website/package.json | 2 +- website/yarn.lock | 15 +++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/website/package.json b/website/package.json index b11bf4be..6ea69163 100644 --- a/website/package.json +++ b/website/package.json @@ -31,7 +31,7 @@ "react-dom": "^17.0.1", "react-social-login-buttons": "^3.6.0", "remark-code-import": "^0.4.0", - "sass": "^1.49.9", + "sass": "^1.49.10", "url-loader": "^4.1.1" }, "browserslist": { diff --git a/website/yarn.lock b/website/yarn.lock index 06139b44..fffb2560 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -8098,10 +8098,10 @@ sass-loader@^10.1.1: schema-utils "^3.0.0" semver "^7.3.2" -sass@^1.49.9: - version "1.49.9" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.9.tgz#b15a189ecb0ca9e24634bae5d1ebc191809712f9" - integrity sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A== +sass@^1.49.10: + version "1.49.10" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.10.tgz#7b83cee0f03bbba443111b3f94944fde2b0c7a6b" + integrity sha512-w37zfWJwKu4I78U4z63u1mmgoncq+v3iOB4yzQMPyAPVHHawaQSnu9C9ysGQnZEhW609jkcLioJcMCqm75JMdg== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -8398,12 +8398,7 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -"source-map-js@>=0.6.2 <2.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" - integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== - -source-map-js@^1.0.2: +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== From e50a61d63755a4a955c2a6535a865773e2ac01d5 Mon Sep 17 00:00:00 2001 From: Andrea Luzzardi Date: Thu, 31 Mar 2022 13:30:16 -0700 Subject: [PATCH 09/22] ci: add CODEOWNERS CODEOWNERS is a tool to encode PR approval rules. When a PR is opened, at least one code owner is required to approve it before being merged. It does **not**: - Limit reviewers: Everyone is welcome and encouraged to review any PR. But at least one CODEOWNER must approve before merging. - Limit contributions or ownership: Every maintainer is responsible for the entire project. CODEOWNERs are there to review PRs for consistency. By default, any maintainer can approve any PR. There's a couple of exceptions for consistency/specialty: - Core API: The core API must be consistent and changes are hard to reverse - Universe API: Similar to the Core API, it must be kept consistent. In the future, we will have specialized code owners (e.g. universe/aws) - Docs website: Requires specialized (frontend) skills to maintain for visual consistency. Signed-off-by: Andrea Luzzardi --- CODEOWNERS | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000..42fe99a4 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,29 @@ +# CODEOWNERS is a tool to encode PR approval rules. +# +# When a PR is opened, at least one code owner is required to approve it +# before being merged. +# +# It does **not**: +# +# - Limit reviewers: Everyone is welcome and encouraged to review any PR. +# But at least one CODEOWNER must approve before merging. +# +# - Limit contributions or ownership: Every maintainer is responsible for +# the entire project. CODEOWNERs are there to review PRs for +# consistency. +# +# By default, any maintainer can approve any PR. There's a couple of +# exceptions for consistency/specialty. + +# Default owners for everything in the repo +# Later matches takes precedence +* @dagger/maintainers + +# Core CUE API +/pkg/dagger.io/ @helderco @shykes + +# Universe +/pkg/universe.dagger.io/ @helderco @shykes + +# Documentation website +/website/ @slumbering From 66153c6194bcc1cd7783da7bbb8ddf516227bb82 Mon Sep 17 00:00:00 2001 From: Marcos Lilljedahl Date: Thu, 31 Mar 2022 19:31:14 -0300 Subject: [PATCH 10/22] Prevents files to be used as input of dagger.#FS Errors out in the PreRun phase of the clientfilesystemreader task since otherwise, dagger execution would hang Fixes #1977 Signed-off-by: Marcos Lilljedahl --- plan/task/clientfilesystemread.go | 7 ++++--- tests/plan.bats | 9 +++++++++ tests/plan/client/filesystem/read/fs/invalid/test.cue | 11 +++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 tests/plan/client/filesystem/read/fs/invalid/test.cue diff --git a/plan/task/clientfilesystemread.go b/plan/task/clientfilesystemread.go index 0ec37f1a..6ef5a32d 100644 --- a/plan/task/clientfilesystemread.go +++ b/plan/task/clientfilesystemread.go @@ -18,8 +18,7 @@ func init() { Register("ClientFilesystemRead", func() Task { return &clientFilesystemReadTask{} }) } -type clientFilesystemReadTask struct { -} +type clientFilesystemReadTask struct{} func (t clientFilesystemReadTask) PreRun(_ context.Context, pctx *plancontext.Context, v *compiler.Value) error { path, err := t.parsePath(v) @@ -27,8 +26,10 @@ func (t clientFilesystemReadTask) PreRun(_ context.Context, pctx *plancontext.Co return err } - if _, err := os.Stat(path); errors.Is(err, os.ErrNotExist) { + if pi, err := os.Stat(path); errors.Is(err, os.ErrNotExist) { return fmt.Errorf("path %q does not exist", path) + } else if !pi.IsDir() && plancontext.IsFSValue(v.Lookup("contents")) { + return fmt.Errorf("path %q is not a directory", path) } if plancontext.IsFSValue(v.Lookup("contents")) { diff --git a/tests/plan.bats b/tests/plan.bats index c783daa9..78a6cc66 100644 --- a/tests/plan.bats +++ b/tests/plan.bats @@ -84,6 +84,15 @@ setup() { assert_output --partial 'path "/foobar" does not exist' } + +@test "plan/client/filesystem/read/fs/invalid" { + cd "$TESTDIR/plan/client/filesystem/read/fs/invalid" + + run "$DAGGER" "do" -p . test + assert_failure + assert_output --partial 'test.txt" is not a directory' +} + @test "plan/client/filesystem/read/fs/relative" { cd "$TESTDIR/plan/client/filesystem/read/fs/relative" diff --git a/tests/plan/client/filesystem/read/fs/invalid/test.cue b/tests/plan/client/filesystem/read/fs/invalid/test.cue new file mode 100644 index 00000000..155203eb --- /dev/null +++ b/tests/plan/client/filesystem/read/fs/invalid/test.cue @@ -0,0 +1,11 @@ +package main + +import ( + "dagger.io/dagger" +) + +dagger.#Plan & { + client: filesystem: "../rootfs/test.txt": read: contents: dagger.#FS + actions: test: { + } +} From c09fe2520b957619abfb16df6dce3fc42069012a Mon Sep 17 00:00:00 2001 From: Sam Alba Date: Thu, 31 Mar 2022 16:39:39 -0700 Subject: [PATCH 11/22] docs: Remove curl dependency when installing on Windows Signed-off-by: Sam Alba --- docs/getting-started/1200-local-dev.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/docs/getting-started/1200-local-dev.md b/docs/getting-started/1200-local-dev.md index 5ed0166f..1423c3ba 100644 --- a/docs/getting-started/1200-local-dev.md +++ b/docs/getting-started/1200-local-dev.md @@ -209,13 +209,10 @@ It becomes even more obvious when the change is not as straightforward as knowin -We assume that you have [curl](https://curl.se/windows/) installed. -If you do, you can install `dagger` with a few commands. From a powershell terminal, run: +From a powershell terminal, run: ```shell -curl https://dl.dagger.io/dagger/install.ps1 -OutFile install.ps1 -./install.ps1 -rm install.ps1 +Invoke-WebRequest -UseBasicParsing -Uri https://dl.dagger.io/dagger/install.ps1 | Invoke-Expression ``` We try to move the dagger binary under `C:\Windows\System32` but From 57770d347f5da3d7116f85b7ebee428c154e85b0 Mon Sep 17 00:00:00 2001 From: Andrea Luzzardi Date: Thu, 31 Mar 2022 18:13:49 -0700 Subject: [PATCH 12/22] copy: support for include/exclude Signed-off-by: Andrea Luzzardi --- pkg/dagger.io/dagger/core/fs.cue | 4 ++++ pkg/universe.dagger.io/docker/build.cue | 6 ++++++ plan/task/copy.go | 27 ++++++++++++++++++------- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/pkg/dagger.io/dagger/core/fs.cue b/pkg/dagger.io/dagger/core/fs.cue index 77efee8c..3aa35479 100644 --- a/pkg/dagger.io/dagger/core/fs.cue +++ b/pkg/dagger.io/dagger/core/fs.cue @@ -76,6 +76,10 @@ import "dagger.io/dagger" source: string | *"/" // Destination path (optional) dest: string | *"/" + // Optionally exclude certain files + include: [...string] + // Optionally include certain files + exclude: [...string] // Output of the operation output: dagger.#FS } diff --git a/pkg/universe.dagger.io/docker/build.cue b/pkg/universe.dagger.io/docker/build.cue index d578e79e..9ffddd19 100644 --- a/pkg/universe.dagger.io/docker/build.cue +++ b/pkg/universe.dagger.io/docker/build.cue @@ -45,6 +45,10 @@ import ( contents: dagger.#FS source: string | *"/" dest: string | *"/" + // Optionally exclude certain files + include: [...string] + // Optionally include certain files + exclude: [...string] // Execute copy operation _copy: core.#Copy & { @@ -52,6 +56,8 @@ import ( "contents": contents "source": source "dest": dest + "include": include + "exclude": exclude } output: #Image & { diff --git a/plan/task/copy.go b/plan/task/copy.go index 172cb064..f2c759d7 100644 --- a/plan/task/copy.go +++ b/plan/task/copy.go @@ -49,18 +49,31 @@ func (t *copyTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver return nil, err } + var filters struct { + Include []string + Exclude []string + } + + if err := v.Decode(&filters); err != nil { + return nil, err + } + + // FIXME: allow more configurable llb options + // For now we define the following convenience presets. + opts := &llb.CopyInfo{ + CopyDirContentsOnly: true, + CreateDestPath: true, + AllowWildcard: true, + IncludePatterns: filters.Include, + ExcludePatterns: filters.Exclude, + } + outputState := inputState.File( llb.Copy( contentsState, sourcePath, destPath, - // FIXME: allow more configurable llb options - // For now we define the following convenience presets: - &llb.CopyInfo{ - CopyDirContentsOnly: true, - CreateDestPath: true, - AllowWildcard: true, - }, + opts, ), withCustomName(v, "Copy %s %s", sourcePath, destPath), ) From b68fc6f57b853be45a99710a4802c1a0171556e9 Mon Sep 17 00:00:00 2001 From: kgb33 Date: Thu, 31 Mar 2022 20:31:39 -0700 Subject: [PATCH 13/22] Copied Dagger vs documentation to Europa. Signed-off-by: kgb33 --- docs/getting-started/1220-vs.md | 47 +++++++++++++++++++++++++++++++++ website/sidebars.js | 2 +- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 docs/getting-started/1220-vs.md diff --git a/docs/getting-started/1220-vs.md b/docs/getting-started/1220-vs.md new file mode 100644 index 00000000..16b85f1a --- /dev/null +++ b/docs/getting-started/1220-vs.md @@ -0,0 +1,47 @@ +--- +slug: /1220/vs +displayed_sidebar: europa +--- + +# Dagger vs. Other Software + +## Dagger vs. CI (Github Actions, Gitlab, CircleCI, Jenkins, etc.) + +Dagger does not replace your CI: it improves it by adding a portable development layer on top of it. + +* Dagger runs on all major CI products. This *reduces CI lock-in*: you can change CI without rewriting all your pipelines. +* Dagger also runs on your dev machine. This allows *dev/CI parity*: the same pipelines can be used in CI and development. + +## Dagger vs. PaaS (Heroku, Firebase, etc.) + +Dagger is not a PaaS, but you can use it to add PaaS-like features to your CICD pipelines: + +* A simple deployment abstraction for the developer +* A catalog of possible customizations, managed by the platform team +* On-demand staging or development environments + +Using Dagger is a good way to get many of the benefits of a PaaS (developer productivity and peace of mind), +without giving up the benefits of custom CICD pipelines (full control over your infrastructure and tooling). + +## Dagger vs. artisanal deploy scripts + +Most applications have a custom deploy script that usually gets the job done, but is painful to change and troubleshoot. + +Using Dagger, you have two options: + +1. You can *replace* your script with a DAG that is better in every way: more features, more reliable, faster, easier to read, improve, and debug. +2. You can *extend* your script by wrapping it, as-is, into a DAG. This allows you to start using Dagger right away, and worry about rewrites later. + +## Dagger vs. Infrastructure as Code (Terraform, Pulumi, Cloudformation, CDK) + +Dagger is the perfect complement to an IaC tool. + +* IaC tools help infrastructure teams answer questions like: what is the current state of my infrastructure? What is its desired state? And how do I get there? +* Dagger helps CICD teams answer question like: what work needs to be done to deliver my application, in what order, and how do I orchestrate it? + +It is very common for a Dagger configuration to integrate with at least one IaC tool. + +## Dagger vs. Build Systems (Make, Maven, Bazel, Npm/Yarn, Docker Build, etc.) + +Dagger is complementary to build systems. Most Dagger configurations involve integrating with at least one specialized build. +If several build systems are involved, Dagger helps integrate them into a unified graph. diff --git a/website/sidebars.js b/website/sidebars.js index 8c9cb7ba..03dcee90 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -83,7 +83,7 @@ module.exports = { type: 'doc', id: 'getting-started/index' }, - items: ["getting-started/local-dev", "getting-started/ci-environment"], + items: ["getting-started/local-dev", "getting-started/ci-environment", "getting-started/vs"], }, { type: "category", From f437d8a7d1cfab6afe176c7ac7f0a9f8f625f3cd Mon Sep 17 00:00:00 2001 From: jffarge Date: Fri, 1 Apr 2022 11:18:31 +0200 Subject: [PATCH 14/22] website: update favicon Signed-off-by: jffarge --- website/static/img/favicon.png | Bin 3895 -> 4789 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/website/static/img/favicon.png b/website/static/img/favicon.png index e86f09f4764aa41f96a7bb6c34d769c506f2f666..a890acb4a8733e2e361ea79a4a9f76e18f806cc6 100644 GIT binary patch delta 2639 zcma)+`9Bkk1IK5Z+nmcSBX=9y%nZ42E1DzAQEaZ6*o23#YL4bX?kjnaO7dtlM949@ zazCj?QW5fys|ocap8kO6hwta7&+Gle=k@vg@_BN+MKccv6!ywD&C)T}Mc21pzNWnzj#nWE8+8{|B1o*M5&9$&RVWFP z|4(iPGSa|>kb{DdC=&!3ZA?NKqcFyZKnxCxK$1z=AS9ZMMWI6qi$HoB#>QA&kfBL1 z0*f*xBT#`DB!Yy*Vi4${5JMc&7>E01nm>Z-L4|Al#|ozf)SUjGXm!}-82h*w)8E2^ zBhA%+jryl)^|Fh z^!=>#d5Xt*BUX7g)2*$vG$|6rfvjX{kD^BR(6L4|)k!%vvx&7T;dtZp1GOtm%80MN zKNJl82-%PR@Z0TXRqF0g`^`M3RpaLUF%#-f?*3Co&+d=L?)ZssR9LkUAhfD(gvr*VMH9o>c6+zCQ^WVLh=5}<8@LKA|7BhVG2ZO<2F zov+I#M$jEpJ=7bqwlagA}I6KcEV zfmHb1o9w{W30_#8!Ncc6m-nw#=dmcU1od`KQ&Kob6q)qi*aDR^M~Cz;?o}Kp~fOUiCE3QRYm=Q0_p55f-c&n(PWRFM*t2b zZ>-dC_>POR-xIZm_57WuN(B5k&G&_0qvnXOyuOY=D|miL5~K@g+wd|ln9v=CZSS-{P8MBgsaEZ4Ju zU6-N{k9LhGae##<2D<$9B_7yfskTfsj_8xs2ROmnJk92czR5$DRFp(P0R4+@@jKl}*jJ=$GeO#XQZQ$^mOQM!uI-Rv3oo;gM?rtTI?E$H z%WJ*=z3VVC*D{HY$+-w{0zni@#jD|x0|Fw<%B`*Y7hO`@%E}knwo0c!krDB0-2-2h z{3csQr)gD^>}jtcM1Yu<5dJWFkDtLMB@=~RgRGVe6-$He37NBVn%bLbO$z0Ye-Fzx z5?K5J&8?{Z+;tWFpiIhrDu6ua0ppKx`RH` znkfBrHX-YasNFjY<{2}c?w9Fp|DYj$q}06iZ>X=|d9kIDs>L*GC_Pk;z;M)Fm9l-F zqjYBH;*kS>@wfwbf8qW8W=d4JwumeHpk}fuvQPE`<6(Yg;I5}ZxouMvMDJGraL8Zn z5xNI~={)xsPcK@8FX-bM9)ko>3GHxfPOr^S!+uy|qS;|`s+~&34AMrK8FnUYes92| zcHMVkrKEoO=c3B`dv@6tL;q=s@smxph{%O+FDFU&gkC6WFD^h7ov!h~O=QQwRLSB| zSc51x9I_hb zz9v7IT^G9YRPakdr0%k{6;VgJ{M4DZ+=?Q%+o#7{E;kOsTmUQqhU=d}(Zo^eQ5D4( z^y1dJqR$`Wbtj&X^CmiuM7T|84cmYg+&GJzx zSILGdkgdD+{~NLgIi5|SL}|-fYswt)UuhVZx0F{_%XeW1{}7Dn7$2)d9cPb~V+yW6 zY;5%wFDIK*|FB7B)INOr1Qe$iV42k4Y7Cddh~jccPDd`!Yl!>dCtmh^r#2j}^|20@ zZ&(#{%!+h+0^fRc$e{@$!4o-K(;TIA7~y(9>fGn%mLn-g7l!e=nX6h>+j6g5TSB-f zNRPC6?QaF1LN4!08A<+5g}X#HBt}pKUM(#SC!HO!ouRk|O~j)O z*PXy-{H!d!%x5CR6I9PJ4QOB6L!Hl^(aXGp?9i|3cH{JV2*;`7^P(YxL@}F$<7vB) z+HuFPj~GbhsF(eX*1BrxcN*ZIa!=+U>2}7r5?e=i_)jm!`&mB?|5=S}PR;w5+s<~8 z#X8Ze+xdPass)z_%|}iy+&$wHu6FqjxjqG31`Z2OE<9v zZ2ovfi#lOdz@A1$DZ&?&bFCJ27dKY~%i&jF`1I$cUk`T_qkXY#%Ej|+XR~Erid#!F zBgjXoQnUfY^^TY;6u7s2%GTfh`94?6B>LHWcqZpbl8}Yoa3<%R_fE0x1J94+0yoDU zPtL^Q@bbE8ufSg)2`QK(0|v?sgFFNzxmzQs&erD#jsEak?*~~@7I%)7TzqHae_OJr zinv#(+`|~q{LIIejz5fu^`F16osb-A%DC$6<;|JgS`XP=lJr(ehquXs<2r8#j{$BQ z8F--*(kHVaTj2Cyau2Y5{<(>r3{OV>P6U_* zycTaUGxRP?pTF{PNxMJ4T5*!@J+kaLylID)Lr7IG@q1}=xp@@gCN_V_uT9y)us)Q} z7jKB4xn!diOot{WALES50l!y2RpU%2MJbIgGXWooG^1BVzMa?Y%}P8jiC0+I5r%v5 zKFR~u^SbkNm#$AKaVT(AHO3&6?;^MXkT#IU(k(XcsJ6JFt}M{XX8`zYDc&}H2-#N{ V8Lqt{@E!0=&i1Z$4K@KO{{qtioq=H7om-!6$Pnjp=zoGs9J)G8cj65_+SXpsL{kkgYm&c;ejUB zAYegbD-V@cyv8;yghK88;!HEsPCL`-oO5RO*=O&)J|E5$rJY`Q!bJWLd%vu`)^Gj4 zZ+(C3+oGzxl`?PX>Td)5F91kK#|@y+dhUwS*)3_sXMG$wo{e87;zT{O~)dIP#;=< zXY%mp*2Xv9yfC9!Qm`{8$UzbbM^Ae^_1k}7Y}1SW<0FyzaXHY5s{+iKx8w=e+4hCZ z7>sjBBUMwc?;(nxaL#S2Mke>(#py2}{c7~FmCF;zfQI1QjBztE2Ep(t5tsu z@xas|-sSk_i^Z{@?#Zny2DatHF?^bB{7X6J2_wdN*LD>V{i&_u{6*0bly5L zod*hk*Yj*u?sez?*tK4c}b%9W#6!RTEc&l6R@J} z*jHr7{t^Ro6BhQy7(m_CLBv3MUP#B4*1R%Q_4@ua5pk^OOfo#CqfKl<4QITfd}VflmFe};CbIL_y(sg z{xD9>`1;$b_V*7A@#((vM5%wlcp#$u?1eTy`27Vu_18AUS8V7mS2zK1ar2!j^p+h3 zpFVdH^(6qtP{ta+eR;;lkDp@GttYvuC1xtM0^SPRm4JQVb5t_pV=S&Ft7|? z5g>IEl?&YU$vYeGAO(K}>^z~7w{%7c>*iKi)jiGNbikoXNDwGVB5eO>k>_@|P>DQl zDkroKCNuYiQ1D^PkwCZq%RdlWc3u&{8aRE^R$sUn+?eAWKoFdEisPky!zZfyqdA?%(gN zTGtu(=Y4RYAYL=WQ7{Ft?Lu-6qG_S%J3cgbiuL^!mbJyi&QM7$8HQAwRXocDXg-Gq zKAH=~TC<|rl3hmChVj zd!l?kD2KhyS~3xIrtLFE$W2y;XLaC$LQCbK|mUOvy_Li~^E10v9R1b`KCk~C9zn__sUk6r?2KJh! gMc)25{J#hIH=n7&vn*KYGynhq07*qoM6N<$f^>0Zvj6}9 From df6dfa12ad11c6941fbe9a3887100fa173fd6d42 Mon Sep 17 00:00:00 2001 From: jffarge Date: Fri, 1 Apr 2022 16:19:37 +0200 Subject: [PATCH 15/22] website: remove navbar schedule link Signed-off-by: jffarge --- website/docusaurus.config.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 22640665..010a9c68 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -47,12 +47,6 @@ module.exports = { className: "header-github-link hide-target-icon", "aria-label": "GitHub repository", }, - { - position: "right", - label: "Schedule a demo", - href: "https://savvycal.com/dagger/meet", - className: "button", - }, ], hideOnScroll: true, }, From 4074b5d264dffe297c4ebd6d3e847ae076013787 Mon Sep 17 00:00:00 2001 From: David Flanagan Date: Fri, 7 Jan 2022 13:30:37 +0000 Subject: [PATCH 16/22] feat: add Pulumi support Signed-off-by: David Flanagan --- .../x/david@rawkode.dev/pulumi/example.cue | 29 +++++++ .../x/david@rawkode.dev/pulumi/pulumi.cue | 81 +++++++++++++++++++ .../x/david@rawkode.dev/pulumi/up.sh | 40 +++++++++ 3 files changed, 150 insertions(+) create mode 100644 pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/example.cue create mode 100644 pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/pulumi.cue create mode 100644 pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/up.sh diff --git a/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/example.cue b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/example.cue new file mode 100644 index 00000000..c3f406ae --- /dev/null +++ b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/example.cue @@ -0,0 +1,29 @@ +package rawkode_pulumi_example + +import ( + "dagger.io/dagger" + "universe.dagger.io/x/david@rawkode.dev/pulumi" +) + +dagger.#Plan & { + client: { + filesystem: { + "./": read: { + contents: dagger.#FS + } + } + env: { + PULUMI_CONFIG_PASSPHRASE: dagger.#Secret + PULUMI_ACCESS_TOKEN: dagger.#Secret + } + } + actions: { + rawkode: pulumi.#Up & { + stack: "test" + stackCreate: true + runtime: "nodejs" + accessToken: client.env.PULUMI_ACCESS_TOKEN + source: client.filesystem."./".read.contents + } + } +} diff --git a/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/pulumi.cue b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/pulumi.cue new file mode 100644 index 00000000..d477e7d3 --- /dev/null +++ b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/pulumi.cue @@ -0,0 +1,81 @@ +// Run a Pulumi program +package pulumi + +import ( + "dagger.io/dagger" + "dagger.io/dagger/core" + "universe.dagger.io/docker" + "universe.dagger.io/bash" +) + +// Run a `pulumi up` +#Up: { + // Source code of Pulumi program + source: dagger.#FS + + // Pulumi version + version: string | *"latest" + + // Pulumi runtime used for this Pulumi program + runtime: "dotnet" | "go" | "nodejs" | "python" + + // Name of your Pulumi stack + // Example: "production" + stack: string + + // Create the stack if it doesn't exist + stackCreate: *false | true + + // API token if you want to use Pulumi SaaS state backend + accessToken?: dagger.#Secret + + // Passphrase if you want to use local state backend (Cached by Dagger in buildkit) + passphrase?: dagger.#Secret + + // Build a docker image to run the netlify client + _pull_image: docker.#Pull & { + source: "pulumi/pulumi-\(runtime):\(version)" + } + + // Run Pulumi up + container: bash.#Run & { + input: *_pull_image.output | docker.#Image + script: { + _load: core.#Source & { + path: "." + include: ["*.sh"] + } + directory: _load.output + filename: "up.sh" + } + env: { + PULUMI_STACK: stack + PULUMI_RUNTIME: runtime + + if true == stackCreate { + PULUMI_STACK_CREATE: "1" + } + + if passphrase != _|_ { + PULUMI_CONFIG_PASSPHRASE: passphrase + } + if accessToken != _|_ { + PULUMI_ACCESS_TOKEN: accessToken + } + } + workdir: "/src" + mounts: { + "src": { + dest: "/src" + contents: source + } + "node_modules": { + dest: "/src/node_modules" + type: "cache" + contents: core.#CacheDir & { + id: "pulumi-npm-cache" + } + } + } + } +} diff --git a/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/up.sh b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/up.sh new file mode 100644 index 00000000..1652c1af --- /dev/null +++ b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/up.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +set -xeo pipefail + +if test -v PULUMI_CONFIG_PASSPHRASE || test -v PULUMI_CONFIG_PASSPHRASE_FILE; then + echo "PULUMI_CONFIG_PASSPHRASE is set, using a local login" + pulumi login --local +fi + +# Using Pulumi SaaS +# We need to check for an existing stack with the name +# If it exists, refresh the config +# If it doesn't, create the stack +if test -v PULUMI_ACCESS_TOKEN; then + if (pulumi stack ls | grep -e "^${STACK_NAME}"); then + echo "Stack exists, let's refresh" + pulumi stack select ${PULUMI_STACK} + # Could be first deployment, so let's not worry about this failing + pulumi config refresh --force || true + else + echo "Stack does not exist, let's create" + pulumi stack init ${PULUMI_STACK} + fi +else + # Not using Pulumi SaaS, relying on local stack files + if test -v PULUMI_STACK_CREATE && test ! -f Pulumi.${PULUMI_STACK}.yaml; then + pulumi stack init ${PULUMI_STACK} + fi +fi + +case $PULUMI_RUNTIME in + nodejs) + npm install + ;; + + *) + echo -n "unknown" + ;; +esac + +pulumi up --stack ${PULUMI_STACK} --yes From 7ffbef33b5110f2321dcef0cf297e1e1569e1440 Mon Sep 17 00:00:00 2001 From: Marcos Lilljedahl Date: Fri, 1 Apr 2022 13:00:41 -0300 Subject: [PATCH 17/22] Report error if FS is incorrectly handled on client filesystem read Signed-off-by: Marcos Lilljedahl --- plan/task/clientfilesystemread.go | 9 ++++++-- tests/plan.bats | 15 ++++++++++--- .../fs/{invalid => invalid_fs_input}/test.cue | 1 + .../read/fs/invalid_fs_type/test.cue | 21 +++++++++++++++++++ 4 files changed, 41 insertions(+), 5 deletions(-) rename tests/plan/client/filesystem/read/fs/{invalid => invalid_fs_input}/test.cue (72%) create mode 100644 tests/plan/client/filesystem/read/fs/invalid_fs_type/test.cue diff --git a/plan/task/clientfilesystemread.go b/plan/task/clientfilesystemread.go index 6ef5a32d..3dc6a5e3 100644 --- a/plan/task/clientfilesystemread.go +++ b/plan/task/clientfilesystemread.go @@ -26,10 +26,15 @@ func (t clientFilesystemReadTask) PreRun(_ context.Context, pctx *plancontext.Co return err } - if pi, err := os.Stat(path); errors.Is(err, os.ErrNotExist) { + isFS := plancontext.IsFSValue(v.Lookup("contents")) + + switch pi, err := os.Stat(path); { + case errors.Is(err, os.ErrNotExist): return fmt.Errorf("path %q does not exist", path) - } else if !pi.IsDir() && plancontext.IsFSValue(v.Lookup("contents")) { + case !pi.IsDir() && isFS: return fmt.Errorf("path %q is not a directory", path) + case pi.IsDir() && !isFS: + return fmt.Errorf("path %q cannot be a directory", path) } if plancontext.IsFSValue(v.Lookup("contents")) { diff --git a/tests/plan.bats b/tests/plan.bats index 78a6cc66..69692a71 100644 --- a/tests/plan.bats +++ b/tests/plan.bats @@ -85,14 +85,23 @@ setup() { } -@test "plan/client/filesystem/read/fs/invalid" { - cd "$TESTDIR/plan/client/filesystem/read/fs/invalid" +@test "plan/client/filesystem/read/fs/invalid_fs_input" { + cd "$TESTDIR/plan/client/filesystem/read/fs/invalid_fs_input" run "$DAGGER" "do" -p . test assert_failure assert_output --partial 'test.txt" is not a directory' } + +@test "plan/client/filesystem/read/fs/invalid_fs_type" { + cd "$TESTDIR/plan/client/filesystem/read/fs/invalid_fs_type" + + run "$DAGGER" "do" -p . test + assert_failure + assert_output --partial 'rootfs" cannot be a directory' +} + @test "plan/client/filesystem/read/fs/relative" { cd "$TESTDIR/plan/client/filesystem/read/fs/relative" @@ -230,4 +239,4 @@ setup() { # Run with invalid platform run "$DAGGER" "do" -p./plan/platform/config_platform_failure_invalid_platform.cue verify assert_failure -} \ No newline at end of file +} diff --git a/tests/plan/client/filesystem/read/fs/invalid/test.cue b/tests/plan/client/filesystem/read/fs/invalid_fs_input/test.cue similarity index 72% rename from tests/plan/client/filesystem/read/fs/invalid/test.cue rename to tests/plan/client/filesystem/read/fs/invalid_fs_input/test.cue index 155203eb..e35685e8 100644 --- a/tests/plan/client/filesystem/read/fs/invalid/test.cue +++ b/tests/plan/client/filesystem/read/fs/invalid_fs_input/test.cue @@ -5,6 +5,7 @@ import ( ) dagger.#Plan & { + // Reading a file into a dagger.#FS should not be possbile client: filesystem: "../rootfs/test.txt": read: contents: dagger.#FS actions: test: { } diff --git a/tests/plan/client/filesystem/read/fs/invalid_fs_type/test.cue b/tests/plan/client/filesystem/read/fs/invalid_fs_type/test.cue new file mode 100644 index 00000000..0730ed64 --- /dev/null +++ b/tests/plan/client/filesystem/read/fs/invalid_fs_type/test.cue @@ -0,0 +1,21 @@ +package main + +import ( + "dagger.io/dagger" + "dagger.io/dagger/core" +) + +dagger.#Plan & { + // Reading a directory into a non-fs should fail + client: filesystem: "../rootfs": read: contents: string + actions: { + image: core.#Pull & { + source: "alpine:3.15.0@sha256:e7d88de73db3d3fd9b2d63aa7f447a10fd0220b7cbf39803c803f2af9ba256b3" + } + test: core.#Exec & { + input: image.output + args: ["test", client.filesystem."../rootfs".read.contents] + } + + } +} From 20b6d82532779ecb95ca59e00ef6281a4ea3b4ff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Apr 2022 19:14:32 +0000 Subject: [PATCH 18/22] build(deps): bump amplitude-js from 8.17.0 to 8.18.0 in /website Bumps [amplitude-js](https://github.com/amplitude/amplitude-javascript) from 8.17.0 to 8.18.0. - [Release notes](https://github.com/amplitude/amplitude-javascript/releases) - [Changelog](https://github.com/amplitude/Amplitude-JavaScript/blob/main/CHANGELOG.md) - [Commits](https://github.com/amplitude/amplitude-javascript/compare/v8.17.0...v8.18.0) --- updated-dependencies: - dependency-name: amplitude-js dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- website/package.json | 2 +- website/yarn.lock | 786 ++++++++++++++----------------------------- 2 files changed, 246 insertions(+), 542 deletions(-) diff --git a/website/package.json b/website/package.json index 7d2c0cb2..bd60f09b 100644 --- a/website/package.json +++ b/website/package.json @@ -20,7 +20,7 @@ "@docusaurus/preset-classic": "^2.0.0-beta.18", "@mdx-js/react": "^1.6.22", "@svgr/webpack": "^6.2.1", - "amplitude-js": "^8.17.0", + "amplitude-js": "^8.18.0", "clsx": "^1.1.1", "docusaurus-plugin-sass": "^0.2.2", "docusaurus2-dotenv": "^1.4.0", diff --git a/website/yarn.lock b/website/yarn.lock index fffb2560..29ba5c67 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -28,22 +28,22 @@ dependencies: "@algolia/cache-common" "4.11.0" -"@algolia/cache-browser-local-storage@4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.12.2.tgz#62935ddb81b50d539111b2146fa340495ec1cd53" - integrity sha512-z8LjFsQc0B6h6LEE3pkUGM4ErVktn6bkFbhnYbTccjmFVQ+wXFJd/D63e0WtaC+hwRB1xq8uKhkz9oojEKEsGA== +"@algolia/cache-browser-local-storage@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.13.0.tgz#f8aa4fe31104b19d616ea392f9ed5c2ea847d964" + integrity sha512-nj1vHRZauTqP/bluwkRIgEADEimqojJgoTRCel5f6q8WCa9Y8QeI4bpDQP28FoeKnDRYa3J5CauDlN466jqRhg== dependencies: - "@algolia/cache-common" "4.12.2" + "@algolia/cache-common" "4.13.0" "@algolia/cache-common@4.11.0": version "4.11.0" resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.11.0.tgz#066fe6d58b18e4b028dbef9bb8de07c5e22a3594" integrity sha512-lODcJRuPXqf+6mp0h6bOxPMlbNoyn3VfjBVcQh70EDP0/xExZbkpecgHyyZK4kWg+evu+mmgvTK3GVHnet/xKw== -"@algolia/cache-common@4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.12.2.tgz#8512f311524f4d0aae8611e9879214a5e2a577ae" - integrity sha512-r//r7MF0Na0HxD2BHnjWsDKuI72Z5UEf/Rb/8MC08XKBsjCwBihGxWxycjRcNGjNEIxJBsvRMIEOipcd9qD54g== +"@algolia/cache-common@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.13.0.tgz#27b83fd3939d08d72261b36a07eeafc4cb4d2113" + integrity sha512-f9mdZjskCui/dA/fA/5a+6hZ7xnHaaZI5tM/Rw9X8rRB39SUlF/+o3P47onZ33n/AwkpSbi5QOyhs16wHd55kA== "@algolia/cache-in-memory@4.11.0": version "4.11.0" @@ -52,12 +52,12 @@ dependencies: "@algolia/cache-common" "4.11.0" -"@algolia/cache-in-memory@4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.12.2.tgz#cacd13c02a7826bfad1c391d012ce00bc5db3859" - integrity sha512-opWpbBUloP1fcTG3wBDnAfcoyNXW5GFDgGtLXrSANdfnelPKkr3O8j01ZTkRlPIuBDR0izGZG8MVWMDlTf71Bw== +"@algolia/cache-in-memory@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.13.0.tgz#10801a74550cbabb64b59ff08c56bce9c278ff2d" + integrity sha512-hHdc+ahPiMM92CQMljmObE75laYzNFYLrNOu0Q3/eyvubZZRtY2SUsEEgyUEyzXruNdzrkcDxFYa7YpWBJYHAg== dependencies: - "@algolia/cache-common" "4.12.2" + "@algolia/cache-common" "4.13.0" "@algolia/client-account@4.11.0": version "4.11.0" @@ -68,14 +68,14 @@ "@algolia/client-search" "4.11.0" "@algolia/transporter" "4.11.0" -"@algolia/client-account@4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.12.2.tgz#adc4833b78576d1558ba45b7d44be22747debdc9" - integrity sha512-HZqEyeVVjzOlfoSUyc+7+ueEJmRgqSuC+hqQOGECYa5JVno4d8eRVuDAMOb87I2LOdg/WoFMcAtaaRq2gpfV/w== +"@algolia/client-account@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.13.0.tgz#f8646dd40d1e9e3353e10abbd5d6c293ea92a8e2" + integrity sha512-FzFqFt9b0g/LKszBDoEsW+dVBuUe1K3scp2Yf7q6pgHWM1WqyqUlARwVpLxqyc+LoyJkTxQftOKjyFUqddnPKA== dependencies: - "@algolia/client-common" "4.12.2" - "@algolia/client-search" "4.12.2" - "@algolia/transporter" "4.12.2" + "@algolia/client-common" "4.13.0" + "@algolia/client-search" "4.13.0" + "@algolia/transporter" "4.13.0" "@algolia/client-analytics@4.11.0": version "4.11.0" @@ -87,15 +87,15 @@ "@algolia/requester-common" "4.11.0" "@algolia/transporter" "4.11.0" -"@algolia/client-analytics@4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.12.2.tgz#741115db1af7db9526acdd702890480480dc09ce" - integrity sha512-7ktimzesu+vk3l+eG9w/nQh6/9AoIieCKmoiRIguKh6okGsaSBrcTHvUwIQEIiliqPuAFBk2M8eXYFqOZzwCZw== +"@algolia/client-analytics@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.13.0.tgz#a00bd02df45d71becb9dd4c5c993d805f2e1786d" + integrity sha512-klmnoq2FIiiMHImkzOm+cGxqRLLu9CMHqFhbgSy9wtXZrqb8BBUIUE2VyBe7azzv1wKcxZV2RUyNOMpFqmnRZA== dependencies: - "@algolia/client-common" "4.12.2" - "@algolia/client-search" "4.12.2" - "@algolia/requester-common" "4.12.2" - "@algolia/transporter" "4.12.2" + "@algolia/client-common" "4.13.0" + "@algolia/client-search" "4.13.0" + "@algolia/requester-common" "4.13.0" + "@algolia/transporter" "4.13.0" "@algolia/client-common@4.11.0": version "4.11.0" @@ -105,13 +105,13 @@ "@algolia/requester-common" "4.11.0" "@algolia/transporter" "4.11.0" -"@algolia/client-common@4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.12.2.tgz#88ffd3ddececdc5f343a4a9cb1f6c4058fe780c1" - integrity sha512-+dTicT1lklwOpeoiDspUoRSQYHhrr2IzllrX89/WuTPEBm2eww1xurqrSTQYC0MuVeX1s9/i4k34Q0ZnspypWg== +"@algolia/client-common@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.13.0.tgz#8bc373d164dbdcce38b4586912bbe162492bcb86" + integrity sha512-GoXfTp0kVcbgfSXOjfrxx+slSipMqGO9WnNWgeMmru5Ra09MDjrcdunsiiuzF0wua6INbIpBQFTC2Mi5lUNqGA== dependencies: - "@algolia/requester-common" "4.12.2" - "@algolia/transporter" "4.12.2" + "@algolia/requester-common" "4.13.0" + "@algolia/transporter" "4.13.0" "@algolia/client-personalization@4.11.0": version "4.11.0" @@ -122,14 +122,14 @@ "@algolia/requester-common" "4.11.0" "@algolia/transporter" "4.11.0" -"@algolia/client-personalization@4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.12.2.tgz#5aa1d2a4bbc64559a98bb6d029dda59dbc86e490" - integrity sha512-JBW3vYFGIm5sAAy3cLUdmUCpmSAdreo5S1fERg7xgF6KyxGrwyy5BViTNWrOKG+av2yusk1wKydOYJ1Fbpbaxw== +"@algolia/client-personalization@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.13.0.tgz#10fb7af356422551f11a67222b39c52306f1512c" + integrity sha512-KneLz2WaehJmNfdr5yt2HQETpLaCYagRdWwIwkTqRVFCv4DxRQ2ChPVW9jeTj4YfAAhfzE6F8hn7wkQ/Jfj6ZA== dependencies: - "@algolia/client-common" "4.12.2" - "@algolia/requester-common" "4.12.2" - "@algolia/transporter" "4.12.2" + "@algolia/client-common" "4.13.0" + "@algolia/requester-common" "4.13.0" + "@algolia/transporter" "4.13.0" "@algolia/client-search@4.11.0": version "4.11.0" @@ -140,14 +140,14 @@ "@algolia/requester-common" "4.11.0" "@algolia/transporter" "4.11.0" -"@algolia/client-search@4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.12.2.tgz#940dd07ae4fa7aa86e382ecaf0a82445010b1b4c" - integrity sha512-JIqi14TgfEqAooNbSPBC1ZCk3Pnviqlaz9KofAqWBxSRTpPUFnU/XQCU5ihR0PC68SFVDnU/Y9cak/XotXPUeg== +"@algolia/client-search@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.13.0.tgz#2d8ff8e755c4a37ec89968f3f9b358eed005c7f0" + integrity sha512-blgCKYbZh1NgJWzeGf+caKE32mo3j54NprOf0LZVCubQb3Kx37tk1Hc8SDs9bCAE8hUvf3cazMPIg7wscSxspA== dependencies: - "@algolia/client-common" "4.12.2" - "@algolia/requester-common" "4.12.2" - "@algolia/transporter" "4.12.2" + "@algolia/client-common" "4.13.0" + "@algolia/requester-common" "4.13.0" + "@algolia/transporter" "4.13.0" "@algolia/events@^4.0.1": version "4.0.1" @@ -159,10 +159,10 @@ resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.11.0.tgz#bac1c2d59d29dee378b57412c8edd435b97de663" integrity sha512-pRMJFeOY8hoWKIxWuGHIrqnEKN/kqKh7UilDffG/+PeEGxBuku+Wq5CfdTFG0C9ewUvn8mAJn5BhYA5k8y0Jqg== -"@algolia/logger-common@4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.12.2.tgz#cdc9a685d7cf356a4d9e5915f741f1ee1a6baade" - integrity sha512-iOiJAymLjq137G7+8EQuUEkrgta0cZGMg6scp8s4hJ+X6k+6By4nyptdkCWYwKLsW/Xy927QcIhGlkWV78vQIQ== +"@algolia/logger-common@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.13.0.tgz#be2606e71aae618a1ff1ea9a1b5f5a74284b35a8" + integrity sha512-8yqXk7rMtmQJ9wZiHOt/6d4/JDEg5VCk83gJ39I+X/pwUPzIsbKy9QiK4uJ3aJELKyoIiDT1hpYVt+5ia+94IA== "@algolia/logger-console@4.11.0": version "4.11.0" @@ -171,12 +171,12 @@ dependencies: "@algolia/logger-common" "4.11.0" -"@algolia/logger-console@4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.12.2.tgz#d7348e41378fbab5413cb5f97d8ae2ff378cfdb8" - integrity sha512-veuQZyTSqHoHJtr9mLMnYeal9Mee6hCie4eqY+645VbeOrgT9p/kCMbKg5GLJGoLPlXGu7C0XpHyUj5k7/NQyw== +"@algolia/logger-console@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.13.0.tgz#f28028a760e3d9191e28a10b12925e48f6c9afde" + integrity sha512-YepRg7w2/87L0vSXRfMND6VJ5d6699sFJBRWzZPOlek2p5fLxxK7O0VncYuc/IbVHEgeApvgXx0WgCEa38GVuQ== dependencies: - "@algolia/logger-common" "4.12.2" + "@algolia/logger-common" "4.13.0" "@algolia/requester-browser-xhr@4.11.0": version "4.11.0" @@ -185,22 +185,22 @@ dependencies: "@algolia/requester-common" "4.11.0" -"@algolia/requester-browser-xhr@4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.12.2.tgz#abfcb1901602ccdf51879b10d914208b776aa418" - integrity sha512-FpFdHNd81tS3zj6Glqd+lt+RV0ljPExKtx+QB+gani6HWZ9YlSCM+Zl82T4ibxN+hmkrMeAyT+TMzS0jiGhGyQ== +"@algolia/requester-browser-xhr@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.13.0.tgz#e2483f4e8d7f09e27cd0daf6c77711d15c5a919f" + integrity sha512-Dj+bnoWR5MotrnjblzGKZ2kCdQi2cK/VzPURPnE616NU/il7Ypy6U6DLGZ/ZYz+tnwPa0yypNf21uqt84fOgrg== dependencies: - "@algolia/requester-common" "4.12.2" + "@algolia/requester-common" "4.13.0" "@algolia/requester-common@4.11.0": version "4.11.0" resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.11.0.tgz#d16de98d3ff72434bac39e4d915eab08035946a9" integrity sha512-+cZGe/9fuYgGuxjaBC+xTGBkK7OIYdfapxhfvEf03dviLMPmhmVYFJtJlzAjQ2YmGDJpHrGgAYj3i/fbs8yhiA== -"@algolia/requester-common@4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.12.2.tgz#6d6181fb961205695bf535e108d2e5be8f8c9047" - integrity sha512-4szj/lvDQf/u8EyyRBBRZD1ZkKDyLBbckLj7meQDlnbfwnW1UpLwpB2l3XJ9wDmDSftGxUCeTl5oMFe4z9OEvQ== +"@algolia/requester-common@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.13.0.tgz#47fb3464cfb26b55ba43676d13f295d812830596" + integrity sha512-BRTDj53ecK+gn7ugukDWOOcBRul59C4NblCHqj4Zm5msd5UnHFjd/sGX+RLOEoFMhetILAnmg6wMrRrQVac9vw== "@algolia/requester-node-http@4.11.0": version "4.11.0" @@ -209,12 +209,12 @@ dependencies: "@algolia/requester-common" "4.11.0" -"@algolia/requester-node-http@4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.12.2.tgz#f91e749ee6854c944cc741f13c539dff23363f67" - integrity sha512-UXfJNZt2KMwjBjiOa3cJ/PyoXWZa/F1vy6rdyG4xQeZDcLbqKP3O2b+bOJcGPmFbmdwBhtAyMVLt+hvAvAVfOw== +"@algolia/requester-node-http@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.13.0.tgz#7d981bbd31492f51dd11820a665f9d8906793c37" + integrity sha512-9b+3O4QFU4azLhGMrZAr/uZPydvzOR4aEZfSL8ZrpLZ7fbbqTO0S/5EVko+QIgglRAtVwxvf8UJ1wzTD2jvKxQ== dependencies: - "@algolia/requester-common" "4.12.2" + "@algolia/requester-common" "4.13.0" "@algolia/transporter@4.11.0": version "4.11.0" @@ -225,14 +225,14 @@ "@algolia/logger-common" "4.11.0" "@algolia/requester-common" "4.11.0" -"@algolia/transporter@4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.12.2.tgz#60189b626b170f3386deb1d7a0a1e70ed8156864" - integrity sha512-PUq79if4CukXsm27ymTQ3eD3juSvMcyJmt6mxCkSFE0zQRL4ert61HBlNH6S9y/quUVe3g7oggfHq3d5pdpqZA== +"@algolia/transporter@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.13.0.tgz#f6379e5329efa2127da68c914d1141f5f21dbd07" + integrity sha512-8tSQYE+ykQENAdeZdofvtkOr5uJ9VcQSWgRhQ9h01AehtBIPAczk/b2CLrMsw5yQZziLs5cZ3pJ3478yI+urhA== dependencies: - "@algolia/cache-common" "4.12.2" - "@algolia/logger-common" "4.12.2" - "@algolia/requester-common" "4.12.2" + "@algolia/cache-common" "4.13.0" + "@algolia/logger-common" "4.13.0" + "@algolia/requester-common" "4.13.0" "@amplitude/analytics-connector@1.0.0": version "1.0.0" @@ -317,7 +317,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.15.5", "@babel/core@^7.17.5", "@babel/core@^7.17.8": +"@babel/core@^7.15.5", "@babel/core@^7.17.8": version "7.17.8" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.8.tgz#3dac27c190ebc3a4381110d46c80e77efe172e1a" integrity sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ== @@ -1467,7 +1467,7 @@ "@babel/helper-validator-option" "^7.16.7" "@babel/plugin-transform-typescript" "^7.16.7" -"@babel/runtime-corejs3@^7.17.2", "@babel/runtime-corejs3@^7.17.8": +"@babel/runtime-corejs3@^7.17.8": version "7.17.8" resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz#d7dd49fb812f29c61c59126da3792d8740d4e284" integrity sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ== @@ -1475,7 +1475,7 @@ core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.17.8", "@babel/runtime@^7.3.4", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.8", "@babel/runtime@^7.3.4", "@babel/runtime@^7.8.4": version "7.17.8" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.8.tgz#3e56e4aff81befa55ac3ac6a0967349fd1c5bca2" integrity sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA== @@ -1587,86 +1587,7 @@ "@docsearch/css" "3.0.0" algoliasearch "^4.0.0" -"@docusaurus/core@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.0.0-beta.17.tgz#f631aae04405de42a428a31928998242cd1d7b77" - integrity sha512-iNdW7CsmHNOgc4PxD9BFxa+MD8+i7ln7erOBkF3FSMMPnsKUeVqsR3rr31aLmLZRlTXMITSPLxlXwtBZa3KPCw== - dependencies: - "@babel/core" "^7.17.5" - "@babel/generator" "^7.17.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-runtime" "^7.17.0" - "@babel/preset-env" "^7.16.11" - "@babel/preset-react" "^7.16.7" - "@babel/preset-typescript" "^7.16.7" - "@babel/runtime" "^7.17.2" - "@babel/runtime-corejs3" "^7.17.2" - "@babel/traverse" "^7.17.3" - "@docusaurus/cssnano-preset" "2.0.0-beta.17" - "@docusaurus/logger" "2.0.0-beta.17" - "@docusaurus/mdx-loader" "2.0.0-beta.17" - "@docusaurus/react-loadable" "5.5.2" - "@docusaurus/utils" "2.0.0-beta.17" - "@docusaurus/utils-common" "2.0.0-beta.17" - "@docusaurus/utils-validation" "2.0.0-beta.17" - "@slorber/static-site-generator-webpack-plugin" "^4.0.1" - "@svgr/webpack" "^6.2.1" - autoprefixer "^10.4.2" - babel-loader "^8.2.3" - babel-plugin-dynamic-import-node "2.3.0" - boxen "^6.2.1" - chokidar "^3.5.3" - clean-css "^5.2.4" - cli-table3 "^0.6.1" - combine-promises "^1.1.0" - commander "^5.1.0" - copy-webpack-plugin "^10.2.4" - core-js "^3.21.1" - css-loader "^6.6.0" - css-minimizer-webpack-plugin "^3.4.1" - cssnano "^5.0.17" - del "^6.0.0" - detect-port "^1.3.0" - escape-html "^1.0.3" - eta "^1.12.3" - file-loader "^6.2.0" - fs-extra "^10.0.1" - html-minifier-terser "^6.1.0" - html-tags "^3.1.0" - html-webpack-plugin "^5.5.0" - import-fresh "^3.3.0" - is-root "^2.1.0" - leven "^3.1.0" - lodash "^4.17.21" - mini-css-extract-plugin "^2.5.3" - nprogress "^0.2.0" - postcss "^8.4.7" - postcss-loader "^6.2.1" - prompts "^2.4.2" - react-dev-utils "^12.0.0" - react-helmet-async "^1.2.3" - react-loadable "npm:@docusaurus/react-loadable@5.5.2" - react-loadable-ssr-addon-v5-slorber "^1.0.1" - react-router "^5.2.0" - react-router-config "^5.1.1" - react-router-dom "^5.2.0" - remark-admonitions "^1.2.1" - rtl-detect "^1.0.4" - semver "^7.3.4" - serve-handler "^6.1.3" - shelljs "^0.8.5" - terser-webpack-plugin "^5.3.1" - tslib "^2.3.1" - update-notifier "^5.1.0" - url-loader "^4.1.1" - wait-on "^6.0.1" - webpack "^5.69.1" - webpack-bundle-analyzer "^4.5.0" - webpack-dev-server "^4.7.4" - webpack-merge "^5.8.0" - webpackbar "^5.0.2" - -"@docusaurus/core@^2.0.0-beta.18": +"@docusaurus/core@2.0.0-beta.18", "@docusaurus/core@^2.0.0-beta.18": version "2.0.0-beta.18" resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.0.0-beta.18.tgz#44c6eefe29257462df630640a35f0c86bd80639a" integrity sha512-puV7l+0/BPSi07Xmr8tVktfs1BzhC8P5pm6Bs2CfvysCJ4nefNCD1CosPc1PGBWy901KqeeEJ1aoGwj9tU3AUA== @@ -1745,15 +1666,6 @@ webpack-merge "^5.8.0" webpackbar "^5.0.2" -"@docusaurus/cssnano-preset@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.17.tgz#f687bc6e5c8cb2139a7830dec757cfcb92dbb681" - integrity sha512-DoBwtLjJ9IY9/lNMHIEdo90L4NDayvU28nLgtjR2Sc6aBIMEB/3a5Ndjehnp+jZAkwcDdNASA86EkZVUyz1O1A== - dependencies: - cssnano-preset-advanced "^5.1.12" - postcss "^8.4.7" - postcss-sort-media-queries "^4.2.1" - "@docusaurus/cssnano-preset@2.0.0-beta.18": version "2.0.0-beta.18" resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.18.tgz#235ac9064fe8f8da618349ce5305be3ed3a44e29" @@ -1763,14 +1675,6 @@ postcss "^8.4.12" postcss-sort-media-queries "^4.2.1" -"@docusaurus/logger@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-2.0.0-beta.17.tgz#89c5ace3b4efd5274adb0d8919328892c4466d02" - integrity sha512-F9JDl06/VLg+ylsvnq9NpILSUeWtl0j4H2LtlLzX5gufEL4dGiCMlnUzYdHl7FSHSzYJ0A/R7vu0SYofsexC4w== - dependencies: - chalk "^4.1.2" - tslib "^2.3.1" - "@docusaurus/logger@2.0.0-beta.18": version "2.0.0-beta.18" resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-2.0.0-beta.18.tgz#12302f312a083eb018caa28505b63f5dd4ab6a91" @@ -1779,28 +1683,6 @@ chalk "^4.1.2" tslib "^2.3.1" -"@docusaurus/mdx-loader@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.17.tgz#838f87f4cbf12701c4d8eb11e4f9698fb7155bf8" - integrity sha512-AhJ3GWRmjQYCyINHE595pff5tn3Rt83oGpdev5UT9uvG9lPYPC8nEmh1LI6c0ogfw7YkNznzxWSW4hyyVbYQ3A== - dependencies: - "@babel/parser" "^7.17.3" - "@babel/traverse" "^7.17.3" - "@docusaurus/logger" "2.0.0-beta.17" - "@docusaurus/utils" "2.0.0-beta.17" - "@mdx-js/mdx" "^1.6.22" - escape-html "^1.0.3" - file-loader "^6.2.0" - fs-extra "^10.0.1" - image-size "^1.0.1" - mdast-util-to-string "^2.0.0" - remark-emoji "^2.1.0" - stringify-object "^3.3.0" - tslib "^2.3.1" - unist-util-visit "^2.0.2" - url-loader "^4.1.1" - webpack "^5.69.1" - "@docusaurus/mdx-loader@2.0.0-beta.18": version "2.0.0-beta.18" resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.18.tgz#4a9fc0607e0a210a7d7db3108415208dd36e33d3" @@ -1823,28 +1705,28 @@ url-loader "^4.1.1" webpack "^5.70.0" -"@docusaurus/module-type-aliases@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-2.0.0-beta.17.tgz#73f6d34be202ac093e78769ff72613d353087cd7" - integrity sha512-Tu+8geC/wyygBudbSwvWIHEvt5RwyA7dEoE1JmPbgQtmqUxOZ9bgnfemwXpJW5mKuDiJASbN4of1DhbLqf4sPg== +"@docusaurus/module-type-aliases@2.0.0-beta.18": + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-2.0.0-beta.18.tgz#001379229c58cbc3ed565e19437cbda86d5e8742" + integrity sha512-e6mples8FZRyT7QyqidGS6BgkROjM+gljJsdOqoctbtBp+SZ5YDjwRHOmoY7eqEfsQNOaFZvT2hK38ui87hCRA== dependencies: - "@docusaurus/types" "2.0.0-beta.17" + "@docusaurus/types" "2.0.0-beta.18" "@types/react" "*" "@types/react-router-config" "*" "@types/react-router-dom" "*" react-helmet-async "*" -"@docusaurus/plugin-content-blog@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.17.tgz#1d1063bfda78a80d517694567b965d5c3a70479f" - integrity sha512-gcX4UR+WKT4bhF8FICBQHy+ESS9iRMeaglSboTZbA/YHGax/3EuZtcPU3dU4E/HFJeZ866wgUdbLKpIpsZOidg== +"@docusaurus/plugin-content-blog@2.0.0-beta.18": + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.18.tgz#95fe3dfc8bae9bf153c65a3a441234c450cbac0a" + integrity sha512-qzK83DgB+mxklk3PQC2nuTGPQD/8ogw1nXSmaQpyXAyhzcz4CXAZ9Swl/Ee9A/bvPwQGnSHSP3xqIYl8OkFtfw== dependencies: - "@docusaurus/core" "2.0.0-beta.17" - "@docusaurus/logger" "2.0.0-beta.17" - "@docusaurus/mdx-loader" "2.0.0-beta.17" - "@docusaurus/utils" "2.0.0-beta.17" - "@docusaurus/utils-common" "2.0.0-beta.17" - "@docusaurus/utils-validation" "2.0.0-beta.17" + "@docusaurus/core" "2.0.0-beta.18" + "@docusaurus/logger" "2.0.0-beta.18" + "@docusaurus/mdx-loader" "2.0.0-beta.18" + "@docusaurus/utils" "2.0.0-beta.18" + "@docusaurus/utils-common" "2.0.0-beta.18" + "@docusaurus/utils-validation" "2.0.0-beta.18" cheerio "^1.0.0-rc.10" feed "^4.2.2" fs-extra "^10.0.1" @@ -1853,18 +1735,18 @@ remark-admonitions "^1.2.1" tslib "^2.3.1" utility-types "^3.10.0" - webpack "^5.69.1" + webpack "^5.70.0" -"@docusaurus/plugin-content-docs@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.17.tgz#97f13bb458e165224db6867836e8e9637ea15921" - integrity sha512-YYrBpuRfTfE6NtENrpSHTJ7K7PZifn6j6hcuvdC0QKE+WD8pS+O2/Ws30yoyvHwLnAnfhvaderh1v9Kaa0/ANg== +"@docusaurus/plugin-content-docs@2.0.0-beta.18": + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.18.tgz#fef52d945da2928e0f4f3f9a9384d9ee7f2d4288" + integrity sha512-z4LFGBJuzn4XQiUA7OEA2SZTqlp+IYVjd3NrCk/ZUfNi1tsTJS36ATkk9Y6d0Nsp7K2kRXqaXPsz4adDgeIU+Q== dependencies: - "@docusaurus/core" "2.0.0-beta.17" - "@docusaurus/logger" "2.0.0-beta.17" - "@docusaurus/mdx-loader" "2.0.0-beta.17" - "@docusaurus/utils" "2.0.0-beta.17" - "@docusaurus/utils-validation" "2.0.0-beta.17" + "@docusaurus/core" "2.0.0-beta.18" + "@docusaurus/logger" "2.0.0-beta.18" + "@docusaurus/mdx-loader" "2.0.0-beta.18" + "@docusaurus/utils" "2.0.0-beta.18" + "@docusaurus/utils-validation" "2.0.0-beta.18" combine-promises "^1.1.0" fs-extra "^10.0.1" import-fresh "^3.3.0" @@ -1873,80 +1755,80 @@ remark-admonitions "^1.2.1" tslib "^2.3.1" utility-types "^3.10.0" - webpack "^5.69.1" + webpack "^5.70.0" -"@docusaurus/plugin-content-pages@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.17.tgz#d5955d3cc23722518a6032f830cf8c7b7aeb3d5a" - integrity sha512-d5x0mXTMJ44ojRQccmLyshYoamFOep2AnBe69osCDnwWMbD3Or3pnc2KMK9N7mVpQFnNFKbHNCLrX3Rv0uwEHA== +"@docusaurus/plugin-content-pages@2.0.0-beta.18": + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.18.tgz#0fef392be3fea3d85c212caf4eb744ead920c30b" + integrity sha512-CJ2Xeb9hQrMeF4DGywSDVX2TFKsQpc8ZA7czyeBAAbSFsoRyxXPYeSh8aWljqR4F1u/EKGSKy0Shk/D4wumaHw== dependencies: - "@docusaurus/core" "2.0.0-beta.17" - "@docusaurus/mdx-loader" "2.0.0-beta.17" - "@docusaurus/utils" "2.0.0-beta.17" - "@docusaurus/utils-validation" "2.0.0-beta.17" + "@docusaurus/core" "2.0.0-beta.18" + "@docusaurus/mdx-loader" "2.0.0-beta.18" + "@docusaurus/utils" "2.0.0-beta.18" + "@docusaurus/utils-validation" "2.0.0-beta.18" fs-extra "^10.0.1" remark-admonitions "^1.2.1" tslib "^2.3.1" - webpack "^5.69.1" + webpack "^5.70.0" -"@docusaurus/plugin-debug@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.17.tgz#0185dfd5575aa940443d2cb9fab4bed3308ed3a1" - integrity sha512-p26fjYFRSC0esEmKo/kRrLVwXoFnzPCFDumwrImhPyqfVxbj+IKFaiXkayb2qHnyEGE/1KSDIgRF4CHt/pyhiw== +"@docusaurus/plugin-debug@2.0.0-beta.18": + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.18.tgz#d4582532e59b538a23398f7c444b005367efa922" + integrity sha512-inLnLERgG7q0WlVmK6nYGHwVqREz13ivkynmNygEibJZToFRdgnIPW+OwD8QzgC5MpQTJw7+uYjcitpBumy1Gw== dependencies: - "@docusaurus/core" "2.0.0-beta.17" - "@docusaurus/utils" "2.0.0-beta.17" + "@docusaurus/core" "2.0.0-beta.18" + "@docusaurus/utils" "2.0.0-beta.18" fs-extra "^10.0.1" react-json-view "^1.21.3" tslib "^2.3.1" -"@docusaurus/plugin-google-analytics@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.17.tgz#31ca1ef88f0f7874c6e12c642d64abe694494720" - integrity sha512-jvgYIhggYD1W2jymqQVAAyjPJUV1xMCn70bAzaCMxriureMWzhQ/kQMVQpop0ijTMvifOxaV9yTcL1VRXev++A== +"@docusaurus/plugin-google-analytics@2.0.0-beta.18": + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.18.tgz#a9b1659abb3f588e866aaa742ec4c82fe943eda3" + integrity sha512-s9dRBWDrZ1uu3wFXPCF7yVLo/+5LUFAeoxpXxzory8gn9GYDt8ZDj80h5DUyCLxiy72OG6bXWNOYS/Vc6cOPXQ== dependencies: - "@docusaurus/core" "2.0.0-beta.17" - "@docusaurus/utils-validation" "2.0.0-beta.17" + "@docusaurus/core" "2.0.0-beta.18" + "@docusaurus/utils-validation" "2.0.0-beta.18" tslib "^2.3.1" -"@docusaurus/plugin-google-gtag@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.17.tgz#e6baf8f03cea756ed2259a5356fa689388bc303d" - integrity sha512-1pnWHtIk1Jfeqwvr8PlcPE5SODWT1gW4TI+ptmJbJ296FjjyvL/pG0AcGEJmYLY/OQc3oz0VQ0W2ognw9jmFIw== +"@docusaurus/plugin-google-gtag@2.0.0-beta.18": + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.18.tgz#b51611ac01915523ddcfc9732f7862cf4996a0e1" + integrity sha512-h7vPuLVo/9pHmbFcvb4tCpjg4SxxX4k+nfVDyippR254FM++Z/nA5pRB0WvvIJ3ZTe0ioOb5Wlx2xdzJIBHUNg== dependencies: - "@docusaurus/core" "2.0.0-beta.17" - "@docusaurus/utils-validation" "2.0.0-beta.17" + "@docusaurus/core" "2.0.0-beta.18" + "@docusaurus/utils-validation" "2.0.0-beta.18" tslib "^2.3.1" -"@docusaurus/plugin-sitemap@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.17.tgz#e1aa67ff09d9145e8e5522c4541bbcdd6365560c" - integrity sha512-19/PaGCsap6cjUPZPGs87yV9e1hAIyd0CTSeVV6Caega8nmOKk20FTrQGFJjZPeX8jvD9QIXcdg6BJnPxcKkaQ== +"@docusaurus/plugin-sitemap@2.0.0-beta.18": + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.18.tgz#7e8217e95bede5719bd02265dcf7eb2fea76b675" + integrity sha512-Klonht0Ye3FivdBpS80hkVYNOH+8lL/1rbCPEV92rKhwYdwnIejqhdKct4tUTCl8TYwWiyeUFQqobC/5FNVZPQ== dependencies: - "@docusaurus/core" "2.0.0-beta.17" - "@docusaurus/utils" "2.0.0-beta.17" - "@docusaurus/utils-common" "2.0.0-beta.17" - "@docusaurus/utils-validation" "2.0.0-beta.17" + "@docusaurus/core" "2.0.0-beta.18" + "@docusaurus/utils" "2.0.0-beta.18" + "@docusaurus/utils-common" "2.0.0-beta.18" + "@docusaurus/utils-validation" "2.0.0-beta.18" fs-extra "^10.0.1" sitemap "^7.1.1" tslib "^2.3.1" -"@docusaurus/preset-classic@^2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.17.tgz#a8fc3447aa6fe0e5f259d894cc8dd64c049c7605" - integrity sha512-7YUxPEgM09aZWr25/hpDEp1gPl+1KsCPV1ZTRW43sbQ9TinPm+9AKR3rHVDa8ea8MdiS7BpqCVyK+H/eiyQrUw== +"@docusaurus/preset-classic@^2.0.0-beta.18": + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.18.tgz#82f6905d34a13e46289ac4d2f1125e47033bd9d8" + integrity sha512-TfDulvFt/vLWr/Yy7O0yXgwHtJhdkZ739bTlFNwEkRMAy8ggi650e52I1I0T79s67llecb4JihgHPW+mwiVkCQ== dependencies: - "@docusaurus/core" "2.0.0-beta.17" - "@docusaurus/plugin-content-blog" "2.0.0-beta.17" - "@docusaurus/plugin-content-docs" "2.0.0-beta.17" - "@docusaurus/plugin-content-pages" "2.0.0-beta.17" - "@docusaurus/plugin-debug" "2.0.0-beta.17" - "@docusaurus/plugin-google-analytics" "2.0.0-beta.17" - "@docusaurus/plugin-google-gtag" "2.0.0-beta.17" - "@docusaurus/plugin-sitemap" "2.0.0-beta.17" - "@docusaurus/theme-classic" "2.0.0-beta.17" - "@docusaurus/theme-common" "2.0.0-beta.17" - "@docusaurus/theme-search-algolia" "2.0.0-beta.17" + "@docusaurus/core" "2.0.0-beta.18" + "@docusaurus/plugin-content-blog" "2.0.0-beta.18" + "@docusaurus/plugin-content-docs" "2.0.0-beta.18" + "@docusaurus/plugin-content-pages" "2.0.0-beta.18" + "@docusaurus/plugin-debug" "2.0.0-beta.18" + "@docusaurus/plugin-google-analytics" "2.0.0-beta.18" + "@docusaurus/plugin-google-gtag" "2.0.0-beta.18" + "@docusaurus/plugin-sitemap" "2.0.0-beta.18" + "@docusaurus/theme-classic" "2.0.0-beta.18" + "@docusaurus/theme-common" "2.0.0-beta.18" + "@docusaurus/theme-search-algolia" "2.0.0-beta.18" "@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2": version "5.5.2" @@ -1956,60 +1838,61 @@ "@types/react" "*" prop-types "^15.6.2" -"@docusaurus/theme-classic@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.17.tgz#1f7a1dd714993819f266ce422d06dd4533d4ab3a" - integrity sha512-xfZ9kpgqo0lP9YO4rJj79wtiQJXU6ARo5wYy10IIwiWN+lg00scJHhkmNV431b05xIUjUr0cKeH9nqZmEsQRKg== +"@docusaurus/theme-classic@2.0.0-beta.18": + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.18.tgz#a3632e83923ed4372f80999128375cd0b378d3f8" + integrity sha512-WJWofvSGKC4Luidk0lyUwkLnO3DDynBBHwmt4QrV+aAVWWSOHUjA2mPOF6GLGuzkZd3KfL9EvAfsU0aGE1Hh5g== dependencies: - "@docusaurus/core" "2.0.0-beta.17" - "@docusaurus/plugin-content-blog" "2.0.0-beta.17" - "@docusaurus/plugin-content-docs" "2.0.0-beta.17" - "@docusaurus/plugin-content-pages" "2.0.0-beta.17" - "@docusaurus/theme-common" "2.0.0-beta.17" - "@docusaurus/theme-translations" "2.0.0-beta.17" - "@docusaurus/utils" "2.0.0-beta.17" - "@docusaurus/utils-common" "2.0.0-beta.17" - "@docusaurus/utils-validation" "2.0.0-beta.17" + "@docusaurus/core" "2.0.0-beta.18" + "@docusaurus/plugin-content-blog" "2.0.0-beta.18" + "@docusaurus/plugin-content-docs" "2.0.0-beta.18" + "@docusaurus/plugin-content-pages" "2.0.0-beta.18" + "@docusaurus/theme-common" "2.0.0-beta.18" + "@docusaurus/theme-translations" "2.0.0-beta.18" + "@docusaurus/utils" "2.0.0-beta.18" + "@docusaurus/utils-common" "2.0.0-beta.18" + "@docusaurus/utils-validation" "2.0.0-beta.18" "@mdx-js/react" "^1.6.22" clsx "^1.1.1" copy-text-to-clipboard "^3.0.1" - infima "0.2.0-alpha.37" + infima "0.2.0-alpha.38" lodash "^4.17.21" - postcss "^8.4.7" - prism-react-renderer "^1.2.1" + postcss "^8.4.12" + prism-react-renderer "^1.3.1" prismjs "^1.27.0" react-router-dom "^5.2.0" - rtlcss "^3.3.0" + rtlcss "^3.5.0" -"@docusaurus/theme-common@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.0.0-beta.17.tgz#3b71bb8b0973a0cee969a1bb76794c81d597f290" - integrity sha512-LJBDhx+Qexn1JHBqZbE4k+7lBaV1LgpE33enXf43ShB7ebhC91d5HLHhBwgt0pih4+elZU4rG+BG/roAmsNM0g== +"@docusaurus/theme-common@2.0.0-beta.18": + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.0.0-beta.18.tgz#abf74f82c37d2ce813f92447cb020831290059fb" + integrity sha512-3pI2Q6ttScDVTDbuUKAx+TdC8wmwZ2hfWk8cyXxksvC9bBHcyzXhSgcK8LTsszn2aANyZ3e3QY2eNSOikTFyng== dependencies: - "@docusaurus/module-type-aliases" "2.0.0-beta.17" - "@docusaurus/plugin-content-blog" "2.0.0-beta.17" - "@docusaurus/plugin-content-docs" "2.0.0-beta.17" - "@docusaurus/plugin-content-pages" "2.0.0-beta.17" + "@docusaurus/module-type-aliases" "2.0.0-beta.18" + "@docusaurus/plugin-content-blog" "2.0.0-beta.18" + "@docusaurus/plugin-content-docs" "2.0.0-beta.18" + "@docusaurus/plugin-content-pages" "2.0.0-beta.18" clsx "^1.1.1" parse-numeric-range "^1.3.0" prism-react-renderer "^1.3.1" tslib "^2.3.1" utility-types "^3.10.0" -"@docusaurus/theme-search-algolia@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.17.tgz#880fb965b71e5aa7f01d456a1a2aa8eb6c244082" - integrity sha512-W12XKM7QC5Jmrec359bJ7aDp5U8DNkCxjVKsMNIs8rDunBoI/N+R35ERJ0N7Bg9ONAWO6o7VkUERQsfGqdvr9w== +"@docusaurus/theme-search-algolia@2.0.0-beta.18": + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.18.tgz#cbdda8982deac4556848e04853b7f32d93886c02" + integrity sha512-2w97KO/gnjI49WVtYQqENpQ8iO1Sem0yaTxw7/qv/ndlmIAQD0syU4yx6GsA7bTQCOGwKOWWzZSetCgUmTnWgA== dependencies: "@docsearch/react" "^3.0.0" - "@docusaurus/core" "2.0.0-beta.17" - "@docusaurus/logger" "2.0.0-beta.17" - "@docusaurus/theme-common" "2.0.0-beta.17" - "@docusaurus/theme-translations" "2.0.0-beta.17" - "@docusaurus/utils" "2.0.0-beta.17" - "@docusaurus/utils-validation" "2.0.0-beta.17" - algoliasearch "^4.12.1" - algoliasearch-helper "^3.7.0" + "@docusaurus/core" "2.0.0-beta.18" + "@docusaurus/logger" "2.0.0-beta.18" + "@docusaurus/plugin-content-docs" "2.0.0-beta.18" + "@docusaurus/theme-common" "2.0.0-beta.18" + "@docusaurus/theme-translations" "2.0.0-beta.18" + "@docusaurus/utils" "2.0.0-beta.18" + "@docusaurus/utils-validation" "2.0.0-beta.18" + algoliasearch "^4.13.0" + algoliasearch-helper "^3.7.4" clsx "^1.1.1" eta "^1.12.3" fs-extra "^10.0.1" @@ -2017,33 +1900,25 @@ tslib "^2.3.1" utility-types "^3.10.0" -"@docusaurus/theme-translations@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-2.0.0-beta.17.tgz#a4b84fa63befc11847da471922387aa3eb4e5626" - integrity sha512-oxCX6khjZH3lgdRCL0DH06KkUM/kDr9+lzB35+vY8rpFeQruVgRdi8ekPqG3+Wr0U/N+LMhcYE5BmCb6D0Fv2A== +"@docusaurus/theme-translations@2.0.0-beta.18": + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-2.0.0-beta.18.tgz#292699ce89b013262683faf7f4ee7b75a8745a79" + integrity sha512-1uTEUXlKC9nco1Lx9H5eOwzB+LP4yXJG5wfv1PMLE++kJEdZ40IVorlUi3nJnaa9/lJNq5vFvvUDrmeNWsxy/Q== dependencies: fs-extra "^10.0.1" tslib "^2.3.1" -"@docusaurus/types@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.0.0-beta.17.tgz#582e3d961ce4409ed17454669b3f6a7a9f696cdd" - integrity sha512-4o7TXu5sKlQpybfFFtsGUElBXwSpiXKsQyyWaRKj7DRBkvMtkDX6ITZNnZO9+EHfLbP/cfrokB8C/oO7mCQ5BQ== +"@docusaurus/types@2.0.0-beta.18": + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.0.0-beta.18.tgz#9446928a6b751eefde390420b39eac32ba26abb2" + integrity sha512-zkuSmPQYP3+z4IjGHlW0nGzSSpY7Sit0Nciu/66zSb5m07TK72t6T1MlpCAn/XijcB9Cq6nenC3kJh66nGsKYg== dependencies: commander "^5.1.0" joi "^17.6.0" - querystring "0.2.1" utility-types "^3.10.0" - webpack "^5.69.1" + webpack "^5.70.0" webpack-merge "^5.8.0" -"@docusaurus/utils-common@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.0.0-beta.17.tgz#cefd950a7722f5f702690b4de27ea19fd65f3364" - integrity sha512-90WCVdj6zYzs7neEIS594qfLO78cUL6EVK1CsRHJgVkkGjcYlCQ1NwkyO7bOb+nIAwdJrPJRc2FBSpuEGxPD3w== - dependencies: - tslib "^2.3.1" - "@docusaurus/utils-common@2.0.0-beta.18": version "2.0.0-beta.18" resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.0.0-beta.18.tgz#46cf0bed2a7c532b2b85eab5bb914ff118b2c4e9" @@ -2051,16 +1926,6 @@ dependencies: tslib "^2.3.1" -"@docusaurus/utils-validation@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.17.tgz#d7dbfc1a29768c37c0d8a6af85eb1bdfef7656df" - integrity sha512-5UjayUP16fDjgd52eSEhL7SlN9x60pIhyS+K7kt7RmpSLy42+4/bSr2pns2VlATmuaoNOO6iIFdB2jgSYJ6SGA== - dependencies: - "@docusaurus/logger" "2.0.0-beta.17" - "@docusaurus/utils" "2.0.0-beta.17" - joi "^17.6.0" - tslib "^2.3.1" - "@docusaurus/utils-validation@2.0.0-beta.18": version "2.0.0-beta.18" resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.18.tgz#0dabf113d2c53ee685a715cd4caae6e219e9e41e" @@ -2072,27 +1937,6 @@ js-yaml "^4.1.0" tslib "^2.3.1" -"@docusaurus/utils@2.0.0-beta.17": - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-beta.17.tgz#6a696e2ec5e50b2271f2d26d31562e9f3e2bc559" - integrity sha512-yRKGdzSc5v6M/6GyQ4omkrAHCleevwKYiIrufCJgRbOtkhYE574d8mIjjirOuA/emcyLxjh+TLtqAA5TwhIryA== - dependencies: - "@docusaurus/logger" "2.0.0-beta.17" - "@svgr/webpack" "^6.0.0" - file-loader "^6.2.0" - fs-extra "^10.0.1" - github-slugger "^1.4.0" - globby "^11.0.4" - gray-matter "^4.0.3" - js-yaml "^4.1.0" - lodash "^4.17.21" - micromatch "^4.0.4" - resolve-pathname "^3.0.0" - shelljs "^0.8.5" - tslib "^2.3.1" - url-loader "^4.1.1" - webpack "^5.69.1" - "@docusaurus/utils@2.0.0-beta.18": version "2.0.0-beta.18" resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-beta.18.tgz#c3fe0e9fac30db4510962263993fd0ee2679eebb" @@ -2227,7 +2071,7 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@slorber/static-site-generator-webpack-plugin@^4.0.1", "@slorber/static-site-generator-webpack-plugin@^4.0.4": +"@slorber/static-site-generator-webpack-plugin@^4.0.4": version "4.0.4" resolved "https://registry.yarnpkg.com/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.4.tgz#2bf4a2545e027830d2aa5eb950437c26a289b0f1" integrity sha512-FvMavoWEIePps6/JwGCOLYKCRhuwIHhMtmbKpBFgzNkxwpa/569LfTkrbRk1m1I3n+ezJK4on9E1A6cjuZmD9g== @@ -2327,7 +2171,7 @@ deepmerge "^4.2.2" svgo "^2.5.0" -"@svgr/webpack@^6.0.0", "@svgr/webpack@^6.2.1": +"@svgr/webpack@^6.2.1": version "6.2.1" resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.2.1.tgz#ef5d51c1b6be4e7537fb9f76b3f2b2e22b63c58d" integrity sha512-h09ngMNd13hnePwgXa+Y5CgOjzlCvfWLHg+MBnydEedAnuLRzUHUJmGS3o2OsrhxTOOqEsPOFt5v/f6C5Qulcw== @@ -2813,10 +2657,10 @@ ajv@^8.0.0, ajv@^8.8.0: require-from-string "^2.0.2" uri-js "^4.2.2" -algoliasearch-helper@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.7.0.tgz#c0a0493df84d850360f664ad7a9d4fc78a94fd78" - integrity sha512-XJ3QfERBLfeVCyTVx80gon7r3/rgm/CE8Ha1H7cbablRe/X7SfYQ14g/eO+MhjVKIQp+gy9oC6G5ilmLwS1k6w== +algoliasearch-helper@^3.7.4: + version "3.7.4" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.7.4.tgz#3812ea161da52463ec88da52612c9a363c1b181d" + integrity sha512-KmJrsHVm5TmxZ9Oj53XdXuM4CQeu7eVFnB15tpSFt+7is1d1yVCv3hxCLMqYSw/rH42ccv013miQpRr268P8vw== dependencies: "@algolia/events" "^4.0.1" @@ -2840,30 +2684,30 @@ algoliasearch@^4.0.0: "@algolia/requester-node-http" "4.11.0" "@algolia/transporter" "4.11.0" -algoliasearch@^4.12.1: - version "4.12.2" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.12.2.tgz#d7672a15b8fd1b261d9ae193535b68bcb189cfd2" - integrity sha512-bn1P9+V415zeDQJtXn+1SwuwedEAv9/LJAxt8XwR6ygH/sMwaHSm2hpkz8wIbCBt/tKQ43TL672Kyxzv5PwGgQ== +algoliasearch@^4.13.0: + version "4.13.0" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.13.0.tgz#e36611fda82b1fc548c156ae7929a7f486e4b663" + integrity sha512-oHv4faI1Vl2s+YC0YquwkK/TsaJs79g2JFg5FDm2rKN12VItPTAeQ7hyJMHarOPPYuCnNC5kixbtcqvb21wchw== dependencies: - "@algolia/cache-browser-local-storage" "4.12.2" - "@algolia/cache-common" "4.12.2" - "@algolia/cache-in-memory" "4.12.2" - "@algolia/client-account" "4.12.2" - "@algolia/client-analytics" "4.12.2" - "@algolia/client-common" "4.12.2" - "@algolia/client-personalization" "4.12.2" - "@algolia/client-search" "4.12.2" - "@algolia/logger-common" "4.12.2" - "@algolia/logger-console" "4.12.2" - "@algolia/requester-browser-xhr" "4.12.2" - "@algolia/requester-common" "4.12.2" - "@algolia/requester-node-http" "4.12.2" - "@algolia/transporter" "4.12.2" + "@algolia/cache-browser-local-storage" "4.13.0" + "@algolia/cache-common" "4.13.0" + "@algolia/cache-in-memory" "4.13.0" + "@algolia/client-account" "4.13.0" + "@algolia/client-analytics" "4.13.0" + "@algolia/client-common" "4.13.0" + "@algolia/client-personalization" "4.13.0" + "@algolia/client-search" "4.13.0" + "@algolia/logger-common" "4.13.0" + "@algolia/logger-console" "4.13.0" + "@algolia/requester-browser-xhr" "4.13.0" + "@algolia/requester-common" "4.13.0" + "@algolia/requester-node-http" "4.13.0" + "@algolia/transporter" "4.13.0" -amplitude-js@^8.17.0: - version "8.17.0" - resolved "https://registry.yarnpkg.com/amplitude-js/-/amplitude-js-8.17.0.tgz#fa20e28fa3945fd0447cfa2bfadfe5a7b2c71c5f" - integrity sha512-9Ovx/15Wt4byNSKpesaTaNnHmwgkV9pn0BfI70qHr0iaPgEAtMV0HdA+Zs6555ODp3pvrmj5JTXDl3/DPLmNRQ== +amplitude-js@^8.18.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/amplitude-js/-/amplitude-js-8.18.0.tgz#5c709aa657f3c5dd0a2e9e21a0dec3493d8658e5" + integrity sha512-HIg6nQL2zMyGbRCWXEVWLu/r7pkwohWNl4OTDzYbxpP+oFsVncHoYlDXisQPNMlb4tPyWrzcIHtQQKTIC/BeNA== dependencies: "@amplitude/analytics-connector" "1.0.0" "@amplitude/ua-parser-js" "0.7.26" @@ -3019,7 +2863,7 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -autoprefixer@^10.3.7, autoprefixer@^10.4.2, autoprefixer@^10.4.4: +autoprefixer@^10.3.7, autoprefixer@^10.4.4: version "10.4.4" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.4.tgz#3e85a245b32da876a893d3ac2ea19f01e7ea5a1e" integrity sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA== @@ -3055,7 +2899,7 @@ axios@^0.25.0: dependencies: follow-redirects "^1.14.7" -babel-loader@^8.2.3, babel-loader@^8.2.4: +babel-loader@^8.2.4: version "8.2.4" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.4.tgz#95f5023c791b2e9e2ca6f67b0984f39c82ff384b" integrity sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A== @@ -3876,7 +3720,7 @@ css-declaration-sorter@^6.0.3: dependencies: timsort "^0.3.0" -css-loader@^6.6.0, css-loader@^6.7.1: +css-loader@^6.7.1: version "6.7.1" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.1.tgz#e98106f154f6e1baf3fc3bc455cb9981c1d5fd2e" integrity sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw== @@ -3946,18 +3790,6 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-advanced@^5.1.12: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-5.2.1.tgz#e96673c8fb2d4fba589b40c75167fe398bc9a5c0" - integrity sha512-M/qkiVwnKfGiolf20yDeOWPDlIqf9NItkQYUYDQluBTUITCFnNfuFrAeRln0P6tSyDeCUOgmqQWW++B4A3gNgQ== - dependencies: - autoprefixer "^10.3.7" - cssnano-preset-default "^5.2.0" - postcss-discard-unused "^5.1.0" - postcss-merge-idents "^5.1.0" - postcss-reduce-idents "^5.1.0" - postcss-zindex "^5.1.0" - cssnano-preset-advanced@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.1.tgz#f4fa7006aab67e354289b3efd512c93a272b3874" @@ -3970,41 +3802,6 @@ cssnano-preset-advanced@^5.3.1: postcss-reduce-idents "^5.2.0" postcss-zindex "^5.1.0" -cssnano-preset-default@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.0.tgz#2579d38b9217746f2cf9f938954a91e00418ded6" - integrity sha512-3N5Vcptj2pqVKpHVqH6ezOJvqikR2PdLTbTrsrhF61FbLRQuujAqZ2sKN5rvcMsb7hFjrNnjZT8CGEkxoN/Pwg== - dependencies: - css-declaration-sorter "^6.0.3" - cssnano-utils "^3.1.0" - postcss-calc "^8.2.3" - postcss-colormin "^5.3.0" - postcss-convert-values "^5.1.0" - postcss-discard-comments "^5.1.0" - postcss-discard-duplicates "^5.1.0" - postcss-discard-empty "^5.1.0" - postcss-discard-overridden "^5.1.0" - postcss-merge-longhand "^5.1.0" - postcss-merge-rules "^5.1.0" - postcss-minify-font-values "^5.1.0" - postcss-minify-gradients "^5.1.0" - postcss-minify-params "^5.1.0" - postcss-minify-selectors "^5.2.0" - postcss-normalize-charset "^5.1.0" - postcss-normalize-display-values "^5.1.0" - postcss-normalize-positions "^5.1.0" - postcss-normalize-repeat-style "^5.1.0" - postcss-normalize-string "^5.1.0" - postcss-normalize-timing-functions "^5.1.0" - postcss-normalize-unicode "^5.1.0" - postcss-normalize-url "^5.1.0" - postcss-normalize-whitespace "^5.1.0" - postcss-ordered-values "^5.1.0" - postcss-reduce-initial "^5.1.0" - postcss-reduce-transforms "^5.1.0" - postcss-svgo "^5.1.0" - postcss-unique-selectors "^5.1.0" - cssnano-preset-default@^5.2.5: version "5.2.5" resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.5.tgz#267ded811a3e1664d78707f5355fcd89feeb38ac" @@ -4045,7 +3842,7 @@ cssnano-utils@^3.1.0: resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== -cssnano@^5.0.17, cssnano@^5.0.6, cssnano@^5.1.5: +cssnano@^5.0.6, cssnano@^5.1.5: version "5.1.5" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.5.tgz#5f3f519538c7f1c182c527096892243db3e17397" integrity sha512-VZO1e+bRRVixMeia1zKagrv0lLN1B/r/u12STGNNUFxnp97LIFgZHQa0JxqlwEkvzUyA9Oz/WnCTAFkdEbONmg== @@ -5615,10 +5412,10 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -infima@0.2.0-alpha.37: - version "0.2.0-alpha.37" - resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.37.tgz#b87ff42d528d6d050098a560f0294fbdd12adb78" - integrity sha512-4GX7Baw+/lwS4PPW/UJNY89tWSvYG1DL6baKVdpK6mC593iRgMssxNtORMTFArLPJ/A/lzsGhRmx+z6MaMxj0Q== +infima@0.2.0-alpha.38: + version "0.2.0-alpha.38" + resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.38.tgz#e41d95c7cd82756549b17df12f613fed4af3d528" + integrity sha512-1WsmqSMI5IqzrUx3goq+miJznHBonbE3aoqZ1AR/i/oHhroxNeSV6Awv5VoVfXBhfTzLSnxkHaRI2qpAMYcCzw== inflight@^1.0.4: version "1.0.6" @@ -6482,7 +6279,7 @@ mini-create-react-context@^0.4.0: "@babel/runtime" "^7.12.1" tiny-warning "^1.0.3" -mini-css-extract-plugin@^2.5.3, mini-css-extract-plugin@^2.6.0: +mini-css-extract-plugin@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz#578aebc7fc14d32c0ad304c2c34f08af44673f5e" integrity sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w== @@ -7004,11 +6801,6 @@ postcss-convert-values@^5.1.0: dependencies: postcss-value-parser "^4.2.0" -postcss-discard-comments@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.0.tgz#87be4e0953bf599935837b940c701f8d4eca7d0b" - integrity sha512-L0IKF4jAshRyn03SkEO6ar/Ipz2oLywVbg2THf2EqqdNkBwmVMxuTR/RoAltOw4piiaLt3gCAdrbAqmTBInmhg== - postcss-discard-comments@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz#e90019e1a0e5b99de05f63516ce640bd0df3d369" @@ -7019,11 +6811,6 @@ postcss-discard-duplicates@^5.1.0: resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== -postcss-discard-empty@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.0.tgz#7f51b16cd1b89f8180bbc7cee34d6cbabf2ef810" - integrity sha512-782T/buGgb3HOuHOJAHpdyKzAAKsv/BxWqsutnZ+QsiHEcDkY7v+6WWdturuBiSal6XMOO1p1aJvwXdqLD5vhA== - postcss-discard-empty@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" @@ -7050,14 +6837,6 @@ postcss-loader@^6.2.1: klona "^2.0.5" semver "^7.3.5" -postcss-merge-idents@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-5.1.0.tgz#948e1183cd659cfb5f99c7389f5fcec83c8f9a00" - integrity sha512-l+awq6+uUiCILsHahWK5KE25495I4oCKlUrIA+EdBvklnVdWlBEsbkzq5+ouPKb8OAe4WwRBgFvaSq7f77FY+w== - dependencies: - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - postcss-merge-idents@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz#7753817c2e0b75d0853b56f78a89771e15ca04a1" @@ -7066,14 +6845,6 @@ postcss-merge-idents@^5.1.1: cssnano-utils "^3.1.0" postcss-value-parser "^4.2.0" -postcss-merge-longhand@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.0.tgz#f716bffbf0bdfbde6ea78c36088e21559f8a0a95" - integrity sha512-Gr46srN2tsLD8fudKYoHO56RG0BLQ2nsBRnSZGY04eNBPwTeWa9KeHrbL3tOLAHyB2aliikycPH2TMJG1U+W6g== - dependencies: - postcss-value-parser "^4.2.0" - stylehacks "^5.1.0" - postcss-merge-longhand@^5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.3.tgz#a49e2be6237316e3b55e329e0a8da15d1f9f47ab" @@ -7082,16 +6853,6 @@ postcss-merge-longhand@^5.1.3: postcss-value-parser "^4.2.0" stylehacks "^5.1.0" -postcss-merge-rules@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.0.tgz#a2d5117eba09c8686a5471d97bd9afcf30d1b41f" - integrity sha512-NecukEJovQ0mG7h7xV8wbYAkXGTO3MPKnXvuiXzOKcxoOodfTTKYjeo8TMhAswlSkjcPIBlnKbSFcTuVSDaPyQ== - dependencies: - browserslist "^4.16.6" - caniuse-api "^3.0.0" - cssnano-utils "^3.1.0" - postcss-selector-parser "^6.0.5" - postcss-merge-rules@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz#d327b221cd07540bcc8d9ff84446d8b404d00162" @@ -7109,15 +6870,6 @@ postcss-minify-font-values@^5.1.0: dependencies: postcss-value-parser "^4.2.0" -postcss-minify-gradients@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.0.tgz#de0260a67a13b7b321a8adc3150725f2c6612377" - integrity sha512-J/TMLklkONn3LuL8wCwfwU8zKC1hpS6VcxFkNUNjmVt53uKqrrykR3ov11mdUYyqVMEx67slMce0tE14cE4DTg== - dependencies: - colord "^2.9.1" - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - postcss-minify-gradients@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" @@ -7127,15 +6879,6 @@ postcss-minify-gradients@^5.1.1: cssnano-utils "^3.1.0" postcss-value-parser "^4.2.0" -postcss-minify-params@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.0.tgz#e0b1f4e05cfd396682f612856485907e4064f25e" - integrity sha512-q67dcts4Hct6x8+JmhBgctHkbvUsqGIg2IItenjE63iZXMbhjr7AlVZkNnKtIGt/1Wsv7p/7YzeSII6Q+KPXRg== - dependencies: - browserslist "^4.16.6" - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - postcss-minify-params@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz#77e250780c64198289c954884ebe3ee4481c3b1c" @@ -7236,13 +6979,6 @@ postcss-normalize-url@^5.1.0: normalize-url "^6.0.1" postcss-value-parser "^4.2.0" -postcss-normalize-whitespace@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.0.tgz#aed8b4580c9ad6e8eac034177291187ea16a059c" - integrity sha512-7O1FanKaJkpWFyCghFzIkLhehujV/frGkdofGLwhg5upbLyGsSfiTcZAdSzoPsSUgyPCkBkNMeWR8yVgPdQybg== - dependencies: - postcss-value-parser "^4.2.0" - postcss-normalize-whitespace@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" @@ -7250,14 +6986,6 @@ postcss-normalize-whitespace@^5.1.1: dependencies: postcss-value-parser "^4.2.0" -postcss-ordered-values@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.0.tgz#04ef429e0991b0292bc918b135cd4c038f7b889f" - integrity sha512-wU4Z4D4uOIH+BUKkYid36gGDJNQtkVJT7Twv8qH6UyfttbbJWyw4/xIPuVEkkCtQLAJ0EdsNSh8dlvqkXb49TA== - dependencies: - cssnano-utils "^3.1.0" - postcss-value-parser "^4.2.0" - postcss-ordered-values@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz#0b41b610ba02906a3341e92cab01ff8ebc598adb" @@ -7266,13 +6994,6 @@ postcss-ordered-values@^5.1.1: cssnano-utils "^3.1.0" postcss-value-parser "^4.2.0" -postcss-reduce-idents@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-5.1.0.tgz#386b65cf861a9045663bd349d572027ab138ca4a" - integrity sha512-2xDoPTzv98D/HFDrGTgVEBlcuS47wvua2oc4g2WoZdYPwzPWMWb2TCRruCyN7vbl+HAtVLGvEOMZIZb3wYgv7w== - dependencies: - postcss-value-parser "^4.2.0" - postcss-reduce-idents@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz#c89c11336c432ac4b28792f24778859a67dfba95" @@ -7326,13 +7047,6 @@ postcss-svgo@^5.1.0: postcss-value-parser "^4.2.0" svgo "^2.7.0" -postcss-unique-selectors@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.0.tgz#70a945da1b0599d00f617222a44ba1d82a676694" - integrity sha512-LmUhgGobtpeVJJHuogzjLRwJlN7VH+BL5c9GKMVJSS/ejoyePZkXvNsYUtk//F6vKOGK86gfRS0xH7fXQSDtvA== - dependencies: - postcss-selector-parser "^6.0.5" - postcss-unique-selectors@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" @@ -7382,11 +7096,6 @@ pretty-time@^1.1.0: resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== -prism-react-renderer@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.2.1.tgz#392460acf63540960e5e3caa699d851264e99b89" - integrity sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg== - prism-react-renderer@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.3.1.tgz#88fc9d0df6bed06ca2b9097421349f8c2f24e30d" @@ -7507,11 +7216,6 @@ query-string@5: object-assign "^4.1.0" strict-uri-encode "^1.0.0" -querystring@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" - integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== - querystringify@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -8034,7 +7738,7 @@ rtl-detect@^1.0.4: resolved "https://registry.yarnpkg.com/rtl-detect/-/rtl-detect-1.0.4.tgz#40ae0ea7302a150b96bc75af7d749607392ecac6" integrity sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ== -rtlcss@^3.3.0: +rtlcss@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-3.5.0.tgz#c9eb91269827a102bac7ae3115dd5d049de636c3" integrity sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A== @@ -9262,7 +8966,7 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^5.69.1, webpack@^5.70.0: +webpack@^5.70.0: version "5.70.0" resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.70.0.tgz#3461e6287a72b5e6e2f4872700bc8de0d7500e6d" integrity sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw== From 88748d35639b0fe69a544326da9cb7fcff06f3ed Mon Sep 17 00:00:00 2001 From: David Flanagan Date: Fri, 1 Apr 2022 18:40:43 +0100 Subject: [PATCH 19/22] fix: appease the linter Signed-off-by: David Flanagan --- .../x/david@rawkode.dev/pulumi/example.cue | 20 +++++++------------ .../x/david@rawkode.dev/pulumi/pulumi.cue | 4 ++-- .../x/david@rawkode.dev/pulumi/up.sh | 12 +++++------ 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/example.cue b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/example.cue index c3f406ae..3e9c2ab0 100644 --- a/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/example.cue +++ b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/example.cue @@ -7,23 +7,17 @@ import ( dagger.#Plan & { client: { - filesystem: { - "./": read: { - contents: dagger.#FS - } - } + filesystem: "./": read: contents: dagger.#FS env: { PULUMI_CONFIG_PASSPHRASE: dagger.#Secret PULUMI_ACCESS_TOKEN: dagger.#Secret } } - actions: { - rawkode: pulumi.#Up & { - stack: "test" - stackCreate: true - runtime: "nodejs" - accessToken: client.env.PULUMI_ACCESS_TOKEN - source: client.filesystem."./".read.contents - } + actions: rawkode: pulumi.#Up & { + stack: "test" + stackCreate: true + runtime: "nodejs" + accessToken: client.env.PULUMI_ACCESS_TOKEN + source: client.filesystem."./".read.contents } } diff --git a/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/pulumi.cue b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/pulumi.cue index d477e7d3..56148ccb 100644 --- a/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/pulumi.cue +++ b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/pulumi.cue @@ -65,11 +65,11 @@ import ( } workdir: "/src" mounts: { - "src": { + src: { dest: "/src" contents: source } - "node_modules": { + node_modules: { dest: "/src/node_modules" type: "cache" contents: core.#CacheDir & { diff --git a/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/up.sh b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/up.sh index 1652c1af..0202d969 100644 --- a/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/up.sh +++ b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/up.sh @@ -13,21 +13,21 @@ fi if test -v PULUMI_ACCESS_TOKEN; then if (pulumi stack ls | grep -e "^${STACK_NAME}"); then echo "Stack exists, let's refresh" - pulumi stack select ${PULUMI_STACK} + pulumi stack select "${PULUMI_STACK}" # Could be first deployment, so let's not worry about this failing pulumi config refresh --force || true else echo "Stack does not exist, let's create" - pulumi stack init ${PULUMI_STACK} + pulumi stack init "${PULUMI_STACK}" fi else # Not using Pulumi SaaS, relying on local stack files - if test -v PULUMI_STACK_CREATE && test ! -f Pulumi.${PULUMI_STACK}.yaml; then - pulumi stack init ${PULUMI_STACK} + if test -v PULUMI_STACK_CREATE && test ! -f "Pulumi.${PULUMI_STACK}.yaml"; then + pulumi stack init "${PULUMI_STACK}" fi fi -case $PULUMI_RUNTIME in +case "$PULUMI_RUNTIME" in nodejs) npm install ;; @@ -37,4 +37,4 @@ case $PULUMI_RUNTIME in ;; esac -pulumi up --stack ${PULUMI_STACK} --yes +pulumi up --stack "${PULUMI_STACK}" --yes From 574e9ccf165911bfe9cbc6689ae64539745b1271 Mon Sep 17 00:00:00 2001 From: David Flanagan Date: Fri, 1 Apr 2022 21:09:22 +0100 Subject: [PATCH 20/22] fix: tidy up a little Signed-off-by: David Flanagan --- .../x/david@rawkode.dev/pulumi/example.cue | 5 +++-- pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/pulumi.cue | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/example.cue b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/example.cue index 3e9c2ab0..e4c16c36 100644 --- a/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/example.cue +++ b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/example.cue @@ -9,8 +9,9 @@ dagger.#Plan & { client: { filesystem: "./": read: contents: dagger.#FS env: { - PULUMI_CONFIG_PASSPHRASE: dagger.#Secret - PULUMI_ACCESS_TOKEN: dagger.#Secret + PULUMI_ACCESS_TOKEN: dagger.#Secret + // If not using Pulumi SaaS, use CONFIG_PASSPHRASE + // PULUMI_CONFIG_PASSPHRASE: dagger.#Secret } } actions: rawkode: pulumi.#Up & { diff --git a/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/pulumi.cue b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/pulumi.cue index 56148ccb..d8bc4a67 100644 --- a/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/pulumi.cue +++ b/pkg/universe.dagger.io/x/david@rawkode.dev/pulumi/pulumi.cue @@ -71,7 +71,6 @@ import ( } node_modules: { dest: "/src/node_modules" - type: "cache" contents: core.#CacheDir & { id: "pulumi-npm-cache" } From ca2e23efbbc25558a5ccdcd416562a60f426cefb Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 2 Apr 2022 01:53:23 -0400 Subject: [PATCH 21/22] Fix typo (#1953) --- docs/tests/core-concepts/plan/structure.cue.fragment | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tests/core-concepts/plan/structure.cue.fragment b/docs/tests/core-concepts/plan/structure.cue.fragment index 67e2d227..f17656b7 100644 --- a/docs/tests/core-concepts/plan/structure.cue.fragment +++ b/docs/tests/core-concepts/plan/structure.cue.fragment @@ -1,5 +1,5 @@ // ... -// A plan has pre-requisited that we cover below. +// A plan has pre-requisites that we cover below. // For now we focus on the dagger.#Plan structure. // ... From 7b59db09c5a0ce7a4f0487ef04c385b37c361331 Mon Sep 17 00:00:00 2001 From: Oliver Mannion <125105+tekumara@users.noreply.github.com> Date: Sun, 3 Apr 2022 16:52:28 +1000 Subject: [PATCH 22/22] docs: fix broken link in universe README.md Signed-off-by: Oliver Mannion <125105+tekumara@users.noreply.github.com> --- pkg/universe.dagger.io/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/universe.dagger.io/README.md b/pkg/universe.dagger.io/README.md index 29e16d6c..81e66b96 100644 --- a/pkg/universe.dagger.io/README.md +++ b/pkg/universe.dagger.io/README.md @@ -46,7 +46,7 @@ This table compares Dagger core packages, Dagger Universe packages, and the over ### Docker API -*Import path: [`universe.dagger.io/docker`](./universe/docker)* +*Import path: [`universe.dagger.io/docker`](./docker)* The `docker` package is a native Cue API for Docker. You can use it to build, run, push and pull Docker containers directly from Cue.