@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.
Files changed (82) hide show
  1. package/dist/api/models.d.ts +37 -0
  2. package/dist/api/models.js.map +1 -1
  3. package/dist/buildinfo.json +1 -1
  4. package/dist/builtins/fs/pull.args.d.ts +0 -10
  5. package/dist/builtins/fs/pull.args.js +5 -30
  6. package/dist/builtins/fs/pull.args.js.map +1 -1
  7. package/dist/builtins/fs/pull.js +2 -48
  8. package/dist/builtins/fs/pull.js.map +1 -1
  9. package/dist/builtins/help.js +21 -5
  10. package/dist/builtins/help.js.map +1 -1
  11. package/dist/builtins/helpSections.js +3 -3
  12. package/dist/builtins/helpSections.js.map +1 -1
  13. package/dist/builtins/net/query.js +0 -3
  14. package/dist/builtins/net/query.js.map +1 -1
  15. package/dist/builtins/pluginExecute.d.ts +4 -1
  16. package/dist/builtins/pluginExecute.js +11 -12
  17. package/dist/builtins/pluginExecute.js.map +1 -1
  18. package/dist/builtins/res/expect.js +5 -2
  19. package/dist/builtins/res/expect.js.map +1 -1
  20. package/dist/builtins/res/gather.d.ts +2 -2
  21. package/dist/builtins/res/gather.js +11 -3
  22. package/dist/builtins/res/gather.js.map +1 -1
  23. package/dist/builtins/res/gather.kind.d.ts +9 -0
  24. package/dist/builtins/res/gather.kind.js +10 -0
  25. package/dist/builtins/res/gather.kind.js.map +1 -0
  26. package/dist/builtins/res/gather.process.d.ts +29 -0
  27. package/dist/builtins/res/gather.process.js +177 -0
  28. package/dist/builtins/res/gather.process.js.map +1 -0
  29. package/dist/builtins/res/pipeline.d.ts +16 -0
  30. package/dist/builtins/res/pipeline.js +38 -13
  31. package/dist/builtins/res/pipeline.js.map +1 -1
  32. package/dist/builtins/res/play.d.ts +2 -0
  33. package/dist/builtins/res/play.js +30 -7
  34. package/dist/builtins/res/play.js.map +1 -1
  35. package/dist/builtins/res/plugin.js +9 -30
  36. package/dist/builtins/res/plugin.js.map +1 -1
  37. package/dist/builtins/res/runWait.d.ts +10 -0
  38. package/dist/builtins/res/runWait.js +14 -0
  39. package/dist/builtins/res/runWait.js.map +1 -1
  40. package/dist/builtins/sys/variables.d.ts +25 -0
  41. package/dist/builtins/sys/variables.js +113 -0
  42. package/dist/builtins/sys/variables.js.map +1 -0
  43. package/dist/builtins/variablesPage.d.ts +9 -0
  44. package/dist/builtins/variablesPage.js +54 -0
  45. package/dist/builtins/variablesPage.js.map +1 -0
  46. package/dist/chris/binExecutables.d.ts +19 -0
  47. package/dist/chris/binExecutables.js +18 -0
  48. package/dist/chris/binExecutables.js.map +1 -0
  49. package/dist/chris/commandFallback.js +6 -22
  50. package/dist/chris/commandFallback.js.map +1 -1
  51. package/dist/chris/help.d.ts +2 -2
  52. package/dist/chris/help.js +27 -44
  53. package/dist/chris/help.js.map +1 -1
  54. package/dist/chris/references.js +14 -75
  55. package/dist/chris/references.js.map +1 -1
  56. package/dist/core/assignment.d.ts +13 -0
  57. package/dist/core/assignment.js +98 -0
  58. package/dist/core/assignment.js.map +1 -0
  59. package/dist/core/coreCommands.js +5 -0
  60. package/dist/core/coreCommands.js.map +1 -1
  61. package/dist/core/engine.js +14 -3
  62. package/dist/core/engine.js.map +1 -1
  63. package/dist/core/expansion.d.ts +13 -7
  64. package/dist/core/expansion.js +36 -19
  65. package/dist/core/expansion.js.map +1 -1
  66. package/dist/core/sink.d.ts +33 -0
  67. package/dist/core/sink.js +48 -0
  68. package/dist/core/sink.js.map +1 -1
  69. package/dist/core/variables.d.ts +121 -0
  70. package/dist/core/variables.js +316 -0
  71. package/dist/core/variables.js.map +1 -0
  72. package/dist/lib/parser.js +2 -2
  73. package/dist/notes.json +1 -1
  74. package/dist/session/answerAdapters.js +12 -0
  75. package/dist/session/answerAdapters.js.map +1 -1
  76. package/package.json +1 -1
  77. package/dist/builtins/pronouns.d.ts +0 -8
  78. package/dist/builtins/pronouns.js +0 -39
  79. package/dist/builtins/pronouns.js.map +0 -1
  80. package/dist/session/recent.d.ts +0 -68
  81. package/dist/session/recent.js +0 -99
  82. package/dist/session/recent.js.map +0 -1
@@ -10,9 +10,11 @@
10
10
  *
11
11
  * One resolver now answers for all of them, in a fixed order:
12
12
  *
13
- * . *Session pronouns*: the place the session stands (`cwd`), and those
14
- * the backend answers (ChRIS: the cohort, the feed, the run, the query).
15
- * . *Parameters* of the manifest being played, if one is.
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
- /** Parameters of the manifest being played, if one is. */
46
- const paramScope = new AsyncLocalStorage();
48
+ /** Why the last reference was refused, when a variable or a built-in said why. */
49
+ let fieldRefusal = null;
47
50
  /**
48
- * Runs work with a manifest's parameters in scope.
51
+ * Records why a reference was refused, for the line's refusal to say.
49
52
  *
50
- * @param params - The parameters, already checked for completeness.
51
- * @param operation - The work to run.
52
- * @returns The operation's result.
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 async function paramScope_run(params, operation) {
55
- return await paramScope.run(params, operation);
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 session, then the manifest, then
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 params = paramScope.getStore();
201
- const given = params?.get(name);
202
- if (given !== undefined)
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
- const scoped = paramScope.getStore() !== undefined;
215
- const places = scoped ? "the session, this manifest's parameters, the environment" : 'the session, the environment';
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":"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"}
1
+ {"version":3,"file":"expansion.js","sourceRoot":"","sources":["../../src/core/expansion.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"sink.js","sourceRoot":"","sources":["../../src/core/sink.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAA6C,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAQhG;;;;;GAKG;AACH,MAAM,OAAO,UAAU;IACJ,gBAAgB,CAAmB;IAEpD,YAAY,mBAAqC,IAAI,oBAAoB,EAAE;QACzE,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;IAED,kBAAkB;IACX,UAAU,CAAC,KAAsB;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,kBAAkB;IACX,SAAS,CAAC,KAAsB;QACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,kBAAkB;IACX,YAAY,CAAC,IAAY;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,cAAc,CAAC,KAAoB;QACxC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,kBAAkB;IACX,WAAW,CAAC,KAAa,EAAE,KAAc;QAC9C,kEAAkE;IACpE,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,UAAU;IACb,MAAM,GAAa,EAAE,CAAC;IAE9B,kBAAkB;IACX,UAAU,CAAC,KAAsB;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACpF,CAAC;IAED,kBAAkB;IACX,SAAS,CAAC,KAAsB;QACrC,qEAAqE;QACrE,uEAAuE;QACvE,gCAAgC;QAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,kBAAkB;IACX,YAAY,CAAC,KAAa;QAC/B,sDAAsD;IACxD,CAAC;IAEM,cAAc,CAAC,MAAqB;QACzC,wDAAwD;IAC1D,CAAC;IAED,kBAAkB;IACX,WAAW,CAAC,KAAa,EAAE,KAAc;QAC9C,mDAAmD;IACrD,CAAC;IAED;;;;OAIG;IACI,UAAU;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,QAAQ;QACb,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACd,UAAU,GAAa,EAAE,CAAC;IAC1B,SAAS,GAAa,EAAE,CAAC;IACzB,IAAI,CAAa;IACR,qBAAqB,CAAU;IAEhD;;;;OAIG;IACH,YAAY,IAAgB,EAAE,UAA+C,EAAE;QAC7E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,KAAK,CAAC;IACtE,CAAC;IAED,kBAAkB;IACX,UAAU,CAAC,KAAsB;QACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtF,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,kBAAkB;IACX,SAAS,CAAC,KAAsB;QACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,kBAAkB;IACX,YAAY,CAAC,IAAY;QAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEM,cAAc,CAAC,KAAoB;QACxC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,kBAAkB;IACX,WAAW,CAAC,IAAY,EAAE,IAAa;QAC5C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACI,YAAY;QACjB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACI,WAAW;QAChB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,eAAe;IAUG;IATrB,MAAM,GAAa,EAAE,CAAC;IAE9B;;;;;;OAMG;IACH,YAA6B,OAAmB,IAAI,UAAU,EAAE;QAAnC,SAAI,GAAJ,IAAI,CAA+B;IAAG,CAAC;IAEpE,kBAAkB;IACX,UAAU,CAAC,KAAsB;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ;YACxC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;YACzC,CAAC,CAAC,KAAK,CAAC,CAAC;IACb,CAAC;IAED,kBAAkB;IACX,SAAS,CAAC,KAAsB;QACrC,wEAAwE;QACxE,sEAAsE;QACtE,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,kBAAkB;IACX,YAAY,CAAC,KAAa;QAC/B,mCAAmC;IACrC,CAAC;IAEM,cAAc,CAAC,MAAqB;QACzC,qCAAqC;IACvC,CAAC;IAED,kBAAkB;IACX,WAAW,CAAC,KAAa,EAAE,KAAc;QAC9C,0DAA0D;IAC5D,CAAC;IAED;;;;OAIG;IACI,UAAU;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACF;AAED;;;;GAIG;AACH,IAAI,QAAQ,GAAe,IAAI,UAAU,EAAE,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,SAAS,GAAkC,IAAI,iBAAiB,EAAc,CAAC;AAErF;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,SAAS,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAC;AAC1C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAgB;IACvC,MAAM,QAAQ,GAAe,QAAQ,CAAC;IACtC,QAAQ,GAAG,IAAI,CAAC;IAChB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAI,IAAgB,EAAE,EAAoB;IACrE,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAyB;IACxD,MAAM,IAAI,GAAe,QAAQ,EAAE,CAAC;IACpC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1E,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,QAAQ,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAqD;IAErD,OAAO,KAAK,EAAE,IAAc,EAAiB,EAAE;QAC7C,MAAM,QAAQ,GAAgC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,YAAY,GAAW,yBAAyB,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC"}
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;