@savvy-web/silk 2.2.2 → 2.2.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/changesets-changelog.cjs +23 -9
- package/changesets-changelog.js +24 -9
- package/changesets-markdownlint.cjs +23 -9
- package/changesets-markdownlint.js +24 -9
- package/package.json +4 -4
package/changesets-changelog.cjs
CHANGED
|
@@ -384,6 +384,22 @@ const ChangesetConfigLive = effect.Layer.effect(ChangesetConfig, effect.Effect.g
|
|
|
384
384
|
};
|
|
385
385
|
}));
|
|
386
386
|
//#endregion
|
|
387
|
+
//#region ../silk-effects/dist/dev/pkg/utils/TrailingSlash.js
|
|
388
|
+
/**
|
|
389
|
+
* Trim trailing slashes from a string.
|
|
390
|
+
*
|
|
391
|
+
* @remarks
|
|
392
|
+
* Trims trailing slashes with an index scan rather than `/\/+$/`. That regex is
|
|
393
|
+
* unanchored at the start, so the engine retries the match from every position
|
|
394
|
+
* and degrades to O(n²) on a string of many slashes (CodeQL `js/polynomial-redos`).
|
|
395
|
+
* Only a trailing run of slashes is removed; interior slash runs are untouched.
|
|
396
|
+
*/
|
|
397
|
+
const trimTrailingSlashes = (s) => {
|
|
398
|
+
let end = s.length;
|
|
399
|
+
while (end > 0 && s[end - 1] === "/") end -= 1;
|
|
400
|
+
return s.slice(0, end);
|
|
401
|
+
};
|
|
402
|
+
//#endregion
|
|
387
403
|
//#region ../../node_modules/.pnpm/workspaces-effect@2.0.3_@effect+platform@0.96.2_effect@3.21.4__effect@3.21.4/node_modules/workspaces-effect/errors/CatalogAssemblyError.js
|
|
388
404
|
/**
|
|
389
405
|
* Base constant for {@link CatalogAssemblyError}.
|
|
@@ -10868,18 +10884,16 @@ var SilkPublishability = class {
|
|
|
10868
10884
|
* normalizes to `.`, matching how a root-directory target is recorded.
|
|
10869
10885
|
*
|
|
10870
10886
|
* @remarks
|
|
10871
|
-
* Trailing
|
|
10872
|
-
*
|
|
10873
|
-
*
|
|
10874
|
-
* `js/polynomial-redos`). `dir` reaches
|
|
10875
|
-
* the bundler writes but a consumer
|
|
10887
|
+
* Trailing-slash trimming is delegated to the shared `trimTrailingSlashes`
|
|
10888
|
+
* index-scan helper rather than `/\/+$/`: that regex is unanchored at the
|
|
10889
|
+
* start, so the engine retries the match from every position and degrades to
|
|
10890
|
+
* O(n²) on a path of many slashes (CodeQL `js/polynomial-redos`). `dir` reaches
|
|
10891
|
+
* here from `dist/prod/targets.json`, which the bundler writes but a consumer
|
|
10892
|
+
* repo could hand-edit.
|
|
10876
10893
|
*/
|
|
10877
10894
|
const normalizeDir = (dir) => {
|
|
10878
10895
|
const slashed = dir.replaceAll("\\", "/");
|
|
10879
|
-
const
|
|
10880
|
-
let end = withoutPrefix.length;
|
|
10881
|
-
while (end > 0 && withoutPrefix[end - 1] === "/") end -= 1;
|
|
10882
|
-
const normalized = withoutPrefix.slice(0, end);
|
|
10896
|
+
const normalized = trimTrailingSlashes(slashed.startsWith("./") ? slashed.slice(2) : slashed);
|
|
10883
10897
|
return normalized === "" ? "." : normalized;
|
|
10884
10898
|
};
|
|
10885
10899
|
/** True when a built target directory's package.json is `private: true`. Missing/unreadable/malformed → false. */
|
package/changesets-changelog.js
CHANGED
|
@@ -398,6 +398,23 @@ const ChangesetConfigLive = Layer.effect(ChangesetConfig, Effect.gen(function* (
|
|
|
398
398
|
};
|
|
399
399
|
}));
|
|
400
400
|
|
|
401
|
+
//#endregion
|
|
402
|
+
//#region ../silk-effects/dist/dev/pkg/utils/TrailingSlash.js
|
|
403
|
+
/**
|
|
404
|
+
* Trim trailing slashes from a string.
|
|
405
|
+
*
|
|
406
|
+
* @remarks
|
|
407
|
+
* Trims trailing slashes with an index scan rather than `/\/+$/`. That regex is
|
|
408
|
+
* unanchored at the start, so the engine retries the match from every position
|
|
409
|
+
* and degrades to O(n²) on a string of many slashes (CodeQL `js/polynomial-redos`).
|
|
410
|
+
* Only a trailing run of slashes is removed; interior slash runs are untouched.
|
|
411
|
+
*/
|
|
412
|
+
const trimTrailingSlashes = (s) => {
|
|
413
|
+
let end = s.length;
|
|
414
|
+
while (end > 0 && s[end - 1] === "/") end -= 1;
|
|
415
|
+
return s.slice(0, end);
|
|
416
|
+
};
|
|
417
|
+
|
|
401
418
|
//#endregion
|
|
402
419
|
//#region ../../node_modules/.pnpm/workspaces-effect@2.0.3_@effect+platform@0.96.2_effect@3.21.4__effect@3.21.4/node_modules/workspaces-effect/errors/CatalogAssemblyError.js
|
|
403
420
|
/**
|
|
@@ -11064,18 +11081,16 @@ var SilkPublishability = class {
|
|
|
11064
11081
|
* normalizes to `.`, matching how a root-directory target is recorded.
|
|
11065
11082
|
*
|
|
11066
11083
|
* @remarks
|
|
11067
|
-
* Trailing
|
|
11068
|
-
*
|
|
11069
|
-
*
|
|
11070
|
-
* `js/polynomial-redos`). `dir` reaches
|
|
11071
|
-
* the bundler writes but a consumer
|
|
11084
|
+
* Trailing-slash trimming is delegated to the shared `trimTrailingSlashes`
|
|
11085
|
+
* index-scan helper rather than `/\/+$/`: that regex is unanchored at the
|
|
11086
|
+
* start, so the engine retries the match from every position and degrades to
|
|
11087
|
+
* O(n²) on a path of many slashes (CodeQL `js/polynomial-redos`). `dir` reaches
|
|
11088
|
+
* here from `dist/prod/targets.json`, which the bundler writes but a consumer
|
|
11089
|
+
* repo could hand-edit.
|
|
11072
11090
|
*/
|
|
11073
11091
|
const normalizeDir = (dir) => {
|
|
11074
11092
|
const slashed = dir.replaceAll("\\", "/");
|
|
11075
|
-
const
|
|
11076
|
-
let end = withoutPrefix.length;
|
|
11077
|
-
while (end > 0 && withoutPrefix[end - 1] === "/") end -= 1;
|
|
11078
|
-
const normalized = withoutPrefix.slice(0, end);
|
|
11093
|
+
const normalized = trimTrailingSlashes(slashed.startsWith("./") ? slashed.slice(2) : slashed);
|
|
11079
11094
|
return normalized === "" ? "." : normalized;
|
|
11080
11095
|
};
|
|
11081
11096
|
/** True when a built target directory's package.json is `private: true`. Missing/unreadable/malformed → false. */
|
|
@@ -388,6 +388,22 @@ const ChangesetConfigLive = effect.Layer.effect(ChangesetConfig, effect.Effect.g
|
|
|
388
388
|
};
|
|
389
389
|
}));
|
|
390
390
|
//#endregion
|
|
391
|
+
//#region ../silk-effects/dist/dev/pkg/utils/TrailingSlash.js
|
|
392
|
+
/**
|
|
393
|
+
* Trim trailing slashes from a string.
|
|
394
|
+
*
|
|
395
|
+
* @remarks
|
|
396
|
+
* Trims trailing slashes with an index scan rather than `/\/+$/`. That regex is
|
|
397
|
+
* unanchored at the start, so the engine retries the match from every position
|
|
398
|
+
* and degrades to O(n²) on a string of many slashes (CodeQL `js/polynomial-redos`).
|
|
399
|
+
* Only a trailing run of slashes is removed; interior slash runs are untouched.
|
|
400
|
+
*/
|
|
401
|
+
const trimTrailingSlashes = (s) => {
|
|
402
|
+
let end = s.length;
|
|
403
|
+
while (end > 0 && s[end - 1] === "/") end -= 1;
|
|
404
|
+
return s.slice(0, end);
|
|
405
|
+
};
|
|
406
|
+
//#endregion
|
|
391
407
|
//#region ../../node_modules/.pnpm/workspaces-effect@2.0.3_@effect+platform@0.96.2_effect@3.21.4__effect@3.21.4/node_modules/workspaces-effect/errors/CatalogAssemblyError.js
|
|
392
408
|
/**
|
|
393
409
|
* Base constant for {@link CatalogAssemblyError}.
|
|
@@ -10872,18 +10888,16 @@ var SilkPublishability = class {
|
|
|
10872
10888
|
* normalizes to `.`, matching how a root-directory target is recorded.
|
|
10873
10889
|
*
|
|
10874
10890
|
* @remarks
|
|
10875
|
-
* Trailing
|
|
10876
|
-
*
|
|
10877
|
-
*
|
|
10878
|
-
* `js/polynomial-redos`). `dir` reaches
|
|
10879
|
-
* the bundler writes but a consumer
|
|
10891
|
+
* Trailing-slash trimming is delegated to the shared `trimTrailingSlashes`
|
|
10892
|
+
* index-scan helper rather than `/\/+$/`: that regex is unanchored at the
|
|
10893
|
+
* start, so the engine retries the match from every position and degrades to
|
|
10894
|
+
* O(n²) on a path of many slashes (CodeQL `js/polynomial-redos`). `dir` reaches
|
|
10895
|
+
* here from `dist/prod/targets.json`, which the bundler writes but a consumer
|
|
10896
|
+
* repo could hand-edit.
|
|
10880
10897
|
*/
|
|
10881
10898
|
const normalizeDir = (dir) => {
|
|
10882
10899
|
const slashed = dir.replaceAll("\\", "/");
|
|
10883
|
-
const
|
|
10884
|
-
let end = withoutPrefix.length;
|
|
10885
|
-
while (end > 0 && withoutPrefix[end - 1] === "/") end -= 1;
|
|
10886
|
-
const normalized = withoutPrefix.slice(0, end);
|
|
10900
|
+
const normalized = trimTrailingSlashes(slashed.startsWith("./") ? slashed.slice(2) : slashed);
|
|
10887
10901
|
return normalized === "" ? "." : normalized;
|
|
10888
10902
|
};
|
|
10889
10903
|
/** True when a built target directory's package.json is `private: true`. Missing/unreadable/malformed → false. */
|
|
@@ -398,6 +398,23 @@ const ChangesetConfigLive = Layer.effect(ChangesetConfig, Effect.gen(function* (
|
|
|
398
398
|
};
|
|
399
399
|
}));
|
|
400
400
|
|
|
401
|
+
//#endregion
|
|
402
|
+
//#region ../silk-effects/dist/dev/pkg/utils/TrailingSlash.js
|
|
403
|
+
/**
|
|
404
|
+
* Trim trailing slashes from a string.
|
|
405
|
+
*
|
|
406
|
+
* @remarks
|
|
407
|
+
* Trims trailing slashes with an index scan rather than `/\/+$/`. That regex is
|
|
408
|
+
* unanchored at the start, so the engine retries the match from every position
|
|
409
|
+
* and degrades to O(n²) on a string of many slashes (CodeQL `js/polynomial-redos`).
|
|
410
|
+
* Only a trailing run of slashes is removed; interior slash runs are untouched.
|
|
411
|
+
*/
|
|
412
|
+
const trimTrailingSlashes = (s) => {
|
|
413
|
+
let end = s.length;
|
|
414
|
+
while (end > 0 && s[end - 1] === "/") end -= 1;
|
|
415
|
+
return s.slice(0, end);
|
|
416
|
+
};
|
|
417
|
+
|
|
401
418
|
//#endregion
|
|
402
419
|
//#region ../../node_modules/.pnpm/workspaces-effect@2.0.3_@effect+platform@0.96.2_effect@3.21.4__effect@3.21.4/node_modules/workspaces-effect/errors/CatalogAssemblyError.js
|
|
403
420
|
/**
|
|
@@ -11064,18 +11081,16 @@ var SilkPublishability = class {
|
|
|
11064
11081
|
* normalizes to `.`, matching how a root-directory target is recorded.
|
|
11065
11082
|
*
|
|
11066
11083
|
* @remarks
|
|
11067
|
-
* Trailing
|
|
11068
|
-
*
|
|
11069
|
-
*
|
|
11070
|
-
* `js/polynomial-redos`). `dir` reaches
|
|
11071
|
-
* the bundler writes but a consumer
|
|
11084
|
+
* Trailing-slash trimming is delegated to the shared `trimTrailingSlashes`
|
|
11085
|
+
* index-scan helper rather than `/\/+$/`: that regex is unanchored at the
|
|
11086
|
+
* start, so the engine retries the match from every position and degrades to
|
|
11087
|
+
* O(n²) on a path of many slashes (CodeQL `js/polynomial-redos`). `dir` reaches
|
|
11088
|
+
* here from `dist/prod/targets.json`, which the bundler writes but a consumer
|
|
11089
|
+
* repo could hand-edit.
|
|
11072
11090
|
*/
|
|
11073
11091
|
const normalizeDir = (dir) => {
|
|
11074
11092
|
const slashed = dir.replaceAll("\\", "/");
|
|
11075
|
-
const
|
|
11076
|
-
let end = withoutPrefix.length;
|
|
11077
|
-
while (end > 0 && withoutPrefix[end - 1] === "/") end -= 1;
|
|
11078
|
-
const normalized = withoutPrefix.slice(0, end);
|
|
11093
|
+
const normalized = trimTrailingSlashes(slashed.startsWith("./") ? slashed.slice(2) : slashed);
|
|
11079
11094
|
return normalized === "" ? "." : normalized;
|
|
11080
11095
|
};
|
|
11081
11096
|
/** True when a built target directory's package.json is `private: true`. Missing/unreadable/malformed → false. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@savvy-web/silk",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The single Silk Suite dev-tooling package — changeset, commitlint, lint, and biome conventions",
|
|
6
6
|
"homepage": "https://github.com/savvy-web/systems/tree/main/packages/silk",
|
|
@@ -67,9 +67,9 @@
|
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@effect/platform": "^0.96.2",
|
|
69
69
|
"@savvy-web/changelog": "0.1.1",
|
|
70
|
-
"@savvy-web/cli": "1.5.
|
|
71
|
-
"@savvy-web/mcp": "1.7.
|
|
72
|
-
"@savvy-web/silk-effects": "3.2.
|
|
70
|
+
"@savvy-web/cli": "1.5.6",
|
|
71
|
+
"@savvy-web/mcp": "1.7.3",
|
|
72
|
+
"@savvy-web/silk-effects": "3.2.2",
|
|
73
73
|
"effect": "^3.21.4",
|
|
74
74
|
"semver": "^7.8.5"
|
|
75
75
|
},
|