From 565736c1d99a320b84ab2ce449b473ac7a31a63f Mon Sep 17 00:00:00 2001 From: Luca Stocchi <49404737+lstocchi@users.noreply.github.com> Date: Fri, 2 Jul 2021 14:44:00 +0200 Subject: [PATCH] feat: add code for alizer npm package (#27) * add js project Signed-off-by: Luca Stocchi * update README Signed-off-by: Luca Stocchi * remove hardcoded path Signed-off-by: Luca Stocchi * add tests Signed-off-by: Luca Stocchi * add step in CI workflow for js Signed-off-by: Luca Stocchi * fix js workflow Signed-off-by: Luca Stocchi --- .github/workflows/CI.yml | 22 +- .gitignore | 5 + README.md | 53 + .../alizer/api/LanguageRecognizerTest.java | 19 +- js/package-lock.json | 2093 ++++++ js/package.json | 26 + js/resources/languages.yaml | 6622 +++++++++++++++++ js/src/constants.ts | 19 + js/src/javaRecognizer.ts | 61 + js/src/pythonRecognizer.ts | 29 + js/src/recognizer.ts | 87 + js/src/types.ts | 9 + js/src/utils.ts | 10 + js/test/recognizer.test.ts | 33 + js/tsconfig.json | 18 + .../projects/django/.gitignore | 0 .../projects/django/README.md | 0 .../projects/django/conf/reload.py | 0 .../projects/django/manage.py | 0 .../openshift/scripts/run-in-container.sh | 0 .../django-postgresql-persistent.json | 0 .../templates/django-postgresql.json | 0 .../django/openshift/templates/django.json | 0 .../projects/django/project/__init__.py | 0 .../projects/django/project/database.py | 0 .../projects/django/project/settings.py | 0 .../projects/django/project/urls.py | 0 .../projects/django/requirements.txt | 0 .../projects/django/welcome/__init__.py | 0 .../projects/django/welcome/admin.py | 0 .../projects/django/welcome/database.py | 0 .../django/welcome/migrations/0001_initial.py | 0 .../django/welcome/migrations/__init__.py | 0 .../projects/django/welcome/models.py | 0 .../welcome/templates/welcome/index.html | 0 .../projects/django/welcome/tests.py | 0 .../projects/django/welcome/views.py | 0 .../projects/django/wsgi.py | 0 .../projects/micronaut/.gitignore | 0 .../.mvn/wrapper/MavenWrapperDownloader.java | 0 .../micronaut/.mvn/wrapper/maven-wrapper.jar | Bin .../.mvn/wrapper/maven-wrapper.properties | 0 .../projects/micronaut/Dockerfile | 0 .../projects/micronaut/README.md | 0 .../projects/micronaut/micronaut-cli.yml | 0 .../projects/micronaut/mvnw | 0 .../projects/micronaut/mvnw.bat | 0 .../projects/micronaut/pom.xml | 0 .../main/java/org/example/Application.java | 0 .../src/main/resources/application.yml | 0 .../micronaut/src/main/resources/logback.xml | 0 .../test/java/org/example/UntitledTest.java | 0 .../projects/nodejs-ex/.gitignore | 0 .../projects/nodejs-ex/LICENSE | 0 .../projects/nodejs-ex/README.md | 0 .../projects/nodejs-ex/package-lock.json | 0 .../projects/nodejs-ex/package.json | 0 .../projects/nodejs-ex/server.js | 0 .../projects/nodejs-ex/test/test.js | 0 .../projects/quarkus/.dockerignore | 0 .../projects/quarkus/.gitignore | 0 .../.mvn/wrapper/MavenWrapperDownloader.java | 0 .../quarkus/.mvn/wrapper/maven-wrapper.jar | Bin .../.mvn/wrapper/maven-wrapper.properties | 0 .../projects/quarkus/README.md | 0 .../projects/quarkus/mvnw | 0 .../projects/quarkus/mvnw.cmd | 0 .../projects/quarkus/pom.xml | 0 .../quarkus/src/main/docker/Dockerfile.jvm | 0 .../quarkus/src/main/docker/Dockerfile.native | 0 .../src/main/java/org/acme/Class1.java | 0 .../src/main/java/org/acme/Class10.java | 0 .../src/main/java/org/acme/Class11.java | 0 .../src/main/java/org/acme/Class12.java | 0 .../src/main/java/org/acme/Class13.java | 0 .../src/main/java/org/acme/Class14.java | 0 .../src/main/java/org/acme/Class15.java | 0 .../src/main/java/org/acme/Class16.java | 0 .../src/main/java/org/acme/Class17.java | 0 .../src/main/java/org/acme/Class18.java | 0 .../src/main/java/org/acme/Class19.java | 0 .../src/main/java/org/acme/Class2.java | 0 .../src/main/java/org/acme/Class20.java | 0 .../src/main/java/org/acme/Class3.java | 0 .../src/main/java/org/acme/Class4.java | 0 .../src/main/java/org/acme/Class5.java | 0 .../src/main/java/org/acme/Class6.java | 0 .../src/main/java/org/acme/Class7.java | 0 .../src/main/java/org/acme/Class8.java | 0 .../src/main/java/org/acme/Class9.java | 0 .../main/java/org/acme/ExampleResource.java | 0 .../resources/META-INF/resources/index.html | 0 .../src/main/resources/application.properties | 0 .../java/org/acme/ExampleResourceTest.java | 0 .../org/acme/NativeExampleResourceIT.java | 0 95 files changed, 9095 insertions(+), 11 deletions(-) create mode 100644 js/package-lock.json create mode 100644 js/package.json create mode 100644 js/resources/languages.yaml create mode 100644 js/src/constants.ts create mode 100644 js/src/javaRecognizer.ts create mode 100644 js/src/pythonRecognizer.ts create mode 100644 js/src/recognizer.ts create mode 100644 js/src/types.ts create mode 100644 js/src/utils.ts create mode 100644 js/test/recognizer.test.ts create mode 100644 js/tsconfig.json rename {java/alizer-api/src/test/resources => resources}/projects/django/.gitignore (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/README.md (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/conf/reload.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/manage.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/openshift/scripts/run-in-container.sh (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/openshift/templates/django-postgresql-persistent.json (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/openshift/templates/django-postgresql.json (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/openshift/templates/django.json (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/project/__init__.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/project/database.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/project/settings.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/project/urls.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/requirements.txt (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/welcome/__init__.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/welcome/admin.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/welcome/database.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/welcome/migrations/0001_initial.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/welcome/migrations/__init__.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/welcome/models.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/welcome/templates/welcome/index.html (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/welcome/tests.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/welcome/views.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/django/wsgi.py (100%) rename {java/alizer-api/src/test/resources => resources}/projects/micronaut/.gitignore (100%) rename {java/alizer-api/src/test/resources => resources}/projects/micronaut/.mvn/wrapper/MavenWrapperDownloader.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/micronaut/.mvn/wrapper/maven-wrapper.jar (100%) rename {java/alizer-api/src/test/resources => resources}/projects/micronaut/.mvn/wrapper/maven-wrapper.properties (100%) rename {java/alizer-api/src/test/resources => resources}/projects/micronaut/Dockerfile (100%) rename {java/alizer-api/src/test/resources => resources}/projects/micronaut/README.md (100%) rename {java/alizer-api/src/test/resources => resources}/projects/micronaut/micronaut-cli.yml (100%) rename {java/alizer-api/src/test/resources => resources}/projects/micronaut/mvnw (100%) rename {java/alizer-api/src/test/resources => resources}/projects/micronaut/mvnw.bat (100%) rename {java/alizer-api/src/test/resources => resources}/projects/micronaut/pom.xml (100%) rename {java/alizer-api/src/test/resources => resources}/projects/micronaut/src/main/java/org/example/Application.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/micronaut/src/main/resources/application.yml (100%) rename {java/alizer-api/src/test/resources => resources}/projects/micronaut/src/main/resources/logback.xml (100%) rename {java/alizer-api/src/test/resources => resources}/projects/micronaut/src/test/java/org/example/UntitledTest.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/nodejs-ex/.gitignore (100%) rename {java/alizer-api/src/test/resources => resources}/projects/nodejs-ex/LICENSE (100%) rename {java/alizer-api/src/test/resources => resources}/projects/nodejs-ex/README.md (100%) rename {java/alizer-api/src/test/resources => resources}/projects/nodejs-ex/package-lock.json (100%) rename {java/alizer-api/src/test/resources => resources}/projects/nodejs-ex/package.json (100%) rename {java/alizer-api/src/test/resources => resources}/projects/nodejs-ex/server.js (100%) rename {java/alizer-api/src/test/resources => resources}/projects/nodejs-ex/test/test.js (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/.dockerignore (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/.gitignore (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/.mvn/wrapper/MavenWrapperDownloader.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/.mvn/wrapper/maven-wrapper.jar (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/.mvn/wrapper/maven-wrapper.properties (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/README.md (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/mvnw (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/mvnw.cmd (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/pom.xml (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/docker/Dockerfile.jvm (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/docker/Dockerfile.native (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class1.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class10.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class11.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class12.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class13.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class14.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class15.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class16.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class17.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class18.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class19.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class2.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class20.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class3.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class4.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class5.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class6.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class7.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class8.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/Class9.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/java/org/acme/ExampleResource.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/resources/META-INF/resources/index.html (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/main/resources/application.properties (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/test/java/org/acme/ExampleResourceTest.java (100%) rename {java/alizer-api/src/test/resources => resources}/projects/quarkus/src/test/java/org/acme/NativeExampleResourceIT.java (100%) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index c3b20af2..0054273a 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -1,7 +1,7 @@ # This workflow will build a Java project with Maven # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven -name: Java CI with Maven +name: Java/Js CI on: push: branches: [ main ] @@ -9,7 +9,7 @@ on: branches: [ main ] jobs: - build: + build-java: runs-on: ubuntu-latest @@ -50,3 +50,21 @@ jobs: restore-keys: ${{ runner.os }}-m2 - name: Build with Maven run: mvn -B verify -Pnative -f java + + build-js: + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: 14 + - name: Install dependencies + run: npm install + working-directory: js + - name: Build + run: npm run test + working-directory: js \ No newline at end of file diff --git a/.gitignore b/.gitignore index bdf57ce3..98c4d375 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,8 @@ nb-configuration.xml # Local environment .env + +# node +lib/ +node_modules/ +.npmignore diff --git a/README.md b/README.md index 6a35c4c4..69c0a73e 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,59 @@ alizer-cli-$version-runner analyze [-o json] alizer-cli-$version-runner devfile [-o json] [-r registry-url] ``` +### NPM Package + +Alizer also offers a NPM package providing helpers for recognize languages/frameworks in a project. It still doesn't support devfile selection. +The syntax is the following: + +``` +import * as recognizer from 'language-recognizer'; + +..... + +const languages = await recognizer.detectLanguages('my_project_folder'); + +..... + +``` + +### Outputs + +Quarkus project output example + +``` +[ + { name: 'java', builder: 'maven', frameworks: [ 'quarkus' ] }, + { name: 'gcc machine description' } +] +``` + +SpringBoot project output example + +``` +[ + { name: 'java', builder: 'maven', frameworks: [ 'springboot' ] }, + { name: 'plsql' }, + { name: 'plpgsql' }, + { name: 'sqlpl' }, + { name: 'tsql' }, + { name: 'javascript' }, + { name: 'batchfile' }, + { name: 'gcc machine description' } +] +``` + +Django project output example + +``` +[ + { name: 'python', frameworks: [ 'django' ] }, + { name: 'gcc machine description' }, + { name: 'shell' } +] +``` + + Contributing ============ This is an open source project open to anyone. This project welcomes contributions and suggestions! diff --git a/java/alizer-api/src/test/java/com/redhat/devtools/alizer/api/LanguageRecognizerTest.java b/java/alizer-api/src/test/java/com/redhat/devtools/alizer/api/LanguageRecognizerTest.java index 5b0459a1..faadb495 100644 --- a/java/alizer-api/src/test/java/com/redhat/devtools/alizer/api/LanguageRecognizerTest.java +++ b/java/alizer-api/src/test/java/com/redhat/devtools/alizer/api/LanguageRecognizerTest.java @@ -10,6 +10,7 @@ ******************************************************************************/ package com.redhat.devtools.alizer.api; +import java.io.File; import org.junit.Before; import org.junit.Test; @@ -35,56 +36,56 @@ public void testMySelf() throws IOException { @Test public void testJAVAMetaDevFile() throws IOException { - DevfileType devFile = recognizer.selectDevFileFromTypes("src/test/resources/projects/micronaut", devfileTypes); + DevfileType devFile = recognizer.selectDevFileFromTypes(new File("../../resources/projects/micronaut").getCanonicalPath(), devfileTypes); assertTrue(devFile.getName().equalsIgnoreCase("java-maven")); } @Test public void testQuarkus() throws IOException { - List status = recognizer.analyze("src/test/resources/projects/quarkus"); + List status = recognizer.analyze(new File("../../resources/projects/quarkus").getCanonicalPath()); assertTrue(status.stream().anyMatch(lang -> lang.getName().equalsIgnoreCase("JAVA"))); } @Test public void testQuarkusDevFileType() throws IOException { - DevfileType devFile = recognizer.selectDevFileFromTypes("src/test/resources/projects/quarkus", devfileTypes); + DevfileType devFile = recognizer.selectDevFileFromTypes(new File("../../resources/projects/quarkus").getCanonicalPath(), devfileTypes); assertTrue(devFile.getName().equalsIgnoreCase("java-quarkus")); } @Test public void testMicronaut() throws IOException { - List status = recognizer.analyze("src/test/resources/projects/micronaut"); + List status = recognizer.analyze(new File("../../resources/projects/micronaut").getCanonicalPath()); assertTrue(status.stream().anyMatch(lang -> lang.getName().equalsIgnoreCase("JAVA"))); } @Test public void testMicronautDevFile() throws IOException { - DevfileType devFile = recognizer.selectDevFileFromTypes("src/test/resources/projects/micronaut", devfileTypes); + DevfileType devFile = recognizer.selectDevFileFromTypes(new File("../../resources/projects/micronaut").getCanonicalPath(), devfileTypes); assertTrue(devFile.getName().equalsIgnoreCase("java-maven")); } @Test public void testNode() throws IOException { - List status = recognizer.analyze("src/test/resources/projects/nodejs-ex"); + List status = recognizer.analyze(new File("../../resources/projects/nodejs-ex").getCanonicalPath()); assertTrue(status.stream().anyMatch(lang -> lang.getName().equalsIgnoreCase("JavaScript"))); } @Test public void testNodeDevFile() throws IOException { - DevfileType devFile = recognizer.selectDevFileFromTypes("src/test/resources/projects/nodejs-ex", devfileTypes); + DevfileType devFile = recognizer.selectDevFileFromTypes(new File("../../resources/projects/nodejs-ex").getCanonicalPath(), devfileTypes); assertTrue(devFile.getName().equalsIgnoreCase("nodejs")); } @Test public void testDjango() throws IOException { - List status = recognizer.analyze("src/test/resources/projects/django"); + List status = recognizer.analyze(new File("../../resources/projects/django").getCanonicalPath()); assertTrue(status.stream().anyMatch(lang -> lang.getName().equalsIgnoreCase("Python"))); } @Test public void testDjangoDevFile() throws IOException { - DevfileType devFile = recognizer.selectDevFileFromTypes("src/test/resources/projects/django", devfileTypes); + DevfileType devFile = recognizer.selectDevFileFromTypes(new File("../../resources/projects/django").getCanonicalPath(), devfileTypes); assertTrue(devFile.getName().equalsIgnoreCase("python-django")); } } diff --git a/js/package-lock.json b/js/package-lock.json new file mode 100644 index 00000000..f1dbbc3a --- /dev/null +++ b/js/package-lock.json @@ -0,0 +1,2093 @@ +{ + "name": "language-recognizer", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "language-recognizer", + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "glob": "^7.1.6", + "js-yaml": "^3.14.0" + }, + "devDependencies": { + "@types/mocha": "^8.2.2", + "@types/node": "^14.14.7", + "@types/sinon": "^10.0.2", + "mocha": "^9.0.1", + "sinon": "^11.1.1", + "typescript": "^4.0.5" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", + "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true + }, + "node_modules/@types/mocha": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.2.tgz", + "integrity": "sha512-Lwh0lzzqT5Pqh6z61P3c3P5nm6fzQK/MMHl9UKeneAeInVflBSz1O2EkX6gM6xfJd7FBXBY5purtLx7fUiZ7Hw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "14.14.7", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sinon": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.2.tgz", + "integrity": "sha512-BHn8Bpkapj8Wdfxvh2jWIUoaYB/9/XhsL0oOvBfRagJtKlSl9NWPcFOz2lRukI9szwGxFtYZCTejJSqsGDbdmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinonjs/fake-timers": "^7.1.0" + } + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.0", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.0.1.tgz", + "integrity": "sha512-9zwsavlRO+5csZu6iRtl3GHImAbhERoDsZwdRkdJ/bE+eVplmoxNKE901ZJ9LdSchYBjSCPbjKc5XvcAri2ylw==", + "dev": true, + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.1", + "debug": "4.3.1", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.1.7", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "3.0.4", + "ms": "2.1.3", + "nanoid": "3.1.23", + "serialize-javascript": "5.0.1", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "wide-align": "1.1.3", + "workerpool": "6.1.4", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/mocha/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nise": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", + "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/sinon": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.1.tgz", + "integrity": "sha512-ZSSmlkSyhUWbkF01Z9tEbxZLF/5tRC9eojCdFh33gtQaP7ITQVaMWQHGuFM7Cuf/KEfihuh1tTl3/ABju3AQMg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^7.1.0", + "@sinonjs/samsam": "^6.0.2", + "diff": "^5.0.0", + "nise": "^5.1.0", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "license": "BSD-3-Clause" + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "4.0.5", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/workerpool": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.4.tgz", + "integrity": "sha512-jGWPzsUqzkow8HoAvqaPWTUPCrlPJaJ5tY8Iz7n1uCz3tTp6s3CDG0FF1NsX42WNlkRSW6Mr+CDZGnNoSsKa7g==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "license": "ISC" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@sinonjs/samsam": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", + "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true + }, + "@types/mocha": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.2.tgz", + "integrity": "sha512-Lwh0lzzqT5Pqh6z61P3c3P5nm6fzQK/MMHl9UKeneAeInVflBSz1O2EkX6gM6xfJd7FBXBY5purtLx7fUiZ7Hw==", + "dev": true + }, + "@types/node": { + "version": "14.14.7", + "dev": true + }, + "@types/sinon": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.2.tgz", + "integrity": "sha512-BHn8Bpkapj8Wdfxvh2jWIUoaYB/9/XhsL0oOvBfRagJtKlSl9NWPcFOz2lRukI9szwGxFtYZCTejJSqsGDbdmw==", + "dev": true, + "requires": { + "@sinonjs/fake-timers": "^7.1.0" + } + }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "balanced-match": { + "version": "1.0.0" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1" + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "esprima": { + "version": "4.0.1" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "js-yaml": { + "version": "3.14.0", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "minimatch": { + "version": "3.0.4", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mocha": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.0.1.tgz", + "integrity": "sha512-9zwsavlRO+5csZu6iRtl3GHImAbhERoDsZwdRkdJ/bE+eVplmoxNKE901ZJ9LdSchYBjSCPbjKc5XvcAri2ylw==", + "dev": true, + "requires": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.1", + "debug": "4.3.1", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.1.7", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "3.0.4", + "ms": "2.1.3", + "nanoid": "3.1.23", + "serialize-javascript": "5.0.1", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "wide-align": "1.1.3", + "workerpool": "6.1.4", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "nanoid": { + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "dev": true + }, + "nise": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", + "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "requires": { + "wrappy": "1" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "sinon": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.1.tgz", + "integrity": "sha512-ZSSmlkSyhUWbkF01Z9tEbxZLF/5tRC9eojCdFh33gtQaP7ITQVaMWQHGuFM7Cuf/KEfihuh1tTl3/ABju3AQMg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^7.1.0", + "@sinonjs/samsam": "^6.0.2", + "diff": "^5.0.0", + "nise": "^5.1.0", + "supports-color": "^7.2.0" + } + }, + "sprintf-js": { + "version": "1.0.3" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "typescript": { + "version": "4.0.5", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "workerpool": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.4.tgz", + "integrity": "sha512-jGWPzsUqzkow8HoAvqaPWTUPCrlPJaJ5tY8Iz7n1uCz3tTp6s3CDG0FF1NsX42WNlkRSW6Mr+CDZGnNoSsKa7g==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/js/package.json b/js/package.json new file mode 100644 index 00000000..2b048a5b --- /dev/null +++ b/js/package.json @@ -0,0 +1,26 @@ +{ + "name": "language-recognizer", + "version": "0.0.1", + "description": "", + "main": "lib/src/recognizer.js", + "scripts": { + "compile": "tsc -p . && npm run copy-files", + "clean": "rm -rf lib || rmdir lib /s /q", + "copy-files": "cp -r ./resources ./lib/resources", + "test": "npm run clean && npm run compile && mocha ./lib/test/recognizer.test.js" + }, + "author": "Red Hat", + "license": "MIT", + "dependencies": { + "glob": "^7.1.6", + "js-yaml": "^3.14.0" + }, + "devDependencies": { + "@types/mocha": "^8.2.2", + "@types/node": "^14.14.7", + "@types/sinon": "^10.0.2", + "mocha": "^9.0.1", + "sinon": "^11.1.1", + "typescript": "^4.0.5" + } +} diff --git a/js/resources/languages.yaml b/js/resources/languages.yaml new file mode 100644 index 00000000..1f859181 --- /dev/null +++ b/js/resources/languages.yaml @@ -0,0 +1,6622 @@ +# Defines all Languages known to GitHub. +# +# fs_name - Optional field. Only necessary as a replacement for the sample directory name if the +# language name is not a valid filename under the Windows filesystem (e.g., if it +# contains an asterisk). +# type - Either data, programming, markup, prose, or nil +# aliases - An Array of additional aliases (implicitly +# includes name.downcase) +# ace_mode - A String name of the Ace Mode used for highlighting whenever +# a file is edited. This must match one of the filenames in http://git.io/3XO_Cg. +# Use "text" if a mode does not exist. +# codemirror_mode - A String name of the CodeMirror Mode used for highlighting whenever a file is edited. +# This must match a mode from https://git.io/vi9Fx +# codemirror_mime_type - A String name of the file mime type used for highlighting whenever a file is edited. +# This should match the `mime` associated with the mode from https://git.io/f4SoQ +# wrap - Boolean wrap to enable line wrapping (default: false) +# extensions - An Array of associated extensions (the first one is +# considered the primary extension, the others should be +# listed alphabetically) +# filenames - An Array of filenames commonly associated with the language +# interpreters - An Array of associated interpreters +# searchable - Boolean flag to enable searching (defaults to true) +# language_id - Integer used as a language-name-independent indexed field so that we can rename +# languages in Linguist without reindexing all the code on GitHub. Must not be +# changed for existing languages without the explicit permission of GitHub staff. +# color - CSS hex color to represent the language. Only used if type is "programming" or "markup". +# tm_scope - The TextMate scope that represents this programming +# language. This should match one of the scopes listed in +# the grammars.yml file. Use "none" if there is no grammar +# for this language. +# group - Name of the parent language. Languages in a group are counted +# in the statistics as the parent language. +# +# Any additions or modifications (even trivial) should have corresponding +# test changes in `test/test_blob.rb`. +# +# Please keep this list alphabetized. Capitalization comes before lowercase. + +--- +1C Enterprise: + type: programming + color: "#814CCC" + extensions: + - ".bsl" + - ".os" + tm_scope: source.bsl + ace_mode: text + language_id: 0 +4D: + type: programming + extensions: + - ".4dm" + tm_scope: source.4dm + ace_mode: text + language_id: 577529595 +ABAP: + type: programming + color: "#E8274B" + extensions: + - ".abap" + tm_scope: source.abap + ace_mode: abap + language_id: 1 +ABNF: + type: data + ace_mode: text + extensions: + - ".abnf" + tm_scope: source.abnf + language_id: 429 +AGS Script: + type: programming + color: "#B9D9FF" + aliases: + - ags + extensions: + - ".asc" + - ".ash" + tm_scope: source.c++ + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-c++src + language_id: 2 +AL: + type: programming + color: "#3AA2B5" + extensions: + - ".al" + tm_scope: source.al + ace_mode: text + language_id: 658971832 +AMPL: + type: programming + color: "#E6EFBB" + extensions: + - ".ampl" + - ".mod" + tm_scope: source.ampl + ace_mode: text + language_id: 3 +ANTLR: + type: programming + color: "#9DC3FF" + extensions: + - ".g4" + tm_scope: source.antlr + ace_mode: text + language_id: 4 +API Blueprint: + type: markup + color: "#2ACCA8" + ace_mode: markdown + extensions: + - ".apib" + tm_scope: text.html.markdown.source.gfm.apib + language_id: 5 +APL: + type: programming + color: "#5A8164" + extensions: + - ".apl" + - ".dyalog" + interpreters: + - apl + - aplx + - dyalog + tm_scope: source.apl + ace_mode: text + codemirror_mode: apl + codemirror_mime_type: text/apl + language_id: 6 +ASL: + type: programming + ace_mode: text + extensions: + - ".asl" + - ".dsl" + tm_scope: source.asl + language_id: 124996147 +ASN.1: + type: data + extensions: + - ".asn" + - ".asn1" + tm_scope: source.asn + ace_mode: text + codemirror_mode: asn.1 + codemirror_mime_type: text/x-ttcn-asn + language_id: 7 +ASP.NET: + type: programming + tm_scope: text.html.asp + color: "#9400ff" + aliases: + - aspx + - aspx-vb + extensions: + - ".asax" + - ".ascx" + - ".ashx" + - ".asmx" + - ".aspx" + - ".axd" + ace_mode: text + codemirror_mode: htmlembedded + codemirror_mime_type: application/x-aspx + language_id: 564186416 +ATS: + type: programming + color: "#1ac620" + aliases: + - ats2 + extensions: + - ".dats" + - ".hats" + - ".sats" + tm_scope: source.ats + ace_mode: ocaml + language_id: 9 +ActionScript: + type: programming + tm_scope: source.actionscript.3 + color: "#882B0F" + aliases: + - actionscript 3 + - actionscript3 + - as3 + extensions: + - ".as" + ace_mode: actionscript + language_id: 10 +Ada: + type: programming + color: "#02f88c" + extensions: + - ".adb" + - ".ada" + - ".ads" + aliases: + - ada95 + - ada2005 + tm_scope: source.ada + ace_mode: ada + language_id: 11 +Adobe Font Metrics: + type: data + tm_scope: source.afm + extensions: + - ".afm" + aliases: + - acfm + - adobe composite font metrics + - adobe multiple font metrics + - amfm + ace_mode: text + language_id: 147198098 +Agda: + type: programming + color: "#315665" + extensions: + - ".agda" + tm_scope: source.agda + ace_mode: text + language_id: 12 +Alloy: + type: programming + color: "#64C800" + extensions: + - ".als" + tm_scope: source.alloy + ace_mode: text + language_id: 13 +Alpine Abuild: + type: programming + group: Shell + aliases: + - abuild + - apkbuild + filenames: + - APKBUILD + tm_scope: source.shell + ace_mode: sh + codemirror_mode: shell + codemirror_mime_type: text/x-sh + language_id: 14 +Altium Designer: + type: data + aliases: + - altium + extensions: + - ".OutJob" + - ".PcbDoc" + - ".PrjPCB" + - ".SchDoc" + tm_scope: source.ini + ace_mode: ini + language_id: 187772328 +AngelScript: + type: programming + color: "#C7D7DC" + extensions: + - ".as" + - ".angelscript" + tm_scope: source.angelscript + ace_mode: text + codemirror_mode: clike + codemirror_mime_type: text/x-c++src + language_id: 389477596 +Ant Build System: + type: data + tm_scope: text.xml.ant + filenames: + - ant.xml + - build.xml + ace_mode: xml + codemirror_mode: xml + codemirror_mime_type: application/xml + language_id: 15 +ApacheConf: + type: data + aliases: + - aconf + - apache + extensions: + - ".apacheconf" + - ".vhost" + filenames: + - ".htaccess" + - apache2.conf + - httpd.conf + tm_scope: source.apache-config + ace_mode: apache_conf + language_id: 16 +Apex: + type: programming + color: "#1797c0" + extensions: + - ".cls" + tm_scope: source.java + ace_mode: java + codemirror_mode: clike + codemirror_mime_type: text/x-java + language_id: 17 +Apollo Guidance Computer: + type: programming + color: "#0B3D91" + group: Assembly + extensions: + - ".agc" + tm_scope: source.agc + ace_mode: assembly_x86 + language_id: 18 +AppleScript: + type: programming + aliases: + - osascript + extensions: + - ".applescript" + - ".scpt" + interpreters: + - osascript + tm_scope: source.applescript + ace_mode: applescript + color: "#101F1F" + language_id: 19 +Arc: + type: programming + color: "#aa2afe" + extensions: + - ".arc" + tm_scope: none + ace_mode: text + language_id: 20 +AsciiDoc: + type: prose + ace_mode: asciidoc + wrap: true + extensions: + - ".asciidoc" + - ".adoc" + - ".asc" + tm_scope: text.html.asciidoc + language_id: 22 +AspectJ: + type: programming + color: "#a957b0" + extensions: + - ".aj" + tm_scope: source.aspectj + ace_mode: text + language_id: 23 +Assembly: + type: programming + color: "#6E4C13" + aliases: + - asm + - nasm + extensions: + - ".asm" + - ".a51" + - ".i" + - ".inc" + - ".nasm" + tm_scope: source.assembly + ace_mode: assembly_x86 + language_id: 24 +Asymptote: + type: programming + color: "#ff0000" + extensions: + - ".asy" + interpreters: + - asy + tm_scope: source.c++ + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-kotlin + language_id: 591605007 +Augeas: + type: programming + extensions: + - ".aug" + tm_scope: none + ace_mode: text + language_id: 25 +AutoHotkey: + type: programming + color: "#6594b9" + aliases: + - ahk + extensions: + - ".ahk" + - ".ahkl" + tm_scope: source.ahk + ace_mode: autohotkey + language_id: 26 +AutoIt: + type: programming + color: "#1C3552" + aliases: + - au3 + - AutoIt3 + - AutoItScript + extensions: + - ".au3" + tm_scope: source.autoit + ace_mode: autohotkey + language_id: 27 +Avro IDL: + type: data + extensions: + - ".avdl" + tm_scope: source.avro + ace_mode: text + language_id: 785497837 +Awk: + type: programming + extensions: + - ".awk" + - ".auk" + - ".gawk" + - ".mawk" + - ".nawk" + interpreters: + - awk + - gawk + - mawk + - nawk + tm_scope: source.awk + ace_mode: text + language_id: 28 +Ballerina: + type: programming + extensions: + - ".bal" + tm_scope: source.ballerina + ace_mode: text + color: "#FF5000" + language_id: 720859680 +Batchfile: + type: programming + aliases: + - bat + - batch + - dosbatch + - winbatch + extensions: + - ".bat" + - ".cmd" + tm_scope: source.batchfile + ace_mode: batchfile + color: "#C1F12E" + language_id: 29 +Befunge: + type: programming + extensions: + - ".befunge" + tm_scope: source.befunge + ace_mode: text + language_id: 30 +BibTeX: + type: markup + group: TeX + extensions: + - ".bib" + - ".bibtex" + tm_scope: text.bibtex + ace_mode: tex + codemirror_mode: stex + codemirror_mime_type: text/x-stex + language_id: 982188347 +Bison: + type: programming + color: "#6A463F" + group: Yacc + tm_scope: source.yacc + extensions: + - ".bison" + ace_mode: text + language_id: 31 +BitBake: + type: programming + tm_scope: none + extensions: + - ".bb" + ace_mode: text + language_id: 32 +Blade: + type: markup + color: "#f7523f" + extensions: + - ".blade" + - ".blade.php" + tm_scope: text.html.php.blade + ace_mode: text + language_id: 33 +BlitzBasic: + type: programming + aliases: + - b3d + - blitz3d + - blitzplus + - bplus + extensions: + - ".bb" + - ".decls" + tm_scope: source.blitzmax + ace_mode: text + language_id: 34 +BlitzMax: + type: programming + color: "#cd6400" + extensions: + - ".bmx" + aliases: + - bmax + tm_scope: source.blitzmax + ace_mode: text + language_id: 35 +Bluespec: + type: programming + extensions: + - ".bsv" + tm_scope: source.bsv + ace_mode: verilog + language_id: 36 +Boo: + type: programming + color: "#d4bec1" + extensions: + - ".boo" + ace_mode: text + tm_scope: source.boo + language_id: 37 +Brainfuck: + type: programming + color: "#2F2530" + extensions: + - ".b" + - ".bf" + tm_scope: source.bf + ace_mode: text + codemirror_mode: brainfuck + codemirror_mime_type: text/x-brainfuck + language_id: 38 +Brightscript: + type: programming + extensions: + - ".brs" + tm_scope: source.brightscript + ace_mode: text + language_id: 39 +C: + type: programming + color: "#555555" + extensions: + - ".c" + - ".cats" + - ".h" + - ".idc" + interpreters: + - tcc + tm_scope: source.c + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-csrc + language_id: 41 +C#: + type: programming + ace_mode: csharp + codemirror_mode: clike + codemirror_mime_type: text/x-csharp + tm_scope: source.cs + color: "#178600" + aliases: + - csharp + extensions: + - ".cs" + - ".cake" + - ".csx" + - ".linq" + language_id: 42 +C++: + type: programming + tm_scope: source.c++ + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-c++src + color: "#f34b7d" + aliases: + - cpp + extensions: + - ".cpp" + - ".c++" + - ".cc" + - ".cp" + - ".cxx" + - ".h" + - ".h++" + - ".hh" + - ".hpp" + - ".hxx" + - ".inc" + - ".inl" + - ".ino" + - ".ipp" + - ".re" + - ".tcc" + - ".tpp" + language_id: 43 +C-ObjDump: + type: data + extensions: + - ".c-objdump" + tm_scope: objdump.x86asm + ace_mode: assembly_x86 + language_id: 44 +C2hs Haskell: + type: programming + group: Haskell + aliases: + - c2hs + extensions: + - ".chs" + tm_scope: source.haskell + ace_mode: haskell + codemirror_mode: haskell + codemirror_mime_type: text/x-haskell + language_id: 45 +CLIPS: + type: programming + extensions: + - ".clp" + tm_scope: source.clips + ace_mode: text + language_id: 46 +CMake: + type: programming + extensions: + - ".cmake" + - ".cmake.in" + filenames: + - CMakeLists.txt + tm_scope: source.cmake + ace_mode: text + codemirror_mode: cmake + codemirror_mime_type: text/x-cmake + language_id: 47 +COBOL: + type: programming + extensions: + - ".cob" + - ".cbl" + - ".ccp" + - ".cobol" + - ".cpy" + tm_scope: source.cobol + ace_mode: cobol + codemirror_mode: cobol + codemirror_mime_type: text/x-cobol + language_id: 48 +COLLADA: + type: data + extensions: + - ".dae" + tm_scope: text.xml + ace_mode: xml + codemirror_mode: xml + codemirror_mime_type: text/xml + language_id: 49 +CSON: + type: data + color: "#244776" + tm_scope: source.coffee + ace_mode: coffee + codemirror_mode: coffeescript + codemirror_mime_type: text/x-coffeescript + extensions: + - ".cson" + language_id: 424 +CSS: + type: markup + tm_scope: source.css + ace_mode: css + codemirror_mode: css + codemirror_mime_type: text/css + color: "#563d7c" + extensions: + - ".css" + language_id: 50 +CSV: + type: data + ace_mode: text + tm_scope: none + extensions: + - ".csv" + language_id: 51 +CWeb: + type: programming + extensions: + - ".w" + tm_scope: none + ace_mode: text + language_id: 657332628 +Cabal Config: + type: data + aliases: + - Cabal + extensions: + - ".cabal" + filenames: + - cabal.config + - cabal.project + ace_mode: haskell + codemirror_mode: haskell + codemirror_mime_type: text/x-haskell + tm_scope: source.cabal + language_id: 677095381 +Cap'n Proto: + type: programming + tm_scope: source.capnp + extensions: + - ".capnp" + ace_mode: text + language_id: 52 +CartoCSS: + type: programming + aliases: + - Carto + extensions: + - ".mss" + ace_mode: text + tm_scope: source.css.mss + language_id: 53 +Ceylon: + type: programming + color: "#dfa535" + extensions: + - ".ceylon" + tm_scope: source.ceylon + ace_mode: text + language_id: 54 +Chapel: + type: programming + color: "#8dc63f" + aliases: + - chpl + extensions: + - ".chpl" + tm_scope: source.chapel + ace_mode: text + language_id: 55 +Charity: + type: programming + extensions: + - ".ch" + tm_scope: none + ace_mode: text + language_id: 56 +ChucK: + type: programming + extensions: + - ".ck" + tm_scope: source.java + ace_mode: java + codemirror_mode: clike + codemirror_mime_type: text/x-java + language_id: 57 +Cirru: + type: programming + color: "#ccccff" + tm_scope: source.cirru + ace_mode: cirru + extensions: + - ".cirru" + language_id: 58 +Clarion: + type: programming + color: "#db901e" + ace_mode: text + extensions: + - ".clw" + tm_scope: source.clarion + language_id: 59 +Classic ASP: + type: programming + color: "#6a40fd" + tm_scope: text.html.asp + aliases: + - asp + extensions: + - ".asp" + ace_mode: text + language_id: 8 +Clean: + type: programming + color: "#3F85AF" + extensions: + - ".icl" + - ".dcl" + tm_scope: source.clean + ace_mode: text + language_id: 60 +Click: + type: programming + color: "#E4E6F3" + extensions: + - ".click" + tm_scope: source.click + ace_mode: text + language_id: 61 +Clojure: + type: programming + tm_scope: source.clojure + ace_mode: clojure + codemirror_mode: clojure + codemirror_mime_type: text/x-clojure + color: "#db5855" + extensions: + - ".clj" + - ".boot" + - ".cl2" + - ".cljc" + - ".cljs" + - ".cljs.hl" + - ".cljscm" + - ".cljx" + - ".hic" + filenames: + - riemann.config + language_id: 62 +Closure Templates: + type: markup + group: HTML + ace_mode: soy_template + codemirror_mode: soy + codemirror_mime_type: text/x-soy + aliases: + - soy + extensions: + - ".soy" + tm_scope: text.html.soy + language_id: 357046146 +Cloud Firestore Security Rules: + type: data + ace_mode: less + codemirror_mode: css + codemirror_mime_type: text/css + tm_scope: source.firestore + filenames: + - firestore.rules + language_id: 407996372 +CoNLL-U: + type: data + extensions: + - ".conllu" + - ".conll" + tm_scope: text.conllu + ace_mode: text + aliases: + - CoNLL + - CoNLL-X + language_id: 421026389 +CodeQL: + type: programming + extensions: + - ".ql" + - ".qll" + tm_scope: source.ql + ace_mode: text + language_id: 424259634 + aliases: + - ql +CoffeeScript: + type: programming + tm_scope: source.coffee + ace_mode: coffee + codemirror_mode: coffeescript + codemirror_mime_type: text/x-coffeescript + color: "#244776" + aliases: + - coffee + - coffee-script + extensions: + - ".coffee" + - "._coffee" + - ".cake" + - ".cjsx" + - ".iced" + filenames: + - Cakefile + interpreters: + - coffee + language_id: 63 +ColdFusion: + type: programming + ace_mode: coldfusion + color: "#ed2cd6" + aliases: + - cfm + - cfml + - coldfusion html + extensions: + - ".cfm" + - ".cfml" + tm_scope: text.html.cfm + language_id: 64 +ColdFusion CFC: + type: programming + color: "#ed2cd6" + group: ColdFusion + ace_mode: coldfusion + aliases: + - cfc + extensions: + - ".cfc" + tm_scope: source.cfscript + language_id: 65 +Common Lisp: + type: programming + tm_scope: source.lisp + color: "#3fb68b" + aliases: + - lisp + extensions: + - ".lisp" + - ".asd" + - ".cl" + - ".l" + - ".lsp" + - ".ny" + - ".podsl" + - ".sexp" + interpreters: + - lisp + - sbcl + - ccl + - clisp + - ecl + ace_mode: lisp + codemirror_mode: commonlisp + codemirror_mime_type: text/x-common-lisp + language_id: 66 +Common Workflow Language: + aliases: + - cwl + type: programming + ace_mode: yaml + codemirror_mode: yaml + codemirror_mime_type: text/x-yaml + extensions: + - ".cwl" + interpreters: + - cwl-runner + color: "#B5314C" + tm_scope: source.cwl + language_id: 988547172 +Component Pascal: + type: programming + color: "#B0CE4E" + extensions: + - ".cp" + - ".cps" + tm_scope: source.pascal + aliases: + - delphi + - objectpascal + ace_mode: pascal + codemirror_mode: pascal + codemirror_mime_type: text/x-pascal + language_id: 67 +Cool: + type: programming + extensions: + - ".cl" + tm_scope: source.cool + ace_mode: text + language_id: 68 +Coq: + type: programming + extensions: + - ".coq" + - ".v" + tm_scope: source.coq + ace_mode: text + language_id: 69 +Cpp-ObjDump: + type: data + extensions: + - ".cppobjdump" + - ".c++-objdump" + - ".c++objdump" + - ".cpp-objdump" + - ".cxx-objdump" + tm_scope: objdump.x86asm + aliases: + - c++-objdump + ace_mode: assembly_x86 + language_id: 70 +Creole: + type: prose + wrap: true + extensions: + - ".creole" + tm_scope: text.html.creole + ace_mode: text + language_id: 71 +Crystal: + type: programming + color: "#000100" + extensions: + - ".cr" + ace_mode: ruby + codemirror_mode: crystal + codemirror_mime_type: text/x-crystal + tm_scope: source.crystal + interpreters: + - crystal + language_id: 72 +Csound: + type: programming + aliases: + - csound-orc + extensions: + - ".orc" + - ".udo" + tm_scope: source.csound + ace_mode: csound_orchestra + language_id: 73 +Csound Document: + type: programming + aliases: + - csound-csd + extensions: + - ".csd" + tm_scope: source.csound-document + ace_mode: csound_document + language_id: 74 +Csound Score: + type: programming + aliases: + - csound-sco + extensions: + - ".sco" + tm_scope: source.csound-score + ace_mode: csound_score + language_id: 75 +Cuda: + type: programming + extensions: + - ".cu" + - ".cuh" + tm_scope: source.cuda-c++ + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-c++src + color: "#3A4E3A" + language_id: 77 +Cycript: + type: programming + extensions: + - ".cy" + tm_scope: source.js + ace_mode: javascript + codemirror_mode: javascript + codemirror_mime_type: text/javascript + language_id: 78 +Cython: + type: programming + group: Python + extensions: + - ".pyx" + - ".pxd" + - ".pxi" + aliases: + - pyrex + tm_scope: source.cython + ace_mode: text + codemirror_mode: python + codemirror_mime_type: text/x-cython + language_id: 79 +D: + type: programming + color: "#ba595e" + extensions: + - ".d" + - ".di" + tm_scope: source.d + ace_mode: d + codemirror_mode: d + codemirror_mime_type: text/x-d + language_id: 80 +D-ObjDump: + type: data + extensions: + - ".d-objdump" + tm_scope: objdump.x86asm + ace_mode: assembly_x86 + language_id: 81 +DIGITAL Command Language: + type: programming + aliases: + - dcl + extensions: + - ".com" + tm_scope: none + ace_mode: text + language_id: 82 +DM: + type: programming + color: "#447265" + extensions: + - ".dm" + aliases: + - byond + tm_scope: source.dm + ace_mode: c_cpp + language_id: 83 +DNS Zone: + type: data + extensions: + - ".zone" + - ".arpa" + tm_scope: text.zone_file + ace_mode: text + language_id: 84 +DTrace: + type: programming + aliases: + - dtrace-script + extensions: + - ".d" + interpreters: + - dtrace + tm_scope: source.c + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-csrc + language_id: 85 +Dafny: + type: programming + color: "#FFEC25" + extensions: + - ".dfy" + interpreters: + - dafny + tm_scope: text.dfy.dafny + ace_mode: text + language_id: 969323346 +Darcs Patch: + type: data + aliases: + - dpatch + extensions: + - ".darcspatch" + - ".dpatch" + tm_scope: none + ace_mode: text + language_id: 86 +Dart: + type: programming + color: "#00B4AB" + extensions: + - ".dart" + interpreters: + - dart + tm_scope: source.dart + ace_mode: dart + codemirror_mode: dart + codemirror_mime_type: application/dart + language_id: 87 +DataWeave: + type: programming + color: "#003a52" + extensions: + - ".dwl" + ace_mode: text + tm_scope: source.data-weave + language_id: 974514097 +Dhall: + type: programming + color: "#dfafff" + extensions: + - ".dhall" + tm_scope: source.haskell + ace_mode: haskell + codemirror_mode: haskell + codemirror_mime_type: text/x-haskell + language_id: 793969321 +Diff: + type: data + extensions: + - ".diff" + - ".patch" + aliases: + - udiff + tm_scope: source.diff + ace_mode: diff + codemirror_mode: diff + codemirror_mime_type: text/x-diff + language_id: 88 +DirectX 3D File: + type: data + extensions: + - ".x" + ace_mode: text + tm_scope: none + language_id: 201049282 +Dockerfile: + type: programming + color: "#384d54" + tm_scope: source.dockerfile + extensions: + - ".dockerfile" + filenames: + - Dockerfile + ace_mode: dockerfile + codemirror_mode: dockerfile + codemirror_mime_type: text/x-dockerfile + language_id: 89 +Dogescript: + type: programming + color: "#cca760" + extensions: + - ".djs" + tm_scope: none + ace_mode: text + language_id: 90 +Dylan: + type: programming + color: "#6c616e" + extensions: + - ".dylan" + - ".dyl" + - ".intr" + - ".lid" + tm_scope: source.dylan + ace_mode: text + codemirror_mode: dylan + codemirror_mime_type: text/x-dylan + language_id: 91 +E: + type: programming + color: "#ccce35" + extensions: + - ".E" + interpreters: + - rune + tm_scope: none + ace_mode: text + language_id: 92 +EBNF: + type: data + extensions: + - ".ebnf" + tm_scope: source.ebnf + ace_mode: text + codemirror_mode: ebnf + codemirror_mime_type: text/x-ebnf + language_id: 430 +ECL: + type: programming + color: "#8a1267" + extensions: + - ".ecl" + - ".eclxml" + tm_scope: none + ace_mode: text + codemirror_mode: ecl + codemirror_mime_type: text/x-ecl + language_id: 93 +ECLiPSe: + type: programming + group: prolog + extensions: + - ".ecl" + tm_scope: source.prolog.eclipse + ace_mode: prolog + language_id: 94 +EJS: + type: markup + color: "#a91e50" + group: HTML + extensions: + - ".ejs" + - ".ect" + - ".jst" + tm_scope: text.html.js + ace_mode: ejs + language_id: 95 +EML: + type: data + extensions: + - ".eml" + - ".mbox" + tm_scope: text.eml.basic + ace_mode: text + language_id: 529653389 +EQ: + type: programming + color: "#a78649" + extensions: + - ".eq" + tm_scope: source.cs + ace_mode: csharp + codemirror_mode: clike + codemirror_mime_type: text/x-csharp + language_id: 96 +Eagle: + type: data + extensions: + - ".sch" + - ".brd" + tm_scope: text.xml + ace_mode: xml + codemirror_mode: xml + codemirror_mime_type: text/xml + language_id: 97 +Easybuild: + type: data + group: Python + ace_mode: python + codemirror_mode: python + codemirror_mime_type: text/x-python + tm_scope: source.python + extensions: + - ".eb" + language_id: 342840477 +Ecere Projects: + type: data + group: JavaScript + extensions: + - ".epj" + tm_scope: source.json + ace_mode: json + codemirror_mode: javascript + codemirror_mime_type: application/json + language_id: 98 +EditorConfig: + type: data + group: INI + filenames: + - ".editorconfig" + aliases: + - editor-config + ace_mode: ini + codemirror_mode: properties + codemirror_mime_type: text/x-properties + tm_scope: source.editorconfig + language_id: 96139566 +Edje Data Collection: + type: data + extensions: + - ".edc" + tm_scope: source.c++ + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-c++src + language_id: 342840478 +Eiffel: + type: programming + color: "#4d6977" + extensions: + - ".e" + tm_scope: source.eiffel + ace_mode: eiffel + codemirror_mode: eiffel + codemirror_mime_type: text/x-eiffel + language_id: 99 +Elixir: + type: programming + color: "#6e4a7e" + extensions: + - ".ex" + - ".exs" + tm_scope: source.elixir + ace_mode: elixir + filenames: + - mix.lock + interpreters: + - elixir + language_id: 100 +Elm: + type: programming + color: "#60B5CC" + extensions: + - ".elm" + tm_scope: source.elm + ace_mode: elm + codemirror_mode: elm + codemirror_mime_type: text/x-elm + language_id: 101 +Emacs Lisp: + type: programming + tm_scope: source.emacs.lisp + color: "#c065db" + aliases: + - elisp + - emacs + filenames: + - ".abbrev_defs" + - ".emacs" + - ".emacs.desktop" + - ".gnus" + - ".spacemacs" + - ".viper" + - Cask + - Project.ede + - _emacs + - abbrev_defs + extensions: + - ".el" + - ".emacs" + - ".emacs.desktop" + ace_mode: lisp + codemirror_mode: commonlisp + codemirror_mime_type: text/x-common-lisp + language_id: 102 +EmberScript: + type: programming + color: "#FFF4F3" + extensions: + - ".em" + - ".emberscript" + tm_scope: source.coffee + ace_mode: coffee + codemirror_mode: coffeescript + codemirror_mime_type: text/x-coffeescript + language_id: 103 +Erlang: + type: programming + color: "#B83998" + extensions: + - ".erl" + - ".app.src" + - ".es" + - ".escript" + - ".hrl" + - ".xrl" + - ".yrl" + filenames: + - Emakefile + - rebar.config + - rebar.config.lock + - rebar.lock + tm_scope: source.erlang + ace_mode: erlang + codemirror_mode: erlang + codemirror_mime_type: text/x-erlang + interpreters: + - escript + language_id: 104 +F#: + type: programming + color: "#b845fc" + aliases: + - fsharp + extensions: + - ".fs" + - ".fsi" + - ".fsx" + tm_scope: source.fsharp + ace_mode: text + codemirror_mode: mllike + codemirror_mime_type: text/x-fsharp + language_id: 105 +F*: + fs_name: Fstar + type: programming + color: "#572e30" + aliases: + - fstar + extensions: + - ".fst" + tm_scope: source.fstar + ace_mode: text + language_id: 336943375 +FIGlet Font: + type: data + aliases: + - FIGfont + extensions: + - ".flf" + tm_scope: source.figfont + ace_mode: text + language_id: 686129783 +FLUX: + type: programming + color: "#88ccff" + extensions: + - ".fx" + - ".flux" + tm_scope: none + ace_mode: text + language_id: 106 +Factor: + type: programming + color: "#636746" + extensions: + - ".factor" + filenames: + - ".factor-boot-rc" + - ".factor-rc" + tm_scope: source.factor + ace_mode: text + codemirror_mode: factor + codemirror_mime_type: text/x-factor + language_id: 108 +Fancy: + type: programming + color: "#7b9db4" + extensions: + - ".fy" + - ".fancypack" + filenames: + - Fakefile + tm_scope: source.fancy + ace_mode: text + language_id: 109 +Fantom: + type: programming + color: "#14253c" + extensions: + - ".fan" + tm_scope: source.fan + ace_mode: text + language_id: 110 +Faust: + type: programming + color: "#c37240" + extensions: + - ".dsp" + tm_scope: source.faust + ace_mode: text + language_id: 622529198 +Filebench WML: + type: programming + extensions: + - ".f" + tm_scope: none + ace_mode: text + language_id: 111 +Filterscript: + type: programming + group: RenderScript + extensions: + - ".fs" + tm_scope: none + ace_mode: text + language_id: 112 +Formatted: + type: data + extensions: + - ".for" + - ".eam.fs" + tm_scope: none + ace_mode: text + language_id: 113 +Forth: + type: programming + color: "#341708" + extensions: + - ".fth" + - ".4th" + - ".f" + - ".for" + - ".forth" + - ".fr" + - ".frt" + - ".fs" + tm_scope: source.forth + ace_mode: forth + codemirror_mode: forth + codemirror_mime_type: text/x-forth + language_id: 114 +Fortran: + group: Fortran + type: programming + color: "#4d41b1" + extensions: + - ".f" + - ".f77" + - ".for" + - ".fpp" + tm_scope: source.fortran + ace_mode: text + codemirror_mode: fortran + codemirror_mime_type: text/x-fortran + language_id: 107 +Fortran Free Form: + group: Fortran + type: programming + extensions: + - ".f90" + - ".f03" + - ".f08" + - ".f95" + tm_scope: source.fortran.modern + ace_mode: text + codemirror_mode: fortran + codemirror_mime_type: text/x-fortran + language_id: 761352333 +FreeMarker: + type: programming + color: "#0050b2" + aliases: + - ftl + extensions: + - ".ftl" + tm_scope: text.html.ftl + ace_mode: ftl + language_id: 115 +Frege: + type: programming + color: "#00cafe" + extensions: + - ".fr" + tm_scope: source.haskell + ace_mode: haskell + language_id: 116 +Futhark: + type: programming + color: "#5f021f" + extensions: + - ".fut" + tm_scope: source.futhark + ace_mode: text + language_id: 97358117 +G-code: + type: programming + color: "#D08CF2" + extensions: + - ".g" + - ".cnc" + - ".gco" + - ".gcode" + tm_scope: source.gcode + ace_mode: gcode + language_id: 117 +GAML: + type: programming + color: "#FFC766" + extensions: + - ".gaml" + tm_scope: none + ace_mode: text + language_id: 290345951 +GAMS: + type: programming + extensions: + - ".gms" + tm_scope: none + ace_mode: text + language_id: 118 +GAP: + type: programming + extensions: + - ".g" + - ".gap" + - ".gd" + - ".gi" + - ".tst" + tm_scope: source.gap + ace_mode: text + language_id: 119 +GCC Machine Description: + type: programming + extensions: + - ".md" + tm_scope: source.lisp + ace_mode: lisp + codemirror_mode: commonlisp + codemirror_mime_type: text/x-common-lisp + language_id: 121 +GDB: + type: programming + extensions: + - ".gdb" + - ".gdbinit" + tm_scope: source.gdb + ace_mode: text + language_id: 122 +GDScript: + type: programming + color: "#355570" + extensions: + - ".gd" + tm_scope: source.gdscript + ace_mode: text + language_id: 123 +GEDCOM: + type: data + ace_mode: text + extensions: + - ".ged" + tm_scope: source.gedcom + language_id: 459577965 +GLSL: + type: programming + extensions: + - ".glsl" + - ".fp" + - ".frag" + - ".frg" + - ".fs" + - ".fsh" + - ".fshader" + - ".geo" + - ".geom" + - ".glslf" + - ".glslv" + - ".gs" + - ".gshader" + - ".shader" + - ".tesc" + - ".tese" + - ".vert" + - ".vrx" + - ".vsh" + - ".vshader" + tm_scope: source.glsl + ace_mode: glsl + language_id: 124 +GN: + type: data + extensions: + - ".gn" + - ".gni" + interpreters: + - gn + filenames: + - ".gn" + tm_scope: source.gn + ace_mode: python + codemirror_mode: python + codemirror_mime_type: text/x-python + language_id: 302957008 +Game Maker Language: + type: programming + color: "#71b417" + extensions: + - ".gml" + tm_scope: source.c++ + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-c++src + language_id: 125 +Genie: + type: programming + ace_mode: text + extensions: + - ".gs" + color: "#fb855d" + tm_scope: none + language_id: 792408528 +Genshi: + type: programming + extensions: + - ".kid" + tm_scope: text.xml.genshi + aliases: + - xml+genshi + - xml+kid + ace_mode: xml + codemirror_mode: xml + codemirror_mime_type: text/xml + language_id: 126 +Gentoo Ebuild: + type: programming + group: Shell + extensions: + - ".ebuild" + tm_scope: source.shell + ace_mode: sh + codemirror_mode: shell + codemirror_mime_type: text/x-sh + language_id: 127 +Gentoo Eclass: + type: programming + group: Shell + extensions: + - ".eclass" + tm_scope: source.shell + ace_mode: sh + codemirror_mode: shell + codemirror_mime_type: text/x-sh + language_id: 128 +Gerber Image: + type: data + aliases: + - rs-274x + extensions: + - ".gbr" + - ".gbl" + - ".gbo" + - ".gbp" + - ".gbs" + - ".gko" + - ".gml" + - ".gpb" + - ".gpt" + - ".gtl" + - ".gto" + - ".gtp" + - ".gts" + - ".sol" + interpreters: + - gerbv + - gerbview + tm_scope: source.gerber + ace_mode: text + language_id: 404627610 +Gettext Catalog: + type: prose + searchable: false + aliases: + - pot + extensions: + - ".po" + - ".pot" + tm_scope: source.po + ace_mode: text + language_id: 129 +Gherkin: + type: programming + extensions: + - ".feature" + - ".story" + tm_scope: text.gherkin.feature + aliases: + - cucumber + ace_mode: text + color: "#5B2063" + language_id: 76 +Git Attributes: + type: data + group: INI + aliases: + - gitattributes + filenames: + - ".gitattributes" + tm_scope: source.gitattributes + ace_mode: gitignore + codemirror_mode: shell + codemirror_mime_type: text/x-sh + language_id: 956324166 +Git Config: + type: data + group: INI + aliases: + - gitconfig + - gitmodules + extensions: + - ".gitconfig" + filenames: + - ".gitconfig" + - ".gitmodules" + ace_mode: ini + codemirror_mode: properties + codemirror_mime_type: text/x-properties + tm_scope: source.gitconfig + language_id: 807968997 +Glyph: + type: programming + color: "#c1ac7f" + extensions: + - ".glf" + tm_scope: source.tcl + ace_mode: tcl + codemirror_mode: tcl + codemirror_mime_type: text/x-tcl + language_id: 130 +Glyph Bitmap Distribution Format: + type: data + extensions: + - ".bdf" + tm_scope: source.bdf + ace_mode: text + language_id: 997665271 +Gnuplot: + type: programming + color: "#f0a9f0" + extensions: + - ".gp" + - ".gnu" + - ".gnuplot" + - ".p" + - ".plot" + - ".plt" + interpreters: + - gnuplot + tm_scope: source.gnuplot + ace_mode: text + language_id: 131 +Go: + type: programming + color: "#00ADD8" + aliases: + - golang + extensions: + - ".go" + tm_scope: source.go + ace_mode: golang + codemirror_mode: go + codemirror_mime_type: text/x-go + language_id: 132 +Golo: + type: programming + color: "#88562A" + extensions: + - ".golo" + tm_scope: source.golo + ace_mode: text + language_id: 133 +Gosu: + type: programming + color: "#82937f" + extensions: + - ".gs" + - ".gst" + - ".gsx" + - ".vark" + tm_scope: source.gosu.2 + ace_mode: text + language_id: 134 +Grace: + type: programming + extensions: + - ".grace" + tm_scope: source.grace + ace_mode: text + language_id: 135 +Gradle: + type: data + extensions: + - ".gradle" + tm_scope: source.groovy.gradle + ace_mode: text + language_id: 136 +Grammatical Framework: + type: programming + aliases: + - gf + extensions: + - ".gf" + color: "#ff0000" + tm_scope: source.gf + ace_mode: haskell + codemirror_mode: haskell + codemirror_mime_type: text/x-haskell + language_id: 137 +Graph Modeling Language: + type: data + extensions: + - ".gml" + tm_scope: none + ace_mode: text + language_id: 138 +GraphQL: + type: data + color: "#e10098" + extensions: + - ".graphql" + - ".gql" + - ".graphqls" + tm_scope: source.graphql + ace_mode: text + language_id: 139 +Graphviz (DOT): + type: data + tm_scope: source.dot + extensions: + - ".dot" + - ".gv" + ace_mode: text + language_id: 140 +Groovy: + type: programming + tm_scope: source.groovy + ace_mode: groovy + codemirror_mode: groovy + codemirror_mime_type: text/x-groovy + color: "#e69f56" + extensions: + - ".groovy" + - ".grt" + - ".gtpl" + - ".gvy" + interpreters: + - groovy + filenames: + - Jenkinsfile + language_id: 142 +Groovy Server Pages: + type: programming + group: Groovy + aliases: + - gsp + - java server page + extensions: + - ".gsp" + tm_scope: text.html.jsp + ace_mode: jsp + codemirror_mode: htmlembedded + codemirror_mime_type: application/x-jsp + language_id: 143 +HAProxy: + type: data + extensions: + - ".cfg" + filenames: + - haproxy.cfg + tm_scope: source.haproxy-config + ace_mode: text + language_id: 366607477 +HCL: + type: programming + extensions: + - ".hcl" + - ".nomad" + - ".tf" + - ".tfvars" + - ".workflow" + aliases: + - terraform + ace_mode: ruby + codemirror_mode: ruby + codemirror_mime_type: text/x-ruby + tm_scope: source.terraform + language_id: 144 +HLSL: + type: programming + extensions: + - ".hlsl" + - ".cginc" + - ".fx" + - ".fxh" + - ".hlsli" + ace_mode: text + tm_scope: source.hlsl + language_id: 145 +HTML: + type: markup + tm_scope: text.html.basic + ace_mode: html + codemirror_mode: htmlmixed + codemirror_mime_type: text/html + color: "#e34c26" + aliases: + - xhtml + extensions: + - ".html" + - ".htm" + - ".html.hl" + - ".inc" + - ".st" + - ".xht" + - ".xhtml" + language_id: 146 +HTML+Django: + type: markup + tm_scope: text.html.django + group: HTML + extensions: + - ".jinja" + - ".j2" + - ".jinja2" + - ".njk" + aliases: + - django + - html+django/jinja + - html+jinja + - htmldjango + - njk + - nunjucks + ace_mode: django + codemirror_mode: django + codemirror_mime_type: text/x-django + language_id: 147 +HTML+ECR: + type: markup + tm_scope: text.html.ecr + group: HTML + aliases: + - ecr + extensions: + - ".ecr" + ace_mode: text + codemirror_mode: htmlmixed + codemirror_mime_type: text/html + language_id: 148 +HTML+EEX: + type: markup + tm_scope: text.html.elixir + group: HTML + aliases: + - eex + extensions: + - ".eex" + ace_mode: text + codemirror_mode: htmlmixed + codemirror_mime_type: text/html + language_id: 149 +HTML+ERB: + type: markup + tm_scope: text.html.erb + group: HTML + aliases: + - erb + - rhtml + - html+ruby + extensions: + - ".erb" + - ".erb.deface" + - ".rhtml" + ace_mode: text + codemirror_mode: htmlembedded + codemirror_mime_type: application/x-erb + language_id: 150 +HTML+PHP: + type: markup + tm_scope: text.html.php + group: HTML + extensions: + - ".phtml" + ace_mode: php + codemirror_mode: php + codemirror_mime_type: application/x-httpd-php + language_id: 151 +HTML+Razor: + type: markup + tm_scope: text.html.cshtml + group: HTML + aliases: + - razor + extensions: + - ".cshtml" + - ".razor" + ace_mode: razor + codemirror_mode: htmlmixed + codemirror_mime_type: text/html + language_id: 479039817 +HTTP: + type: data + extensions: + - ".http" + tm_scope: source.httpspec + ace_mode: text + codemirror_mode: http + codemirror_mime_type: message/http + language_id: 152 +HXML: + type: data + ace_mode: text + extensions: + - ".hxml" + tm_scope: source.hxml + language_id: 786683730 +Hack: + type: programming + ace_mode: php + codemirror_mode: php + codemirror_mime_type: application/x-httpd-php + extensions: + - ".hack" + - ".hh" + - ".hhi" + - ".php" + tm_scope: source.hack + color: "#878787" + language_id: 153 +Haml: + type: markup + color: "#ece2a9" + extensions: + - ".haml" + - ".haml.deface" + tm_scope: text.haml + ace_mode: haml + codemirror_mode: haml + codemirror_mime_type: text/x-haml + language_id: 154 +Handlebars: + type: markup + color: "#f7931e" + aliases: + - hbs + - htmlbars + extensions: + - ".handlebars" + - ".hbs" + tm_scope: text.html.handlebars + ace_mode: handlebars + language_id: 155 +Harbour: + type: programming + color: "#0e60e3" + extensions: + - ".hb" + tm_scope: source.harbour + ace_mode: text + language_id: 156 +Haskell: + type: programming + color: "#5e5086" + extensions: + - ".hs" + - ".hs-boot" + - ".hsc" + interpreters: + - runghc + - runhaskell + - runhugs + tm_scope: source.haskell + ace_mode: haskell + codemirror_mode: haskell + codemirror_mime_type: text/x-haskell + language_id: 157 +Haxe: + type: programming + ace_mode: haxe + codemirror_mode: haxe + codemirror_mime_type: text/x-haxe + color: "#df7900" + extensions: + - ".hx" + - ".hxsl" + tm_scope: source.hx + language_id: 158 +HiveQL: + type: programming + extensions: + - ".q" + - ".hql" + color: "#dce200" + tm_scope: source.hql + ace_mode: sql + language_id: 931814087 +HolyC: + type: programming + color: "#ffefaf" + extensions: + - ".hc" + tm_scope: source.hc + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-csrc + language_id: 928121743 +Hy: + type: programming + ace_mode: text + color: "#7790B2" + extensions: + - ".hy" + interpreters: + - hy + aliases: + - hylang + tm_scope: source.hy + language_id: 159 +HyPhy: + type: programming + ace_mode: text + extensions: + - ".bf" + tm_scope: none + language_id: 160 +IDL: + type: programming + color: "#a3522f" + extensions: + - ".pro" + - ".dlm" + tm_scope: source.idl + ace_mode: text + codemirror_mode: idl + codemirror_mime_type: text/x-idl + language_id: 161 +IGOR Pro: + type: programming + color: "#0000cc" + extensions: + - ".ipf" + aliases: + - igor + - igorpro + tm_scope: source.igor + ace_mode: text + language_id: 162 +INI: + type: data + extensions: + - ".ini" + - ".cfg" + - ".dof" + - ".lektorproject" + - ".prefs" + - ".pro" + - ".properties" + filenames: + - buildozer.spec + tm_scope: source.ini + aliases: + - dosini + ace_mode: ini + codemirror_mode: properties + codemirror_mime_type: text/x-properties + language_id: 163 +IRC log: + type: data + aliases: + - irc + - irc logs + extensions: + - ".irclog" + - ".weechatlog" + tm_scope: none + ace_mode: text + codemirror_mode: mirc + codemirror_mime_type: text/mirc + language_id: 164 +Idris: + type: programming + color: "#b30000" + extensions: + - ".idr" + - ".lidr" + ace_mode: text + tm_scope: source.idris + language_id: 165 +Ignore List: + type: data + group: INI + aliases: + - ignore + - gitignore + - git-ignore + extensions: + - ".gitignore" + filenames: + - ".atomignore" + - ".babelignore" + - ".bzrignore" + - ".coffeelintignore" + - ".cvsignore" + - ".dockerignore" + - ".eslintignore" + - ".gitignore" + - ".nodemonignore" + - ".npmignore" + - ".prettierignore" + - ".stylelintignore" + - ".vscodeignore" + - gitignore-global + - gitignore_global + ace_mode: gitignore + tm_scope: source.gitignore + codemirror_mode: shell + codemirror_mime_type: text/x-sh + language_id: 74444240 +Inform 7: + type: programming + wrap: true + extensions: + - ".ni" + - ".i7x" + tm_scope: source.inform7 + aliases: + - i7 + - inform7 + ace_mode: text + language_id: 166 +Inno Setup: + type: programming + extensions: + - ".iss" + - ".isl" + tm_scope: source.inno + ace_mode: text + language_id: 167 +Io: + type: programming + color: "#a9188d" + extensions: + - ".io" + interpreters: + - io + tm_scope: source.io + ace_mode: io + language_id: 168 +Ioke: + type: programming + color: "#078193" + extensions: + - ".ik" + interpreters: + - ioke + tm_scope: source.ioke + ace_mode: text + language_id: 169 +Isabelle: + type: programming + color: "#FEFE00" + extensions: + - ".thy" + tm_scope: source.isabelle.theory + ace_mode: text + language_id: 170 +Isabelle ROOT: + type: programming + group: Isabelle + filenames: + - ROOT + tm_scope: source.isabelle.root + ace_mode: text + language_id: 171 +J: + type: programming + color: "#9EEDFF" + extensions: + - ".ijs" + interpreters: + - jconsole + tm_scope: source.j + ace_mode: text + language_id: 172 +JFlex: + type: programming + color: "#DBCA00" + group: Lex + extensions: + - ".flex" + - ".jflex" + tm_scope: source.jflex + ace_mode: text + language_id: 173 +JSON: + type: data + tm_scope: source.json + ace_mode: json + codemirror_mode: javascript + codemirror_mime_type: application/json + searchable: false + extensions: + - ".json" + - ".avsc" + - ".geojson" + - ".gltf" + - ".har" + - ".ice" + - ".JSON-tmLanguage" + - ".jsonl" + - ".mcmeta" + - ".tfstate" + - ".tfstate.backup" + - ".topojson" + - ".webapp" + - ".webmanifest" + - ".yy" + - ".yyp" + filenames: + - ".arcconfig" + - ".htmlhintrc" + - ".tern-config" + - ".tern-project" + - ".watchmanconfig" + - composer.lock + - mcmod.info + language_id: 174 +JSON with Comments: + type: data + group: JSON + tm_scope: source.js + ace_mode: javascript + codemirror_mode: javascript + codemirror_mime_type: text/javascript + aliases: + - jsonc + extensions: + - ".jsonc" + - ".sublime-build" + - ".sublime-commands" + - ".sublime-completions" + - ".sublime-keymap" + - ".sublime-macro" + - ".sublime-menu" + - ".sublime-mousemap" + - ".sublime-project" + - ".sublime-settings" + - ".sublime-theme" + - ".sublime-workspace" + - ".sublime_metrics" + - ".sublime_session" + filenames: + - ".babelrc" + - ".eslintrc.json" + - ".jscsrc" + - ".jshintrc" + - ".jslintrc" + - jsconfig.json + - language-configuration.json + - tsconfig.json + - tslint.json + language_id: 423 +JSON5: + type: data + extensions: + - ".json5" + tm_scope: source.js + ace_mode: javascript + codemirror_mode: javascript + codemirror_mime_type: application/json + language_id: 175 +JSONLD: + type: data + extensions: + - ".jsonld" + tm_scope: source.js + ace_mode: javascript + codemirror_mode: javascript + codemirror_mime_type: application/json + language_id: 176 +JSONiq: + color: "#40d47e" + type: programming + ace_mode: jsoniq + codemirror_mode: javascript + codemirror_mime_type: application/json + extensions: + - ".jq" + tm_scope: source.jq + language_id: 177 +JSX: + type: programming + group: JavaScript + extensions: + - ".jsx" + tm_scope: source.js.jsx + ace_mode: javascript + codemirror_mode: jsx + codemirror_mime_type: text/jsx + language_id: 178 +Jasmin: + type: programming + ace_mode: java + extensions: + - ".j" + tm_scope: source.jasmin + language_id: 180 +Java: + type: programming + tm_scope: source.java + ace_mode: java + codemirror_mode: clike + codemirror_mime_type: text/x-java + color: "#b07219" + extensions: + - ".java" + language_id: 181 +Java Properties: + type: data + extensions: + - ".properties" + tm_scope: source.java-properties + ace_mode: properties + codemirror_mode: properties + codemirror_mime_type: text/x-properties + language_id: 519377561 +Java Server Pages: + type: programming + group: Java + aliases: + - jsp + extensions: + - ".jsp" + tm_scope: text.html.jsp + ace_mode: jsp + codemirror_mode: htmlembedded + codemirror_mime_type: application/x-jsp + language_id: 182 +JavaScript: + type: programming + tm_scope: source.js + ace_mode: javascript + codemirror_mode: javascript + codemirror_mime_type: text/javascript + color: "#f1e05a" + aliases: + - js + - node + extensions: + - ".js" + - "._js" + - ".bones" + - ".cjs" + - ".es" + - ".es6" + - ".frag" + - ".gs" + - ".jake" + - ".jsb" + - ".jscad" + - ".jsfl" + - ".jsm" + - ".jss" + - ".mjs" + - ".njs" + - ".pac" + - ".sjs" + - ".ssjs" + - ".xsjs" + - ".xsjslib" + filenames: + - Jakefile + interpreters: + - chakra + - d8 + - gjs + - js + - node + - nodejs + - qjs + - rhino + - v8 + - v8-shell + language_id: 183 +JavaScript+ERB: + type: programming + tm_scope: source.js + group: JavaScript + extensions: + - ".js.erb" + ace_mode: javascript + codemirror_mode: javascript + codemirror_mime_type: application/javascript + language_id: 914318960 +Jison: + type: programming + group: Yacc + extensions: + - ".jison" + tm_scope: source.jison + ace_mode: text + language_id: 284531423 +Jison Lex: + type: programming + group: Lex + extensions: + - ".jisonlex" + tm_scope: source.jisonlex + ace_mode: text + language_id: 406395330 +Jolie: + type: programming + extensions: + - ".ol" + - ".iol" + interpreters: + - jolie + color: "#843179" + ace_mode: text + tm_scope: source.jolie + language_id: 998078858 +Jsonnet: + color: "#0064bd" + type: programming + ace_mode: text + extensions: + - ".jsonnet" + - ".libsonnet" + tm_scope: source.jsonnet + language_id: 664885656 +Julia: + type: programming + extensions: + - ".jl" + interpreters: + - julia + color: "#a270ba" + tm_scope: source.julia + ace_mode: julia + codemirror_mode: julia + codemirror_mime_type: text/x-julia + language_id: 184 +Jupyter Notebook: + type: markup + ace_mode: json + codemirror_mode: javascript + codemirror_mime_type: application/json + tm_scope: source.json + color: "#DA5B0B" + extensions: + - ".ipynb" + filenames: + - Notebook + aliases: + - IPython Notebook + language_id: 185 +KRL: + type: programming + color: "#28430A" + extensions: + - ".krl" + tm_scope: none + ace_mode: text + language_id: 186 +Kaitai Struct: + type: programming + aliases: + - ksy + ace_mode: yaml + codemirror_mode: yaml + codemirror_mime_type: text/x-yaml + color: "#773b37" + extensions: + - ".ksy" + tm_scope: source.yaml + language_id: 818804755 +KiCad Layout: + type: data + aliases: + - pcbnew + extensions: + - ".kicad_pcb" + - ".kicad_mod" + - ".kicad_wks" + filenames: + - fp-lib-table + tm_scope: source.pcb.sexp + ace_mode: lisp + codemirror_mode: commonlisp + codemirror_mime_type: text/x-common-lisp + language_id: 187 +KiCad Legacy Layout: + type: data + extensions: + - ".brd" + tm_scope: source.pcb.board + ace_mode: text + language_id: 140848857 +KiCad Schematic: + type: data + aliases: + - eeschema schematic + extensions: + - ".sch" + tm_scope: source.pcb.schematic + ace_mode: text + language_id: 622447435 +Kit: + type: markup + ace_mode: html + codemirror_mode: htmlmixed + codemirror_mime_type: text/html + extensions: + - ".kit" + tm_scope: text.html.basic + language_id: 188 +Kotlin: + type: programming + color: "#F18E33" + extensions: + - ".kt" + - ".ktm" + - ".kts" + tm_scope: source.kotlin + ace_mode: text + codemirror_mode: clike + codemirror_mime_type: text/x-kotlin + language_id: 189 +LFE: + type: programming + color: "#4C3023" + extensions: + - ".lfe" + tm_scope: source.lisp + ace_mode: lisp + codemirror_mode: commonlisp + codemirror_mime_type: text/x-common-lisp + language_id: 190 +LLVM: + type: programming + extensions: + - ".ll" + tm_scope: source.llvm + ace_mode: text + color: "#185619" + language_id: 191 +LOLCODE: + type: programming + extensions: + - ".lol" + color: "#cc9900" + tm_scope: none + ace_mode: text + language_id: 192 +LSL: + type: programming + tm_scope: source.lsl + ace_mode: lsl + extensions: + - ".lsl" + - ".lslp" + interpreters: + - lsl + color: "#3d9970" + language_id: 193 +LTspice Symbol: + type: data + extensions: + - ".asy" + tm_scope: source.ltspice.symbol + ace_mode: text + codemirror_mode: spreadsheet + codemirror_mime_type: text/x-spreadsheet + language_id: 1013566805 +LabVIEW: + type: programming + extensions: + - ".lvproj" + tm_scope: text.xml + ace_mode: xml + codemirror_mode: xml + codemirror_mime_type: text/xml + language_id: 194 +Lark: + type: data + group: EBNF + color: "#0b130f" + extensions: + - ".lark" + tm_scope: source.lark + ace_mode: text + codemirror_mode: ebnf + codemirror_mime_type: text/x-ebnf + language_id: 758480799 +Lasso: + type: programming + color: "#999999" + extensions: + - ".lasso" + - ".las" + - ".lasso8" + - ".lasso9" + tm_scope: file.lasso + aliases: + - lassoscript + ace_mode: text + language_id: 195 +Latte: + type: markup + color: "#f2a542" + extensions: + - ".latte" + tm_scope: text.html.smarty + ace_mode: smarty + codemirror_mode: smarty + codemirror_mime_type: text/x-smarty + language_id: 196 +Lean: + type: programming + extensions: + - ".lean" + - ".hlean" + tm_scope: source.lean + ace_mode: text + language_id: 197 +Less: + type: markup + color: "#1d365d" + extensions: + - ".less" + tm_scope: source.css.less + ace_mode: less + codemirror_mode: css + codemirror_mime_type: text/css + language_id: 198 +Lex: + type: programming + color: "#DBCA00" + aliases: + - flex + extensions: + - ".l" + - ".lex" + filenames: + - Lexer.x + - lexer.x + tm_scope: source.lex + ace_mode: text + language_id: 199 +LilyPond: + type: programming + extensions: + - ".ly" + - ".ily" + tm_scope: source.lilypond + ace_mode: text + language_id: 200 +Limbo: + type: programming + extensions: + - ".b" + - ".m" + tm_scope: none + ace_mode: text + language_id: 201 +Linker Script: + type: data + extensions: + - ".ld" + - ".lds" + - ".x" + filenames: + - ld.script + tm_scope: none + ace_mode: text + language_id: 202 +Linux Kernel Module: + type: data + extensions: + - ".mod" + tm_scope: none + ace_mode: text + language_id: 203 +Liquid: + type: markup + extensions: + - ".liquid" + tm_scope: text.html.liquid + ace_mode: liquid + language_id: 204 +Literate Agda: + type: programming + group: Agda + extensions: + - ".lagda" + tm_scope: none + ace_mode: text + language_id: 205 +Literate CoffeeScript: + type: programming + tm_scope: source.litcoffee + group: CoffeeScript + ace_mode: text + wrap: true + aliases: + - litcoffee + extensions: + - ".litcoffee" + - ".coffee.md" + language_id: 206 +Literate Haskell: + type: programming + group: Haskell + aliases: + - lhaskell + - lhs + extensions: + - ".lhs" + tm_scope: text.tex.latex.haskell + ace_mode: text + codemirror_mode: haskell-literate + codemirror_mime_type: text/x-literate-haskell + language_id: 207 +LiveScript: + type: programming + color: "#499886" + aliases: + - live-script + - ls + extensions: + - ".ls" + - "._ls" + filenames: + - Slakefile + tm_scope: source.livescript + ace_mode: livescript + codemirror_mode: livescript + codemirror_mime_type: text/x-livescript + language_id: 208 +Logos: + type: programming + extensions: + - ".xm" + - ".x" + - ".xi" + ace_mode: text + tm_scope: source.logos + language_id: 209 +Logtalk: + type: programming + extensions: + - ".lgt" + - ".logtalk" + tm_scope: source.logtalk + ace_mode: text + language_id: 210 +LookML: + type: programming + ace_mode: yaml + codemirror_mode: yaml + codemirror_mime_type: text/x-yaml + color: "#652B81" + extensions: + - ".lookml" + - ".model.lkml" + - ".view.lkml" + tm_scope: source.yaml + language_id: 211 +LoomScript: + type: programming + extensions: + - ".ls" + tm_scope: source.loomscript + ace_mode: text + language_id: 212 +Lua: + type: programming + tm_scope: source.lua + ace_mode: lua + codemirror_mode: lua + codemirror_mime_type: text/x-lua + color: "#000080" + extensions: + - ".lua" + - ".fcgi" + - ".nse" + - ".p8" + - ".pd_lua" + - ".rbxs" + - ".rockspec" + - ".wlua" + filenames: + - ".luacheckrc" + interpreters: + - lua + language_id: 213 +M: + type: programming + aliases: + - mumps + extensions: + - ".mumps" + - ".m" + ace_mode: text + codemirror_mode: mumps + codemirror_mime_type: text/x-mumps + language_id: 214 + tm_scope: none +M4: + type: programming + extensions: + - ".m4" + tm_scope: source.m4 + ace_mode: text + language_id: 215 +M4Sugar: + type: programming + group: M4 + aliases: + - autoconf + extensions: + - ".m4" + filenames: + - configure.ac + tm_scope: source.m4 + ace_mode: text + language_id: 216 +MATLAB: + type: programming + color: "#e16737" + aliases: + - octave + extensions: + - ".matlab" + - ".m" + tm_scope: source.matlab + ace_mode: matlab + codemirror_mode: octave + codemirror_mime_type: text/x-octave + language_id: 225 +MAXScript: + type: programming + color: "#00a6a6" + extensions: + - ".ms" + - ".mcr" + tm_scope: source.maxscript + ace_mode: text + language_id: 217 +MLIR: + type: programming + color: "#5EC8DB" + extensions: + - ".mlir" + tm_scope: source.mlir + ace_mode: text + language_id: 448253929 +MQL4: + type: programming + color: "#62A8D6" + extensions: + - ".mq4" + - ".mqh" + tm_scope: source.mql5 + ace_mode: c_cpp + language_id: 426 +MQL5: + type: programming + color: "#4A76B8" + extensions: + - ".mq5" + - ".mqh" + tm_scope: source.mql5 + ace_mode: c_cpp + language_id: 427 +MTML: + type: markup + color: "#b7e1f4" + extensions: + - ".mtml" + tm_scope: text.html.basic + ace_mode: html + codemirror_mode: htmlmixed + codemirror_mime_type: text/html + language_id: 218 +MUF: + type: programming + group: Forth + extensions: + - ".muf" + - ".m" + tm_scope: none + ace_mode: forth + codemirror_mode: forth + codemirror_mime_type: text/x-forth + language_id: 219 +Macaulay2: + type: programming + extensions: + - ".m2" + aliases: + - m2 + interpreters: + - M2 + ace_mode: text + tm_scope: source.m2 + color: "#d8ffff" + language_id: 34167825 +Makefile: + type: programming + color: "#427819" + aliases: + - bsdmake + - make + - mf + extensions: + - ".mak" + - ".d" + - ".make" + - ".mk" + - ".mkfile" + filenames: + - BSDmakefile + - GNUmakefile + - Kbuild + - Makefile + - Makefile.am + - Makefile.boot + - Makefile.frag + - Makefile.in + - Makefile.inc + - Makefile.wat + - makefile + - makefile.sco + - mkfile + interpreters: + - make + tm_scope: source.makefile + ace_mode: makefile + codemirror_mode: cmake + codemirror_mime_type: text/x-cmake + language_id: 220 +Mako: + type: programming + extensions: + - ".mako" + - ".mao" + tm_scope: text.html.mako + ace_mode: text + language_id: 221 +Markdown: + type: prose + color: "#083fa1" + aliases: + - pandoc + ace_mode: markdown + codemirror_mode: gfm + codemirror_mime_type: text/x-gfm + wrap: true + extensions: + - ".md" + - ".markdown" + - ".mdown" + - ".mdwn" + - ".mdx" + - ".mkd" + - ".mkdn" + - ".mkdown" + - ".ronn" + - ".workbook" + filenames: + - contents.lr + tm_scope: source.gfm + language_id: 222 +Marko: + type: markup + color: "#42bff2" + tm_scope: text.marko + extensions: + - ".marko" + aliases: + - markojs + ace_mode: text + codemirror_mode: htmlmixed + codemirror_mime_type: text/html + language_id: 932782397 +Mask: + type: markup + color: "#f97732" + ace_mode: mask + extensions: + - ".mask" + tm_scope: source.mask + language_id: 223 +Mathematica: + type: programming + extensions: + - ".mathematica" + - ".cdf" + - ".m" + - ".ma" + - ".mt" + - ".nb" + - ".nbp" + - ".wl" + - ".wlt" + aliases: + - mma + tm_scope: source.mathematica + ace_mode: text + codemirror_mode: mathematica + codemirror_mime_type: text/x-mathematica + language_id: 224 +Maven POM: + type: data + tm_scope: text.xml.pom + filenames: + - pom.xml + ace_mode: xml + codemirror_mode: xml + codemirror_mime_type: text/xml + language_id: 226 +Max: + type: programming + color: "#c4a79c" + aliases: + - max/msp + - maxmsp + extensions: + - ".maxpat" + - ".maxhelp" + - ".maxproj" + - ".mxt" + - ".pat" + tm_scope: source.json + ace_mode: json + codemirror_mode: javascript + codemirror_mime_type: application/json + language_id: 227 +MediaWiki: + type: prose + wrap: true + extensions: + - ".mediawiki" + - ".wiki" + tm_scope: text.html.mediawiki + ace_mode: text + language_id: 228 +Mercury: + type: programming + color: "#ff2b2b" + ace_mode: prolog + interpreters: + - mmi + extensions: + - ".m" + - ".moo" + tm_scope: source.mercury + language_id: 229 +Meson: + type: programming + color: "#007800" + filenames: + - meson.build + - meson_options.txt + tm_scope: source.meson + ace_mode: text + language_id: 799141244 +Metal: + type: programming + color: "#8f14e9" + extensions: + - ".metal" + tm_scope: source.c++ + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-c++src + language_id: 230 +Microsoft Developer Studio Project: + type: data + extensions: + - ".dsp" + tm_scope: none + ace_mode: text + language_id: 800983837 +MiniD: + type: programming + searchable: false + extensions: + - ".minid" + tm_scope: none + ace_mode: text + language_id: 231 +Mirah: + type: programming + color: "#c7a938" + extensions: + - ".druby" + - ".duby" + - ".mirah" + tm_scope: source.ruby + ace_mode: ruby + codemirror_mode: ruby + codemirror_mime_type: text/x-ruby + language_id: 232 +Modelica: + type: programming + extensions: + - ".mo" + tm_scope: source.modelica + ace_mode: text + codemirror_mode: modelica + codemirror_mime_type: text/x-modelica + language_id: 233 +Modula-2: + type: programming + extensions: + - ".mod" + tm_scope: source.modula2 + ace_mode: text + language_id: 234 +Modula-3: + type: programming + extensions: + - ".i3" + - ".ig" + - ".m3" + - ".mg" + color: "#223388" + ace_mode: text + tm_scope: source.modula-3 + language_id: 564743864 +Module Management System: + type: programming + extensions: + - ".mms" + - ".mmk" + filenames: + - descrip.mmk + - descrip.mms + tm_scope: none + ace_mode: text + language_id: 235 +Monkey: + type: programming + extensions: + - ".monkey" + - ".monkey2" + ace_mode: text + tm_scope: source.monkey + language_id: 236 +Moocode: + type: programming + extensions: + - ".moo" + tm_scope: none + ace_mode: text + language_id: 237 +MoonScript: + type: programming + extensions: + - ".moon" + interpreters: + - moon + tm_scope: source.moonscript + ace_mode: text + language_id: 238 +Motorola 68K Assembly: + type: programming + group: Assembly + aliases: + - m68k + extensions: + - ".asm" + - ".i" + - ".inc" + - ".s" + - ".x68" + tm_scope: source.m68k + ace_mode: assembly_x86 + language_id: 477582706 +Muse: + type: prose + extensions: + - ".muse" + tm_scope: text.muse + ace_mode: text + wrap: true + language_id: 474864066 + aliases: + - amusewiki + - emacs muse +Mustache: + type: markup + group: HTML + extensions: + - ".mustache" + tm_scope: text.html.smarty + ace_mode: smarty + codemirror_mode: smarty + codemirror_mime_type: text/x-smarty + language_id: 638334590 +Myghty: + type: programming + extensions: + - ".myt" + tm_scope: none + ace_mode: text + language_id: 239 +NASL: + type: programming + extensions: + - ".nasl" + - ".inc" + tm_scope: source.nasl + ace_mode: text + language_id: 171666519 +NCL: + type: programming + color: "#28431f" + extensions: + - ".ncl" + tm_scope: source.ncl + ace_mode: text + language_id: 240 +NEON: + type: data + extensions: + - ".neon" + tm_scope: source.neon + ace_mode: text + aliases: + - nette object notation + - ne-on + language_id: 481192983 +NL: + type: data + extensions: + - ".nl" + tm_scope: none + ace_mode: text + language_id: 241 +NPM Config: + type: data + group: INI + aliases: + - npmrc + filenames: + - ".npmrc" + tm_scope: source.ini.npmrc + ace_mode: text + language_id: 685022663 +NSIS: + type: programming + extensions: + - ".nsi" + - ".nsh" + tm_scope: source.nsis + ace_mode: text + codemirror_mode: nsis + codemirror_mime_type: text/x-nsis + language_id: 242 +Nearley: + type: programming + ace_mode: text + color: "#990000" + extensions: + - ".ne" + - ".nearley" + tm_scope: source.ne + language_id: 521429430 +Nemerle: + type: programming + color: "#3d3c6e" + extensions: + - ".n" + tm_scope: source.nemerle + ace_mode: text + language_id: 243 +NetLinx: + type: programming + color: "#0aa0ff" + extensions: + - ".axs" + - ".axi" + tm_scope: source.netlinx + ace_mode: text + language_id: 244 +NetLinx+ERB: + type: programming + color: "#747faa" + extensions: + - ".axs.erb" + - ".axi.erb" + tm_scope: source.netlinx.erb + ace_mode: text + language_id: 245 +NetLogo: + type: programming + color: "#ff6375" + extensions: + - ".nlogo" + tm_scope: source.lisp + ace_mode: lisp + codemirror_mode: commonlisp + codemirror_mime_type: text/x-common-lisp + language_id: 246 +NewLisp: + type: programming + color: "#87AED7" + extensions: + - ".nl" + - ".lisp" + - ".lsp" + interpreters: + - newlisp + tm_scope: source.lisp + ace_mode: lisp + codemirror_mode: commonlisp + codemirror_mime_type: text/x-common-lisp + language_id: 247 +Nextflow: + type: programming + ace_mode: groovy + tm_scope: source.nextflow + color: "#3ac486" + extensions: + - ".nf" + filenames: + - nextflow.config + interpreters: + - nextflow + language_id: 506780613 +Nginx: + type: data + extensions: + - ".nginx" + - ".nginxconf" + - ".vhost" + filenames: + - nginx.conf + tm_scope: source.nginx + aliases: + - nginx configuration file + ace_mode: text + codemirror_mode: nginx + codemirror_mime_type: text/x-nginx-conf + language_id: 248 +Nim: + type: programming + color: "#ffc200" + extensions: + - ".nim" + - ".nim.cfg" + - ".nimble" + - ".nimrod" + - ".nims" + filenames: + - nim.cfg + ace_mode: text + tm_scope: source.nim + language_id: 249 +Ninja: + type: data + tm_scope: source.ninja + extensions: + - ".ninja" + ace_mode: text + language_id: 250 +Nit: + type: programming + color: "#009917" + extensions: + - ".nit" + tm_scope: source.nit + ace_mode: text + language_id: 251 +Nix: + type: programming + color: "#7e7eff" + extensions: + - ".nix" + aliases: + - nixos + tm_scope: source.nix + ace_mode: nix + language_id: 252 +Nu: + type: programming + color: "#c9df40" + aliases: + - nush + extensions: + - ".nu" + filenames: + - Nukefile + tm_scope: source.nu + ace_mode: scheme + codemirror_mode: scheme + codemirror_mime_type: text/x-scheme + interpreters: + - nush + language_id: 253 +NumPy: + type: programming + color: "#9C8AF9" + group: Python + extensions: + - ".numpy" + - ".numpyw" + - ".numsc" + tm_scope: none + ace_mode: text + codemirror_mode: python + codemirror_mime_type: text/x-python + language_id: 254 +OCaml: + type: programming + ace_mode: ocaml + codemirror_mode: mllike + codemirror_mime_type: text/x-ocaml + color: "#3be133" + extensions: + - ".ml" + - ".eliom" + - ".eliomi" + - ".ml4" + - ".mli" + - ".mll" + - ".mly" + interpreters: + - ocaml + - ocamlrun + - ocamlscript + tm_scope: source.ocaml + language_id: 255 +ObjDump: + type: data + extensions: + - ".objdump" + tm_scope: objdump.x86asm + ace_mode: assembly_x86 + language_id: 256 +Object Data Instance Notation: + type: data + extensions: + - ".odin" + tm_scope: source.odin-ehr + ace_mode: text + language_id: 985227236 +ObjectScript: + type: programming + extensions: + - ".cls" + language_id: 202735509 + tm_scope: source.objectscript + color: "#424893" + ace_mode: text +Objective-C: + type: programming + tm_scope: source.objc + color: "#438eff" + aliases: + - obj-c + - objc + - objectivec + extensions: + - ".m" + - ".h" + ace_mode: objectivec + codemirror_mode: clike + codemirror_mime_type: text/x-objectivec + language_id: 257 +Objective-C++: + type: programming + tm_scope: source.objc++ + color: "#6866fb" + aliases: + - obj-c++ + - objc++ + - objectivec++ + extensions: + - ".mm" + ace_mode: objectivec + codemirror_mode: clike + codemirror_mime_type: text/x-objectivec + language_id: 258 +Objective-J: + type: programming + color: "#ff0c5a" + aliases: + - obj-j + - objectivej + - objj + extensions: + - ".j" + - ".sj" + tm_scope: source.js.objj + ace_mode: text + language_id: 259 +Odin: + type: programming + color: "#60AFFE" + aliases: + - odinlang + - odin-lang + extensions: + - ".odin" + tm_scope: source.odin + ace_mode: text + language_id: 889244082 +Omgrofl: + type: programming + extensions: + - ".omgrofl" + color: "#cabbff" + tm_scope: none + ace_mode: text + language_id: 260 +Opa: + type: programming + extensions: + - ".opa" + tm_scope: source.opa + ace_mode: text + language_id: 261 +Opal: + type: programming + color: "#f7ede0" + extensions: + - ".opal" + tm_scope: source.opal + ace_mode: text + language_id: 262 +Open Policy Agent: + type: programming + ace_mode: text + extensions: + - ".rego" + language_id: 840483232 + tm_scope: source.rego +OpenCL: + type: programming + group: C + extensions: + - ".cl" + - ".opencl" + tm_scope: source.c + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-csrc + language_id: 263 +OpenEdge ABL: + type: programming + aliases: + - progress + - openedge + - abl + extensions: + - ".p" + - ".cls" + - ".w" + tm_scope: source.abl + ace_mode: text + language_id: 264 +OpenQASM: + type: programming + extensions: + - ".qasm" + color: "#AA70FF" + tm_scope: source.qasm + ace_mode: text + language_id: 153739399 +OpenRC runscript: + type: programming + group: Shell + aliases: + - openrc + interpreters: + - openrc-run + tm_scope: source.shell + ace_mode: sh + codemirror_mode: shell + codemirror_mime_type: text/x-sh + language_id: 265 +OpenSCAD: + type: programming + extensions: + - ".scad" + tm_scope: source.scad + ace_mode: scad + language_id: 266 +OpenStep Property List: + type: data + extensions: + - ".plist" + tm_scope: source.plist + ace_mode: text + language_id: 598917541 +OpenType Feature File: + type: data + aliases: + - AFDKO + extensions: + - ".fea" + tm_scope: source.opentype + ace_mode: text + language_id: 374317347 +Org: + type: prose + wrap: true + extensions: + - ".org" + tm_scope: none + ace_mode: text + language_id: 267 +Ox: + type: programming + extensions: + - ".ox" + - ".oxh" + - ".oxo" + tm_scope: source.ox + ace_mode: text + language_id: 268 +Oxygene: + type: programming + color: "#cdd0e3" + extensions: + - ".oxygene" + tm_scope: none + ace_mode: text + language_id: 269 +Oz: + type: programming + color: "#fab738" + extensions: + - ".oz" + tm_scope: source.oz + ace_mode: text + codemirror_mode: oz + codemirror_mime_type: text/x-oz + language_id: 270 +P4: + type: programming + color: "#7055b5" + extensions: + - ".p4" + tm_scope: source.p4 + ace_mode: text + language_id: 348895984 +PHP: + type: programming + tm_scope: text.html.php + ace_mode: php + codemirror_mode: php + codemirror_mime_type: application/x-httpd-php + color: "#4F5D95" + extensions: + - ".php" + - ".aw" + - ".ctp" + - ".fcgi" + - ".inc" + - ".php3" + - ".php4" + - ".php5" + - ".phps" + - ".phpt" + filenames: + - ".php" + - ".php_cs" + - ".php_cs.dist" + - Phakefile + interpreters: + - php + aliases: + - inc + language_id: 272 +PLSQL: + type: programming + ace_mode: sql + codemirror_mode: sql + codemirror_mime_type: text/x-plsql + tm_scope: none + color: "#dad8d8" + extensions: + - ".pls" + - ".bdy" + - ".ddl" + - ".fnc" + - ".pck" + - ".pkb" + - ".pks" + - ".plb" + - ".plsql" + - ".prc" + - ".spc" + - ".sql" + - ".tpb" + - ".tps" + - ".trg" + - ".vw" + language_id: 273 +PLpgSQL: + type: programming + ace_mode: pgsql + codemirror_mode: sql + codemirror_mime_type: text/x-sql + tm_scope: source.sql + extensions: + - ".pgsql" + - ".sql" + language_id: 274 +POV-Ray SDL: + type: programming + aliases: + - pov-ray + - povray + extensions: + - ".pov" + - ".inc" + tm_scope: source.pov-ray sdl + ace_mode: text + language_id: 275 +Pan: + type: programming + color: "#cc0000" + extensions: + - ".pan" + tm_scope: source.pan + ace_mode: text + language_id: 276 +Papyrus: + type: programming + color: "#6600cc" + extensions: + - ".psc" + tm_scope: source.papyrus.skyrim + ace_mode: text + language_id: 277 +Parrot: + type: programming + color: "#f3ca0a" + extensions: + - ".parrot" + tm_scope: none + ace_mode: text + language_id: 278 +Parrot Assembly: + group: Parrot + type: programming + aliases: + - pasm + extensions: + - ".pasm" + interpreters: + - parrot + tm_scope: none + ace_mode: text + language_id: 279 +Parrot Internal Representation: + group: Parrot + tm_scope: source.parrot.pir + type: programming + aliases: + - pir + extensions: + - ".pir" + interpreters: + - parrot + ace_mode: text + language_id: 280 +Pascal: + type: programming + color: "#E3F171" + extensions: + - ".pas" + - ".dfm" + - ".dpr" + - ".inc" + - ".lpr" + - ".pascal" + - ".pp" + interpreters: + - instantfpc + tm_scope: source.pascal + ace_mode: pascal + codemirror_mode: pascal + codemirror_mime_type: text/x-pascal + language_id: 281 +Pawn: + type: programming + color: "#dbb284" + extensions: + - ".pwn" + - ".inc" + - ".sma" + tm_scope: source.pawn + ace_mode: text + language_id: 271 +Pep8: + type: programming + color: "#C76F5B" + extensions: + - ".pep" + ace_mode: text + tm_scope: source.pep8 + language_id: 840372442 +Perl: + type: programming + tm_scope: source.perl + ace_mode: perl + codemirror_mode: perl + codemirror_mime_type: text/x-perl + color: "#0298c3" + extensions: + - ".pl" + - ".al" + - ".cgi" + - ".fcgi" + - ".perl" + - ".ph" + - ".plx" + - ".pm" + - ".psgi" + - ".t" + filenames: + - Makefile.PL + - Rexfile + - ack + - cpanfile + interpreters: + - cperl + - perl + aliases: + - cperl + language_id: 282 +Pic: + type: markup + group: Roff + tm_scope: source.pic + extensions: + - ".pic" + - ".chem" + ace_mode: text + codemirror_mode: troff + codemirror_mime_type: text/troff + language_id: 425 +Pickle: + type: data + extensions: + - ".pkl" + tm_scope: none + ace_mode: text + language_id: 284 +PicoLisp: + type: programming + extensions: + - ".l" + interpreters: + - picolisp + - pil + tm_scope: source.lisp + ace_mode: lisp + language_id: 285 +PigLatin: + type: programming + color: "#fcd7de" + extensions: + - ".pig" + tm_scope: source.pig_latin + ace_mode: text + language_id: 286 +Pike: + type: programming + color: "#005390" + extensions: + - ".pike" + - ".pmod" + interpreters: + - pike + tm_scope: source.pike + ace_mode: text + language_id: 287 +PlantUML: + type: data + extensions: + - ".puml" + - ".iuml" + - ".plantuml" + tm_scope: source.wsd + ace_mode: text + language_id: 833504686 +Pod: + type: prose + ace_mode: perl + codemirror_mode: perl + codemirror_mime_type: text/x-perl + wrap: true + extensions: + - ".pod" + interpreters: + - perl + tm_scope: none + language_id: 288 +Pod 6: + type: prose + ace_mode: perl + tm_scope: source.perl6fe + wrap: true + extensions: + - ".pod" + - ".pod6" + interpreters: + - perl6 + language_id: 155357471 +PogoScript: + type: programming + color: "#d80074" + extensions: + - ".pogo" + tm_scope: source.pogoscript + ace_mode: text + language_id: 289 +Pony: + type: programming + extensions: + - ".pony" + tm_scope: source.pony + ace_mode: text + language_id: 290 +PostCSS: + type: markup + tm_scope: source.postcss + group: CSS + extensions: + - ".pcss" + - ".postcss" + ace_mode: text + language_id: 262764437 +PostScript: + type: markup + color: "#da291c" + extensions: + - ".ps" + - ".eps" + - ".epsi" + - ".pfa" + tm_scope: source.postscript + aliases: + - postscr + ace_mode: text + language_id: 291 +PowerBuilder: + type: programming + color: "#8f0f8d" + extensions: + - ".pbt" + - ".sra" + - ".sru" + - ".srw" + tm_scope: none + ace_mode: text + language_id: 292 +PowerShell: + type: programming + color: "#012456" + tm_scope: source.powershell + ace_mode: powershell + codemirror_mode: powershell + codemirror_mime_type: application/x-powershell + aliases: + - posh + - pwsh + extensions: + - ".ps1" + - ".psd1" + - ".psm1" + interpreters: + - pwsh + language_id: 293 +Prisma: + type: data + color: "#0c344b" + extensions: + - ".prisma" + tm_scope: source.prisma + ace_mode: text + language_id: 499933428 +Processing: + type: programming + color: "#0096D8" + extensions: + - ".pde" + tm_scope: source.processing + ace_mode: text + language_id: 294 +Proguard: + type: data + extensions: + - ".pro" + tm_scope: none + ace_mode: text + language_id: 716513858 +Prolog: + type: programming + color: "#74283c" + extensions: + - ".pl" + - ".pro" + - ".prolog" + - ".yap" + interpreters: + - swipl + - yap + tm_scope: source.prolog + ace_mode: prolog + language_id: 295 +Propeller Spin: + type: programming + color: "#7fa2a7" + extensions: + - ".spin" + tm_scope: source.spin + ace_mode: text + language_id: 296 +Protocol Buffer: + type: data + aliases: + - protobuf + - Protocol Buffers + extensions: + - ".proto" + tm_scope: source.protobuf + ace_mode: protobuf + codemirror_mode: protobuf + codemirror_mime_type: text/x-protobuf + language_id: 297 +Public Key: + type: data + extensions: + - ".asc" + - ".pub" + tm_scope: none + ace_mode: text + codemirror_mode: asciiarmor + codemirror_mime_type: application/pgp + language_id: 298 +Pug: + type: markup + color: "#a86454" + extensions: + - ".jade" + - ".pug" + tm_scope: text.jade + ace_mode: jade + codemirror_mode: pug + codemirror_mime_type: text/x-pug + language_id: 179 +Puppet: + type: programming + color: "#302B6D" + extensions: + - ".pp" + filenames: + - Modulefile + ace_mode: text + codemirror_mode: puppet + codemirror_mime_type: text/x-puppet + tm_scope: source.puppet + language_id: 299 +Pure Data: + type: data + extensions: + - ".pd" + tm_scope: none + ace_mode: text + language_id: 300 +PureBasic: + type: programming + color: "#5a6986" + extensions: + - ".pb" + - ".pbi" + tm_scope: none + ace_mode: text + language_id: 301 +PureScript: + type: programming + color: "#1D222D" + extensions: + - ".purs" + tm_scope: source.purescript + ace_mode: haskell + codemirror_mode: haskell + codemirror_mime_type: text/x-haskell + language_id: 302 +Python: + type: programming + tm_scope: source.python + ace_mode: python + codemirror_mode: python + codemirror_mime_type: text/x-python + color: "#3572A5" + extensions: + - ".py" + - ".cgi" + - ".fcgi" + - ".gyp" + - ".gypi" + - ".lmi" + - ".py3" + - ".pyde" + - ".pyi" + - ".pyp" + - ".pyt" + - ".pyw" + - ".rpy" + - ".smk" + - ".spec" + - ".tac" + - ".wsgi" + - ".xpy" + filenames: + - ".gclient" + - DEPS + - SConscript + - SConstruct + - Snakefile + - wscript + interpreters: + - python + - python2 + - python3 + aliases: + - python3 + - rusthon + language_id: 303 +Python console: + type: programming + group: Python + searchable: false + aliases: + - pycon + tm_scope: text.python.console + ace_mode: text + language_id: 428 +Python traceback: + type: data + group: Python + searchable: false + extensions: + - ".pytb" + tm_scope: text.python.traceback + ace_mode: text + language_id: 304 +Q#: + type: programming + extensions: + - ".qs" + aliases: + - qsharp + color: "#fed659" + ace_mode: text + tm_scope: source.qsharp + language_id: 697448245 +QML: + type: programming + color: "#44a51c" + extensions: + - ".qml" + - ".qbs" + tm_scope: source.qml + ace_mode: text + language_id: 305 +QMake: + type: programming + extensions: + - ".pro" + - ".pri" + interpreters: + - qmake + tm_scope: source.qmake + ace_mode: text + language_id: 306 +Qt Script: + type: programming + ace_mode: javascript + codemirror_mode: javascript + codemirror_mime_type: text/javascript + extensions: + - ".qs" + filenames: + - installscript.qs + - toolchain_installscript.qs + color: "#00b841" + tm_scope: source.js + language_id: 558193693 +Quake: + type: programming + filenames: + - m3makefile + - m3overrides + color: "#882233" + ace_mode: text + tm_scope: source.quake + language_id: 375265331 +R: + type: programming + color: "#198CE7" + aliases: + - R + - Rscript + - splus + extensions: + - ".r" + - ".rd" + - ".rsx" + filenames: + - ".Rprofile" + - expr-dist + interpreters: + - Rscript + tm_scope: source.r + ace_mode: r + codemirror_mode: r + codemirror_mime_type: text/x-rsrc + language_id: 307 +RAML: + type: markup + ace_mode: yaml + codemirror_mode: yaml + codemirror_mime_type: text/x-yaml + tm_scope: source.yaml + color: "#77d9fb" + extensions: + - ".raml" + language_id: 308 +RDoc: + type: prose + ace_mode: rdoc + wrap: true + extensions: + - ".rdoc" + tm_scope: text.rdoc + language_id: 309 +REALbasic: + type: programming + extensions: + - ".rbbas" + - ".rbfrm" + - ".rbmnu" + - ".rbres" + - ".rbtbar" + - ".rbuistate" + tm_scope: source.vbnet + ace_mode: text + language_id: 310 +REXX: + type: programming + aliases: + - arexx + extensions: + - ".rexx" + - ".pprx" + - ".rex" + interpreters: + - regina + - rexx + tm_scope: source.rexx + ace_mode: text + language_id: 311 +RMarkdown: + type: prose + wrap: true + ace_mode: markdown + codemirror_mode: gfm + codemirror_mime_type: text/x-gfm + extensions: + - ".rmd" + tm_scope: source.gfm + language_id: 313 +RPC: + type: programming + aliases: + - rpcgen + - oncrpc + - xdr + ace_mode: c_cpp + extensions: + - ".x" + tm_scope: source.c + language_id: 1031374237 +RPM Spec: + type: data + tm_scope: source.rpm-spec + extensions: + - ".spec" + aliases: + - specfile + ace_mode: text + codemirror_mode: rpm + codemirror_mime_type: text/x-rpm-spec + language_id: 314 +RUNOFF: + type: markup + color: "#665a4e" + extensions: + - ".rnh" + - ".rno" + wrap: true + tm_scope: text.runoff + ace_mode: text + language_id: 315 +Racket: + type: programming + color: "#3c5caa" + extensions: + - ".rkt" + - ".rktd" + - ".rktl" + - ".scrbl" + interpreters: + - racket + tm_scope: source.racket + ace_mode: lisp + language_id: 316 +Ragel: + type: programming + color: "#9d5200" + extensions: + - ".rl" + aliases: + - ragel-rb + - ragel-ruby + tm_scope: none + ace_mode: text + language_id: 317 +Raku: + type: programming + color: "#0000fb" + extensions: + - ".6pl" + - ".6pm" + - ".nqp" + - ".p6" + - ".p6l" + - ".p6m" + - ".pl" + - ".pl6" + - ".pm" + - ".pm6" + - ".t" + interpreters: + - perl6 + - raku + - rakudo + aliases: + - perl6 + - perl-6 + tm_scope: source.perl6fe + ace_mode: perl + codemirror_mode: perl + codemirror_mime_type: text/x-perl + language_id: 283 +Rascal: + type: programming + color: "#fffaa0" + extensions: + - ".rsc" + tm_scope: source.rascal + ace_mode: text + language_id: 173616037 +Raw token data: + type: data + aliases: + - raw + extensions: + - ".raw" + tm_scope: none + ace_mode: text + language_id: 318 +Readline Config: + type: data + group: INI + aliases: + - inputrc + - readline + filenames: + - ".inputrc" + - inputrc + tm_scope: source.inputrc + ace_mode: text + language_id: 538732839 +Reason: + type: programming + color: "#ff5847" + ace_mode: rust + codemirror_mode: rust + codemirror_mime_type: text/x-rustsrc + extensions: + - ".re" + - ".rei" + tm_scope: source.reason + language_id: 869538413 +Rebol: + type: programming + color: "#358a5b" + extensions: + - ".reb" + - ".r" + - ".r2" + - ".r3" + - ".rebol" + ace_mode: text + tm_scope: source.rebol + language_id: 319 +Red: + type: programming + color: "#f50000" + extensions: + - ".red" + - ".reds" + aliases: + - red/system + tm_scope: source.red + ace_mode: text + language_id: 320 +Redcode: + type: programming + extensions: + - ".cw" + tm_scope: none + ace_mode: text + language_id: 321 +Regular Expression: + type: data + extensions: + - ".regexp" + - ".regex" + aliases: + - regexp + - regex + ace_mode: text + tm_scope: source.regexp + language_id: 363378884 +Ren'Py: + type: programming + aliases: + - renpy + color: "#ff7f7f" + extensions: + - ".rpy" + tm_scope: source.renpy + ace_mode: python + language_id: 322 +RenderScript: + type: programming + extensions: + - ".rs" + - ".rsh" + tm_scope: none + ace_mode: text + language_id: 323 +Rich Text Format: + type: markup + extensions: + - ".rtf" + tm_scope: text.rtf + ace_mode: text + language_id: 51601661 +Ring: + type: programming + color: "#2D54CB" + extensions: + - ".ring" + tm_scope: source.ring + ace_mode: text + language_id: 431 +Riot: + type: markup + color: "#A71E49" + ace_mode: html + extensions: + - ".riot" + tm_scope: text.html.riot + language_id: 878396783 +RobotFramework: + type: programming + extensions: + - ".robot" + tm_scope: text.robot + ace_mode: text + language_id: 324 +Roff: + type: markup + color: "#ecdebe" + extensions: + - ".roff" + - ".1" + - ".1in" + - ".1m" + - ".1x" + - ".2" + - ".3" + - ".3in" + - ".3m" + - ".3p" + - ".3pm" + - ".3qt" + - ".3x" + - ".4" + - ".5" + - ".6" + - ".7" + - ".8" + - ".9" + - ".l" + - ".man" + - ".mdoc" + - ".me" + - ".ms" + - ".n" + - ".nr" + - ".rno" + - ".tmac" + filenames: + - eqnrc + - mmn + - mmt + - troffrc + - troffrc-end + tm_scope: text.roff + aliases: + - groff + - man + - manpage + - man page + - man-page + - mdoc + - nroff + - troff + wrap: true + ace_mode: text + codemirror_mode: troff + codemirror_mime_type: text/troff + language_id: 141 +Roff Manpage: + type: markup + group: Roff + extensions: + - ".1" + - ".1in" + - ".1m" + - ".1x" + - ".2" + - ".3" + - ".3in" + - ".3m" + - ".3p" + - ".3pm" + - ".3qt" + - ".3x" + - ".4" + - ".5" + - ".6" + - ".7" + - ".8" + - ".9" + - ".man" + - ".mdoc" + wrap: true + tm_scope: text.roff + ace_mode: text + codemirror_mode: troff + codemirror_mime_type: text/troff + language_id: 612669833 +Rouge: + type: programming + ace_mode: clojure + codemirror_mode: clojure + codemirror_mime_type: text/x-clojure + color: "#cc0088" + extensions: + - ".rg" + tm_scope: source.clojure + language_id: 325 +Ruby: + type: programming + tm_scope: source.ruby + ace_mode: ruby + codemirror_mode: ruby + codemirror_mime_type: text/x-ruby + color: "#701516" + aliases: + - jruby + - macruby + - rake + - rb + - rbx + extensions: + - ".rb" + - ".builder" + - ".eye" + - ".fcgi" + - ".gemspec" + - ".god" + - ".jbuilder" + - ".mspec" + - ".pluginspec" + - ".podspec" + - ".rabl" + - ".rake" + - ".rbi" + - ".rbuild" + - ".rbw" + - ".rbx" + - ".ru" + - ".ruby" + - ".spec" + - ".thor" + - ".watchr" + interpreters: + - ruby + - macruby + - rake + - jruby + - rbx + filenames: + - ".irbrc" + - ".pryrc" + - ".simplecov" + - Appraisals + - Berksfile + - Brewfile + - Buildfile + - Capfile + - Dangerfile + - Deliverfile + - Fastfile + - Gemfile + - Gemfile.lock + - Guardfile + - Jarfile + - Mavenfile + - Podfile + - Puppetfile + - Rakefile + - Snapfile + - Thorfile + - Vagrantfile + - buildfile + language_id: 326 +Rust: + type: programming + color: "#dea584" + extensions: + - ".rs" + - ".rs.in" + tm_scope: source.rust + ace_mode: rust + codemirror_mode: rust + codemirror_mime_type: text/x-rustsrc + language_id: 327 +SAS: + type: programming + color: "#B34936" + extensions: + - ".sas" + tm_scope: source.sas + ace_mode: text + codemirror_mode: sas + codemirror_mime_type: text/x-sas + language_id: 328 +SCSS: + type: markup + color: "#c6538c" + tm_scope: source.css.scss + ace_mode: scss + codemirror_mode: css + codemirror_mime_type: text/x-scss + extensions: + - ".scss" + language_id: 329 +SMT: + type: programming + extensions: + - ".smt2" + - ".smt" + interpreters: + - boolector + - cvc4 + - mathsat5 + - opensmt + - smtinterpol + - smt-rat + - stp + - verit + - yices2 + - z3 + tm_scope: source.smt + ace_mode: text + language_id: 330 +SPARQL: + type: data + tm_scope: source.sparql + ace_mode: text + codemirror_mode: sparql + codemirror_mime_type: application/sparql-query + extensions: + - ".sparql" + - ".rq" + language_id: 331 +SQF: + type: programming + color: "#3F3F3F" + extensions: + - ".sqf" + - ".hqf" + tm_scope: source.sqf + ace_mode: text + language_id: 332 +SQL: + type: data + tm_scope: source.sql + ace_mode: sql + codemirror_mode: sql + codemirror_mime_type: text/x-sql + extensions: + - ".sql" + - ".cql" + - ".ddl" + - ".inc" + - ".mysql" + - ".prc" + - ".tab" + - ".udf" + - ".viw" + language_id: 333 +SQLPL: + type: programming + ace_mode: sql + codemirror_mode: sql + codemirror_mime_type: text/x-sql + tm_scope: source.sql + extensions: + - ".sql" + - ".db2" + language_id: 334 +SRecode Template: + type: markup + color: "#348a34" + tm_scope: source.lisp + ace_mode: lisp + codemirror_mode: commonlisp + codemirror_mime_type: text/x-common-lisp + extensions: + - ".srt" + language_id: 335 +SSH Config: + type: data + group: INI + filenames: + - ssh-config + - ssh_config + - sshconfig + - sshconfig.snip + - sshd-config + - sshd_config + ace_mode: text + tm_scope: source.ssh-config + language_id: 554920715 +STON: + type: data + group: Smalltalk + extensions: + - ".ston" + tm_scope: source.smalltalk + ace_mode: text + language_id: 336 +SVG: + type: data + color: "#ff9900" + extensions: + - ".svg" + tm_scope: text.xml.svg + ace_mode: xml + codemirror_mode: xml + codemirror_mime_type: text/xml + language_id: 337 +SWIG: + type: programming + extensions: + - ".i" + tm_scope: source.c++ + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-c++src + language_id: 1066250075 +Sage: + type: programming + extensions: + - ".sage" + - ".sagews" + tm_scope: source.python + ace_mode: python + codemirror_mode: python + codemirror_mime_type: text/x-python + language_id: 338 +SaltStack: + type: programming + color: "#646464" + aliases: + - saltstate + - salt + extensions: + - ".sls" + tm_scope: source.yaml.salt + ace_mode: yaml + codemirror_mode: yaml + codemirror_mime_type: text/x-yaml + language_id: 339 +Sass: + type: markup + color: "#a53b70" + tm_scope: source.sass + extensions: + - ".sass" + ace_mode: sass + codemirror_mode: sass + codemirror_mime_type: text/x-sass + language_id: 340 +Scala: + type: programming + tm_scope: source.scala + ace_mode: scala + codemirror_mode: clike + codemirror_mime_type: text/x-scala + color: "#c22d40" + extensions: + - ".scala" + - ".kojo" + - ".sbt" + - ".sc" + interpreters: + - scala + language_id: 341 +Scaml: + group: HTML + type: markup + extensions: + - ".scaml" + tm_scope: source.scaml + ace_mode: text + language_id: 342 +Scheme: + type: programming + color: "#1e4aec" + extensions: + - ".scm" + - ".sch" + - ".sld" + - ".sls" + - ".sps" + - ".ss" + interpreters: + - scheme + - guile + - bigloo + - chicken + - csi + - gosh + - r6rs + tm_scope: source.scheme + ace_mode: scheme + codemirror_mode: scheme + codemirror_mime_type: text/x-scheme + language_id: 343 +Scilab: + type: programming + extensions: + - ".sci" + - ".sce" + - ".tst" + tm_scope: source.scilab + ace_mode: text + language_id: 344 +Self: + type: programming + color: "#0579aa" + extensions: + - ".self" + tm_scope: none + ace_mode: text + language_id: 345 +ShaderLab: + type: programming + extensions: + - ".shader" + ace_mode: text + tm_scope: source.shaderlab + language_id: 664257356 +Shell: + type: programming + color: "#89e051" + aliases: + - sh + - shell-script + - bash + - zsh + extensions: + - ".sh" + - ".bash" + - ".bats" + - ".cgi" + - ".command" + - ".env" + - ".fcgi" + - ".ksh" + - ".sh.in" + - ".tmux" + - ".tool" + - ".zsh" + filenames: + - ".bash_aliases" + - ".bash_history" + - ".bash_logout" + - ".bash_profile" + - ".bashrc" + - ".cshrc" + - ".env" + - ".env.example" + - ".flaskenv" + - ".login" + - ".profile" + - ".zlogin" + - ".zlogout" + - ".zprofile" + - ".zshenv" + - ".zshrc" + - 9fs + - PKGBUILD + - bash_aliases + - bash_logout + - bash_profile + - bashrc + - cshrc + - gradlew + - login + - man + - profile + - zlogin + - zlogout + - zprofile + - zshenv + - zshrc + interpreters: + - ash + - bash + - dash + - ksh + - mksh + - pdksh + - rc + - sh + - zsh + tm_scope: source.shell + ace_mode: sh + codemirror_mode: shell + codemirror_mime_type: text/x-sh + language_id: 346 +ShellSession: + type: programming + extensions: + - ".sh-session" + aliases: + - bash session + - console + tm_scope: text.shell-session + ace_mode: sh + codemirror_mode: shell + codemirror_mime_type: text/x-sh + language_id: 347 +Shen: + type: programming + color: "#120F14" + extensions: + - ".shen" + tm_scope: source.shen + ace_mode: text + language_id: 348 +Sieve: + type: programming + tm_scope: source.sieve + ace_mode: text + extensions: + - ".sieve" + codemirror_mode: sieve + codemirror_mime_type: application/sieve + language_id: 208976687 +Slash: + type: programming + color: "#007eff" + extensions: + - ".sl" + tm_scope: text.html.slash + ace_mode: text + language_id: 349 +Slice: + type: programming + color: "#003fa2" + tm_scope: source.slice + ace_mode: text + extensions: + - ".ice" + language_id: 894641667 +Slim: + type: markup + color: "#2b2b2b" + extensions: + - ".slim" + tm_scope: text.slim + ace_mode: text + codemirror_mode: slim + codemirror_mime_type: text/x-slim + language_id: 350 +SmPL: + type: programming + extensions: + - ".cocci" + aliases: + - coccinelle + ace_mode: text + tm_scope: source.smpl + color: "#c94949" + language_id: 164123055 +Smali: + type: programming + extensions: + - ".smali" + ace_mode: text + tm_scope: source.smali + language_id: 351 +Smalltalk: + type: programming + color: "#596706" + extensions: + - ".st" + - ".cs" + aliases: + - squeak + tm_scope: source.smalltalk + ace_mode: text + codemirror_mode: smalltalk + codemirror_mime_type: text/x-stsrc + language_id: 352 +Smarty: + type: programming + extensions: + - ".tpl" + ace_mode: smarty + codemirror_mode: smarty + codemirror_mime_type: text/x-smarty + tm_scope: text.html.smarty + language_id: 353 +Solidity: + type: programming + color: "#AA6746" + ace_mode: text + tm_scope: source.solidity + extensions: + - ".sol" + language_id: 237469032 +SourcePawn: + type: programming + color: "#f69e1d" + aliases: + - sourcemod + extensions: + - ".sp" + - ".inc" + tm_scope: source.sourcepawn + ace_mode: text + language_id: 354 +Spline Font Database: + type: data + extensions: + - ".sfd" + tm_scope: text.sfd + ace_mode: yaml + language_id: 767169629 +Squirrel: + type: programming + color: "#800000" + extensions: + - ".nut" + tm_scope: source.c++ + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-c++src + language_id: 355 +Stan: + type: programming + color: "#b2011d" + extensions: + - ".stan" + ace_mode: text + tm_scope: source.stan + language_id: 356 +Standard ML: + type: programming + color: "#dc566d" + aliases: + - sml + extensions: + - ".ml" + - ".fun" + - ".sig" + - ".sml" + tm_scope: source.ml + ace_mode: text + codemirror_mode: mllike + codemirror_mime_type: text/x-ocaml + language_id: 357 +Starlark: + type: programming + tm_scope: source.python + ace_mode: python + codemirror_mode: python + codemirror_mime_type: text/x-python + color: "#76d275" + extensions: + - ".bzl" + filenames: + - BUCK + - BUILD + - BUILD.bazel + - Tiltfile + - WORKSPACE + aliases: + - bazel + - bzl + language_id: 960266174 +Stata: + type: programming + extensions: + - ".do" + - ".ado" + - ".doh" + - ".ihlp" + - ".mata" + - ".matah" + - ".sthlp" + tm_scope: source.stata + ace_mode: text + language_id: 358 +Stylus: + type: markup + color: "#ff6347" + extensions: + - ".styl" + tm_scope: source.stylus + ace_mode: stylus + language_id: 359 +SubRip Text: + type: data + extensions: + - ".srt" + ace_mode: text + tm_scope: text.srt + language_id: 360 +SugarSS: + type: markup + tm_scope: source.css.postcss.sugarss + group: CSS + extensions: + - ".sss" + ace_mode: text + language_id: 826404698 +SuperCollider: + type: programming + color: "#46390b" + extensions: + - ".sc" + - ".scd" + interpreters: + - sclang + - scsynth + tm_scope: source.supercollider + ace_mode: text + language_id: 361 +Svelte: + type: markup + color: "#ff3e00" + tm_scope: source.svelte + ace_mode: html + codemirror_mode: htmlmixed + codemirror_mime_type: text/html + extensions: + - ".svelte" + language_id: 928734530 +Swift: + type: programming + color: "#ffac45" + extensions: + - ".swift" + tm_scope: source.swift + ace_mode: text + codemirror_mode: swift + codemirror_mime_type: text/x-swift + language_id: 362 +SystemVerilog: + type: programming + color: "#DAE1C2" + extensions: + - ".sv" + - ".svh" + - ".vh" + tm_scope: source.systemverilog + ace_mode: verilog + codemirror_mode: verilog + codemirror_mime_type: text/x-systemverilog + language_id: 363 +TI Program: + type: programming + ace_mode: text + color: "#A0AA87" + extensions: + - ".8xp" + - ".8xk" + - ".8xk.txt" + - ".8xp.txt" + language_id: 422 + tm_scope: none +TLA: + type: programming + extensions: + - ".tla" + tm_scope: source.tla + ace_mode: text + language_id: 364 +TOML: + type: data + extensions: + - ".toml" + filenames: + - Cargo.lock + - Gopkg.lock + - poetry.lock + tm_scope: source.toml + ace_mode: toml + codemirror_mode: toml + codemirror_mime_type: text/x-toml + language_id: 365 +TSQL: + type: programming + extensions: + - ".sql" + ace_mode: sql + tm_scope: source.tsql + language_id: 918334941 +TSV: + type: data + ace_mode: text + tm_scope: source.generic-db + extensions: + - ".tsv" + language_id: 1035892117 +TSX: + type: programming + group: TypeScript + extensions: + - ".tsx" + tm_scope: source.tsx + ace_mode: javascript + codemirror_mode: jsx + codemirror_mime_type: text/jsx + language_id: 94901924 +TXL: + type: programming + extensions: + - ".txl" + tm_scope: source.txl + ace_mode: text + language_id: 366 +Tcl: + type: programming + color: "#e4cc98" + extensions: + - ".tcl" + - ".adp" + - ".tm" + filenames: + - owh + - starfield + interpreters: + - tclsh + - wish + tm_scope: source.tcl + ace_mode: tcl + codemirror_mode: tcl + codemirror_mime_type: text/x-tcl + language_id: 367 +Tcsh: + type: programming + group: Shell + extensions: + - ".tcsh" + - ".csh" + interpreters: + - tcsh + - csh + tm_scope: source.shell + ace_mode: sh + codemirror_mode: shell + codemirror_mime_type: text/x-sh + language_id: 368 +TeX: + type: markup + color: "#3D6117" + ace_mode: tex + codemirror_mode: stex + codemirror_mime_type: text/x-stex + tm_scope: text.tex.latex + wrap: true + aliases: + - latex + extensions: + - ".tex" + - ".aux" + - ".bbx" + - ".cbx" + - ".cls" + - ".dtx" + - ".ins" + - ".lbx" + - ".ltx" + - ".mkii" + - ".mkiv" + - ".mkvi" + - ".sty" + - ".toc" + language_id: 369 +Tea: + type: markup + extensions: + - ".tea" + tm_scope: source.tea + ace_mode: text + language_id: 370 +Terra: + type: programming + extensions: + - ".t" + color: "#00004c" + tm_scope: source.terra + ace_mode: lua + codemirror_mode: lua + codemirror_mime_type: text/x-lua + interpreters: + - lua + language_id: 371 +Texinfo: + type: prose + wrap: true + extensions: + - ".texinfo" + - ".texi" + - ".txi" + ace_mode: text + tm_scope: text.texinfo + interpreters: + - makeinfo + language_id: 988020015 +Text: + type: prose + wrap: true + aliases: + - fundamental + extensions: + - ".txt" + - ".fr" + - ".nb" + - ".ncl" + - ".no" + filenames: + - COPYING + - COPYING.regex + - COPYRIGHT.regex + - FONTLOG + - INSTALL + - INSTALL.mysql + - LICENSE + - LICENSE.mysql + - NEWS + - README.1ST + - README.me + - README.mysql + - click.me + - delete.me + - go.mod + - go.sum + - keep.me + - package.mask + - package.use.mask + - package.use.stable.mask + - read.me + - readme.1st + - test.me + - use.mask + - use.stable.mask + tm_scope: none + ace_mode: text + language_id: 372 +Textile: + type: prose + ace_mode: textile + codemirror_mode: textile + codemirror_mime_type: text/x-textile + wrap: true + extensions: + - ".textile" + tm_scope: none + language_id: 373 +Thrift: + type: programming + tm_scope: source.thrift + extensions: + - ".thrift" + ace_mode: text + language_id: 374 +Turing: + type: programming + color: "#cf142b" + extensions: + - ".t" + - ".tu" + tm_scope: source.turing + ace_mode: text + language_id: 375 +Turtle: + type: data + extensions: + - ".ttl" + tm_scope: source.turtle + ace_mode: text + codemirror_mode: turtle + codemirror_mime_type: text/turtle + language_id: 376 +Twig: + type: markup + color: "#c1d026" + extensions: + - ".twig" + tm_scope: text.html.twig + ace_mode: twig + codemirror_mode: twig + codemirror_mime_type: text/x-twig + language_id: 377 +Type Language: + type: data + aliases: + - tl + extensions: + - ".tl" + tm_scope: source.tl + ace_mode: text + language_id: 632765617 +TypeScript: + type: programming + color: "#2b7489" + aliases: + - ts + interpreters: + - deno + - ts-node + extensions: + - ".ts" + tm_scope: source.ts + ace_mode: typescript + codemirror_mode: javascript + codemirror_mime_type: application/typescript + language_id: 378 +Unified Parallel C: + type: programming + color: "#4e3617" + group: C + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-csrc + extensions: + - ".upc" + tm_scope: source.c + language_id: 379 +Unity3D Asset: + type: data + ace_mode: yaml + codemirror_mode: yaml + codemirror_mime_type: text/x-yaml + extensions: + - ".anim" + - ".asset" + - ".mask" + - ".mat" + - ".meta" + - ".prefab" + - ".unity" + tm_scope: source.yaml + language_id: 380 +Unix Assembly: + type: programming + group: Assembly + extensions: + - ".s" + - ".ms" + tm_scope: source.x86 + ace_mode: assembly_x86 + language_id: 120 +Uno: + type: programming + color: "#9933cc" + extensions: + - ".uno" + ace_mode: csharp + codemirror_mode: clike + codemirror_mime_type: text/x-csharp + tm_scope: source.cs + language_id: 381 +UnrealScript: + type: programming + color: "#a54c4d" + extensions: + - ".uc" + tm_scope: source.java + ace_mode: java + codemirror_mode: clike + codemirror_mime_type: text/x-java + language_id: 382 +UrWeb: + type: programming + aliases: + - Ur/Web + - Ur + extensions: + - ".ur" + - ".urs" + tm_scope: source.ur + ace_mode: text + language_id: 383 +V: + type: programming + color: "#4f87c4" + aliases: + - vlang + extensions: + - ".v" + tm_scope: source.v + ace_mode: golang + codemirror_mode: go + codemirror_mime_type: text/x-go + language_id: 603371597 +VBA: + type: programming + color: "#867db1" + extensions: + - ".bas" + - ".cls" + - ".frm" + - ".frx" + - ".vba" + tm_scope: source.vbnet + aliases: + - vb6 + - visual basic 6 + - visual basic for applications + ace_mode: text + codemirror_mode: vb + codemirror_mime_type: text/x-vb + language_id: 399230729 +VBScript: + type: programming + color: "#15dcdc" + extensions: + - ".vbs" + tm_scope: source.vbnet + ace_mode: text + codemirror_mode: vbscript + codemirror_mime_type: text/vbscript + language_id: 408016005 +VCL: + type: programming + color: "#148AA8" + extensions: + - ".vcl" + tm_scope: source.varnish.vcl + ace_mode: text + language_id: 384 +VHDL: + type: programming + color: "#adb2cb" + extensions: + - ".vhdl" + - ".vhd" + - ".vhf" + - ".vhi" + - ".vho" + - ".vhs" + - ".vht" + - ".vhw" + tm_scope: source.vhdl + ace_mode: vhdl + codemirror_mode: vhdl + codemirror_mime_type: text/x-vhdl + language_id: 385 +Vala: + type: programming + color: "#fbe5cd" + extensions: + - ".vala" + - ".vapi" + tm_scope: source.vala + ace_mode: vala + language_id: 386 +Verilog: + type: programming + color: "#b2b7f8" + extensions: + - ".v" + - ".veo" + tm_scope: source.verilog + ace_mode: verilog + codemirror_mode: verilog + codemirror_mime_type: text/x-verilog + language_id: 387 +Vim Help File: + type: prose + aliases: + - vimhelp + extensions: + - ".txt" + tm_scope: text.vim-help + ace_mode: text + language_id: 508563686 +Vim Snippet: + type: markup + aliases: + - SnipMate + - UltiSnip + - UltiSnips + - NeoSnippet + extensions: + - ".snip" + - ".snippet" + - ".snippets" + tm_scope: source.vim-snippet + ace_mode: text + language_id: 81265970 +Vim script: + type: programming + color: "#199f4b" + tm_scope: source.viml + aliases: + - vim + - viml + - nvim + extensions: + - ".vim" + - ".vba" + - ".vmb" + filenames: + - ".exrc" + - ".gvimrc" + - ".nvimrc" + - ".vimrc" + - _vimrc + - gvimrc + - nvimrc + - vimrc + ace_mode: text + language_id: 388 +Visual Basic .NET: + type: programming + color: "#945db7" + extensions: + - ".vb" + - ".vbhtml" + aliases: + - visual basic + - vbnet + - vb .net + - vb.net + tm_scope: source.vbnet + ace_mode: text + codemirror_mode: vb + codemirror_mime_type: text/x-vb + language_id: 389 +Volt: + type: programming + color: "#1F1F1F" + extensions: + - ".volt" + tm_scope: source.d + ace_mode: d + codemirror_mode: d + codemirror_mime_type: text/x-d + language_id: 390 +Vue: + type: markup + color: "#2c3e50" + extensions: + - ".vue" + tm_scope: text.html.vue + ace_mode: html + language_id: 391 +Wavefront Material: + type: data + extensions: + - ".mtl" + tm_scope: source.wavefront.mtl + ace_mode: text + language_id: 392 +Wavefront Object: + type: data + extensions: + - ".obj" + tm_scope: source.wavefront.obj + ace_mode: text + language_id: 393 +Web Ontology Language: + type: data + extensions: + - ".owl" + tm_scope: text.xml + ace_mode: xml + language_id: 394 +WebAssembly: + type: programming + color: "#04133b" + extensions: + - ".wast" + - ".wat" + aliases: + - wast + - wasm + tm_scope: source.webassembly + ace_mode: lisp + codemirror_mode: commonlisp + codemirror_mime_type: text/x-common-lisp + language_id: 956556503 +WebIDL: + type: programming + extensions: + - ".webidl" + tm_scope: source.webidl + ace_mode: text + codemirror_mode: webidl + codemirror_mime_type: text/x-webidl + language_id: 395 +WebVTT: + type: data + wrap: true + extensions: + - ".vtt" + tm_scope: source.vtt + ace_mode: text + language_id: 658679714 +Wget Config: + type: data + group: INI + aliases: + - wgetrc + filenames: + - ".wgetrc" + tm_scope: source.wgetrc + ace_mode: text + language_id: 668457123 +Windows Registry Entries: + type: data + extensions: + - ".reg" + tm_scope: source.reg + ace_mode: ini + codemirror_mode: properties + codemirror_mime_type: text/x-properties + language_id: 969674868 +Wollok: + type: programming + color: "#a23738" + extensions: + - ".wlk" + ace_mode: text + tm_scope: source.wollok + language_id: 632745969 +World of Warcraft Addon Data: + type: data + extensions: + - ".toc" + tm_scope: source.toc + ace_mode: text + language_id: 396 +X BitMap: + type: data + group: C + aliases: + - xbm + extensions: + - ".xbm" + ace_mode: c_cpp + tm_scope: source.c + codemirror_mode: clike + codemirror_mime_type: text/x-csrc + language_id: 782911107 +X Font Directory Index: + type: data + filenames: + - encodings.dir + - fonts.alias + - fonts.dir + - fonts.scale + tm_scope: source.fontdir + ace_mode: text + language_id: 208700028 +X PixMap: + type: data + group: C + aliases: + - xpm + extensions: + - ".xpm" + - ".pm" + ace_mode: c_cpp + tm_scope: source.c + codemirror_mode: clike + codemirror_mime_type: text/x-csrc + language_id: 781846279 +X10: + type: programming + aliases: + - xten + ace_mode: text + extensions: + - ".x10" + color: "#4B6BEF" + tm_scope: source.x10 + language_id: 397 +XC: + type: programming + color: "#99DA07" + extensions: + - ".xc" + tm_scope: source.xc + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-csrc + language_id: 398 +XCompose: + type: data + filenames: + - ".XCompose" + - XCompose + - xcompose + tm_scope: config.xcompose + ace_mode: text + language_id: 225167241 +XML: + type: data + tm_scope: text.xml + ace_mode: xml + codemirror_mode: xml + codemirror_mime_type: text/xml + aliases: + - rss + - xsd + - wsdl + extensions: + - ".xml" + - ".adml" + - ".admx" + - ".ant" + - ".axml" + - ".builds" + - ".ccproj" + - ".ccxml" + - ".clixml" + - ".cproject" + - ".cscfg" + - ".csdef" + - ".csl" + - ".csproj" + - ".ct" + - ".depproj" + - ".dita" + - ".ditamap" + - ".ditaval" + - ".dll.config" + - ".dotsettings" + - ".filters" + - ".fsproj" + - ".fxml" + - ".glade" + - ".gml" + - ".gmx" + - ".grxml" + - ".gst" + - ".iml" + - ".ivy" + - ".jelly" + - ".jsproj" + - ".kml" + - ".launch" + - ".mdpolicy" + - ".mjml" + - ".mm" + - ".mod" + - ".mxml" + - ".natvis" + - ".ncl" + - ".ndproj" + - ".nproj" + - ".nuspec" + - ".odd" + - ".osm" + - ".pkgproj" + - ".pluginspec" + - ".proj" + - ".props" + - ".ps1xml" + - ".psc1" + - ".pt" + - ".rdf" + - ".resx" + - ".rss" + - ".sch" + - ".scxml" + - ".sfproj" + - ".shproj" + - ".srdf" + - ".storyboard" + - ".sublime-snippet" + - ".targets" + - ".tml" + - ".ts" + - ".tsx" + - ".ui" + - ".urdf" + - ".ux" + - ".vbproj" + - ".vcxproj" + - ".vsixmanifest" + - ".vssettings" + - ".vstemplate" + - ".vxml" + - ".wixproj" + - ".workflow" + - ".wsdl" + - ".wsf" + - ".wxi" + - ".wxl" + - ".wxs" + - ".x3d" + - ".xacro" + - ".xaml" + - ".xib" + - ".xlf" + - ".xliff" + - ".xmi" + - ".xml.dist" + - ".xproj" + - ".xsd" + - ".xspec" + - ".xul" + - ".zcml" + filenames: + - ".classpath" + - ".cproject" + - ".project" + - App.config + - NuGet.config + - Settings.StyleCop + - Web.Debug.config + - Web.Release.config + - Web.config + - packages.config + language_id: 399 +XML Property List: + type: data + group: XML + extensions: + - ".plist" + - ".stTheme" + - ".tmCommand" + - ".tmLanguage" + - ".tmPreferences" + - ".tmSnippet" + - ".tmTheme" + tm_scope: text.xml.plist + ace_mode: xml + codemirror_mode: xml + codemirror_mime_type: text/xml + language_id: 75622871 +XPages: + type: data + extensions: + - ".xsp-config" + - ".xsp.metadata" + tm_scope: text.xml + ace_mode: xml + codemirror_mode: xml + codemirror_mime_type: text/xml + language_id: 400 +XProc: + type: programming + extensions: + - ".xpl" + - ".xproc" + tm_scope: text.xml + ace_mode: xml + codemirror_mode: xml + codemirror_mime_type: text/xml + language_id: 401 +XQuery: + type: programming + color: "#5232e7" + extensions: + - ".xquery" + - ".xq" + - ".xql" + - ".xqm" + - ".xqy" + ace_mode: xquery + codemirror_mode: xquery + codemirror_mime_type: application/xquery + tm_scope: source.xq + language_id: 402 +XS: + type: programming + extensions: + - ".xs" + tm_scope: source.c + ace_mode: c_cpp + codemirror_mode: clike + codemirror_mime_type: text/x-csrc + language_id: 403 +XSLT: + type: programming + aliases: + - xsl + extensions: + - ".xslt" + - ".xsl" + tm_scope: text.xml.xsl + ace_mode: xml + codemirror_mode: xml + codemirror_mime_type: text/xml + color: "#EB8CEB" + language_id: 404 +Xojo: + type: programming + extensions: + - ".xojo_code" + - ".xojo_menu" + - ".xojo_report" + - ".xojo_script" + - ".xojo_toolbar" + - ".xojo_window" + tm_scope: source.xojo + ace_mode: text + language_id: 405 +Xtend: + type: programming + extensions: + - ".xtend" + tm_scope: source.xtend + ace_mode: text + language_id: 406 +YAML: + type: data + color: "#cb171e" + tm_scope: source.yaml + aliases: + - yml + extensions: + - ".yml" + - ".mir" + - ".reek" + - ".rviz" + - ".sublime-syntax" + - ".syntax" + - ".yaml" + - ".yaml-tmlanguage" + - ".yaml.sed" + - ".yml.mysql" + filenames: + - ".clang-format" + - ".clang-tidy" + - ".gemrc" + - glide.lock + - yarn.lock + ace_mode: yaml + codemirror_mode: yaml + codemirror_mime_type: text/x-yaml + language_id: 407 +YANG: + type: data + extensions: + - ".yang" + tm_scope: source.yang + ace_mode: text + language_id: 408 +YARA: + type: programming + color: "#220000" + ace_mode: text + extensions: + - ".yar" + - ".yara" + tm_scope: source.yara + language_id: 805122868 +YASnippet: + type: markup + aliases: + - snippet + - yas + color: "#32AB90" + extensions: + - ".yasnippet" + tm_scope: source.yasnippet + ace_mode: text + language_id: 378760102 +Yacc: + type: programming + extensions: + - ".y" + - ".yacc" + - ".yy" + tm_scope: source.yacc + ace_mode: text + color: "#4B6C4B" + language_id: 409 +ZAP: + type: programming + color: "#0d665e" + extensions: + - ".zap" + - ".xzap" + tm_scope: source.zap + ace_mode: text + language_id: 952972794 +ZIL: + type: programming + color: "#dc75e5" + extensions: + - ".zil" + - ".mud" + tm_scope: source.zil + ace_mode: text + language_id: 973483626 +Zeek: + type: programming + aliases: + - bro + extensions: + - ".zeek" + - ".bro" + tm_scope: source.zeek + ace_mode: text + language_id: 40 +ZenScript: + type: programming + color: "#00BCD1" + extensions: + - ".zs" + tm_scope: source.zenscript + ace_mode: text + language_id: 494938890 +Zephir: + type: programming + color: "#118f9e" + extensions: + - ".zep" + tm_scope: source.php.zephir + ace_mode: php + language_id: 410 +Zig: + type: programming + color: "#ec915c" + extensions: + - ".zig" + tm_scope: source.zig + ace_mode: text + language_id: 646424281 +Zimpl: + type: programming + extensions: + - ".zimpl" + - ".zmpl" + - ".zpl" + tm_scope: none + ace_mode: text + language_id: 411 +cURL Config: + type: data + group: INI + aliases: + - curlrc + filenames: + - ".curlrc" + - _curlrc + tm_scope: source.curlrc + ace_mode: text + language_id: 992375436 +desktop: + type: data + extensions: + - ".desktop" + - ".desktop.in" + tm_scope: source.desktop + ace_mode: text + language_id: 412 +dircolors: + type: data + extensions: + - ".dircolors" + filenames: + - ".dir_colors" + - ".dircolors" + - DIR_COLORS + - _dir_colors + - _dircolors + - dir_colors + tm_scope: source.dircolors + ace_mode: text + language_id: 691605112 +eC: + type: programming + color: "#913960" + extensions: + - ".ec" + - ".eh" + tm_scope: source.c.ec + ace_mode: text + language_id: 413 +edn: + type: data + ace_mode: clojure + codemirror_mode: clojure + codemirror_mime_type: text/x-clojure + extensions: + - ".edn" + tm_scope: source.clojure + language_id: 414 +fish: + type: programming + group: Shell + interpreters: + - fish + extensions: + - ".fish" + tm_scope: source.fish + ace_mode: text + language_id: 415 +mIRC Script: + type: programming + color: "#3d57c3" + extensions: + - ".mrc" + tm_scope: source.msl + ace_mode: text + language_id: 517654727 +mcfunction: + type: programming + color: "#E22837" + extensions: + - ".mcfunction" + tm_scope: source.mcfunction + ace_mode: text + language_id: 462488745 +mupad: + type: programming + extensions: + - ".mu" + tm_scope: source.mupad + ace_mode: text + language_id: 416 +nanorc: + type: data + group: INI + extensions: + - ".nanorc" + filenames: + - ".nanorc" + - nanorc + tm_scope: source.nanorc + ace_mode: text + language_id: 775996197 +nesC: + type: programming + color: "#94B0C7" + extensions: + - ".nc" + ace_mode: text + tm_scope: source.nesc + language_id: 417 +ooc: + type: programming + color: "#b0b77e" + extensions: + - ".ooc" + tm_scope: source.ooc + ace_mode: text + language_id: 418 +q: + type: programming + extensions: + - ".q" + tm_scope: source.q + ace_mode: text + color: "#0040cd" + language_id: 970539067 +reStructuredText: + type: prose + wrap: true + aliases: + - rst + extensions: + - ".rst" + - ".rest" + - ".rest.txt" + - ".rst.txt" + tm_scope: text.restructuredtext + ace_mode: text + codemirror_mode: rst + codemirror_mime_type: text/x-rst + language_id: 419 +sed: + type: programming + color: "#64b970" + extensions: + - ".sed" + interpreters: + - gsed + - minised + - sed + - ssed + ace_mode: text + tm_scope: source.sed + language_id: 847830017 +wdl: + type: programming + color: "#42f1f4" + extensions: + - ".wdl" + tm_scope: source.wdl + ace_mode: text + language_id: 374521672 +wisp: + type: programming + ace_mode: clojure + codemirror_mode: clojure + codemirror_mime_type: text/x-clojure + color: "#7582D1" + extensions: + - ".wisp" + tm_scope: source.clojure + language_id: 420 +xBase: + type: programming + color: "#403a40" + aliases: + - advpl + - clipper + - foxpro + extensions: + - ".prg" + - ".ch" + - ".prw" + tm_scope: source.harbour + ace_mode: text + language_id: 421 \ No newline at end of file diff --git a/js/src/constants.ts b/js/src/constants.ts new file mode 100644 index 00000000..aa802e16 --- /dev/null +++ b/js/src/constants.ts @@ -0,0 +1,19 @@ +/*----------------------------------------------------------------------------------------------- + * Copyright (c) Red Hat, Inc. All rights reserved. + * Licensed under the MIT License. See LICENSE file in the project root for license information. + *-----------------------------------------------------------------------------------------------*/ +export const JAVA = 'java'; + +export const GRADLE = 'gradle'; +export const MAVEN = 'maven'; +export const ANT = 'ant'; + +export const QUARKUS = 'quarkus'; +export const SPRINGBOOT = 'springboot'; +export const OPENLIBERTY = 'openliberty'; +export const MICRONAUT = 'micronaut'; + + +export const PYTHON = 'python'; + +export const DJANGO = "django"; \ No newline at end of file diff --git a/js/src/javaRecognizer.ts b/js/src/javaRecognizer.ts new file mode 100644 index 00000000..ce5b4f2d --- /dev/null +++ b/js/src/javaRecognizer.ts @@ -0,0 +1,61 @@ +/*----------------------------------------------------------------------------------------------- + * Copyright (c) Red Hat, Inc. All rights reserved. + * Licensed under the MIT License. See LICENSE file in the project root for license information. + *-----------------------------------------------------------------------------------------------*/ +import path = require("path"); +import { ANT, GRADLE, JAVA, MAVEN, MICRONAUT, OPENLIBERTY, QUARKUS, SPRINGBOOT } from "./constants"; +import { Language } from "./types"; +import { isTagInFile } from "./utils"; + +export async function getJava(files: string[]): Promise { + const language: Language = { + name: JAVA + }; + // check builder + const gradle = files.filter(file => path.basename(file).toLowerCase() === 'build.gradle')[0]; + const maven = files.filter(file => path.basename(file).toLowerCase() === 'pom.xml')[0]; + const ant = files.filter(file => path.basename(file).toLowerCase() === 'build.xml')[0]; + + if (gradle) { + language.builder = GRADLE; + language.frameworks = await getJavaFrameworks(gradle, GRADLE); + } else if (maven) { + language.builder = MAVEN; + language.frameworks = await getJavaFrameworks(maven, MAVEN); + } else if (ant) { + language.builder = ANT; + } + + return language; +} + +async function getJavaFrameworks(configFile: string, builder: string): Promise { + const frameworks: string[] = []; + const hasQuarkus = await hasDependency(configFile, 'io.quarkus', builder); + if (hasQuarkus) { + frameworks.push(QUARKUS); + } + const hasSpring = await hasDependency(configFile, 'org.springframework', builder); + if (hasSpring) { + frameworks.push(SPRINGBOOT); + } + const hasOpenLiberty = await hasDependency(configFile, 'io.openliberty', builder); + if (hasOpenLiberty) { + frameworks.push(OPENLIBERTY); + } + const hasMicronaut = await hasDependency(configFile, 'io.micronaut', builder); + if (hasMicronaut) { + frameworks.push(MICRONAUT); + } + return frameworks; +} + +async function hasDependency(configFile: string, tag: string, builder: string): Promise { + if (builder === GRADLE) { + return await isTagInFile(configFile, tag); + } else if (builder === MAVEN) { + return await isTagInFile(configFile, tag); + } + + return false; +} \ No newline at end of file diff --git a/js/src/pythonRecognizer.ts b/js/src/pythonRecognizer.ts new file mode 100644 index 00000000..79f11e72 --- /dev/null +++ b/js/src/pythonRecognizer.ts @@ -0,0 +1,29 @@ +/*----------------------------------------------------------------------------------------------- + * Copyright (c) Red Hat, Inc. All rights reserved. + * Licensed under the MIT License. See LICENSE file in the project root for license information. + *-----------------------------------------------------------------------------------------------*/ +import path = require("path"); +import { DJANGO, PYTHON } from "./constants"; +import { Language } from "./types"; + +export async function getPython(files: string[]): Promise { + return { + name: PYTHON, + frameworks: await getPythonFrameworks(files) + }; +} + +async function getPythonFrameworks(files: string[]): Promise { + const frameworks: string[] = []; + + const manage = files.filter(file => path.basename(file).toLowerCase() === 'manage.py')[0]; + const urls = files.filter(file => path.basename(file).toLowerCase() === 'urls.py')[0]; + const wsgi = files.filter(file => path.basename(file).toLowerCase() === 'wsgi.py')[0]; + const asgi = files.filter(file => path.basename(file).toLowerCase() === 'asgi.py')[0]; + + if (manage || urls || wsgi || asgi) { + frameworks.push(DJANGO); + } + + return frameworks; +} \ No newline at end of file diff --git a/js/src/recognizer.ts b/js/src/recognizer.ts new file mode 100644 index 00000000..946372f3 --- /dev/null +++ b/js/src/recognizer.ts @@ -0,0 +1,87 @@ +/*----------------------------------------------------------------------------------------------- + * Copyright (c) Red Hat, Inc. All rights reserved. + * Licensed under the MIT License. See LICENSE file in the project root for license information. + *-----------------------------------------------------------------------------------------------*/ + +import * as jsyaml from 'js-yaml'; +import {promises as fs} from 'fs'; +import * as path from 'path'; +import * as glob from 'glob'; +import { Language } from './types'; +import { JAVA, PYTHON } from './constants'; +import { getJava } from './javaRecognizer'; +import { getPython } from './pythonRecognizer'; + +export async function detectLanguages(root: string): Promise { + if (!root) { + return Promise.reject(new Error('The project root is not valid')); + } + const fileWithLanguages = await fs.readFile(path.join(__dirname, '..', 'resources', 'languages.yaml'), 'utf-8'); + const allLanguages = jsyaml.safeLoad(fileWithLanguages); + + const files = await getFiles(root); + + const extensionOccurrences = files.reduce((acc, curr) => { + curr = `.${curr.split('.').pop()}`; + if (!acc[curr]) { + acc[curr] = 1; + } else { + acc[curr] += 1; + } + return acc; + }, {}); + + const languagesFiltered = {}; + + for (const [language, attributes] of Object.entries(allLanguages)) { + if (attributes.hasOwnProperty('type') && + attributes.hasOwnProperty('extensions') && + (attributes as any).type === 'programming') { + let languageOccurrence = (attributes as any).extensions. + filter(element => Object.keys(extensionOccurrences).indexOf(element) !== -1). + map(item => extensionOccurrences[item])[0]; + if (languageOccurrence) { + if (languagesFiltered.hasOwnProperty(language)) { + languageOccurrence += languagesFiltered[language]; + } + languagesFiltered[language] = languageOccurrence; + } + } + } + + const languagesDetected: Language[] = []; + for(const language of Object.entries(languagesFiltered).sort(([_k1, v1], [_k2, v2]) => (v2 as number)-(v1 as number))) { + languagesDetected.push(await getDetailedLanguage(language[0], files)); + } + console.log(languagesDetected) + return languagesDetected; + +} + +async function getDetailedLanguage(language: string, files: string[]): Promise { + language = language.toLowerCase(); + switch (language) { + case JAVA: { + return await getJava(files); + } + case PYTHON: { + return await getPython(files); + } + default: { + return { + name: language + }; + } + } +} + +async function getFiles(root: string): Promise { + return new Promise((resolve, reject) => { + glob(`${root}/**/*.*`, `!${root}/**`, (err: any, files: string[] | PromiseLike) => { + if (err) { + reject(`Unable to retrieve files from current project ${root}. ${err}`); + } + return resolve(files); + }) + }); +} \ No newline at end of file diff --git a/js/src/types.ts b/js/src/types.ts new file mode 100644 index 00000000..3af577e6 --- /dev/null +++ b/js/src/types.ts @@ -0,0 +1,9 @@ +/*----------------------------------------------------------------------------------------------- + * Copyright (c) Red Hat, Inc. All rights reserved. + * Licensed under the MIT License. See LICENSE file in the project root for license information. + *-----------------------------------------------------------------------------------------------*/ +export interface Language { + name: string; + builder?: string; + frameworks?: string[]; +} \ No newline at end of file diff --git a/js/src/utils.ts b/js/src/utils.ts new file mode 100644 index 00000000..b727c384 --- /dev/null +++ b/js/src/utils.ts @@ -0,0 +1,10 @@ +/*----------------------------------------------------------------------------------------------- + * Copyright (c) Red Hat, Inc. All rights reserved. + * Licensed under the MIT License. See LICENSE file in the project root for license information. + *-----------------------------------------------------------------------------------------------*/ +import {promises as fs} from 'fs'; + +export async function isTagInFile(file: string, tag: string): Promise { + const content = await fs.readFile(file) + return content.includes(tag); +} \ No newline at end of file diff --git a/js/test/recognizer.test.ts b/js/test/recognizer.test.ts new file mode 100644 index 00000000..f4cf9393 --- /dev/null +++ b/js/test/recognizer.test.ts @@ -0,0 +1,33 @@ +import path = require('path'); +import { assert } from 'sinon'; +import { JAVA, PYTHON } from '../src/constants'; +import * as recognizer from '../src/recognizer'; + +describe('Recognizer', () => { + + it('TestMyself', async () => { + const languages = await recognizer.detectLanguages('.'); + assert.match(languages.some(l => l.name === 'javascript'), true); + }); + + it('TestQuarkus', async () => { + const languages = await recognizer.detectLanguages(path.join(__dirname, '..', '..', '..', 'resources/projects/quarkus')); + assert.match(languages.some(l => l.name === JAVA), true); + }); + + it('TestMicronaut', async () => { + const languages = await recognizer.detectLanguages(path.join(__dirname, '..', '..', '..', 'resources/projects/micronaut')); + assert.match(languages.some(l => l.name === JAVA), true); + }); + + it('TestNode', async () => { + const languages = await recognizer.detectLanguages(path.join(__dirname, '..', '..', '..', 'resources/projects/nodejs-ex')); + assert.match(languages.some(l => l.name === 'javascript'), true); + }); + + it('TestDjango', async () => { + const languages = await recognizer.detectLanguages(path.join(__dirname, '..', '..', '..', 'resources/projects/django')); + assert.match(languages.some(l => l.name === PYTHON), true); + }); + +}); diff --git a/js/tsconfig.json b/js/tsconfig.json new file mode 100644 index 00000000..e01f30a2 --- /dev/null +++ b/js/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "commonjs", + "declaration": true, + "lib": [ + "ES2017" + ], + "outDir": "lib", + "rootDir": ".", + "strictPropertyInitialization": false, + "sourceMap": true, + "noUnusedLocals": true + }, + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/java/alizer-api/src/test/resources/projects/django/.gitignore b/resources/projects/django/.gitignore similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/.gitignore rename to resources/projects/django/.gitignore diff --git a/java/alizer-api/src/test/resources/projects/django/README.md b/resources/projects/django/README.md similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/README.md rename to resources/projects/django/README.md diff --git a/java/alizer-api/src/test/resources/projects/django/conf/reload.py b/resources/projects/django/conf/reload.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/conf/reload.py rename to resources/projects/django/conf/reload.py diff --git a/java/alizer-api/src/test/resources/projects/django/manage.py b/resources/projects/django/manage.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/manage.py rename to resources/projects/django/manage.py diff --git a/java/alizer-api/src/test/resources/projects/django/openshift/scripts/run-in-container.sh b/resources/projects/django/openshift/scripts/run-in-container.sh similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/openshift/scripts/run-in-container.sh rename to resources/projects/django/openshift/scripts/run-in-container.sh diff --git a/java/alizer-api/src/test/resources/projects/django/openshift/templates/django-postgresql-persistent.json b/resources/projects/django/openshift/templates/django-postgresql-persistent.json similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/openshift/templates/django-postgresql-persistent.json rename to resources/projects/django/openshift/templates/django-postgresql-persistent.json diff --git a/java/alizer-api/src/test/resources/projects/django/openshift/templates/django-postgresql.json b/resources/projects/django/openshift/templates/django-postgresql.json similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/openshift/templates/django-postgresql.json rename to resources/projects/django/openshift/templates/django-postgresql.json diff --git a/java/alizer-api/src/test/resources/projects/django/openshift/templates/django.json b/resources/projects/django/openshift/templates/django.json similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/openshift/templates/django.json rename to resources/projects/django/openshift/templates/django.json diff --git a/java/alizer-api/src/test/resources/projects/django/project/__init__.py b/resources/projects/django/project/__init__.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/project/__init__.py rename to resources/projects/django/project/__init__.py diff --git a/java/alizer-api/src/test/resources/projects/django/project/database.py b/resources/projects/django/project/database.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/project/database.py rename to resources/projects/django/project/database.py diff --git a/java/alizer-api/src/test/resources/projects/django/project/settings.py b/resources/projects/django/project/settings.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/project/settings.py rename to resources/projects/django/project/settings.py diff --git a/java/alizer-api/src/test/resources/projects/django/project/urls.py b/resources/projects/django/project/urls.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/project/urls.py rename to resources/projects/django/project/urls.py diff --git a/java/alizer-api/src/test/resources/projects/django/requirements.txt b/resources/projects/django/requirements.txt similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/requirements.txt rename to resources/projects/django/requirements.txt diff --git a/java/alizer-api/src/test/resources/projects/django/welcome/__init__.py b/resources/projects/django/welcome/__init__.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/welcome/__init__.py rename to resources/projects/django/welcome/__init__.py diff --git a/java/alizer-api/src/test/resources/projects/django/welcome/admin.py b/resources/projects/django/welcome/admin.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/welcome/admin.py rename to resources/projects/django/welcome/admin.py diff --git a/java/alizer-api/src/test/resources/projects/django/welcome/database.py b/resources/projects/django/welcome/database.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/welcome/database.py rename to resources/projects/django/welcome/database.py diff --git a/java/alizer-api/src/test/resources/projects/django/welcome/migrations/0001_initial.py b/resources/projects/django/welcome/migrations/0001_initial.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/welcome/migrations/0001_initial.py rename to resources/projects/django/welcome/migrations/0001_initial.py diff --git a/java/alizer-api/src/test/resources/projects/django/welcome/migrations/__init__.py b/resources/projects/django/welcome/migrations/__init__.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/welcome/migrations/__init__.py rename to resources/projects/django/welcome/migrations/__init__.py diff --git a/java/alizer-api/src/test/resources/projects/django/welcome/models.py b/resources/projects/django/welcome/models.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/welcome/models.py rename to resources/projects/django/welcome/models.py diff --git a/java/alizer-api/src/test/resources/projects/django/welcome/templates/welcome/index.html b/resources/projects/django/welcome/templates/welcome/index.html similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/welcome/templates/welcome/index.html rename to resources/projects/django/welcome/templates/welcome/index.html diff --git a/java/alizer-api/src/test/resources/projects/django/welcome/tests.py b/resources/projects/django/welcome/tests.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/welcome/tests.py rename to resources/projects/django/welcome/tests.py diff --git a/java/alizer-api/src/test/resources/projects/django/welcome/views.py b/resources/projects/django/welcome/views.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/welcome/views.py rename to resources/projects/django/welcome/views.py diff --git a/java/alizer-api/src/test/resources/projects/django/wsgi.py b/resources/projects/django/wsgi.py similarity index 100% rename from java/alizer-api/src/test/resources/projects/django/wsgi.py rename to resources/projects/django/wsgi.py diff --git a/java/alizer-api/src/test/resources/projects/micronaut/.gitignore b/resources/projects/micronaut/.gitignore similarity index 100% rename from java/alizer-api/src/test/resources/projects/micronaut/.gitignore rename to resources/projects/micronaut/.gitignore diff --git a/java/alizer-api/src/test/resources/projects/micronaut/.mvn/wrapper/MavenWrapperDownloader.java b/resources/projects/micronaut/.mvn/wrapper/MavenWrapperDownloader.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/micronaut/.mvn/wrapper/MavenWrapperDownloader.java rename to resources/projects/micronaut/.mvn/wrapper/MavenWrapperDownloader.java diff --git a/java/alizer-api/src/test/resources/projects/micronaut/.mvn/wrapper/maven-wrapper.jar b/resources/projects/micronaut/.mvn/wrapper/maven-wrapper.jar similarity index 100% rename from java/alizer-api/src/test/resources/projects/micronaut/.mvn/wrapper/maven-wrapper.jar rename to resources/projects/micronaut/.mvn/wrapper/maven-wrapper.jar diff --git a/java/alizer-api/src/test/resources/projects/micronaut/.mvn/wrapper/maven-wrapper.properties b/resources/projects/micronaut/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from java/alizer-api/src/test/resources/projects/micronaut/.mvn/wrapper/maven-wrapper.properties rename to resources/projects/micronaut/.mvn/wrapper/maven-wrapper.properties diff --git a/java/alizer-api/src/test/resources/projects/micronaut/Dockerfile b/resources/projects/micronaut/Dockerfile similarity index 100% rename from java/alizer-api/src/test/resources/projects/micronaut/Dockerfile rename to resources/projects/micronaut/Dockerfile diff --git a/java/alizer-api/src/test/resources/projects/micronaut/README.md b/resources/projects/micronaut/README.md similarity index 100% rename from java/alizer-api/src/test/resources/projects/micronaut/README.md rename to resources/projects/micronaut/README.md diff --git a/java/alizer-api/src/test/resources/projects/micronaut/micronaut-cli.yml b/resources/projects/micronaut/micronaut-cli.yml similarity index 100% rename from java/alizer-api/src/test/resources/projects/micronaut/micronaut-cli.yml rename to resources/projects/micronaut/micronaut-cli.yml diff --git a/java/alizer-api/src/test/resources/projects/micronaut/mvnw b/resources/projects/micronaut/mvnw similarity index 100% rename from java/alizer-api/src/test/resources/projects/micronaut/mvnw rename to resources/projects/micronaut/mvnw diff --git a/java/alizer-api/src/test/resources/projects/micronaut/mvnw.bat b/resources/projects/micronaut/mvnw.bat similarity index 100% rename from java/alizer-api/src/test/resources/projects/micronaut/mvnw.bat rename to resources/projects/micronaut/mvnw.bat diff --git a/java/alizer-api/src/test/resources/projects/micronaut/pom.xml b/resources/projects/micronaut/pom.xml similarity index 100% rename from java/alizer-api/src/test/resources/projects/micronaut/pom.xml rename to resources/projects/micronaut/pom.xml diff --git a/java/alizer-api/src/test/resources/projects/micronaut/src/main/java/org/example/Application.java b/resources/projects/micronaut/src/main/java/org/example/Application.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/micronaut/src/main/java/org/example/Application.java rename to resources/projects/micronaut/src/main/java/org/example/Application.java diff --git a/java/alizer-api/src/test/resources/projects/micronaut/src/main/resources/application.yml b/resources/projects/micronaut/src/main/resources/application.yml similarity index 100% rename from java/alizer-api/src/test/resources/projects/micronaut/src/main/resources/application.yml rename to resources/projects/micronaut/src/main/resources/application.yml diff --git a/java/alizer-api/src/test/resources/projects/micronaut/src/main/resources/logback.xml b/resources/projects/micronaut/src/main/resources/logback.xml similarity index 100% rename from java/alizer-api/src/test/resources/projects/micronaut/src/main/resources/logback.xml rename to resources/projects/micronaut/src/main/resources/logback.xml diff --git a/java/alizer-api/src/test/resources/projects/micronaut/src/test/java/org/example/UntitledTest.java b/resources/projects/micronaut/src/test/java/org/example/UntitledTest.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/micronaut/src/test/java/org/example/UntitledTest.java rename to resources/projects/micronaut/src/test/java/org/example/UntitledTest.java diff --git a/java/alizer-api/src/test/resources/projects/nodejs-ex/.gitignore b/resources/projects/nodejs-ex/.gitignore similarity index 100% rename from java/alizer-api/src/test/resources/projects/nodejs-ex/.gitignore rename to resources/projects/nodejs-ex/.gitignore diff --git a/java/alizer-api/src/test/resources/projects/nodejs-ex/LICENSE b/resources/projects/nodejs-ex/LICENSE similarity index 100% rename from java/alizer-api/src/test/resources/projects/nodejs-ex/LICENSE rename to resources/projects/nodejs-ex/LICENSE diff --git a/java/alizer-api/src/test/resources/projects/nodejs-ex/README.md b/resources/projects/nodejs-ex/README.md similarity index 100% rename from java/alizer-api/src/test/resources/projects/nodejs-ex/README.md rename to resources/projects/nodejs-ex/README.md diff --git a/java/alizer-api/src/test/resources/projects/nodejs-ex/package-lock.json b/resources/projects/nodejs-ex/package-lock.json similarity index 100% rename from java/alizer-api/src/test/resources/projects/nodejs-ex/package-lock.json rename to resources/projects/nodejs-ex/package-lock.json diff --git a/java/alizer-api/src/test/resources/projects/nodejs-ex/package.json b/resources/projects/nodejs-ex/package.json similarity index 100% rename from java/alizer-api/src/test/resources/projects/nodejs-ex/package.json rename to resources/projects/nodejs-ex/package.json diff --git a/java/alizer-api/src/test/resources/projects/nodejs-ex/server.js b/resources/projects/nodejs-ex/server.js similarity index 100% rename from java/alizer-api/src/test/resources/projects/nodejs-ex/server.js rename to resources/projects/nodejs-ex/server.js diff --git a/java/alizer-api/src/test/resources/projects/nodejs-ex/test/test.js b/resources/projects/nodejs-ex/test/test.js similarity index 100% rename from java/alizer-api/src/test/resources/projects/nodejs-ex/test/test.js rename to resources/projects/nodejs-ex/test/test.js diff --git a/java/alizer-api/src/test/resources/projects/quarkus/.dockerignore b/resources/projects/quarkus/.dockerignore similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/.dockerignore rename to resources/projects/quarkus/.dockerignore diff --git a/java/alizer-api/src/test/resources/projects/quarkus/.gitignore b/resources/projects/quarkus/.gitignore similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/.gitignore rename to resources/projects/quarkus/.gitignore diff --git a/java/alizer-api/src/test/resources/projects/quarkus/.mvn/wrapper/MavenWrapperDownloader.java b/resources/projects/quarkus/.mvn/wrapper/MavenWrapperDownloader.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/.mvn/wrapper/MavenWrapperDownloader.java rename to resources/projects/quarkus/.mvn/wrapper/MavenWrapperDownloader.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/.mvn/wrapper/maven-wrapper.jar b/resources/projects/quarkus/.mvn/wrapper/maven-wrapper.jar similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/.mvn/wrapper/maven-wrapper.jar rename to resources/projects/quarkus/.mvn/wrapper/maven-wrapper.jar diff --git a/java/alizer-api/src/test/resources/projects/quarkus/.mvn/wrapper/maven-wrapper.properties b/resources/projects/quarkus/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/.mvn/wrapper/maven-wrapper.properties rename to resources/projects/quarkus/.mvn/wrapper/maven-wrapper.properties diff --git a/java/alizer-api/src/test/resources/projects/quarkus/README.md b/resources/projects/quarkus/README.md similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/README.md rename to resources/projects/quarkus/README.md diff --git a/java/alizer-api/src/test/resources/projects/quarkus/mvnw b/resources/projects/quarkus/mvnw similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/mvnw rename to resources/projects/quarkus/mvnw diff --git a/java/alizer-api/src/test/resources/projects/quarkus/mvnw.cmd b/resources/projects/quarkus/mvnw.cmd similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/mvnw.cmd rename to resources/projects/quarkus/mvnw.cmd diff --git a/java/alizer-api/src/test/resources/projects/quarkus/pom.xml b/resources/projects/quarkus/pom.xml similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/pom.xml rename to resources/projects/quarkus/pom.xml diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/docker/Dockerfile.jvm b/resources/projects/quarkus/src/main/docker/Dockerfile.jvm similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/docker/Dockerfile.jvm rename to resources/projects/quarkus/src/main/docker/Dockerfile.jvm diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/docker/Dockerfile.native b/resources/projects/quarkus/src/main/docker/Dockerfile.native similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/docker/Dockerfile.native rename to resources/projects/quarkus/src/main/docker/Dockerfile.native diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class1.java b/resources/projects/quarkus/src/main/java/org/acme/Class1.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class1.java rename to resources/projects/quarkus/src/main/java/org/acme/Class1.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class10.java b/resources/projects/quarkus/src/main/java/org/acme/Class10.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class10.java rename to resources/projects/quarkus/src/main/java/org/acme/Class10.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class11.java b/resources/projects/quarkus/src/main/java/org/acme/Class11.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class11.java rename to resources/projects/quarkus/src/main/java/org/acme/Class11.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class12.java b/resources/projects/quarkus/src/main/java/org/acme/Class12.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class12.java rename to resources/projects/quarkus/src/main/java/org/acme/Class12.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class13.java b/resources/projects/quarkus/src/main/java/org/acme/Class13.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class13.java rename to resources/projects/quarkus/src/main/java/org/acme/Class13.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class14.java b/resources/projects/quarkus/src/main/java/org/acme/Class14.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class14.java rename to resources/projects/quarkus/src/main/java/org/acme/Class14.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class15.java b/resources/projects/quarkus/src/main/java/org/acme/Class15.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class15.java rename to resources/projects/quarkus/src/main/java/org/acme/Class15.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class16.java b/resources/projects/quarkus/src/main/java/org/acme/Class16.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class16.java rename to resources/projects/quarkus/src/main/java/org/acme/Class16.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class17.java b/resources/projects/quarkus/src/main/java/org/acme/Class17.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class17.java rename to resources/projects/quarkus/src/main/java/org/acme/Class17.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class18.java b/resources/projects/quarkus/src/main/java/org/acme/Class18.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class18.java rename to resources/projects/quarkus/src/main/java/org/acme/Class18.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class19.java b/resources/projects/quarkus/src/main/java/org/acme/Class19.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class19.java rename to resources/projects/quarkus/src/main/java/org/acme/Class19.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class2.java b/resources/projects/quarkus/src/main/java/org/acme/Class2.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class2.java rename to resources/projects/quarkus/src/main/java/org/acme/Class2.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class20.java b/resources/projects/quarkus/src/main/java/org/acme/Class20.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class20.java rename to resources/projects/quarkus/src/main/java/org/acme/Class20.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class3.java b/resources/projects/quarkus/src/main/java/org/acme/Class3.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class3.java rename to resources/projects/quarkus/src/main/java/org/acme/Class3.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class4.java b/resources/projects/quarkus/src/main/java/org/acme/Class4.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class4.java rename to resources/projects/quarkus/src/main/java/org/acme/Class4.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class5.java b/resources/projects/quarkus/src/main/java/org/acme/Class5.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class5.java rename to resources/projects/quarkus/src/main/java/org/acme/Class5.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class6.java b/resources/projects/quarkus/src/main/java/org/acme/Class6.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class6.java rename to resources/projects/quarkus/src/main/java/org/acme/Class6.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class7.java b/resources/projects/quarkus/src/main/java/org/acme/Class7.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class7.java rename to resources/projects/quarkus/src/main/java/org/acme/Class7.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class8.java b/resources/projects/quarkus/src/main/java/org/acme/Class8.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class8.java rename to resources/projects/quarkus/src/main/java/org/acme/Class8.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class9.java b/resources/projects/quarkus/src/main/java/org/acme/Class9.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/Class9.java rename to resources/projects/quarkus/src/main/java/org/acme/Class9.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/ExampleResource.java b/resources/projects/quarkus/src/main/java/org/acme/ExampleResource.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/java/org/acme/ExampleResource.java rename to resources/projects/quarkus/src/main/java/org/acme/ExampleResource.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/resources/META-INF/resources/index.html b/resources/projects/quarkus/src/main/resources/META-INF/resources/index.html similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/resources/META-INF/resources/index.html rename to resources/projects/quarkus/src/main/resources/META-INF/resources/index.html diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/main/resources/application.properties b/resources/projects/quarkus/src/main/resources/application.properties similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/main/resources/application.properties rename to resources/projects/quarkus/src/main/resources/application.properties diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/test/java/org/acme/ExampleResourceTest.java b/resources/projects/quarkus/src/test/java/org/acme/ExampleResourceTest.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/test/java/org/acme/ExampleResourceTest.java rename to resources/projects/quarkus/src/test/java/org/acme/ExampleResourceTest.java diff --git a/java/alizer-api/src/test/resources/projects/quarkus/src/test/java/org/acme/NativeExampleResourceIT.java b/resources/projects/quarkus/src/test/java/org/acme/NativeExampleResourceIT.java similarity index 100% rename from java/alizer-api/src/test/resources/projects/quarkus/src/test/java/org/acme/NativeExampleResourceIT.java rename to resources/projects/quarkus/src/test/java/org/acme/NativeExampleResourceIT.java