@veilio-inc/cli 0.5.1 → 0.5.2
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/README.md +51 -11
- package/dist/args.d.ts +19 -1
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js +10 -2
- package/dist/args.js.map +1 -1
- package/dist/cloud-commands.d.ts +46 -10
- package/dist/cloud-commands.d.ts.map +1 -1
- package/dist/cloud-commands.js +319 -6
- package/dist/cloud-commands.js.map +1 -1
- package/dist/cloud.d.ts +69 -1
- package/dist/cloud.d.ts.map +1 -1
- package/dist/cloud.js +61 -0
- package/dist/cloud.js.map +1 -1
- package/dist/commands.d.ts +13 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +105 -17
- package/dist/commands.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -10
- package/dist/index.js.map +1 -1
- package/dist/team-anonymize.d.ts +59 -0
- package/dist/team-anonymize.d.ts.map +1 -1
- package/dist/team-anonymize.js +143 -2
- package/dist/team-anonymize.js.map +1 -1
- package/dist/team-namespace.d.ts +9 -0
- package/dist/team-namespace.d.ts.map +1 -1
- package/dist/team-namespace.js +7 -1
- package/dist/team-namespace.js.map +1 -1
- package/dist/third-party.d.ts +25 -0
- package/dist/third-party.d.ts.map +1 -0
- package/dist/third-party.js +113 -0
- package/dist/third-party.js.map +1 -0
- package/dist/version.d.ts +15 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +16 -0
- package/dist/version.js.map +1 -0
- package/package.json +6 -5
package/dist/team-anonymize.js
CHANGED
|
@@ -103,12 +103,153 @@ export function anonymizeOverTeam(source, local, team, options) {
|
|
|
103
103
|
const settled = Object.fromEntries(Object.entries(team.namespace).filter(([p]) => !(p in (team.conflicts ?? {}))));
|
|
104
104
|
const existingMap = mergeNamespace(local, settled);
|
|
105
105
|
const result = anonymizeAbove(source, { ...options, existingMap }, floorsWith(team.highest, local));
|
|
106
|
-
|
|
106
|
+
return { result, toPersist: persisted(local, result, settled) };
|
|
107
|
+
}
|
|
108
|
+
// ─── reserved numbering ──────────────────────────────────────────────────────
|
|
109
|
+
//
|
|
110
|
+
// `anonymizeOverTeam` above numbers above a FLOOR: the team's highest, raised
|
|
111
|
+
// to this project's own. That is enough to stop a terminal re-using a number
|
|
112
|
+
// the team has already written, and it is not enough to stop two terminals
|
|
113
|
+
// minting the same number at the same moment — both compute the same floor and
|
|
114
|
+
// both number from it. On staging two members each got `__FN__6`, and one
|
|
115
|
+
// member's restore named the other's function (spec 017).
|
|
116
|
+
//
|
|
117
|
+
// So numbers for a map that will be PUBLISHED come out of the team's shared
|
|
118
|
+
// allocation instead. The server hands out runs; this picks within them.
|
|
119
|
+
//
|
|
120
|
+
// Deliberately a separate entry point rather than a flag on
|
|
121
|
+
// `anonymizeOverTeam`: that function is shared with the MCP server, which never
|
|
122
|
+
// publishes a shared map (FR-009) and so must never reach the network to
|
|
123
|
+
// reserve. An agent that reserved numbers it then discarded would consume the
|
|
124
|
+
// team's allocation on every tool call.
|
|
125
|
+
/** Highest number per base in a map. */
|
|
126
|
+
export function highestPerBase(map) {
|
|
127
|
+
const out = {};
|
|
128
|
+
for (const placeholder of Object.keys(map)) {
|
|
129
|
+
const m = NUMBERED.exec(placeholder);
|
|
130
|
+
if (m && Number(m[2]) > (out[m[1]] ?? 0))
|
|
131
|
+
out[m[1]] = Number(m[2]);
|
|
132
|
+
}
|
|
133
|
+
return out;
|
|
134
|
+
}
|
|
135
|
+
const TOKEN = /(?<![A-Za-z0-9_$])(__[A-Z][A-Z0-9_]*__)(\d+)(?![A-Za-z0-9_$])/g;
|
|
136
|
+
/**
|
|
137
|
+
* Highest number per base among placeholders ALREADY IN the text.
|
|
138
|
+
*
|
|
139
|
+
* The engine numbers above those too, so a floor that ignored them would
|
|
140
|
+
* reserve a run the engine then numbers past — producing placeholders nobody
|
|
141
|
+
* reserved, which is the failure this whole path exists to prevent. Reached
|
|
142
|
+
* when already-masked text is scrubbed again, which is ordinary: a partially
|
|
143
|
+
* masked file, or output piped back through.
|
|
144
|
+
*/
|
|
145
|
+
export function highestInText(text) {
|
|
146
|
+
const out = {};
|
|
147
|
+
for (const m of text.matchAll(TOKEN)) {
|
|
148
|
+
if (Number(m[2]) > (out[m[1]] ?? 0))
|
|
149
|
+
out[m[1]] = Number(m[2]);
|
|
150
|
+
}
|
|
151
|
+
return out;
|
|
152
|
+
}
|
|
153
|
+
/** A placeholder was minted outside the run reserved for it. */
|
|
154
|
+
export class ReservationMismatch extends Error {
|
|
155
|
+
constructor(placeholder) {
|
|
156
|
+
super(`${placeholder} is outside the numbers reserved for it`);
|
|
157
|
+
this.name = 'ReservationMismatch';
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/** The reservation itself did not happen: refused, unreachable, plan lapsed. */
|
|
161
|
+
export class ReservationFailed extends Error {
|
|
162
|
+
cause;
|
|
163
|
+
constructor(cause) {
|
|
164
|
+
super(cause instanceof Error ? cause.message : String(cause));
|
|
165
|
+
this.cause = cause;
|
|
166
|
+
this.name = 'ReservationFailed';
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* `anonymizeOverTeam`, with every NEW number taken from the team's allocation.
|
|
171
|
+
*
|
|
172
|
+
* Two passes, because only this machine can read the identifiers and so only
|
|
173
|
+
* this machine can know how many new names there are — but it may not choose
|
|
174
|
+
* their numbers:
|
|
175
|
+
*
|
|
176
|
+
* 1. anonymize once to learn which new placeholders the text needs, per base.
|
|
177
|
+
* Which numbers this pass picks does not matter and is thrown away.
|
|
178
|
+
* 2. reserve that many per base, declaring the floor this machine has seen.
|
|
179
|
+
* 3. anonymize again, seeded so numbering continues from each reserved start.
|
|
180
|
+
* The engine numbers above the highest number it is given and numbers the
|
|
181
|
+
* same input the same way twice, so the second pass is deterministic.
|
|
182
|
+
* 4. verify every new placeholder landed inside its run, and fail rather than
|
|
183
|
+
* return output carrying numbers nobody reserved.
|
|
184
|
+
*
|
|
185
|
+
* Step 4 is not belt-and-braces. If it ever fires, the alternative is a map
|
|
186
|
+
* that looks correct, publishes, and collides with a teammate's — the exact
|
|
187
|
+
* failure that is invisible until someone restores the wrong name.
|
|
188
|
+
*/
|
|
189
|
+
export async function reservedAnonymizeOverTeam(source, local, team, options, reserve) {
|
|
190
|
+
const settled = Object.fromEntries(Object.entries(team.namespace).filter(([p]) => !(p in (team.conflicts ?? {}))));
|
|
191
|
+
const existingMap = mergeNamespace(local, settled);
|
|
192
|
+
// Pass 1: count the new names per base. No floor needed — the numbers this
|
|
193
|
+
// pass chooses are discarded.
|
|
194
|
+
const first = anonymize(source, { ...options, existingMap });
|
|
195
|
+
const fresh = Object.keys(first.map).filter((p) => !(p in existingMap));
|
|
196
|
+
if (fresh.length === 0) {
|
|
197
|
+
// Nothing new, so nothing to reserve. Returning the first pass is correct
|
|
198
|
+
// AND is the only way to avoid a reservation of zero numbers, which the
|
|
199
|
+
// server would answer with an empty run the verification below rejects.
|
|
200
|
+
return { result: first, toPersist: persisted(local, first, settled) };
|
|
201
|
+
}
|
|
202
|
+
const counts = new Map();
|
|
203
|
+
for (const p of fresh) {
|
|
204
|
+
const m = NUMBERED.exec(p);
|
|
205
|
+
if (!m)
|
|
206
|
+
throw new ReservationMismatch(p);
|
|
207
|
+
counts.set(m[1], (counts.get(m[1]) ?? 0) + 1);
|
|
208
|
+
}
|
|
209
|
+
const inMap = highestPerBase(existingMap);
|
|
210
|
+
const inText = highestInText(source);
|
|
211
|
+
const requests = [...counts].map(([base, count]) => ({
|
|
212
|
+
base,
|
|
213
|
+
count,
|
|
214
|
+
floor: Math.max(team.highest[base] ?? 0, inMap[base] ?? 0, inText[base] ?? 0),
|
|
215
|
+
}));
|
|
216
|
+
let ranges;
|
|
217
|
+
try {
|
|
218
|
+
ranges = await reserve(requests);
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
throw new ReservationFailed(err);
|
|
222
|
+
}
|
|
223
|
+
const byBase = new Map(ranges.map((r) => [r.base, r]));
|
|
224
|
+
// Pass 2: `start - 1` as the floor, so the first new number IS `start`.
|
|
225
|
+
const floors = {};
|
|
226
|
+
for (const { base } of requests) {
|
|
227
|
+
const range = byBase.get(base);
|
|
228
|
+
if (!range)
|
|
229
|
+
throw new ReservationMismatch(`${base}*`);
|
|
230
|
+
floors[base] = range.start - 1;
|
|
231
|
+
}
|
|
232
|
+
const second = anonymizeAbove(source, { ...options, existingMap }, floors);
|
|
233
|
+
for (const placeholder of Object.keys(second.map)) {
|
|
234
|
+
if (placeholder in existingMap)
|
|
235
|
+
continue;
|
|
236
|
+
const m = NUMBERED.exec(placeholder);
|
|
237
|
+
const range = m ? byBase.get(m[1]) : undefined;
|
|
238
|
+
const n = m ? Number(m[2]) : NaN;
|
|
239
|
+
if (!range || n < range.start || n > range.end)
|
|
240
|
+
throw new ReservationMismatch(placeholder);
|
|
241
|
+
}
|
|
242
|
+
return { result: second, toPersist: persisted(local, second, settled) };
|
|
243
|
+
}
|
|
244
|
+
/** What the project's store keeps: everything it held, whatever was minted, and
|
|
245
|
+
* only the team entries the output actually used (spec 005 US4). Shared with
|
|
246
|
+
* `anonymizeOverTeam`, whose rule this is. */
|
|
247
|
+
function persisted(local, result, settled) {
|
|
248
|
+
return {
|
|
107
249
|
...local,
|
|
108
250
|
...Object.fromEntries(Object.entries(result.map).filter(([placeholder]) => !(placeholder in settled) ||
|
|
109
251
|
placeholder in local ||
|
|
110
252
|
appearsAsToken(result.anonymized, placeholder))),
|
|
111
253
|
};
|
|
112
|
-
return { result, toPersist };
|
|
113
254
|
}
|
|
114
255
|
//# sourceMappingURL=team-anonymize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-anonymize.js","sourceRoot":"","sources":["../src/team-anonymize.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"team-anonymize.js","sourceRoot":"","sources":["../src/team-anonymize.ts"],"names":[],"mappings":"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"}
|
package/dist/team-namespace.d.ts
CHANGED
|
@@ -10,6 +10,15 @@ export type TeamNamespaceResult =
|
|
|
10
10
|
status: 'team';
|
|
11
11
|
analysis: TeamNamespaceAnalysis;
|
|
12
12
|
conflictDetection: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* The team whose namespace this is, for reserving placeholder numbers
|
|
15
|
+
* against it (spec 011 FR-003).
|
|
16
|
+
*
|
|
17
|
+
* `null` only on an older self-hosted instance that merged the namespace
|
|
18
|
+
* server-side: it predates the reservation endpoint as well, so there is
|
|
19
|
+
* nothing to reserve against and the caller falls back to a local floor.
|
|
20
|
+
*/
|
|
21
|
+
teamId: string | null;
|
|
13
22
|
}
|
|
14
23
|
/** Nothing to read: signed out, or not in a team. The local namespace is right. */
|
|
15
24
|
| {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-namespace.d.ts","sourceRoot":"","sources":["../src/team-namespace.ts"],"names":[],"mappings":"AAaA,OAAO,EAOL,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAA;AAY3B,MAAM,MAAM,mBAAmB;AAC7B;;;;;GAKG;AACD;
|
|
1
|
+
{"version":3,"file":"team-namespace.d.ts","sourceRoot":"","sources":["../src/team-namespace.ts"],"names":[],"mappings":"AAaA,OAAO,EAOL,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAA;AAY3B,MAAM,MAAM,mBAAmB;AAC7B;;;;;GAKG;AACD;IACE,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,qBAAqB,CAAA;IAC/B,iBAAiB,EAAE,OAAO,CAAA;IAC1B;;;;;;;OAOG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AACH,mFAAmF;GACjF;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE;AACrB,wEAAwE;GACtE;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE;AACtB,oEAAoE;GAClE;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAuB7C,wBAAsB,oBAAoB,CACxC,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,GAAE;IACJ,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAA;CACf,GACL,OAAO,CAAC,mBAAmB,CAAC,CAgC9B;AA8HD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,MAAM,GAAG,IAAI,CAcf"}
|
package/dist/team-namespace.js
CHANGED
|
@@ -86,6 +86,7 @@ async function attempt(credential, home, signal) {
|
|
|
86
86
|
status: 'team',
|
|
87
87
|
analysis: { namespace: list.teamNamespace, aliases: {}, conflicts: {}, highest: {} },
|
|
88
88
|
conflictDetection: false,
|
|
89
|
+
teamId: null,
|
|
89
90
|
};
|
|
90
91
|
}
|
|
91
92
|
const teamId = list.team?.id;
|
|
@@ -99,7 +100,12 @@ async function attempt(credential, home, signal) {
|
|
|
99
100
|
if (entries.every((e) => e.map === null) && entries.length > 0) {
|
|
100
101
|
return { status: 'unavailable', reason: 'none of the team maps opened with the unlocked key' };
|
|
101
102
|
}
|
|
102
|
-
return {
|
|
103
|
+
return {
|
|
104
|
+
status: 'team',
|
|
105
|
+
analysis: analyzeTeamNamespace(entries),
|
|
106
|
+
conflictDetection: true,
|
|
107
|
+
teamId,
|
|
108
|
+
};
|
|
103
109
|
}
|
|
104
110
|
/** A member's OWN team maps arrive under personalMaps - the listing splits by
|
|
105
111
|
* ownership, not by scope - so both lists are read. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-namespace.js","sourceRoot":"","sources":["../src/team-namespace.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,+CAA+C;AAC/C,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAC7E,qBAAqB;AACrB,EAAE;AACF,4EAA4E;AAC5E,+EAA+E;AAC/E,6EAA6E;AAC7E,sDAAsD;AAEtD,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,GAKd,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,cAAc,EAAmB,MAAM,iBAAiB,CAAA;AACjE,OAAO,EACL,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,QAAQ,GAGT,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"team-namespace.js","sourceRoot":"","sources":["../src/team-namespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ProjectShape } from '@veilio-inc/engine';
|
|
2
|
+
/** The names each input takes from a public package, to leave as written
|
|
3
|
+
* (spec 050 FR-006, FR-007). Declarations are read from every input first, so
|
|
4
|
+
* a word one input imports and another declares stays masked; and nothing is
|
|
5
|
+
* kept when an input is in a language whose declarations are not read.
|
|
6
|
+
*
|
|
7
|
+
* Narrower than the guard: the guard knows every file the project declares
|
|
8
|
+
* names in, scrub knows only its inputs. A word an input imports from a public
|
|
9
|
+
* package and a file NOT given here declares is left as written; scrub the
|
|
10
|
+
* files that declare it in the same call to keep it masked. */
|
|
11
|
+
export declare function thirdPartyNames(inputs: {
|
|
12
|
+
name: string | null;
|
|
13
|
+
text: string;
|
|
14
|
+
}[],
|
|
15
|
+
/** The project map and the team's namespace, kept apart: merged by key, one
|
|
16
|
+
* placeholder in both would drop a name (security review of ec0cb00). */
|
|
17
|
+
known: Record<string, string>[], cwd: string): Map<object, Set<string>>;
|
|
18
|
+
/** What the CLI can see of the project's shape from where it runs: the
|
|
19
|
+
* top-level directories, the package names in package.json files near the
|
|
20
|
+
* root, tsconfig path aliases and baseUrl, and the Python module names on the
|
|
21
|
+
* inputs' paths. */
|
|
22
|
+
export declare function projectShape(cwd: string, inputs: {
|
|
23
|
+
name: string | null;
|
|
24
|
+
}[]): ProjectShape;
|
|
25
|
+
//# sourceMappingURL=third-party.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"third-party.d.ts","sourceRoot":"","sources":["../src/third-party.ts"],"names":[],"mappings":"AAMA,OAAO,EAOL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAA;AAE3B;;;;;;;;gEAQgE;AAChE,wBAAgB,eAAe,CAC7B,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE;AAC/C;0EAC0E;AAC1E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC/B,GAAG,EAAE,MAAM,GACV,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CA4C1B;AAED;;;qBAGqB;AACrB,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,GAAG,YAAY,CA4CzF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// Which names a file takes from a public package, so they are left as written
|
|
2
|
+
// (spec 050 FR-006, FR-007). One rule for `veilio scrub <file>` and the MCP
|
|
3
|
+
// server's `anonymize_file`, so the two give the same placeholders for the same
|
|
4
|
+
// file (spec 030 FR-005, as amended by spec 050 T033-T036).
|
|
5
|
+
import { existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
import { externalNames, languageOfPath, parseDeclarations, parseShellDeclarations, } from '@veilio-inc/engine';
|
|
8
|
+
/** The names each input takes from a public package, to leave as written
|
|
9
|
+
* (spec 050 FR-006, FR-007). Declarations are read from every input first, so
|
|
10
|
+
* a word one input imports and another declares stays masked; and nothing is
|
|
11
|
+
* kept when an input is in a language whose declarations are not read.
|
|
12
|
+
*
|
|
13
|
+
* Narrower than the guard: the guard knows every file the project declares
|
|
14
|
+
* names in, scrub knows only its inputs. A word an input imports from a public
|
|
15
|
+
* package and a file NOT given here declares is left as written; scrub the
|
|
16
|
+
* files that declare it in the same call to keep it masked. */
|
|
17
|
+
export function thirdPartyNames(inputs,
|
|
18
|
+
/** The project map and the team's namespace, kept apart: merged by key, one
|
|
19
|
+
* placeholder in both would drop a name (security review of ec0cb00). */
|
|
20
|
+
known, cwd) {
|
|
21
|
+
const out = new Map();
|
|
22
|
+
// Each file by its OWN extension: --language overrides how a file is masked,
|
|
23
|
+
// never whether scrub can read what it declares (security review of #149).
|
|
24
|
+
const languageFor = (name) => (name ? languageOfPath(name) : null) ?? 'auto';
|
|
25
|
+
// Only from a project root: from anywhere else scrub cannot see the
|
|
26
|
+
// project's shape, and a project's own module would read as a package.
|
|
27
|
+
if (!existsSync(join(cwd, '.git')) && !existsSync(join(cwd, 'package.json')))
|
|
28
|
+
return out;
|
|
29
|
+
const parsed = (l) => l === 'typescript' || l === 'python' || l === 'go';
|
|
30
|
+
// Text that declares no code (notes, data) does not count; a source file in
|
|
31
|
+
// a language whose declarations are not read does, and keeps everything.
|
|
32
|
+
// Shell scripts count as prose here; what they declare is still read below.
|
|
33
|
+
const prose = (name) => /\.(txt|md|markdown|rst|json|ya?ml|toml|csv|log|ini|sh|bash|zsh|ps1)$/i.test(name);
|
|
34
|
+
const unknown = inputs.some((i) => i.name === null || (!prose(i.name) && !parsed(languageFor(i.name))));
|
|
35
|
+
if (unknown)
|
|
36
|
+
return out;
|
|
37
|
+
const declared = new Set();
|
|
38
|
+
const code = inputs.filter((i) => parsed(languageFor(i.name)));
|
|
39
|
+
for (const i of code) {
|
|
40
|
+
for (const name of parseDeclarations(i.text, languageFor(i.name)))
|
|
41
|
+
declared.add(name);
|
|
42
|
+
}
|
|
43
|
+
// A shell script counts as prose above, but what it declares is the project's.
|
|
44
|
+
for (const i of inputs)
|
|
45
|
+
if (i.name && /\.(sh|bash|zsh|ps1)$/i.test(i.name))
|
|
46
|
+
for (const name of parseShellDeclarations(i.text))
|
|
47
|
+
declared.add(name);
|
|
48
|
+
const shape = projectShape(cwd, inputs);
|
|
49
|
+
for (const i of code) {
|
|
50
|
+
const names = externalNames(i.text, languageFor(i.name), shape);
|
|
51
|
+
// Nor a name the map already holds as code (a variable, function or class):
|
|
52
|
+
// another file, or an earlier scrub, found it to be the project's.
|
|
53
|
+
const held = new Set(known
|
|
54
|
+
.flatMap((map) => Object.entries(map))
|
|
55
|
+
.filter(([placeholder]) => /^__(VAR|FN|CLS)__\d+$/.test(placeholder))
|
|
56
|
+
.map(([, name]) => name));
|
|
57
|
+
out.set(i, new Set([...names].filter((n) => !declared.has(n) && !held.has(n))));
|
|
58
|
+
}
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
/** What the CLI can see of the project's shape from where it runs: the
|
|
62
|
+
* top-level directories, the package names in package.json files near the
|
|
63
|
+
* root, tsconfig path aliases and baseUrl, and the Python module names on the
|
|
64
|
+
* inputs' paths. */
|
|
65
|
+
export function projectShape(cwd, inputs) {
|
|
66
|
+
const dirs = (dir) => {
|
|
67
|
+
try {
|
|
68
|
+
return readdirSync(dir, { withFileTypes: true })
|
|
69
|
+
.filter((d) => d.isDirectory() && !d.name.startsWith('.') && d.name !== 'node_modules')
|
|
70
|
+
.map((d) => d.name);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const json = (path) => {
|
|
77
|
+
try {
|
|
78
|
+
return JSON.parse(readFileSync(path, 'utf8')
|
|
79
|
+
.replace(/\/\*[\s\S]*?\*\//g, '')
|
|
80
|
+
.replace(/^\s*\/\/.*$/gm, '')
|
|
81
|
+
.replace(/,(\s*[}\]])/g, '$1'));
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
const top = dirs(cwd);
|
|
88
|
+
const workspaces = [];
|
|
89
|
+
for (const dir of [
|
|
90
|
+
'',
|
|
91
|
+
...top,
|
|
92
|
+
...top.flatMap((t) => dirs(join(cwd, t)).map((d) => `${t}/${d}`)),
|
|
93
|
+
]) {
|
|
94
|
+
const name = json(join(cwd, dir, 'package.json'))?.name;
|
|
95
|
+
if (typeof name === 'string')
|
|
96
|
+
workspaces.push(name);
|
|
97
|
+
}
|
|
98
|
+
const tsconfig = json(join(cwd, 'tsconfig.json'))?.compilerOptions;
|
|
99
|
+
const baseDirs = new Set(top);
|
|
100
|
+
if (typeof tsconfig?.baseUrl === 'string')
|
|
101
|
+
for (const d of dirs(join(cwd, tsconfig.baseUrl)))
|
|
102
|
+
baseDirs.add(d);
|
|
103
|
+
const pathAliases = Object.keys(tsconfig?.paths ?? {})
|
|
104
|
+
.map((k) => k.replace(/\*.*$/, ''))
|
|
105
|
+
.filter(Boolean);
|
|
106
|
+
const pythonModules = new Set(top);
|
|
107
|
+
for (const i of inputs)
|
|
108
|
+
if (i.name?.endsWith('.py'))
|
|
109
|
+
for (const part of i.name.replace(/\.py$/, '').split('/'))
|
|
110
|
+
pythonModules.add(part);
|
|
111
|
+
return { baseDirs: [...baseDirs], workspaces, pathAliases, pythonModules: [...pythonModules] };
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=third-party.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"third-party.js","sourceRoot":"","sources":["../src/third-party.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4EAA4E;AAC5E,gFAAgF;AAChF,4DAA4D;AAC5D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EACL,aAAa,EAGb,cAAc,EACd,iBAAiB,EACjB,sBAAsB,GAEvB,MAAM,oBAAoB,CAAA;AAE3B;;;;;;;;gEAQgE;AAChE,MAAM,UAAU,eAAe,CAC7B,MAA+C;AAC/C;0EAC0E;AAC1E,KAA+B,EAC/B,GAAW;IAEX,MAAM,GAAG,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC1C,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,WAAW,GAAG,CAAC,IAAmB,EAAkB,EAAE,CAC1D,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAA;IAChD,oEAAoE;IACpE,uEAAuE;IACvE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAAE,OAAO,GAAG,CAAA;IACxF,MAAM,MAAM,GAAG,CAAC,CAAiB,EAAuC,EAAE,CACxE,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAA;IACpD,4EAA4E;IAC5E,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAC7B,uEAAuE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3E,CAAA;IACD,IAAI,OAAO;QAAE,OAAO,GAAG,CAAA;IACvB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC9D,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAa,CAAC;YAC3E,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACtB,CAAC;IACD,+EAA+E;IAC/E,KAAK,MAAM,CAAC,IAAI,MAAM;QACpB,IAAI,CAAC,CAAC,IAAI,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAChD,KAAK,MAAM,IAAI,IAAI,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACzE,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACvC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAa,EAAE,KAAK,CAAC,CAAA;QAC3E,4EAA4E;QAC5E,mEAAmE;QACnE,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,KAAK;aACF,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aACrC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACpE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAC3B,CAAA;QACD,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjF,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;qBAGqB;AACrB,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,MAAiC;IACzE,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,OAAO,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;iBAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;iBACtF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,CAAC,IAAY,EAAO,EAAE;QACjC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CACf,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;iBACvB,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;iBAChC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;iBAC5B,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CACjC,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC,CAAA;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;IACrB,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,KAAK,MAAM,GAAG,IAAI;QAChB,EAAE;QACF,GAAG,GAAG;QACN,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAClE,EAAE,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,CAAA;QACvD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrD,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,EAAE,eAAe,CAAA;IAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAC7B,IAAI,OAAO,QAAQ,EAAE,OAAO,KAAK,QAAQ;QACvC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACpE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;SACnD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC,CAAA;IAClB,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAClC,KAAK,MAAM,CAAC,IAAI,MAAM;QACpB,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;gBAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACtF,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAA;AAChG,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The package's own version.
|
|
3
|
+
*
|
|
4
|
+
* Read from package.json, not typed here: changesets bumps the manifest only,
|
|
5
|
+
* so a literal drifts - the published 0.2.0 reported 0.1.0 (found 2026-09-26).
|
|
6
|
+
* npm always ships package.json, and `../package.json` resolves from `src/` and
|
|
7
|
+
* `dist/` alike.
|
|
8
|
+
*
|
|
9
|
+
* In its own module so `index.ts` and `cloud-commands.ts` can both have it
|
|
10
|
+
* without a cycle: `index` imports the commands, so the commands cannot import
|
|
11
|
+
* `index`. A second copy of the three lines would be a second thing to drift,
|
|
12
|
+
* which is the bug this constant already exists to prevent.
|
|
13
|
+
*/
|
|
14
|
+
export declare const VERSION: string;
|
|
15
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,EAAE,MAEb,CAAA"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
/**
|
|
3
|
+
* The package's own version.
|
|
4
|
+
*
|
|
5
|
+
* Read from package.json, not typed here: changesets bumps the manifest only,
|
|
6
|
+
* so a literal drifts - the published 0.2.0 reported 0.1.0 (found 2026-09-26).
|
|
7
|
+
* npm always ships package.json, and `../package.json` resolves from `src/` and
|
|
8
|
+
* `dist/` alike.
|
|
9
|
+
*
|
|
10
|
+
* In its own module so `index.ts` and `cloud-commands.ts` can both have it
|
|
11
|
+
* without a cycle: `index` imports the commands, so the commands cannot import
|
|
12
|
+
* `index`. A second copy of the three lines would be a second thing to drift,
|
|
13
|
+
* which is the bug this constant already exists to prevent.
|
|
14
|
+
*/
|
|
15
|
+
export const VERSION = createRequire(import.meta.url)('../package.json').version;
|
|
16
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,OAAO,GAClB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,CACjD,CAAC,OAAO,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veilio-inc/cli",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"description": "Anonymize identifiers and redact credentials in source code before it reaches an LLM
|
|
3
|
+
"version": "0.5.2",
|
|
4
|
+
"description": "Anonymize identifiers and redact credentials in source code before it reaches an LLM — from the terminal, a pipe, or a pre-commit hook.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"veilio": "dist/index.js"
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
],
|
|
29
29
|
"license": "SEE LICENSE IN LICENSE",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@veilio-inc/engine": "^1.
|
|
31
|
+
"@veilio-inc/engine": "^1.10.1"
|
|
32
32
|
},
|
|
33
33
|
"scripts": {
|
|
34
34
|
"build": "tsc",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"test:coverage": "vitest run --coverage"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@vitest/coverage-v8": "^5.0.
|
|
42
|
+
"@vitest/coverage-v8": "^5.0.5",
|
|
43
43
|
"typescript": "^5.4.0",
|
|
44
44
|
"vitest": "^5.0.1"
|
|
45
45
|
},
|
|
@@ -51,7 +51,8 @@
|
|
|
51
51
|
"./team-unlock": "./dist/team-unlock.js",
|
|
52
52
|
"./team-namespace": "./dist/team-namespace.js",
|
|
53
53
|
"./rules": "./dist/rules.js",
|
|
54
|
-
"./team-anonymize": "./dist/team-anonymize.js"
|
|
54
|
+
"./team-anonymize": "./dist/team-anonymize.js",
|
|
55
|
+
"./third-party": "./dist/third-party.js"
|
|
55
56
|
},
|
|
56
57
|
"repository": {
|
|
57
58
|
"type": "git",
|