@effected/github-actions 0.13.2 → 0.13.4
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/PackageManagerInstaller.js +10 -0
- package/index.d.ts +10 -0
- package/internal/runnerFile.js +21 -2
- package/package.json +9 -8
|
@@ -615,6 +615,16 @@ const dies = unstubbed("PackageManagerInstaller.makeTest");
|
|
|
615
615
|
* stage-then-swap invariant holds here for free — shims included, the tool
|
|
616
616
|
* cache only ever contains complete package managers.
|
|
617
617
|
*
|
|
618
|
+
* The pin is the whole contract: the installer provisions exactly the named
|
|
619
|
+
* version and does not read the artifact's `engines.node` against the
|
|
620
|
+
* runner's node. A pin whose engines the runner does not satisfy (npm 12 on
|
|
621
|
+
* a node below `^22.22.2 || ^24.15.0 || >=26.0.0`) still installs and still
|
|
622
|
+
* runs — npm itself warns (`npm warn cli npm v12.0.2 does not support ...`)
|
|
623
|
+
* on every invocation and carries on (`lib/cli/entry.js`), so the
|
|
624
|
+
* mismatch is visible in the job log but is not a typed failure here.
|
|
625
|
+
* Keeping node and the manager pins coherent is the consumer's call, made
|
|
626
|
+
* where it pins node.
|
|
627
|
+
*
|
|
618
628
|
* @example
|
|
619
629
|
* ```ts
|
|
620
630
|
* import { ActionOutputs, PackageManagerInstaller } from "@effected/github-actions";
|
package/index.d.ts
CHANGED
|
@@ -4677,6 +4677,16 @@ declare const PackageManagerInstaller_base: Context.ServiceClass<PackageManagerI
|
|
|
4677
4677
|
* stage-then-swap invariant holds here for free — shims included, the tool
|
|
4678
4678
|
* cache only ever contains complete package managers.
|
|
4679
4679
|
*
|
|
4680
|
+
* The pin is the whole contract: the installer provisions exactly the named
|
|
4681
|
+
* version and does not read the artifact's `engines.node` against the
|
|
4682
|
+
* runner's node. A pin whose engines the runner does not satisfy (npm 12 on
|
|
4683
|
+
* a node below `^22.22.2 || ^24.15.0 || >=26.0.0`) still installs and still
|
|
4684
|
+
* runs — npm itself warns (`npm warn cli npm v12.0.2 does not support ...`)
|
|
4685
|
+
* on every invocation and carries on (`lib/cli/entry.js`), so the
|
|
4686
|
+
* mismatch is visible in the job log but is not a typed failure here.
|
|
4687
|
+
* Keeping node and the manager pins coherent is the consumer's call, made
|
|
4688
|
+
* where it pins node.
|
|
4689
|
+
*
|
|
4680
4690
|
* @example
|
|
4681
4691
|
* ```ts
|
|
4682
4692
|
* import { ActionOutputs, PackageManagerInstaller } from "@effected/github-actions";
|
package/internal/runnerFile.js
CHANGED
|
@@ -25,11 +25,30 @@ const delimiterFor = (value) => {
|
|
|
25
25
|
};
|
|
26
26
|
/**
|
|
27
27
|
* Whether `name` can head a block without breaking the structure it lives
|
|
28
|
-
* in: non-empty,
|
|
28
|
+
* in: non-empty, free of the line breaks that would end it early, and free
|
|
29
|
+
* of the separators the runner's file-command parser would re-split the
|
|
30
|
+
* line on.
|
|
31
|
+
*
|
|
32
|
+
* @remarks
|
|
33
|
+
* The runner (`FileCommandManager`) locates the first `=` and the first
|
|
34
|
+
* `<<` on each line and whichever comes first decides the shape: a
|
|
35
|
+
* `key=value` property assignment, or a `name<<delimiter` heredoc block.
|
|
36
|
+
* Because a block line is always `name<<DELIMITER`, an `=` anywhere in the
|
|
37
|
+
* name precedes the marker and the line parses as a property assignment cut
|
|
38
|
+
* at that `=`, leaving every line of the block to be read as stray entries;
|
|
39
|
+
* a `<<` inside the name splits there instead and yields a delimiter the
|
|
40
|
+
* terminating line can never match. Either way the entries after the
|
|
41
|
+
* malformed block are corrupted, so both separators are refused. A name
|
|
42
|
+
* ending in a single `<` corrupts the block the same way: the composed
|
|
43
|
+
* header `name<<<DELIMITER` matches the runner's first `<<` one character
|
|
44
|
+
* early, so the delimiter it waits for is `<DELIMITER` and the terminating
|
|
45
|
+
* line never matches — the whole file is lost. An interior `<` is safe
|
|
46
|
+
* (`a<b` still composes a header that splits exactly at the marker), so
|
|
47
|
+
* only the trailing position is refused.
|
|
29
48
|
*
|
|
30
49
|
* @internal
|
|
31
50
|
*/
|
|
32
|
-
const isUsableName = (name) => name !== "" && !/[\r\n]/.test(name);
|
|
51
|
+
const isUsableName = (name) => name !== "" && !/[\r\n]/.test(name) && !name.includes("=") && !name.includes("<<") && !name.endsWith("<");
|
|
33
52
|
/**
|
|
34
53
|
* One heredoc block, ready to append. The caller has checked the name with
|
|
35
54
|
* {@link isUsableName}.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effected/github-actions",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The GitHub Actions runtime: env, inputs, outputs, state, logging, cache, artifacts, blob storage, OIDC and the token bridge.",
|
|
6
6
|
"keywords": [
|
|
@@ -39,13 +39,14 @@
|
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@azure/storage-blob": "^12.33.0",
|
|
42
|
-
"@effected/github": "^0.10.
|
|
43
|
-
"@effected/glob": "^0.6.
|
|
44
|
-
"@effected/markdown": "^0.10.
|
|
45
|
-
"@effected/npm": "^0.14.
|
|
46
|
-
"@effected/sbom": "^0.6.
|
|
47
|
-
"@effected/
|
|
48
|
-
"@effected/
|
|
42
|
+
"@effected/github": "^0.10.2",
|
|
43
|
+
"@effected/glob": "^0.6.1",
|
|
44
|
+
"@effected/markdown": "^0.10.1",
|
|
45
|
+
"@effected/npm": "^0.14.2",
|
|
46
|
+
"@effected/sbom": "^0.6.2",
|
|
47
|
+
"@effected/semver": "^0.7.1",
|
|
48
|
+
"@effected/templates": "^0.6.1",
|
|
49
|
+
"@effected/walker": "^0.9.1"
|
|
49
50
|
},
|
|
50
51
|
"peerDependencies": {
|
|
51
52
|
"@effect/platform-node": "4.0.0-rc.115",
|