# Build diagnostics

> Every error and warning of a component build, by code: what it means and how to fix it.

> Esta página ainda não tem tradução para o português; este é o texto em inglês. (This page is not translated yet: the English text follows.)

Every error and warning of a component build, and of the creation of a version from it (stage `version`), has one of these codes (`BuildDiagnostic`, `packages/contract/src/build-diagnostic.ts`). `TS` stands for every TypeScript code (`TS2322`).

| Code                           | Stage     | Severity | Fault    | en |
| ------------------------------ | --------- | -------- | -------- | --------------------------------------------------------------------------------- |
| `SOURCE_NOT_FOUND`             | source    | error    | platform | [Source package not found](https://taggor.dev/docs/diagnostics/SOURCE_NOT_FOUND.md) |
| `SOURCE_TOO_LARGE`             | source    | error    | customer | [Source package too large](https://taggor.dev/docs/diagnostics/SOURCE_TOO_LARGE.md) |
| `SOURCE_INVALID`               | source    | error    | customer | [Invalid source package](https://taggor.dev/docs/diagnostics/SOURCE_INVALID.md) |
| `SOURCE_PATH_NOT_ALLOWED`      | source    | error    | customer | [File path not allowed](https://taggor.dev/docs/diagnostics/SOURCE_PATH_NOT_ALLOWED.md) |
| `SOURCE_ENTRY_NOT_ALLOWED`     | source    | error    | customer | [Link or special file not allowed](https://taggor.dev/docs/diagnostics/SOURCE_ENTRY_NOT_ALLOWED.md) |
| `SOURCE_EXTENSION_NOT_ALLOWED` | source    | error    | customer | [File type not allowed](https://taggor.dev/docs/diagnostics/SOURCE_EXTENSION_NOT_ALLOWED.md) |
| `SOURCE_CONFIG_NOT_ALLOWED`    | source    | error    | customer | [Executable config file](https://taggor.dev/docs/diagnostics/SOURCE_CONFIG_NOT_ALLOWED.md) |
| `SOURCE_METADATA_INVALID`      | source    | error    | customer | [Invalid taggor.json or package.json](https://taggor.dev/docs/diagnostics/SOURCE_METADATA_INVALID.md) |
| `ENTRY_NOT_FOUND`              | source    | error    | customer | [Entry file not found](https://taggor.dev/docs/diagnostics/ENTRY_NOT_FOUND.md) |
| `SECRET_IN_SOURCE`             | source    | error    | customer | [Secret in the component's code](https://taggor.dev/docs/diagnostics/SECRET_IN_SOURCE.md) |
| `COMPILE_ERROR`                | compile   | error    | customer | [Compile error](https://taggor.dev/docs/diagnostics/COMPILE_ERROR.md) |
| `COMPILE_WARNING`              | compile   | warning  | customer | [Compile warning](https://taggor.dev/docs/diagnostics/COMPILE_WARNING.md) |
| `MODULE_NOT_FOUND`             | compile   | error    | customer | [Imported file not found](https://taggor.dev/docs/diagnostics/MODULE_NOT_FOUND.md) |
| `EXPORT_NOT_FOUND`             | compile   | error    | customer | [Imported name not exported](https://taggor.dev/docs/diagnostics/EXPORT_NOT_FOUND.md) |
| `REACT_API_UNSUPPORTED`        | compile   | warning  | customer | [React API not supported](https://taggor.dev/docs/diagnostics/REACT_API_UNSUPPORTED.md) |
| `MODULE_NOT_ALLOWED`           | compile   | error    | customer | [Import not allowed](https://taggor.dev/docs/diagnostics/MODULE_NOT_ALLOWED.md) |
| `DEPENDENCY_NOT_ALLOWED`       | compile   | error    | customer | [Package not allowed](https://taggor.dev/docs/diagnostics/DEPENDENCY_NOT_ALLOWED.md) |
| `IMPORT_ATTRIBUTE_REFUSED`     | compile   | error    | customer | [Import attribute refused](https://taggor.dev/docs/diagnostics/IMPORT_ATTRIBUTE_REFUSED.md) |
| `TAILWIND_CONFIG_NOT_ALLOWED`  | compile   | error    | customer | [Tailwind @plugin or @config not allowed](https://taggor.dev/docs/diagnostics/TAILWIND_CONFIG_NOT_ALLOWED.md) |
| `CSS_INVALID`                  | compile   | warning  | customer | [Invalid CSS](https://taggor.dev/docs/diagnostics/CSS_INVALID.md) |
| `TS`                           | typecheck | error    | customer | [TypeScript type error](https://taggor.dev/docs/diagnostics/TS.md) |
| `MANIFEST_INVALID`             | manifest  | error    | customer | [Invalid component declaration](https://taggor.dev/docs/diagnostics/MANIFEST_INVALID.md) |
| `MANIFEST_EXTRACTION_TIMEOUT`  | manifest  | error    | customer | [Component declaration took too long](https://taggor.dev/docs/diagnostics/MANIFEST_EXTRACTION_TIMEOUT.md) |
| `MANIFEST_EXTRACTION_FAILED`   | manifest  | error    | customer | [Component module failed to load](https://taggor.dev/docs/diagnostics/MANIFEST_EXTRACTION_FAILED.md) |
| `STYLE_REFERENCE_UNDECLARED`   | manifest  | error    | customer | [CSS uses an undeclared variable or part](https://taggor.dev/docs/diagnostics/STYLE_REFERENCE_UNDECLARED.md) |
| `STYLESHEET_NOT_BUNDLED`       | output    | error    | platform | [A stylesheet did not reach the component's bundle](https://taggor.dev/docs/diagnostics/STYLESHEET_NOT_BUNDLED.md) |
| `OUTPUT_TOO_LARGE`             | output    | error    | customer | [Build output too large](https://taggor.dev/docs/diagnostics/OUTPUT_TOO_LARGE.md) |
| `ASSET_TOO_LARGE`              | output    | error    | customer | [Asset too large](https://taggor.dev/docs/diagnostics/ASSET_TOO_LARGE.md) |
| `ASSET_INVALID`                | output    | error    | customer | [Asset is not what its name says](https://taggor.dev/docs/diagnostics/ASSET_INVALID.md) |
| `ASSET_METADATA`               | output    | error    | customer | [Image Taggor cannot verify as metadata-free](https://taggor.dev/docs/diagnostics/ASSET_METADATA.md) |
| `ASSET_SVG_UNSAFE`             | output    | error    | customer | [SVG with active content](https://taggor.dev/docs/diagnostics/ASSET_SVG_UNSAFE.md) |
| `SIZE_BUDGET_EXCEEDED`         | output    | error    | customer | [Component over the size budget](https://taggor.dev/docs/diagnostics/SIZE_BUDGET_EXCEEDED.md) |
| `QUALITY_GATE_FAILED`          | output    | error    | customer | [Quality gate could not finish](https://taggor.dev/docs/diagnostics/QUALITY_GATE_FAILED.md) |
| `UNSAFE_EVAL`                  | output    | error    | customer | [eval in the component](https://taggor.dev/docs/diagnostics/UNSAFE_EVAL.md) |
| `UNSAFE_FUNCTION_CONSTRUCTOR`  | output    | error    | customer | [Function constructor in the component](https://taggor.dev/docs/diagnostics/UNSAFE_FUNCTION_CONSTRUCTOR.md) |
| `UNSAFE_DOCUMENT_WRITE`        | output    | error    | customer | [document.write in the component](https://taggor.dev/docs/diagnostics/UNSAFE_DOCUMENT_WRITE.md) |
| `UNSAFE_COOKIE_ACCESS`         | output    | error    | customer | [Component reads the page's cookies](https://taggor.dev/docs/diagnostics/UNSAFE_COOKIE_ACCESS.md) |
| `UNSAFE_STORAGE_ACCESS`        | output    | error    | customer | [Component uses the page's storage](https://taggor.dev/docs/diagnostics/UNSAFE_STORAGE_ACCESS.md) |
| `UNSAFE_HOST_DOM`              | output    | error    | customer | [Component touches the page's DOM](https://taggor.dev/docs/diagnostics/UNSAFE_HOST_DOM.md) |
| `UNSAFE_SCRIPT_ELEMENT`        | output    | error    | customer | [Component creates a script element](https://taggor.dev/docs/diagnostics/UNSAFE_SCRIPT_ELEMENT.md) |
| `UNSAFE_DYNAMIC_SCRIPT`        | output    | error    | customer | [Component runs a script built at run time](https://taggor.dev/docs/diagnostics/UNSAFE_DYNAMIC_SCRIPT.md) |
| `UNSAFE_DYNAMIC_IMPORT`        | output    | error    | customer | [Dynamic import in the component](https://taggor.dev/docs/diagnostics/UNSAFE_DYNAMIC_IMPORT.md) |
| `UNDECLARED_NETWORK`           | output    | error    | customer | [Network request to an undeclared origin](https://taggor.dev/docs/diagnostics/UNDECLARED_NETWORK.md) |
| `MINING_PATTERN`               | output    | error    | customer | [Crypto mining pattern](https://taggor.dev/docs/diagnostics/MINING_PATTERN.md) |
| `UNSAFE_HTML_SINK`             | output    | error    | customer | [HTML written from a string](https://taggor.dev/docs/diagnostics/UNSAFE_HTML_SINK.md) |
| `UNSAFE_TOP_NAVIGATION`        | output    | error    | customer | [Component navigates the top window](https://taggor.dev/docs/diagnostics/UNSAFE_TOP_NAVIGATION.md) |
| `UNSAFE_PREACT_OPTIONS`        | output    | error    | customer | [Component uses Preact's global options](https://taggor.dev/docs/diagnostics/UNSAFE_PREACT_OPTIONS.md) |
| `UNSAFE_PREACT_INTERNALS`      | output    | error    | customer | [Component accesses Preact internals](https://taggor.dev/docs/diagnostics/UNSAFE_PREACT_INTERNALS.md) |
| `UNSAFE_GLOBAL_ACCESS`         | output    | error    | customer | [Computed access to a global object](https://taggor.dev/docs/diagnostics/UNSAFE_GLOBAL_ACCESS.md) |
| `UNSAFE_INLINE_HANDLER`        | output    | error    | customer | [Event handler from a string](https://taggor.dev/docs/diagnostics/UNSAFE_INLINE_HANDLER.md) |
| `UNSAFE_STRING_TIMER`          | output    | error    | customer | [Timer given a string](https://taggor.dev/docs/diagnostics/UNSAFE_STRING_TIMER.md) |
| `OBFUSCATED_CODE`              | output    | error    | customer | [Obfuscated code](https://taggor.dev/docs/diagnostics/OBFUSCATED_CODE.md) |
| `HIGH_ENTROPY_STRING`          | output    | warning  | customer | [String that looks like random data](https://taggor.dev/docs/diagnostics/HIGH_ENTROPY_STRING.md) |
| `EXTERNAL_IMAGE`               | output    | warning  | customer | [Image from another site](https://taggor.dev/docs/diagnostics/EXTERNAL_IMAGE.md) |
| `CREDENTIAL_CAPTURE`           | output    | error    | customer | [Component asks for credentials](https://taggor.dev/docs/diagnostics/CREDENTIAL_CAPTURE.md) |
| `CREDENTIAL_COLLECTION_FIELD`  | output    | error    | customer | [Collection field for a credential](https://taggor.dev/docs/diagnostics/CREDENTIAL_COLLECTION_FIELD.md) |
| `CONSENT_FORGED`               | output    | error    | customer | [Consent given by the component](https://taggor.dev/docs/diagnostics/CONSENT_FORGED.md) |
| `CONSENT_NOT_SHOWN`            | output    | error    | customer | [Consent text not shown](https://taggor.dev/docs/diagnostics/CONSENT_NOT_SHOWN.md) |
| `VIEWPORT_OVERLAY`             | output    | error    | customer | [Layer over the whole viewport](https://taggor.dev/docs/diagnostics/VIEWPORT_OVERLAY.md) |
| `UNSAFE_RUNTIME_CSS`           | output    | error    | customer | [CSS built at run time](https://taggor.dev/docs/diagnostics/UNSAFE_RUNTIME_CSS.md) |
| `UNSAFE_ELEMENT`               | output    | error    | customer | [Element that changes the page](https://taggor.dev/docs/diagnostics/UNSAFE_ELEMENT.md) |
| `UNSAFE_TAGGOR_GLOBAL`         | output    | error    | customer | [Component writes the taggor global](https://taggor.dev/docs/diagnostics/UNSAFE_TAGGOR_GLOBAL.md) |
| `BUILD_TIMEOUT`                | build     | error    | customer | [Build took too long](https://taggor.dev/docs/diagnostics/BUILD_TIMEOUT.md) |
| `LIMIT_EXCEEDED`               | build     | error    | customer | [Plan limit exceeded](https://taggor.dev/docs/diagnostics/LIMIT_EXCEEDED.md) |
| `BUILDER_RESPONSE_INVALID`     | build     | error    | platform | [Builder answered outside the protocol](https://taggor.dev/docs/diagnostics/BUILDER_RESPONSE_INVALID.md) |
| `INTERNAL_ERROR`               | build     | error    | platform | [Internal builder error](https://taggor.dev/docs/diagnostics/INTERNAL_ERROR.md) |
| `BUILD_STUCK`                  | build     | error    | platform | [Build stopped by the builder](https://taggor.dev/docs/diagnostics/BUILD_STUCK.md) |
| `CONTAINER_START_TIMEOUT`      | build     | error    | platform | [Build container did not start in time](https://taggor.dev/docs/diagnostics/CONTAINER_START_TIMEOUT.md) |
| `BREAKING_PROP_CHANGE`         | version   | warning  | customer | [Breaking prop change](https://taggor.dev/docs/diagnostics/BREAKING_PROP_CHANGE.md) |
| `BREAKING_EVENT_CHANGE`        | version   | warning  | customer | [Breaking event change](https://taggor.dev/docs/diagnostics/BREAKING_EVENT_CHANGE.md) |
| `BREAKING_SLOT_CHANGE`         | version   | warning  | customer | [Slot removed](https://taggor.dev/docs/diagnostics/BREAKING_SLOT_CHANGE.md) |
| `BREAKING_STYLE_CHANGE`        | version   | warning  | customer | [Breaking style change](https://taggor.dev/docs/diagnostics/BREAKING_STYLE_CHANGE.md) |
| `BASE_MANIFEST_UNREADABLE`     | version   | warning  | platform | [Previous manifest could not be compared](https://taggor.dev/docs/diagnostics/BASE_MANIFEST_UNREADABLE.md) |
| `SEMVER_BUMP_TOO_SMALL`        | version   | error    | customer | [Semver too small](https://taggor.dev/docs/diagnostics/SEMVER_BUMP_TOO_SMALL.md) |
