claude-code-templates 1.21.13 → 1.21.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +8 -2
- package/.claude-plugin/marketplace.json +251 -0
- package/.github/workflows/component-security-validation.yml +129 -0
- package/README.md +13 -6
- package/cli-tool/README.md +56 -0
- package/cli-tool/bin/create-claude-config.js +2 -0
- package/cli-tool/components/.claude-plugin/marketplace.json +92 -0
- package/cli-tool/components/agents/development-tools/flutter-go-reviewer.md +163 -0
- package/cli-tool/components/agents/development-tools/unused-code-cleaner.md +194 -0
- package/cli-tool/components/commands/git-workflow/gemini-review.md +293 -0
- package/cli-tool/components/commands/testing/add-mutation-testing.md +2 -2
- package/cli-tool/components/commands/testing/add-property-based-testing.md +2 -2
- package/cli-tool/components/commands/testing/e2e-setup.md +2 -2
- package/cli-tool/components/commands/testing/generate-test-cases.md +2 -2
- package/cli-tool/components/commands/testing/generate-tests.md +8 -3
- package/cli-tool/components/commands/testing/setup-comprehensive-testing.md +2 -2
- package/cli-tool/components/commands/testing/setup-load-testing.md +2 -2
- package/cli-tool/components/commands/testing/setup-visual-testing.md +2 -2
- package/cli-tool/components/commands/testing/test-automation-orchestrator.md +2 -2
- package/cli-tool/components/commands/testing/test-changelog-automation.md +2 -2
- package/cli-tool/components/commands/testing/test-coverage.md +2 -2
- package/cli-tool/components/commands/testing/test-quality-analyzer.md +2 -2
- package/cli-tool/components/commands/testing/testing_plan_integration.md +2 -2
- package/cli-tool/components/commands/testing/write-tests.md +2 -2
- package/cli-tool/components/commands/utilities/ultra-think.md +10 -5
- package/cli-tool/components/hooks/git/validate-branch-name.json +1 -1
- package/cli-tool/components/mcps/devtools/chrome-devtools.json +9 -0
- package/cli-tool/components/mcps/devtools/grafana.json +15 -0
- package/cli-tool/components/mcps/devtools/pulumi.json +9 -0
- package/cli-tool/components/mcps/devtools/terraform.json +1 -1
- package/cli-tool/components/settings/statusline/context-monitor.py +1 -1
- package/cli-tool/components/skills/ANTHROPIC_ATTRIBUTION.md +81 -0
- package/cli-tool/components/skills/creative-design/algorithmic-art/LICENSE.txt +202 -0
- package/cli-tool/components/skills/creative-design/algorithmic-art/SKILL.md +405 -0
- package/cli-tool/components/skills/creative-design/algorithmic-art/templates/generator_template.js +223 -0
- package/cli-tool/components/skills/creative-design/algorithmic-art/templates/viewer.html +599 -0
- package/cli-tool/components/skills/creative-design/canvas-design/LICENSE.txt +202 -0
- package/cli-tool/components/skills/creative-design/canvas-design/SKILL.md +130 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/cli-tool/components/skills/creative-design/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/LICENSE.txt +202 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/SKILL.md +646 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/core/color_palettes.py +302 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/core/easing.py +230 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/core/frame_composer.py +469 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/core/gif_builder.py +246 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/core/typography.py +357 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/core/validators.py +264 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/core/visual_effects.py +494 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/requirements.txt +4 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/bounce.py +106 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/explode.py +331 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/fade.py +329 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/flip.py +291 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/kaleidoscope.py +211 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/morph.py +329 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/move.py +293 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/pulse.py +268 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/shake.py +127 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/slide.py +291 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/spin.py +269 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/wiggle.py +300 -0
- package/cli-tool/components/skills/creative-design/slack-gif-creator/templates/zoom.py +312 -0
- package/cli-tool/components/skills/creative-design/theme-factory/LICENSE.txt +202 -0
- package/cli-tool/components/skills/creative-design/theme-factory/SKILL.md +59 -0
- package/cli-tool/components/skills/creative-design/theme-factory/theme-showcase.pdf +0 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/arctic-frost.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/botanical-garden.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/desert-rose.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/forest-canopy.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/golden-hour.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/midnight-galaxy.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/modern-minimalist.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/ocean-depths.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/sunset-boulevard.md +19 -0
- package/cli-tool/components/skills/creative-design/theme-factory/themes/tech-innovation.md +19 -0
- package/cli-tool/components/skills/development/artifacts-builder/LICENSE.txt +202 -0
- package/cli-tool/components/skills/development/artifacts-builder/SKILL.md +74 -0
- package/cli-tool/components/skills/development/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/cli-tool/components/skills/development/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/cli-tool/components/skills/development/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/cli-tool/components/skills/development/git-commit-helper/SKILL.md +203 -0
- package/cli-tool/components/skills/development/mcp-builder/LICENSE.txt +202 -0
- package/cli-tool/components/skills/development/mcp-builder/SKILL.md +328 -0
- package/cli-tool/components/skills/development/mcp-builder/reference/evaluation.md +602 -0
- package/cli-tool/components/skills/development/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/cli-tool/components/skills/development/mcp-builder/reference/node_mcp_server.md +916 -0
- package/cli-tool/components/skills/development/mcp-builder/reference/python_mcp_server.md +752 -0
- package/cli-tool/components/skills/development/mcp-builder/scripts/connections.py +151 -0
- package/cli-tool/components/skills/development/mcp-builder/scripts/evaluation.py +373 -0
- package/cli-tool/components/skills/development/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/cli-tool/components/skills/development/mcp-builder/scripts/requirements.txt +2 -0
- package/cli-tool/components/skills/development/skill-creator/LICENSE.txt +202 -0
- package/cli-tool/components/skills/development/skill-creator/SKILL.md +209 -0
- package/cli-tool/components/skills/development/skill-creator/scripts/init_skill.py +303 -0
- package/cli-tool/components/skills/development/skill-creator/scripts/package_skill.py +110 -0
- package/cli-tool/components/skills/development/skill-creator/scripts/quick_validate.py +65 -0
- package/cli-tool/components/skills/development/webapp-testing/LICENSE.txt +202 -0
- package/cli-tool/components/skills/development/webapp-testing/SKILL.md +96 -0
- package/cli-tool/components/skills/development/webapp-testing/examples/console_logging.py +35 -0
- package/cli-tool/components/skills/development/webapp-testing/examples/element_discovery.py +40 -0
- package/cli-tool/components/skills/development/webapp-testing/examples/static_html_automation.py +33 -0
- package/cli-tool/components/skills/development/webapp-testing/scripts/with_server.py +106 -0
- package/cli-tool/components/skills/document-processing/docx/LICENSE.txt +30 -0
- package/cli-tool/components/skills/document-processing/docx/SKILL.md +197 -0
- package/cli-tool/components/skills/document-processing/docx/docx-js.md +350 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/pack.py +159 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/unpack.py +29 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validate.py +69 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/base.py +951 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/docx.py +274 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/cli-tool/components/skills/document-processing/docx/ooxml.md +610 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/__init__.py +1 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/document.py +1276 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/templates/comments.xml +3 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/templates/commentsExtended.xml +3 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/templates/commentsIds.xml +3 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/templates/people.xml +3 -0
- package/cli-tool/components/skills/document-processing/docx/scripts/utilities.py +374 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/LICENSE.txt +30 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/SKILL.md +294 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/forms.md +205 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/reference.md +612 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/check_bounding_boxes.py +70 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/check_bounding_boxes_test.py +226 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/check_fillable_fields.py +12 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/convert_pdf_to_images.py +35 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/create_validation_image.py +41 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/extract_form_field_info.py +152 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/fill_fillable_fields.py +114 -0
- package/cli-tool/components/skills/document-processing/pdf-anthropic/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/cli-tool/components/skills/document-processing/pdf-processing/FORMS.md +143 -0
- package/cli-tool/components/skills/document-processing/pdf-processing/SKILL.md +149 -0
- package/cli-tool/components/skills/document-processing/pdf-processing-pro/FORMS.md +610 -0
- package/cli-tool/components/skills/document-processing/pdf-processing-pro/OCR.md +137 -0
- package/cli-tool/components/skills/document-processing/pdf-processing-pro/SKILL.md +296 -0
- package/cli-tool/components/skills/document-processing/pdf-processing-pro/TABLES.md +626 -0
- package/cli-tool/components/skills/document-processing/pdf-processing-pro/scripts/analyze_form.py +307 -0
- package/cli-tool/components/skills/document-processing/pptx/LICENSE.txt +30 -0
- package/cli-tool/components/skills/document-processing/pptx/SKILL.md +484 -0
- package/cli-tool/components/skills/document-processing/pptx/html2pptx.md +625 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/pack.py +159 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/unpack.py +29 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validate.py +69 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/base.py +951 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/cli-tool/components/skills/document-processing/pptx/ooxml.md +427 -0
- package/cli-tool/components/skills/document-processing/pptx/scripts/html2pptx.js +979 -0
- package/cli-tool/components/skills/document-processing/pptx/scripts/inventory.py +1020 -0
- package/cli-tool/components/skills/document-processing/pptx/scripts/rearrange.py +231 -0
- package/cli-tool/components/skills/document-processing/pptx/scripts/replace.py +385 -0
- package/cli-tool/components/skills/document-processing/pptx/scripts/thumbnail.py +450 -0
- package/cli-tool/components/skills/document-processing/xlsx/LICENSE.txt +30 -0
- package/cli-tool/components/skills/document-processing/xlsx/SKILL.md +289 -0
- package/cli-tool/components/skills/document-processing/xlsx/recalc.py +178 -0
- package/cli-tool/components/skills/enterprise-communication/brand-guidelines/LICENSE.txt +202 -0
- package/cli-tool/components/skills/enterprise-communication/brand-guidelines/SKILL.md +73 -0
- package/cli-tool/components/skills/enterprise-communication/email-composer/SKILL.md +317 -0
- package/cli-tool/components/skills/enterprise-communication/excel-analysis/SKILL.md +247 -0
- package/cli-tool/components/skills/enterprise-communication/internal-comms/LICENSE.txt +202 -0
- package/cli-tool/components/skills/enterprise-communication/internal-comms/SKILL.md +32 -0
- package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/3p-updates.md +47 -0
- package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/company-newsletter.md +65 -0
- package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/faq-answers.md +30 -0
- package/cli-tool/components/skills/enterprise-communication/internal-comms/examples/general-comms.md +16 -0
- package/cli-tool/package-lock.json +39 -16
- package/cli-tool/package.json +7 -2
- package/cli-tool/security-report.json +62361 -0
- package/cli-tool/src/analytics-web/chats_mobile.html +17 -16
- package/cli-tool/src/console-bridge.js +3 -3
- package/cli-tool/src/index.js +157 -10
- package/cli-tool/src/plugin-dashboard-web/app.js +806 -0
- package/cli-tool/src/plugin-dashboard-web/index.html +292 -0
- package/cli-tool/src/plugin-dashboard-web/styles.css +1781 -0
- package/cli-tool/src/plugin-dashboard.js +689 -0
- package/cli-tool/src/security-audit.js +164 -0
- package/cli-tool/src/validation/ARCHITECTURE.md +309 -0
- package/cli-tool/src/validation/BaseValidator.js +152 -0
- package/cli-tool/src/validation/README.md +543 -0
- package/cli-tool/src/validation/ValidationOrchestrator.js +305 -0
- package/cli-tool/src/validation/validators/IntegrityValidator.js +338 -0
- package/cli-tool/src/validation/validators/ProvenanceValidator.js +399 -0
- package/cli-tool/src/validation/validators/ReferenceValidator.js +373 -0
- package/cli-tool/src/validation/validators/SemanticValidator.js +449 -0
- package/cli-tool/src/validation/validators/StructuralValidator.js +376 -0
- package/docs/CLAUDE.md +363 -0
- package/docs/api/README.md +297 -0
- package/docs/api/package.json +7 -0
- package/docs/api/track-download-supabase.js +150 -0
- package/docs/blog/README.md +199 -0
- package/docs/blog/blog-articles.json +133 -0
- package/docs/blog/css/blog-controls.css +254 -0
- package/docs/blog/e2b-claude-code-sandbox/index.html +8 -0
- package/docs/blog/index.html +81 -124
- package/docs/blog/js/blog-loader.js +602 -0
- package/docs/blog/nextjs-vercel-claude-code-integration/index.html +8 -0
- package/docs/blog/supabase-claude-code-integration/index.html +8 -0
- package/docs/component.html +226 -48
- package/docs/components.json +61610 -604
- package/docs/css/blog.css +292 -0
- package/docs/css/component-page.css +840 -3
- package/docs/css/plugin-page.css +648 -0
- package/docs/css/styles.css +504 -1
- package/docs/css/trending.css +110 -6
- package/docs/download-stats.html +8 -0
- package/docs/index.html +48 -22
- package/docs/jobs.html +8 -0
- package/docs/js/cart-manager.js +21 -8
- package/docs/js/component-page.js +1013 -12
- package/docs/js/data-loader.js +11 -8
- package/docs/js/index-events.js +305 -53
- package/docs/js/plugin-page.js +390 -0
- package/docs/js/script.js +50 -3
- package/docs/js/search-functionality.js +19 -16
- package/docs/js/trending.js +55 -20
- package/docs/plugin.html +262 -0
- package/docs/sandbox-interface.html +8 -0
- package/docs/static/favicon/about.txt +6 -0
- package/docs/static/favicon/android-chrome-192x192.png +0 -0
- package/docs/static/favicon/android-chrome-512x512.png +0 -0
- package/docs/static/favicon/apple-touch-icon.png +0 -0
- package/docs/static/favicon/favicon-16x16.png +0 -0
- package/docs/static/favicon/favicon-32x32.png +0 -0
- package/docs/static/favicon/favicon.ico +0 -0
- package/docs/static/favicon/site.webmanifest +1 -0
- package/docs/trending-data.json +616 -579
- package/docs/trending.html +24 -3
- package/docs/vercel.json +12 -0
- package/docs/workflows.html +8 -0
- package/generate_components_json.py +386 -11
- package/package.json +1 -1
- package/sync-api.sh +50 -0
- package/vercel.json +10 -75
- package/ROADMAP.md +0 -278
- package/test_serpapi.py +0 -36
- /package/cli-tool/components/commands/svelte/{svelte:a11y.md → svelte-a11y.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:component.md → svelte-component.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:debug.md → svelte-debug.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:migrate.md → svelte-migrate.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:optimize.md → svelte-optimize.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:scaffold.md → svelte-scaffold.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:storybook-migrate.md → svelte-storybook-migrate.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:storybook-mock.md → svelte-storybook-mock.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:storybook-setup.md → svelte-storybook-setup.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:storybook-story.md → svelte-storybook-story.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:storybook-troubleshoot.md → svelte-storybook-troubleshoot.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:storybook.md → svelte-storybook.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:test-coverage.md → svelte-test-coverage.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:test-fix.md → svelte-test-fix.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:test-setup.md → svelte-test-setup.md} +0 -0
- /package/cli-tool/components/commands/svelte/{svelte:test.md → svelte-test.md} +0 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
// Download tracking API endpoint using Supabase client
|
|
2
|
+
import { createClient } from '@supabase/supabase-js';
|
|
3
|
+
|
|
4
|
+
// Initialize Supabase client
|
|
5
|
+
function getSupabaseClient() {
|
|
6
|
+
const supabaseUrl = process.env.SUPABASE_URL;
|
|
7
|
+
const supabaseServiceKey = process.env.SUPABASE_SERVICE_ROLE_KEY;
|
|
8
|
+
|
|
9
|
+
if (!supabaseUrl || !supabaseServiceKey) {
|
|
10
|
+
throw new Error('Missing Supabase configuration');
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return createClient(supabaseUrl, supabaseServiceKey);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Validate component data
|
|
17
|
+
function validateComponentData(data) {
|
|
18
|
+
const { type, name, path, category } = data;
|
|
19
|
+
|
|
20
|
+
if (!type || !name) {
|
|
21
|
+
return { valid: false, error: 'Component type and name are required' };
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const validTypes = ['agent', 'command', 'setting', 'hook', 'mcp', 'skill', 'template'];
|
|
25
|
+
if (!validTypes.includes(type)) {
|
|
26
|
+
return { valid: false, error: 'Invalid component type' };
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (name.length > 255) {
|
|
30
|
+
return { valid: false, error: 'Component name too long' };
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return { valid: true };
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Get IP address from request
|
|
37
|
+
function getClientIP(req) {
|
|
38
|
+
return req.headers['x-forwarded-for']?.split(',')[0] ||
|
|
39
|
+
req.headers['x-real-ip'] ||
|
|
40
|
+
req.connection?.remoteAddress ||
|
|
41
|
+
req.socket?.remoteAddress ||
|
|
42
|
+
'127.0.0.1';
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Get country from Vercel geo headers
|
|
46
|
+
function getCountry(req) {
|
|
47
|
+
return req.headers['x-vercel-ip-country'] || null;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export default async function handler(req, res) {
|
|
51
|
+
// Set CORS headers
|
|
52
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
53
|
+
res.setHeader('Access-Control-Allow-Methods', 'POST, OPTIONS');
|
|
54
|
+
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, User-Agent');
|
|
55
|
+
|
|
56
|
+
// Handle preflight requests
|
|
57
|
+
if (req.method === 'OPTIONS') {
|
|
58
|
+
return res.status(200).json({ ok: true });
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Only accept POST requests
|
|
62
|
+
if (req.method !== 'POST') {
|
|
63
|
+
return res.status(405).json({
|
|
64
|
+
error: 'Method not allowed',
|
|
65
|
+
allowed: ['POST']
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
try {
|
|
70
|
+
// Validate request body
|
|
71
|
+
const { type, name, path, category, cliVersion } = req.body;
|
|
72
|
+
const validation = validateComponentData({ type, name, path, category });
|
|
73
|
+
|
|
74
|
+
if (!validation.valid) {
|
|
75
|
+
return res.status(400).json({ error: validation.error });
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Get client information
|
|
79
|
+
const ipAddress = getClientIP(req);
|
|
80
|
+
const country = getCountry(req);
|
|
81
|
+
const userAgent = req.headers['user-agent'];
|
|
82
|
+
|
|
83
|
+
// Initialize Supabase client
|
|
84
|
+
const supabase = getSupabaseClient();
|
|
85
|
+
|
|
86
|
+
// Insert download record
|
|
87
|
+
const { data: insertData, error: insertError } = await supabase
|
|
88
|
+
.from('component_downloads')
|
|
89
|
+
.insert({
|
|
90
|
+
component_type: type,
|
|
91
|
+
component_name: name,
|
|
92
|
+
component_path: path,
|
|
93
|
+
category: category,
|
|
94
|
+
user_agent: userAgent,
|
|
95
|
+
ip_address: ipAddress,
|
|
96
|
+
country: country,
|
|
97
|
+
cli_version: cliVersion,
|
|
98
|
+
download_timestamp: new Date().toISOString(),
|
|
99
|
+
created_at: new Date().toISOString()
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
if (insertError) {
|
|
103
|
+
console.error('Supabase insert error:', insertError);
|
|
104
|
+
throw new Error(`Database insert failed: ${insertError.message}`);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Update aggregated stats (upsert)
|
|
108
|
+
const { error: upsertError } = await supabase
|
|
109
|
+
.from('download_stats')
|
|
110
|
+
.upsert(
|
|
111
|
+
{
|
|
112
|
+
component_type: type,
|
|
113
|
+
component_name: name,
|
|
114
|
+
total_downloads: 1,
|
|
115
|
+
last_download: new Date().toISOString(),
|
|
116
|
+
updated_at: new Date().toISOString()
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
onConflict: 'component_type,component_name',
|
|
120
|
+
ignoreDuplicates: false
|
|
121
|
+
}
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
if (upsertError) {
|
|
125
|
+
console.error('Supabase upsert error:', upsertError);
|
|
126
|
+
// Don't fail the request for stats update errors
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Return success response
|
|
130
|
+
res.status(200).json({
|
|
131
|
+
success: true,
|
|
132
|
+
message: 'Download tracked successfully',
|
|
133
|
+
data: {
|
|
134
|
+
type,
|
|
135
|
+
name,
|
|
136
|
+
timestamp: new Date().toISOString()
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
} catch (error) {
|
|
141
|
+
console.error('Download tracking error:', error);
|
|
142
|
+
|
|
143
|
+
// Return error response
|
|
144
|
+
res.status(500).json({
|
|
145
|
+
error: 'Internal server error',
|
|
146
|
+
message: 'Failed to track download',
|
|
147
|
+
details: process.env.NODE_ENV === 'development' ? error.message : undefined
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# Blog Management System
|
|
2
|
+
|
|
3
|
+
Este blog utiliza un sistema dinámico de gestión de artículos basado en JSON.
|
|
4
|
+
|
|
5
|
+
## 📁 Estructura de Archivos
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
docs/blog/
|
|
9
|
+
├── index.html # Página principal del blog
|
|
10
|
+
├── blog-articles.json # Base de datos de artículos
|
|
11
|
+
├── js/
|
|
12
|
+
│ └── blog-loader.js # Cargador dinámico de artículos
|
|
13
|
+
└── assets/ # Imágenes y recursos
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## 🚀 Cómo Agregar Nuevos Artículos
|
|
17
|
+
|
|
18
|
+
Para agregar un nuevo artículo al blog, simplemente edita el archivo `blog-articles.json`:
|
|
19
|
+
|
|
20
|
+
### 1. Abre el archivo `blog-articles.json`
|
|
21
|
+
|
|
22
|
+
### 2. Agrega un nuevo objeto en el array `articles`:
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"id": "unique-article-id",
|
|
27
|
+
"title": "Título del Artículo",
|
|
28
|
+
"description": "Descripción breve del artículo (1-2 líneas)",
|
|
29
|
+
"url": "https://medium.com/@tu-usuario/url-del-articulo",
|
|
30
|
+
"image": "https://www.aitmpl.com/blog/assets/imagen-cover.png",
|
|
31
|
+
"category": "Categoría",
|
|
32
|
+
"publishDate": "2025-02-10",
|
|
33
|
+
"readTime": "5 min read",
|
|
34
|
+
"tags": ["Tag1", "Tag2", "Tag3"],
|
|
35
|
+
"platform": "medium",
|
|
36
|
+
"order": 5
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 3. Actualiza los metadatos al final del archivo:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
"metadata": {
|
|
44
|
+
"lastUpdated": "2025-02-10",
|
|
45
|
+
"totalArticles": 5,
|
|
46
|
+
"platforms": {
|
|
47
|
+
"medium": 5,
|
|
48
|
+
"local": 0
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 📝 Campos Explicados
|
|
54
|
+
|
|
55
|
+
| Campo | Tipo | Descripción | Ejemplo |
|
|
56
|
+
|-------|------|-------------|---------|
|
|
57
|
+
| `id` | string | Identificador único del artículo | `"supabase-integration"` |
|
|
58
|
+
| `title` | string | Título completo del artículo | `"Claude Code + Supabase Integration"` |
|
|
59
|
+
| `description` | string | Descripción breve (1-2 líneas) | `"Learn how to integrate..."` |
|
|
60
|
+
| `url` | string | URL completa del artículo | `"https://medium.com/@..."` |
|
|
61
|
+
| `image` | string | URL de la imagen de portada | `"https://www.aitmpl.com/blog/assets/..."` |
|
|
62
|
+
| `category` | string | Categoría del artículo | `"Database"`, `"Development"`, etc. |
|
|
63
|
+
| `publishDate` | string | Fecha de publicación (YYYY-MM-DD) | `"2025-02-10"` |
|
|
64
|
+
| `readTime` | string | Tiempo estimado de lectura | `"5 min read"` |
|
|
65
|
+
| `tags` | array | Array de tags/etiquetas | `["Supabase", "Database", "MCP"]` |
|
|
66
|
+
| `difficulty` | string | Nivel de dificultad del artículo | `"basic"`, `"intermediate"`, `"advanced"` |
|
|
67
|
+
| `order` | number | Orden de aparición (menor = primero) | `1`, `2`, `3`, etc. |
|
|
68
|
+
|
|
69
|
+
## 🎨 Categorías Recomendadas
|
|
70
|
+
|
|
71
|
+
- **Database** - Artículos sobre bases de datos
|
|
72
|
+
- **Development** - Desarrollo general
|
|
73
|
+
- **Cloud & AI** - Cloud computing e inteligencia artificial
|
|
74
|
+
- **Documentation** - Documentación y guías
|
|
75
|
+
- **Frontend** - Desarrollo frontend
|
|
76
|
+
- **Backend** - Desarrollo backend
|
|
77
|
+
- **DevOps** - DevOps y CI/CD
|
|
78
|
+
- **Security** - Seguridad
|
|
79
|
+
|
|
80
|
+
## 🎓 Niveles de Dificultad
|
|
81
|
+
|
|
82
|
+
Clasifica cada artículo según su complejidad:
|
|
83
|
+
|
|
84
|
+
- **`basic`** - Verde (#00D084): Artículos introductorios, tutoriales para principiantes
|
|
85
|
+
- **`intermediate`** - Naranja (#FFA500): Requiere conocimientos previos, configuraciones más avanzadas
|
|
86
|
+
- **`advanced`** - Rojo (#FF4444): Temas complejos, integraciones avanzadas, arquitecturas elaboradas
|
|
87
|
+
|
|
88
|
+
El badge de dificultad se muestra automáticamente en la metadata del artículo.
|
|
89
|
+
|
|
90
|
+
## 🏷️ Tags Recomendados
|
|
91
|
+
|
|
92
|
+
Usa tags específicos y relevantes:
|
|
93
|
+
- Tecnologías: `Supabase`, `Next.js`, `React`, `Node.js`
|
|
94
|
+
- Conceptos: `Agents`, `Commands`, `MCP`, `Automation`
|
|
95
|
+
- Herramientas: `Git`, `Docker`, `Kubernetes`
|
|
96
|
+
- Plataformas: `Vercel`, `Google Cloud`, `AWS`
|
|
97
|
+
|
|
98
|
+
## 📊 Orden de Artículos
|
|
99
|
+
|
|
100
|
+
Los artículos se muestran según el campo `order`:
|
|
101
|
+
- **Menor número = Aparece primero**
|
|
102
|
+
- Usa números consecutivos: 1, 2, 3, 4, 5...
|
|
103
|
+
- Para reordenar, simplemente cambia los números
|
|
104
|
+
|
|
105
|
+
## 🔄 Proceso de Publicación
|
|
106
|
+
|
|
107
|
+
1. **Publica tu artículo** en Medium u otra plataforma
|
|
108
|
+
2. **Copia la URL** del artículo publicado
|
|
109
|
+
3. **Edita** `blog-articles.json`
|
|
110
|
+
4. **Agrega** el nuevo artículo con todos los campos
|
|
111
|
+
5. **Actualiza** los metadatos (totalArticles, lastUpdated)
|
|
112
|
+
6. **Commit y push** los cambios
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
git add docs/blog/blog-articles.json
|
|
116
|
+
git commit -m "Add new blog article: [Título]"
|
|
117
|
+
git push
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## 🎯 Badges de Dificultad
|
|
121
|
+
|
|
122
|
+
El sistema automáticamente muestra un badge de dificultad con colores específicos:
|
|
123
|
+
- **Basic** (Verde): Para artículos introductorios y guías básicas
|
|
124
|
+
- **Intermediate** (Naranja): Para configuraciones más avanzadas
|
|
125
|
+
- **Advanced** (Rojo): Para temas complejos y arquitecturas avanzadas
|
|
126
|
+
|
|
127
|
+
## ✨ Características
|
|
128
|
+
|
|
129
|
+
- **Carga Dinámica**: Los artículos se cargan automáticamente desde JSON
|
|
130
|
+
- **Ordenamiento**: Controla el orden con el campo `order`
|
|
131
|
+
- **Seguridad**: HTML escapado automáticamente (prevención XSS)
|
|
132
|
+
- **Performance**: Lazy loading de imágenes
|
|
133
|
+
- **Responsive**: Diseño adaptable a móviles
|
|
134
|
+
- **Loading States**: Indicadores de carga mientras se obtienen los datos
|
|
135
|
+
|
|
136
|
+
## 🐛 Troubleshooting
|
|
137
|
+
|
|
138
|
+
### Los artículos no se cargan
|
|
139
|
+
1. Verifica que `blog-articles.json` esté en la raíz de `/docs/blog/`
|
|
140
|
+
2. Revisa la consola del navegador para errores
|
|
141
|
+
3. Asegúrate de que el JSON sea válido (usa un validador JSON online)
|
|
142
|
+
|
|
143
|
+
### Error de JSON inválido
|
|
144
|
+
- Verifica que todas las comillas sean dobles (`"`)
|
|
145
|
+
- Asegúrate de que no falten comas entre objetos
|
|
146
|
+
- El último elemento del array no debe tener coma final
|
|
147
|
+
|
|
148
|
+
### Las imágenes no se muestran
|
|
149
|
+
- Verifica que las URLs de las imágenes sean accesibles
|
|
150
|
+
- Usa URLs completas (no relativas)
|
|
151
|
+
- Asegúrate de que las imágenes estén en `/docs/blog/assets/`
|
|
152
|
+
|
|
153
|
+
## 📱 Testing Local
|
|
154
|
+
|
|
155
|
+
Para probar localmente:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
cd docs/blog
|
|
159
|
+
python -m http.server 8000
|
|
160
|
+
# o
|
|
161
|
+
npx http-server
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Luego abre: `http://localhost:8000`
|
|
165
|
+
|
|
166
|
+
## 🎉 Ejemplo Completo
|
|
167
|
+
|
|
168
|
+
```json
|
|
169
|
+
{
|
|
170
|
+
"articles": [
|
|
171
|
+
{
|
|
172
|
+
"id": "my-new-article",
|
|
173
|
+
"title": "Amazing New Feature in Claude Code",
|
|
174
|
+
"description": "Discover how to use the latest feature that will revolutionize your workflow.",
|
|
175
|
+
"url": "https://medium.com/@dan.avila7/amazing-new-feature-12345",
|
|
176
|
+
"image": "https://www.aitmpl.com/blog/assets/new-feature-cover.png",
|
|
177
|
+
"category": "Development",
|
|
178
|
+
"publishDate": "2025-02-10",
|
|
179
|
+
"readTime": "6 min read",
|
|
180
|
+
"tags": ["Claude Code", "Productivity", "Automation"],
|
|
181
|
+
"difficulty": "intermediate",
|
|
182
|
+
"order": 1
|
|
183
|
+
}
|
|
184
|
+
],
|
|
185
|
+
"metadata": {
|
|
186
|
+
"lastUpdated": "2025-02-10",
|
|
187
|
+
"totalArticles": 5,
|
|
188
|
+
"difficultyLevels": {
|
|
189
|
+
"basic": 2,
|
|
190
|
+
"intermediate": 2,
|
|
191
|
+
"advanced": 1
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
**¡Eso es todo!** Ahora puedes agregar artículos fácilmente sin tocar el HTML. 🚀
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
{
|
|
2
|
+
"articles": [
|
|
3
|
+
{
|
|
4
|
+
"id": "supabase-integration",
|
|
5
|
+
"title": "Claude Code + Supabase Integration: Complete Guide with Agents, Commands and MCP",
|
|
6
|
+
"description": "Learn how to integrate Supabase with Claude Code using MCP, Agents, and Commands for faster database development.",
|
|
7
|
+
"url": "https://medium.com/@dan.avila7/claude-code-supabase-integration-complete-guide-with-agents-commands-and-mcp-427613d9051e",
|
|
8
|
+
"image": "https://miro.medium.com/v2/resize:fit:720/format:webp/1*UkD_4OChMB5_x50ZPledvw.png",
|
|
9
|
+
"category": "Database",
|
|
10
|
+
"publishDate": "2025-10-14",
|
|
11
|
+
"readTime": "5 min read",
|
|
12
|
+
"tags": ["Supabase", "Database", "Agents", "Commands", "MCP"],
|
|
13
|
+
"difficulty": "basic",
|
|
14
|
+
"featured": true,
|
|
15
|
+
"order": 1
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "git-flow-guide",
|
|
19
|
+
"title": "Complete Guide to Setting Up Git Flow in Claude Code",
|
|
20
|
+
"description": "Step-by-step guide to implementing Git Flow workflow in Claude Code for better version control and team collaboration.",
|
|
21
|
+
"url": "https://medium.com/@dan.avila7/complete-guide-to-setting-up-git-flow-in-claude-code-616477941f78",
|
|
22
|
+
"image": "https://miro.medium.com/v2/resize:fit:720/format:webp/1*hY3wY-RvsuF4aIFopX9cMg.png",
|
|
23
|
+
"category": "Development",
|
|
24
|
+
"publishDate": "2025-10-02",
|
|
25
|
+
"readTime": "7 min read",
|
|
26
|
+
"tags": ["Git", "Workflow", "Version Control", "Automation"],
|
|
27
|
+
"difficulty": "intermediate",
|
|
28
|
+
"order": 2
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "google-cloud-vertex-ai",
|
|
32
|
+
"title": "Step-by-Step Guide to Connect Claude Code with Google Cloud Vertex AI",
|
|
33
|
+
"description": "Complete guide to integrate Claude Code with Google Cloud Vertex AI for enhanced AI capabilities and scalable cloud infrastructure.",
|
|
34
|
+
"url": "https://medium.com/@dan.avila7/step-by-step-guide-to-connect-claude-code-with-google-cloud-vertex-ai-17e7916e711e",
|
|
35
|
+
"image": "https://miro.medium.com/v2/resize:fit:720/format:webp/1*1mhKnj46P_xCxovKsQqBuQ.png",
|
|
36
|
+
"category": "Cloud & AI",
|
|
37
|
+
"publishDate": "2025-09-27",
|
|
38
|
+
"readTime": "8 min read",
|
|
39
|
+
"tags": ["Google Cloud", "Vertex AI", "Integration", "Cloud"],
|
|
40
|
+
"difficulty": "advanced",
|
|
41
|
+
"order": 3
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "automated-documentation",
|
|
45
|
+
"title": "Automated Documentation with Claude Code: Building Self-Updating Docs Using Docusaurus Agent",
|
|
46
|
+
"description": "Learn how to create self-updating documentation systems using Claude Code and the Docusaurus agent for automatic content generation.",
|
|
47
|
+
"url": "https://medium.com/@dan.avila7/automated-documentation-with-claude-code-building-self-updating-docs-using-docusaurus-agent-2c85d3ec0e19",
|
|
48
|
+
"image": "https://miro.medium.com/v2/resize:fit:720/format:webp/1*Qxn21wqw6J4QACgoZkWWpg.png",
|
|
49
|
+
"category": "Documentation",
|
|
50
|
+
"publishDate": "2025-09-17",
|
|
51
|
+
"readTime": "6 min read",
|
|
52
|
+
"tags": ["Documentation", "Docusaurus", "Automation", "Agents"],
|
|
53
|
+
"difficulty": "advanced",
|
|
54
|
+
"order": 4
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "claude-code-templates-guide",
|
|
58
|
+
"title": "Complete Guide to Claude Code Templates",
|
|
59
|
+
"description": "Comprehensive introduction to Claude Code Templates, covering installation, configuration, and best practices for AI-powered development.",
|
|
60
|
+
"url": "https://medium.com/latinxinai/complete-guide-to-claude-code-templates-4e53d6688b34",
|
|
61
|
+
"image": "https://miro.medium.com/v2/resize:fit:1400/format:webp/1*YwxsC2eeW5fW1K6E8VBZpA.png",
|
|
62
|
+
"category": "Getting Started",
|
|
63
|
+
"publishDate": "2025-08-27",
|
|
64
|
+
"readTime": "5 min read",
|
|
65
|
+
"tags": ["Getting Started", "Templates", "Installation", "Configuration"],
|
|
66
|
+
"difficulty": "basic",
|
|
67
|
+
"featured": true,
|
|
68
|
+
"order": 5
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "tunnel-vision-fix",
|
|
72
|
+
"title": "Fixed Claude Code's 2024 Tunnel Vision with a Simple Hook",
|
|
73
|
+
"description": "Learn how to solve Claude Code's tunnel vision problem using a simple automation hook for better context awareness.",
|
|
74
|
+
"url": "https://medium.com/@dan.avila7/fixed-claude-codes-2024-tunnel-vision-with-a-simple-hook-cb32cfaf9b27",
|
|
75
|
+
"image": "https://miro.medium.com/v2/resize:fit:720/format:webp/1*T5gG6RGS-4dpD0K6mhnkHA.png",
|
|
76
|
+
"category": "Automation",
|
|
77
|
+
"publishDate": "2025-09-13",
|
|
78
|
+
"readTime": "3 min read",
|
|
79
|
+
"tags": ["Hooks", "Automation", "Context", "Problem Solving"],
|
|
80
|
+
"difficulty": "basic",
|
|
81
|
+
"order": 6
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "telegram-integration",
|
|
85
|
+
"title": "Step-by-Step Guide: Connect Telegram with Claude Code Hooks",
|
|
86
|
+
"description": "Complete tutorial for integrating Telegram notifications with Claude Code using automation hooks.",
|
|
87
|
+
"url": "https://medium.com/@dan.avila7/step-by-step-guide-connect-telegram-with-claude-code-hooks-1686fadcee65",
|
|
88
|
+
"image": "https://miro.medium.com/v2/resize:fit:720/format:webp/1*CMFx_4KLxgIbv8xZ6UCpQw.png",
|
|
89
|
+
"category": "Integrations",
|
|
90
|
+
"publishDate": "2025-08-18",
|
|
91
|
+
"readTime": "4 min read",
|
|
92
|
+
"tags": ["Telegram", "Hooks", "Notifications", "Integration"],
|
|
93
|
+
"difficulty": "basic",
|
|
94
|
+
"featured": true,
|
|
95
|
+
"order": 7
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "vercel-statusline",
|
|
99
|
+
"title": "Vercel Statusline Tutorial for Claude Code",
|
|
100
|
+
"description": "Learn how to create a custom Vercel statusline for Claude Code to monitor deployments and project status.",
|
|
101
|
+
"url": "https://medium.com/@dan.avila7/vercel-statusline-tutorial-for-claude-code-14755f113d76",
|
|
102
|
+
"image": "https://miro.medium.com/v2/resize:fit:720/format:webp/1*dGIs0XoRdrs9STzM-BWDSA.png",
|
|
103
|
+
"category": "Customization",
|
|
104
|
+
"publishDate": "2025-08-16",
|
|
105
|
+
"readTime": "3 min read",
|
|
106
|
+
"tags": ["Vercel", "Statusline", "Deployment", "Monitoring"],
|
|
107
|
+
"difficulty": "basic",
|
|
108
|
+
"order": 8
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"id": "prepare-codebase",
|
|
112
|
+
"title": "Step-by-Step Guide: Prepare Your Codebase for Claude Code",
|
|
113
|
+
"description": "Advanced guide to structuring and optimizing your codebase for maximum efficiency with Claude Code.",
|
|
114
|
+
"url": "https://medium.com/@dan.avila7/step-by-step-guide-prepare-your-codebase-for-claude-code-3e14262566e9",
|
|
115
|
+
"image": "https://miro.medium.com/v2/resize:fit:720/format:webp/1*lV1ujaM_2kDSJXNlmLIg2A.png",
|
|
116
|
+
"category": "Best Practices",
|
|
117
|
+
"publishDate": "2025-08-06",
|
|
118
|
+
"readTime": "4 min read",
|
|
119
|
+
"tags": ["Best Practices", "Code Organization", "Optimization", "Setup"],
|
|
120
|
+
"difficulty": "advanced",
|
|
121
|
+
"order": 9
|
|
122
|
+
}
|
|
123
|
+
],
|
|
124
|
+
"metadata": {
|
|
125
|
+
"lastUpdated": "2025-02-03",
|
|
126
|
+
"totalArticles": 9,
|
|
127
|
+
"difficultyLevels": {
|
|
128
|
+
"basic": 5,
|
|
129
|
+
"intermediate": 1,
|
|
130
|
+
"advanced": 3
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|