diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..8128f5c --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,980 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/alpine +{ + "name": "Alpine", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/devcontainers/base:alpine-3.20", + "features": { + "ghcr.io/devcontainers/features/anaconda:1": {}, + "ghcr.io/devcontainers/features/aws-cli:1": {}, + "ghcr.io/devcontainers/features/azure-cli:1": {}, + "ghcr.io/devcontainers/features/common-utils:2": {}, + "ghcr.io/devcontainers/features/conda:1": {}, + "ghcr.io/devcontainers/features/desktop-lite:1": {}, + "ghcr.io/devcontainers/features/docker-in-docker:2": {}, + "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}, + "ghcr.io/devcontainers/features/dotnet:2": {}, + "ghcr.io/devcontainers/features/git:1": {}, + "ghcr.io/devcontainers/features/git-lfs:1": {}, + "ghcr.io/devcontainers/features/github-cli:1": {}, + "ghcr.io/devcontainers/features/go:1": {}, + "ghcr.io/devcontainers/features/hugo:1": {}, + "ghcr.io/devcontainers/features/java:1": {}, + "ghcr.io/devcontainers/features/kubectl-helm-minikube:1": {}, + "ghcr.io/devcontainers/features/nix:1": {}, + "ghcr.io/devcontainers/features/node:1": {}, + "ghcr.io/devcontainers/features/nvidia-cuda:1": {}, + "ghcr.io/devcontainers/features/oryx:1": {}, + "ghcr.io/devcontainers/features/php:1": {}, + "ghcr.io/devcontainers/features/powershell:1": {}, + "ghcr.io/devcontainers/features/python:1": {}, + "ghcr.io/devcontainers/features/ruby:1": {}, + "ghcr.io/devcontainers/features/rust:1": {}, + "ghcr.io/devcontainers/features/sshd:1": {}, + "ghcr.io/devcontainers/features/terraform:1": {}, + "ghcr.io/iterative/features/dvc:1": {}, + "ghcr.io/iterative/features/nvtop:1": {}, + "ghcr.io/rocker-org/devcontainer-features/apt-packages:1": {}, + "ghcr.io/rocker-org/devcontainer-features/miniforge:2": {}, + "ghcr.io/rocker-org/devcontainer-features/pandoc:1": {}, + "ghcr.io/rocker-org/devcontainer-features/quarto-cli:1": {}, + "ghcr.io/rocker-org/devcontainer-features/r-apt:0": {}, + "ghcr.io/rocker-org/devcontainer-features/r-dependent-packages:0": {}, + "ghcr.io/rocker-org/devcontainer-features/r-history:0": {}, + "ghcr.io/rocker-org/devcontainer-features/r-packages:1": {}, + "ghcr.io/rocker-org/devcontainer-features/r-rig:1": {}, + "ghcr.io/rocker-org/devcontainer-features/renv-cache:0": {}, + "ghcr.io/rocker-org/devcontainer-features/rstudio-server:0": {}, + "ghcr.io/meaningful-ooo/devcontainer-features/fish:1": {}, + "ghcr.io/meaningful-ooo/devcontainer-features/homebrew:2": {}, + "ghcr.io/mpriscella/features/fastly:1": {}, + "ghcr.io/mpriscella/features/helm-chart-testing:1": {}, + "ghcr.io/mpriscella/features/kind:1": {}, + "ghcr.io/mpriscella/features/sops:1": {}, + "ghcr.io/eitsupi/devcontainer-features/duckdb-cli:1": {}, + "ghcr.io/eitsupi/devcontainer-features/go-task:1": {}, + "ghcr.io/eitsupi/devcontainer-features/jq-likes:2": {}, + "ghcr.io/eitsupi/devcontainer-features/mdbook:1": {}, + "ghcr.io/eitsupi/devcontainer-features/nushell:0": {}, + "ghcr.io/dhoeric/features/act:1": {}, + "ghcr.io/dhoeric/features/aztfy:1": {}, + "ghcr.io/dhoeric/features/conftest:1": {}, + "ghcr.io/dhoeric/features/flyctl:1": {}, + "ghcr.io/dhoeric/features/google-cloud-cli:1": {}, + "ghcr.io/dhoeric/features/hadolint:1": {}, + "ghcr.io/dhoeric/features/k6:1": {}, + "ghcr.io/dhoeric/features/k9s:1": {}, + "ghcr.io/dhoeric/features/mizu:1": {}, + "ghcr.io/dhoeric/features/opa:1": {}, + "ghcr.io/dhoeric/features/oras:1": {}, + "ghcr.io/dhoeric/features/stern:1": {}, + "ghcr.io/dhoeric/features/terraform-docs:1": {}, + "ghcr.io/dhoeric/features/terraformer:1": {}, + "ghcr.io/dhoeric/features/tfsec:1": {}, + "ghcr.io/dhoeric/features/trivy:1": {}, + "ghcr.io/rchaganti/vsc-devcontainer-features/azurebicep:1": {}, + "ghcr.io/rchaganti/vsc-devcontainer-features/cosign:1": {}, + "ghcr.io/rchaganti/vsc-devcontainer-features/cuelang:1": {}, + "ghcr.io/rchaganti/vsc-devcontainer-features/gitsign:1": {}, + "ghcr.io/rchaganti/vsc-devcontainer-features/tinygo:1": {}, + "ghcr.io/rchaganti/vsc-devcontainer-features/wabt:1": {}, + "ghcr.io/customink/codespaces-features/common-amzn:1": {}, + "ghcr.io/customink/codespaces-features/docker-in-docker-amzn:1": {}, + "ghcr.io/customink/codespaces-features/docker-log-level:1": {}, + "ghcr.io/customink/codespaces-features/sam-cli:1": {}, + "ghcr.io/stuartleeks/dev-container-features/azure-cli-persistence:0": {}, + "ghcr.io/stuartleeks/dev-container-features/dev-tunnels:0": {}, + "ghcr.io/stuartleeks/dev-container-features/shell-history:0": {}, + "ghcr.io/guiyomh/features/golangci-lint:0": {}, + "ghcr.io/guiyomh/features/gomarkdoc:0": {}, + "ghcr.io/guiyomh/features/goreleaser:0": {}, + "ghcr.io/guiyomh/features/gotestsum:0": {}, + "ghcr.io/guiyomh/features/just:0": {}, + "ghcr.io/guiyomh/features/mage:0": {}, + "ghcr.io/guiyomh/features/pact-go:0": {}, + "ghcr.io/guiyomh/features/vim:0": {}, + "ghcr.io/natescherer/devcontainers-custom-features/hypermodern-python:1": {}, + "ghcr.io/natescherer/devcontainers-custom-features/k9s:1": {}, + "ghcr.io/natescherer/devcontainers-custom-features/powershell-resources:1": {}, + "ghcr.io/joshspicer/features/mitm-proxy:1": {}, + "ghcr.io/joshspicer/features/oci-utils:1": {}, + "ghcr.io/shyim/devcontainers-features/blackfire:0": {}, + "ghcr.io/shyim/devcontainers-features/bun:0": {}, + "ghcr.io/shyim/devcontainers-features/php:0": {}, + "ghcr.io/shyim/devcontainers-features/shopware-cli:0": {}, + "ghcr.io/shyim/devcontainers-features/symfony-cli:0": {}, + "ghcr.io/jungaretti/features/make:1": {}, + "ghcr.io/jungaretti/features/ripgrep:1": {}, + "ghcr.io/jungaretti/features/vim:1": {}, + "ghcr.io/tlc-sundown/devcontainers-features/msquic:1": {}, + "ghcr.io/enricosecondulfo/devcontainer-features/volta:1": {}, + "ghcr.io/saml-to/devcontainer-features/assume-aws-role:2": {}, + "ghcr.io/rjfmachado/devcontainer-features/cloud-native:1": {}, + "ghcr.io/lukewiwa/features/shellcheck:0": {}, + "ghcr.io/lukewiwa/features/wait-for-it:0": {}, + "ghcr.io/rio/features/chezmoi:1": {}, + "ghcr.io/rio/features/k3d:1": {}, + "ghcr.io/rio/features/k9s:1": {}, + "ghcr.io/rio/features/kustomize:1": {}, + "ghcr.io/rio/features/skaffold:2": {}, + "ghcr.io/rio/features/vcluster:1": {}, + "ghcr.io/KusionStack/devcontainer-features/kusion:0": {}, + "ghcr.io/edouard-lopez/devcontainer-features/bats:0": {}, + "ghcr.io/jlaundry/devcontainer-features/azure-functions-core-tools:1": {}, + "ghcr.io/jlaundry/devcontainer-features/mssql-odbc-driver:1": {}, + "ghcr.io/mikaello/devcontainer-features/kotlinc:1": {}, + "ghcr.io/mikaello/devcontainer-features/modern-shell-utils:1": {}, + "ghcr.io/jsburckhardt/devcontainer-features/copa:1": {}, + "ghcr.io/jsburckhardt/devcontainer-features/crane:1": {}, + "ghcr.io/jsburckhardt/devcontainer-features/cyclonedx:1": {}, + "ghcr.io/jsburckhardt/devcontainer-features/flux:1": {}, + "ghcr.io/jsburckhardt/devcontainer-features/gic:1": {}, + "ghcr.io/jsburckhardt/devcontainer-features/gitleaks:1": {}, + "ghcr.io/jsburckhardt/devcontainer-features/jnv:1": {}, + "ghcr.io/jsburckhardt/devcontainer-features/kyverno:1": {}, + "ghcr.io/jsburckhardt/devcontainer-features/notation:1": {}, + "ghcr.io/jsburckhardt/devcontainer-features/ruff:1": {}, + "ghcr.io/jsburckhardt/devcontainer-features/skopeo:1": {}, + "ghcr.io/jsburckhardt/devcontainer-features/uv:1": {}, + "ghcr.io/jsburckhardt/devcontainer-features/zarf:1": {}, + "ghcr.io/oleksis/devcontainer-features/playground-cli:5": {}, + "ghcr.io/oleksis/devcontainer-features/python-launcher:1": {}, + "ghcr.io/ebaskoro/devcontainer-features/emscripten:1": {}, + "ghcr.io/ebaskoro/devcontainer-features/grain:0": {}, + "ghcr.io/ebaskoro/devcontainer-features/scala:1": {}, + "ghcr.io/ebaskoro/devcontainer-features/sdkman:1": {}, + "ghcr.io/warrenbuckley/codespace-features/smtp4dev:1": {}, + "ghcr.io/warrenbuckley/codespace-features/sqlite:1": {}, + "ghcr.io/roost-io/features/roost:1": {}, + "ghcr.io/lentzi90/features/clusterctl:0": {}, + "ghcr.io/lentzi90/features/kubeadm:0": {}, + "ghcr.io/lentzi90/features/kwok:0": {}, + "ghcr.io/lentzi90/features/tilt:0": {}, + "ghcr.io/lentzi90/features/yamlfmt:0": {}, + "ghcr.io/robsyme/features/nextflow:1": {}, + "ghcr.io/robsyme/features/nf-test:1": {}, + "devwasm.azurecr.io/dev-wasm/dev-wasm-feature/dotnet-wasi:0": {}, + "devwasm.azurecr.io/dev-wasm/dev-wasm-feature/golang-wasi:0": {}, + "devwasm.azurecr.io/dev-wasm/dev-wasm-feature/rust-wasi:0": {}, + "devwasm.azurecr.io/dev-wasm/dev-wasm-feature/wasmtime-wasi:0": {}, + "ghcr.io/shinepukur/devcontainer-features/vale:1": {}, + "ghcr.io/msclock/features/gitlab-ci-local:0": {}, + "ghcr.io/msclock/features/vcpkg:2": {}, + "ghcr.io/withfig/features/fig:1": {}, + "ghcr.io/mamba-org/devcontainer-features/micromamba:1": {}, + "ghcr.io/astronomer/devcontainer-features/astro-cli:1": {}, + "ghcr.io/eliises/devcontainer-features/bash-profile:1": {}, + "ghcr.io/eliises/devcontainer-features/devcontainers-cli:1": {}, + "ghcr.io/frntn/devcontainers-features/gitleaks:1": {}, + "ghcr.io/frntn/devcontainers-features/newman:1": {}, + "ghcr.io/frntn/devcontainers-features/postman:1": {}, + "ghcr.io/frntn/devcontainers-features/prism:1": {}, + "ghcr.io/christophermacgown/devcontainer-features/direnv:1": {}, + "ghcr.io/christophermacgown/devcontainer-features/easy-container-hooks:1": {}, + "ghcr.io/christophermacgown/devcontainer-features/mcfly:1": {}, + "ghcr.io/christophermacgown/devcontainer-features/minio-client:1": {}, + "ghcr.io/balazs23/devcontainers-features/bazel:1": {}, + "ghcr.io/balazs23/devcontainers-features/nx:1": {}, + "ghcr.io/mickeahlinder/devcontainer-features/tfenv:1": {}, + "ghcr.io/jckimble/devcontainer-features/hledger:1": {}, + "ghcr.io/jckimble/devcontainer-features/ngrok:3": {}, + "ghcr.io/r3dpoint/devcontainer-features/tailwindcss-standalone-cli:1": {}, + "ghcr.io/trunk-io/devcontainer-feature/trunk:1": {}, + "ghcr.io/swift-server-community/swift-devcontainer-features/SwiftFormat:0": {}, + "ghcr.io/swift-server-community/swift-devcontainer-features/foundationnetworking:1": {}, + "ghcr.io/swift-server-community/swift-devcontainer-features/jemalloc:1": {}, + "ghcr.io/swift-server-community/swift-devcontainer-features/sqlite:1": {}, + "ghcr.io/swift-server-community/swift-devcontainer-features/swift-format:0": {}, + "ghcr.io/gickis/devcontainer-features/confd:1": {}, + "ghcr.io/gickis/devcontainer-features/gomplate:1": {}, + "ghcr.io/gickis/devcontainer-features/kubeconform:1": {}, + "ghcr.io/gickis/devcontainer-features/kubeseal:1": {}, + "ghcr.io/sonikro/devcontainer-features/semgrep:1": {}, + "ghcr.io/jasonthedeveloper/features/sbom:1": {}, + "ghcr.io/dasiths/devcontainer-features/grype:1": {}, + "ghcr.io/dasiths/devcontainer-features/syft:1": {}, + "ghcr.io/flexwie/devcontainer-features/maelstrom:1": {}, + "ghcr.io/flexwie/devcontainer-features/op:1": {}, + "ghcr.io/flexwie/devcontainer-features/pulumi:1": {}, + "ghcr.io/flexwie/devcontainer-features/terraspace:1": {}, + "ghcr.io/ksh5022/devcontainer-features/d2:1": {}, + "ghcr.io/gmkonan/feature/airplane:1": {}, + "ghcr.io/dapr/cli/dapr-cli:0": {}, + "ghcr.io/azutake/devcontainer-features/go-packages-install:0": {}, + "ghcr.io/michidk/devcontainers-features/bun:1": {}, + "ghcr.io/michidk/devcontainers-features/typos:1": {}, + "ghcr.io/michidk/devcontainers-features/typst:1": {}, + "ghcr.io/wxw-matt/devcontainer-features/apt:0": {}, + "ghcr.io/wxw-matt/devcontainer-features/command_runner:0": {}, + "ghcr.io/wxw-matt/devcontainer-features/script_runner:0": {}, + "ghcr.io/vercellone/devcontainer-features/sfdx-cli:1": {}, + "ghcr.io/joedmck/devcontainer-features/cdktf:1": {}, + "ghcr.io/joedmck/devcontainer-features/cloudflared:1": {}, + "ghcr.io/joedmck/devcontainer-features/serve:1": {}, + "ghcr.io/joedmck/devcontainer-features/wrangler:1": {}, + "ghcr.io/codeman99/features/circleci-cli:1": {}, + "ghcr.io/codeman99/features/exercism-cli:1": {}, + "ghcr.io/favalos/devcontainer-features/temporalio:1": {}, + "ghcr.io/devcontainers-community/templates/dart:1": {}, + "ghcr.io/devcontainers-community/features/tinygo:1": {}, + "ghcr.io/devcontainers-community/features/surrealdb:1": {}, + "ghcr.io/devcontainers-community/features/bazel:1": {}, + "ghcr.io/devcontainers-community/features/direnv:1": {}, + "ghcr.io/devcontainers-community/features/llvm:3": {}, + "ghcr.io/devcontainers-community/features/deno:1": {}, + "ghcr.io/devcontainers-community/npm-features/prettier:1": {}, + "ghcr.io/devcontainers-community/npm-features/typescript:1": {}, + "ghcr.io/lee-orr/rusty-dev-containers/bacon:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/cargo-audit:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/cargo-bundle:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/cargo-deny:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/cargo-expand:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/cargo-llvm-cov:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/cargo-make:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/cargo-mobile:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/cargo-nextest:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/cargo-watch:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/cargo-web:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/cosmonic:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/dexterous_developer:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/dioxus:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/fermyon-spin:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/helix:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/honggfuzz:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/mprocs:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/rust_windows_msvc:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/sccache:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/spin-message-trigger:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/wasm-bindgen-cli:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/wasm-server-runner:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/wasm32-unknown-unknown:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/wasmcloud:0": {}, + "ghcr.io/lee-orr/rusty-dev-containers/zellij:0": {}, + "ghcr.io/brokeyourbike/devcontainer-features/mockery-go:0": {}, + "ghcr.io/brokeyourbike/devcontainer-features/reflex:0": {}, + "ghcr.io/brokeyourbike/devcontainer-features/staticcheck:0": {}, + "ghcr.io/nikitakurpas/features/vapor-toolbox:1": {}, + "ghcr.io/joshuanianji/devcontainer-features/aws-cli-persistence:1": {}, + "ghcr.io/joshuanianji/devcontainer-features/azure-cli-persistence-forked:0": {}, + "ghcr.io/joshuanianji/devcontainer-features/edgedb-cli:1": {}, + "ghcr.io/joshuanianji/devcontainer-features/gcloud-cli-persistence:1": {}, + "ghcr.io/joshuanianji/devcontainer-features/github-cli-persistence:1": {}, + "ghcr.io/joshuanianji/devcontainer-features/lamdera:1": {}, + "ghcr.io/joshuanianji/devcontainer-features/mount-pnpm-store:1": {}, + "ghcr.io/joshuanianji/devcontainer-features/terraform-cli-persistence:1": {}, + "ghcr.io/nullcoder/devcontainer-features/stripe-cli:1": {}, + "ghcr.io/jayree/devcontainer-features/npm-registry:1": {}, + "ghcr.io/jayree/devcontainer-features/sf-autocomplete:1": {}, + "ghcr.io/jayree/devcontainer-features/sf-plugins:1": {}, + "ghcr.io/bdsoha/devcontainers/custom-root-ca:1": {}, + "ghcr.io/tomharvey/devcontainer-features/aws-sso-util:1": {}, + "ghcr.io/azure/azure-dev/azd:0": {}, + "ghcr.io/letsramp/devcontainer-features/skyramp:1": {}, + "ghcr.io/earthly/devcontainer-features/earthly:1": {}, + "ghcr.io/stateful/devcontainer-features/runme:0": {}, + "ghcr.io/itsmechlark/features/1password:1": {}, + "ghcr.io/itsmechlark/features/act:1": {}, + "ghcr.io/itsmechlark/features/doppler:2": {}, + "ghcr.io/itsmechlark/features/postgresql:1": {}, + "ghcr.io/itsmechlark/features/rabbitmq-server:1": {}, + "ghcr.io/itsmechlark/features/redis-server:1": {}, + "ghcr.io/itsmechlark/features/snowflake-odbc:1": {}, + "ghcr.io/itsmechlark/features/trivy:1": {}, + "ghcr.io/marcozac/devcontainer-features/atlas:1": {}, + "ghcr.io/marcozac/devcontainer-features/buf:1": {}, + "ghcr.io/marcozac/devcontainer-features/gofumpt:1": {}, + "ghcr.io/marcozac/devcontainer-features/goreleaser:1": {}, + "ghcr.io/marcozac/devcontainer-features/protoc-gen-entgrpc:1": {}, + "ghcr.io/marcozac/devcontainer-features/shellcheck:1": {}, + "ghcr.io/elanhasson/devcontainer-features/digitalocean-doctl-cli-persistence:1": {}, + "ghcr.io/elanhasson/devcontainer-features/dotnet-aspire-daily:1": {}, + "ghcr.io/tiwaojo/features/mcap-cli:1": {}, + "ghcr.io/julialang/devcontainer-features/julia:1": {}, + "ghcr.io/robbert229/devcontainer-features/ko:1": {}, + "ghcr.io/robbert229/devcontainer-features/opentofu:1": {}, + "ghcr.io/robbert229/devcontainer-features/operator-sdk:1": {}, + "ghcr.io/robbert229/devcontainer-features/postgresql-client:1": {}, + "ghcr.io/nordcominc/devcontainer-features/android-sdk:1": {}, + "ghcr.io/maks1ms/devcontainers-features/wine:0": {}, + "ghcr.io/schlich/cst-devcontainer-feature/container-structure-test:1": {}, + "ghcr.io/schlich/devcontainer-features/container-structure-test:1": {}, + "ghcr.io/schlich/devcontainer-features/cypress:1": {}, + "ghcr.io/schlich/devcontainer-features/grafana:1": {}, + "ghcr.io/schlich/devcontainer-features/helix:1": {}, + "ghcr.io/schlich/devcontainer-features/helmfile:1": {}, + "ghcr.io/schlich/devcontainer-features/jenkins-x:1": {}, + "ghcr.io/schlich/devcontainer-features/just:0": {}, + "ghcr.io/schlich/devcontainer-features/node-exporter:1": {}, + "ghcr.io/schlich/devcontainer-features/openslides:1": {}, + "ghcr.io/schlich/devcontainer-features/pigz:0": {}, + "ghcr.io/schlich/devcontainer-features/pixz:0": {}, + "ghcr.io/schlich/devcontainer-features/powerlevel10k:1": {}, + "ghcr.io/schlich/devcontainer-features/rye:1": {}, + "ghcr.io/schlich/devcontainer-features/starship:0": {}, + "ghcr.io/raucha/devcontainer-features/color:1": {}, + "ghcr.io/raucha/devcontainer-features/hello:1": {}, + "ghcr.io/raucha/devcontainer-features/pytorch:1": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-aws-cli:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-bash:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-bat:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-bottom:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-broot:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-bun:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-ctop:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-curl:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-d2:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-deno:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-docker-outside-of-docker:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-fswatch:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-gh-cli:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-git:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-gpg:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-jq:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-lazygit:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-mage2postman:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-magento-cloud-cli:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-n98-magerun2:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-nano:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-navi:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-node:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-nushell:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-ohmyzsh:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-openssh:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-patch:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-pgsql-client:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-bcmath:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-composer:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-ftp:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-gd:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-intl:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-ldap:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-magento:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-mariadb:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-mssql:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-mysql:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-pcntl:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-pgsql:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-posix:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-redis:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-soap:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-sockets:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-xdebug:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-php-zip:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-phpstorm-libs:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-sentry-cli:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-sig:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-sshs:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-starship:0": {}, + "ghcr.io/cirolosapio/devcontainers-features/alpine-user:0": {}, + "ghcr.io/audacioustux/devcontainers/argo:1": {}, + "ghcr.io/audacioustux/devcontainers/aws-sam-cli:1": {}, + "ghcr.io/audacioustux/devcontainers/bazel:1": {}, + "ghcr.io/audacioustux/devcontainers/bun:1": {}, + "ghcr.io/audacioustux/devcontainers/cilium:1": {}, + "ghcr.io/audacioustux/devcontainers/common-utils-extras:1": {}, + "ghcr.io/audacioustux/devcontainers/ebort:1": {}, + "ghcr.io/audacioustux/devcontainers/flyctl:1": {}, + "ghcr.io/audacioustux/devcontainers/graalvm:1": {}, + "ghcr.io/audacioustux/devcontainers/k9s:1": {}, + "ghcr.io/audacioustux/devcontainers/knative:1": {}, + "ghcr.io/audacioustux/devcontainers/kubebuilder:1": {}, + "ghcr.io/audacioustux/devcontainers/kustomize:1": {}, + "ghcr.io/audacioustux/devcontainers/localstack:1": {}, + "ghcr.io/audacioustux/devcontainers/mirrord:1": {}, + "ghcr.io/audacioustux/devcontainers/operator-sdk:1": {}, + "ghcr.io/audacioustux/devcontainers/pack-cli:1": {}, + "ghcr.io/audacioustux/devcontainers/pulumi:1": {}, + "ghcr.io/audacioustux/devcontainers/scala-toolchain:1": {}, + "ghcr.io/audacioustux/devcontainers/taskfile:1": {}, + "ghcr.io/audacioustux/devcontainers/tilt:1": {}, + "ghcr.io/audacioustux/devcontainers/vegeta:1": {}, + "ghcr.io/audacioustux/devcontainers/wasm-toolchain:1": {}, + "ghcr.io/xfrancois/devcontainers-features/velero:1": {}, + "ghcr.io/nucleuscloud/devcontainer-features/ctlptl:0": {}, + "ghcr.io/nucleuscloud/devcontainer-features/helmfile:0": {}, + "ghcr.io/nucleuscloud/devcontainer-features/sqlc:1": {}, + "ghcr.io/joshspicer/more-features/cowsay:1": {}, + "ghcr.io/marlonpassos-git/dev-container-features/vtex-cli:0": {}, + "ghcr.io/paul-gilber/devcontainer-features/buildah-apt-get:1": {}, + "ghcr.io/paul-gilber/devcontainer-features/butane-homebrew:1": {}, + "ghcr.io/paul-gilber/devcontainer-features/eksctl-homebrew:1": {}, + "ghcr.io/paul-gilber/devcontainer-features/jinja2-cli-homebrew:1": {}, + "ghcr.io/paul-gilber/devcontainer-features/openshift-cli-homebrew:1": {}, + "ghcr.io/paul-gilber/devcontainer-features/yamllint-homebrew:1": {}, + "ghcr.io/brokenpip3/devcontainers-bats/bats-libs:0": {}, + "ghcr.io/prulloac/devcontainer-features/bun:1": {}, + "ghcr.io/prulloac/devcontainer-features/chezmoi:1": {}, + "ghcr.io/prulloac/devcontainer-features/commitizen:1": {}, + "ghcr.io/prulloac/devcontainer-features/deno:1": {}, + "ghcr.io/prulloac/devcontainer-features/gitlint:1": {}, + "ghcr.io/prulloac/devcontainer-features/latex:1": {}, + "ghcr.io/prulloac/devcontainer-features/ollama:1": {}, + "ghcr.io/prulloac/devcontainer-features/pre-commit:1": {}, + "ghcr.io/lumenpink/devcontainer-features/bun:0": {}, + "ghcr.io/lumenpink/devcontainer-features/wasm-pack:0": {}, + "ghcr.io/casl0/devcontainer-features/android-sdk:1": {}, + "ghcr.io/casl0/devcontainer-features/depot_tools:1": {}, + "ghcr.io/casl0/devcontainer-features/eksctl:1": {}, + "ghcr.io/goldsam/dev-container-features/aws-sam-cli:1": {}, + "ghcr.io/goldsam/dev-container-features/cue-lang:1": {}, + "ghcr.io/goldsam/dev-container-features/flux2:1": {}, + "ghcr.io/georgofenbeck/features/ammonite-homebrew:1": {}, + "ghcr.io/georgofenbeck/features/ammonite-linuxbinary:1": {}, + "ghcr.io/georgofenbeck/features/lazygit-homebrew:1": {}, + "ghcr.io/georgofenbeck/features/lazygit-linuxbinary:1": {}, + "ghcr.io/georgofenbeck/features/thefuck-homebrew:1": {}, + "ghcr.io/georgofenbeck/features/thefuck-pipx:1": {}, + "ghcr.io/nikobockerman/devcontainer-features/fish-persistent-data:2": {}, + "ghcr.io/nikobockerman/devcontainer-features/poetry-persistent-cache:1": {}, + "ghcr.io/nikobockerman/devcontainer-features/yarn-persistent-cache:1": {}, + "ghcr.io/hspaans/devcontainer-features/ansible-lint:1": {}, + "ghcr.io/hspaans/devcontainer-features/django-upgrade:1": {}, + "ghcr.io/hspaans/devcontainer-features/pyadr:1": {}, + "ghcr.io/hspaans/devcontainer-features/pycqa:1": {}, + "ghcr.io/hspaans/devcontainer-features/pymarkdownlnt:1": {}, + "ghcr.io/hspaans/devcontainer-features/pytest:1": {}, + "ghcr.io/hspaans/devcontainer-features/pyupgrade:1": {}, + "ghcr.io/hspaans/devcontainer-features/rstcheck:1": {}, + "ghcr.io/hspaans/devcontainer-features/sshpass:1": {}, + "ghcr.io/dlouwers/devcontainer-features/bob:1": {}, + "ghcr.io/dlouwers/devcontainer-features/devbox:1": {}, + "ghcr.io/kreemer/features/chrometesting:1": {}, + "ghcr.io/kreemer/features/helix:1": {}, + "ghcr.io/kreemer/features/stow:1": {}, + "ghcr.io/veronoicc/devcontainer-features/frida-core-devkit:1": {}, + "ghcr.io/veronoicc/devcontainer-features/frida-gum-devkit:1": {}, + "ghcr.io/veronoicc/devcontainer-features/luajit-2.1.0-beta3:1": {}, + "ghcr.io/opencodeco/devcontainers/install-php-extensions:0": {}, + "ghcr.io/va-h/devcontainers-features/difftastic:1": {}, + "ghcr.io/va-h/devcontainers-features/uv:1": {}, + "ghcr.io/bartventer/arch-devcontainer-features/aws-cli:1": {}, + "ghcr.io/bartventer/arch-devcontainer-features/azure-cli:1": {}, + "ghcr.io/bartventer/arch-devcontainer-features/common-utils:1": {}, + "ghcr.io/bartventer/arch-devcontainer-features/docker-in-docker:1": {}, + "ghcr.io/bartventer/arch-devcontainer-features/docker-outside-of-docker:1": {}, + "ghcr.io/bartventer/arch-devcontainer-features/gcloud-cli:1": {}, + "ghcr.io/bartventer/arch-devcontainer-features/go:1": {}, + "ghcr.io/bartventer/arch-devcontainer-features/terraform:1": {}, + "ghcr.io/waqqas/feature/bpmnlint:1": {}, + "ghcr.io/waqqas/feature/dmnlint:1": {}, + "ghcr.io/veryl-lang/devcontainer-features/verilator:1": {}, + "ghcr.io/veryl-lang/devcontainer-features/veryl:1": {}, + "ghcr.io/dusansimic/devcontainer-features/templ:0": {}, + "ghcr.io/duduribeiro/devcontainer-features/lunarvim:0": {}, + "ghcr.io/duduribeiro/devcontainer-features/neovim:1": {}, + "ghcr.io/duduribeiro/devcontainer-features/tmux:1": {}, + "ghcr.io/skriptfabrik/devcontainer-features/infisical-cli:1": {}, + "ghcr.io/m4tchl0ck/devcontainer-features/pact-cli:1": {}, + "ghcr.io/m4tchl0ck/devcontainer-features/powerlevel10k:1": {}, + "ghcr.io/m4tchl0ck/devcontainer-features/structurizr-lite:1": {}, + "ghcr.io/nils-geistmann/devcontainers-features/create-remote-user:0": {}, + "ghcr.io/nils-geistmann/devcontainers-features/exercism:0": {}, + "ghcr.io/nils-geistmann/devcontainers-features/zsh:0": {}, + "ghcr.io/partydrone/devcontainer/features/openfga-cli:0": {}, + "ghcr.io/rafaph/devcontainer-features/goose-cli:1": {}, + "ghcr.io/gmkonan/fly-cli-feature/flyctl:1": {}, + "ghcr.io/e-gineering/devcontainer-features/rye:1": {}, + "ghcr.io/chaoswars/synology-features/toolkit:1": {}, + "ghcr.io/tcaky/devcontainer-features/alpine-bindtools:0": {}, + "ghcr.io/tcaky/devcontainer-features/alpine-powershell:0": {}, + "ghcr.io/tcaky/devcontainer-features/alpine-tzdata:0": {}, + "ghcr.io/larsnieuwenhuizen/features/jqyq:0": {}, + "ghcr.io/larsnieuwenhuizen/features/neovim:0": {}, + "ghcr.io/larsnieuwenhuizen/features/zellij:0": {}, + "ghcr.io/enrico9034/devcontainer-features/openstack-cli:1": {}, + "ghcr.io/nikiforovall/devcontainer-features/antlr4:1": {}, + "ghcr.io/nikiforovall/devcontainer-features/dotnet-aspire:1": {}, + "ghcr.io/nikiforovall/devcontainer-features/dotnet-csharpier:1": {}, + "ghcr.io/dirsigler/devcontainer-features/helm-docs:1": {}, + "ghcr.io/sidecus/devcontainer-features/magicmirror:1": {}, + "ghcr.io/mathworks/devcontainer-features/matlab:0": {}, + "ghcr.io/jpawlowski/devcontainer-features/cascadia-code:1": {}, + "ghcr.io/jpawlowski/devcontainer-features/cli-microsoft365:1": {}, + "ghcr.io/jpawlowski/devcontainer-features/codespaces-dotfiles:1": {}, + "ghcr.io/jpawlowski/devcontainer-features/pnp.powershell:1": {}, + "ghcr.io/jpawlowski/devcontainer-features/powershell-extended:2": {}, + "ghcr.io/gvatsal60/dev-container-features/pre-commit:1": {}, + "ghcr.io/gvatsal60/dev-container-features/sonarlint:1": {}, + "ghcr.io/git-saj/devcontainer-features/terratag:1": {}, + "ghcr.io/code-fabrik/features/dokku-cli:1": {}, + "ghcr.io/juan-ayala/devcontainer-features/aem-repo-tool:1": {}, + "ghcr.io/juan-ayala/devcontainer-features/aem-sdk:1": {}, + "ghcr.io/juan-ayala/devcontainer-features/aem-universal-editor-service:1": {}, + "ghcr.io/localstack/devcontainer-feature/localstack-cli:0": {}, + "ghcr.io/adaptavist/devcontainer-features/atlassian-forge:1": {}, + "ghcr.io/phil-bell/devcontainer-features/antigen:1": {}, + "ghcr.io/haukex/devcontainer-features/perl:1": {}, + "ghcr.io/caesarovich/devcontainer-feature-crystal/crystal:1": {}, + "ghcr.io/devcontainers-extra/features/act:1": {}, + "ghcr.io/devcontainers-extra/features/act-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/actionlint:1": {}, + "ghcr.io/devcontainers-extra/features/actions-runner:1": {}, + "ghcr.io/devcontainers-extra/features/activemq-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/age:1": {}, + "ghcr.io/devcontainers-extra/features/akamai-cli:1": {}, + "ghcr.io/devcontainers-extra/features/alertmanager:1": {}, + "ghcr.io/devcontainers-extra/features/alp-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/amplify-cli:2": {}, + "ghcr.io/devcontainers-extra/features/angular-cli:2": {}, + "ghcr.io/devcontainers-extra/features/ansible:2": {}, + "ghcr.io/devcontainers-extra/features/ant-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/apko:1": {}, + "ghcr.io/devcontainers-extra/features/apt-get-packages:1": {}, + "ghcr.io/devcontainers-extra/features/apt-packages:1": {}, + "ghcr.io/devcontainers-extra/features/argo-cd:1": {}, + "ghcr.io/devcontainers-extra/features/argo-workflows:1": {}, + "ghcr.io/devcontainers-extra/features/asciidoctorj-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/asdf-package:1": {}, + "ghcr.io/devcontainers-extra/features/assemblyscript:2": {}, + "ghcr.io/devcontainers-extra/features/atlantis:1": {}, + "ghcr.io/devcontainers-extra/features/atmos:1": {}, + "ghcr.io/devcontainers-extra/features/auditjs:1": {}, + "ghcr.io/devcontainers-extra/features/autoenv:1": {}, + "ghcr.io/devcontainers-extra/features/aws-cdk:2": {}, + "ghcr.io/devcontainers-extra/features/aws-eb-cli:1": {}, + "ghcr.io/devcontainers-extra/features/aws-sso-cli:1": {}, + "ghcr.io/devcontainers-extra/features/aztfexport:1": {}, + "ghcr.io/devcontainers-extra/features/azure-apiops:1": {}, + "ghcr.io/devcontainers-extra/features/ballerina-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/bandit:2": {}, + "ghcr.io/devcontainers-extra/features/bartib:1": {}, + "ghcr.io/devcontainers-extra/features/bash-command:1": {}, + "ghcr.io/devcontainers-extra/features/beehive:1": {}, + "ghcr.io/devcontainers-extra/features/bikeshed:2": {}, + "ghcr.io/devcontainers-extra/features/bin:1": {}, + "ghcr.io/devcontainers-extra/features/black:2": {}, + "ghcr.io/devcontainers-extra/features/blackbox-exporter:1": {}, + "ghcr.io/devcontainers-extra/features/bomber:1": {}, + "ghcr.io/devcontainers-extra/features/bower:1": {}, + "ghcr.io/devcontainers-extra/features/bpipe-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/brownie:2": {}, + "ghcr.io/devcontainers-extra/features/browserify:2": {}, + "ghcr.io/devcontainers-extra/features/btop-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/btrace-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/budibase-cli:1": {}, + "ghcr.io/devcontainers-extra/features/buku:1": {}, + "ghcr.io/devcontainers-extra/features/caddy:1": {}, + "ghcr.io/devcontainers-extra/features/ccache-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/checkov:1": {}, + "ghcr.io/devcontainers-extra/features/chezscheme-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/chisel:1": {}, + "ghcr.io/devcontainers-extra/features/circleci-cli:1": {}, + "ghcr.io/devcontainers-extra/features/clojure-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/cloud-nuke:1": {}, + "ghcr.io/devcontainers-extra/features/cloudflare-wrangler:1": {}, + "ghcr.io/devcontainers-extra/features/cloudflared:1": {}, + "ghcr.io/devcontainers-extra/features/cloudflared-fips:1": {}, + "ghcr.io/devcontainers-extra/features/cloudinary-cli:1": {}, + "ghcr.io/devcontainers-extra/features/codefresh-cli:1": {}, + "ghcr.io/devcontainers-extra/features/composer:1": {}, + "ghcr.io/devcontainers-extra/features/concurnas-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/connor-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/consul-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/consul-exporter:1": {}, + "ghcr.io/devcontainers-extra/features/cookiecutter:2": {}, + "ghcr.io/devcontainers-extra/features/copier:7": {}, + "ghcr.io/devcontainers-extra/features/corepack:1": {}, + "ghcr.io/devcontainers-extra/features/cosign:1": {}, + "ghcr.io/devcontainers-extra/features/coverage-py:2": {}, + "ghcr.io/devcontainers-extra/features/crystal-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/cuba-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/curl-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/curl-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/cve-bin-tool:1": {}, + "ghcr.io/devcontainers-extra/features/cxf-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/cyclonedx-cli:1": {}, + "ghcr.io/devcontainers-extra/features/cyclonedx-python:1": {}, + "ghcr.io/devcontainers-extra/features/cz-cli:1": {}, + "ghcr.io/devcontainers-extra/features/d:1": {}, + "ghcr.io/devcontainers-extra/features/dasel-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/dashlane-cli:1": {}, + "ghcr.io/devcontainers-extra/features/datadog-ci-cli:1": {}, + "ghcr.io/devcontainers-extra/features/datasette:2": {}, + "ghcr.io/devcontainers-extra/features/dbt-coverage:1": {}, + "ghcr.io/devcontainers-extra/features/ddgr-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/ddgr-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/deno:1": {}, + "ghcr.io/devcontainers-extra/features/deno-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/devcontainers-cli:1": {}, + "ghcr.io/devcontainers-extra/features/digitalocean-cli:1": {}, + "ghcr.io/devcontainers-extra/features/direnv:1": {}, + "ghcr.io/devcontainers-extra/features/direnv-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/dive:1": {}, + "ghcr.io/devcontainers-extra/features/dnote:1": {}, + "ghcr.io/devcontainers-extra/features/doctoolchain-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/dprint-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/driftctl:1": {}, + "ghcr.io/devcontainers-extra/features/drone-cli:1": {}, + "ghcr.io/devcontainers-extra/features/dua:1": {}, + "ghcr.io/devcontainers-extra/features/duf:1": {}, + "ghcr.io/devcontainers-extra/features/dufs:1": {}, + "ghcr.io/devcontainers-extra/features/eas-cli:1": {}, + "ghcr.io/devcontainers-extra/features/eget:1": {}, + "ghcr.io/devcontainers-extra/features/elasticsearch-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/elm-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/ember-cli:1": {}, + "ghcr.io/devcontainers-extra/features/envoy:1": {}, + "ghcr.io/devcontainers-extra/features/epinio:1": {}, + "ghcr.io/devcontainers-extra/features/etcd:1": {}, + "ghcr.io/devcontainers-extra/features/exa:1": {}, + "ghcr.io/devcontainers-extra/features/exercism-cli:1": {}, + "ghcr.io/devcontainers-extra/features/expo-cli:1": {}, + "ghcr.io/devcontainers-extra/features/express-generator:2": {}, + "ghcr.io/devcontainers-extra/features/fd:1": {}, + "ghcr.io/devcontainers-extra/features/ffmpeg-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/firebase-cli:2": {}, + "ghcr.io/devcontainers-extra/features/fish-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/fkill:2": {}, + "ghcr.io/devcontainers-extra/features/flake8:2": {}, + "ghcr.io/devcontainers-extra/features/flink-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/flit:2": {}, + "ghcr.io/devcontainers-extra/features/former2-cli:1": {}, + "ghcr.io/devcontainers-extra/features/fossil-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/fossil-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/fulcio:1": {}, + "ghcr.io/devcontainers-extra/features/fzf:1": {}, + "ghcr.io/devcontainers-extra/features/gaiden-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/ganache:1": {}, + "ghcr.io/devcontainers-extra/features/gdbgui:2": {}, + "ghcr.io/devcontainers-extra/features/gh-cli:1": {}, + "ghcr.io/devcontainers-extra/features/gh-release:1": {}, + "ghcr.io/devcontainers-extra/features/git-lfs:1": {}, + "ghcr.io/devcontainers-extra/features/gitmux:1": {}, + "ghcr.io/devcontainers-extra/features/gitomatic:1": {}, + "ghcr.io/devcontainers-extra/features/gitsign:1": {}, + "ghcr.io/devcontainers-extra/features/gitsign-credential-cache:1": {}, + "ghcr.io/devcontainers-extra/features/gitty:1": {}, + "ghcr.io/devcontainers-extra/features/glances:2": {}, + "ghcr.io/devcontainers-extra/features/gleam:1": {}, + "ghcr.io/devcontainers-extra/features/go-task:1": {}, + "ghcr.io/devcontainers-extra/features/graalvm-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/gradle-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/gradleprofiler-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/grails-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/graphite-exporter:1": {}, + "ghcr.io/devcontainers-extra/features/groovy-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/groovyserv-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/grpcurl-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/grype:1": {}, + "ghcr.io/devcontainers-extra/features/gulp-cli:2": {}, + "ghcr.io/devcontainers-extra/features/hadoop-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/haskell:2": {}, + "ghcr.io/devcontainers-extra/features/hatch:2": {}, + "ghcr.io/devcontainers-extra/features/haxe-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/helmfile:1": {}, + "ghcr.io/devcontainers-extra/features/heroku-cli:1": {}, + "ghcr.io/devcontainers-extra/features/homebrew-package:1": {}, + "ghcr.io/devcontainers-extra/features/hotel:1": {}, + "ghcr.io/devcontainers-extra/features/how2:1": {}, + "ghcr.io/devcontainers-extra/features/http-server:1": {}, + "ghcr.io/devcontainers-extra/features/http4k-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/hyperfine:1": {}, + "ghcr.io/devcontainers-extra/features/immuadmin:1": {}, + "ghcr.io/devcontainers-extra/features/immuadmin-fips:1": {}, + "ghcr.io/devcontainers-extra/features/immuclient:1": {}, + "ghcr.io/devcontainers-extra/features/immuclient-fips:1": {}, + "ghcr.io/devcontainers-extra/features/immudb:1": {}, + "ghcr.io/devcontainers-extra/features/immudb-fips:1": {}, + "ghcr.io/devcontainers-extra/features/infracost:1": {}, + "ghcr.io/devcontainers-extra/features/infrastructor-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/invoke:1": {}, + "ghcr.io/devcontainers-extra/features/ionic-cli:2": {}, + "ghcr.io/devcontainers-extra/features/isort:2": {}, + "ghcr.io/devcontainers-extra/features/istioctl:1": {}, + "ghcr.io/devcontainers-extra/features/jake:1": {}, + "ghcr.io/devcontainers-extra/features/jbake-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/jbang-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/jenkinsx-cli:1": {}, + "ghcr.io/devcontainers-extra/features/jest:2": {}, + "ghcr.io/devcontainers-extra/features/jfrog-cli:1": {}, + "ghcr.io/devcontainers-extra/features/jfrog-cli-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/jfrog-cli-npm:1": {}, + "ghcr.io/devcontainers-extra/features/jira-cli:1": {}, + "ghcr.io/devcontainers-extra/features/jmc-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/jmeter-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/joern-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/jreleaser-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/jrnl:2": {}, + "ghcr.io/devcontainers-extra/features/jshint:2": {}, + "ghcr.io/devcontainers-extra/features/jsii:1": {}, + "ghcr.io/devcontainers-extra/features/jsii-diff:1": {}, + "ghcr.io/devcontainers-extra/features/jsii-pacmak:1": {}, + "ghcr.io/devcontainers-extra/features/jsii-rosetta:1": {}, + "ghcr.io/devcontainers-extra/features/json-server:1": {}, + "ghcr.io/devcontainers-extra/features/k2tf:1": {}, + "ghcr.io/devcontainers-extra/features/k6:1": {}, + "ghcr.io/devcontainers-extra/features/karaf-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/keepercommander:1": {}, + "ghcr.io/devcontainers-extra/features/ki-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/kind:1": {}, + "ghcr.io/devcontainers-extra/features/kobweb-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/kops:1": {}, + "ghcr.io/devcontainers-extra/features/kotlin-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/kscript-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/kubeclarity-cli:1": {}, + "ghcr.io/devcontainers-extra/features/kubectl-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/kubectx-kubens:1": {}, + "ghcr.io/devcontainers-extra/features/kubie:1": {}, + "ghcr.io/devcontainers-extra/features/kyverno-cli:1": {}, + "ghcr.io/devcontainers-extra/features/lastpass-cli-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/layrry-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/lean-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/lefthook-asdf:1": {}, + "ghcr.io/devcontainers-extra/features/leiningen-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/lektor:2": {}, + "ghcr.io/devcontainers-extra/features/lerna-npm:1": {}, + "ghcr.io/devcontainers-extra/features/less:2": {}, + "ghcr.io/devcontainers-extra/features/levant-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/lighthouse-cli:1": {}, + "ghcr.io/devcontainers-extra/features/linkerd2-cli-edge:1": {}, + "ghcr.io/devcontainers-extra/features/linkerd2-cli-stable:1": {}, + "ghcr.io/devcontainers-extra/features/linode-cli:1": {}, + "ghcr.io/devcontainers-extra/features/lite-server:1": {}, + "ghcr.io/devcontainers-extra/features/live-server:1": {}, + "ghcr.io/devcontainers-extra/features/localstack:2": {}, + "ghcr.io/devcontainers-extra/features/localtunnel-npm:1": {}, + "ghcr.io/devcontainers-extra/features/mackup:1": {}, + "ghcr.io/devcontainers-extra/features/markdownlint-cli:1": {}, + "ghcr.io/devcontainers-extra/features/markdownlint-cli2:1": {}, + "ghcr.io/devcontainers-extra/features/maven-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/meltano:2": {}, + "ghcr.io/devcontainers-extra/features/memcached-exporter:1": {}, + "ghcr.io/devcontainers-extra/features/micro:1": {}, + "ghcr.io/devcontainers-extra/features/micronaut-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/mitmproxy:2": {}, + "ghcr.io/devcontainers-extra/features/mkcert:1": {}, + "ghcr.io/devcontainers-extra/features/mkdocs:2": {}, + "ghcr.io/devcontainers-extra/features/mlocate-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/mlton-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/mocha:2": {}, + "ghcr.io/devcontainers-extra/features/mongodb-atlas-cli-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/mongosh-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/mosh-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/mosh-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/mulefd-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/mvnd-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/mybatis-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/mypy:2": {}, + "ghcr.io/devcontainers-extra/features/mysql-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/mysqld-exporter:1": {}, + "ghcr.io/devcontainers-extra/features/n8n:1": {}, + "ghcr.io/devcontainers-extra/features/namespace-cli:1": {}, + "ghcr.io/devcontainers-extra/features/nancy:1": {}, + "ghcr.io/devcontainers-extra/features/navi:1": {}, + "ghcr.io/devcontainers-extra/features/ncdu:1": {}, + "ghcr.io/devcontainers-extra/features/neko-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/neo4jmigrations-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/neofetch:1": {}, + "ghcr.io/devcontainers-extra/features/neovim-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/neovim-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/nestjs-cli:2": {}, + "ghcr.io/devcontainers-extra/features/netdata:1": {}, + "ghcr.io/devcontainers-extra/features/netlify-cli:1": {}, + "ghcr.io/devcontainers-extra/features/nim-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/ninja-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/nmap-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/nmap-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/nnn-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/nnn-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/node-asdf:0": {}, + "ghcr.io/devcontainers-extra/features/node-exporter:1": {}, + "ghcr.io/devcontainers-extra/features/nomad-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/nox:2": {}, + "ghcr.io/devcontainers-extra/features/npm-package:1": {}, + "ghcr.io/devcontainers-extra/features/nx-npm:1": {}, + "ghcr.io/devcontainers-extra/features/ocaml-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/oclif:1": {}, + "ghcr.io/devcontainers-extra/features/opa:1": {}, + "ghcr.io/devcontainers-extra/features/opam-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/ory-cli:1": {}, + "ghcr.io/devcontainers-extra/features/ory-hydra:1": {}, + "ghcr.io/devcontainers-extra/features/ory-kratos:1": {}, + "ghcr.io/devcontainers-extra/features/ory-oathkeeper:1": {}, + "ghcr.io/devcontainers-extra/features/packer-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/pandoc:1": {}, + "ghcr.io/devcontainers-extra/features/pass-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/pdm:2": {}, + "ghcr.io/devcontainers-extra/features/peco-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/perl-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/pierrot-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/pipenv:2": {}, + "ghcr.io/devcontainers-extra/features/pipx-package:1": {}, + "ghcr.io/devcontainers-extra/features/pnpm:2": {}, + "ghcr.io/devcontainers-extra/features/podman-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/poetry:2": {}, + "ghcr.io/devcontainers-extra/features/pomchecker-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/poppler-utils-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/powerbi-visuals-tools:2": {}, + "ghcr.io/devcontainers-extra/features/powershell:1": {}, + "ghcr.io/devcontainers-extra/features/pre-commit:2": {}, + "ghcr.io/devcontainers-extra/features/prettier:1": {}, + "ghcr.io/devcontainers-extra/features/prisma:2": {}, + "ghcr.io/devcontainers-extra/features/projen:1": {}, + "ghcr.io/devcontainers-extra/features/prometheus:1": {}, + "ghcr.io/devcontainers-extra/features/promlens:1": {}, + "ghcr.io/devcontainers-extra/features/protoc:1": {}, + "ghcr.io/devcontainers-extra/features/protoc-asdf:1": {}, + "ghcr.io/devcontainers-extra/features/pulumi:1": {}, + "ghcr.io/devcontainers-extra/features/pushgateway:1": {}, + "ghcr.io/devcontainers-extra/features/pyinfra:2": {}, + "ghcr.io/devcontainers-extra/features/pylint:2": {}, + "ghcr.io/devcontainers-extra/features/pyoxidizer:1": {}, + "ghcr.io/devcontainers-extra/features/pyscaffold:2": {}, + "ghcr.io/devcontainers-extra/features/qrcode:2": {}, + "ghcr.io/devcontainers-extra/features/quarkus-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/quasar-cli:2": {}, + "ghcr.io/devcontainers-extra/features/raku-asdf:1": {}, + "ghcr.io/devcontainers-extra/features/rclone:1": {}, + "ghcr.io/devcontainers-extra/features/redis-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/rekor-cli:1": {}, + "ghcr.io/devcontainers-extra/features/renovate-cli:2": {}, + "ghcr.io/devcontainers-extra/features/ripgrep:1": {}, + "ghcr.io/devcontainers-extra/features/rollup:2": {}, + "ghcr.io/devcontainers-extra/features/ruby-asdf:0": {}, + "ghcr.io/devcontainers-extra/features/ruff:1": {}, + "ghcr.io/devcontainers-extra/features/salesforce-cli:1": {}, + "ghcr.io/devcontainers-extra/features/salesforce-sfdx:1": {}, + "ghcr.io/devcontainers-extra/features/sanity-cli:1": {}, + "ghcr.io/devcontainers-extra/features/sap-piper:1": {}, + "ghcr.io/devcontainers-extra/features/sbt-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/scala-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/scalacli-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/scancode-toolkit:1": {}, + "ghcr.io/devcontainers-extra/features/schemacrawler-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/sentinel-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/serf-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/shfmt:1": {}, + "ghcr.io/devcontainers-extra/features/shopify-cli:1": {}, + "ghcr.io/devcontainers-extra/features/sigstore-python:1": {}, + "ghcr.io/devcontainers-extra/features/snyk-cli:1": {}, + "ghcr.io/devcontainers-extra/features/sops:1": {}, + "ghcr.io/devcontainers-extra/features/spacectl:1": {}, + "ghcr.io/devcontainers-extra/features/spark-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/spicedb:1": {}, + "ghcr.io/devcontainers-extra/features/springboot-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/sqlfluff:1": {}, + "ghcr.io/devcontainers-extra/features/squarespace-server:1": {}, + "ghcr.io/devcontainers-extra/features/sshoogr-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/starship:1": {}, + "ghcr.io/devcontainers-extra/features/starship-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/statsd-exporter:1": {}, + "ghcr.io/devcontainers-extra/features/stew:1": {}, + "ghcr.io/devcontainers-extra/features/supabase-cli:1": {}, + "ghcr.io/devcontainers-extra/features/surge-cli:1": {}, + "ghcr.io/devcontainers-extra/features/sv2v:1": {}, + "ghcr.io/devcontainers-extra/features/svu-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/syft:1": {}, + "ghcr.io/devcontainers-extra/features/syntaqx-serve:1": {}, + "ghcr.io/devcontainers-extra/features/tailscale:1": {}, + "ghcr.io/devcontainers-extra/features/talosctl:1": {}, + "ghcr.io/devcontainers-extra/features/taxi-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/tea:1": {}, + "ghcr.io/devcontainers-extra/features/tekton-cli:1": {}, + "ghcr.io/devcontainers-extra/features/tempo:1": {}, + "ghcr.io/devcontainers-extra/features/temporal-cli:1": {}, + "ghcr.io/devcontainers-extra/features/terracognita:1": {}, + "ghcr.io/devcontainers-extra/features/terraform-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/terraform-docs:1": {}, + "ghcr.io/devcontainers-extra/features/terraform-ls-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/terraformer:1": {}, + "ghcr.io/devcontainers-extra/features/terragrunt:1": {}, + "ghcr.io/devcontainers-extra/features/terramate:1": {}, + "ghcr.io/devcontainers-extra/features/terrascan:1": {}, + "ghcr.io/devcontainers-extra/features/tfc-agent-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/tfenv-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/tfsec:1": {}, + "ghcr.io/devcontainers-extra/features/tfswitch:1": {}, + "ghcr.io/devcontainers-extra/features/tldr:2": {}, + "ghcr.io/devcontainers-extra/features/tmate:1": {}, + "ghcr.io/devcontainers-extra/features/tmux-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/tmux-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/tomcat-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/tooljet-cli:1": {}, + "ghcr.io/devcontainers-extra/features/toolkit-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/tox:2": {}, + "ghcr.io/devcontainers-extra/features/tridentctl-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/truffle:1": {}, + "ghcr.io/devcontainers-extra/features/ts-node:1": {}, + "ghcr.io/devcontainers-extra/features/tsx:1": {}, + "ghcr.io/devcontainers-extra/features/turborepo-npm:1": {}, + "ghcr.io/devcontainers-extra/features/twine:2": {}, + "ghcr.io/devcontainers-extra/features/typescript:2": {}, + "ghcr.io/devcontainers-extra/features/typst:1": {}, + "ghcr.io/devcontainers-extra/features/ufmt:1": {}, + "ghcr.io/devcontainers-extra/features/upx:1": {}, + "ghcr.io/devcontainers-extra/features/vault-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/vercel-cli:1": {}, + "ghcr.io/devcontainers-extra/features/vercel-ncc:1": {}, + "ghcr.io/devcontainers-extra/features/vercel-pkg:1": {}, + "ghcr.io/devcontainers-extra/features/vercel-release:1": {}, + "ghcr.io/devcontainers-extra/features/vercel-serve:1": {}, + "ghcr.io/devcontainers-extra/features/vscode-cli:1": {}, + "ghcr.io/devcontainers-extra/features/vscode-server:1": {}, + "ghcr.io/devcontainers-extra/features/vtop:2": {}, + "ghcr.io/devcontainers-extra/features/vue-cli:2": {}, + "ghcr.io/devcontainers-extra/features/vulture:2": {}, + "ghcr.io/devcontainers-extra/features/w3m-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/w3m-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/waypoint-asdf:2": {}, + "ghcr.io/devcontainers-extra/features/webi-packages:1": {}, + "ghcr.io/devcontainers-extra/features/webtau-sdkman:2": {}, + "ghcr.io/devcontainers-extra/features/wget-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/wget-homebrew:1": {}, + "ghcr.io/devcontainers-extra/features/wireguard-apt-get:1": {}, + "ghcr.io/devcontainers-extra/features/xmrig:1": {}, + "ghcr.io/devcontainers-extra/features/xonsh:1": {}, + "ghcr.io/devcontainers-extra/features/yamllint:2": {}, + "ghcr.io/devcontainers-extra/features/yapf:2": {}, + "ghcr.io/devcontainers-extra/features/youtube-dl:2": {}, + "ghcr.io/devcontainers-extra/features/youtubeuploader:1": {}, + "ghcr.io/devcontainers-extra/features/yt-dlp:2": {}, + "ghcr.io/devcontainers-extra/features/zig:1": {}, + "ghcr.io/devcontainers-extra/features/zsh-plugins:0": {}, + "ghcr.io/sebst/devcontainer-features/cf-warp-cli:1": {}, + "ghcr.io/sebst/devcontainer-features/debug-dump-env:1": {}, + "ghcr.io/sebst/devcontainer-features/desktop:0": {}, + "ghcr.io/sebst/devcontainer-features/desktop-fluxbox:0": {}, + "ghcr.io/sebst/devcontainer-features/desktop-init:0": {}, + "ghcr.io/sebst/devcontainer-features/desktop-novnc:0": {}, + "ghcr.io/sebst/devcontainer-features/desktop-xserver:0": {}, + "ghcr.io/sebst/devcontainer-features/kmod:1": {}, + "ghcr.io/sebst/devcontainer-features/pkgx:1": {}, + "ghcr.io/sebst/devcontainer-features/set-dbus-machine-id:1": {}, + "ghcr.io/sebst/devcontainer-features/shoreman:1": {}, + "ghcr.io/sebst/devcontainer-features/tailscale.com:1": {}, + "ghcr.io/sebst/devcontainer-features/usbutils:1": {}, + "ghcr.io/sebst/devcontainer-features/webinstall.dev:1": {}, + "ghcr.io/rhiroe/features/ecspresso:1": {}, + "ghcr.io/rhiroe/features/saml2aws:1": {}, + "ghcr.io/martinaskestad/features/mingw:1": {}, + "ghcr.io/martinaskestad/features/smlnj:1": {}, + "ghcr.io/martinaskestad/features/vimsrc:1": {}, + "ghcr.io/davzucky/devcontainers-features-wolfi/bash:1": {}, + "ghcr.io/davzucky/devcontainers-features-wolfi/docker-outside-of-docker:1": {}, + "ghcr.io/davzucky/devcontainers-features-wolfi/python:1": {}, + "ghcr.io/davzucky/devcontainers-features-wolfi/user:1": {} + }, + "customizations": { + "vscode": { + "extensions": [ + "openai.openai-chatgpt-adhoc" + ] + } + } + + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + // "postCreateCommand": "uname -a", + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..f33a02c --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,12 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for more information: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates +# https://containers.dev/guide/dependabot + +version: 2 +updates: + - package-ecosystem: "devcontainers" + directory: "/" + schedule: + interval: weekly diff --git a/.github/my-workspace-1/README.md b/.github/my-workspace-1/README.md new file mode 100644 index 0000000..aadd688 --- /dev/null +++ b/.github/my-workspace-1/README.md @@ -0,0 +1,45 @@ +# My Workspace + +Welcome to the My Workspace project! This workspace is designed to help you quickly and efficiently build applications using various projects and templates. + +## Overview + +This workspace contains two main directories: `projects` and `templates`. + +### Projects + +- **Project 1**: Located in `projects/project1`, this project includes: + - `src/app.ts`: The entry point for the application. + - `src/types/index.ts`: Type definitions for better type safety. + - `package.json`: Configuration file for npm. + - `tsconfig.json`: TypeScript configuration file. + - `README.md`: Documentation specific to Project 1. + +- **Project 2**: Located in `projects/project2`, this project includes: + - `src/app.ts`: The entry point for the application. + - `src/types/index.ts`: Type definitions for better type safety. + - `package.json`: Configuration file for npm. + - `tsconfig.json`: TypeScript configuration file. + - `README.md`: Documentation specific to Project 2. + +### Templates + +- **Template 1**: Located in `templates/template1`, this template includes: + - `src/app.ts`: The entry point for the template. + - `src/types/index.ts`: Type definitions for better type safety. + - `package.json`: Configuration file for npm. + - `tsconfig.json`: TypeScript configuration file. + - `README.md`: Documentation specific to Template 1. + +- **Template 2**: Located in `templates/template2`, this template includes: + - `src/app.ts`: The entry point for the template. + - `src/types/index.ts`: Type definitions for better type safety. + - `package.json`: Configuration file for npm. + - `tsconfig.json`: TypeScript configuration file. + - `README.md`: Documentation specific to Template 2. + +## Getting Started + +To get started with any of the projects or templates, navigate to the respective directory and follow the instructions in the README files. Each project and template is self-contained and includes all necessary configurations. + +Happy coding! \ No newline at end of file diff --git a/.github/my-workspace-1/projects/project1/README.md b/.github/my-workspace-1/projects/project1/README.md new file mode 100644 index 0000000..cfe5c59 --- /dev/null +++ b/.github/my-workspace-1/projects/project1/README.md @@ -0,0 +1,42 @@ +# Project 1 + +## Overview + +Project 1 is designed to provide a robust application framework using TypeScript. It serves as an entry point for building scalable applications with a focus on type safety and modularity. + +## Installation + +To get started with Project 1, ensure you have Node.js and npm installed. Then, run the following command to install the necessary dependencies: + +``` +npm install +``` + +## Usage + +After installing the dependencies, you can start the application by running: + +``` +npm start +``` + +This will execute the entry point defined in `src/app.ts`. + +## Structure + +The project is organized as follows: + +- `src/`: Contains the source code for the application. + - `app.ts`: The main entry point of the application. + - `types/`: Contains type definitions used throughout the project. + - `index.ts`: Exports interfaces and types for better type safety. +- `package.json`: Configuration file for npm, listing dependencies and scripts. +- `tsconfig.json`: TypeScript configuration file specifying compiler options. + +## Contributing + +Contributions are welcome! Please feel free to submit a pull request or open an issue for any enhancements or bug fixes. + +## License + +This project is licensed under the MIT License. See the LICENSE file for more details. \ No newline at end of file diff --git a/.github/my-workspace-1/projects/project1/package.json b/.github/my-workspace-1/projects/project1/package.json new file mode 100644 index 0000000..fa720b5 --- /dev/null +++ b/.github/my-workspace-1/projects/project1/package.json @@ -0,0 +1,23 @@ +{ + "name": "project1", + "version": "1.0.0", + "description": "This is project1, a TypeScript application.", + "main": "src/app.ts", + "scripts": { + "build": "tsc", + "start": "node dist/app.js", + "test": "echo \"No tests specified\" && exit 0" + }, + "dependencies": { + // Add your project dependencies here + }, + "devDependencies": { + "typescript": "^4.0.0" + }, + "repository": { + "type": "git", + "url": "https://github.com/yourusername/project1.git" + }, + "author": "Your Name", + "license": "MIT" +} \ No newline at end of file diff --git a/.github/my-workspace-1/projects/project1/src/app.ts b/.github/my-workspace-1/projects/project1/src/app.ts new file mode 100644 index 0000000..c760989 --- /dev/null +++ b/.github/my-workspace-1/projects/project1/src/app.ts @@ -0,0 +1,21 @@ +import express from 'express'; +import { json } from 'body-parser'; +import { config } from 'dotenv'; + +config(); + +const app = express(); +const PORT = process.env.PORT || 3000; + +// Middleware +app.use(json()); + +// Routes +app.get('/', (req, res) => { + res.send('Welcome to Project 1!'); +}); + +// Start the server +app.listen(PORT, () => { + console.log(`Server is running on http://localhost:${PORT}`); +}); \ No newline at end of file diff --git a/.github/my-workspace-1/projects/project1/src/types/index.ts b/.github/my-workspace-1/projects/project1/src/types/index.ts new file mode 100644 index 0000000..acae489 --- /dev/null +++ b/.github/my-workspace-1/projects/project1/src/types/index.ts @@ -0,0 +1,10 @@ +export interface ExampleType { + id: number; + name: string; + description?: string; +} + +export type ExampleResponse = { + success: boolean; + data: ExampleType[]; +}; \ No newline at end of file diff --git a/.github/my-workspace-1/projects/project1/tsconfig.json b/.github/my-workspace-1/projects/project1/tsconfig.json new file mode 100644 index 0000000..b2ef031 --- /dev/null +++ b/.github/my-workspace-1/projects/project1/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "outDir": "./dist", + "rootDir": "./src" + }, + "include": [ + "src/**/*" + ], + "exclude": [ + "node_modules", + "**/*.spec.ts" + ] +} \ No newline at end of file diff --git a/.github/my-workspace-1/projects/project2/README.md b/.github/my-workspace-1/projects/project2/README.md new file mode 100644 index 0000000..46ae88e --- /dev/null +++ b/.github/my-workspace-1/projects/project2/README.md @@ -0,0 +1,42 @@ +# Project 2 + +## Overview + +Project 2 is designed to provide a robust application framework that allows for quick development and deployment of applications. This project serves as an entry point for building scalable and maintainable applications using TypeScript. + +## Installation + +To get started with Project 2, ensure you have Node.js and npm installed. Then, run the following command to install the necessary dependencies: + +```bash +npm install +``` + +## Usage + +After installing the dependencies, you can start the application by running: + +```bash +npm start +``` + +This will initialize the application and set up the necessary configurations and middleware. + +## Project Structure + +- **src/**: Contains the source code for the application. + - **app.ts**: The main entry point of the application. + - **types/**: Contains type definitions used throughout the project. + - **index.ts**: Exports interfaces and types for better type safety. + +- **package.json**: Configuration file for npm, listing dependencies and scripts. + +- **tsconfig.json**: TypeScript configuration file specifying compiler options and files to include in the compilation. + +## Contributing + +Contributions are welcome! Please feel free to submit a pull request or open an issue for any enhancements or bug fixes. + +## License + +This project is licensed under the MIT License. See the LICENSE file for more details. \ No newline at end of file diff --git a/.github/my-workspace-1/projects/project2/package.json b/.github/my-workspace-1/projects/project2/package.json new file mode 100644 index 0000000..e506807 --- /dev/null +++ b/.github/my-workspace-1/projects/project2/package.json @@ -0,0 +1,26 @@ +{ + "name": "project2", + "version": "1.0.0", + "description": "This is project2, an application built using TypeScript.", + "main": "src/app.ts", + "scripts": { + "build": "tsc", + "start": "node dist/app.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/yourusername/project2.git" + }, + "keywords": [ + "typescript", + "project2" + ], + "author": "Your Name", + "license": "MIT", + "dependencies": { + // Add your project dependencies here + }, + "devDependencies": { + "typescript": "^4.0.0" + } +} \ No newline at end of file diff --git a/.github/my-workspace-1/projects/project2/src/app.ts b/.github/my-workspace-1/projects/project2/src/app.ts new file mode 100644 index 0000000..9cedb03 --- /dev/null +++ b/.github/my-workspace-1/projects/project2/src/app.ts @@ -0,0 +1,17 @@ +import express from 'express'; + +const app = express(); +const PORT = process.env.PORT || 3000; + +// Middleware setup +app.use(express.json()); + +// Sample route +app.get('/', (req, res) => { + res.send('Welcome to Project 2!'); +}); + +// Start the server +app.listen(PORT, () => { + console.log(`Server is running on http://localhost:${PORT}`); +}); \ No newline at end of file diff --git a/.github/my-workspace-1/projects/project2/src/index.ts b/.github/my-workspace-1/projects/project2/src/index.ts new file mode 100644 index 0000000..559825e --- /dev/null +++ b/.github/my-workspace-1/projects/project2/src/index.ts @@ -0,0 +1 @@ +// This file is intentionally left blank. \ No newline at end of file diff --git a/.github/my-workspace-1/projects/project2/tsconfig.json b/.github/my-workspace-1/projects/project2/tsconfig.json new file mode 100644 index 0000000..8f5d1a9 --- /dev/null +++ b/.github/my-workspace-1/projects/project2/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "outDir": "./dist" + }, + "include": [ + "src/**/*" + ], + "exclude": [ + "node_modules", + "**/*.spec.ts" + ] +} \ No newline at end of file diff --git a/.github/my-workspace-1/templates/template1/README.md b/.github/my-workspace-1/templates/template1/README.md new file mode 100644 index 0000000..c4548d7 --- /dev/null +++ b/.github/my-workspace-1/templates/template1/README.md @@ -0,0 +1,47 @@ +# Template 1 + +This is the README file for Template 1. It provides an overview of the template and instructions for setting it up and using it in your projects. + +## Overview + +Template 1 is designed to help you quickly bootstrap your applications with a predefined structure and configuration. It includes essential files and directories to get you started with TypeScript development. + +## Getting Started + +To get started with Template 1, follow these steps: + +1. **Clone the Repository**: + Clone this template to your local machine using the following command: + ``` + git clone + ``` + +2. **Install Dependencies**: + Navigate to the template directory and install the necessary dependencies: + ```bash + cd my-workspace/templates/template1 + npm install + ``` + +3. **Run the Application**: + You can start the application by running: + ```bash + npm start + ``` + +## File Structure + +The template includes the following files: + +- `src/app.ts`: The entry point of the application. +- `src/types/index.ts`: Type definitions used throughout the template. +- `package.json`: Configuration file for npm, including dependencies and scripts. +- `tsconfig.json`: TypeScript configuration file. + +## Usage + +Feel free to modify the template according to your project's requirements. You can add new files, update configurations, and customize the application logic as needed. + +## License + +This template is open-source and available for use in your projects. Please refer to the LICENSE file for more details. \ No newline at end of file diff --git a/.github/my-workspace-1/templates/template1/package.json b/.github/my-workspace-1/templates/template1/package.json new file mode 100644 index 0000000..f778f72 --- /dev/null +++ b/.github/my-workspace-1/templates/template1/package.json @@ -0,0 +1,16 @@ +{ + "name": "template1", + "version": "1.0.0", + "description": "A template for building applications quickly and efficiently.", + "main": "src/app.js", + "scripts": { + "start": "node src/app.js", + "build": "tsc" + }, + "dependencies": {}, + "devDependencies": { + "typescript": "^4.0.0" + }, + "author": "", + "license": "ISC" +} \ No newline at end of file diff --git a/.github/my-workspace-1/templates/template1/src/app.ts b/.github/my-workspace-1/templates/template1/src/app.ts new file mode 100644 index 0000000..9cbd5ff --- /dev/null +++ b/.github/my-workspace-1/templates/template1/src/app.ts @@ -0,0 +1,17 @@ +import express from 'express'; + +const app = express(); +const PORT = process.env.PORT || 3000; + +// Middleware setup +app.use(express.json()); + +// Sample route +app.get('/', (req, res) => { + res.send('Welcome to Template 1!'); +}); + +// Start the server +app.listen(PORT, () => { + console.log(`Server is running on http://localhost:${PORT}`); +}); \ No newline at end of file diff --git a/.github/my-workspace-1/templates/template1/src/types/index.ts b/.github/my-workspace-1/templates/template1/src/types/index.ts new file mode 100644 index 0000000..a7cb340 --- /dev/null +++ b/.github/my-workspace-1/templates/template1/src/types/index.ts @@ -0,0 +1 @@ +// This file exports interfaces or types used throughout template1, providing type definitions for better type safety. \ No newline at end of file diff --git a/.github/my-workspace-1/templates/template1/tsconfig.json b/.github/my-workspace-1/templates/template1/tsconfig.json new file mode 100644 index 0000000..654c118 --- /dev/null +++ b/.github/my-workspace-1/templates/template1/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "outDir": "./dist", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "**/*.spec.ts"] +} \ No newline at end of file diff --git a/.github/my-workspace-1/templates/template2/README.md b/.github/my-workspace-1/templates/template2/README.md new file mode 100644 index 0000000..1acf415 --- /dev/null +++ b/.github/my-workspace-1/templates/template2/README.md @@ -0,0 +1,46 @@ +# Template 2 + +This is the README for Template 2. It serves as a guide for setting up and using this template in your projects. + +## Overview + +Template 2 is designed to provide a robust starting point for building applications quickly and efficiently. It includes essential configurations and a structured setup to help you get started with your development. + +## Features + +- Entry point for the application located in `src/app.ts`. +- Type definitions and interfaces are organized in `src/types/index.ts`. +- Pre-configured `package.json` for managing dependencies and scripts. +- TypeScript configuration in `tsconfig.json` for type safety and compilation. + +## Getting Started + +To use Template 2, follow these steps: + +1. **Clone the repository**: + ``` + git clone + ``` + +2. **Navigate to the template directory**: + ``` + cd my-workspace/templates/template2 + ``` + +3. **Install dependencies**: + ``` + npm install + ``` + +4. **Run the application**: + ``` + npm start + ``` + +## Customization + +Feel free to modify the files in the `src` directory to suit your application's needs. You can add new types, update the entry point, or change configurations as required. + +## License + +This template is open-source and available under the [MIT License](LICENSE). \ No newline at end of file diff --git a/.github/my-workspace-1/templates/template2/package.json b/.github/my-workspace-1/templates/template2/package.json new file mode 100644 index 0000000..75b1bd3 --- /dev/null +++ b/.github/my-workspace-1/templates/template2/package.json @@ -0,0 +1,18 @@ +{ + "name": "template2", + "version": "1.0.0", + "description": "A template for building applications quickly and efficiently.", + "main": "src/app.ts", + "scripts": { + "start": "ts-node src/app.ts", + "build": "tsc" + }, + "dependencies": { + "typescript": "^4.5.0" + }, + "devDependencies": { + "ts-node": "^10.0.0" + }, + "author": "Your Name", + "license": "MIT" +} \ No newline at end of file diff --git a/.github/my-workspace-1/templates/template2/src/app.ts b/.github/my-workspace-1/templates/template2/src/app.ts new file mode 100644 index 0000000..9810020 --- /dev/null +++ b/.github/my-workspace-1/templates/template2/src/app.ts @@ -0,0 +1,17 @@ +import express from 'express'; + +const app = express(); +const PORT = process.env.PORT || 3000; + +// Middleware setup +app.use(express.json()); + +// Sample route +app.get('/', (req, res) => { + res.send('Welcome to Template 2!'); +}); + +// Start the server +app.listen(PORT, () => { + console.log(`Server is running on http://localhost:${PORT}`); +}); \ No newline at end of file diff --git a/.github/my-workspace-1/templates/template2/src/index.ts b/.github/my-workspace-1/templates/template2/src/index.ts new file mode 100644 index 0000000..559825e --- /dev/null +++ b/.github/my-workspace-1/templates/template2/src/index.ts @@ -0,0 +1 @@ +// This file is intentionally left blank. \ No newline at end of file diff --git a/.github/my-workspace-1/templates/template2/tsconfig.json b/.github/my-workspace-1/templates/template2/tsconfig.json new file mode 100644 index 0000000..b2ef031 --- /dev/null +++ b/.github/my-workspace-1/templates/template2/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "outDir": "./dist", + "rootDir": "./src" + }, + "include": [ + "src/**/*" + ], + "exclude": [ + "node_modules", + "**/*.spec.ts" + ] +} \ No newline at end of file diff --git a/.snapshots/config.json b/.snapshots/config.json new file mode 100644 index 0000000..dfadca2 --- /dev/null +++ b/.snapshots/config.json @@ -0,0 +1,151 @@ +{ + "excluded_patterns": [ + ".git", + ".gitignore", + "gradle", + "gradlew", + "gradlew.*", + "node_modules", + ".snapshots", + ".idea", + ".vscode", + "*.log", + "*.tmp", + "target", + "dist", + "build", + ".DS_Store", + "*.bak", + "*.swp", + "*.swo", + "*.lock", + "*.iml", + "coverage", + "*.min.js", + "*.min.css", + "__pycache__", + ".marketing", + ".env", + ".env.*", + "*.jpg", + "*.jpeg", + "*.png", + "*.gif", + "*.bmp", + "*.tiff", + "*.ico", + "*.svg", + "*.webp", + "*.psd", + "*.ai", + "*.eps", + "*.indd", + "*.raw", + "*.cr2", + "*.nef", + "*.mp4", + "*.mov", + "*.avi", + "*.wmv", + "*.flv", + "*.mkv", + "*.webm", + "*.m4v", + "*.wfp", + "*.prproj", + "*.aep", + "*.psb", + "*.xcf", + "*.sketch", + "*.fig", + "*.xd", + "*.db", + "*.sqlite", + "*.sqlite3", + "*.mdb", + "*.accdb", + "*.frm", + "*.myd", + "*.myi", + "*.ibd", + "*.dbf", + "*.rdb", + "*.aof", + "*.pdb", + "*.sdb", + "*.s3db", + "*.ddb", + "*.db-shm", + "*.db-wal", + "*.sqlitedb", + "*.sql.gz", + "*.bak.sql", + "dump.sql", + "dump.rdb", + "*.vsix", + "*.jar", + "*.war", + "*.ear", + "*.zip", + "*.tar", + "*.tar.gz", + "*.tgz", + "*.rar", + "*.7z", + "*.exe", + "*.dll", + "*.so", + "*.dylib", + "*.app", + "*.dmg", + "*.iso", + "*.msi", + "*.deb", + "*.rpm", + "*.apk", + "*.aab", + "*.ipa", + "*.pkg", + "*.nupkg", + "*.snap", + "*.whl", + "*.gem", + "*.pyc", + "*.pyo", + "*.pyd", + "*.class", + "*.o", + "*.obj", + "*.lib", + "*.a", + "*.map", + ".npmrc" + ], + "default": { + "default_prompt": "Enter your prompt here", + "default_include_all_files": false, + "default_include_entire_project_structure": true + }, + "included_patterns": [ + "build.gradle", + "settings.gradle", + "gradle.properties", + "pom.xml", + "Makefile", + "CMakeLists.txt", + "package.json", + "requirements.txt", + "Pipfile", + "Gemfile", + "composer.json", + ".editorconfig", + ".eslintrc.json", + ".eslintrc.js", + ".prettierrc", + ".babelrc", + ".dockerignore", + ".gitattributes", + ".stylelintrc", + ".npmrc" + ] +} \ No newline at end of file diff --git a/.snapshots/readme.md b/.snapshots/readme.md new file mode 100644 index 0000000..21fa917 --- /dev/null +++ b/.snapshots/readme.md @@ -0,0 +1,11 @@ +# Snapshots Directory + +This directory contains snapshots of your code for AI interactions. Each snapshot is a markdown file that includes relevant code context and project structure information. + +## What's included in snapshots? +- Selected code files and their contents +- Project structure (if enabled) +- Your prompt/question for the AI + +## Configuration +You can customize snapshot behavior in `config.json`. diff --git a/.snapshots/sponsors.md b/.snapshots/sponsors.md new file mode 100644 index 0000000..2df337f --- /dev/null +++ b/.snapshots/sponsors.md @@ -0,0 +1,44 @@ +# Thank you for using Snapshots for AI + +Thanks for using Snapshots for AI. We hope this tool has helped you solve a problem or two. + +If you would like to support our work, please help us by considering the following offers and requests: + +## Ways to Support + +### Join the GBTI Network!!! 🙏🙏🙏 +The GBTI Network is a community of developers who are passionate about open source and community-driven development. Members enjoy access to exclussive tools, resources, a private MineCraft server, a listing in our members directory, co-op opportunities and more. + +- Support our work by becoming a [GBTI Network member](https://gbti.network/membership/). + +### Try out BugHerd 🐛 +BugHerd is a visual feedback and bug-tracking tool designed to streamline website development by enabling users to pin feedback directly onto web pages. This approach facilitates clear communication among clients, designers, developers, and project managers. + +- Start your free trial with [BugHerd](https://partners.bugherd.com/55z6c8az8rvr) today. + +### Hire Developers from Codeable 👥 +Codeable connects you with top-tier professionals skilled in frameworks and technologies such as Laravel, React, Django, Node, Vue.js, Angular, Ruby on Rails, and Node.js. Don't let the WordPress focus discourage you. Codeable experts do it all. + +- Visit [Codeable](https://www.codeable.io/developers/?ref=z8h3e) to hire your next team member. + +### Lead positive reviews on our marketplace listing ⭐⭐⭐⭐⭐ +- Rate us on [VSCode marketplace](https://marketplace.visualstudio.com/items?itemName=GBTI.snapshots-for-ai) +- Review us on [Cursor marketplace](https://open-vsx.org/extension/GBTI/snapshots-for-ai) + +### Star Our GitHub Repository ⭐ +- Star and watch our [repository](https://github.com/gbti-network/vscode-snapshots-for-ai) + +### 📡 Stay Connected +Follow us on your favorite platforms for updates, news, and community discussions: +- **[Twitter/X](https://twitter.com/gbti_network)** +- **[GitHub](https://github.com/gbti-network)** +- **[YouTube](https://www.youtube.com/channel/UCh4FjB6r4oWQW-QFiwqv-UA)** +- **[Dev.to](https://dev.to/gbti)** +- **[Daily.dev](https://dly.to/zfCriM6JfRF)** +- **[Hashnode](https://gbti.hashnode.dev/)** +- **[Discord Community](https://gbti.network)** +- **[Reddit Community](https://www.reddit.com/r/GBTI_network)** + +--- + +Thank you for supporting open source software! 🙏 diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..0211ce4 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "openai.openai-chatgpt-adhoc" + ] +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..b1df033 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,19 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Launch Chrome", + "type": "chrome", + "request": "launch", + "url": "http://localhost:8080", + "webRoot": "${workspaceFolder}" + }, + { + "name": "Attach to Chrome", + "type": "chrome", + "request": "attach", + "port": 9222, + "webRoot": "${workspaceFolder}" + } + ] +} diff --git a/copilot-workspace/README.md b/copilot-workspace/README.md new file mode 100644 index 0000000..386ff3b --- /dev/null +++ b/copilot-workspace/README.md @@ -0,0 +1,57 @@ +# Copilot Workspace + +## Overview + +The Copilot Workspace is designed to facilitate the rapid development of applications by providing a structured environment with templates and example projects. This workspace includes multiple projects and templates to help developers get started quickly. + +## Project Structure + +The workspace contains the following main directories: + +- **projects**: Contains individual projects with their own source code, configurations, and documentation. + - **project1**: The first example project. + - **project2**: The second example project. + +- **templates**: Contains templates for creating new projects quickly. + - **template1**: A sample template for new projects. + +## Getting Started + +To get started with the Copilot Workspace, follow these steps: + +1. **Clone the Repository**: Clone the repository to your local machine. + + ```bash + git clone + ``` + +2. **Navigate to the Workspace**: Change into the workspace directory. + + ```bash + cd copilot-workspace + ``` + +3. **Install Dependencies**: For each project, navigate to the project directory and install the necessary dependencies. + + ```bash + cd projects/project1 + npm install + ``` + +4. **Run the Application**: Start the application using the provided scripts in the `package.json`. + + ```bash + npm start + ``` + +## Documentation + +Each project and template contains its own `README.md` file with specific instructions and details about its usage. Be sure to check those files for more information. + +## Contributing + +Contributions are welcome! Please submit a pull request or open an issue for any enhancements or bug fixes. + +## License + +This project is licensed under the MIT License. See the LICENSE file for more details. \ No newline at end of file diff --git a/copilot-workspace/projects/project1/README.md b/copilot-workspace/projects/project1/README.md new file mode 100644 index 0000000..47f5896 --- /dev/null +++ b/copilot-workspace/projects/project1/README.md @@ -0,0 +1,49 @@ +# Project 1 Documentation + +## Overview + +Project 1 is a TypeScript application designed to demonstrate the capabilities of the Copilot Workspace. It serves as a template for building scalable applications with type safety and structured code. + +## Setup Instructions + +1. **Clone the Repository** + Clone the repository to your local machine using: + ``` + git clone + ``` + +2. **Navigate to Project Directory** + Change to the project directory: + ``` + cd copilot-workspace/projects/project1 + ``` + +3. **Install Dependencies** + Install the required dependencies using npm: + ``` + npm install + ``` + +4. **Build the Project** + Compile the TypeScript files: + ``` + npm run build + ``` + +5. **Run the Application** + Start the application: + ``` + npm start + ``` + +## Usage + +After setting up the project, you can modify the `src/app.ts` file to implement your application logic. The `src/types/index.ts` file can be used to define and export types and interfaces that will be used throughout the project. + +## Contributing + +Contributions are welcome! Please submit a pull request or open an issue for any enhancements or bug fixes. + +## License + +This project is licensed under the MIT License. See the LICENSE file for details. \ No newline at end of file diff --git a/copilot-workspace/projects/project1/package.json b/copilot-workspace/projects/project1/package.json new file mode 100644 index 0000000..3adc4f4 --- /dev/null +++ b/copilot-workspace/projects/project1/package.json @@ -0,0 +1,23 @@ +{ + "name": "project1", + "version": "1.0.0", + "description": "This is project1, a sample project for the Copilot Workspace.", + "main": "src/app.ts", + "scripts": { + "start": "ts-node src/app.ts", + "build": "tsc", + "test": "jest" + }, + "dependencies": { + "express": "^4.17.1" + }, + "devDependencies": { + "typescript": "^4.5.2", + "ts-node": "^10.4.0", + "jest": "^27.0.6", + "@types/jest": "^27.0.2", + "@types/node": "^16.11.7" + }, + "author": "Your Name", + "license": "MIT" +} \ No newline at end of file diff --git a/copilot-workspace/projects/project1/src/app.ts b/copilot-workspace/projects/project1/src/app.ts new file mode 100644 index 0000000..381537e --- /dev/null +++ b/copilot-workspace/projects/project1/src/app.ts @@ -0,0 +1,17 @@ +import express from 'express'; +import { json } from 'body-parser'; +import { routes } from './routes'; // Assuming you have a routes file + +const app = express(); +const PORT = process.env.PORT || 3000; + +// Middleware +app.use(json()); + +// Routes +app.use('/api', routes); + +// Start the server +app.listen(PORT, () => { + console.log(`Server is running on http://localhost:${PORT}`); +}); \ No newline at end of file diff --git a/copilot-workspace/projects/project1/src/types/index.ts b/copilot-workspace/projects/project1/src/types/index.ts new file mode 100644 index 0000000..a464d1c --- /dev/null +++ b/copilot-workspace/projects/project1/src/types/index.ts @@ -0,0 +1,15 @@ +export interface ExampleType { + id: number; + name: string; + description?: string; +} + +export type ExampleResponse = { + success: boolean; + data: ExampleType[]; +}; + +export interface Config { + apiUrl: string; + timeout: number; +} \ No newline at end of file diff --git a/copilot-workspace/projects/project1/tsconfig.json b/copilot-workspace/projects/project1/tsconfig.json new file mode 100644 index 0000000..654c118 --- /dev/null +++ b/copilot-workspace/projects/project1/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "outDir": "./dist", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "**/*.spec.ts"] +} \ No newline at end of file diff --git a/copilot-workspace/projects/project2/README.md b/copilot-workspace/projects/project2/README.md new file mode 100644 index 0000000..958e8f5 --- /dev/null +++ b/copilot-workspace/projects/project2/README.md @@ -0,0 +1,53 @@ +# Project 2 Documentation + +## Overview + +Project 2 is designed to provide a robust application structure similar to Project 1, with its own unique features and functionalities. This document outlines the setup instructions, usage, and relevant information for developers working on Project 2. + +## Setup Instructions + +1. **Clone the Repository** + Clone the repository to your local machine using the following command: + ``` + git clone + ``` + +2. **Navigate to Project 2 Directory** + Change your working directory to Project 2: + ``` + cd copilot-workspace/projects/project2 + ``` + +3. **Install Dependencies** + Install the required dependencies using npm or yarn: + ``` + npm install + ``` + or + ``` + yarn install + ``` + +4. **Build the Project** + Compile the TypeScript files: + ``` + npm run build + ``` + +5. **Run the Application** + Start the application: + ``` + npm start + ``` + +## Usage + +After setting up the project, you can start developing your application. The main entry point is located in `src/app.ts`, where you can initialize your application and set up necessary configurations and routes. + +## Contributing + +Contributions are welcome! Please follow the standard procedure for submitting pull requests and ensure that your code adheres to the project's coding standards. + +## License + +This project is licensed under the MIT License. See the LICENSE file for more details. \ No newline at end of file diff --git a/copilot-workspace/projects/project2/package.json b/copilot-workspace/projects/project2/package.json new file mode 100644 index 0000000..74ac968 --- /dev/null +++ b/copilot-workspace/projects/project2/package.json @@ -0,0 +1,23 @@ +{ + "name": "project2", + "version": "1.0.0", + "description": "This is project2, a sample project for the Copilot Workspace.", + "main": "src/app.ts", + "scripts": { + "start": "ts-node src/app.ts", + "build": "tsc", + "test": "jest" + }, + "dependencies": { + "express": "^4.17.1" + }, + "devDependencies": { + "typescript": "^4.5.2", + "ts-node": "^10.4.0", + "jest": "^27.0.6", + "@types/jest": "^27.0.1", + "@types/node": "^16.11.7" + }, + "author": "Your Name", + "license": "MIT" +} \ No newline at end of file diff --git a/copilot-workspace/projects/project2/src/app.ts b/copilot-workspace/projects/project2/src/app.ts new file mode 100644 index 0000000..df89fb6 --- /dev/null +++ b/copilot-workspace/projects/project2/src/app.ts @@ -0,0 +1,19 @@ +// This file serves as the main entry point for project2, initializing the application and setting up configurations and routes. + +import express from 'express'; + +const app = express(); +const PORT = process.env.PORT || 3000; + +// Middleware and configurations can be set up here +app.use(express.json()); + +// Example route +app.get('/', (req, res) => { + res.send('Welcome to Project 2!'); +}); + +// Start the server +app.listen(PORT, () => { + console.log(`Server is running on http://localhost:${PORT}`); +}); \ No newline at end of file diff --git a/copilot-workspace/projects/project2/src/types/index.ts b/copilot-workspace/projects/project2/src/types/index.ts new file mode 100644 index 0000000..acae489 --- /dev/null +++ b/copilot-workspace/projects/project2/src/types/index.ts @@ -0,0 +1,10 @@ +export interface ExampleType { + id: number; + name: string; + description?: string; +} + +export type ExampleResponse = { + success: boolean; + data: ExampleType[]; +}; \ No newline at end of file diff --git a/copilot-workspace/projects/project2/tsconfig.json b/copilot-workspace/projects/project2/tsconfig.json new file mode 100644 index 0000000..654c118 --- /dev/null +++ b/copilot-workspace/projects/project2/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "outDir": "./dist", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "**/*.spec.ts"] +} \ No newline at end of file diff --git a/copilot-workspace/templates/template1/README.md b/copilot-workspace/templates/template1/README.md new file mode 100644 index 0000000..226262b --- /dev/null +++ b/copilot-workspace/templates/template1/README.md @@ -0,0 +1,64 @@ +# Copilot Workspace Template 1 + +This template serves as a starting point for creating new projects within the Copilot Workspace. It includes a basic application structure, TypeScript configuration, and essential files to help you get started quickly. + +## Getting Started + +To create a new project using this template, follow these steps: + +1. **Clone the Repository**: Clone this repository to your local machine. + + ```bash + git clone + ``` + +2. **Navigate to the Template**: Go to the `template1` directory. + + ```bash + cd copilot-workspace/templates/template1 + ``` + +3. **Install Dependencies**: Use npm or yarn to install the necessary dependencies. + + ```bash + npm install + ``` + + or + + ```bash + yarn install + ``` + +4. **Run the Application**: Start the application using the following command. + + ```bash + npm start + ``` + + or + + ```bash + yarn start + ``` + +## Project Structure + +The template includes the following structure: + +``` +src/ +├── app.ts # Main entry point for the application +└── types/ + └── index.ts # Type definitions and interfaces +package.json # Project metadata and dependencies +tsconfig.json # TypeScript configuration +``` + +## Customization + +Feel free to modify the files and structure as needed to fit your project's requirements. You can add new types, components, and configurations to enhance your application. + +## License + +This template is open-source and available for use in your projects. Please refer to the LICENSE file for more details. \ No newline at end of file diff --git a/copilot-workspace/templates/template1/package.json b/copilot-workspace/templates/template1/package.json new file mode 100644 index 0000000..f7ceb16 --- /dev/null +++ b/copilot-workspace/templates/template1/package.json @@ -0,0 +1,24 @@ +{ + "name": "template1", + "version": "1.0.0", + "description": "A template for new projects in the Copilot Workspace.", + "main": "src/app.ts", + "scripts": { + "build": "tsc", + "start": "node dist/app.js" + }, + "dependencies": { + "express": "^4.17.1" + }, + "devDependencies": { + "typescript": "^4.5.2", + "@types/node": "^16.11.7", + "@types/express": "^4.17.13" + }, + "repository": { + "type": "git", + "url": "https://github.com/yourusername/copilot-workspace.git" + }, + "author": "Your Name", + "license": "MIT" +} \ No newline at end of file diff --git a/copilot-workspace/templates/template1/src/app.ts b/copilot-workspace/templates/template1/src/app.ts new file mode 100644 index 0000000..f60f5c3 --- /dev/null +++ b/copilot-workspace/templates/template1/src/app.ts @@ -0,0 +1,19 @@ +// This file serves as a template for new projects, initializing a sample application structure. + +import express from 'express'; + +const app = express(); +const PORT = process.env.PORT || 3000; + +// Middleware and routes can be set up here +app.use(express.json()); + +// Sample route +app.get('/', (req, res) => { + res.send('Welcome to the Copilot Workspace Template!'); +}); + +// Start the server +app.listen(PORT, () => { + console.log(`Server is running on http://localhost:${PORT}`); +}); \ No newline at end of file diff --git a/copilot-workspace/templates/template1/src/types/index.ts b/copilot-workspace/templates/template1/src/types/index.ts new file mode 100644 index 0000000..70cefd9 --- /dev/null +++ b/copilot-workspace/templates/template1/src/types/index.ts @@ -0,0 +1,15 @@ +export interface SampleType { + id: number; + name: string; + description?: string; +} + +export type SampleResponse = { + success: boolean; + data: SampleType[]; +}; + +export interface Config { + apiUrl: string; + timeout: number; +} \ No newline at end of file diff --git a/copilot-workspace/templates/template1/tsconfig.json b/copilot-workspace/templates/template1/tsconfig.json new file mode 100644 index 0000000..654c118 --- /dev/null +++ b/copilot-workspace/templates/template1/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "outDir": "./dist", + "rootDir": "./src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "**/*.spec.ts"] +} \ No newline at end of file