# uses allow-list, so ignore everything
*

!*.md
!license.txt

# allow github, workflows and templates
!.github/
!.github/*.yaml
!.github/*.md
!.github/CODEOWNERS
!.github/ISSUE_TEMPLATE/
!.github/ISSUE_TEMPLATE/*.yml
!.github/ISSUE_TEMPLATE/*.yaml
!.github/ISSUE_TEMPLATE/*.md
!.github/workflows/
!.github/workflows/*.yaml
!.github/workflows/.trivyignore
!.github/workflows/.zap-rules-web.tsv
!.gitignore
!.gitattributes
!.lycheeignore
!.markdownlint.yaml
!.wordlist.txt
!.spellcheck.yaml
!CNAME

# docker files
!.dockerignore
!Dockerfile

# allow build system and artwork
!cupcake/icons/*.ico
!cupcake/png/*.png
!cupcake/png/*.gif
!example.env
!minimal.env
!package.json
!package-lock.json

# documentation site
!docs/
!docs/Gemfile
!docs/Gemfile.lock
!docs/*.md
!docs/*.yml
!docs/*.html
!docs/_layouts/
!docs/_layouts/*.html
!docs/home/
!docs/home/*.md
!docs/testing/
!docs/testing/*.md
!docs/configure/
!docs/configure/*.md
!docs/install/
!docs/install/*.md
!docs/trust/
!docs/trust/*.md
!docs/development/
!docs/development/*.md
!docs/usage/
!docs/usage/*.md
!docs/assets/
!docs/assets/icons
!docs/assets/icons/*.ico
!docs/assets/images
!docs/assets/images/*.png
!docs/assets/schemas
!docs/assets/schemas/*.json

# Express server
!td.server
!td.server/src/
!td.server/src/*.js
!td.server/src/config/
!td.server/src/config/*.js
!td.server/src/controllers/
!td.server/src/controllers/*.js
!td.server/src/env/
!td.server/src/env/*.js
!td.server/src/helpers/
!td.server/src/helpers/*.js
!td.server/src/providers/
!td.server/src/providers/*.js
!td.server/src/repositories/
!td.server/src/repositories/*.js
!td.server/test/
!td.server/test/*.spec.js
!td.server/test/config/
!td.server/test/config/*.spec.js
!td.server/test/controllers/
!td.server/test/controllers/*.spec.js
!td.server/test/env/
!td.server/test/env/*.spec.js
!td.server/test/helpers/
!td.server/test/helpers/*.spec.js
!td.server/test/mocks/
!td.server/test/mocks/*mock*js
!td.server/test/providers/
!td.server/test/providers/*.spec.js
!td.server/test/public/
!td.server/test/public/*.ico
!td.server/test/repositories/
!td.server/test/repositories/*.spec.js
!td.server/.babelrc
!td.server/.eslintrc.js
!td.server/README.md
!td.server/dev.js
!td.server/index.js
!td.server/package.json
!td.server/package-lock.json

# Vue front end
!td.vue
!td.vue/.npmrc
!td.vue/**/*.vue
!td.vue/*config.js
!td.vue/**/*.scss
!td.vue/public/
!td.vue/public/*
!td.vue/src/
!td.vue/src/*.js
!td.vue/src/*.vue
!td.vue/src/assets/
!td.vue/src/assets/*.svg
!td.vue/src/assets/*.jpg
!td.vue/src/assets/schema/
!td.vue/src/assets/schema/*.json
!td.vue/src/components/
!td.vue/src/components/*.vue
!td.vue/src/components/printed-report/
!td.vue/src/components/printed-report/*.vue
!td.vue/src/components/report/
!td.vue/src/components/report/*.vue
!td.vue/src/desktop/
!td.vue/src/desktop/*.html
!td.vue/src/desktop/*.js
!td.vue/src/i18n/
!td.vue/src/i18n/*.js
!td.vue/src/icons/
!td.vue/src/icons/*
!td.vue/src/plugins/
!td.vue/src/plugins/*.js
!td.vue/src/router/
!td.vue/src/router/*.js
!td.vue/src/service/
!td.vue/src/service/*.js
!td.vue/src/service/api/
!td.vue/src/service/api/*.js
!td.vue/src/service/diagram/
!td.vue/src/service/diagram/*.js
!td.vue/src/service/demo/
!td.vue/src/service/demo/*.js
!td.vue/src/service/demo/*.json
!td.vue/src/service/desktop/
!td.vue/src/service/desktop/*.js
!td.vue/src/service/entity/
!td.vue/src/service/entity/*.js
!td.vue/src/service/migration/
!td.vue/src/service/migration/*.js
!td.vue/src/service/migration/otm/
!td.vue/src/service/migration/otm/*.js
!td.vue/src/service/migration/tdV1/
!td.vue/src/service/migration/tdV1/*.js
!td.vue/src/service/migration/tdV1/diagrams/
!td.vue/src/service/migration/tdV1/diagrams/*.js
!td.vue/src/service/migration/tmBom/
!td.vue/src/service/migration/tmBom/*.js
!td.vue/src/service/migration/tmBom/diagrams/
!td.vue/src/service/migration/tmBom/diagrams/*.js
!td.vue/src/service/migration/tmBom/diagrams/threats/
!td.vue/src/service/migration/tmBom/diagrams/threats/*.js
!td.vue/src/service/provider/
!td.vue/src/service/provider/*.js
!td.vue/src/service/schema/
!td.vue/src/service/schema/*.js
!td.vue/src/service/schema/*.json
!td.vue/src/service/threats/
!td.vue/src/service/threats/*.js
!td.vue/src/service/threats/models/
!td.vue/src/service/threats/models/*.js
!td.vue/src/service/threats/models/eop/
!td.vue/src/service/threats/models/eop/*.js
!td.vue/src/service/threats/oats/
!td.vue/src/service/threats/oats/*.js
!td.vue/src/service/x6/
!td.vue/src/service/x6/*.js
!td.vue/src/service/x6/graph/
!td.vue/src/service/x6/graph/*.js
!td.vue/src/service/x6/shapes/
!td.vue/src/service/x6/shapes/*.js
!td.vue/src/store/
!td.vue/src/store/*.js
!td.vue/src/store/actions/
!td.vue/src/store/actions/*.js
!td.vue/src/store/modules/
!td.vue/src/store/modules/*.js
!td.vue/src/styles/
!td.vue/src/styles/*.css
!td.vue/src/styles/*.scss
!td.vue/src/views/
!td.vue/src/views/*.vue
!td.vue/src/views/demo/
!td.vue/src/views/demo/*.vue
!td.vue/src/views/git/
!td.vue/src/views/git/*.vue
!td.vue/tests/
!td.vue/tests/e2e/
!td.vue/tests/e2e/*.js
!td.vue/tests/e2e/desktop/
!td.vue/tests/e2e/desktop/specs/
!td.vue/tests/e2e/desktop/specs/*.spec.js
!td.vue/tests/e2e/desktop/support/
!td.vue/tests/e2e/desktop/support/*.js
!td.vue/tests/e2e/fixtures/
!td.vue/tests/e2e/fixtures/*.json
!td.vue/tests/e2e/specs/
!td.vue/tests/e2e/specs/*.cy.js
!td.vue/tests/e2e/specs/smokes/
!td.vue/tests/e2e/specs/smokes/*.cy.js
!td.vue/tests/e2e/specs/threatmodel/
!td.vue/tests/e2e/specs/threatmodel/*.cy.js
!td.vue/tests/e2e/specs/upgrade/
!td.vue/tests/e2e/specs/upgrade/*.cy.js
!td.vue/tests/e2e/specs/visual/
!td.vue/tests/e2e/specs/visual/*.cy.js
!td.vue/tests/e2e/support/
!td.vue/tests/e2e/support/*.js
!td.vue/tests/e2e/visual/
!td.vue/tests/e2e/visual/*.js
!td.vue/tests/e2e/visual/baselines/
!td.vue/tests/e2e/visual/baselines/*.png
!td.vue/tests/unit/
!td.vue/tests/unit/*.spec.js
!td.vue/tests/unit/components/
!td.vue/tests/unit/components/*.spec.js
!td.vue/tests/unit/components/printed-report/
!td.vue/tests/unit/components/printed-report/*.spec.js
!td.vue/tests/unit/components/report/
!td.vue/tests/unit/components/report/*.spec.js
!td.vue/tests/unit/desktop/
!td.vue/tests/unit/desktop/*.spec.js
!td.vue/tests/unit/desktop/helpers/
!td.vue/tests/unit/desktop/helpers/*.js
!td.vue/tests/unit/entity/
!td.vue/tests/unit/entity/*.spec.js
!td.vue/tests/unit/helpers/
!td.vue/tests/unit/helpers/*.js
!td.vue/tests/unit/router/
!td.vue/tests/unit/router/*.spec.js
!td.vue/tests/unit/service/
!td.vue/tests/unit/service/*.spec.js
!td.vue/tests/unit/service/api/
!td.vue/tests/unit/service/api/*.spec.js
!td.vue/tests/unit/service/diagram/
!td.vue/tests/unit/service/diagram/*.spec.js
!td.vue/tests/unit/service/diagram/v1/
!td.vue/tests/unit/service/diagram/v1/*.spec.js
!td.vue/tests/unit/service/demo/
!td.vue/tests/unit/service/demo/*.spec.js
!td.vue/tests/unit/service/desktop/
!td.vue/tests/unit/service/desktop/*.spec.js
!td.vue/tests/unit/service/entity/
!td.vue/tests/unit/service/entity/*.spec.js
!td.vue/tests/unit/service/migration/
!td.vue/tests/unit/service/migration/*.spec.js
!td.vue/tests/unit/service/migration/otm/
!td.vue/tests/unit/service/migration/otm/*.spec.js
!td.vue/tests/unit/service/migration/otm/*.json
!td.vue/tests/unit/service/migration/tdV1/
!td.vue/tests/unit/service/migration/tdV1/*.spec.js
!td.vue/tests/unit/service/migration/tdV1/*.json
!td.vue/tests/unit/service/migration/tdV1/diagrams
!td.vue/tests/unit/service/migration/tdV1/diagrams/*.spec.js
!td.vue/tests/unit/service/migration/tmBom/
!td.vue/tests/unit/service/migration/tmBom/*.spec.js
!td.vue/tests/unit/service/migration/tmBom/*.json
!td.vue/tests/unit/service/migration/tmBom/diagrams/
!td.vue/tests/unit/service/migration/tmBom/diagrams/*.spec.js
!td.vue/tests/unit/service/migration/tmBom/diagrams/*.json
!td.vue/tests/unit/service/migration/tmBom/diagrams/threats/
!td.vue/tests/unit/service/migration/tmBom/diagrams/threats/*.spec.js
!td.vue/tests/unit/service/migration/tmBom/diagrams/threats/*.json
!td.vue/tests/unit/service/provider/
!td.vue/tests/unit/service/provider/*.spec.js
!td.vue/tests/unit/service/schema/
!td.vue/tests/unit/service/schema/*.spec.js
!td.vue/tests/unit/service/schema/*.json
!td.vue/tests/unit/service/threats/
!td.vue/tests/unit/service/threats/*.spec.js
!td.vue/tests/unit/service/threats/models/
!td.vue/tests/unit/service/threats/models/*.spec.js
!td.vue/tests/unit/service/x6/
!td.vue/tests/unit/service/x6/*.spec.js
!td.vue/tests/unit/service/x6/graph/
!td.vue/tests/unit/service/x6/graph/*.spec.js
!td.vue/tests/unit/service/x6/shapes/
!td.vue/tests/unit/service/x6/shapes/*.spec.js
!td.vue/tests/unit/store/actions/
!td.vue/tests/unit/store/actions/*.spec.js
!td.vue/tests/unit/store/modules/
!td.vue/tests/unit/store/modules/*.spec.js
!td.vue/tests/unit/views/
!td.vue/tests/unit/views/*.spec.js
!td.vue/tests/unit/views/demo/
!td.vue/tests/unit/views/demo/*.spec.js
!td.vue/package.json
!td.vue/package-lock.json
!td.vue/e2e.visual.config.js
!td.vue/.browserslistrc
!td.vue/.editorconfig
!td.vue/README.md
!td.vue/browserstack.nightly.json
!td.vue/browserstack.smokes.json

# sample threat models
!ThreatDragonModels
!ThreatDragonModels/*model.json
!ThreatDragonModels/test/
!ThreatDragonModels/test/*.json
