@veilio-inc/cli 0.7.1 → 0.9.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.
Files changed (71) hide show
  1. package/README.md +175 -14
  2. package/dist/client/blocks.d.ts +30 -0
  3. package/dist/client/blocks.d.ts.map +1 -0
  4. package/dist/client/blocks.js +125 -0
  5. package/dist/client/blocks.js.map +1 -0
  6. package/dist/client/maps.d.ts +8 -0
  7. package/dist/client/maps.d.ts.map +1 -1
  8. package/dist/client/maps.js +260 -16
  9. package/dist/client/maps.js.map +1 -1
  10. package/dist/client/rules-skipped.d.ts +22 -0
  11. package/dist/client/rules-skipped.d.ts.map +1 -0
  12. package/dist/client/rules-skipped.js +30 -0
  13. package/dist/client/rules-skipped.js.map +1 -0
  14. package/dist/client/wording.d.ts +2 -2
  15. package/dist/client/wording.d.ts.map +1 -1
  16. package/dist/client/wording.js +15 -0
  17. package/dist/client/wording.js.map +1 -1
  18. package/dist/cloud-commands.d.ts +5 -3
  19. package/dist/cloud-commands.d.ts.map +1 -1
  20. package/dist/cloud-commands.js +109 -28
  21. package/dist/cloud-commands.js.map +1 -1
  22. package/dist/cloud.d.ts +74 -7
  23. package/dist/cloud.d.ts.map +1 -1
  24. package/dist/cloud.js +205 -3
  25. package/dist/cloud.js.map +1 -1
  26. package/dist/commands.d.ts +10 -0
  27. package/dist/commands.d.ts.map +1 -1
  28. package/dist/commands.js +90 -15
  29. package/dist/commands.js.map +1 -1
  30. package/dist/credential.d.ts +12 -0
  31. package/dist/credential.d.ts.map +1 -1
  32. package/dist/credential.js +48 -0
  33. package/dist/credential.js.map +1 -1
  34. package/dist/flags.js +2 -2
  35. package/dist/flags.js.map +1 -1
  36. package/dist/guard-hint.d.ts +12 -0
  37. package/dist/guard-hint.d.ts.map +1 -0
  38. package/dist/guard-hint.js +38 -0
  39. package/dist/guard-hint.js.map +1 -0
  40. package/dist/hashed-bases.d.ts +12 -0
  41. package/dist/hashed-bases.d.ts.map +1 -0
  42. package/dist/hashed-bases.js +45 -0
  43. package/dist/hashed-bases.js.map +1 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +9 -1
  46. package/dist/index.js.map +1 -1
  47. package/dist/reservations.d.ts +145 -0
  48. package/dist/reservations.d.ts.map +1 -0
  49. package/dist/reservations.js +348 -0
  50. package/dist/reservations.js.map +1 -0
  51. package/dist/rules-open.d.ts +16 -0
  52. package/dist/rules-open.d.ts.map +1 -0
  53. package/dist/rules-open.js +87 -0
  54. package/dist/rules-open.js.map +1 -0
  55. package/dist/rules.d.ts +20 -2
  56. package/dist/rules.d.ts.map +1 -1
  57. package/dist/rules.js +86 -4
  58. package/dist/rules.js.map +1 -1
  59. package/dist/store.d.ts +3 -0
  60. package/dist/store.d.ts.map +1 -1
  61. package/dist/store.js +19 -1
  62. package/dist/store.js.map +1 -1
  63. package/dist/team-anonymize.d.ts +16 -1
  64. package/dist/team-anonymize.d.ts.map +1 -1
  65. package/dist/team-anonymize.js +39 -13
  66. package/dist/team-anonymize.js.map +1 -1
  67. package/dist/team-namespace.d.ts +59 -4
  68. package/dist/team-namespace.d.ts.map +1 -1
  69. package/dist/team-namespace.js +133 -11
  70. package/dist/team-namespace.js.map +1 -1
  71. package/package.json +8 -5
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ import { EXIT_ERROR, HELP, runMap, runRestore, runScan, runScrub } from './comma
5
5
  import { commandHelp } from './flags.js';
6
6
  import { runLogin, runLogout, runWhoami, runMapsList, runMapsPull, runMapsPush, runMapsRm, runMapsUpdate, runTeamUnlock, runTeamLock, runVaultUnlock, runVaultLock, runProjectsList, runProjectsUse, runRulesPull, teamLayerFor, teamNamespaceForScrub, } from './cloud-commands.js';
7
7
  import { resolveMapPath } from './store.js';
8
+ import { guardHint } from './guard-hint.js';
8
9
  import { createInterface } from 'node:readline';
9
10
  import { realpathSync } from 'node:fs';
10
11
  import { pathToFileURL } from 'node:url';
@@ -27,6 +28,12 @@ export async function main(argv, io) {
27
28
  }
28
29
  throw err;
29
30
  }
31
+ // Spec 070: only with a real environment - an Io without one (a test, an embedder) gets no hint.
32
+ if (io.env && !args.quiet) {
33
+ const hint = guardHint('cli', io.env, io.home);
34
+ if (hint)
35
+ io.stderr(`${hint}\n`);
36
+ }
30
37
  return run(args, io);
31
38
  }
32
39
  /**
@@ -81,7 +88,7 @@ export async function run(args, io) {
81
88
  case 'team': {
82
89
  switch (args.teamAction) {
83
90
  case 'unlock':
84
- return await runTeamUnlock(io, args.days ?? undefined);
91
+ return await runTeamUnlock(io, args.days ?? undefined, resolveMapPath(args.mapPath, io.cwd));
85
92
  case 'lock':
86
93
  return runTeamLock(io);
87
94
  default:
@@ -276,6 +283,7 @@ if (invokedAsProgram()) {
276
283
  stderr: (text) => process.stderr.write(text),
277
284
  prompt: readLine,
278
285
  password: readSecret,
286
+ env: process.env,
279
287
  };
280
288
  main(process.argv.slice(2), io).then((code) => {
281
289
  process.exitCode = code;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import { type SymbolMap } from '@veilio-inc/engine';
2
+ export declare const RESERVED_FILE = "reserved.json";
3
+ export declare const ALIASES_FILE = "aliases.json";
4
+ /** The placeholder kinds a guard or scrub mints, besides any already in the map. */
5
+ export declare const CORE_BASES: readonly ["__VAR__", "__FN__", "__CLS__"];
6
+ export type Block = {
7
+ start: number;
8
+ end: number;
9
+ };
10
+ /** Why the last reservation failed (spec 066 R4). */
11
+ export declare const REFUSAL_REASONS: readonly ["cap", "payment", "offline", "server"];
12
+ export type RefusalReason = (typeof REFUSAL_REASONS)[number];
13
+ export type Refused = {
14
+ reason: RefusalReason;
15
+ at: string;
16
+ nextAt?: string;
17
+ detail?: string;
18
+ };
19
+ export type ReservedFile = {
20
+ version: 1;
21
+ instance: string;
22
+ account: string;
23
+ teamId: string;
24
+ blocks: Record<string, Block>;
25
+ /** Spec 066: the tag this checkout's local placeholders carry. Absent in a
26
+ * file from an older CLI; the next `ensureBlocks` adds one. */
27
+ local?: {
28
+ tag: string;
29
+ };
30
+ /** Spec 066: the last reservation failed. Removed by the next success. */
31
+ refused?: Refused;
32
+ };
33
+ /** A fresh checkout tag: six of A-Z0-9, about 2.2e9 of them (spec 066 R1). */
34
+ export declare function drawTag(): string;
35
+ export declare class ReservedFileError extends Error {
36
+ constructor(path: string, why: string);
37
+ }
38
+ /** The member's blocks, or null before any was reserved. A malformed file is refused, never numbered from. */
39
+ export declare function loadReserved(mapPath: string): ReservedFile | null;
40
+ /** A publish retired this process's local placeholders: the next is drawn
41
+ * afresh, so a retired one is never minted again for another name (R6). */
42
+ export declare function resetSessionTag(): void;
43
+ /**
44
+ * What signed-in scrub and the MCP server number new names from (spec 066 R3):
45
+ * this checkout's blocks and tag, when `reserved.json` is this account's for
46
+ * this team. Anything else - no file, a malformed one, another account's - is
47
+ * no blocks, so every new name goes into the local family, under a tag held
48
+ * for this process. Read only: neither surface reserves (spec 011).
49
+ */
50
+ export declare function teamNumbering(mapPath: string, owner: {
51
+ instance: string;
52
+ account: string;
53
+ teamId: string;
54
+ }): {
55
+ blocks: Record<string, Block>;
56
+ tag: string;
57
+ retired: string[];
58
+ refused?: Refused;
59
+ };
60
+ /**
61
+ * Spec 066 FR-001 (code review): numbering for a signed-in checkout in a team,
62
+ * whether or not the team's maps could be read. The file's blocks and tag when
63
+ * it is this account's (for `teamId`, or for any team when that is unknown);
64
+ * otherwise no blocks - and with `write` and a known team, a fresh file
65
+ * holding a new tag, so the tag outlives this run; with the team never seen,
66
+ * a tag held for this process. A signed-in account is never numbered above
67
+ * its map without a block (code review).
68
+ */
69
+ export declare function localNumbering(mapPath: string, who: {
70
+ instance: string;
71
+ account: string;
72
+ }, teamId: string | null, opts: {
73
+ write: boolean;
74
+ }): ReturnType<typeof teamNumbering>;
75
+ /** Said by `maps pull` (CLI and MCP) when the map held numbers above 1e8. */
76
+ export declare function outOfRangeNote(n: number): string;
77
+ /** Said by `maps pull` (CLI and MCP) when the map held numbers no run the
78
+ * server issued vouches for (round 4). */
79
+ export declare function unvouchedNote(n: number): string;
80
+ /** Said by restore (CLI and MCP) for placeholders above every number the
81
+ * server issued for their kind (round 4). */
82
+ export declare function unissuedNote(placeholders: readonly string[]): string;
83
+ /** Said by `maps pull` (CLI and MCP) when a team map held local-family keys. */
84
+ export declare function localDroppedNote(n: number): string;
85
+ /**
86
+ * A server's words, safe for a terminal: control characters and Unicode format
87
+ * characters (bidi overrides, zero-width) become `?` (code review of spec 066).
88
+ */
89
+ export declare function printable(text: string): string;
90
+ /**
91
+ * Spec 066 R7: a refused reservation, said the same way by the CLI and the
92
+ * MCP server - the reason, and what follows from it.
93
+ */
94
+ export declare function reservationRefusedSentence(refused: Pick<Refused, 'reason' | 'nextAt' | 'detail'>, tag: string): string;
95
+ export declare function saveReserved(mapPath: string, reserved: ReservedFile): void;
96
+ /**
97
+ * The kinds that need a fresh block: those asked for or present in the map,
98
+ * with no block or a used-up one. Only numbers inside the block count
99
+ * (usedInBlock): a teammate's newer number above it leaves it usable, since the
100
+ * server issued it to this member alone (security audit, round 4; spec 063 R1's
101
+ * "above the map" came from the old marker technique). A local kind (`__LOCAL_<tag>_FN__`) asks for its team
102
+ * kind, never for itself: the server refuses a local base (spec 066 R4).
103
+ */
104
+ export declare function basesNeedingBlocks(map: SymbolMap, blocks: Record<string, Block>, wanted: readonly string[]): string[];
105
+ export declare function loadAliases(mapPath: string): SymbolMap;
106
+ /**
107
+ * aliases.json, checked like map.json (security audit), and never thrown on
108
+ * (security review of round 1: one bad entry cost teamNumbering every
109
+ * retired placeholder). An entry whose name is not a string of 1 to 100000
110
+ * characters, whose key is not a placeholder, or past the entry bound is
111
+ * dropped and counted in `ignored`; the rest are kept. A file that is not an
112
+ * object of aliases is `unreadable`: no aliases, and never written over.
113
+ */
114
+ export declare function readAliases(mapPath: string): {
115
+ aliases: SymbolMap;
116
+ ignored: number;
117
+ unreadable?: true;
118
+ };
119
+ /** Remember renumbered placeholders' old meanings. One old placeholder never gets a second meaning. */
120
+ export declare function addAliases(mapPath: string, entries: SymbolMap): void;
121
+ /** How the CLI and the MCP name a placeholder left because its number was another member's. */
122
+ export declare function misattributedNote(placeholders: readonly string[]): string;
123
+ /**
124
+ * This member's own restore layer: the map, and the old placeholders a publish
125
+ * renumbered (aliases.json). A placeholder the two give different names is
126
+ * contested - text masked under either meaning could hold it - so it is in
127
+ * neither, and the caller names it (code review). Only placeholder-shaped
128
+ * keys are read from either file: anything else is dropped, and counted
129
+ * (`ignored`), so a planted key never reaches a pattern (security audit).
130
+ */
131
+ export declare function ownWithAliases(mapPath: string, given: SymbolMap): {
132
+ own: SymbolMap;
133
+ contested: string[];
134
+ ignored: number;
135
+ };
136
+ /** Said by restore (CLI and MCP) when map.json or aliases.json held keys that are not placeholders. */
137
+ export declare function ignoredKeysNote(n: number): string;
138
+ export declare function contestedNote(placeholders: readonly string[]): string;
139
+ /** The one-way redactions (`__REDACTED_CREDENTIAL_1__`, `__REDACTED_IBAN__`)
140
+ * in a text, once each, in order of first appearance (spec 067). */
141
+ export declare function redactionsIn(text: string): string[];
142
+ /** Said by restore (CLI and MCP) for the redactions it left (spec 067): a
143
+ * redacted value is gone for good, so the text is not the original file. */
144
+ export declare function redactedNote(tokens: readonly string[]): string;
145
+ //# sourceMappingURL=reservations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reservations.d.ts","sourceRoot":"","sources":["../src/reservations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,348 @@
1
+ // Spec 063: this member's blocks of the team's placeholder numbers, and the
2
+ // old placeholders a publish renumbered.
3
+ //
4
+ // Both live beside the project's map, in files of their own rather than as
5
+ // fields of map.json: the guard (and every older CLI and guard) writes map.json
6
+ // back with only `version`, `map` and `remote`, and would silently drop a field
7
+ // it does not know. Nothing else writes these two files, and only the CLI and
8
+ // the MCP server write them; the guard only reads `reserved.json`.
9
+ import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
10
+ import { randomInt } from 'node:crypto';
11
+ import { basename, dirname, join } from 'node:path';
12
+ import { refuseLinks } from './store.js';
13
+ import { highestPerKind, isLocalTag, isPlaceholder, isSaneBlock, REDACTION_TOKENS, teamBaseOf, usedInBlock, } from '@veilio-inc/engine';
14
+ export const RESERVED_FILE = 'reserved.json';
15
+ export const ALIASES_FILE = 'aliases.json';
16
+ /** The placeholder kinds a guard or scrub mints, besides any already in the map. */
17
+ export const CORE_BASES = ['__VAR__', '__FN__', '__CLS__'];
18
+ const BASE = /^__[A-Z][A-Z0-9_]*__$/;
19
+ /** Why the last reservation failed (spec 066 R4). */
20
+ export const REFUSAL_REASONS = ['cap', 'payment', 'offline', 'server'];
21
+ const isIsoTime = (v) => typeof v === 'string' && /^\d{4}-\d{2}-\d{2}T/.test(v) && !Number.isNaN(Date.parse(v));
22
+ const TAG_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
23
+ /** A fresh checkout tag: six of A-Z0-9, about 2.2e9 of them (spec 066 R1). */
24
+ export function drawTag() {
25
+ return Array.from({ length: 6 }, () => TAG_ALPHABET[randomInt(TAG_ALPHABET.length)]).join('');
26
+ }
27
+ export class ReservedFileError extends Error {
28
+ constructor(path, why) {
29
+ super(`${path} is not a reservation file this version can use (${why}); remove it and run \`veilio maps pull\` again`);
30
+ this.name = 'ReservedFileError';
31
+ }
32
+ }
33
+ const reservedPath = (mapPath) => join(dirname(mapPath), RESERVED_FILE);
34
+ const aliasesPath = (mapPath) => join(dirname(mapPath), ALIASES_FILE);
35
+ function writePrivate(path, value) {
36
+ refuseLinks(basename(path), dirname(path), path);
37
+ mkdirSync(dirname(path), { recursive: true });
38
+ writeFileSync(path, `${JSON.stringify(value, null, 2)}\n`, { mode: 0o600 });
39
+ chmodSync(path, 0o600);
40
+ }
41
+ /** The member's blocks, or null before any was reserved. A malformed file is refused, never numbered from. */
42
+ export function loadReserved(mapPath) {
43
+ const path = reservedPath(mapPath);
44
+ if (!existsSync(path))
45
+ return null;
46
+ let parsed;
47
+ try {
48
+ parsed = JSON.parse(readFileSync(path, 'utf8'));
49
+ }
50
+ catch {
51
+ throw new ReservedFileError(path, 'it is not valid JSON');
52
+ }
53
+ const r = parsed;
54
+ if (r?.version !== 1)
55
+ throw new ReservedFileError(path, `its version is ${JSON.stringify(r?.version)}`);
56
+ for (const k of ['instance', 'account', 'teamId'])
57
+ if (typeof r[k] !== 'string' || !r[k])
58
+ throw new ReservedFileError(path, `it has no ${k}`);
59
+ if (typeof r.blocks !== 'object' || r.blocks === null || Array.isArray(r.blocks))
60
+ throw new ReservedFileError(path, 'it has no blocks');
61
+ for (const [base, b] of Object.entries(r.blocks)) {
62
+ if (!BASE.test(base))
63
+ throw new ReservedFileError(path, `${JSON.stringify(base).slice(0, 40)} is not a placeholder kind`);
64
+ // At most 1e8 and 10000 long (security audit): near 2^53 two names share a number.
65
+ if (!isSaneBlock(b))
66
+ throw new ReservedFileError(path, `the ${base} block is not a run of whole numbers`);
67
+ }
68
+ if (r.local !== undefined && !isLocalTag(r.local?.tag))
69
+ throw new ReservedFileError(path, 'its local tag is not six of A-Z0-9');
70
+ if (r.refused !== undefined) {
71
+ const f = r.refused;
72
+ if (!REFUSAL_REASONS.includes(f?.reason))
73
+ throw new ReservedFileError(path, 'its refusal has no known reason');
74
+ if (!isIsoTime(f?.at) || (f.nextAt !== undefined && !isIsoTime(f.nextAt)))
75
+ throw new ReservedFileError(path, 'its refusal time is not an ISO time');
76
+ if (f.detail !== undefined && (typeof f.detail !== 'string' || f.detail.length > 200))
77
+ throw new ReservedFileError(path, 'its refusal detail is not a short text');
78
+ }
79
+ return r;
80
+ }
81
+ /** Drawn once per process, for a checkout whose file gives no tag. */
82
+ let sessionTag = null;
83
+ /** A publish retired this process's local placeholders: the next is drawn
84
+ * afresh, so a retired one is never minted again for another name (R6). */
85
+ export function resetSessionTag() {
86
+ sessionTag = null;
87
+ }
88
+ /**
89
+ * What signed-in scrub and the MCP server number new names from (spec 066 R3):
90
+ * this checkout's blocks and tag, when `reserved.json` is this account's for
91
+ * this team. Anything else - no file, a malformed one, another account's - is
92
+ * no blocks, so every new name goes into the local family, under a tag held
93
+ * for this process. Read only: neither surface reserves (spec 011).
94
+ */
95
+ export function teamNumbering(mapPath, owner) {
96
+ // Read on every call (code review): a publish in another process retires
97
+ // local placeholders into aliases.json and may rewrite the tag.
98
+ let retired = [];
99
+ try {
100
+ retired = Object.keys(loadAliases(mapPath));
101
+ }
102
+ catch {
103
+ // unreadable: numbering is still floored by the map itself
104
+ }
105
+ const own = sessionTag;
106
+ if (own && retired.some((p) => p.startsWith(`__LOCAL_${own}_`)))
107
+ sessionTag = null;
108
+ let held = null;
109
+ try {
110
+ held = loadReserved(mapPath);
111
+ }
112
+ catch {
113
+ // malformed: no blocks, and never its tag
114
+ }
115
+ const tag = () => (sessionTag ??= drawTag());
116
+ if (held &&
117
+ held.instance === owner.instance &&
118
+ held.account === owner.account &&
119
+ held.teamId === owner.teamId)
120
+ return {
121
+ blocks: held.blocks,
122
+ tag: held.local?.tag ?? tag(),
123
+ retired,
124
+ ...(held.refused ? { refused: held.refused } : {}),
125
+ };
126
+ return { blocks: {}, tag: tag(), retired };
127
+ }
128
+ /**
129
+ * Spec 066 FR-001 (code review): numbering for a signed-in checkout in a team,
130
+ * whether or not the team's maps could be read. The file's blocks and tag when
131
+ * it is this account's (for `teamId`, or for any team when that is unknown);
132
+ * otherwise no blocks - and with `write` and a known team, a fresh file
133
+ * holding a new tag, so the tag outlives this run; with the team never seen,
134
+ * a tag held for this process. A signed-in account is never numbered above
135
+ * its map without a block (code review).
136
+ */
137
+ export function localNumbering(mapPath, who, teamId, opts) {
138
+ let held = null;
139
+ try {
140
+ held = loadReserved(mapPath);
141
+ }
142
+ catch {
143
+ // malformed: replaced below when allowed, never numbered from
144
+ }
145
+ if (held &&
146
+ held.instance === who.instance &&
147
+ held.account === who.account &&
148
+ (teamId === null || held.teamId === teamId))
149
+ return teamNumbering(mapPath, { ...who, teamId: held.teamId });
150
+ if (!teamId)
151
+ return teamNumbering(mapPath, { ...who, teamId: '' }); // matches no file: session tag
152
+ if (opts.write)
153
+ saveReserved(mapPath, {
154
+ version: 1,
155
+ ...who,
156
+ teamId,
157
+ blocks: {},
158
+ local: { tag: drawTag() },
159
+ });
160
+ return teamNumbering(mapPath, { ...who, teamId });
161
+ }
162
+ /** Said by `maps pull` (CLI and MCP) when the map held numbers above 1e8. */
163
+ export function outOfRangeNote(n) {
164
+ return (`${n} placeholder${n === 1 ? '' : 's'} in this map ${n === 1 ? 'is' : 'are'} numbered above 100,000,000: ` +
165
+ `kept for restore, but never numbered after - no Veilio client mints that high.`);
166
+ }
167
+ /** Said by `maps pull` (CLI and MCP) when the map held numbers no run the
168
+ * server issued vouches for (round 4). */
169
+ export function unvouchedNote(n) {
170
+ return (`${n} placeholder${n === 1 ? '' : 's'} in this map ${n === 1 ? 'is' : 'are'} numbered outside every run of numbers the server issued: ` +
171
+ `kept, but never a floor for new numbers, and restore leaves ${n === 1 ? 'one' : 'any'} above the highest number issued for its kind.`);
172
+ }
173
+ /** Said by restore (CLI and MCP) for placeholders above every number the
174
+ * server issued for their kind (round 4). */
175
+ export function unissuedNote(placeholders) {
176
+ const one = placeholders.length === 1;
177
+ return (`left as is: ${placeholders.join(', ')}. ${one ? 'Its number is' : 'Their numbers are'} above every number the server ` +
178
+ `has issued for ${one ? 'its' : 'their'} kind, so no reservation vouches for ${one ? 'it' : 'them'} and restoring would be a guess.`);
179
+ }
180
+ /** Said by `maps pull` (CLI and MCP) when a team map held local-family keys. */
181
+ export function localDroppedNote(n) {
182
+ return (`left out ${n} placeholder${n === 1 ? '' : 's'} numbered on one machine (__LOCAL_…) that the team map held: ` +
183
+ `${n === 1 ? 'it means' : 'they mean'} something only on the checkout that numbered ${n === 1 ? 'it' : 'them'}.`);
184
+ }
185
+ /**
186
+ * A server's words, safe for a terminal: control characters and Unicode format
187
+ * characters (bidi overrides, zero-width) become `?` (code review of spec 066).
188
+ */
189
+ export function printable(text) {
190
+ // eslint-disable-next-line no-control-regex -- matching them is the point
191
+ return text.replace(/[\u0000-\u001f\u007f-\u009f\p{Cf}]/gu, '?');
192
+ }
193
+ /** HH:MM on this machine's clock. */
194
+ function localTime(iso) {
195
+ const d = new Date(iso);
196
+ return `${String(d.getHours()).padStart(2, '0')}:${String(d.getMinutes()).padStart(2, '0')}`;
197
+ }
198
+ /**
199
+ * Spec 066 R7: a refused reservation, said the same way by the CLI and the
200
+ * MCP server - the reason, and what follows from it.
201
+ */
202
+ export function reservationRefusedSentence(refused, tag) {
203
+ const detail = printable(refused.detail ?? '').trim();
204
+ const why = refused.reason === 'cap'
205
+ ? "this account's daily limit for this team is reached" +
206
+ (refused.nextAt
207
+ ? `; the next block is possible at ${localTime(refused.nextAt)} (local time)`
208
+ : '')
209
+ : refused.reason === 'payment'
210
+ ? "the team's plan is not active"
211
+ : refused.reason === 'offline'
212
+ ? 'Veilio Cloud could not be reached'
213
+ : detail.replace(/[.!?]+$/, '') || 'the server refused it';
214
+ return (`could not reserve team numbers: ${why}. New names are numbered on this machine as ` +
215
+ `__LOCAL_${tag}_… until a block is held; your next publish gives them team numbers.`);
216
+ }
217
+ export function saveReserved(mapPath, reserved) {
218
+ writePrivate(reservedPath(mapPath), reserved);
219
+ }
220
+ /**
221
+ * The kinds that need a fresh block: those asked for or present in the map,
222
+ * with no block or a used-up one. Only numbers inside the block count
223
+ * (usedInBlock): a teammate's newer number above it leaves it usable, since the
224
+ * server issued it to this member alone (security audit, round 4; spec 063 R1's
225
+ * "above the map" came from the old marker technique). A local kind (`__LOCAL_<tag>_FN__`) asks for its team
226
+ * kind, never for itself: the server refuses a local base (spec 066 R4).
227
+ */
228
+ export function basesNeedingBlocks(map, blocks, wanted) {
229
+ const keys = Object.keys(map);
230
+ const top = highestPerKind(map);
231
+ const bases = new Set([...wanted, ...Object.keys(top).map((b) => teamBaseOf(b) ?? b)]);
232
+ return [...bases].filter((base) => {
233
+ const b = blocks[base];
234
+ return !b || usedInBlock(keys, base, b) >= b.end;
235
+ });
236
+ }
237
+ export function loadAliases(mapPath) {
238
+ return readAliases(mapPath).aliases;
239
+ }
240
+ /** Bounds on aliases.json, far above any real one. */
241
+ const MAX_ALIASES = 1_000_000;
242
+ const MAX_NAME = 100_000;
243
+ /**
244
+ * aliases.json, checked like map.json (security audit), and never thrown on
245
+ * (security review of round 1: one bad entry cost teamNumbering every
246
+ * retired placeholder). An entry whose name is not a string of 1 to 100000
247
+ * characters, whose key is not a placeholder, or past the entry bound is
248
+ * dropped and counted in `ignored`; the rest are kept. A file that is not an
249
+ * object of aliases is `unreadable`: no aliases, and never written over.
250
+ */
251
+ export function readAliases(mapPath) {
252
+ const path = aliasesPath(mapPath);
253
+ const none = { aliases: {}, ignored: 0, unreadable: true };
254
+ if (!existsSync(path))
255
+ return { aliases: {}, ignored: 0 };
256
+ let parsed;
257
+ try {
258
+ parsed = JSON.parse(readFileSync(path, 'utf8'));
259
+ }
260
+ catch {
261
+ return none;
262
+ }
263
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed))
264
+ return none;
265
+ const raw = parsed.aliases ?? {};
266
+ if (typeof raw !== 'object' || raw === null || Array.isArray(raw))
267
+ return none;
268
+ let ignored = 0;
269
+ let kept = 0;
270
+ const aliases = {};
271
+ for (const [p, name] of Object.entries(raw)) {
272
+ if (kept < MAX_ALIASES &&
273
+ typeof name === 'string' &&
274
+ name.length > 0 &&
275
+ name.length <= MAX_NAME &&
276
+ isPlaceholder(p)) {
277
+ aliases[p] = name;
278
+ kept++;
279
+ }
280
+ else
281
+ ignored++;
282
+ }
283
+ return { aliases, ignored };
284
+ }
285
+ /** Remember renumbered placeholders' old meanings. One old placeholder never gets a second meaning. */
286
+ export function addAliases(mapPath, entries) {
287
+ const read = readAliases(mapPath);
288
+ // Written over, an unreadable file would lose every old meaning it holds.
289
+ if (read.unreadable)
290
+ throw new Error(`${ALIASES_FILE} is not a readable aliases file; nothing was changed`);
291
+ const aliases = read.aliases;
292
+ for (const [p, name] of Object.entries(entries))
293
+ if (p in aliases && aliases[p] !== name)
294
+ throw new Error(`${p} already stands for another name in ${ALIASES_FILE}; nothing was changed`);
295
+ writePrivate(aliasesPath(mapPath), { version: 1, aliases: { ...aliases, ...entries } });
296
+ }
297
+ /** How the CLI and the MCP name a placeholder left because its number was another member's. */
298
+ export function misattributedNote(placeholders) {
299
+ const one = placeholders.length === 1;
300
+ return (`left as is: ${placeholders.join(', ')}. ${one ? 'Its number was' : 'Their numbers were'} reserved by another member ` +
301
+ `than the one whose map names ${one ? 'it' : 'them'}, so restoring would be a guess.`);
302
+ }
303
+ /**
304
+ * This member's own restore layer: the map, and the old placeholders a publish
305
+ * renumbered (aliases.json). A placeholder the two give different names is
306
+ * contested - text masked under either meaning could hold it - so it is in
307
+ * neither, and the caller names it (code review). Only placeholder-shaped
308
+ * keys are read from either file: anything else is dropped, and counted
309
+ * (`ignored`), so a planted key never reaches a pattern (security audit).
310
+ */
311
+ export function ownWithAliases(mapPath, given) {
312
+ const read = readAliases(mapPath);
313
+ let ignored = read.ignored;
314
+ const aliases = read.aliases;
315
+ const map = Object.fromEntries(Object.entries(given).filter(([p]) => isPlaceholder(p) || (ignored++, false)));
316
+ const contested = Object.keys(aliases).filter((p) => p in map && map[p] !== aliases[p]);
317
+ const own = { ...aliases, ...map };
318
+ for (const p of contested)
319
+ delete own[p];
320
+ return { own, contested, ignored };
321
+ }
322
+ /** Said by restore (CLI and MCP) when map.json or aliases.json held keys that are not placeholders. */
323
+ export function ignoredKeysNote(n) {
324
+ return `ignored ${n} ${n === 1 ? 'entry' : 'entries'} in map.json or ${ALIASES_FILE} whose key is not a placeholder.`;
325
+ }
326
+ export function contestedNote(placeholders) {
327
+ const one = placeholders.length === 1;
328
+ return (`left as is: ${placeholders.join(', ')}. This project's map and its renumbered old placeholders ` +
329
+ `(.veilio/aliases.json) give ${one ? 'it' : 'them'} different identifiers, so restoring would be a guess.`);
330
+ }
331
+ // The engine's redaction tokens wherever they stand - inside a longer name too
332
+ // (a rule's residue, `"__REDACTED_AWS_SECRET_1__3"`): a fragment is still a
333
+ // value that cannot be restored, so it fails closed.
334
+ const REDACTION = new RegExp(REDACTION_TOKENS.source, 'g');
335
+ /** The one-way redactions (`__REDACTED_CREDENTIAL_1__`, `__REDACTED_IBAN__`)
336
+ * in a text, once each, in order of first appearance (spec 067). */
337
+ export function redactionsIn(text) {
338
+ return [...new Set(text.match(REDACTION) ?? [])];
339
+ }
340
+ /** Said by restore (CLI and MCP) for the redactions it left (spec 067): a
341
+ * redacted value is gone for good, so the text is not the original file. */
342
+ export function redactedNote(tokens) {
343
+ const one = tokens.length === 1;
344
+ return (`left as is: ${tokens.join(', ')}. ${one ? 'It was' : 'They were'} redacted one-way ` +
345
+ '(a credential or personal data) and cannot be restored, so this text is not the original: ' +
346
+ 'do not write it over the file. Make the change in the file itself instead.');
347
+ }
348
+ //# sourceMappingURL=reservations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reservations.js","sourceRoot":"","sources":["../src/reservations.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAChF,gFAAgF;AAChF,8EAA8E;AAC9E,mEAAmE;AAEnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,WAAW,GAEZ,MAAM,oBAAoB,CAAA;AAE3B,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAA;AAC5C,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAA;AAE1C,oFAAoF;AACpF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAA;AAEnE,MAAM,IAAI,GAAG,uBAAuB,CAAA;AAGpC,qDAAqD;AACrD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAgB/E,MAAM,SAAS,GAAG,CAAC,CAAU,EAAe,EAAE,CAC5C,OAAO,CAAC,KAAK,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAExF,MAAM,YAAY,GAAG,sCAAsC,CAAA;AAC3D,8EAA8E;AAC9E,MAAM,UAAU,OAAO;IACrB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC/F,CAAC;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,IAAY,EAAE,GAAW;QACnC,KAAK,CACH,GAAG,IAAI,oDAAoD,GAAG,iDAAiD,CAChH,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACjC,CAAC;CACF;AAED,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAA;AAC/E,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAA;AAE7E,SAAS,YAAY,CAAC,IAAY,EAAE,KAAc;IAChD,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;IAChD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC3E,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAClC,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAA;IAC3D,CAAC;IACD,MAAM,CAAC,GAAG,MAA+B,CAAA;IACzC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;QAClB,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IACnF,KAAK,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAU;QACxD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAA;IAC5F,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9E,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IACvD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAClB,MAAM,IAAI,iBAAiB,CACzB,IAAI,EACJ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,4BAA4B,CACjE,CAAA;QACH,mFAAmF;QACnF,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,OAAO,IAAI,sCAAsC,CAAC,CAAA;IACxF,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC;QACpD,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,oCAAoC,CAAC,CAAA;IACzE,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAkC,CAAA;QAC9C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAuB,CAAC;YACvD,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,iCAAiC,CAAC,CAAA;QACtE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACvE,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,qCAAqC,CAAC,CAAA;QAC1E,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;YACnF,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,wCAAwC,CAAC,CAAA;IAC/E,CAAC;IACD,OAAO,CAAiB,CAAA;AAC1B,CAAC;AAED,sEAAsE;AACtE,IAAI,UAAU,GAAkB,IAAI,CAAA;AAEpC;4EAC4E;AAC5E,MAAM,UAAU,eAAe;IAC7B,UAAU,GAAG,IAAI,CAAA;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAe,EACf,KAA4D;IAE5D,yEAAyE;IACzE,gEAAgE;IAChE,IAAI,OAAO,GAAa,EAAE,CAAA;IAC1B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;IAC7D,CAAC;IACD,MAAM,GAAG,GAAG,UAAU,CAAA;IACtB,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;QAAE,UAAU,GAAG,IAAI,CAAA;IAClF,IAAI,IAAI,GAAwB,IAAI,CAAA;IACpC,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;IAC5C,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC,CAAA;IAC5C,IACE,IAAI;QACJ,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;QAChC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;QAC9B,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAE5B,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,GAAG,EAAE;YAC7B,OAAO;YACP,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnD,CAAA;IACH,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,CAAA;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,GAA0C,EAC1C,MAAqB,EACrB,IAAwB;IAExB,IAAI,IAAI,GAAwB,IAAI,CAAA;IACpC,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,8DAA8D;IAChE,CAAC;IACD,IACE,IAAI;QACJ,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ;QAC9B,IAAI,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO;QAC5B,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;QAE3C,OAAO,aAAa,CAAC,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IAChE,IAAI,CAAC,MAAM;QAAE,OAAO,aAAa,CAAC,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA,CAAC,+BAA+B;IAClG,IAAI,IAAI,CAAC,KAAK;QACZ,YAAY,CAAC,OAAO,EAAE;YACpB,OAAO,EAAE,CAAC;YACV,GAAG,GAAG;YACN,MAAM;YACN,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;SAC1B,CAAC,CAAA;IACJ,OAAO,aAAa,CAAC,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;AACnD,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,cAAc,CAAC,CAAS;IACtC,OAAO,CACL,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,+BAA+B;QAC1G,gFAAgF,CACjF,CAAA;AACH,CAAC;AAED;2CAC2C;AAC3C,MAAM,UAAU,aAAa,CAAC,CAAS;IACrC,OAAO,CACL,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,4DAA4D;QACvI,+DAA+D,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,gDAAgD,CACvI,CAAA;AACH,CAAC;AAED;8CAC8C;AAC9C,MAAM,UAAU,YAAY,CAAC,YAA+B;IAC1D,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,CAAA;IACrC,OAAO,CACL,eAAe,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,iCAAiC;QACvH,kBAAkB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,wCAAwC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,kCAAkC,CACrI,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAAC,CAAS;IACxC,OAAO,CACL,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,+DAA+D;QAC7G,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,iDAAiD,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CACjH,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,0EAA0E;IAC1E,OAAO,IAAI,CAAC,OAAO,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAA;AAClE,CAAC;AAED,qCAAqC;AACrC,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAA;IACvB,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;AAC9F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAsD,EACtD,GAAW;IAEX,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACrD,MAAM,GAAG,GACP,OAAO,CAAC,MAAM,KAAK,KAAK;QACtB,CAAC,CAAC,qDAAqD;YACrD,CAAC,OAAO,CAAC,MAAM;gBACb,CAAC,CAAC,mCAAmC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe;gBAC7E,CAAC,CAAC,EAAE,CAAC;QACT,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;YAC5B,CAAC,CAAC,+BAA+B;YACjC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;gBAC5B,CAAC,CAAC,mCAAmC;gBACrC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,uBAAuB,CAAA;IAClE,OAAO,CACL,mCAAmC,GAAG,8CAA8C;QACpF,WAAW,GAAG,sEAAsE,CACrF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,QAAsB;IAClE,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAA;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAc,EACd,MAA6B,EAC7B,MAAyB;IAEzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC7B,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;IAC/B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACtF,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAChC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QACtB,OAAO,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAA;IAClD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,CAAA;AACrC,CAAC;AAED,sDAAsD;AACtD,MAAM,WAAW,GAAG,SAAS,CAAA;AAC7B,MAAM,QAAQ,GAAG,OAAO,CAAA;AAExB;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IAKzC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,IAAa,EAAE,CAAA;IACnE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;IACzD,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IACvF,MAAM,GAAG,GAAI,MAAgC,CAAC,OAAO,IAAI,EAAE,CAAA;IAC3D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IAC9E,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,MAAM,OAAO,GAAc,EAAE,CAAA;IAC7B,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,IACE,IAAI,GAAG,WAAW;YAClB,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI,CAAC,MAAM,GAAG,CAAC;YACf,IAAI,CAAC,MAAM,IAAI,QAAQ;YACvB,aAAa,CAAC,CAAC,CAAC,EAChB,CAAC;YACD,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;YACjB,IAAI,EAAE,CAAA;QACR,CAAC;;YAAM,OAAO,EAAE,CAAA;IAClB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;AAC7B,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,OAAkB;IAC5D,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IACjC,0EAA0E;IAC1E,IAAI,IAAI,CAAC,UAAU;QACjB,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,sDAAsD,CAAC,CAAA;IACxF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC5B,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI;YACrC,MAAM,IAAI,KAAK,CACb,GAAG,CAAC,uCAAuC,YAAY,uBAAuB,CAC/E,CAAA;IACL,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAA;AACzF,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,iBAAiB,CAAC,YAA+B;IAC/D,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,CAAA;IACrC,OAAO,CACL,eAAe,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,8BAA8B;QACtH,gCAAgC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,kCAAkC,CACtF,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,KAAgB;IAEhB,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IACjC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAC5B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,CAC9E,CAAA;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IACvF,MAAM,GAAG,GAAc,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,EAAE,CAAA;IAC7C,KAAK,MAAM,CAAC,IAAI,SAAS;QAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;IACxC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AACpC,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,eAAe,CAAC,CAAS;IACvC,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,mBAAmB,YAAY,kCAAkC,CAAA;AACvH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,YAA+B;IAC3D,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,CAAA;IACrC,OAAO,CACL,eAAe,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,2DAA2D;QACjG,+BAA+B,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,wDAAwD,CAC3G,CAAA;AACH,CAAC;AAED,+EAA+E;AAC/E,4EAA4E;AAC5E,qDAAqD;AACrD,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAE1D;qEACqE;AACrE,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AAClD,CAAC;AAED;6EAC6E;AAC7E,MAAM,UAAU,YAAY,CAAC,MAAyB;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAA;IAC/B,OAAO,CACL,eAAe,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,oBAAoB;QACrF,4FAA4F;QAC5F,4EAA4E,CAC7E,CAAA;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type CustomRule } from '@veilio-inc/engine';
2
+ import type { SealedRuleList } from './cloud.js';
3
+ import type { Credential } from './credential.js';
4
+ import { type RulesSkipped } from './client/rules-skipped.js';
5
+ /**
6
+ * Open the rules Cloud served (spec 065) with the keys on this machine: the
7
+ * personal-maps key for personal rules, the team's unlocked keys (any held
8
+ * version) for each team's rules. Nothing here throws on a rule: one that
9
+ * cannot be opened or must not be applied is counted, and masking goes on.
10
+ */
11
+ export declare function openFetchedRules(fetched: Partial<SealedRuleList>, credential: Credential, home?: string): Promise<{
12
+ personal: CustomRule[];
13
+ team: CustomRule[];
14
+ skipped: RulesSkipped;
15
+ }>;
16
+ //# sourceMappingURL=rules-open.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules-open.d.ts","sourceRoot":"","sources":["../src/rules-open.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,UAAU,EAKhB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAG/E;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAChC,UAAU,EAAE,UAAU,EACtB,IAAI,GAAE,MAAkB,GACvB,OAAO,CAAC;IAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAAC,IAAI,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,CAkDhF"}