@mytechtoday/augment-extensions 0.7.0 → 1.2.0
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/AGENTS.md +265 -232
- package/README.md +956 -771
- package/augment-extensions/coding-standards/bash/README.md +196 -196
- package/augment-extensions/coding-standards/bash/module.json +163 -163
- package/augment-extensions/coding-standards/bash/rules/naming-conventions.md +336 -336
- package/augment-extensions/coding-standards/bash/rules/universal-standards.md +289 -289
- package/augment-extensions/coding-standards/css/README.md +40 -40
- package/augment-extensions/coding-standards/css/examples/css-examples.css +550 -550
- package/augment-extensions/coding-standards/css/module.json +44 -44
- package/augment-extensions/coding-standards/css/rules/css-modern-features.md +448 -448
- package/augment-extensions/coding-standards/css/rules/css-standards.md +492 -492
- package/augment-extensions/coding-standards/html/README.md +40 -40
- package/augment-extensions/coding-standards/html/examples/html-examples.html +267 -267
- package/augment-extensions/coding-standards/html/examples/responsive-layout.html +505 -505
- package/augment-extensions/coding-standards/html/module.json +44 -44
- package/augment-extensions/coding-standards/html/rules/html-standards.md +349 -349
- package/augment-extensions/coding-standards/html-css-js/README.md +194 -194
- package/augment-extensions/coding-standards/html-css-js/examples/async-examples.js +487 -487
- package/augment-extensions/coding-standards/html-css-js/examples/css-examples.css +550 -550
- package/augment-extensions/coding-standards/html-css-js/examples/dom-examples.js +667 -667
- package/augment-extensions/coding-standards/html-css-js/examples/html-examples.html +267 -267
- package/augment-extensions/coding-standards/html-css-js/examples/javascript-examples.js +612 -612
- package/augment-extensions/coding-standards/html-css-js/examples/responsive-layout.html +505 -505
- package/augment-extensions/coding-standards/html-css-js/module.json +48 -48
- package/augment-extensions/coding-standards/html-css-js/rules/async-patterns.md +515 -515
- package/augment-extensions/coding-standards/html-css-js/rules/css-modern-features.md +448 -448
- package/augment-extensions/coding-standards/html-css-js/rules/css-standards.md +492 -492
- package/augment-extensions/coding-standards/html-css-js/rules/dom-manipulation.md +439 -439
- package/augment-extensions/coding-standards/html-css-js/rules/html-standards.md +349 -349
- package/augment-extensions/coding-standards/html-css-js/rules/javascript-standards.md +486 -486
- package/augment-extensions/coding-standards/html-css-js/rules/performance.md +463 -463
- package/augment-extensions/coding-standards/html-css-js/rules/tooling.md +543 -543
- package/augment-extensions/coding-standards/js/README.md +46 -46
- package/augment-extensions/coding-standards/js/examples/async-examples.js +487 -487
- package/augment-extensions/coding-standards/js/examples/dom-examples.js +667 -667
- package/augment-extensions/coding-standards/js/examples/javascript-examples.js +612 -612
- package/augment-extensions/coding-standards/js/module.json +49 -49
- package/augment-extensions/coding-standards/js/rules/async-patterns.md +515 -515
- package/augment-extensions/coding-standards/js/rules/dom-manipulation.md +439 -439
- package/augment-extensions/coding-standards/js/rules/javascript-standards.md +486 -486
- package/augment-extensions/coding-standards/js/rules/performance.md +463 -463
- package/augment-extensions/coding-standards/js/rules/tooling.md +543 -543
- package/augment-extensions/coding-standards/php/README.md +248 -248
- package/augment-extensions/coding-standards/php/examples/api-endpoint-example.php +204 -204
- package/augment-extensions/coding-standards/php/examples/cli-command-example.php +206 -206
- package/augment-extensions/coding-standards/php/examples/legacy-refactoring-example.php +234 -234
- package/augment-extensions/coding-standards/php/examples/web-application-example.php +211 -211
- package/augment-extensions/coding-standards/php/examples/woocommerce-extension-example.php +215 -215
- package/augment-extensions/coding-standards/php/examples/wordpress-plugin-example.php +189 -189
- package/augment-extensions/coding-standards/php/module.json +166 -166
- package/augment-extensions/coding-standards/php/rules/api-development.md +480 -480
- package/augment-extensions/coding-standards/php/rules/category-configuration.md +332 -332
- package/augment-extensions/coding-standards/php/rules/cli-tools.md +472 -472
- package/augment-extensions/coding-standards/php/rules/cms-integration.md +561 -561
- package/augment-extensions/coding-standards/php/rules/code-quality.md +402 -402
- package/augment-extensions/coding-standards/php/rules/documentation.md +425 -425
- package/augment-extensions/coding-standards/php/rules/ecommerce.md +627 -627
- package/augment-extensions/coding-standards/php/rules/error-handling.md +336 -336
- package/augment-extensions/coding-standards/php/rules/legacy-migration.md +677 -677
- package/augment-extensions/coding-standards/php/rules/naming-conventions.md +279 -279
- package/augment-extensions/coding-standards/php/rules/performance.md +392 -392
- package/augment-extensions/coding-standards/php/rules/psr-standards.md +186 -186
- package/augment-extensions/coding-standards/php/rules/security.md +358 -358
- package/augment-extensions/coding-standards/php/rules/testing.md +403 -403
- package/augment-extensions/coding-standards/php/rules/type-declarations.md +331 -331
- package/augment-extensions/coding-standards/php/rules/web-applications.md +426 -426
- package/augment-extensions/coding-standards/powershell/README.md +154 -154
- package/augment-extensions/coding-standards/powershell/examples/admin-example.ps1 +272 -272
- package/augment-extensions/coding-standards/powershell/examples/automation-example.ps1 +173 -173
- package/augment-extensions/coding-standards/powershell/examples/cloud-example.ps1 +243 -243
- package/augment-extensions/coding-standards/powershell/examples/cross-platform-example.ps1 +297 -297
- package/augment-extensions/coding-standards/powershell/examples/dsc-example.ps1 +224 -224
- package/augment-extensions/coding-standards/powershell/examples/legacy-migration-example.ps1 +340 -340
- package/augment-extensions/coding-standards/powershell/examples/module-example.psm1 +255 -255
- package/augment-extensions/coding-standards/powershell/module.json +165 -165
- package/augment-extensions/coding-standards/powershell/rules/administrative-tools.md +439 -439
- package/augment-extensions/coding-standards/powershell/rules/automation-scripts.md +240 -240
- package/augment-extensions/coding-standards/powershell/rules/cloud-orchestration.md +384 -384
- package/augment-extensions/coding-standards/powershell/rules/configuration-schema.md +383 -383
- package/augment-extensions/coding-standards/powershell/rules/cross-platform-scripts.md +482 -482
- package/augment-extensions/coding-standards/powershell/rules/dsc-configurations.md +296 -296
- package/augment-extensions/coding-standards/powershell/rules/error-handling.md +314 -314
- package/augment-extensions/coding-standards/powershell/rules/legacy-migrations.md +466 -466
- package/augment-extensions/coding-standards/powershell/rules/modules-functions.md +244 -244
- package/augment-extensions/coding-standards/powershell/rules/naming-conventions.md +266 -266
- package/augment-extensions/coding-standards/powershell/rules/performance-optimization.md +209 -209
- package/augment-extensions/coding-standards/powershell/rules/security-practices.md +314 -314
- package/augment-extensions/coding-standards/powershell/rules/testing-guidelines.md +268 -268
- package/augment-extensions/coding-standards/powershell/rules/universal-standards.md +197 -197
- package/augment-extensions/coding-standards/python/README.md +48 -48
- package/augment-extensions/coding-standards/python/examples/best-practices.py +373 -373
- package/augment-extensions/coding-standards/python/module.json +30 -30
- package/augment-extensions/coding-standards/python/rules/async-patterns.md +884 -884
- package/augment-extensions/coding-standards/python/rules/best-practices.md +232 -232
- package/augment-extensions/coding-standards/python/rules/code-organization.md +220 -220
- package/augment-extensions/coding-standards/python/rules/documentation.md +831 -831
- package/augment-extensions/coding-standards/python/rules/error-handling.md +1008 -1008
- package/augment-extensions/coding-standards/python/rules/naming-conventions.md +172 -172
- package/augment-extensions/coding-standards/python/rules/testing.md +409 -409
- package/augment-extensions/coding-standards/python/rules/tooling.md +446 -446
- package/augment-extensions/coding-standards/python/rules/type-hints.md +253 -253
- package/augment-extensions/coding-standards/react/README.md +45 -45
- package/augment-extensions/coding-standards/react/module.json +27 -27
- package/augment-extensions/coding-standards/react/rules/component-patterns.md +214 -214
- package/augment-extensions/coding-standards/react/rules/hooks-best-practices.md +235 -235
- package/augment-extensions/coding-standards/react/rules/performance.md +300 -300
- package/augment-extensions/coding-standards/react/rules/state-management.md +265 -265
- package/augment-extensions/coding-standards/react/rules/typescript-react.md +271 -271
- package/augment-extensions/coding-standards/typescript/README.md +45 -45
- package/augment-extensions/coding-standards/typescript/module.json +27 -27
- package/augment-extensions/coding-standards/typescript/rules/naming-conventions.md +225 -225
- package/augment-extensions/collections/html-css-js/README.md +82 -82
- package/augment-extensions/collections/html-css-js/collection.json +41 -41
- package/augment-extensions/domain-rules/api-design/README.md +41 -41
- package/augment-extensions/domain-rules/api-design/module.json +27 -27
- package/augment-extensions/domain-rules/api-design/rules/authentication.md +263 -263
- package/augment-extensions/domain-rules/api-design/rules/documentation.md +395 -395
- package/augment-extensions/domain-rules/api-design/rules/error-handling.md +290 -290
- package/augment-extensions/domain-rules/api-design/rules/graphql-api.md +313 -313
- package/augment-extensions/domain-rules/api-design/rules/rest-api.md +214 -214
- package/augment-extensions/domain-rules/api-design/rules/versioning.md +268 -268
- package/augment-extensions/domain-rules/database/README.md +161 -161
- package/augment-extensions/domain-rules/database/examples/flat-database-example.md +793 -793
- package/augment-extensions/domain-rules/database/examples/hybrid-database-example.md +1132 -1132
- package/augment-extensions/domain-rules/database/examples/nosql-document-example.md +868 -868
- package/augment-extensions/domain-rules/database/examples/nosql-graph-example.md +805 -805
- package/augment-extensions/domain-rules/database/examples/relational-schema-example.md +621 -621
- package/augment-extensions/domain-rules/database/examples/vector-database-example.md +965 -965
- package/augment-extensions/domain-rules/database/module.json +28 -28
- package/augment-extensions/domain-rules/database/rules/flat-databases.md +624 -624
- package/augment-extensions/domain-rules/database/rules/nosql-databases.md +588 -588
- package/augment-extensions/domain-rules/database/rules/nosql-document-stores.md +856 -856
- package/augment-extensions/domain-rules/database/rules/nosql-graph-databases.md +778 -778
- package/augment-extensions/domain-rules/database/rules/nosql-key-value-stores.md +963 -963
- package/augment-extensions/domain-rules/database/rules/performance-optimization.md +1076 -1076
- package/augment-extensions/domain-rules/database/rules/relational-databases.md +697 -697
- package/augment-extensions/domain-rules/database/rules/relational-indexing.md +671 -671
- package/augment-extensions/domain-rules/database/rules/relational-query-optimization.md +607 -607
- package/augment-extensions/domain-rules/database/rules/relational-schema-design.md +907 -907
- package/augment-extensions/domain-rules/database/rules/relational-transactions.md +783 -783
- package/augment-extensions/domain-rules/database/rules/security-standards.md +980 -980
- package/augment-extensions/domain-rules/database/rules/universal-best-practices.md +485 -485
- package/augment-extensions/domain-rules/database/rules/vector-databases.md +521 -521
- package/augment-extensions/domain-rules/database/rules/vector-embeddings.md +858 -858
- package/augment-extensions/domain-rules/database/rules/vector-indexing.md +934 -934
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/dracula/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/dracula/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/high-contrast/README.md +27 -27
- package/augment-extensions/domain-rules/design/color/themes/high-contrast/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/monokai/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/monokai/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/nord/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/nord/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/one-dark/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/one-dark/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/one-light/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/one-light/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/solarized-dark/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/solarized-dark/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/solarized-light/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/solarized-light/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/tokyo-night/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/tokyo-night/module.json +26 -26
- package/augment-extensions/domain-rules/mcp/README.md +150 -150
- package/augment-extensions/domain-rules/mcp/examples/compressed-example.md +522 -522
- package/augment-extensions/domain-rules/mcp/examples/graph-augmented-example.md +520 -520
- package/augment-extensions/domain-rules/mcp/examples/hybrid-example.md +570 -570
- package/augment-extensions/domain-rules/mcp/examples/state-based-example.md +427 -427
- package/augment-extensions/domain-rules/mcp/examples/token-based-example.md +435 -435
- package/augment-extensions/domain-rules/mcp/examples/vector-based-example.md +502 -502
- package/augment-extensions/domain-rules/mcp/module.json +49 -49
- package/augment-extensions/domain-rules/mcp/rules/compressed-mcp.md +595 -595
- package/augment-extensions/domain-rules/mcp/rules/configuration.md +345 -345
- package/augment-extensions/domain-rules/mcp/rules/graph-augmented-mcp.md +687 -687
- package/augment-extensions/domain-rules/mcp/rules/hybrid-mcp.md +636 -636
- package/augment-extensions/domain-rules/mcp/rules/state-based-mcp.md +484 -484
- package/augment-extensions/domain-rules/mcp/rules/testing-validation.md +360 -360
- package/augment-extensions/domain-rules/mcp/rules/token-based-mcp.md +393 -393
- package/augment-extensions/domain-rules/mcp/rules/universal-rules.md +194 -194
- package/augment-extensions/domain-rules/mcp/rules/vector-based-mcp.md +625 -625
- package/augment-extensions/domain-rules/security/README.md +41 -41
- package/augment-extensions/domain-rules/security/module.json +28 -28
- package/augment-extensions/domain-rules/security/rules/authentication-security.md +361 -361
- package/augment-extensions/domain-rules/security/rules/encryption.md +208 -208
- package/augment-extensions/domain-rules/security/rules/input-validation.md +294 -294
- package/augment-extensions/domain-rules/security/rules/owasp-top-10.md +339 -339
- package/augment-extensions/domain-rules/security/rules/secure-coding.md +293 -293
- package/augment-extensions/domain-rules/security/rules/web-security.md +268 -268
- package/augment-extensions/domain-rules/seo-sales-marketing/ANNOUNCEMENT.md +143 -0
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/README.md +140 -136
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/SCHEMA-VALIDATION-REPORT.md +216 -216
- package/augment-extensions/domain-rules/seo-sales-marketing/TEST-VALIDATION.md +129 -0
- package/augment-extensions/domain-rules/seo-sales-marketing/USAGE-GUIDES.md +254 -0
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/brand-kit-example.yaml +292 -292
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/campaign-brief-example.yaml +389 -389
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/content-calendar-example.yaml +643 -643
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/email-newsletter-example.md +376 -376
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/landing-page-example.md +934 -934
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/ppc-ad-copy-example.md +301 -301
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/seo-blog-post-example.md +347 -347
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/social-media-campaign-example.md +606 -606
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/module.json +50 -50
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/affiliate-influencer-marketing.md +593 -593
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/asset-management.md +418 -418
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/brand-consistency.md +210 -210
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/content-marketing.md +337 -337
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/conversion-optimization.md +455 -455
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/direct-sales.md +499 -499
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/email-marketing.md +439 -439
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/legal-compliance.md +227 -227
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/ppc-advertising.md +569 -569
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/seo-optimization.md +470 -470
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/social-media-marketing.md +414 -414
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/universal-marketing.md +177 -177
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/asset-inventory.schema.json +247 -247
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/brand-kit.schema.json +326 -326
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/campaign-brief.schema.json +342 -342
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/color-palette.schema.json +223 -223
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/content-template.schema.json +383 -383
- package/augment-extensions/domain-rules/wordpress/README.md +163 -163
- package/augment-extensions/domain-rules/wordpress/module.json +32 -32
- package/augment-extensions/domain-rules/wordpress/rules/coding-standards.md +617 -617
- package/augment-extensions/domain-rules/wordpress/rules/directory-structure.md +270 -270
- package/augment-extensions/domain-rules/wordpress/rules/file-patterns.md +423 -423
- package/augment-extensions/domain-rules/wordpress/rules/gutenberg-blocks.md +493 -493
- package/augment-extensions/domain-rules/wordpress/rules/performance.md +568 -568
- package/augment-extensions/domain-rules/wordpress/rules/plugin-development.md +510 -510
- package/augment-extensions/domain-rules/wordpress/rules/project-detection.md +251 -251
- package/augment-extensions/domain-rules/wordpress/rules/rest-api.md +501 -501
- package/augment-extensions/domain-rules/wordpress/rules/security.md +564 -564
- package/augment-extensions/domain-rules/wordpress/rules/theme-development.md +388 -388
- package/augment-extensions/domain-rules/wordpress/rules/woocommerce.md +441 -441
- package/augment-extensions/domain-rules/wordpress-plugin/README.md +139 -139
- package/augment-extensions/domain-rules/wordpress-plugin/examples/ajax-plugin.md +1599 -1599
- package/augment-extensions/domain-rules/wordpress-plugin/examples/custom-post-type-plugin.md +1727 -1727
- package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block-plugin.md +428 -428
- package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block.md +422 -422
- package/augment-extensions/domain-rules/wordpress-plugin/examples/mvc-plugin.md +1623 -1623
- package/augment-extensions/domain-rules/wordpress-plugin/examples/object-oriented-plugin.md +1343 -1343
- package/augment-extensions/domain-rules/wordpress-plugin/examples/rest-endpoint.md +734 -734
- package/augment-extensions/domain-rules/wordpress-plugin/examples/settings-page-plugin.md +1350 -1350
- package/augment-extensions/domain-rules/wordpress-plugin/examples/simple-procedural-plugin.md +503 -503
- package/augment-extensions/domain-rules/wordpress-plugin/examples/singleton-plugin.md +971 -971
- package/augment-extensions/domain-rules/wordpress-plugin/module.json +53 -53
- package/augment-extensions/domain-rules/wordpress-plugin/rules/activation-hooks.md +770 -770
- package/augment-extensions/domain-rules/wordpress-plugin/rules/admin-interface.md +874 -874
- package/augment-extensions/domain-rules/wordpress-plugin/rules/ajax-handlers.md +629 -629
- package/augment-extensions/domain-rules/wordpress-plugin/rules/asset-management.md +559 -559
- package/augment-extensions/domain-rules/wordpress-plugin/rules/context-providers.md +709 -709
- package/augment-extensions/domain-rules/wordpress-plugin/rules/cron-jobs.md +736 -736
- package/augment-extensions/domain-rules/wordpress-plugin/rules/database-management.md +1057 -1057
- package/augment-extensions/domain-rules/wordpress-plugin/rules/documentation-standards.md +463 -463
- package/augment-extensions/domain-rules/wordpress-plugin/rules/frontend-functionality.md +478 -478
- package/augment-extensions/domain-rules/wordpress-plugin/rules/gutenberg-blocks.md +818 -818
- package/augment-extensions/domain-rules/wordpress-plugin/rules/internationalization.md +416 -416
- package/augment-extensions/domain-rules/wordpress-plugin/rules/migration.md +667 -667
- package/augment-extensions/domain-rules/wordpress-plugin/rules/performance-optimization.md +878 -878
- package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-architecture.md +693 -693
- package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-structure.md +352 -352
- package/augment-extensions/domain-rules/wordpress-plugin/rules/rest-api.md +818 -818
- package/augment-extensions/domain-rules/wordpress-plugin/rules/scaffolding-workflow.md +624 -624
- package/augment-extensions/domain-rules/wordpress-plugin/rules/security-best-practices.md +866 -866
- package/augment-extensions/domain-rules/wordpress-plugin/rules/testing-patterns.md +1165 -1165
- package/augment-extensions/domain-rules/wordpress-plugin/rules/testing.md +414 -414
- package/augment-extensions/domain-rules/wordpress-plugin/rules/vscode-integration.md +751 -751
- package/augment-extensions/domain-rules/wordpress-plugin/rules/woocommerce-integration.md +949 -949
- package/augment-extensions/domain-rules/wordpress-plugin/rules/wordpress-org-submission.md +458 -458
- package/augment-extensions/examples/design-patterns/README.md +37 -37
- package/augment-extensions/examples/design-patterns/examples/behavioral-patterns.md +370 -370
- package/augment-extensions/examples/design-patterns/examples/creational-patterns.md +250 -250
- package/augment-extensions/examples/design-patterns/examples/structural-patterns.md +264 -264
- package/augment-extensions/examples/design-patterns/module.json +27 -27
- package/augment-extensions/examples/gutenberg-block-plugin/README.md +101 -101
- package/augment-extensions/examples/gutenberg-block-plugin/examples/testimonial-block.md +428 -428
- package/augment-extensions/examples/gutenberg-block-plugin/module.json +40 -40
- package/augment-extensions/examples/rest-api-plugin/README.md +98 -98
- package/augment-extensions/examples/rest-api-plugin/examples/task-manager-api.md +1299 -1299
- package/augment-extensions/examples/rest-api-plugin/module.json +40 -40
- package/augment-extensions/examples/woocommerce-extension/README.md +98 -98
- package/augment-extensions/examples/woocommerce-extension/examples/product-customizer.md +763 -763
- package/augment-extensions/examples/woocommerce-extension/module.json +40 -40
- package/augment-extensions/workflows/beads/README.md +135 -135
- package/augment-extensions/workflows/beads/examples/complete-workflow-example.md +278 -278
- package/augment-extensions/workflows/beads/module.json +55 -55
- package/augment-extensions/workflows/beads/rules/best-practices.md +398 -398
- package/augment-extensions/workflows/beads/rules/file-format.md +327 -327
- package/augment-extensions/workflows/beads/rules/manual-setup.md +315 -315
- package/augment-extensions/workflows/beads/rules/workflow.md +326 -326
- package/augment-extensions/workflows/beads-integration/IMPLEMENTATION-STATUS.md +145 -145
- package/augment-extensions/workflows/beads-integration/README.md +143 -143
- package/augment-extensions/workflows/beads-integration/config/defaults.json +32 -32
- package/augment-extensions/workflows/beads-integration/config/schema.json +140 -140
- package/augment-extensions/workflows/beads-integration/examples/basic-task-generation.md +293 -293
- package/augment-extensions/workflows/beads-integration/module.json +75 -75
- package/augment-extensions/workflows/beads-integration/rules/core-rules.md +219 -219
- package/augment-extensions/workflows/beads-integration/rules/effectiveness-standards.md +256 -256
- package/augment-extensions/workflows/beads-integration/rules/task-generation.md +607 -607
- package/augment-extensions/workflows/database/README.md +195 -195
- package/augment-extensions/workflows/database/ai-prompt-testing.md +295 -295
- package/augment-extensions/workflows/database/examples/migration-example.md +498 -498
- package/augment-extensions/workflows/database/examples/optimization-example.md +496 -496
- package/augment-extensions/workflows/database/examples/schema-design-example.md +444 -444
- package/augment-extensions/workflows/database/module.json +42 -42
- package/augment-extensions/workflows/database/rules/data-migration.md +249 -249
- package/augment-extensions/workflows/database/rules/documentation-standards.md +339 -339
- package/augment-extensions/workflows/database/rules/migration-workflow.md +352 -352
- package/augment-extensions/workflows/database/rules/optimization-workflow.md +435 -435
- package/augment-extensions/workflows/database/rules/schema-design-workflow.md +535 -535
- package/augment-extensions/workflows/database/rules/testing-patterns.md +305 -305
- package/augment-extensions/workflows/database/rules/workflow.md +458 -458
- package/augment-extensions/workflows/wordpress-plugin/README.md +232 -232
- package/augment-extensions/workflows/wordpress-plugin/ai-prompts.md +839 -839
- package/augment-extensions/workflows/wordpress-plugin/bead-decomposition-patterns.md +854 -854
- package/augment-extensions/workflows/wordpress-plugin/examples/complete-plugin-example.md +540 -540
- package/augment-extensions/workflows/wordpress-plugin/examples/custom-post-type-example.md +1083 -1083
- package/augment-extensions/workflows/wordpress-plugin/examples/feature-addition-workflow.md +669 -669
- package/augment-extensions/workflows/wordpress-plugin/examples/plugin-creation-workflow.md +597 -597
- package/augment-extensions/workflows/wordpress-plugin/examples/secure-form-handler-example.md +925 -925
- package/augment-extensions/workflows/wordpress-plugin/examples/security-audit-workflow.md +752 -752
- package/augment-extensions/workflows/wordpress-plugin/examples/wordpress-org-submission-workflow.md +773 -773
- package/augment-extensions/workflows/wordpress-plugin/module.json +49 -49
- package/augment-extensions/workflows/wordpress-plugin/rules/best-practices.md +942 -942
- package/augment-extensions/workflows/wordpress-plugin/rules/development-workflow.md +702 -702
- package/augment-extensions/workflows/wordpress-plugin/rules/submission-workflow.md +728 -728
- package/augment-extensions/workflows/wordpress-plugin/rules/testing-workflow.md +775 -775
- package/augment-extensions/writing-standards/screenplay/README.md +339 -300
- package/augment-extensions/writing-standards/screenplay/_templates/README.md +121 -121
- package/augment-extensions/writing-standards/screenplay/_templates/genre-template.md +153 -153
- package/augment-extensions/writing-standards/screenplay/_templates/style-template.md +243 -243
- package/augment-extensions/writing-standards/screenplay/_templates/theme-template.md +213 -213
- package/augment-extensions/writing-standards/screenplay/examples/aaa-hollywood-scene.fountain +164 -164
- package/augment-extensions/writing-standards/screenplay/examples/beat-sheet-example.yaml +95 -95
- package/augment-extensions/writing-standards/screenplay/examples/character-profile-example.yaml +116 -116
- package/augment-extensions/writing-standards/screenplay/examples/commercial-30sec.fountain +151 -151
- package/augment-extensions/writing-standards/screenplay/examples/independent-monologue.fountain +67 -67
- package/augment-extensions/writing-standards/screenplay/examples/news-segment.fountain +142 -142
- package/augment-extensions/writing-standards/screenplay/examples/plot-outline-example.yaml +184 -184
- package/augment-extensions/writing-standards/screenplay/examples/tv-episode-teaser.fountain +204 -204
- package/augment-extensions/writing-standards/screenplay/genres/README.md +181 -181
- package/augment-extensions/writing-standards/screenplay/genres/examples/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/genres/module.json +70 -70
- package/augment-extensions/writing-standards/screenplay/genres/rules/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/genres/rules/action.md +399 -399
- package/augment-extensions/writing-standards/screenplay/genres/rules/adventure.md +407 -407
- package/augment-extensions/writing-standards/screenplay/genres/rules/animation.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/biographical.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/comedy.md +401 -401
- package/augment-extensions/writing-standards/screenplay/genres/rules/documentary.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/drama.md +409 -409
- package/augment-extensions/writing-standards/screenplay/genres/rules/fantasy.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/historical.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/horror.md +268 -268
- package/augment-extensions/writing-standards/screenplay/genres/rules/musical.md +294 -294
- package/augment-extensions/writing-standards/screenplay/genres/rules/mystery.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/noir.md +294 -294
- package/augment-extensions/writing-standards/screenplay/genres/rules/romance.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/sci-fi.md +289 -289
- package/augment-extensions/writing-standards/screenplay/genres/rules/superhero.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/thriller.md +294 -294
- package/augment-extensions/writing-standards/screenplay/genres/rules/western.md +293 -293
- package/augment-extensions/writing-standards/screenplay/module.json +124 -124
- package/augment-extensions/writing-standards/screenplay/rules/aaa-hollywood-films.md +339 -339
- package/augment-extensions/writing-standards/screenplay/rules/ai-integration-testing.md +329 -329
- package/augment-extensions/writing-standards/screenplay/rules/character-development.md +169 -169
- package/augment-extensions/writing-standards/screenplay/rules/commercials.md +437 -437
- package/augment-extensions/writing-standards/screenplay/rules/dialogue-writing.md +263 -263
- package/augment-extensions/writing-standards/screenplay/rules/diversity-inclusion.md +261 -261
- package/augment-extensions/writing-standards/screenplay/rules/examples-guide.md +315 -315
- package/augment-extensions/writing-standards/screenplay/rules/file-organization.md +213 -0
- package/augment-extensions/writing-standards/screenplay/rules/formatting-validation.md +413 -413
- package/augment-extensions/writing-standards/screenplay/rules/fountain-format.md +372 -372
- package/augment-extensions/writing-standards/screenplay/rules/independent-films.md +374 -374
- package/augment-extensions/writing-standards/screenplay/rules/live-tv-productions.md +443 -443
- package/augment-extensions/writing-standards/screenplay/rules/narrative-structures.md +207 -207
- package/augment-extensions/writing-standards/screenplay/rules/news-broadcasts.md +444 -444
- package/augment-extensions/writing-standards/screenplay/rules/pacing-timing.md +331 -331
- package/augment-extensions/writing-standards/screenplay/rules/quality-review-checklist.md +334 -334
- package/augment-extensions/writing-standards/screenplay/rules/quick-reference.md +299 -299
- package/augment-extensions/writing-standards/screenplay/rules/screen-continuity.md +263 -263
- package/augment-extensions/writing-standards/screenplay/rules/streaming-content.md +412 -412
- package/augment-extensions/writing-standards/screenplay/rules/trope-management.md +370 -370
- package/augment-extensions/writing-standards/screenplay/rules/tv-series.md +374 -374
- package/augment-extensions/writing-standards/screenplay/rules/universal-formatting.md +339 -339
- package/augment-extensions/writing-standards/screenplay/rules/vscode-integration.md +277 -277
- package/augment-extensions/writing-standards/screenplay/rules/web-content.md +393 -393
- package/augment-extensions/writing-standards/screenplay/schemas/beat-sheet.json +332 -332
- package/augment-extensions/writing-standards/screenplay/schemas/character-profile.json +247 -247
- package/augment-extensions/writing-standards/screenplay/schemas/feature-selection.json +200 -200
- package/augment-extensions/writing-standards/screenplay/schemas/plot-outline.json +233 -233
- package/augment-extensions/writing-standards/screenplay/schemas/screenplay-config.json +245 -245
- package/augment-extensions/writing-standards/screenplay/schemas/trope-inventory.json +221 -221
- package/augment-extensions/writing-standards/screenplay/styles/README.md +159 -159
- package/augment-extensions/writing-standards/screenplay/styles/examples/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/styles/examples/style-applications.md +1449 -1449
- package/augment-extensions/writing-standards/screenplay/styles/module.json +64 -64
- package/augment-extensions/writing-standards/screenplay/styles/rules/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/styles/rules/dialogue-centric.md +520 -520
- package/augment-extensions/writing-standards/screenplay/styles/rules/ensemble.md +499 -499
- package/augment-extensions/writing-standards/screenplay/styles/rules/epic.md +497 -497
- package/augment-extensions/writing-standards/screenplay/styles/rules/experimental.md +492 -492
- package/augment-extensions/writing-standards/screenplay/styles/rules/flashback.md +509 -509
- package/augment-extensions/writing-standards/screenplay/styles/rules/linear.md +490 -490
- package/augment-extensions/writing-standards/screenplay/styles/rules/minimalist.md +499 -499
- package/augment-extensions/writing-standards/screenplay/styles/rules/non-linear.md +501 -501
- package/augment-extensions/writing-standards/screenplay/styles/rules/poetic.md +499 -499
- package/augment-extensions/writing-standards/screenplay/styles/rules/realistic.md +498 -498
- package/augment-extensions/writing-standards/screenplay/styles/rules/satirical.md +499 -499
- package/augment-extensions/writing-standards/screenplay/styles/rules/surreal.md +508 -508
- package/augment-extensions/writing-standards/screenplay/styles/rules/voice-over.md +500 -500
- package/augment-extensions/writing-standards/screenplay/themes/README.md +158 -158
- package/augment-extensions/writing-standards/screenplay/themes/examples/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/themes/examples/common-mistakes-and-fixes.md +643 -643
- package/augment-extensions/writing-standards/screenplay/themes/examples/complete-scene-example.md +311 -311
- package/augment-extensions/writing-standards/screenplay/themes/examples/individual-theme-examples.md +562 -562
- package/augment-extensions/writing-standards/screenplay/themes/examples/multi-theme-weaving.md +538 -538
- package/augment-extensions/writing-standards/screenplay/themes/examples/theme-application-guide.md +432 -432
- package/augment-extensions/writing-standards/screenplay/themes/examples/theme-integration-across-acts.md +637 -637
- package/augment-extensions/writing-standards/screenplay/themes/module.json +66 -66
- package/augment-extensions/writing-standards/screenplay/themes/rules/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/themes/rules/ambition.md +458 -458
- package/augment-extensions/writing-standards/screenplay/themes/rules/betrayal.md +490 -490
- package/augment-extensions/writing-standards/screenplay/themes/rules/environment.md +458 -458
- package/augment-extensions/writing-standards/screenplay/themes/rules/fate.md +459 -459
- package/augment-extensions/writing-standards/screenplay/themes/rules/friendship.md +491 -491
- package/augment-extensions/writing-standards/screenplay/themes/rules/growth.md +491 -491
- package/augment-extensions/writing-standards/screenplay/themes/rules/identity.md +490 -490
- package/augment-extensions/writing-standards/screenplay/themes/rules/isolation.md +464 -464
- package/augment-extensions/writing-standards/screenplay/themes/rules/justice.md +461 -461
- package/augment-extensions/writing-standards/screenplay/themes/rules/love.md +489 -489
- package/augment-extensions/writing-standards/screenplay/themes/rules/power.md +494 -494
- package/augment-extensions/writing-standards/screenplay/themes/rules/redemption.md +483 -483
- package/augment-extensions/writing-standards/screenplay/themes/rules/revenge.md +489 -489
- package/augment-extensions/writing-standards/screenplay/themes/rules/survival.md +496 -496
- package/augment-extensions/writing-standards/screenplay/themes/rules/technology.md +463 -463
- package/augment-extensions/writing-standards/screenplay/utils/__tests__/file-organization.test.ts +169 -0
- package/augment-extensions/writing-standards/screenplay/utils/file-organization.ts +165 -0
- package/cli/MODULES.md +302 -302
- package/cli/dist/cli.js +109 -22
- package/cli/dist/cli.js.map +1 -1
- package/cli/dist/commands/gui.d.ts.map +1 -1
- package/cli/dist/commands/gui.js +54 -6
- package/cli/dist/commands/gui.js.map +1 -1
- package/cli/dist/commands/init.d.ts.map +1 -1
- package/cli/dist/commands/init.js +76 -23
- package/cli/dist/commands/init.js.map +1 -1
- package/cli/dist/commands/self-remove.d.ts.map +1 -1
- package/cli/dist/commands/self-remove.js +48 -74
- package/cli/dist/commands/self-remove.js.map +1 -1
- package/cli/dist/commands/show.d.ts +11 -0
- package/cli/dist/commands/show.d.ts.map +1 -1
- package/cli/dist/commands/show.js +120 -0
- package/cli/dist/commands/show.js.map +1 -1
- package/cli/dist/commands/showCompleted.d.ts +21 -0
- package/cli/dist/commands/showCompleted.d.ts.map +1 -0
- package/cli/dist/commands/showCompleted.js +225 -0
- package/cli/dist/commands/showCompleted.js.map +1 -0
- package/cli/dist/commands/skill.js +88 -88
- package/cli/dist/commands/update.d.ts +2 -0
- package/cli/dist/commands/update.d.ts.map +1 -1
- package/cli/dist/commands/update.js +67 -1
- package/cli/dist/commands/update.js.map +1 -1
- package/cli/dist/utils/beadsCompletedChecker.d.ts +72 -0
- package/cli/dist/utils/beadsCompletedChecker.d.ts.map +1 -0
- package/cli/dist/utils/beadsCompletedChecker.js +198 -0
- package/cli/dist/utils/beadsCompletedChecker.js.map +1 -0
- package/cli/dist/utils/catalog-sync.js +13 -13
- package/cli/dist/utils/extractCommandHelp.d.ts +51 -0
- package/cli/dist/utils/extractCommandHelp.d.ts.map +1 -0
- package/cli/dist/utils/extractCommandHelp.js +250 -0
- package/cli/dist/utils/extractCommandHelp.js.map +1 -0
- package/cli/dist/utils/install-rules.js +55 -55
- package/cli/dist/utils/mcp-integration.js +44 -44
- package/cli/dist/utils/rule-install-hooks.js +8 -8
- package/modules.md +667 -630
- package/package.json +85 -85
|
@@ -1,290 +1,290 @@
|
|
|
1
|
-
# API Error Handling
|
|
2
|
-
|
|
3
|
-
Best practices for handling and communicating errors in APIs.
|
|
4
|
-
|
|
5
|
-
## Error Response Structure
|
|
6
|
-
|
|
7
|
-
Use consistent error response format.
|
|
8
|
-
|
|
9
|
-
```json
|
|
10
|
-
// Good - Comprehensive error response
|
|
11
|
-
{
|
|
12
|
-
"error": {
|
|
13
|
-
"code": "VALIDATION_ERROR",
|
|
14
|
-
"message": "Validation failed for one or more fields",
|
|
15
|
-
"details": [
|
|
16
|
-
{
|
|
17
|
-
"field": "email",
|
|
18
|
-
"message": "Email is required",
|
|
19
|
-
"code": "REQUIRED_FIELD"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"field": "age",
|
|
23
|
-
"message": "Age must be at least 18",
|
|
24
|
-
"code": "MIN_VALUE",
|
|
25
|
-
"value": 15,
|
|
26
|
-
"constraint": 18
|
|
27
|
-
}
|
|
28
|
-
],
|
|
29
|
-
"timestamp": "2024-01-21T10:00:00Z",
|
|
30
|
-
"path": "/api/v1/users",
|
|
31
|
-
"requestId": "req_abc123"
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// Good - Simple error
|
|
36
|
-
{
|
|
37
|
-
"error": {
|
|
38
|
-
"code": "NOT_FOUND",
|
|
39
|
-
"message": "User not found",
|
|
40
|
-
"timestamp": "2024-01-21T10:00:00Z",
|
|
41
|
-
"requestId": "req_abc123"
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## HTTP Status Codes
|
|
47
|
-
|
|
48
|
-
Use appropriate status codes for different error types.
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
# Client Errors (4xx)
|
|
52
|
-
400 Bad Request - Malformed request syntax
|
|
53
|
-
401 Unauthorized - Authentication required or failed
|
|
54
|
-
403 Forbidden - Authenticated but not authorized
|
|
55
|
-
404 Not Found - Resource doesn't exist
|
|
56
|
-
405 Method Not Allowed - HTTP method not supported
|
|
57
|
-
409 Conflict - Resource conflict (e.g., duplicate)
|
|
58
|
-
410 Gone - Resource permanently deleted
|
|
59
|
-
422 Unprocessable Entity - Validation errors
|
|
60
|
-
429 Too Many Requests - Rate limit exceeded
|
|
61
|
-
|
|
62
|
-
# Server Errors (5xx)
|
|
63
|
-
500 Internal Server Error - Unexpected server error
|
|
64
|
-
502 Bad Gateway - Invalid response from upstream
|
|
65
|
-
503 Service Unavailable - Server temporarily unavailable
|
|
66
|
-
504 Gateway Timeout - Upstream server timeout
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
## Error Codes
|
|
70
|
-
|
|
71
|
-
Define machine-readable error codes.
|
|
72
|
-
|
|
73
|
-
```typescript
|
|
74
|
-
// Good - Enum of error codes
|
|
75
|
-
enum ErrorCode {
|
|
76
|
-
// Validation errors (4xx)
|
|
77
|
-
VALIDATION_ERROR = 'VALIDATION_ERROR',
|
|
78
|
-
REQUIRED_FIELD = 'REQUIRED_FIELD',
|
|
79
|
-
INVALID_FORMAT = 'INVALID_FORMAT',
|
|
80
|
-
MIN_LENGTH = 'MIN_LENGTH',
|
|
81
|
-
MAX_LENGTH = 'MAX_LENGTH',
|
|
82
|
-
|
|
83
|
-
// Authentication errors (401)
|
|
84
|
-
INVALID_CREDENTIALS = 'INVALID_CREDENTIALS',
|
|
85
|
-
TOKEN_EXPIRED = 'TOKEN_EXPIRED',
|
|
86
|
-
TOKEN_INVALID = 'TOKEN_INVALID',
|
|
87
|
-
|
|
88
|
-
// Authorization errors (403)
|
|
89
|
-
INSUFFICIENT_PERMISSIONS = 'INSUFFICIENT_PERMISSIONS',
|
|
90
|
-
RESOURCE_FORBIDDEN = 'RESOURCE_FORBIDDEN',
|
|
91
|
-
|
|
92
|
-
// Not found errors (404)
|
|
93
|
-
RESOURCE_NOT_FOUND = 'RESOURCE_NOT_FOUND',
|
|
94
|
-
ENDPOINT_NOT_FOUND = 'ENDPOINT_NOT_FOUND',
|
|
95
|
-
|
|
96
|
-
// Conflict errors (409)
|
|
97
|
-
DUPLICATE_RESOURCE = 'DUPLICATE_RESOURCE',
|
|
98
|
-
RESOURCE_CONFLICT = 'RESOURCE_CONFLICT',
|
|
99
|
-
|
|
100
|
-
// Rate limiting (429)
|
|
101
|
-
RATE_LIMIT_EXCEEDED = 'RATE_LIMIT_EXCEEDED',
|
|
102
|
-
|
|
103
|
-
// Server errors (5xx)
|
|
104
|
-
INTERNAL_ERROR = 'INTERNAL_ERROR',
|
|
105
|
-
DATABASE_ERROR = 'DATABASE_ERROR',
|
|
106
|
-
EXTERNAL_SERVICE_ERROR = 'EXTERNAL_SERVICE_ERROR'
|
|
107
|
-
}
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
## Validation Errors
|
|
111
|
-
|
|
112
|
-
Provide detailed validation error information.
|
|
113
|
-
|
|
114
|
-
```json
|
|
115
|
-
// Good - Field-level validation errors
|
|
116
|
-
{
|
|
117
|
-
"error": {
|
|
118
|
-
"code": "VALIDATION_ERROR",
|
|
119
|
-
"message": "Validation failed",
|
|
120
|
-
"details": [
|
|
121
|
-
{
|
|
122
|
-
"field": "email",
|
|
123
|
-
"message": "Email must be a valid email address",
|
|
124
|
-
"code": "INVALID_FORMAT",
|
|
125
|
-
"value": "not-an-email"
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
"field": "password",
|
|
129
|
-
"message": "Password must be at least 8 characters",
|
|
130
|
-
"code": "MIN_LENGTH",
|
|
131
|
-
"value": "***",
|
|
132
|
-
"constraint": 8
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
"field": "age",
|
|
136
|
-
"message": "Age must be between 18 and 120",
|
|
137
|
-
"code": "OUT_OF_RANGE",
|
|
138
|
-
"value": 150,
|
|
139
|
-
"min": 18,
|
|
140
|
-
"max": 120
|
|
141
|
-
}
|
|
142
|
-
]
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
## Authentication Errors
|
|
148
|
-
|
|
149
|
-
Handle authentication failures clearly.
|
|
150
|
-
|
|
151
|
-
```json
|
|
152
|
-
// 401 Unauthorized - Invalid credentials
|
|
153
|
-
{
|
|
154
|
-
"error": {
|
|
155
|
-
"code": "INVALID_CREDENTIALS",
|
|
156
|
-
"message": "Invalid email or password",
|
|
157
|
-
"timestamp": "2024-01-21T10:00:00Z"
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// 401 Unauthorized - Token expired
|
|
162
|
-
{
|
|
163
|
-
"error": {
|
|
164
|
-
"code": "TOKEN_EXPIRED",
|
|
165
|
-
"message": "Access token has expired",
|
|
166
|
-
"expiredAt": "2024-01-21T09:00:00Z",
|
|
167
|
-
"hint": "Use refresh token to obtain a new access token"
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
// 401 Unauthorized - Invalid token
|
|
172
|
-
{
|
|
173
|
-
"error": {
|
|
174
|
-
"code": "TOKEN_INVALID",
|
|
175
|
-
"message": "Invalid or malformed access token"
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
## Authorization Errors
|
|
181
|
-
|
|
182
|
-
Communicate permission issues.
|
|
183
|
-
|
|
184
|
-
```json
|
|
185
|
-
// 403 Forbidden - Insufficient permissions
|
|
186
|
-
{
|
|
187
|
-
"error": {
|
|
188
|
-
"code": "INSUFFICIENT_PERMISSIONS",
|
|
189
|
-
"message": "You don't have permission to perform this action",
|
|
190
|
-
"requiredPermission": "write:users",
|
|
191
|
-
"userPermissions": ["read:users"]
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
// 403 Forbidden - Resource forbidden
|
|
196
|
-
{
|
|
197
|
-
"error": {
|
|
198
|
-
"code": "RESOURCE_FORBIDDEN",
|
|
199
|
-
"message": "You don't have access to this resource"
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
## Not Found Errors
|
|
205
|
-
|
|
206
|
-
Distinguish between different types of "not found".
|
|
207
|
-
|
|
208
|
-
```json
|
|
209
|
-
// 404 Not Found - Resource
|
|
210
|
-
{
|
|
211
|
-
"error": {
|
|
212
|
-
"code": "RESOURCE_NOT_FOUND",
|
|
213
|
-
"message": "User not found",
|
|
214
|
-
"resourceType": "User",
|
|
215
|
-
"resourceId": "123"
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
// 404 Not Found - Endpoint
|
|
220
|
-
{
|
|
221
|
-
"error": {
|
|
222
|
-
"code": "ENDPOINT_NOT_FOUND",
|
|
223
|
-
"message": "The requested endpoint does not exist",
|
|
224
|
-
"path": "/api/v1/invalid-endpoint"
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
## Rate Limiting Errors
|
|
230
|
-
|
|
231
|
-
Provide retry information.
|
|
232
|
-
|
|
233
|
-
```json
|
|
234
|
-
// 429 Too Many Requests
|
|
235
|
-
{
|
|
236
|
-
"error": {
|
|
237
|
-
"code": "RATE_LIMIT_EXCEEDED",
|
|
238
|
-
"message": "Too many requests. Please try again later.",
|
|
239
|
-
"limit": 1000,
|
|
240
|
-
"remaining": 0,
|
|
241
|
-
"resetAt": "2024-01-21T11:00:00Z",
|
|
242
|
-
"retryAfter": 3600
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
## Server Errors
|
|
248
|
-
|
|
249
|
-
Handle internal errors gracefully.
|
|
250
|
-
|
|
251
|
-
```json
|
|
252
|
-
// 500 Internal Server Error
|
|
253
|
-
{
|
|
254
|
-
"error": {
|
|
255
|
-
"code": "INTERNAL_ERROR",
|
|
256
|
-
"message": "An unexpected error occurred. Please try again later.",
|
|
257
|
-
"requestId": "req_abc123",
|
|
258
|
-
"timestamp": "2024-01-21T10:00:00Z"
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
// Don't expose internal details in production
|
|
263
|
-
// Bad - Exposing stack trace
|
|
264
|
-
{
|
|
265
|
-
"error": {
|
|
266
|
-
"message": "Database connection failed",
|
|
267
|
-
"stack": "Error: connect ECONNREFUSED...", // ❌ Don't expose
|
|
268
|
-
"query": "SELECT * FROM users WHERE..." // ❌ Don't expose
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
## Best Practices
|
|
274
|
-
|
|
275
|
-
1. **Use consistent format** - Same structure for all errors
|
|
276
|
-
2. **Use proper status codes** - Match HTTP semantics
|
|
277
|
-
3. **Provide error codes** - Machine-readable codes
|
|
278
|
-
4. **Include helpful messages** - Human-readable descriptions
|
|
279
|
-
5. **Field-level errors** - For validation failures
|
|
280
|
-
6. **Include request ID** - For debugging and support
|
|
281
|
-
7. **Include timestamp** - When error occurred
|
|
282
|
-
8. **Don't expose internals** - Hide stack traces in production
|
|
283
|
-
9. **Log errors** - Server-side logging for debugging
|
|
284
|
-
10. **Document errors** - List possible error codes
|
|
285
|
-
11. **Localize messages** - Support multiple languages
|
|
286
|
-
12. **Provide hints** - Suggest how to fix the error
|
|
287
|
-
13. **Rate limit info** - Include retry information
|
|
288
|
-
14. **Validate early** - Fail fast on invalid input
|
|
289
|
-
15. **Monitor errors** - Track error rates and types
|
|
290
|
-
|
|
1
|
+
# API Error Handling
|
|
2
|
+
|
|
3
|
+
Best practices for handling and communicating errors in APIs.
|
|
4
|
+
|
|
5
|
+
## Error Response Structure
|
|
6
|
+
|
|
7
|
+
Use consistent error response format.
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
// Good - Comprehensive error response
|
|
11
|
+
{
|
|
12
|
+
"error": {
|
|
13
|
+
"code": "VALIDATION_ERROR",
|
|
14
|
+
"message": "Validation failed for one or more fields",
|
|
15
|
+
"details": [
|
|
16
|
+
{
|
|
17
|
+
"field": "email",
|
|
18
|
+
"message": "Email is required",
|
|
19
|
+
"code": "REQUIRED_FIELD"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"field": "age",
|
|
23
|
+
"message": "Age must be at least 18",
|
|
24
|
+
"code": "MIN_VALUE",
|
|
25
|
+
"value": 15,
|
|
26
|
+
"constraint": 18
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"timestamp": "2024-01-21T10:00:00Z",
|
|
30
|
+
"path": "/api/v1/users",
|
|
31
|
+
"requestId": "req_abc123"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Good - Simple error
|
|
36
|
+
{
|
|
37
|
+
"error": {
|
|
38
|
+
"code": "NOT_FOUND",
|
|
39
|
+
"message": "User not found",
|
|
40
|
+
"timestamp": "2024-01-21T10:00:00Z",
|
|
41
|
+
"requestId": "req_abc123"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## HTTP Status Codes
|
|
47
|
+
|
|
48
|
+
Use appropriate status codes for different error types.
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
# Client Errors (4xx)
|
|
52
|
+
400 Bad Request - Malformed request syntax
|
|
53
|
+
401 Unauthorized - Authentication required or failed
|
|
54
|
+
403 Forbidden - Authenticated but not authorized
|
|
55
|
+
404 Not Found - Resource doesn't exist
|
|
56
|
+
405 Method Not Allowed - HTTP method not supported
|
|
57
|
+
409 Conflict - Resource conflict (e.g., duplicate)
|
|
58
|
+
410 Gone - Resource permanently deleted
|
|
59
|
+
422 Unprocessable Entity - Validation errors
|
|
60
|
+
429 Too Many Requests - Rate limit exceeded
|
|
61
|
+
|
|
62
|
+
# Server Errors (5xx)
|
|
63
|
+
500 Internal Server Error - Unexpected server error
|
|
64
|
+
502 Bad Gateway - Invalid response from upstream
|
|
65
|
+
503 Service Unavailable - Server temporarily unavailable
|
|
66
|
+
504 Gateway Timeout - Upstream server timeout
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Error Codes
|
|
70
|
+
|
|
71
|
+
Define machine-readable error codes.
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
// Good - Enum of error codes
|
|
75
|
+
enum ErrorCode {
|
|
76
|
+
// Validation errors (4xx)
|
|
77
|
+
VALIDATION_ERROR = 'VALIDATION_ERROR',
|
|
78
|
+
REQUIRED_FIELD = 'REQUIRED_FIELD',
|
|
79
|
+
INVALID_FORMAT = 'INVALID_FORMAT',
|
|
80
|
+
MIN_LENGTH = 'MIN_LENGTH',
|
|
81
|
+
MAX_LENGTH = 'MAX_LENGTH',
|
|
82
|
+
|
|
83
|
+
// Authentication errors (401)
|
|
84
|
+
INVALID_CREDENTIALS = 'INVALID_CREDENTIALS',
|
|
85
|
+
TOKEN_EXPIRED = 'TOKEN_EXPIRED',
|
|
86
|
+
TOKEN_INVALID = 'TOKEN_INVALID',
|
|
87
|
+
|
|
88
|
+
// Authorization errors (403)
|
|
89
|
+
INSUFFICIENT_PERMISSIONS = 'INSUFFICIENT_PERMISSIONS',
|
|
90
|
+
RESOURCE_FORBIDDEN = 'RESOURCE_FORBIDDEN',
|
|
91
|
+
|
|
92
|
+
// Not found errors (404)
|
|
93
|
+
RESOURCE_NOT_FOUND = 'RESOURCE_NOT_FOUND',
|
|
94
|
+
ENDPOINT_NOT_FOUND = 'ENDPOINT_NOT_FOUND',
|
|
95
|
+
|
|
96
|
+
// Conflict errors (409)
|
|
97
|
+
DUPLICATE_RESOURCE = 'DUPLICATE_RESOURCE',
|
|
98
|
+
RESOURCE_CONFLICT = 'RESOURCE_CONFLICT',
|
|
99
|
+
|
|
100
|
+
// Rate limiting (429)
|
|
101
|
+
RATE_LIMIT_EXCEEDED = 'RATE_LIMIT_EXCEEDED',
|
|
102
|
+
|
|
103
|
+
// Server errors (5xx)
|
|
104
|
+
INTERNAL_ERROR = 'INTERNAL_ERROR',
|
|
105
|
+
DATABASE_ERROR = 'DATABASE_ERROR',
|
|
106
|
+
EXTERNAL_SERVICE_ERROR = 'EXTERNAL_SERVICE_ERROR'
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Validation Errors
|
|
111
|
+
|
|
112
|
+
Provide detailed validation error information.
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
// Good - Field-level validation errors
|
|
116
|
+
{
|
|
117
|
+
"error": {
|
|
118
|
+
"code": "VALIDATION_ERROR",
|
|
119
|
+
"message": "Validation failed",
|
|
120
|
+
"details": [
|
|
121
|
+
{
|
|
122
|
+
"field": "email",
|
|
123
|
+
"message": "Email must be a valid email address",
|
|
124
|
+
"code": "INVALID_FORMAT",
|
|
125
|
+
"value": "not-an-email"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"field": "password",
|
|
129
|
+
"message": "Password must be at least 8 characters",
|
|
130
|
+
"code": "MIN_LENGTH",
|
|
131
|
+
"value": "***",
|
|
132
|
+
"constraint": 8
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"field": "age",
|
|
136
|
+
"message": "Age must be between 18 and 120",
|
|
137
|
+
"code": "OUT_OF_RANGE",
|
|
138
|
+
"value": 150,
|
|
139
|
+
"min": 18,
|
|
140
|
+
"max": 120
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Authentication Errors
|
|
148
|
+
|
|
149
|
+
Handle authentication failures clearly.
|
|
150
|
+
|
|
151
|
+
```json
|
|
152
|
+
// 401 Unauthorized - Invalid credentials
|
|
153
|
+
{
|
|
154
|
+
"error": {
|
|
155
|
+
"code": "INVALID_CREDENTIALS",
|
|
156
|
+
"message": "Invalid email or password",
|
|
157
|
+
"timestamp": "2024-01-21T10:00:00Z"
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// 401 Unauthorized - Token expired
|
|
162
|
+
{
|
|
163
|
+
"error": {
|
|
164
|
+
"code": "TOKEN_EXPIRED",
|
|
165
|
+
"message": "Access token has expired",
|
|
166
|
+
"expiredAt": "2024-01-21T09:00:00Z",
|
|
167
|
+
"hint": "Use refresh token to obtain a new access token"
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// 401 Unauthorized - Invalid token
|
|
172
|
+
{
|
|
173
|
+
"error": {
|
|
174
|
+
"code": "TOKEN_INVALID",
|
|
175
|
+
"message": "Invalid or malformed access token"
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Authorization Errors
|
|
181
|
+
|
|
182
|
+
Communicate permission issues.
|
|
183
|
+
|
|
184
|
+
```json
|
|
185
|
+
// 403 Forbidden - Insufficient permissions
|
|
186
|
+
{
|
|
187
|
+
"error": {
|
|
188
|
+
"code": "INSUFFICIENT_PERMISSIONS",
|
|
189
|
+
"message": "You don't have permission to perform this action",
|
|
190
|
+
"requiredPermission": "write:users",
|
|
191
|
+
"userPermissions": ["read:users"]
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// 403 Forbidden - Resource forbidden
|
|
196
|
+
{
|
|
197
|
+
"error": {
|
|
198
|
+
"code": "RESOURCE_FORBIDDEN",
|
|
199
|
+
"message": "You don't have access to this resource"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## Not Found Errors
|
|
205
|
+
|
|
206
|
+
Distinguish between different types of "not found".
|
|
207
|
+
|
|
208
|
+
```json
|
|
209
|
+
// 404 Not Found - Resource
|
|
210
|
+
{
|
|
211
|
+
"error": {
|
|
212
|
+
"code": "RESOURCE_NOT_FOUND",
|
|
213
|
+
"message": "User not found",
|
|
214
|
+
"resourceType": "User",
|
|
215
|
+
"resourceId": "123"
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// 404 Not Found - Endpoint
|
|
220
|
+
{
|
|
221
|
+
"error": {
|
|
222
|
+
"code": "ENDPOINT_NOT_FOUND",
|
|
223
|
+
"message": "The requested endpoint does not exist",
|
|
224
|
+
"path": "/api/v1/invalid-endpoint"
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Rate Limiting Errors
|
|
230
|
+
|
|
231
|
+
Provide retry information.
|
|
232
|
+
|
|
233
|
+
```json
|
|
234
|
+
// 429 Too Many Requests
|
|
235
|
+
{
|
|
236
|
+
"error": {
|
|
237
|
+
"code": "RATE_LIMIT_EXCEEDED",
|
|
238
|
+
"message": "Too many requests. Please try again later.",
|
|
239
|
+
"limit": 1000,
|
|
240
|
+
"remaining": 0,
|
|
241
|
+
"resetAt": "2024-01-21T11:00:00Z",
|
|
242
|
+
"retryAfter": 3600
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## Server Errors
|
|
248
|
+
|
|
249
|
+
Handle internal errors gracefully.
|
|
250
|
+
|
|
251
|
+
```json
|
|
252
|
+
// 500 Internal Server Error
|
|
253
|
+
{
|
|
254
|
+
"error": {
|
|
255
|
+
"code": "INTERNAL_ERROR",
|
|
256
|
+
"message": "An unexpected error occurred. Please try again later.",
|
|
257
|
+
"requestId": "req_abc123",
|
|
258
|
+
"timestamp": "2024-01-21T10:00:00Z"
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
// Don't expose internal details in production
|
|
263
|
+
// Bad - Exposing stack trace
|
|
264
|
+
{
|
|
265
|
+
"error": {
|
|
266
|
+
"message": "Database connection failed",
|
|
267
|
+
"stack": "Error: connect ECONNREFUSED...", // ❌ Don't expose
|
|
268
|
+
"query": "SELECT * FROM users WHERE..." // ❌ Don't expose
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Best Practices
|
|
274
|
+
|
|
275
|
+
1. **Use consistent format** - Same structure for all errors
|
|
276
|
+
2. **Use proper status codes** - Match HTTP semantics
|
|
277
|
+
3. **Provide error codes** - Machine-readable codes
|
|
278
|
+
4. **Include helpful messages** - Human-readable descriptions
|
|
279
|
+
5. **Field-level errors** - For validation failures
|
|
280
|
+
6. **Include request ID** - For debugging and support
|
|
281
|
+
7. **Include timestamp** - When error occurred
|
|
282
|
+
8. **Don't expose internals** - Hide stack traces in production
|
|
283
|
+
9. **Log errors** - Server-side logging for debugging
|
|
284
|
+
10. **Document errors** - List possible error codes
|
|
285
|
+
11. **Localize messages** - Support multiple languages
|
|
286
|
+
12. **Provide hints** - Suggest how to fix the error
|
|
287
|
+
13. **Rate limit info** - Include retry information
|
|
288
|
+
14. **Validate early** - Fail fast on invalid input
|
|
289
|
+
15. **Monitor errors** - Track error rates and types
|
|
290
|
+
|