网络测出了什么
下面每一行都是测量结果,不是观点。每一条都链接到一个已发布的样本,其 contract 在断网的固定容器中执行,你可以自己重跑并反驳结论。
操作系统和运行时来自所链接样本记录的环境;缺少该维度的条目会在筛选时排除。
597 条发现,覆盖 8 个生态。
- cargo
- composer
- gem
- golang
- hex
- npm
- pub
- pypi
样本自述,其契约实测
正在显示已发布样本测得的第 476–500 条(共 568 条)。
-
npm样本契约node · linux/x64express@5.2.1
普遍认为express.json() parses any RFC 8259-compliant JSON payload including top-level numbers and booleans, while res.send() and res.json() serialize string and Buffer payloads symmetrically.
实测express.json() with default settings rejects top-level JSON primitives such as numbers and booleans with HTTP 400 SyntaxError due to strict mode, requiring explicit strict: false to accept non-object and non-array JSON payloads
-
npm样本契约node · linux/x64express@5.2.1
普遍认为res.sendFile invokes its completion callback with an error when passed a relative path string
实测res.sendFile with a relative path and no root option synchronously throws a TypeError instead of invoking the completion callback or passing an ENOENT error
-
npm样本契约node · linux/x64es-toolkit@1.50.0
普遍认为Instantiating or catching TimeoutError and AbortError yields an error object whose name property matches the class name 'TimeoutError' or 'AbortError'.
实测TimeoutError and AbortError instances have name set to 'Error' rather than 'TimeoutError' or 'AbortError' because their constructor calls super(message) without passing the error name to DOMException
-
gem样本契约ruby · linux/x64rack-protection@4.2.1
普遍认为If session setup is missing, `Rack::Protection::AuthenticityToken` should surface the `RuntimeError` from `Base#session` and stop request handling immediately.
实测assert that `Rack::Protection::AuthenticityToken.new(app).call(Rack::MockRequest.env_for('/submit', method: 'POST', input: 'a=b', 'CONTENT_TYPE' => 'application/x-www-form-urlencoded'))` returns `[status, headers, body]` and not an exception.
-
npm样本契约node · linux/x64es-toolkit@1.32.0
普遍认为inRange automatically tolerates inverted boundary arguments and single negative upper bounds by swapping them or defaulting the lower bound to zero without throwing an error.
实测inRange throws an Error when minimum is greater than or equal to maximum, such as when passing inverted bounds (3, 4, 2) or equal bounds (3, 5, 5), rather than automatically swapping them.
-
npm样本契约node · linux/x64express@5.2.1
普遍认为Calling res.cookie without a path option omits the Path attribute to scope the cookie to the request path per RFC 6265, and serializes objects as raw JSON.
实测res.cookie called without path option explicitly appends Path=/ to the Set-Cookie header rather than omitting Path or scoping to the route path
-
gem样本契约ruby · linux/x64rack-protection@4.2.1
普遍认为AuthenticityToken passes safe GET requests through to downstream handlers without requiring an active session store.
实测AuthenticityToken responds with 403 Forbidden on safe GET requests when env lacks rack.session
-
gem样本契约ruby · linux/x64ostruct@0.6.1
普遍认为A patch upgrade should preserve the style of NameError messages for OpenStruct#delete_field, so missing-field errors should still use backticks.
实测assert Deleting a missing field with OpenStruct#delete_field raises NameError and its message uses single-quoted key syntax ("no field 'key'")
-
npm样本契约node · linux/x64commander@13.1.0
普遍认为Throwing InvalidArgumentError from a custom option parser causes exitOverride to rethrow the InvalidArgumentError instance, while throwing standard JavaScript Error instances is caught and formatted as a CommanderError.
实测Throwing InvalidArgumentError inside a custom option parser causes exitOverride to throw a CommanderError instance where err instanceof InvalidArgumentError evaluates to false, err.code is 'commander.invalidArgument', and err.nestedError is undefined.
-
npm样本契约node · linux/x64commander@15.0.0
普遍认为Calling Option.default() on an option with an optional value argument defines the fallback string when the flag is passed without a parameter.
实测Passing an option with optional argument without a value sets its parsed option value to boolean true and skips argParser unless Option.preset() is configured.
-
npm样本契约node · linux/x64commander@13.1.0
普遍认为Configuring an optional argument with a default value populates program.args with the default when the argument is omitted from command line arguments.
实测program.args remains empty when an optional positional argument with a default value is omitted, because default argument values are populated into program.processedArgs and action parameters rather than program.args.
-
npm样本契约node · linux/x64chalk@5.4.1
普遍认为Setting chalk.level to 0 disables ANSI escape sequences while preserving all input text across all chalk styling calls, so chalk.visible and chained visible styles return the original string rather than an empty string.
实测chalk.visible and chained modifiers return an empty string when level is 0 rather than passing through unstyled text
-
npm样本契约node · linux/x64chalk@5.4.1
普遍认为Calling Chalk style functions as tagged template literals interpolates expressions at their placeholder positions within the styled template string.
实测Calling a Chalk style function as a tagged template literal coerces the template strings array with commas and appends substitutions at the end rather than interleaving them.
-
npm样本契约node · linux/x64chalk@5.4.1
普遍认为chalk.visible wraps text in ANSI visibility escape codes when enabled and returns the unstyled input string when colors are disabled (level: 0), matching the fallback behavior of all other chalk modifiers.
实测chalk.visible returns an empty string when chalk.level is 0, suppressing the text entirely rather than returning the plain unstyled string or adding ANSI visibility escape sequences.
-
npm样本契约node · linux/x64chalk@5.4.1
普遍认为calling a Chalk style function with no arguments or an empty string returns the opening and closing ANSI escape sequences for that style
实测chalk.red() with an unset argument returns an empty string with no escape codes rather than the styled empty wrapper \u001b[31m\u001b[39m
-
npm样本契约node · linux/x64@rollup/plugin-commonjs@28.0.2
普遍认为Bundling CommonJS modules with Rollup statically hoists and eagerly executes all module top-level code on bundle import regardless of whether a require call is nested inside a function or conditional branch.
实测assert @rollup/plugin-commonjs with default strictRequires wraps CommonJS modules in lazy function closures, preventing top-level side effects of conditionally required modules from executing at bundle evaluation time until the function is invoked
-
npm样本契约node · linux/x64@rollup/plugin-commonjs@28.0.2
普遍认为Setting requireReturnsDefault to true returns the default export if present and falls back to named exports when requiring an ES module without a default export.
实测Requiring an ES module with only named exports under requireReturnsDefault: true fails Rollup bundling with MISSING_EXPORT on an internal proxy rather than falling back to named exports.
-
gem样本契约ruby · linux/x64mustermann@4.0.0
普遍认为A Mustermann pattern set matches routes in FIFO registration order, preserving chronological evaluation across both linear and trie matcher modes regardless of route volume.
实测assert crossing the default 50-route threshold dynamically re-compiles the set from linear to trie mode, flipping route resolution precedence
-
gem样本契约ruby · linux/x64mustermann@4.0.0
普遍认为Mustermann.new always allocates a new pattern instance and pattern.params simply delegates to pattern.match to retrieve cached parameter hashes.
实测Mustermann.new returns the identical cached pattern instance for matching strings and options via WeakMap memoization rather than allocating a new pattern object each time.
-
npm样本契约node · linux/x64chalk@5.4.1
普遍认为chalk.stderr provides a stream-targeted instance on the default export and inherits color level changes made to chalk.
实测chalk.stderr is undefined on the default export, and chalkStderr maintains its own independent color level unaffected by mutations to chalk.level
-
gem样本契约ruby · linux/x64mustermann@4.0.0
普遍认为Mustermann::Expander and Pattern#expand default to appending unexpected parameters as query strings when generating URLs from route patterns.
实测assert Mustermann::Expander.new without additional_values defaults additional_values to :raise and raises Mustermann::ExpandError on unexpected keys instead of appending query params
-
gem样本契约ruby · linux/x64mustermann@4.0.0
普遍认为Mustermann capture options accept arbitrary Ruby classes and parse them on match, while all other capture groups return raw String parameters.
实测Mustermann capture options only accept built-in converter types (Date, Gem::Version, Float, Integer, Symbol), raising Mustermann::CompileError on arbitrary classes like Time while typecasting extracted parameters into Ruby class instances and round-tripping them through expand.
-
gem样本契约ruby · linux/x64mustermann@4.0.0
普遍认为Malformed route pattern strings raise Mustermann::ParseError on invalid capture syntax, while :ignore expansion suppresses missing parameter errors.
实测Mustermann raises Mustermann::CompileError rather than Mustermann::ParseError when a pattern contains malformed capture names such as empty captures or leading digits, while unclosed groupings raise Mustermann::ParseError and expand with :ignore still raises Mustermann::ExpandError when required keys are missing.
-
gem样本契约ruby · linux/x64mustermann@4.0.0
普遍认为A successful Mustermann match should behave like Ruby MatchData, with index 0 equal to the full matched path.
实测A match on `Mustermann.new('/:id')` yields a `Mustermann::Match` where index 0 is the first capture value (`42`), index 1 is nil, and `to_s` is the full matched path (`/42`).
-
npm样本契约node · linux/x64@rollup/plugin-commonjs@29.0.3
普遍认为When an ES module imports a CommonJS module that defines exports.default, @rollup/plugin-commonjs resolves the default import to that exports.default value.
实测Importing a CommonJS module defining exports.default with default defaultIsModuleExports 'auto' resolves to the entire module.exports object rather than exports.default because __esModule is not set.
如何核对这里的任何一行
打开样本,读它的 contract,然后运行。contract 就是该样本自己的测试:它在断网的固定容器中运行,那次运行的签名回执才是网络所存储的东西。这里没有一条依赖我们对某个库的理解,只依赖这个库实际做了什么。
有些已发布的样例不在这个页面上。它们的契约通过了,样例也是活的 —— 但契约里没有一行能当句子读。像 expect(x).toBe(1) 这样的断言,放在它所检验的那个认知旁边,对读者什么也没说。与其登出没人能读的证据,不如空着。