================================================================================ BUILD REPORT - PROBLEMS AND WARNINGS ================================================================================ Repository: curtcox/hashbin.org Commit SHA: 2c5b12de1e97947a2ba245ea27314a3b1fde00b0 Generated: 2026-03-31 16:06:51 UTC Report URL: https://github.com/curtcox/hashbin.org/actions/runs/23807167207 This file contains all errors and warnings from the build report analysis. ================================================================================ =============================================================================== CODE QUALITY ISSUES =============================================================================== Summary: 13 error(s), 31 warning(s) Report: See build-reports/quality/index.html for details Details: /home/runner/work/hashbin.org/hashbin.org/src/api/auth.js:690:1 [warning] jsdoc/require-param-description: Missing JSDoc @param "request" description. /home/runner/work/hashbin.org/hashbin.org/src/api/auth.js:691:1 [warning] jsdoc/require-param-description: Missing JSDoc @param "env" description. /home/runner/work/hashbin.org/hashbin.org/src/api/auth.js:692:1 [warning] jsdoc/require-param-description: Missing JSDoc @param "keyId" description. /home/runner/work/hashbin.org/hashbin.org/src/api/content-deletion.js:258:11 [warning] no-unused-vars: 'disputeId' is assigned a value but never used. /home/runner/work/hashbin.org/hashbin.org/src/api/content-deletion.test.js:11:9 [warning] no-unused-vars: 'storage' is assigned a value but never used. /home/runner/work/hashbin.org/hashbin.org/src/api/disputes.js:199:65 [warning] no-unused-vars: 'userId' is assigned a value but never used. /home/runner/work/hashbin.org/hashbin.org/src/api/payments.js:586:57 [warning] no-unused-vars: 'env' is defined but never used. Allowed unused args must match /^_/u. /home/runner/work/hashbin.org/hashbin.org/src/api/payments.test.js:16:42 [warning] no-unused-vars: 'apiKey' is defined but never used. Allowed unused args must match /^_/u. /home/runner/work/hashbin.org/hashbin.org/src/api/payments.test.js:16:50 [warning] no-unused-vars: 'options' is defined but never used. Allowed unused args must match /^_/u. /home/runner/work/hashbin.org/hashbin.org/src/auth/utils.test.js:355:15 [warning] no-unused-vars: 'result' is assigned a value but never used. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/alert-store.js:66:17 [warning] no-unused-vars: 'key' is assigned a value but never used. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/content-metadata-rate-limit.test.js:417:13 [warning] no-unused-vars: 'now' is assigned a value but never used. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/content-metadata.js:8:7 [warning] no-unused-vars: 'MINIMUM_MTBR_MS' is assigned a value but never used. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/contest-record.js:11:15 [warning] no-unused-vars: 'request' is defined but never used. Allowed unused args must match /^_/u. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/message-thread.js:11:15 [warning] no-unused-vars: 'request' is defined but never used. Allowed unused args must match /^_/u. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/user-profile.js:760:1 [warning] jsdoc/require-param-description: Missing JSDoc @param "keyId" description. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/user-profile.js:761:1 [warning] jsdoc/require-param-description: Missing JSDoc @param "request" description. /home/runner/work/hashbin.org/hashbin.org/src/index.js:311:1 [warning] jsdoc/tag-lines: Expected only 0 line after block description /home/runner/work/hashbin.org/hashbin.org/src/index.js:558:34 [warning] no-unused-vars: 'env' is defined but never used. Allowed unused args must match /^_/u. /home/runner/work/hashbin.org/hashbin.org/src/index.js:685:62 [error] no-useless-escape: Unnecessary escape character: \/. /home/runner/work/hashbin.org/hashbin.org/src/index.js:764:47 [error] no-useless-escape: Unnecessary escape character: \/. /home/runner/work/hashbin.org/hashbin.org/src/index.js:771:46 [error] no-useless-escape: Unnecessary escape character: \/. /home/runner/work/hashbin.org/hashbin.org/src/index.js:779:46 [error] no-useless-escape: Unnecessary escape character: \/. /home/runner/work/hashbin.org/hashbin.org/src/index.js:789:54 [error] no-useless-escape: Unnecessary escape character: \/. /home/runner/work/hashbin.org/hashbin.org/src/index.js:794:53 [error] no-useless-escape: Unnecessary escape character: \/. /home/runner/work/hashbin.org/hashbin.org/src/index.js:812:48 [error] no-useless-escape: Unnecessary escape character: \/. /home/runner/work/hashbin.org/hashbin.org/src/index.js:817:48 [error] no-useless-escape: Unnecessary escape character: \/. /home/runner/work/hashbin.org/hashbin.org/src/index.js:822:48 [error] no-useless-escape: Unnecessary escape character: \/. /home/runner/work/hashbin.org/hashbin.org/src/index.js:827:48 [error] no-useless-escape: Unnecessary escape character: \/. /home/runner/work/hashbin.org/hashbin.org/src/index.js:832:46 [error] no-useless-escape: Unnecessary escape character: \/. /home/runner/work/hashbin.org/hashbin.org/src/index.js:862:52 [error] no-useless-escape: Unnecessary escape character: \/. /home/runner/work/hashbin.org/hashbin.org/src/index.js:897:56 [error] no-useless-escape: Unnecessary escape character: \/. /home/runner/work/hashbin.org/hashbin.org/src/index.js:963:10 [warning] no-unused-vars: 'handleRoot' is defined but never used. /home/runner/work/hashbin.org/hashbin.org/src/integration/content-lifecycle.test.js:6:32 [warning] no-unused-vars: 'beforeEach' is defined but never used. /home/runner/work/hashbin.org/hashbin.org/src/integration/content-lifecycle.test.js:37:27 [warning] security/detect-non-literal-regexp: Found non-literal argument to RegExp Constructor /home/runner/work/hashbin.org/hashbin.org/src/integration/content-lifecycle.test.js:95:13 [warning] no-unused-vars: 'id' is defined but never used. Allowed unused args must match /^_/u. /home/runner/work/hashbin.org/hashbin.org/src/integration/content-lifecycle.test.js:150:13 [warning] no-unused-vars: 'hash' is defined but never used. Allowed unused args must match /^_/u. /home/runner/work/hashbin.org/hashbin.org/src/services/content-deletion.js:8:1 [warning] jsdoc/tag-lines: Expected only 0 line after block description /home/runner/work/hashbin.org/hashbin.org/src/services/content-deletion.js:107:1 [warning] jsdoc/tag-lines: Expected only 0 line after block description /home/runner/work/hashbin.org/hashbin.org/src/services/content-deletion.test.js:6:32 [warning] no-unused-vars: 'beforeEach' is defined but never used. /home/runner/work/hashbin.org/hashbin.org/src/services/content-deletion.test.js:41:13 [warning] no-unused-vars: 'id' is defined but never used. Allowed unused args must match /^_/u. /home/runner/work/hashbin.org/hashbin.org/src/services/content-deletion.test.js:61:13 [warning] no-unused-vars: 'id' is defined but never used. Allowed unused args must match /^_/u. /home/runner/work/hashbin.org/hashbin.org/src/services/content-deletion.test.js:72:22 [warning] no-unused-vars: 'key' is defined but never used. Allowed unused args must match /^_/u. /home/runner/work/hashbin.org/hashbin.org/src/utils/supplier-fallback.js:10:7 [warning] no-unused-vars: 'ROLLING_WINDOW_SIZE' is assigned a value but never used. =============================================================================== SECURITY VULNERABILITIES =============================================================================== Summary: 22 total vulnerabilities found Report: See build-reports/security/index.html for details Breakdown: Critical: 0 High: 8 Moderate: 2 Low: 1 Affected packages: =============================================================================== COMPLEXITY WARNINGS =============================================================================== Summary: 79 complexity issue(s) found Report: See build-reports/complexity/index.html for details High complexity functions: /home/runner/work/hashbin.org/hashbin.org/src/api/admin-disputes.js:111 - Async function 'handleAdminUpdateDispute' has a complexity of 18. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/admin-disputes.js:111 - Refactor this function to reduce its Cognitive Complexity from 20 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/api/admin-disputes.test.js:10 - Refactor this function to reduce its Cognitive Complexity from 24 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/api/admin.js:370 - Async function 'handleExportData' has a complexity of 12. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/auth.js:100 - Async function 'handleLogout' has a complexity of 22. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/auth.js:100 - Refactor this function to reduce its Cognitive Complexity from 30 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/api/auth.js:258 - Async function 'handleCreateApiKey' has a complexity of 18. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/auth.js:258 - Refactor this function to reduce its Cognitive Complexity from 27 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/api/auth.js:553 - Async function 'handleRevealApiKey' has a complexity of 14. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/auth.js:553 - Refactor this function to reduce its Cognitive Complexity from 16 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/api/auth.js:695 - Async function 'handleUpdateApiKey' has a complexity of 14. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/auth.js:695 - Refactor this function to reduce its Cognitive Complexity from 16 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/api/auth.js:828 - Async function 'handleDeleteAccount' has a complexity of 14. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/auth.js:828 - Refactor this function to reduce its Cognitive Complexity from 16 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/api/content-deletion.js:10 - Async function 'handleDeleteContent' has a complexity of 22. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/content-deletion.js:10 - Refactor this function to reduce its Cognitive Complexity from 22 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/api/content.js:36 - Async function 'handleUploadContent' has a complexity of 50. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/content.js:36 - Refactor this function to reduce its Cognitive Complexity from 65 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/api/content.js:527 - Async function 'handleExtendContent' has a complexity of 17. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/content.js:527 - Refactor this function to reduce its Cognitive Complexity from 18 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/api/content.js:751 - Async function 'handleDownloadContent' has a complexity of 37. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/content.js:751 - Refactor this function to reduce its Cognitive Complexity from 56 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/api/disputes.js:12 - Async function 'handleCreateDispute' has a complexity of 13. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/oauth.js:112 - Async function 'upsertGrant' has a complexity of 11. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/oauth.js:221 - Async function 'handleOAuthAuthorize' has a complexity of 13. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/oauth.js:639 - Async function 'handleOAuthToken' has a complexity of 13. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/oauth.js:639 - Refactor this function to reduce its Cognitive Complexity from 18 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/api/payments.js:271 - Async function 'handleCheckoutSessionCompleted' has a complexity of 14. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/payments.js:271 - Refactor this function to reduce its Cognitive Complexity from 24 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/api/rate-limit.js:17 - Async function 'handlePurchaseRateLimit' has a complexity of 18. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/rate-limit.js:17 - Refactor this function to reduce its Cognitive Complexity from 19 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/api/suppliers.js:23 - Async function 'handleCreateSupplier' has a complexity of 12. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/api/user.js:14 - Refactor this function to reduce its Cognitive Complexity from 19 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/auth/middleware.js:247 - Async function 'validateOAuthAccessToken' has a complexity of 15. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/auth/middleware.js:366 - Async function 'authenticate' has a complexity of 19. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/auth/middleware.js:366 - Refactor this function to reduce its Cognitive Complexity from 42 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/auth/middleware.test.js:596 - Refactor this function to reduce its Cognitive Complexity from 25 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/auth/middleware.test.js:597 - Async method 'fetch' has a complexity of 12. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/content-metadata.js:16 - Refactor this function to reduce its Cognitive Complexity from 33 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/content-metadata.js:16 - Async method 'fetch' has a complexity of 34. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/deletion-record.js:16 - Async method 'fetch' has a complexity of 12. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/dispute-record.js:19 - Async method 'fetch' has a complexity of 12. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/dispute-record.js:62 - Refactor this function to reduce its Cognitive Complexity from 32 to the 15 allowed. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/dispute-record.js:62 - Async method 'createDispute' has a complexity of 31. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/dispute-record.js:272 - Async method 'updateDispute' has a complexity of 11. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/expiration-index.js:20 - Async method 'fetch' has a complexity of 12. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/infrastructure-cost.js:24 - Async method 'fetch' has a complexity of 13. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/infrastructure-cost.js:170 - Async method 'getCostSummary' has a complexity of 14. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/payment-record.js:13 - Async method 'fetch' has a complexity of 12. Maximum allowed is 10. /home/runner/work/hashbin.org/hashbin.org/src/durable-objects/payment-record.js:58 - Refactor this function to reduce its Cognitive Complexity from 16 to the 15 allowed. =============================================================================== STRUCTURAL ISSUES =============================================================================== Summary: 0 circular dependencies, 28 orphan file(s) Report: See build-reports/structure/index.html for details Orphan files: - api/admin-disputes.test.js - api/content-deletion.test.js - api/content-oauth.test.js - api/oauth-authorize-profile-bootstrap.test.js - api/oauth-management.test.js - api/oauth-page.test.js - api/oauth-scope-enforcement.test.js - api/oauth.test.js - api/payments.test.js - auth/admin.test.js - auth/middleware.test.js - auth/utils.test.js - durable-objects/application-registry.test.js - durable-objects/content-metadata-rate-limit.test.js - durable-objects/deletion-record.test.js - durable-objects/dispute-record.test.js - durable-objects/expiration-index.test.js - durable-objects/user-profile.test.js - index-developers-route.test.js - index-oauth-cors.test.js - index-sdk-route.test.js - integration/content-lifecycle.test.js - integration/contested-content.test.js - services/content-deletion.test.js - utils/content-domain.test.js - utils/cost-estimation.js - utils/pricing.test.js - utils/rate-limit-pricing.test.js =============================================================================== DOCUMENTATION WARNINGS =============================================================================== Summary: 0% documentation coverage, 0 undocumented item(s) Report: See build-reports/documentation/index.html for details =============================================================================== VISUAL REGRESSION WARNINGS =============================================================================== Summary: 14 page(s) with visual changes detected Report: See build-reports/visual-regression/index.html for details Changed pages: =============================================================================== END OF REPORT =============================================================================== For detailed information about any issue, please refer to the respective HTML report in the build-reports directory. Main report: https://github.com/curtcox/hashbin.org/blob/gh-pages/index.html