From 3f6ed81303b5973e5881141638a17bf7e0b80dac Mon Sep 17 00:00:00 2001 From: Dhairya Majmudar <124715224+DhairyaMajmudar@users.noreply.github.com> Date: Sat, 28 Sep 2024 10:26:34 +0530 Subject: [PATCH 1/3] fix: modifying docker script for generating template (#3213) Co-authored-by: Akshat Nema <76521428+akshatnema@users.noreply.github.com>%0ACo-authored-by: asyncapi-bot --- components/GeneratorInstallation.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/GeneratorInstallation.tsx b/components/GeneratorInstallation.tsx index d280a2199e4..713e819198e 100644 --- a/components/GeneratorInstallation.tsx +++ b/components/GeneratorInstallation.tsx @@ -62,7 +62,7 @@ asyncapi generate fromTemplate ${specPath} ${template} ${params}`; * @returns {string} The Docker command. */ function getDockerCode(): string { - return `docker run --rm -it -v \${PWD}/example:/app/example -v \${PWD}/output:/app/output \\ + return `docker run --rm -it --user=root -v \${PWD}/example:/app/example -v \${PWD}/output:/app/output \\ asyncapi/cli generate fromTemplate ${specPath} ${template} ${params}`; } From a502c8eaf56fc9bc95f3d48666d55c4517cc464e Mon Sep 17 00:00:00 2001 From: Zeel Rajodiya Date: Sun, 29 Sep 2024 17:36:22 +0530 Subject: [PATCH 2/3] refactor: update financial data for current year (#2687) Co-authored-by: Akshat Nema <76521428+akshatnema@users.noreply.github.com> --- .../FinancialSummary/BarChartComponent.tsx | 4 +-- components/FinancialSummary/Card.tsx | 2 +- components/FinancialSummary/ExpensesCard.tsx | 2 +- scripts/finance/index.js | 14 ++++------ scripts/index.js | 27 ++++++++++++++++--- tests/finance/index.test.js | 4 +-- utils/getUniqueCategories.ts | 2 +- 7 files changed, 36 insertions(+), 19 deletions(-) diff --git a/components/FinancialSummary/BarChartComponent.tsx b/components/FinancialSummary/BarChartComponent.tsx index 55bf51c5b04..019927672cb 100644 --- a/components/FinancialSummary/BarChartComponent.tsx +++ b/components/FinancialSummary/BarChartComponent.tsx @@ -3,8 +3,8 @@ import { Bar, BarChart, CartesianGrid, Legend, Tooltip, YAxis } from 'recharts'; import type { ExpenseItem, ExpensesLinkItem } from '@/types/FinancialSummary/BarChartComponent'; -import ExpensesData from '../../config/finance/json-data/2024/Expenses.json'; -import ExpensesLinkData from '../../config/finance/json-data/2024/ExpensesLink.json'; +import ExpensesData from '../../config/finance/json-data/Expenses.json'; +import ExpensesLinkData from '../../config/finance/json-data/ExpensesLink.json'; import { getUniqueCategories } from '../../utils/getUniqueCategories'; import CustomTooltip from './CustomTooltip'; import ExpensesCard from './ExpensesCard'; diff --git a/components/FinancialSummary/Card.tsx b/components/FinancialSummary/Card.tsx index 2433fbd52cb..7e46e272733 100644 --- a/components/FinancialSummary/Card.tsx +++ b/components/FinancialSummary/Card.tsx @@ -1,6 +1,6 @@ import type { ExpenseItem, Expenses } from '@/types/FinancialSummary/BarChartComponent'; -import ExpensesLinkData from '../../config/finance/json-data/2024/ExpensesLink.json'; +import ExpensesLinkData from '../../config/finance/json-data/ExpensesLink.json'; /** * @description Card component displays expense details for a specific month. diff --git a/components/FinancialSummary/ExpensesCard.tsx b/components/FinancialSummary/ExpensesCard.tsx index fb747ce3a89..86af3e7b1b8 100644 --- a/components/FinancialSummary/ExpensesCard.tsx +++ b/components/FinancialSummary/ExpensesCard.tsx @@ -1,6 +1,6 @@ import type { Expenses } from '@/types/FinancialSummary/BarChartComponent'; -import ExpensesData from '../../config/finance/json-data/2024/Expenses.json'; +import ExpensesData from '../../config/finance/json-data/Expenses.json'; import Card from './Card'; /** diff --git a/scripts/finance/index.js b/scripts/finance/index.js index 2433d143bba..3f4a5edcfb6 100644 --- a/scripts/finance/index.js +++ b/scripts/finance/index.js @@ -1,20 +1,16 @@ -const { promises: { mkdir } } = require('fs'); +const { + promises: { mkdir } +} = require('fs'); const { resolve } = require('path'); const writeJSON = require('../utils/readAndWriteJson.js'); -module.exports = async function buildFinanceInfoList({ - currentDir, - configDir, - financeDir, - year, - jsonDataDir -}) { +module.exports = async function buildFinanceInfoList({ currentDir, configDir, financeDir, year, jsonDataDir }) { try { const expensesPath = resolve(currentDir, configDir, financeDir, year, 'Expenses.yml'); const expensesLinkPath = resolve(currentDir, configDir, financeDir, year, 'ExpensesLink.yml'); // Ensure the directory exists before writing the files - const jsonDirectory = resolve(currentDir, configDir, financeDir, jsonDataDir, year); + const jsonDirectory = resolve(currentDir, configDir, financeDir, jsonDataDir); await mkdir(jsonDirectory, { recursive: true }); // Write Expenses and ExpensesLink to JSON files diff --git a/scripts/index.js b/scripts/index.js index b3775080126..33125fe7533 100644 --- a/scripts/index.js +++ b/scripts/index.js @@ -1,9 +1,10 @@ +const { resolve } = require('path'); +const fs = require('fs'); const rssFeed = require('./build-rss'); const buildPostList = require('./build-post-list'); const buildCaseStudiesList = require('./casestudies'); -const buildAdoptersList = require('./adopters') +const buildAdoptersList = require('./adopters'); const buildFinanceInfoList = require('./finance'); -const { resolve } = require('path'); async function start() { await buildPostList(); @@ -18,11 +19,31 @@ async function start() { resolve(__dirname, '../config', 'case-studies.json') ); await buildAdoptersList(); + const financeDir = resolve('.', 'config', 'finance'); + + // loop through all the files finance in directory and find the latest year to build the finance info list + const yearsList = fs + .readdirSync(financeDir) + // filter out any files that are not numbers + .filter((file) => { + return !Number.isNaN(parseFloat(file)); + }) + // sort the years in descending order + .sort((a, b) => { + return parseFloat(b) - parseFloat(a); + }); + + if (yearsList.length === 0) { + throw new Error('No finance data found in the finance directory.'); + } + + const latestYear = yearsList[0]; + await buildFinanceInfoList({ currentDir: '.', configDir: 'config', financeDir: 'finance', - year: '2024', + year: latestYear, jsonDataDir: 'json-data' }); } diff --git a/tests/finance/index.test.js b/tests/finance/index.test.js index 93f34ee5c0c..eaea82e86c6 100644 --- a/tests/finance/index.test.js +++ b/tests/finance/index.test.js @@ -1,7 +1,7 @@ const fs = require('fs'); const path = require('path'); const buildFinanceInfoList = require('../../scripts/finance/index'); -const { expensesYaml, expensesLinkYaml, expensesjson, expensesLinkjson } = require("../fixtures/financeData") +const { expensesYaml, expensesLinkYaml, expensesjson, expensesLinkjson } = require('../fixtures/financeData'); describe('buildFinanceInfoList', () => { const testDir = path.resolve(__dirname, 'test-finance-info'); @@ -32,7 +32,7 @@ describe('buildFinanceInfoList', () => { jsonDataDir }); - const jsonDir = path.resolve(testDir, configDir, financeDir, jsonDataDir, year); + const jsonDir = path.resolve(testDir, configDir, financeDir, jsonDataDir); // Check if JSON directory was created expect(fs.existsSync(jsonDir)).toBe(true); diff --git a/utils/getUniqueCategories.ts b/utils/getUniqueCategories.ts index e2f64b32a69..d239ee12c47 100644 --- a/utils/getUniqueCategories.ts +++ b/utils/getUniqueCategories.ts @@ -1,4 +1,4 @@ -import Expenses from '../config/finance/json-data/2024/Expenses.json'; +import Expenses from '../config/finance/json-data/Expenses.json'; /** * Retrieves unique expense categories from the Expenses data. From ba25057b592608a029fde7a19a3e4bdf6d66e35a Mon Sep 17 00:00:00 2001 From: asyncapi-bot Date: Mon, 30 Sep 2024 02:38:30 +0200 Subject: [PATCH 3/3] chore: update tools.json (#3264) --- config/all-tags.json | 2 +- config/tools-automated.json | 78 ++++++++++++++++++------------------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/config/all-tags.json b/config/all-tags.json index 9f22bcd87c8..b8274f82abb 100644 --- a/config/all-tags.json +++ b/config/all-tags.json @@ -1 +1 @@ -{"languages":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"},{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},{"name":"HTML","color":"bg-[#E2A291]","borderColor":"border-[#E44D26]"},{"name":"C/C++","color":"bg-[#93CDEF]","borderColor":"border-[#0080CC]"},{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"},{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"},{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"},{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"},{"name":"Markdown","color":"bg-[#BABEBF]","borderColor":"border-[#445B64]"},{"name":"YAML","color":"bg-[#FFB764]","borderColor":"border-[#F1901F]"},{"name":"R","color":"bg-[#84B5ED]","borderColor":"border-[#246BBE]"},{"name":"Ruby","color":"bg-[#FF8289]","borderColor":"border-[#FF000F]"},{"name":"Rust","color":"bg-[#FFB8AA]","borderColor":"border-[#E43716]"},{"name":"Shell","color":"bg-[#87D4FF]","borderColor":"border-[#389ED7]"},{"name":"Groovy","color":"bg-[#B6D5E5]","borderColor":"border-[#609DBC]"}],"technologies":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Hermes","color":"bg-[#8AEEBD]","borderColor":"border-[#2AB672]"},{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"AWS","color":"bg-[#FF9F59]","borderColor":"border-[#EF6703]"},{"name":"Docker","color":"bg-[#B8E0FF]","borderColor":"border-[#2596ED]"},{"name":"Node-RED","color":"bg-[#FF7474]","borderColor":"border-[#8F0101]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Saas","color":"bg-[#6AB8EC]","borderColor":"border-[#2275AD]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Scala","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Azure","color":"bg-[#4B93FF]","borderColor":"border-[#015ADF]"},{"name":"Jenkins","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Nest Js","color":"bg-[#E1224E]","borderColor":"border-[#B9012b]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Kotlin","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Gradle","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Groovy","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Markdown","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Shell","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"WebComponents","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Babel","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Storybook","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JetBrains","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"IntelliJ IDEA","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Java","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"HTML","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}]} \ No newline at end of file +{"languages":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"},{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},{"name":"HTML","color":"bg-[#E2A291]","borderColor":"border-[#E44D26]"},{"name":"C/C++","color":"bg-[#93CDEF]","borderColor":"border-[#0080CC]"},{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"},{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"},{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"},{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"},{"name":"Markdown","color":"bg-[#BABEBF]","borderColor":"border-[#445B64]"},{"name":"YAML","color":"bg-[#FFB764]","borderColor":"border-[#F1901F]"},{"name":"R","color":"bg-[#84B5ED]","borderColor":"border-[#246BBE]"},{"name":"Ruby","color":"bg-[#FF8289]","borderColor":"border-[#FF000F]"},{"name":"Rust","color":"bg-[#FFB8AA]","borderColor":"border-[#E43716]"},{"name":"Shell","color":"bg-[#87D4FF]","borderColor":"border-[#389ED7]"},{"name":"Groovy","color":"bg-[#B6D5E5]","borderColor":"border-[#609DBC]"}],"technologies":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Hermes","color":"bg-[#8AEEBD]","borderColor":"border-[#2AB672]"},{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"AWS","color":"bg-[#FF9F59]","borderColor":"border-[#EF6703]"},{"name":"Docker","color":"bg-[#B8E0FF]","borderColor":"border-[#2596ED]"},{"name":"Node-RED","color":"bg-[#FF7474]","borderColor":"border-[#8F0101]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Saas","color":"bg-[#6AB8EC]","borderColor":"border-[#2275AD]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Scala","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Azure","color":"bg-[#4B93FF]","borderColor":"border-[#015ADF]"},{"name":"Jenkins","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Nest Js","color":"bg-[#E1224E]","borderColor":"border-[#B9012b]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Kotlin","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Gradle","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Groovy","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Markdown","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Shell","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"WebComponents","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Babel","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Storybook","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JetBrains","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"IntelliJ IDEA","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"HTML","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Java","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}]} \ No newline at end of file diff --git a/config/tools-automated.json b/config/tools-automated.json index 504b55f18f8..36660341489 100644 --- a/config/tools-automated.json +++ b/config/tools-automated.json @@ -290,48 +290,48 @@ "description": "Writing YAML by hand is no fun, and maybe you don't want a GUI, so use a Domain Specific Language to write AsyncAPI in your language of choice.", "toolsList": [ { - "title": "ZenWave SDK", - "description": "DDD and API-First for Event-Driven Microservices", + "title": "Zod Sockets", + "description": "Socket.IO solution with I/O validation and the ability to generate AsyncAPI specification and a contract for consumers.", "links": { - "websiteUrl": "https://zenwave360.github.io/", - "docsUrl": "https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/", - "repoUrl": "https://github.com/zenwave360/zenwave-sdk" + "websiteUrl": "https://www.npmjs.com/package/zod-sockets", + "repoUrl": "https://github.com/RobinTail/zod-sockets" }, "filters": { - "language": "Java", + "language": "TypeScript", "technology": [ - "Maven", - "CLI", - "Spring Cloud Streams", - "JHipster JDL" + "Node.js", + "TypeScript" ], "categories": [ - "code-generator", + "code-first", "dsl", - "mocking-and-testing", - "cli" + "framework" ], "hasCommercial": false, "isAsyncAPIOwner": false } }, { - "title": "Zod Sockets", - "description": "Socket.IO solution with I/O validation and the ability to generate AsyncAPI specification and a contract for consumers.", + "title": "ZenWave SDK", + "description": "DDD and API-First for Event-Driven Microservices", "links": { - "websiteUrl": "https://www.npmjs.com/package/zod-sockets", - "repoUrl": "https://github.com/RobinTail/zod-sockets" + "websiteUrl": "https://zenwave360.github.io/", + "docsUrl": "https://zenwave360.github.io/zenwave-sdk/plugins/asyncapi-spring-cloud-streams3/", + "repoUrl": "https://github.com/zenwave360/zenwave-sdk" }, "filters": { - "language": "TypeScript", + "language": "Java", "technology": [ - "Node.js", - "TypeScript" + "Maven", + "CLI", + "Spring Cloud Streams", + "JHipster JDL" ], "categories": [ - "code-first", + "code-generator", "dsl", - "framework" + "mocking-and-testing", + "cli" ], "hasCommercial": false, "isAsyncAPIOwner": false @@ -720,17 +720,18 @@ } }, { - "title": "Java Template", - "description": "Java template for the AsyncAPI Generator", + "title": "Java Spring Cloud Stream Template", + "description": "Java Spring Cloud Stream template for the AsyncAPI Generator", "links": { - "repoUrl": "https://github.com/asyncapi/java-template" + "repoUrl": "https://github.com/asyncapi/java-spring-cloud-stream-template" }, "filters": { "language": [ "javascript" ], "technology": [ - "Java" + "Spring Cloud Streams", + "Maven" ], "categories": [ "generator-template" @@ -740,18 +741,15 @@ } }, { - "title": "Java Spring Cloud Stream Template", - "description": "Java Spring Cloud Stream template for the AsyncAPI Generator", + "title": "HTML Template", + "description": "HTML template for AsyncAPI Generator. Use it to generate a static docs. It is using AsyncAPI React component under the hood.", "links": { - "repoUrl": "https://github.com/asyncapi/java-spring-cloud-stream-template" + "repoUrl": "https://github.com/asyncapi/html-template" }, "filters": { - "language": [ - "javascript" - ], + "language": "javascript", "technology": [ - "Spring Cloud Streams", - "Maven" + "HTML" ], "categories": [ "generator-template" @@ -779,15 +777,17 @@ } }, { - "title": "HTML Template", - "description": "HTML template for AsyncAPI Generator. Use it to generate a static docs. It is using AsyncAPI React component under the hood.", + "title": "Java Template", + "description": "Java template for the AsyncAPI Generator", "links": { - "repoUrl": "https://github.com/asyncapi/html-template" + "repoUrl": "https://github.com/asyncapi/java-template" }, "filters": { - "language": "javascript", + "language": [ + "javascript" + ], "technology": [ - "HTML" + "Java" ], "categories": [ "generator-template"