@fnndsc/brasa 0.45.0 → 0.46.0
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/dist/api/models.d.ts +37 -0
- package/dist/api/models.js.map +1 -1
- package/dist/buildinfo.json +1 -1
- package/dist/builtins/fs/pull.args.d.ts +0 -10
- package/dist/builtins/fs/pull.args.js +5 -30
- package/dist/builtins/fs/pull.args.js.map +1 -1
- package/dist/builtins/fs/pull.js +2 -48
- package/dist/builtins/fs/pull.js.map +1 -1
- package/dist/builtins/help.js +21 -5
- package/dist/builtins/help.js.map +1 -1
- package/dist/builtins/helpSections.js +3 -3
- package/dist/builtins/helpSections.js.map +1 -1
- package/dist/builtins/net/query.js +0 -3
- package/dist/builtins/net/query.js.map +1 -1
- package/dist/builtins/pluginExecute.d.ts +4 -1
- package/dist/builtins/pluginExecute.js +11 -12
- package/dist/builtins/pluginExecute.js.map +1 -1
- package/dist/builtins/res/expect.js +5 -2
- package/dist/builtins/res/expect.js.map +1 -1
- package/dist/builtins/res/gather.d.ts +2 -2
- package/dist/builtins/res/gather.js +11 -3
- package/dist/builtins/res/gather.js.map +1 -1
- package/dist/builtins/res/gather.kind.d.ts +9 -0
- package/dist/builtins/res/gather.kind.js +10 -0
- package/dist/builtins/res/gather.kind.js.map +1 -0
- package/dist/builtins/res/gather.process.d.ts +29 -0
- package/dist/builtins/res/gather.process.js +177 -0
- package/dist/builtins/res/gather.process.js.map +1 -0
- package/dist/builtins/res/pipeline.d.ts +16 -0
- package/dist/builtins/res/pipeline.js +38 -13
- package/dist/builtins/res/pipeline.js.map +1 -1
- package/dist/builtins/res/play.d.ts +2 -0
- package/dist/builtins/res/play.js +30 -7
- package/dist/builtins/res/play.js.map +1 -1
- package/dist/builtins/res/plugin.js +9 -30
- package/dist/builtins/res/plugin.js.map +1 -1
- package/dist/builtins/res/runWait.d.ts +10 -0
- package/dist/builtins/res/runWait.js +14 -0
- package/dist/builtins/res/runWait.js.map +1 -1
- package/dist/builtins/sys/variables.d.ts +25 -0
- package/dist/builtins/sys/variables.js +113 -0
- package/dist/builtins/sys/variables.js.map +1 -0
- package/dist/builtins/variablesPage.d.ts +9 -0
- package/dist/builtins/variablesPage.js +54 -0
- package/dist/builtins/variablesPage.js.map +1 -0
- package/dist/chris/binExecutables.d.ts +19 -0
- package/dist/chris/binExecutables.js +18 -0
- package/dist/chris/binExecutables.js.map +1 -0
- package/dist/chris/commandFallback.js +6 -22
- package/dist/chris/commandFallback.js.map +1 -1
- package/dist/chris/help.d.ts +2 -2
- package/dist/chris/help.js +27 -44
- package/dist/chris/help.js.map +1 -1
- package/dist/chris/references.js +14 -75
- package/dist/chris/references.js.map +1 -1
- package/dist/core/assignment.d.ts +13 -0
- package/dist/core/assignment.js +98 -0
- package/dist/core/assignment.js.map +1 -0
- package/dist/core/coreCommands.js +5 -0
- package/dist/core/coreCommands.js.map +1 -1
- package/dist/core/engine.js +14 -3
- package/dist/core/engine.js.map +1 -1
- package/dist/core/expansion.d.ts +13 -7
- package/dist/core/expansion.js +36 -19
- package/dist/core/expansion.js.map +1 -1
- package/dist/core/sink.d.ts +33 -0
- package/dist/core/sink.js +48 -0
- package/dist/core/sink.js.map +1 -1
- package/dist/core/variables.d.ts +121 -0
- package/dist/core/variables.js +316 -0
- package/dist/core/variables.js.map +1 -0
- package/dist/lib/parser.js +2 -2
- package/dist/notes.json +1 -1
- package/dist/session/answerAdapters.js +12 -0
- package/dist/session/answerAdapters.js.map +1 -1
- package/package.json +1 -1
- package/dist/builtins/pronouns.d.ts +0 -8
- package/dist/builtins/pronouns.js +0 -39
- package/dist/builtins/pronouns.js.map +0 -1
- package/dist/session/recent.d.ts +0 -68
- package/dist/session/recent.js +0 -99
- package/dist/session/recent.js.map +0 -1
package/dist/core/expansion.js
CHANGED
|
@@ -10,9 +10,11 @@
|
|
|
10
10
|
*
|
|
11
11
|
* One resolver now answers for all of them, in a fixed order:
|
|
12
12
|
*
|
|
13
|
-
* . *
|
|
14
|
-
* the backend answers (ChRIS: the cohort, the feed, the run,
|
|
15
|
-
* .
|
|
13
|
+
* . *Built-ins*: the place the session stands (`cwd`), the held listing,
|
|
14
|
+
* and those the backend answers (ChRIS: the cohort, the feed, the run,
|
|
15
|
+
* the query). Read-only.
|
|
16
|
+
* . *Variables* (`core/variables.ts`): what lines set, and inside a play
|
|
17
|
+
* the manifest's parameters, read-only.
|
|
16
18
|
* . *The environment*.
|
|
17
19
|
*
|
|
18
20
|
* A name nothing answers refuses the LINE rather than expanding to nothing
|
|
@@ -27,6 +29,7 @@ import { session } from '../session/index.js';
|
|
|
27
29
|
import { answer_get, answerHandles_get, answerKind_count, answerRow_get, handle_word, numberedFooter_of } from '../session/answer.js';
|
|
28
30
|
import { heldListingOperands_get } from './listing.js';
|
|
29
31
|
import { backendInstalled_get } from './backend.js';
|
|
32
|
+
import { answer_read, variable_get, variableScope_isPlay } from './variables.js';
|
|
30
33
|
import { answerKind_find, answerKinds_get, verbTakes_get } from './answerKinds.js';
|
|
31
34
|
/** The name the core answers for itself: where the session stands. */
|
|
32
35
|
const CORE_REFERENCE = 'cwd';
|
|
@@ -42,17 +45,28 @@ function referenceSources_get() {
|
|
|
42
45
|
}
|
|
43
46
|
/** Whether an unanswerable reference may stand as written: what a dry run does. */
|
|
44
47
|
const standsScope = new AsyncLocalStorage();
|
|
45
|
-
/**
|
|
46
|
-
|
|
48
|
+
/** Why the last reference was refused, when a variable or a built-in said why. */
|
|
49
|
+
let fieldRefusal = null;
|
|
47
50
|
/**
|
|
48
|
-
*
|
|
51
|
+
* Records why a reference was refused, for the line's refusal to say.
|
|
49
52
|
*
|
|
50
|
-
* @param
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
* @param reason - The reason, or null to clear it.
|
|
54
|
+
*/
|
|
55
|
+
export function referenceRefusal_set(reason) {
|
|
56
|
+
fieldRefusal = reason;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Turns a reading into what the resolver returns, keeping the refusal.
|
|
60
|
+
*
|
|
61
|
+
* @param reading - What reading the variable or built-in gave.
|
|
62
|
+
* @returns Its operands, or null with the reason recorded.
|
|
53
63
|
*/
|
|
54
|
-
export
|
|
55
|
-
|
|
64
|
+
export function fieldReading_value(reading) {
|
|
65
|
+
if ('refused' in reading) {
|
|
66
|
+
fieldRefusal = reading.refused;
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
return { values: reading.values };
|
|
56
70
|
}
|
|
57
71
|
/**
|
|
58
72
|
* Runs work in which an unanswerable reference stands as written.
|
|
@@ -173,13 +187,14 @@ function index_resolve(name) {
|
|
|
173
187
|
return { values };
|
|
174
188
|
}
|
|
175
189
|
/**
|
|
176
|
-
* Answers a reference: an index, then the
|
|
177
|
-
* the environment.
|
|
190
|
+
* Answers a reference: an index, then the built-ins, then the variables,
|
|
191
|
+
* then the environment.
|
|
178
192
|
*
|
|
179
193
|
* @param name - The reference's name.
|
|
180
194
|
* @returns What it refers to, or null when nothing does.
|
|
181
195
|
*/
|
|
182
196
|
export async function reference_resolve(name) {
|
|
197
|
+
fieldRefusal = null;
|
|
183
198
|
if (name.startsWith('@'))
|
|
184
199
|
return index_resolve(name);
|
|
185
200
|
if (name === CORE_REFERENCE)
|
|
@@ -197,10 +212,9 @@ export async function reference_resolve(name) {
|
|
|
197
212
|
if (answered !== undefined)
|
|
198
213
|
return answered;
|
|
199
214
|
}
|
|
200
|
-
const
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
return { values: [given] };
|
|
215
|
+
const variable = variable_get(stem);
|
|
216
|
+
if (variable !== undefined)
|
|
217
|
+
return fieldReading_value(answer_read(variable.answer, stem, name.split('.').slice(1)));
|
|
204
218
|
const environment = process.env[name];
|
|
205
219
|
return environment === undefined ? null : { values: [environment] };
|
|
206
220
|
}
|
|
@@ -211,8 +225,11 @@ export async function reference_resolve(name) {
|
|
|
211
225
|
* @returns The refusal's text.
|
|
212
226
|
*/
|
|
213
227
|
export function reference_refusal(name) {
|
|
214
|
-
|
|
215
|
-
|
|
228
|
+
if (fieldRefusal !== null)
|
|
229
|
+
return `\${${name}}: ${fieldRefusal}.`;
|
|
230
|
+
const places = variableScope_isPlay()
|
|
231
|
+
? "the session's built-ins, this manifest's variables and parameters, the environment"
|
|
232
|
+
: "the session's built-ins, its variables, the environment";
|
|
216
233
|
if (name.startsWith('@')) {
|
|
217
234
|
if (kindRefusal !== null)
|
|
218
235
|
return `${name}: ${kindRefusal}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expansion.js","sourceRoot":"","sources":["../../src/core/expansion.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"expansion.js","sourceRoot":"","sources":["../../src/core/expansion.ts"],"names":[],"mappings":"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"}
|
package/dist/core/sink.d.ts
CHANGED
|
@@ -149,6 +149,39 @@ export declare class PipeCaptureSink implements OutputSink {
|
|
|
149
149
|
*/
|
|
150
150
|
buffer_get(): Buffer;
|
|
151
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Sink that passes everything through to the sink around it and keeps a copy
|
|
154
|
+
* of the data channel: what `NAME=$(command)` holds when the command answers
|
|
155
|
+
* no model. The command still prints as it would have, so a captured run's
|
|
156
|
+
* progress and readout reach the operator; text is kept ANSI-stripped, as a
|
|
157
|
+
* pipe keeps it.
|
|
158
|
+
*/
|
|
159
|
+
export declare class TeeSink implements OutputSink {
|
|
160
|
+
private readonly live;
|
|
161
|
+
private chunks;
|
|
162
|
+
/**
|
|
163
|
+
* Initializes a tee sink.
|
|
164
|
+
*
|
|
165
|
+
* @param live - The surrounding sink, which receives every channel.
|
|
166
|
+
*/
|
|
167
|
+
constructor(live: OutputSink);
|
|
168
|
+
/** @inheritdoc */
|
|
169
|
+
data_write(chunk: string | Buffer): void;
|
|
170
|
+
/** @inheritdoc */
|
|
171
|
+
err_write(chunk: string | Buffer): void;
|
|
172
|
+
/** @inheritdoc */
|
|
173
|
+
status_write(text: string): void;
|
|
174
|
+
/** @inheritdoc */
|
|
175
|
+
progress_write(event: ProgressEvent): void;
|
|
176
|
+
/** @inheritdoc */
|
|
177
|
+
event_write(kind: string, data: unknown): void;
|
|
178
|
+
/**
|
|
179
|
+
* Everything the data channel carried, as text.
|
|
180
|
+
*
|
|
181
|
+
* @returns The kept text.
|
|
182
|
+
*/
|
|
183
|
+
text_get(): string;
|
|
184
|
+
}
|
|
152
185
|
/**
|
|
153
186
|
* Returns the sink in effect for the current async context.
|
|
154
187
|
*
|
package/dist/core/sink.js
CHANGED
|
@@ -216,6 +216,54 @@ export class PipeCaptureSink {
|
|
|
216
216
|
return Buffer.concat(this.chunks);
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Sink that passes everything through to the sink around it and keeps a copy
|
|
221
|
+
* of the data channel: what `NAME=$(command)` holds when the command answers
|
|
222
|
+
* no model. The command still prints as it would have, so a captured run's
|
|
223
|
+
* progress and readout reach the operator; text is kept ANSI-stripped, as a
|
|
224
|
+
* pipe keeps it.
|
|
225
|
+
*/
|
|
226
|
+
export class TeeSink {
|
|
227
|
+
live;
|
|
228
|
+
chunks = [];
|
|
229
|
+
/**
|
|
230
|
+
* Initializes a tee sink.
|
|
231
|
+
*
|
|
232
|
+
* @param live - The surrounding sink, which receives every channel.
|
|
233
|
+
*/
|
|
234
|
+
constructor(live) {
|
|
235
|
+
this.live = live;
|
|
236
|
+
}
|
|
237
|
+
/** @inheritdoc */
|
|
238
|
+
data_write(chunk) {
|
|
239
|
+
this.chunks.push(typeof chunk === 'string' ? Buffer.from(ansi_strip(chunk), 'utf-8') : chunk);
|
|
240
|
+
this.live.data_write(chunk);
|
|
241
|
+
}
|
|
242
|
+
/** @inheritdoc */
|
|
243
|
+
err_write(chunk) {
|
|
244
|
+
this.live.err_write(chunk);
|
|
245
|
+
}
|
|
246
|
+
/** @inheritdoc */
|
|
247
|
+
status_write(text) {
|
|
248
|
+
this.live.status_write(text);
|
|
249
|
+
}
|
|
250
|
+
/** @inheritdoc */
|
|
251
|
+
progress_write(event) {
|
|
252
|
+
this.live.progress_write(event);
|
|
253
|
+
}
|
|
254
|
+
/** @inheritdoc */
|
|
255
|
+
event_write(kind, data) {
|
|
256
|
+
this.live.event_write?.(kind, data);
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Everything the data channel carried, as text.
|
|
260
|
+
*
|
|
261
|
+
* @returns The kept text.
|
|
262
|
+
*/
|
|
263
|
+
text_get() {
|
|
264
|
+
return Buffer.concat(this.chunks).toString('utf-8');
|
|
265
|
+
}
|
|
266
|
+
}
|
|
219
267
|
/**
|
|
220
268
|
* The host sink: the process-wide default installed by whoever owns the output
|
|
221
269
|
* destination (the CLI REPL, the daemon). Defaults to stdout so every entry
|
package/dist/core/sink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sink.js","sourceRoot":"","sources":["../../src/core/sink.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sink.js","sourceRoot":"","sources":["../../src/core/sink.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { type SessionAnswer } from '../session/answer.js';
|
|
2
|
+
/** The kind a variable holding text has: a literal, a parameter, or a command with no model. */
|
|
3
|
+
export declare const TEXT_KIND: string;
|
|
4
|
+
/** What a name may be: a letter or underscore, then letters, digits, underscores. */
|
|
5
|
+
export declare const VARIABLE_NAME: RegExp;
|
|
6
|
+
/** One variable. */
|
|
7
|
+
export interface Variable {
|
|
8
|
+
/** What it holds. */
|
|
9
|
+
answer: SessionAnswer;
|
|
10
|
+
/** Whether a line may set or unset it: a manifest's parameters may not. */
|
|
11
|
+
readOnly: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Whether the work on this async path is a play's.
|
|
15
|
+
*
|
|
16
|
+
* @returns True inside a play's scope.
|
|
17
|
+
*/
|
|
18
|
+
export declare function variableScope_isPlay(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* A text answer: a literal, a parameter's value, or what a command printed.
|
|
21
|
+
*
|
|
22
|
+
* @param text - The text.
|
|
23
|
+
* @param source - The line that gave it.
|
|
24
|
+
* @returns The answer.
|
|
25
|
+
*/
|
|
26
|
+
export declare function textAnswer_make(text: string, source: string): SessionAnswer;
|
|
27
|
+
/**
|
|
28
|
+
* Runs work in a fresh scope holding only the given parameters, read-only:
|
|
29
|
+
* a manifest's play.
|
|
30
|
+
*
|
|
31
|
+
* @param params - The parameters, already checked for completeness.
|
|
32
|
+
* @param operation - The work to run.
|
|
33
|
+
* @returns The operation's result.
|
|
34
|
+
*/
|
|
35
|
+
export declare function variableScope_run<T>(params: Map<string, string>, operation: () => Promise<T>): Promise<T>;
|
|
36
|
+
/**
|
|
37
|
+
* The variable a name holds in the current scope.
|
|
38
|
+
*
|
|
39
|
+
* @param name - The variable's name.
|
|
40
|
+
* @returns It, or undefined when the scope has none of that name.
|
|
41
|
+
*/
|
|
42
|
+
export declare function variable_get(name: string): Variable | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Sets a variable in the current scope.
|
|
45
|
+
*
|
|
46
|
+
* @param name - Its name, already checked.
|
|
47
|
+
* @param answer - What it holds.
|
|
48
|
+
* @returns A refusal, or null when it was set.
|
|
49
|
+
*/
|
|
50
|
+
export declare function variable_set(name: string, answer: SessionAnswer): string | null;
|
|
51
|
+
/**
|
|
52
|
+
* Removes a variable from the current scope.
|
|
53
|
+
*
|
|
54
|
+
* @param name - Its name.
|
|
55
|
+
* @returns A refusal, or null when it was removed (or was never set).
|
|
56
|
+
*/
|
|
57
|
+
export declare function variable_unset(name: string): string | null;
|
|
58
|
+
/**
|
|
59
|
+
* Every variable in the current scope, by name.
|
|
60
|
+
*
|
|
61
|
+
* @returns The variables, sorted by name.
|
|
62
|
+
*/
|
|
63
|
+
export declare function variables_list(): Array<{
|
|
64
|
+
name: string;
|
|
65
|
+
} & Variable>;
|
|
66
|
+
/** What a bare name of one kind is, when the kind is a record that still has one obvious operand list. */
|
|
67
|
+
export type AnswerOperands = (data: unknown) => string[] | null;
|
|
68
|
+
/**
|
|
69
|
+
* Says what a bare `${NAME}` holding a record of this kind expands to. A
|
|
70
|
+
* listing's rows need no reader (its answer adapter numbers them); this is
|
|
71
|
+
* for a record that is not a listing and must not become the held one, as a
|
|
72
|
+
* scheduled pipeline's nodes are not rows to number.
|
|
73
|
+
*
|
|
74
|
+
* @param kind - The model kind.
|
|
75
|
+
* @param reader - Reads the operands out of that model.
|
|
76
|
+
*/
|
|
77
|
+
export declare function answerOperands_register(kind: string, reader: AnswerOperands): void;
|
|
78
|
+
/** What reading a variable gave: operands, or a refusal an operator can act on. */
|
|
79
|
+
export type FieldReading = {
|
|
80
|
+
values: string[];
|
|
81
|
+
} | {
|
|
82
|
+
refused: string;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Reads an answer by a dotted name: bare, its rows (or its lines, or its
|
|
86
|
+
* one value); with fields, the fields as the model names them.
|
|
87
|
+
*
|
|
88
|
+
* @param answer - What the variable holds.
|
|
89
|
+
* @param name - The variable's name, for a refusal.
|
|
90
|
+
* @param fields - The fields after it, in order.
|
|
91
|
+
* @returns The operands, or why there are none.
|
|
92
|
+
*/
|
|
93
|
+
export declare function answer_read(answer: SessionAnswer, name: string, fields: ReadonlyArray<string>): FieldReading;
|
|
94
|
+
/**
|
|
95
|
+
* Finds the end of a `$(…)` that opens at a position: the parenthesis that
|
|
96
|
+
* closes it, skipping any inside quotes or nested parentheses.
|
|
97
|
+
*
|
|
98
|
+
* @param text - The text.
|
|
99
|
+
* @param open - Where `$(` begins.
|
|
100
|
+
* @returns The index of the closing parenthesis, or -1 when it never closes.
|
|
101
|
+
*/
|
|
102
|
+
export declare function substitution_end(text: string, open: number): number;
|
|
103
|
+
/** An assignment line, taken apart. */
|
|
104
|
+
export type Assignment = {
|
|
105
|
+
name: string;
|
|
106
|
+
capture: string;
|
|
107
|
+
} | {
|
|
108
|
+
name: string;
|
|
109
|
+
literal: string;
|
|
110
|
+
} | {
|
|
111
|
+
name: string;
|
|
112
|
+
refused: string;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Reads a line as an assignment, when it is one: `NAME=$(command)` or
|
|
116
|
+
* `NAME=word`.
|
|
117
|
+
*
|
|
118
|
+
* @param line - The trimmed line.
|
|
119
|
+
* @returns The assignment, or null when the line is not one.
|
|
120
|
+
*/
|
|
121
|
+
export declare function assignment_parse(line: string): Assignment | null;
|