@knowsuchagency/fulcrum 1.6.1 → 1.7.1
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/bin/fulcrum.js +56 -2555
- package/package.json +1 -1
- package/server/index.js +100 -65
package/package.json
CHANGED
package/server/index.js
CHANGED
|
@@ -4739,6 +4739,7 @@ __export(exports_settings, {
|
|
|
4739
4739
|
syncClaudeCodeTheme: () => syncClaudeCodeTheme,
|
|
4740
4740
|
setNestedValue: () => setNestedValue,
|
|
4741
4741
|
resetSettings: () => resetSettings,
|
|
4742
|
+
isTestMode: () => isTestMode,
|
|
4742
4743
|
isDeveloperMode: () => isDeveloperMode,
|
|
4743
4744
|
initializeFulcrumDirectories: () => initializeFulcrumDirectories,
|
|
4744
4745
|
getZAiSettings: () => getZAiSettings,
|
|
@@ -4757,12 +4758,36 @@ __export(exports_settings, {
|
|
|
4757
4758
|
ensureWorktreesDir: () => ensureWorktreesDir,
|
|
4758
4759
|
ensureLatestSettings: () => ensureLatestSettings,
|
|
4759
4760
|
ensureFulcrumDir: () => ensureFulcrumDir,
|
|
4761
|
+
enableTestMode: () => enableTestMode,
|
|
4760
4762
|
CURRENT_SCHEMA_VERSION: () => CURRENT_SCHEMA_VERSION,
|
|
4761
4763
|
CLAUDE_CODE_THEMES: () => CLAUDE_CODE_THEMES
|
|
4762
4764
|
});
|
|
4763
4765
|
import * as fs2 from "fs";
|
|
4764
4766
|
import * as path from "path";
|
|
4765
4767
|
import * as os from "os";
|
|
4768
|
+
function enableTestMode() {
|
|
4769
|
+
_testMode = true;
|
|
4770
|
+
}
|
|
4771
|
+
function isTestMode() {
|
|
4772
|
+
return _testMode;
|
|
4773
|
+
}
|
|
4774
|
+
function getRealHomeDir() {
|
|
4775
|
+
return process.env.HOME_BACKUP || os.homedir();
|
|
4776
|
+
}
|
|
4777
|
+
function getHomeDir() {
|
|
4778
|
+
return process.env.HOME || os.homedir();
|
|
4779
|
+
}
|
|
4780
|
+
function assertNotProductionPath(p, context) {
|
|
4781
|
+
if (!_testMode)
|
|
4782
|
+
return;
|
|
4783
|
+
const realHome = getRealHomeDir();
|
|
4784
|
+
const productionFulcrum = path.join(realHome, ".fulcrum");
|
|
4785
|
+
const productionClaude = path.join(realHome, ".claude");
|
|
4786
|
+
const productionClaudeJson = path.join(realHome, ".claude.json");
|
|
4787
|
+
if (p.startsWith(productionFulcrum + path.sep) || p === productionFulcrum || p.startsWith(productionClaude + path.sep) || p === productionClaude || p === productionClaudeJson) {
|
|
4788
|
+
throw new Error(`TEST ISOLATION VIOLATION in ${context}: attempted to access production path ${p}`);
|
|
4789
|
+
}
|
|
4790
|
+
}
|
|
4766
4791
|
function getNestedValue(obj, path2) {
|
|
4767
4792
|
return path2.split(".").reduce((o, k) => {
|
|
4768
4793
|
if (o && typeof o === "object") {
|
|
@@ -4821,10 +4846,10 @@ function expandPath(p) {
|
|
|
4821
4846
|
if (!p)
|
|
4822
4847
|
return p;
|
|
4823
4848
|
if (p === "~") {
|
|
4824
|
-
return
|
|
4849
|
+
return getHomeDir();
|
|
4825
4850
|
}
|
|
4826
4851
|
if (p.startsWith("~/")) {
|
|
4827
|
-
return path.join(
|
|
4852
|
+
return path.join(getHomeDir(), p.slice(2));
|
|
4828
4853
|
}
|
|
4829
4854
|
if (!path.isAbsolute(p)) {
|
|
4830
4855
|
return path.resolve(p);
|
|
@@ -4833,13 +4858,19 @@ function expandPath(p) {
|
|
|
4833
4858
|
}
|
|
4834
4859
|
function getFulcrumDir() {
|
|
4835
4860
|
if (process.env.FULCRUM_DIR) {
|
|
4836
|
-
|
|
4861
|
+
const p = expandPath(process.env.FULCRUM_DIR);
|
|
4862
|
+
assertNotProductionPath(p, "getFulcrumDir");
|
|
4863
|
+
return p;
|
|
4837
4864
|
}
|
|
4838
4865
|
const cwdFulcrum = path.join(process.cwd(), ".fulcrum");
|
|
4839
4866
|
if (fs2.existsSync(cwdFulcrum)) {
|
|
4867
|
+
assertNotProductionPath(cwdFulcrum, "getFulcrumDir");
|
|
4840
4868
|
return cwdFulcrum;
|
|
4841
4869
|
}
|
|
4842
|
-
|
|
4870
|
+
if (_testMode) {
|
|
4871
|
+
throw new Error("TEST ISOLATION VIOLATION: FULCRUM_DIR not set and no local .fulcrum directory found");
|
|
4872
|
+
}
|
|
4873
|
+
return path.join(getHomeDir(), ".fulcrum");
|
|
4843
4874
|
}
|
|
4844
4875
|
function getDatabasePath() {
|
|
4845
4876
|
return path.join(getFulcrumDir(), "fulcrum.db");
|
|
@@ -5141,7 +5172,9 @@ function updateNotificationSettings(updates, clientTimestamp) {
|
|
|
5141
5172
|
return updated;
|
|
5142
5173
|
}
|
|
5143
5174
|
function getClaudeSettingsPath() {
|
|
5144
|
-
|
|
5175
|
+
const p = path.join(getHomeDir(), ".claude", "settings.json");
|
|
5176
|
+
assertNotProductionPath(p, "getClaudeSettingsPath");
|
|
5177
|
+
return p;
|
|
5145
5178
|
}
|
|
5146
5179
|
function getClaudeSettings() {
|
|
5147
5180
|
const settingsPath = getClaudeSettingsPath();
|
|
@@ -5163,7 +5196,9 @@ function updateClaudeSettings(updates) {
|
|
|
5163
5196
|
fs2.writeFileSync(settingsPath, JSON.stringify(merged, null, 2), "utf-8");
|
|
5164
5197
|
}
|
|
5165
5198
|
function getClaudeConfigPath() {
|
|
5166
|
-
|
|
5199
|
+
const p = path.join(getHomeDir(), ".claude.json");
|
|
5200
|
+
assertNotProductionPath(p, "getClaudeConfigPath");
|
|
5201
|
+
return p;
|
|
5167
5202
|
}
|
|
5168
5203
|
function getClaudeConfig() {
|
|
5169
5204
|
const configPath = getClaudeConfigPath();
|
|
@@ -5302,7 +5337,7 @@ function ensureLatestSettings() {
|
|
|
5302
5337
|
fs2.writeFileSync(settingsPath, JSON.stringify(merged, null, 2), "utf-8");
|
|
5303
5338
|
log2.settings.info("Settings normalized to latest schema", { schemaVersion: CURRENT_SCHEMA_VERSION });
|
|
5304
5339
|
}
|
|
5305
|
-
var CURRENT_SCHEMA_VERSION = 1, CLAUDE_CODE_THEMES, DEFAULT_SETTINGS, OLD_DEFAULT_PORT = 3333, MIGRATION_MAP, DEFAULT_NOTIFICATION_SETTINGS, claudeConfigLock, DEFAULT_ZAI_SETTINGS;
|
|
5340
|
+
var _testMode = false, CURRENT_SCHEMA_VERSION = 1, CLAUDE_CODE_THEMES, DEFAULT_SETTINGS, OLD_DEFAULT_PORT = 3333, MIGRATION_MAP, DEFAULT_NOTIFICATION_SETTINGS, claudeConfigLock, DEFAULT_ZAI_SETTINGS;
|
|
5306
5341
|
var init_settings = __esm(() => {
|
|
5307
5342
|
init_logger3();
|
|
5308
5343
|
CLAUDE_CODE_THEMES = ["light", "light-ansi", "light-daltonized", "dark", "dark-ansi", "dark-daltonized"];
|
|
@@ -11418,10 +11453,10 @@ var require_resolve_block_map = __commonJS((exports) => {
|
|
|
11418
11453
|
let offset = bm.offset;
|
|
11419
11454
|
let commentEnd = null;
|
|
11420
11455
|
for (const collItem of bm.items) {
|
|
11421
|
-
const { start, key, sep:
|
|
11456
|
+
const { start, key, sep: sep4, value } = collItem;
|
|
11422
11457
|
const keyProps = resolveProps.resolveProps(start, {
|
|
11423
11458
|
indicator: "explicit-key-ind",
|
|
11424
|
-
next: key ??
|
|
11459
|
+
next: key ?? sep4?.[0],
|
|
11425
11460
|
offset,
|
|
11426
11461
|
onError,
|
|
11427
11462
|
parentIndent: bm.indent,
|
|
@@ -11435,7 +11470,7 @@ var require_resolve_block_map = __commonJS((exports) => {
|
|
|
11435
11470
|
else if ("indent" in key && key.indent !== bm.indent)
|
|
11436
11471
|
onError(offset, "BAD_INDENT", startColMsg);
|
|
11437
11472
|
}
|
|
11438
|
-
if (!keyProps.anchor && !keyProps.tag && !
|
|
11473
|
+
if (!keyProps.anchor && !keyProps.tag && !sep4) {
|
|
11439
11474
|
commentEnd = keyProps.end;
|
|
11440
11475
|
if (keyProps.comment) {
|
|
11441
11476
|
if (map.comment)
|
|
@@ -11460,7 +11495,7 @@ var require_resolve_block_map = __commonJS((exports) => {
|
|
|
11460
11495
|
ctx.atKey = false;
|
|
11461
11496
|
if (utilMapIncludes.mapIncludes(ctx, map.items, keyNode))
|
|
11462
11497
|
onError(keyStart, "DUPLICATE_KEY", "Map keys must be unique");
|
|
11463
|
-
const valueProps = resolveProps.resolveProps(
|
|
11498
|
+
const valueProps = resolveProps.resolveProps(sep4 ?? [], {
|
|
11464
11499
|
indicator: "map-value-ind",
|
|
11465
11500
|
next: value,
|
|
11466
11501
|
offset: keyNode.range[2],
|
|
@@ -11476,7 +11511,7 @@ var require_resolve_block_map = __commonJS((exports) => {
|
|
|
11476
11511
|
if (ctx.options.strict && keyProps.start < valueProps.found.offset - 1024)
|
|
11477
11512
|
onError(keyNode.range, "KEY_OVER_1024_CHARS", "The : indicator must be at most 1024 chars after the start of an implicit block mapping key");
|
|
11478
11513
|
}
|
|
11479
|
-
const valueNode = value ? composeNode(ctx, value, valueProps, onError) : composeEmptyNode(ctx, offset,
|
|
11514
|
+
const valueNode = value ? composeNode(ctx, value, valueProps, onError) : composeEmptyNode(ctx, offset, sep4, null, valueProps, onError);
|
|
11480
11515
|
if (ctx.schema.compat)
|
|
11481
11516
|
utilFlowIndentCheck.flowIndentCheck(bm.indent, value, onError);
|
|
11482
11517
|
offset = valueNode.range[2];
|
|
@@ -11562,7 +11597,7 @@ var require_resolve_end = __commonJS((exports) => {
|
|
|
11562
11597
|
let comment = "";
|
|
11563
11598
|
if (end) {
|
|
11564
11599
|
let hasSpace = false;
|
|
11565
|
-
let
|
|
11600
|
+
let sep4 = "";
|
|
11566
11601
|
for (const token of end) {
|
|
11567
11602
|
const { source, type } = token;
|
|
11568
11603
|
switch (type) {
|
|
@@ -11576,13 +11611,13 @@ var require_resolve_end = __commonJS((exports) => {
|
|
|
11576
11611
|
if (!comment)
|
|
11577
11612
|
comment = cb;
|
|
11578
11613
|
else
|
|
11579
|
-
comment +=
|
|
11580
|
-
|
|
11614
|
+
comment += sep4 + cb;
|
|
11615
|
+
sep4 = "";
|
|
11581
11616
|
break;
|
|
11582
11617
|
}
|
|
11583
11618
|
case "newline":
|
|
11584
11619
|
if (comment)
|
|
11585
|
-
|
|
11620
|
+
sep4 += source;
|
|
11586
11621
|
hasSpace = true;
|
|
11587
11622
|
break;
|
|
11588
11623
|
default:
|
|
@@ -11622,18 +11657,18 @@ var require_resolve_flow_collection = __commonJS((exports) => {
|
|
|
11622
11657
|
let offset = fc.offset + fc.start.source.length;
|
|
11623
11658
|
for (let i = 0;i < fc.items.length; ++i) {
|
|
11624
11659
|
const collItem = fc.items[i];
|
|
11625
|
-
const { start, key, sep:
|
|
11660
|
+
const { start, key, sep: sep4, value } = collItem;
|
|
11626
11661
|
const props = resolveProps.resolveProps(start, {
|
|
11627
11662
|
flow: fcName,
|
|
11628
11663
|
indicator: "explicit-key-ind",
|
|
11629
|
-
next: key ??
|
|
11664
|
+
next: key ?? sep4?.[0],
|
|
11630
11665
|
offset,
|
|
11631
11666
|
onError,
|
|
11632
11667
|
parentIndent: fc.indent,
|
|
11633
11668
|
startOnNewline: false
|
|
11634
11669
|
});
|
|
11635
11670
|
if (!props.found) {
|
|
11636
|
-
if (!props.anchor && !props.tag && !
|
|
11671
|
+
if (!props.anchor && !props.tag && !sep4 && !value) {
|
|
11637
11672
|
if (i === 0 && props.comma)
|
|
11638
11673
|
onError(props.comma, "UNEXPECTED_TOKEN", `Unexpected , in ${fcName}`);
|
|
11639
11674
|
else if (i < fc.items.length - 1)
|
|
@@ -11685,8 +11720,8 @@ var require_resolve_flow_collection = __commonJS((exports) => {
|
|
|
11685
11720
|
}
|
|
11686
11721
|
}
|
|
11687
11722
|
}
|
|
11688
|
-
if (!isMap && !
|
|
11689
|
-
const valueNode = value ? composeNode(ctx, value, props, onError) : composeEmptyNode(ctx, props.end,
|
|
11723
|
+
if (!isMap && !sep4 && !props.found) {
|
|
11724
|
+
const valueNode = value ? composeNode(ctx, value, props, onError) : composeEmptyNode(ctx, props.end, sep4, null, props, onError);
|
|
11690
11725
|
coll.items.push(valueNode);
|
|
11691
11726
|
offset = valueNode.range[2];
|
|
11692
11727
|
if (isBlock(value))
|
|
@@ -11698,7 +11733,7 @@ var require_resolve_flow_collection = __commonJS((exports) => {
|
|
|
11698
11733
|
if (isBlock(key))
|
|
11699
11734
|
onError(keyNode.range, "BLOCK_IN_FLOW", blockMsg);
|
|
11700
11735
|
ctx.atKey = false;
|
|
11701
|
-
const valueProps = resolveProps.resolveProps(
|
|
11736
|
+
const valueProps = resolveProps.resolveProps(sep4 ?? [], {
|
|
11702
11737
|
flow: fcName,
|
|
11703
11738
|
indicator: "map-value-ind",
|
|
11704
11739
|
next: value,
|
|
@@ -11709,8 +11744,8 @@ var require_resolve_flow_collection = __commonJS((exports) => {
|
|
|
11709
11744
|
});
|
|
11710
11745
|
if (valueProps.found) {
|
|
11711
11746
|
if (!isMap && !props.found && ctx.options.strict) {
|
|
11712
|
-
if (
|
|
11713
|
-
for (const st of
|
|
11747
|
+
if (sep4)
|
|
11748
|
+
for (const st of sep4) {
|
|
11714
11749
|
if (st === valueProps.found)
|
|
11715
11750
|
break;
|
|
11716
11751
|
if (st.type === "newline") {
|
|
@@ -11727,7 +11762,7 @@ var require_resolve_flow_collection = __commonJS((exports) => {
|
|
|
11727
11762
|
else
|
|
11728
11763
|
onError(valueProps.start, "MISSING_CHAR", `Missing , or : between ${fcName} items`);
|
|
11729
11764
|
}
|
|
11730
|
-
const valueNode = value ? composeNode(ctx, value, valueProps, onError) : valueProps.found ? composeEmptyNode(ctx, valueProps.end,
|
|
11765
|
+
const valueNode = value ? composeNode(ctx, value, valueProps, onError) : valueProps.found ? composeEmptyNode(ctx, valueProps.end, sep4, null, valueProps, onError) : null;
|
|
11731
11766
|
if (valueNode) {
|
|
11732
11767
|
if (isBlock(value))
|
|
11733
11768
|
onError(valueNode.range, "BLOCK_IN_FLOW", blockMsg);
|
|
@@ -11904,7 +11939,7 @@ var require_resolve_block_scalar = __commonJS((exports) => {
|
|
|
11904
11939
|
chompStart = i + 1;
|
|
11905
11940
|
}
|
|
11906
11941
|
let value = "";
|
|
11907
|
-
let
|
|
11942
|
+
let sep4 = "";
|
|
11908
11943
|
let prevMoreIndented = false;
|
|
11909
11944
|
for (let i = 0;i < contentStart; ++i)
|
|
11910
11945
|
value += lines[i][0].slice(trimIndent) + `
|
|
@@ -11922,33 +11957,33 @@ var require_resolve_block_scalar = __commonJS((exports) => {
|
|
|
11922
11957
|
indent = "";
|
|
11923
11958
|
}
|
|
11924
11959
|
if (type === Scalar.Scalar.BLOCK_LITERAL) {
|
|
11925
|
-
value +=
|
|
11926
|
-
|
|
11960
|
+
value += sep4 + indent.slice(trimIndent) + content;
|
|
11961
|
+
sep4 = `
|
|
11927
11962
|
`;
|
|
11928
11963
|
} else if (indent.length > trimIndent || content[0] === "\t") {
|
|
11929
|
-
if (
|
|
11930
|
-
|
|
11964
|
+
if (sep4 === " ")
|
|
11965
|
+
sep4 = `
|
|
11931
11966
|
`;
|
|
11932
|
-
else if (!prevMoreIndented &&
|
|
11967
|
+
else if (!prevMoreIndented && sep4 === `
|
|
11933
11968
|
`)
|
|
11934
|
-
|
|
11969
|
+
sep4 = `
|
|
11935
11970
|
|
|
11936
11971
|
`;
|
|
11937
|
-
value +=
|
|
11938
|
-
|
|
11972
|
+
value += sep4 + indent.slice(trimIndent) + content;
|
|
11973
|
+
sep4 = `
|
|
11939
11974
|
`;
|
|
11940
11975
|
prevMoreIndented = true;
|
|
11941
11976
|
} else if (content === "") {
|
|
11942
|
-
if (
|
|
11977
|
+
if (sep4 === `
|
|
11943
11978
|
`)
|
|
11944
11979
|
value += `
|
|
11945
11980
|
`;
|
|
11946
11981
|
else
|
|
11947
|
-
|
|
11982
|
+
sep4 = `
|
|
11948
11983
|
`;
|
|
11949
11984
|
} else {
|
|
11950
|
-
value +=
|
|
11951
|
-
|
|
11985
|
+
value += sep4 + content;
|
|
11986
|
+
sep4 = " ";
|
|
11952
11987
|
prevMoreIndented = false;
|
|
11953
11988
|
}
|
|
11954
11989
|
}
|
|
@@ -12129,27 +12164,27 @@ var require_resolve_flow_scalar = __commonJS((exports) => {
|
|
|
12129
12164
|
if (!match3)
|
|
12130
12165
|
return source;
|
|
12131
12166
|
let res = match3[1];
|
|
12132
|
-
let
|
|
12167
|
+
let sep4 = " ";
|
|
12133
12168
|
let pos = first.lastIndex;
|
|
12134
12169
|
line.lastIndex = pos;
|
|
12135
12170
|
while (match3 = line.exec(source)) {
|
|
12136
12171
|
if (match3[1] === "") {
|
|
12137
|
-
if (
|
|
12172
|
+
if (sep4 === `
|
|
12138
12173
|
`)
|
|
12139
|
-
res +=
|
|
12174
|
+
res += sep4;
|
|
12140
12175
|
else
|
|
12141
|
-
|
|
12176
|
+
sep4 = `
|
|
12142
12177
|
`;
|
|
12143
12178
|
} else {
|
|
12144
|
-
res +=
|
|
12145
|
-
|
|
12179
|
+
res += sep4 + match3[1];
|
|
12180
|
+
sep4 = " ";
|
|
12146
12181
|
}
|
|
12147
12182
|
pos = line.lastIndex;
|
|
12148
12183
|
}
|
|
12149
12184
|
const last = /[ \t]*(.*)/sy;
|
|
12150
12185
|
last.lastIndex = pos;
|
|
12151
12186
|
match3 = last.exec(source);
|
|
12152
|
-
return res +
|
|
12187
|
+
return res + sep4 + (match3?.[1] ?? "");
|
|
12153
12188
|
}
|
|
12154
12189
|
function doubleQuotedValue(source, onError) {
|
|
12155
12190
|
let res = "";
|
|
@@ -12922,14 +12957,14 @@ var require_cst_stringify = __commonJS((exports) => {
|
|
|
12922
12957
|
}
|
|
12923
12958
|
}
|
|
12924
12959
|
}
|
|
12925
|
-
function stringifyItem({ start, key, sep:
|
|
12960
|
+
function stringifyItem({ start, key, sep: sep4, value }) {
|
|
12926
12961
|
let res = "";
|
|
12927
12962
|
for (const st of start)
|
|
12928
12963
|
res += st.source;
|
|
12929
12964
|
if (key)
|
|
12930
12965
|
res += stringifyToken(key);
|
|
12931
|
-
if (
|
|
12932
|
-
for (const st of
|
|
12966
|
+
if (sep4)
|
|
12967
|
+
for (const st of sep4)
|
|
12933
12968
|
res += st.source;
|
|
12934
12969
|
if (value)
|
|
12935
12970
|
res += stringifyToken(value);
|
|
@@ -14059,18 +14094,18 @@ var require_parser = __commonJS((exports) => {
|
|
|
14059
14094
|
if (this.type === "map-value-ind") {
|
|
14060
14095
|
const prev = getPrevProps(this.peek(2));
|
|
14061
14096
|
const start = getFirstKeyStartProps(prev);
|
|
14062
|
-
let
|
|
14097
|
+
let sep4;
|
|
14063
14098
|
if (scalar.end) {
|
|
14064
|
-
|
|
14065
|
-
|
|
14099
|
+
sep4 = scalar.end;
|
|
14100
|
+
sep4.push(this.sourceToken);
|
|
14066
14101
|
delete scalar.end;
|
|
14067
14102
|
} else
|
|
14068
|
-
|
|
14103
|
+
sep4 = [this.sourceToken];
|
|
14069
14104
|
const map = {
|
|
14070
14105
|
type: "block-map",
|
|
14071
14106
|
offset: scalar.offset,
|
|
14072
14107
|
indent: scalar.indent,
|
|
14073
|
-
items: [{ start, key: scalar, sep:
|
|
14108
|
+
items: [{ start, key: scalar, sep: sep4 }]
|
|
14074
14109
|
};
|
|
14075
14110
|
this.onKeyLine = true;
|
|
14076
14111
|
this.stack[this.stack.length - 1] = map;
|
|
@@ -14224,15 +14259,15 @@ var require_parser = __commonJS((exports) => {
|
|
|
14224
14259
|
} else if (isFlowToken(it.key) && !includesToken(it.sep, "newline")) {
|
|
14225
14260
|
const start2 = getFirstKeyStartProps(it.start);
|
|
14226
14261
|
const key = it.key;
|
|
14227
|
-
const
|
|
14228
|
-
|
|
14262
|
+
const sep4 = it.sep;
|
|
14263
|
+
sep4.push(this.sourceToken);
|
|
14229
14264
|
delete it.key;
|
|
14230
14265
|
delete it.sep;
|
|
14231
14266
|
this.stack.push({
|
|
14232
14267
|
type: "block-map",
|
|
14233
14268
|
offset: this.offset,
|
|
14234
14269
|
indent: this.indent,
|
|
14235
|
-
items: [{ start: start2, key, sep:
|
|
14270
|
+
items: [{ start: start2, key, sep: sep4 }]
|
|
14236
14271
|
});
|
|
14237
14272
|
} else if (start.length > 0) {
|
|
14238
14273
|
it.sep = it.sep.concat(start, this.sourceToken);
|
|
@@ -14426,13 +14461,13 @@ var require_parser = __commonJS((exports) => {
|
|
|
14426
14461
|
const prev = getPrevProps(parent);
|
|
14427
14462
|
const start = getFirstKeyStartProps(prev);
|
|
14428
14463
|
fixFlowSeqItems(fc);
|
|
14429
|
-
const
|
|
14430
|
-
|
|
14464
|
+
const sep4 = fc.end.splice(1, fc.end.length);
|
|
14465
|
+
sep4.push(this.sourceToken);
|
|
14431
14466
|
const map = {
|
|
14432
14467
|
type: "block-map",
|
|
14433
14468
|
offset: fc.offset,
|
|
14434
14469
|
indent: fc.indent,
|
|
14435
|
-
items: [{ start, key: fc, sep:
|
|
14470
|
+
items: [{ start, key: fc, sep: sep4 }]
|
|
14436
14471
|
};
|
|
14437
14472
|
this.onKeyLine = true;
|
|
14438
14473
|
this.stack[this.stack.length - 1] = map;
|
|
@@ -44231,8 +44266,8 @@ var path2 = {
|
|
|
44231
44266
|
win32: { sep: "\\" },
|
|
44232
44267
|
posix: { sep: "/" }
|
|
44233
44268
|
};
|
|
44234
|
-
var
|
|
44235
|
-
minimatch.sep =
|
|
44269
|
+
var sep2 = defaultPlatform === "win32" ? path2.win32.sep : path2.posix.sep;
|
|
44270
|
+
minimatch.sep = sep2;
|
|
44236
44271
|
var GLOBSTAR = Symbol("globstar **");
|
|
44237
44272
|
minimatch.GLOBSTAR = GLOBSTAR;
|
|
44238
44273
|
var qmark2 = "[^/]";
|
|
@@ -47475,7 +47510,7 @@ class PathScurryBase {
|
|
|
47475
47510
|
#children;
|
|
47476
47511
|
nocase;
|
|
47477
47512
|
#fs;
|
|
47478
|
-
constructor(cwd = process.cwd(), pathImpl,
|
|
47513
|
+
constructor(cwd = process.cwd(), pathImpl, sep3, { nocase, childrenCacheSize = 16 * 1024, fs: fs3 = defaultFS } = {}) {
|
|
47479
47514
|
this.#fs = fsFromOption(fs3);
|
|
47480
47515
|
if (cwd instanceof URL || cwd.startsWith("file://")) {
|
|
47481
47516
|
cwd = fileURLToPath(cwd);
|
|
@@ -47486,7 +47521,7 @@ class PathScurryBase {
|
|
|
47486
47521
|
this.#resolveCache = new ResolveCache;
|
|
47487
47522
|
this.#resolvePosixCache = new ResolveCache;
|
|
47488
47523
|
this.#children = new ChildrenCache(childrenCacheSize);
|
|
47489
|
-
const split = cwdPath.substring(this.rootPath.length).split(
|
|
47524
|
+
const split = cwdPath.substring(this.rootPath.length).split(sep3);
|
|
47490
47525
|
if (split.length === 1 && !split[0]) {
|
|
47491
47526
|
split.pop();
|
|
47492
47527
|
}
|
|
@@ -53315,8 +53350,8 @@ function withCustomRequest(customRequest) {
|
|
|
53315
53350
|
|
|
53316
53351
|
// node_modules/@octokit/auth-token/dist-bundle/index.js
|
|
53317
53352
|
var b64url = "(?:[a-zA-Z0-9_-]+)";
|
|
53318
|
-
var
|
|
53319
|
-
var jwtRE = new RegExp(`^${b64url}${
|
|
53353
|
+
var sep4 = "\\.";
|
|
53354
|
+
var jwtRE = new RegExp(`^${b64url}${sep4}${b64url}${sep4}${b64url}$`);
|
|
53320
53355
|
var isJWT = jwtRE.test.bind(jwtRE);
|
|
53321
53356
|
async function auth(token) {
|
|
53322
53357
|
const isApp = isJWT(token);
|