@gotgenes/pi-permission-system 33.0.2 → 33.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [33.0.3](https://github.com/gotgenes/pi-packages/compare/pi-permission-system-v33.0.2...pi-permission-system-v33.0.3) (2026-09-19)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **pi-permission-system:** project the operands of a command hosted in a quoted argument ([3da8a63](https://github.com/gotgenes/pi-packages/commit/3da8a63b0f4f4f234c1dfdf2196a83f4f62940e8)), closes [#945](https://github.com/gotgenes/pi-packages/issues/945)
|
|
14
|
+
* **pi-permission-system:** project the operands of a command hosted in a generic command's quoted argument ([9eeece0](https://github.com/gotgenes/pi-packages/commit/9eeece05789fab4fe44b71f98cd3179e838a5def)), closes [#945](https://github.com/gotgenes/pi-packages/issues/945)
|
|
15
|
+
|
|
16
|
+
### Documentation
|
|
17
|
+
|
|
18
|
+
* **pi-permission-system:** record the widened hosted-argument projection ([c9b277a](https://github.com/gotgenes/pi-packages/commit/c9b277a495dad8fde7fe4d18536aae9ee384fee3)), closes [#945](https://github.com/gotgenes/pi-packages/issues/945)
|
|
19
|
+
|
|
8
20
|
## [33.0.2](https://github.com/gotgenes/pi-packages/compare/pi-permission-system-v33.0.1...pi-permission-system-v33.0.2) (2026-09-19)
|
|
9
21
|
|
|
10
22
|
|
package/package.json
CHANGED
|
@@ -129,7 +129,9 @@ export function collectRedirectTokens(node: TSNode): PathToken[] {
|
|
|
129
129
|
* execution contexts, reading none of the host subtree's own text.
|
|
130
130
|
*
|
|
131
131
|
* This is what lets a heredoc body contribute its substitution's operands while
|
|
132
|
-
* its prose stays out of the path surface entirely
|
|
132
|
+
* its prose stays out of the path surface entirely, and an argument node
|
|
133
|
+
* contribute its quoted substitution's operands while its own text is judged
|
|
134
|
+
* by whatever role its walker gave it (#945).
|
|
133
135
|
*
|
|
134
136
|
* `node` may be a context outright (`> $(cmd)`) or merely contain one
|
|
135
137
|
* (`> ${DIR}/$(cmd)`), so the traversal is the root-inclusive
|
|
@@ -617,6 +619,15 @@ function collectPatternCommandTokens(
|
|
|
617
619
|
const isArgNode = ARG_NODE_TYPES.has(child.type);
|
|
618
620
|
const text = resolveNodeText(child);
|
|
619
621
|
|
|
622
|
+
// An argument is read for its text below, and its text alone — but a
|
|
623
|
+
// quoted substitution sitting there really runs, and its own operands are
|
|
624
|
+
// candidates wherever it sits (ADR 0009's positional invariance). The
|
|
625
|
+
// unquoted spelling reaches the nested command through the `!isArgNode`
|
|
626
|
+
// recursions below; the quoted one parses as a `string` and would
|
|
627
|
+
// otherwise stop here, whichever role the argument turns out to have
|
|
628
|
+
// (#945).
|
|
629
|
+
if (isArgNode) tokens.push(...collectHostedExecutionTokens(child));
|
|
630
|
+
|
|
620
631
|
// Handle the argument a previous flag consumed. The consumption discharges
|
|
621
632
|
// on whatever node type follows, not only on an ARG_NODE_TYPES one: a bare
|
|
622
633
|
// number (`-A 3`), an expansion (`-A $N`), and a substitution
|
|
@@ -772,6 +783,13 @@ function collectGenericCommandTokens(
|
|
|
772
783
|
continue;
|
|
773
784
|
}
|
|
774
785
|
|
|
786
|
+
// Read for its text below — but a quoted substitution among these
|
|
787
|
+
// arguments really runs, and its own operands are candidates wherever it
|
|
788
|
+
// sits (ADR 0009's positional invariance, #945). The unquoted spelling
|
|
789
|
+
// reaches the nested command through the trailing recursion.
|
|
790
|
+
if (ARG_NODE_TYPES.has(child.type))
|
|
791
|
+
tokens.push(...collectHostedExecutionTokens(child));
|
|
792
|
+
|
|
775
793
|
// If there was no explicit command_name node, the first word-like
|
|
776
794
|
// child is the command name itself — skip it.
|
|
777
795
|
if (!seenCommandName && ARG_NODE_TYPES.has(child.type)) {
|