internal/

directory
v0.96.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 7, 2026 License: MIT

Directories

Path Synopsis
Package actionscan answers one question for both embed gates: does a component's ClientJS call G.serverAction?
Package actionscan answers one question for both embed gates: does a component's ClientJS call G.serverAction?
analyzers
allow
Package allow is the one marked-exception mechanism for the repo analyzers: a diagnostic whose line (or the line right below a stand-alone marker line) carries
Package allow is the one marked-exception mechanism for the repo analyzers: a diagnostic whose line (or the line right below a stand-alone marker line) carries
asciifold
Package asciifold catches registry lookups that fold Unicode case.
Package asciifold catches registry lookups that fold Unicode case.
authpresence
Package authpresence catches an Authorization header's presence used as a scheme test, and a cookie-name fallback list that reads the unprefixed name before its __Host- / __Secure- twin.
Package authpresence catches an Authorization header's presence used as a scheme test, and a cookie-name fallback list that reads the unprefixed name before its __Host- / __Secure- twin.
bareduration
Package bareduration catches a bare integer handed to a time.Duration: `Every(5)` is five nanoseconds, not five seconds.
Package bareduration catches a bare integer handed to a time.Duration: `Every(5)` is five nanoseconds, not five seconds.
callbackunderlock
Package callbackunderlock catches calls through func-typed values while a sync mutex is held.
Package callbackunderlock catches calls through func-typed values while a sync mutex is held.
compositekey
The join is recognized through the indirections a real bug wears: a local or struct field bound from it, a one-result helper whose body reduces to returning it (statements that only rebind the helper's parameters in front of the return do not hide it), and the one-arg string-preserving normalizers around it at the sink (strings.ToLower/ToUpper/TrimSpace — the usual key normalizers).
The join is recognized through the indirections a real bug wears: a local or struct field bound from it, a one-result helper whose body reduces to returning it (statements that only rebind the helper's parameters in front of the return do not hide it), and the one-arg string-preserving normalizers around it at the sink (strings.ToLower/ToUpper/TrimSpace — the usual key normalizers).
controlbytes
Package controlbytes catches request-derived strings reaching a log, span-attribute, or header sink without a control-byte scrub.
Package controlbytes catches request-derived strings reaching a log, span-attribute, or header sink without a control-byte scrub.
credfetch
Package credfetch catches an http.Client with no CheckRedirect used for a credential-bearing fetch.
Package credfetch catches an http.Client with no CheckRedirect used for a credential-bearing fetch.
deferreset
Package deferreset catches state set before a call that can panic and reset after it outside a defer: a panic skips the reset, and the state stays set for every later caller.
Package deferreset catches state set before a call that can panic and reset after it outside a defer: a panic skips the reset, and the state stays set for every later caller.
discardeddecode
Package discardeddecode catches a request-shaped parse whose error is thrown away: `_ = json.NewDecoder(r.Body).Decode(&body)`, `_ = json.Unmarshal(b, &v)`, `_ = r.ParseForm()`, and the bare statement spelling that drops the result on the floor.
Package discardeddecode catches a request-shaped parse whose error is thrown away: `_ = json.NewDecoder(r.Body).Decode(&body)`, `_ = json.Unmarshal(b, &v)`, `_ = r.ParseForm()`, and the bare statement spelling that drops the result on the floor.
discardederr
Package discardederr catches a multi-value assignment that drops an error on the floor while keeping the values around it: `ch, cancel, _ := m.subscribeImpl(id)`.
Package discardederr catches a multi-value assignment that drops an error on the floor while keeping the values around it: `ch, cancel, _ := m.subscribeImpl(id)`.
discardmutator
Package discardmutator catches security-state mutations whose result is discarded right where the handler acknowledges success.
Package discardmutator catches security-state mutations whose result is discarded right where the handler acknowledges success.
divlimit
Package divlimit catches integer division and remainder by a caller-supplied pagination-sized value that the function never guards against 0 or 1.
Package divlimit catches integer division and remainder by a caller-supplied pagination-sized value that the function never guards against 0 or 1.
doublewrite
Package doublewrite catches a deferred response write that also runs after the function already answered on another path.
Package doublewrite catches a deferred response write that also runs after the function already answered on another path.
embedskip
Package embedskip catches a struct field walk that maps fields to keys by their tags and never looks at an embedded struct.
Package embedskip catches a struct field walk that maps fields to keys by their tags and never looks at an embedded struct.
emitident
Package emitident catches names formatted into emitted code without an identifier gate.
Package emitident catches names formatted into emitted code without an identifier gate.
errleak
Package errleak catches an internal error string being handed to the client on a 5xx response — or, since the 2026-09-07 round, into a JSON-RPC internal-error response.
Package errleak catches an internal error string being handed to the client on a 5xx response — or, since the 2026-09-07 round, into a JSON-RPC internal-error response.
fanoutreq
Package fanoutreq catches one backend call per element of a collection whose length the request chooses.
Package fanoutreq catches one backend call per element of a collection whose length the request chooses.
fieldtypeswitch
Package fieldtypeswitch makes adding a schema field type a checklist instead of a silent hazard.
Package fieldtypeswitch makes adding a schema field type a checklist instead of a silent hazard.
fixedtmp
Package fixedtmp catches a path under the shared temp root whose name is CONSTANT or pid-predictable reaching a create/mkdir/exec or build sink: os.Mkdir / os.MkdirAll / os.Create / os.WriteFile / os.OpenFile(write flags) on it, an exec.Command / exec.CommandContext argument (`go build -o <path>` writes through whatever is at the path; argv[0] runs it), or an exec.Cmd Dir assignment (the child's cwd).
Package fixedtmp catches a path under the shared temp root whose name is CONSTANT or pid-predictable reaching a create/mkdir/exec or build sink: os.Mkdir / os.MkdirAll / os.Create / os.WriteFile / os.OpenFile(write flags) on it, an exec.Command / exec.CommandContext argument (`go build -o <path>` writes through whatever is at the path; argv[0] runs it), or an exec.Cmd Dir assignment (the child's cwd).
floatnum
Package floatnum catches JSON decoded into a target that holds an interface value (any, map[string]any, []any, or a struct field of one) without UseNumber.
Package floatnum catches JSON decoded into a target that holds an interface value (any, map[string]any, []any, or a struct field of one) without UseNumber.
fmtformat
Package fmtformat catches URL-encoder output (url.Values.Encode, url.QueryEscape, url.PathEscape) becoming part of a fmt format string.
Package fmtformat catches URL-encoder output (url.Values.Encode, url.QueryEscape, url.PathEscape) becoming part of a fmt format string.
growmap
Package growmap catches a per-caller map on a long-lived struct that a request grows and nothing bounds: no size cap and no time-driven sweep.
Package growmap catches a per-caller map on a long-lived struct that a request grows and nothing bounds: no size cap and no time-driven sweep.
hookedread
Package hookedread keeps the entity screens on the hooked read.
Package hookedread keeps the entity screens on the hooked read.
hygiene
Package hygiene holds the small checks whose whole point is that they currently find nothing.
Package hygiene holds the small checks whose whole point is that they currently find nothing.
internal/astx
Package astx holds the small go/analysis helpers that kept being copied verbatim between the repo analyzers under internal/analyzers.
Package astx holds the small go/analysis helpers that kept being copied verbatim between the repo analyzers under internal/analyzers.
internal/dominance
Package dominance provides the statement-dominance walk shared by the analyzers under internal/analyzers: which statements and conditions of a function body are guaranteed to execute before a given node.
Package dominance provides the statement-dominance walk shared by the analyzers under internal/analyzers: which statements and conditions of a function body are guaranteed to execute before a given node.
internal/pathflow
Package pathflow holds the path-dataflow machinery the root-shaped analyzers (rootwrite, rootread) share: local-binding resolution, the root/base/dir-named root tests, the lexical Join/concat containment shapes — including the one-hop same-package helper that RETURNS a root-joined path — and the EvalSymlinks-on-the-chain judgement that separates the fix posture from a resolution on an unrelated path, plus the verified symlink guards (SymlinkGuards, GuardsPath): a function counts as a guard by what its body does, never by its name, and a guard call gates only the path it was handed.
Package pathflow holds the path-dataflow machinery the root-shaped analyzers (rootwrite, rootread) share: local-binding resolution, the root/base/dir-named root tests, the lexical Join/concat containment shapes — including the one-hop same-package helper that RETURNS a root-joined path — and the EvalSymlinks-on-the-chain judgement that separates the fix posture from a resolution on an unrelated path, plus the verified symlink guards (SymlinkGuards, GuardsPath): a function counts as a guard by what its body does, never by its name, and a guard call gates only the path it was handed.
internal/readsrc
Package readsrc finds the reader a whole-body read consumes.
Package readsrc finds the reader a whole-body read consumes.
internal/rwcall
Package rwcall answers one question for the response-lifecycle analyzers (recoverwrite, doublewrite): does this call write an HTTP response, and to which writer? It decides nothing about when a write is wrong; the analyzers pick that.
Package rwcall answers one question for the response-lifecycle analyzers (recoverwrite, doublewrite): does this call write an HTTP response, and to which writer? It decides nothing about when a write is wrong; the analyzers pick that.
intwrap
Package intwrap catches the two integer-wrap postures that slip past range checks: unsigned→signed conversion without a bound, and unary negation of MinInt inside an abs.
Package intwrap catches the two integer-wrap postures that slip past range checks: unsigned→signed conversion without a bound, and unary negation of MinInt inside an abs.
iounderlock
Package iounderlock catches database and network I/O made while a sync mutex is held.
Package iounderlock catches database and network I/O made while a sync mutex is held.
keytrim
Package keytrim catches strings.TrimSpace rewriting an identity value that is then used as a key.
Package keytrim catches strings.TrimSpace rewriting an identity value that is then used as a key.
laxcoerce
Package laxcoerce catches a wrong type masquerading as absence: a comma-ok type assertion on a map[string]any entry whose failure path returns zero values with a nil error — or continues, or breaks/gotos out of the loop with the nil error intact (2026-11-03 round) — as though the key had never been sent.
Package laxcoerce catches a wrong type masquerading as absence: a comma-ok type assertion on a map[string]any entry whose failure path returns zero values with a nil error — or continues, or breaks/gotos out of the loop with the nil error intact (2026-11-03 round) — as though the key had never been sent.
laxenvelope
Package laxenvelope catches a transport that decodes the SAME envelope type lax at one site while the same package — or, since the 2026-09-07 round, ANY package — decodes that type strictly at another.
Package laxenvelope catches a transport that decodes the SAME envelope type lax at one site while the same package — or, since the 2026-09-07 round, ANY package — decodes that type strictly at another.
layoutfunc
Package layoutfunc flags route-state reads that are lexically inside a layout build (an app.LayoutFunc body) and outside a RouteArea closure (docs/DESIGN-layout-outlets.md, "The lint").
Package layoutfunc flags route-state reads that are lexically inside a layout build (an app.LayoutFunc body) and outside a RouteArea closure (docs/DESIGN-layout-outlets.md, "The lint").
listheader
Package listheader catches a list-valued HTTP header read with Header.Get and then split or token-compared.
Package listheader catches a list-valued HTTP header read with Header.Get and then split or token-compared.
mapwriter
Package mapwriter catches nondeterministic SSR output at its source: ranging over a Go map while writing into an output builder emits attributes/markup in a different order every render.
Package mapwriter catches nondeterministic SSR output at its source: ranging over a Go map while writing into an output builder emits attributes/markup in a different order every render.
multipartparse
Package multipartparse catches a handler that accepts a multipart/form-data body and then parses it with ParseForm alone.
Package multipartparse catches a handler that accepts a multipart/form-data body and then parses it with ParseForm alone.
names
Package names is the dependency-free list of repo analyzer names: the vocabulary of the //gofastr:allow(<name>) marker.
Package names is the dependency-free list of repo analyzer names: the vocabulary of the //gofastr:allow(<name>) marker.
negdur
Package negdur catches time.Duration zero-tests that silently fold a NEGATIVE lifetime onto the "zero means default" or "nonzero means expiry" arm.
Package negdur catches time.Duration zero-tests that silently fold a NEGATIVE lifetime onto the "zero means default" or "nonzero means expiry" arm.
nonfinite
Package nonfinite catches a strconv.ParseFloat result stored or returned without a NaN/Inf gate.
Package nonfinite catches a strconv.ParseFloat result stored or returned without a NaN/Inf gate.
nostore
Package nostore catches a per-caller 2xx response written with no Cache-Control on its path.
Package nostore catches a per-caller 2xx response written with no Cache-Control on its path.
nowaitdelay
Package nowaitdelay catches an exec.CommandContext child with captured stdout started with no WaitDelay bound.
Package nowaitdelay catches an exec.CommandContext child with captured stdout started with no WaitDelay bound.
nullarray
Package nullarray catches a nil slice reaching a JSON field the wire schema requires to be an array, where it encodes as null.
Package nullarray catches a nil slice reaching a JSON field the wire schema requires to be an array, where it encodes as null.
optzero
Package optzero catches a numeric option that lets 0 (or a negative) replace a nonzero default nobody downstream re-checks.
Package optzero catches a numeric option that lets 0 (or a negative) replace a nonzero default nobody downstream re-checks.
poisonedconn
Package poisonedconn catches a session reset on a pinned *sql.Conn whose failure sends the connection back to the pool still holding the session state it was meant to clear.
Package poisonedconn catches a session reset on a pinned *sql.Conn whose failure sends the connection back to the pool still holding the session state it was meant to clear.
quoteident
Package quoteident keeps SQL identifier quoting to one spelling: query.QuoteFolded.
Package quoteident keeps SQL identifier quoting to one spelling: query.QuoteFolded.
ratelimitkey
Package ratelimitkey catches a per-IP rate limit keyed on a client's full address.
Package ratelimitkey catches a per-IP rate limit keyed on a client's full address.
rawtext
Package rawtext keeps every message the framework answers a request with inside the i18n catalog.
Package rawtext keeps every message the framework answers a request with inside the i18n catalog.
recovercallback
Package recovercallback catches registry callbacks invoked with no recover in scope on a dispatch path that has no net.
Package recovercallback catches registry callbacks invoked with no recover in scope on a dispatch path that has no net.
recoverlog
Package recoverlog catches a recover() value reaching a log sink without a scrub.
Package recoverlog catches a recover() value reaching a log sink without a scrub.
recoverwrite
Package recoverwrite catches a deferred recover that answers a panic by writing a response without first asking whether the response had already started.
Package recoverwrite catches a deferred recover that answers a panic by writing a response without first asking whether the response had already started.
reflectset
Package reflectset catches reflect.Value mutation of a struct field that never passed through CanSet: Set, SetString, SetInt, and the rest of the Set* family panic on values obtained from an unexported field, and the panic fires at injection time, not at declaration time, so a single lowercased tagged field takes down every request.
Package reflectset catches reflect.Value mutation of a struct field that never passed through CanSet: Set, SetString, SetInt, and the rest of the Set* family panic on values obtained from an unexported field, and the panic fires at injection time, not at declaration time, so a single lowercased tagged field takes down every request.
reqparamlimit
Package reqparamlimit catches unclamped request-sourced integers flowing into limit/cap-shaped call parameters.
Package reqparamlimit catches unclamped request-sourced integers flowing into limit/cap-shaped call parameters.
resolvedial
Package resolvedial catches an SSRF guard that resolves a host name, checks the answer, and then lets the transport resolve the same name again to dial it.
Package resolvedial catches an SSRF guard that resolves a host name, checks the answer, and then lets the transport resolve the same name again to dial it.
rootread
Package rootread catches reads whose containment under a root is resolved lexically only — the read twin of rootwrite.
Package rootread catches reads whose containment under a root is resolved lexically only — the read twin of rootwrite.
rootwrite
Package rootwrite catches writes whose containment under a root is resolved lexically only: os.WriteFile / os.Create / os.CreateTemp / os.OpenFile(write flag) / os.Mkdir / os.MkdirAll / os.Remove on a path built under a root — filepath.Join, or a flat `root + "/" + x` concatenation — where the root is a caller-supplied parameter or field — with no filepath.EvalSymlinks on that path's chain — plus the archive twin: zip.Writer entry names assembled from a parameter with no path.Clean on the entry-name chain.
Package rootwrite catches writes whose containment under a root is resolved lexically only: os.WriteFile / os.Create / os.CreateTemp / os.OpenFile(write flag) / os.Mkdir / os.MkdirAll / os.Remove on a path built under a root — filepath.Join, or a flat `root + "/" + x` concatenation — where the root is a caller-supplied parameter or field — with no filepath.EvalSymlinks on that path's chain — plus the archive twin: zip.Writer entry names assembled from a parameter with no path.Clean on the entry-name chain.
rsakeysize
Package rsakeysize catches an RSA public key built from a decoded modulus that nothing bounds from above.
Package rsakeysize catches an RSA public key built from a decoded modulus that nothing bounds from above.
sanitizefix
Package sanitizefix catches a scrub that removes a multi-character match in one pass: the removal splices the match's neighbours together, and they can spell the very thing it removed.
Package sanitizefix catches a scrub that removes a multi-character match in one pass: the removal splices the match's neighbours together, and they can spell the very thing it removed.
secretcompare
Package secretcompare catches a client-supplied credential compared with == or != instead of a constant-time primitive.
Package secretcompare catches a client-supplied credential compared with == or != instead of a constant-time primitive.
settlectx
Package settlectx catches an outcome write (ack, nack, settle, record, mark) made on the same cancellable context the unit of work it records just ran under.
Package settlectx catches an outcome write (ack, nack, settle, record, mark) made on the same cancellable context the unit of work it records just ran under.
siblingresult
Package siblingresult catches a call site that blanks a result its function marks must-use: the flag one path dropped is the flag the other paths exist to honour.
Package siblingresult catches a call site that blanks a result its function marks must-use: the flag one path dropped is the flag the other paths exist to honour.
silentskip
Package silentskip catches a loop that backs off and retries past an error without a word: `if err != nil { wait(); continue }` whose block never reads err.
Package silentskip catches a loop that backs off and retries past an error without a word: `if err != nil { wait(); continue }` whose block never reads err.
statusrange
Package statusrange catches a response status that reaches WriteHeader (or http.Error's code argument) without a range check.
Package statusrange catches a response status that reaches WriteHeader (or http.Error's code argument) without a range check.
suite
Package suite is the set of go/analysis analyzers GoFastr runs under `go vet -vettool`.
Package suite is the set of go/analysis analyzers GoFastr runs under `go vet -vettool`.
testgap
Package testgap reports validator enumeration arms that no fixture in the package ever exercises.
Package testgap reports validator enumeration arms that no fixture in the package ever exercises.
textbind
Package textbind catches request text bound into a SQL text parameter with no check that Postgres can store it.
Package textbind catches request text bound into a SQL text parameter with no check that Postgres can store it.
tightenshared
Package tightenshared catches owner-only tightening of a directory the caller named, applied whether or not this code created it.
Package tightenshared catches owner-only tightening of a directory the caller named, applied whether or not this code created it.
timestampid
Package timestampid catches an identifier minted from wall-clock time: a time.Now().Unix()/.UnixMilli()/.UnixNano() value formatted into a string (fmt.Sprintf, strconv.FormatInt/FormatUint/Itoa, or + concatenation) and bound to a name ending in id, token, session, a credential-qualified key (apiKey, signingKey), nonce, secret, or capability.
Package timestampid catches an identifier minted from wall-clock time: a time.Now().Unix()/.UnixMilli()/.UnixNano() value formatted into a string (fmt.Sprintf, strconv.FormatInt/FormatUint/Itoa, or + concatenation) and bound to a name ending in id, token, session, a credential-qualified key (apiKey, signingKey), nonce, secret, or capability.
unboundedbody
Package unboundedbody catches an inbound HTTP request body that is read or decoded without a size cap, so a single request can spend the server's memory.
Package unboundedbody catches an inbound HTTP request body that is read or decoded without a size cap, so a single request can spend the server's memory.
unboundedresp
Package unboundedresp catches the unbounded read of an HTTP RESPONSE body: io.ReadAll(resp.Body), or a json/xml/yaml Decoder seated on it, with no io.LimitReader or http.MaxBytesReader anywhere on that body's chain in the function — or one hop away in a same-package helper the body is passed to.
Package unboundedresp catches the unbounded read of an HTTP RESPONSE body: io.ReadAll(resp.Body), or a json/xml/yaml Decoder seated on it, with no io.LimitReader or http.MaxBytesReader anywhere on that body's chain in the function — or one hop away in a same-package helper the body is passed to.
unseated
Package unseated catches a long-lived stream surface that admits a connection without any seat acquisition reachable on its open path.
Package unseated catches a long-lived stream surface that admits a connection without any seat acquisition reachable on its open path.
worldreadable
Package worldreadable catches files and directories written for state or secrets with group/other permission bits: os.WriteFile / os.Create / os.OpenFile(write flags) / os.Mkdir / os.MkdirAll whose mode is a CONSTANT literal carrying group or other bits (0644, 0755, 0666, 0777; os.Create is umask-default 0666), while this repo's own discipline for that artifact class is owner-only (0600/0700 plus fileperm.Restrict, pinned by battery/log, upload storage, the session sqlite store and DEK, freeze's world.json, and the credstore).
Package worldreadable catches files and directories written for state or secrets with group/other permission bits: os.WriteFile / os.Create / os.OpenFile(write flags) / os.Mkdir / os.MkdirAll whose mode is a CONSTANT literal carrying group or other bits (0644, 0755, 0666, 0777; os.Create is umask-default 0666), while this repo's own discipline for that artifact class is owner-only (0600/0700 plus fileperm.Restrict, pinned by battery/log, upload storage, the session sqlite store and DEK, freeze's world.json, and the credstore).
wrapwriter
Package wrapwriter catches http.ResponseWriter wrappers that hide the connection from http.ResponseController, and middleware that changes response headers after the handler has already sent them.
Package wrapwriter catches http.ResponseWriter wrappers that hide the connection from http.ResponseController, and middleware that changes response headers after the handler has already sent them.
Package asciicase folds case A–Z only: the folding Postgres applies to an unquoted identifier, CSS to a keyword or unit, and the repo to a name, table, file extension or key it compares case-insensitively.
Package asciicase folds case A–Z only: the folding Postgres applies to an unquoted identifier, CSS to a keyword or unit, and the repo to a name, table, file extension or key it compares case-insensitively.
Package astbase holds the one go/ast helper that two trees with different dependency budgets both need: framework/contracts, which must build without golang.org/x/tools, and internal/analyzers' astx, which sits on golang.org/x/tools/go/analysis.
Package astbase holds the one go/ast helper that two trees with different dependency budgets both need: framework/contracts, which must build without golang.org/x/tools, and internal/analyzers' astx, which sits on golang.org/x/tools/go/analysis.
Package atomicfile supports replacement of complete files on disk.
Package atomicfile supports replacement of complete files on disk.
Package attrscan finds data-cui-* attribute values in rendered HTML with a byte scan instead of a regexp.
Package attrscan finds data-cui-* attribute values in rendered HTML with a byte scan instead of a regexp.
Package bom drops the UTF-8 byte order mark from the start of a text file the developer wrote.
Package bom drops the UTF-8 byte order mark from the start of a text file the developer wrote.
Package browserpath resolves the Chrome/Chromium/Edge executable that chromedp should launch.
Package browserpath resolves the Chrome/Chromium/Edge executable that chromedp should launch.
Package buildoutput identifies generated framework output directories.
Package buildoutput identifies generated framework output directories.
Package chromedptest boots the headless Chrome used by the repo's chromedp-driven tests.
Package chromedptest boots the headless Chrome used by the repo's chromedp-driven tests.
Package clientip reads the client address out of X-Forwarded-For the one way that survives an appending proxy: from the right.
Package clientip reads the client address out of X-Forwarded-For the one way that survives an appending proxy: from the right.
Package deepcopy rebuilds every map and slice reachable from a value, so a holder of the copy cannot write into the original's containers.
Package deepcopy rebuilds every map and slice reachable from a value, so a holder of the copy cannot write into the original's containers.
Package dsnredact strips credentials from database DSNs so the remainder can be logged or committed (host/db name are configuration, not secrets).
Package dsnredact strips credentials from database DSNs so the remainder can be logged or committed (host/db name are configuration, not secrets).
Package filelock takes an exclusive OS lock on an open file, blocking (Lock) or not (TryLock): flock on Unix, LockFileEx on Windows.
Package filelock takes an exclusive OS lock on an open file, blocking (Lock) or not (TryLock): flock on Unix, LockFileEx on Windows.
filepermtest
Package filepermtest checks file permissions using the host's permission model.
Package filepermtest checks file permissions using the host's permission model.
Package gatepath decides whether a request path sits under one of the path prefixes a loopback host's session gate lets through (battery/service and battery/desktop Config.OpenPrefixes).
Package gatepath decides whether a request path sits under one of the path prefixes a loopback host's session gate lets through (battery/service and battery/desktop Config.OpenPrefixes).
Package hookenv holds the shell the git hooks source to set up their environment (strip-git-path.sh), so its tests sit beside it and a change to it selects them.
Package hookenv holds the shell the git hooks source to set up their environment (strip-git-path.sh), so its tests sit beside it and a change to it selects them.
Package inflect holds the repo's one English singularizer for entity display names, shared by the app generator and the admin battery.
Package inflect holds the repo's one English singularizer for entity display names, shared by the app generator and the admin battery.
Package jsonexact decodes JSON into a Go value without rounding the numbers an interface value holds.
Package jsonexact decodes JSON into a Go value without rounding the numbers an interface value holds.
Package pgtest provides a shared real-Postgres test harness usable from any package in the module (core/migrate, cmd/gofastr, …) without importing framework/internal/testdb, which is import-restricted to the framework tree.
Package pgtest provides a shared real-Postgres test harness usable from any package in the module (core/migrate, cmd/gofastr, …) without importing framework/internal/testdb, which is import-restricted to the framework tree.
Package procalive answers whether a process id names a running process, for code that keeps a pid in a file and has to tell a live owner from a stale record: battery/service waiting for its daemon to exit, framework/localrun pruning records a crashed run left behind.
Package procalive answers whether a process id names a running process, for code that keeps a pid in a file and has to tell a live owner from a stale record: battery/service waiting for its daemon to exit, framework/localrun pruning records a crashed run left behind.
Package renderdiag connects recovered component panics to request-local test reporters.
Package renderdiag connects recovered component panics to request-local test reporters.
Package retired reports retired class names and kit data-* attributes in rendered HTML.
Package retired reports retired class names and kit data-* attributes in rendered HTML.
internal/tablegen command
Command tablegen writes internal/retired's retired-name table (retired_table.gen.go) from internal/upgrade's migration registry: every class (strings.classes, css.classes) and attribute (strings.attrs) a breaking note names, kept by names.Keep — the kit's namespaces only, first note wins.
Command tablegen writes internal/retired's retired-name table (retired_table.gen.go) from internal/upgrade's migration registry: every class (strings.classes, css.classes) and attribute (strings.attrs) a breaking note names, kept by names.Keep — the kit's namespaces only, first note wins.
names
Package names holds the retired-name data model and the rule for which names the runtime check keeps.
Package names holds the retired-name data model and the rule for which names the runtime check keeps.
Package rootfs provides kernel-contained reads without idle directory handles.
Package rootfs provides kernel-contained reads without idle directory handles.
Package scratchdir owns where the app spec gate tests generate their scratch packages, and checks the naming contract that keeps those packages invisible to `go list ./...` and `go build ./...` while they exist.
Package scratchdir owns where the app spec gate tests generate their scratch packages, and checks the naming contract that keeps those packages invisible to `go list ./...` and `go build ./...` while they exist.
Package semver holds the release-version rules the gofastr CLI and the migration registry share: which spellings are a release version, and how two of them order.
Package semver holds the release-version rules the gofastr CLI and the migration registry share: which spellings are a release version, and how two of them order.
Package sqlredact turns a SQL statement into its shape: every string and number literal replaced by ?, comments dropped, whitespace collapsed, control bytes escaped.
Package sqlredact turns a SQL statement into its shape: every string and number literal replaced by ?, comments dropped, whitespace collapsed, control bytes escaped.
Package testinputs puts a subprocess's source files into the calling test's Go test cache key.
Package testinputs puts a subprocess's source files into the calling test's Go test cache key.
Package teststorage owns temporary local storage handles for test fixtures.
Package teststorage owns temporary local storage handles for test fixtures.
Package upgrade holds the migration registry `gofastr upgrade` reads: one entry per release that carries migration-relevant changes, each note with the guidance an app needs and a Find describing exactly which code the change affects.
Package upgrade holds the migration registry `gofastr upgrade` reads: one entry per release that carries migration-relevant changes, each note with the guidance an app needs and a Find describing exactly which code the change affects.
examplescan
Package examplescan holds the check that the repo's migrated examples tree stays silent under the v0.86.0 and v0.87.0 release notes.
Package examplescan holds the check that the repo's migrated examples tree stays silent under the v0.86.0 and v0.87.0 release notes.
releasetest
Package releasetest drives the shipped release notes (internal/upgrade/releases/*.yml) through the real scan engine: each note's affected spelling is a hit, its migrated spelling is not, and its Go-API matchers resolve against a stub kit at the real import paths.
Package releasetest drives the shipped release notes (internal/upgrade/releases/*.yml) through the real scan engine: each note's affected spelling is a hit, its migrated spelling is not, and its Go-API matchers resolve against a stub kit at the real import paths.
releasetest/mid
Package mid drives the shipped v0.56.0–v0.85.0 release notes through the real scan engine.
Package mid drives the shipped v0.56.0–v0.85.0 release notes through the real scan engine.
releasetest/old
Package old drives the shipped v0.3.0–v0.55.0 release notes through the real scan engine.
Package old drives the shipped v0.3.0–v0.55.0 release notes through the real scan engine.
scan
Package scan runs the migration registry's typed matchers against an app: Go through the type checker, strings as constant values with context, CSS through the CSS tokenizer, gofastr.yml through the YAML parser, go.mod through its go directive, and a per-line regex only as the declared last resort.
Package scan runs the migration registry's typed matchers against an app: Go through the type checker, strings as constant values with context, CSS through the CSS tokenizer, gofastr.yml through the YAML parser, go.mod through its go directive, and a per-line regex only as the declared last resort.
scantest
Package scantest builds throwaway apps for tests that drive the upgrade scanner (internal/upgrade/scan) over registry notes.
Package scantest builds throwaway apps for tests that drive the upgrade scanner (internal/upgrade/scan) over registry notes.
Package winversion writes and reads the VERSIONINFO resource a Windows desktop build carries.
Package winversion writes and reads the VERSIONINFO resource a Windows desktop build carries.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL