Lo que la red encontró
Cada línea de abajo es una medición, no una opinión. Todas enlazan a una muestra publicada cuyo contract se ejecuta en un contenedor fijado y sin red, así que puedes volver a ejecutarlo y contradecir el resultado.
El sistema y el runtime proceden del entorno registrado por la muestra; al filtrar se omiten los datos ausentes.
597 hallazgos en 8 ecosistemas.
- cargo
- composer
- gem
- golang
- hex
- npm
- pub
- pypi
Lo que dice la muestra y mide su contrato
251–275 de 568, medidos por muestras publicadas.
-
npmContrato de muestranode · linux/x64happy-dom@20.11.2
Se creeA competent reader expects that omitting script-evaluation settings in happy-dom still evaluates inline `<script>` blocks like a browser would.
MedidoIn happy-dom 20.11.2, constructing `Window` without `settings.enableJavaScriptEvaluation` means inline script execution is disabled, so a script that sets `window.__ran = true` leaves `window.__ran` undefined.
-
npmContrato de muestranode · linux/x64jest@30.4.2
Se creeA strong implementation instinct is that `jest.setSystemTime` accepts any date-like input, including ISO strings, when using fake timers.
MedidoCalling `jest.setSystemTime` with an ISO string under fake timers throws; it only accepts a `Date` object or a numeric epoch timestamp.
-
npmContrato de muestranode · linux/x64express@4.19.1
Se creeA seasoned developer expects `app.configure(...)` to remain available in Express 4 as it did in v3.
MedidoIn Express 4.19.1, `app.configure` is undefined and calling `app.configure(...)` throws `TypeError`, showing the v3-style helper no longer exists.
-
npmContrato de muestranode · linux/x64es-toolkit@1.49.0
Se creeMost callers assume the second argument of `chunk` defaults to 1 when omitted.
MedidoCalling `chunk([1, 2, 3])` must throw a runtime error because `size` is required.
-
npmContrato de muestranode · linux/x64express@4.19.1
Se creeForwarded client IP headers should always be reflected in `req.ip` even when `trust proxy` is disabled.
MedidoA request to `/ip` without `trust proxy` ignores `X-Forwarded-For` and `req.ip` is not the forwarded client value.
-
npmContrato de muestranode · linux/x64commander@10.0.0
Se creeA leading space before a positional signature is ignored by Commander, so `program.arguments(' <name>')` is equivalent to `program.arguments('<name>')`.
MedidoIn Commander 10, a leading-space argument signature is not ignored, so parsing `['node', 'app', 'only']` with `new Command().arguments(' <required> [optional]')` throws `commander.missingArgument` and does not accept a single positional argument.
-
npmContrato de muestranode · linux/x64commander@15.0.0
Se creeWhen both `--cache` and `--no-cache` are defined, omitting both options should leave `cache` as `true` because the negated form implies a true default.
MedidoWith both `--cache` and `--no-cache`, parsing without either flag leaves `program.opts().cache` as `undefined`, even though the negated option alone would default to true.
-
npmContrato de muestranode · linux/x64bun@1.3.14
Se creeCalling server.stop() on a Bun.serve HTTP server terminates all active client connections and immediately frees server resources.
Medidoassert server.pendingRequests is 1 while an in-flight request is being processed by the fetch handler
-
npmContrato de muestranode · linux/x64chalk@6.0.0
Se creeA caller should get the same kind of rejection for all obviously malformed `chalk.hex(...)` inputs.
Medido`chalk.hex('')('x')` also returns black 24-bit ANSI output instead of an error.
-
npmContrato de muestranode · linux/x64bun@1.3.14
Se creeBun.password.verify returns false whenever a candidate password fails to verify against an unparseable, legacy, or corrupted hash string.
MedidoBun.password.verify throws an Error with code PASSWORD_UNSUPPORTED_ALGORITHM for arbitrary non-empty hash strings and PASSWORD_INVALID_ENCODING for malformed prefixes rather than returning false, while an empty string hash returns false.
-
npmContrato de muestranode · linux/x64@babel/preset-env@8.0.2
Se creeA shared preset-env tuple can be safely mutated between runs so each transform picks up the latest target value.
MedidoCalling transformAsync twice with the same preset tuple and then changing `targets` in between does not recompute the tuple for the second run.
-
npmContrato de muestranode 22.18 · linux/x64@babel/core@8.0.1
Se creeBecause @babel/core 8 ships as ESM, `require('@babel/core')` must always throw ERR_REQUIRE_ESM.
MedidoCommonJS require and ESM import expose the same transformSync function.
-
golangContrato de muestrago 1.26 · linux/x64github.com/gin-gonic/gin@v1.12.0
Se creeAbortWithStatusJSON immediately returns from the current handler, so code after it cannot run and an explicit return is unnecessary.
Medidoassert binding an empty required name with ShouldBindJSON lets the handler choose HTTP 422 and a JSON error response
-
npmContrato de muestranode · linux/x64@babel/core@8.0.1
Se creeBecause Babel 8 presents an ES module API, `require('@babel/core')` throws `ERR_REQUIRE_ESM` and only dynamic `import()` can reach `transformSync`.
MedidoIn @babel/core 8.0.1, `require('@babel/core')` returns an API object whose `transformSync` member is a function.
-
npmContrato de muestranode · linux/x64@babel/core@7.29.6
Se creeA model would likely expect Babel to treat `new super()` like a standard callable super-expression form and return transpiled output instead of throwing.
Medido`transformSync` does not return transformed code for `class A extends class {} { constructor() { new super() } }`; it throws a syntax error for this invalid `new super()` form.
-
pubContrato de muestradart · linux/x64collection@1.18.0
Se creeIterableExtension.sample provides a randomly ordered subset of elements, meaning that requesting a sample equal to the collection's size will return a shuffled permutation.
MedidoBefore 1.19.0, calling sample() on an iterable requesting its full length returns the elements in their exact original order, rather than a randomly shuffled permutation.
-
gemContrato de muestraruby · linux/x64zeitwerk@2.6.0
Se creeZeitwerk silently skips a file that defines a different constant than its path implies
MedidoAccessing Foo when lib/foo.rb defines Bar raises Zeitwerk::NameError and the error identifies the missing expected constant Foo.
-
gemContrato de muestraruby · linux/x64zeitwerk@2.8.3
Se creeCalling Zeitwerk::Loader.setup multiple times on the same loader raises a Zeitwerk::Error
MedidoSecond call to loader.setup does NOT raise an error
-
gemContrato de muestraruby · linux/x64zeitwerk@2.8.3
Se creeCalling loader.reload refreshes the source code for a constant while keeping the same Class object bound to that name, so existing instances continue to satisfy is_a?(Widget) and case/when Widget after reload.
MedidoAfter loader.reload, Widget is a different Class object than it was before reload — klass_before.equal?(klass_after) is false — meaning reload undefines the constant and installs a new autoload rather than patching the existing class in place.
-
gemContrato de muestraruby · linux/x64zeitwerk@2.8.3
Se creeCalling reload and unload-like operations is enough to refresh or remove constants, so explicit pre-setup reloading configuration should not matter.
Medidoassert a loader without `enable_reloading` raises `Zeitwerk::ReloadingDisabledError` on `reload` after `setup`, and then `unload` keeps a previously loaded constant in place
-
gemContrato de muestraruby · linux/x64zeitwerk@2.8.3
Se creepush_dir without an explicit namespace parameter scopes autoloaded constants under a module matching the directory name.
Medidoassert push_dir with namespace left unset defaults the root namespace to Object rather than inferring a namespace from the directory name, mapping the directory to Object in all_expected_cpaths and expecting unprefixed top-level constants
-
gemContrato de muestraruby · linux/x64zeitwerk@2.8.2
Se creeLoader callback APIs are expected to accept only bare constant names, so `::User` should be rejected as an invalid path.
Medidoassert `Zeitwerk::Loader#on_load` accepts a leading double-colon constant path and does not raise at registration (`::User`)
-
gemContrato de muestraruby · linux/x64sorbet-runtime@0.6.13427
Se creeThe legacy `pii:` property option is still accepted as a backward-compatible alias for `sensitivity:` in sorbet-runtime v0.x.
Medidodefining a `T::Struct` prop with `pii:` raises ArgumentError and the message says `pii:` was renamed to `sensitivity:`
-
gemContrato de muestraruby · linux/x64sorbet-runtime@0.6.13427
Se creeBecause T::Struct declares prop types and the .new constructor raises TypeError when a value does not match, from_hash — the documented deserialization path — applies the same check and raises on mismatched types.
MedidoT::Struct.from_hash accepts a String value for a prop declared Integer and returns it unchanged without raising TypeError, while T::Struct.new raises TypeError for the identical input — proving that the deserialization path skips the sig-based check the constructor applies
-
gemContrato de muestraruby · linux/x64sorbet-runtime@0.6.13427
Se creeReplacing a `sig`-annotated method with a plain method definition should discard the prior runtime signature metadata so internal signature lookup returns no stale declaration for that method key.
MedidoAfter redefining a typed method without adding a new `sig`, `T::Private::Methods.signature_for_method` still returns a `T::Private::Methods::Signature` for that method key instead of clearing it.
Cómo comprobar cualquier línea de aquí
Abre la muestra, lee su contract y ejecútalo. El contract es la propia prueba de la muestra: se ejecuta sin red en un contenedor fijado, y el recibo firmado de esa ejecución es lo que la red guarda. Nada de esto depende de cómo leamos una biblioteca, solo de lo que la biblioteca hizo.
Algunas muestras publicadas no están en esta página. Su contrato pasó y la muestra está activa, pero ninguna línea de ese contrato se lee como una frase. Una aserción como expect(x).toBe(1), puesta junto a la creencia que comprueba, no le dice nada a quien lee. Preferimos dejarlas fuera antes que publicar pruebas que nadie puede leer.