diff --git a/src/payload/helpers.ts b/src/payload/helpers.ts index 08d2f50c..d9186185 100644 --- a/src/payload/helpers.ts +++ b/src/payload/helpers.ts @@ -3,6 +3,8 @@ import type { AllowedKeys } from '../types/techs.js'; import { Payload } from './index.js'; +const notAComponent = ['ci', 'language', 'tool', 'framework']; + /** * When receive a tech in a component, we can deduct a new Component that was missing * For example we receive: @@ -18,7 +20,7 @@ export function findImplicitComponent( reason: string[] ) { const ref = listIndexed[tech]; - if (ref.type === 'ci' || ref.type === 'language' || ref.type === 'tool') { + if (notAComponent.includes(ref.type)) { return; } diff --git a/src/rules/tool/apache_thrift.ts b/src/rules/framework/apache_thrift.ts similarity index 100% rename from src/rules/tool/apache_thrift.ts rename to src/rules/framework/apache_thrift.ts diff --git a/src/rules/framework/index.ts b/src/rules/framework/index.ts new file mode 100644 index 00000000..e18f56a7 --- /dev/null +++ b/src/rules/framework/index.ts @@ -0,0 +1 @@ +import './apache_thrift.js'; diff --git a/src/rules/index.ts b/src/rules/index.ts index e5773453..4e6af22c 100644 --- a/src/rules/index.ts +++ b/src/rules/index.ts @@ -5,6 +5,7 @@ import './ci/index.js'; import './cloud/index.js'; import './db/index.js'; import './etl/index.js'; +import './framework/index.js'; import './hosting/index.js'; import './js/index.js'; import './language/index.js'; diff --git a/src/rules/js/emberjs.ts b/src/rules/js/emberjs.ts index 0c6e7684..8e548d31 100644 --- a/src/rules/js/emberjs.ts +++ b/src/rules/js/emberjs.ts @@ -3,7 +3,7 @@ import { register } from '../../register.js'; register({ tech: 'emberjs', name: 'Ember', - type: 'tool', + type: 'framework', dependencies: [ { type: 'npm', name: 'ember-cli' }, { type: 'npm', name: 'ember' }, diff --git a/src/rules/js/meteorjs.ts b/src/rules/js/meteorjs.ts index 42848102..e7cac431 100644 --- a/src/rules/js/meteorjs.ts +++ b/src/rules/js/meteorjs.ts @@ -3,7 +3,7 @@ import { register } from '../../register.js'; register({ tech: 'meteorjs', name: 'Meteor', - type: 'tool', + type: 'framework', files: ['.meteor'], dependencies: [ { type: 'npm', name: 'meteor' }, diff --git a/src/rules/js/nextjs.ts b/src/rules/js/nextjs.ts index 9c6dda88..418d5bd7 100644 --- a/src/rules/js/nextjs.ts +++ b/src/rules/js/nextjs.ts @@ -3,7 +3,7 @@ import { register } from '../../register.js'; register({ tech: 'nextjs', name: 'Next.js', - type: 'tool', + type: 'framework', files: ['next.config.js'], dependencies: [{ type: 'npm', name: 'next' }], }); diff --git a/src/rules/js/nuxtjs.ts b/src/rules/js/nuxtjs.ts index 25eb6c16..9564bb7f 100644 --- a/src/rules/js/nuxtjs.ts +++ b/src/rules/js/nuxtjs.ts @@ -3,7 +3,7 @@ import { register } from '../../register.js'; register({ tech: 'nuxtjs', name: 'Nuxt.js', - type: 'tool', + type: 'framework', files: ['nuxt.config.js'], dependencies: [{ type: 'npm', name: 'nuxt' }], }); diff --git a/src/rules/js/redwoodjs.ts b/src/rules/js/redwoodjs.ts index 55feccb2..774b6568 100644 --- a/src/rules/js/redwoodjs.ts +++ b/src/rules/js/redwoodjs.ts @@ -3,7 +3,7 @@ import { register } from '../../register.js'; register({ tech: 'redwoodjs', name: 'RedwoodJs', - type: 'tool', + type: 'framework', files: ['redwood.toml'], dependencies: [ { type: 'npm', name: '@vercel/redwood' }, diff --git a/src/rules/js/strapi.ts b/src/rules/js/strapi.ts index fa8eb49a..ea23afb3 100644 --- a/src/rules/js/strapi.ts +++ b/src/rules/js/strapi.ts @@ -3,7 +3,7 @@ import { register } from '../../register.js'; register({ tech: 'strapi', name: 'Strapi', - type: 'tool', + type: 'framework', dependencies: [ { type: 'npm', name: 'strapi' }, { type: 'npm', name: '@strapi/strapi' }, diff --git a/src/rules/php/joomla.ts b/src/rules/php/joomla.ts index 6640a87f..ee3692cb 100644 --- a/src/rules/php/joomla.ts +++ b/src/rules/php/joomla.ts @@ -3,7 +3,7 @@ import { register } from '../../register.js'; register({ tech: 'joomla', name: 'Joomla!', - type: 'tool', + type: 'framework', dependencies: [ { type: 'php', name: 'joomla/application' }, { type: 'docker', name: 'joomla' }, diff --git a/src/rules/php/laravel.ts b/src/rules/php/laravel.ts index 73804ccc..1df8bbd1 100644 --- a/src/rules/php/laravel.ts +++ b/src/rules/php/laravel.ts @@ -3,7 +3,7 @@ import { register } from '../../register.js'; register({ tech: 'laravel', name: 'Laravel', - type: 'tool', + type: 'framework', files: ['artisan'], dependencies: [{ type: 'php', name: 'laravel/framework' }], }); diff --git a/src/rules/php/magento.ts b/src/rules/php/magento.ts index c25d2d7d..f3198f5b 100644 --- a/src/rules/php/magento.ts +++ b/src/rules/php/magento.ts @@ -3,7 +3,7 @@ import { register } from '../../register.js'; register({ tech: 'magento', name: 'Magento', - type: 'tool', + type: 'framework', dependencies: [ { type: 'php', name: 'magento/composer' }, { type: 'php', name: 'fastly/magento2' }, diff --git a/src/rules/php/prestashop.ts b/src/rules/php/prestashop.ts index c75c17c5..ffb2476b 100644 --- a/src/rules/php/prestashop.ts +++ b/src/rules/php/prestashop.ts @@ -3,7 +3,7 @@ import { register } from '../../register.js'; register({ tech: 'prestashop', name: 'Prestashop', - type: 'tool', + type: 'framework', dependencies: [ { type: 'php', name: 'prestashop/ps_facetedsearch' }, { type: 'php', name: 'prestashop/ps_shoppingcart' }, diff --git a/src/rules/php/symfony.ts b/src/rules/php/symfony.ts index ff755b41..90f5887c 100644 --- a/src/rules/php/symfony.ts +++ b/src/rules/php/symfony.ts @@ -3,6 +3,6 @@ import { register } from '../../register.js'; register({ tech: 'symfony', name: 'Symfony', - type: 'tool', + type: 'framework', dependencies: [{ type: 'php', name: 'symfony/symfony' }], }); diff --git a/src/rules/php/woocommerce.ts b/src/rules/php/woocommerce.ts index ae962507..e158d889 100644 --- a/src/rules/php/woocommerce.ts +++ b/src/rules/php/woocommerce.ts @@ -3,6 +3,6 @@ import { register } from '../../register.js'; register({ tech: 'woocommerce', name: 'WooCommerce', - type: 'tool', + type: 'framework', dependencies: [{ type: 'php', name: 'automattic/woocommerce' }], }); diff --git a/src/rules/php/wordpress.ts b/src/rules/php/wordpress.ts index 34ff4e04..0a060d9b 100644 --- a/src/rules/php/wordpress.ts +++ b/src/rules/php/wordpress.ts @@ -3,7 +3,7 @@ import { register } from '../../register.js'; register({ tech: 'wordpress', name: 'Wordpress', - type: 'tool', + type: 'framework', dependencies: [ { type: 'php', name: 'wp-cli/wp-cli' }, { type: 'php', name: 'roots/wordpress' }, diff --git a/src/rules/php/yii2.ts b/src/rules/php/yii2.ts index 21055e53..14838dfa 100644 --- a/src/rules/php/yii2.ts +++ b/src/rules/php/yii2.ts @@ -3,6 +3,6 @@ import { register } from '../../register.js'; register({ tech: 'yii2', name: 'Yii2', - type: 'tool', + type: 'framework', dependencies: [{ type: 'php', name: 'yiisoft/yii2' }], }); diff --git a/src/rules/tool/index.ts b/src/rules/tool/index.ts index 2bf03dc3..fe7205fc 100644 --- a/src/rules/tool/index.ts +++ b/src/rules/tool/index.ts @@ -1,5 +1,4 @@ import './ansible.js'; -import './apache_thrift.js'; import './apiplatform.js'; import './atlasgo.js'; import './checkov.js'; diff --git a/src/types/techs.ts b/src/types/techs.ts index 4e25d3c1..6ca63c63 100644 --- a/src/types/techs.ts +++ b/src/types/techs.ts @@ -6,6 +6,7 @@ export type TechType = | 'cloud' | 'db' | 'etl' + | 'framework' | 'hosting' | 'language' | 'messaging'