@memberjunction/testing-cli 6.1.4 → 6.2.0-edge.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/compare.d.ts +2 -0
- package/dist/commands/compare.d.ts.map +1 -1
- package/dist/commands/compare.js +10 -6
- package/dist/commands/compare.js.map +1 -1
- package/dist/commands/history.d.ts +2 -0
- package/dist/commands/history.d.ts.map +1 -1
- package/dist/commands/history.js +5 -1
- package/dist/commands/history.js.map +1 -1
- package/dist/commands/list.d.ts +2 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +10 -6
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/report.d.ts +2 -0
- package/dist/commands/report.d.ts.map +1 -1
- package/dist/commands/report.js +5 -1
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/run.d.ts +2 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +28 -24
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/scripts.d.ts +28 -0
- package/dist/commands/scripts.d.ts.map +1 -0
- package/dist/commands/scripts.js +155 -0
- package/dist/commands/scripts.js.map +1 -0
- package/dist/commands/suite.d.ts +2 -0
- package/dist/commands/suite.d.ts.map +1 -1
- package/dist/commands/suite.js +25 -21
- package/dist/commands/suite.js.map +1 -1
- package/dist/commands/validate.d.ts +2 -0
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +10 -6
- package/dist/commands/validate.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/mj-provider.d.ts +8 -0
- package/dist/lib/mj-provider.d.ts.map +1 -1
- package/dist/lib/mj-provider.js +22 -6
- package/dist/lib/mj-provider.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/check-module-loader.d.ts +5 -3
- package/dist/utils/check-module-loader.d.ts.map +1 -1
- package/dist/utils/check-module-loader.js +9 -5
- package/dist/utils/check-module-loader.js.map +1 -1
- package/dist/utils/config-loader.d.ts +4 -0
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +10 -2
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/oracle-module-loader.d.ts +5 -3
- package/dist/utils/oracle-module-loader.d.ts.map +1 -1
- package/dist/utils/oracle-module-loader.js +6 -2
- package/dist/utils/oracle-module-loader.js.map +1 -1
- package/dist/utils/output-formatter.d.ts +14 -0
- package/dist/utils/output-formatter.d.ts.map +1 -1
- package/dist/utils/output-formatter.js +35 -7
- package/dist/utils/output-formatter.js.map +1 -1
- package/dist/utils/script-drift.d.ts +41 -0
- package/dist/utils/script-drift.d.ts.map +1 -0
- package/dist/utils/script-drift.js +159 -0
- package/dist/utils/script-drift.js.map +1 -0
- package/dist/utils/spinner-manager.d.ts +16 -0
- package/dist/utils/spinner-manager.d.ts.map +1 -1
- package/dist/utils/spinner-manager.js +40 -8
- package/dist/utils/spinner-manager.js.map +1 -1
- package/dist/utils/variable-parser.d.ts +4 -0
- package/dist/utils/variable-parser.d.ts.map +1 -1
- package/dist/utils/variable-parser.js +10 -2
- package/dist/utils/variable-parser.js.map +1 -1
- package/package.json +11 -11
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Replay-script review and promotion
|
|
3
|
+
* @module @memberjunction/testing-cli
|
|
4
|
+
*/
|
|
5
|
+
import { TestEngine } from '@memberjunction/testing-engine';
|
|
6
|
+
import { UUIDsEqual } from '@memberjunction/global';
|
|
7
|
+
import { OutputFormatter } from '../utils/output-formatter.js';
|
|
8
|
+
import { initializeMJProvider, closeMJProvider, getContextUser } from '../lib/mj-provider.js';
|
|
9
|
+
import { SummarizeScriptDrift } from '../utils/script-drift.js';
|
|
10
|
+
import chalk from 'chalk';
|
|
11
|
+
/**
|
|
12
|
+
* `mj test scripts` — the review gate for replay scripts.
|
|
13
|
+
*
|
|
14
|
+
* A run that re-derives a test which already had a script writes the new one to
|
|
15
|
+
* `Configuration.PendingReplayScript` rather than replacing what replay uses. This
|
|
16
|
+
* command is where a human sees what changed and decides. Without it, a UI change
|
|
17
|
+
* would silently rewrite the suite's scripts and stay green.
|
|
18
|
+
*/
|
|
19
|
+
export class ScriptsCommand {
|
|
20
|
+
async Execute(flags, contextUser) {
|
|
21
|
+
try {
|
|
22
|
+
await initializeMJProvider();
|
|
23
|
+
if (!contextUser) {
|
|
24
|
+
contextUser = await getContextUser();
|
|
25
|
+
}
|
|
26
|
+
const engine = TestEngine.Instance;
|
|
27
|
+
await engine.Config(false, contextUser);
|
|
28
|
+
const matchedTests = flags.test ? this.findTests(engine, flags.test) : undefined;
|
|
29
|
+
if (matchedTests && matchedTests.length === 0) {
|
|
30
|
+
// A name nobody has is not the same as a test with nothing pending.
|
|
31
|
+
// Reporting both as "no pending script" made a typo look like success.
|
|
32
|
+
console.log(chalk.yellow(`\nNo test matches "${flags.test}".\n`));
|
|
33
|
+
process.exitCode = 1;
|
|
34
|
+
await closeMJProvider();
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const entries = this.collectPending(engine, flags.test);
|
|
38
|
+
if (entries.length === 0) {
|
|
39
|
+
console.log(chalk.gray(flags.test
|
|
40
|
+
? `\nNo pending replay script for "${flags.test}".\n`
|
|
41
|
+
: '\nNo pending replay scripts — every recorded script matches what replay is using.\n'));
|
|
42
|
+
await closeMJProvider();
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if ((flags.promote || flags.discard) && !flags.test && !flags.yes && entries.length > 1) {
|
|
46
|
+
// Resolving every pending script at once is the operation you least
|
|
47
|
+
// want to perform by accident: promoting ratifies UI changes nobody
|
|
48
|
+
// looked at, discarding throws away recordings that cost model time.
|
|
49
|
+
this.report(entries);
|
|
50
|
+
console.log(chalk.yellow(`This would ${flags.promote ? 'promote' : 'discard'} all ${entries.length} pending script(s) at once.\n` +
|
|
51
|
+
`Re-run with --yes to confirm, or narrow it with --test "<name>".\n`));
|
|
52
|
+
process.exitCode = 1;
|
|
53
|
+
await closeMJProvider();
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (flags.promote || flags.discard) {
|
|
57
|
+
await this.resolve(entries, flags);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.report(entries);
|
|
61
|
+
}
|
|
62
|
+
await closeMJProvider();
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
console.error(OutputFormatter.formatError('Failed to review replay scripts', error));
|
|
66
|
+
try {
|
|
67
|
+
await closeMJProvider();
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// Ignore cleanup errors
|
|
71
|
+
}
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/** @deprecated Use {@link Execute}. */
|
|
76
|
+
async execute(flags, contextUser) {
|
|
77
|
+
return this.Execute(flags, contextUser);
|
|
78
|
+
}
|
|
79
|
+
/** Every test matching a name-or-ID filter, regardless of pending state. */
|
|
80
|
+
findTests(engine, testFilter) {
|
|
81
|
+
return engine.Tests.filter(t => t.Name === testFilter || UUIDsEqual(t.ID, testFilter));
|
|
82
|
+
}
|
|
83
|
+
/** Tests carrying a pending script, optionally narrowed to one by name or ID. */
|
|
84
|
+
collectPending(engine, testFilter) {
|
|
85
|
+
const entries = [];
|
|
86
|
+
for (const test of engine.Tests) {
|
|
87
|
+
if (testFilter && test.Name !== testFilter && !UUIDsEqual(test.ID, testFilter)) {
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
let config;
|
|
91
|
+
try {
|
|
92
|
+
config = test.ConfigurationObject;
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
continue; // malformed Configuration — not this command's problem to report
|
|
96
|
+
}
|
|
97
|
+
const pending = config?.PendingReplayScript;
|
|
98
|
+
if (!config || !pending) {
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
entries.push({
|
|
102
|
+
test,
|
|
103
|
+
config,
|
|
104
|
+
pending,
|
|
105
|
+
current: config.ReplayScript,
|
|
106
|
+
drift: SummarizeScriptDrift(config.ReplayScript, pending),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
return entries;
|
|
110
|
+
}
|
|
111
|
+
/** Print the drift each pending script represents, newest information first. */
|
|
112
|
+
report(entries) {
|
|
113
|
+
console.log(chalk.bold(`\nPending replay scripts (${entries.length}):\n`));
|
|
114
|
+
for (const e of entries) {
|
|
115
|
+
const heading = e.drift.MeaningfulDrift > 0 ? chalk.yellow(e.test.Name) : chalk.cyan(e.test.Name);
|
|
116
|
+
console.log(` ${heading}`);
|
|
117
|
+
console.log(chalk.gray(` ${e.drift.Summary}`));
|
|
118
|
+
for (const change of e.drift.Changes.slice(0, 8)) {
|
|
119
|
+
console.log(chalk.gray(` step ${change.index + 1}: ${change.kind} — ${change.detail}`));
|
|
120
|
+
}
|
|
121
|
+
if (e.drift.Changes.length > 8) {
|
|
122
|
+
console.log(chalk.gray(` … and ${e.drift.Changes.length - 8} more`));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
console.log(chalk.gray('\n Promote with --promote (add --test "<name>" to pick one), or drop with --discard.\n'));
|
|
126
|
+
}
|
|
127
|
+
/** Promote or discard, one save per test. */
|
|
128
|
+
async resolve(entries, flags) {
|
|
129
|
+
const promoting = !!flags.promote;
|
|
130
|
+
const verb = promoting ? 'Promoted' : 'Discarded';
|
|
131
|
+
let failures = 0;
|
|
132
|
+
for (const e of entries) {
|
|
133
|
+
const next = { ...e.config };
|
|
134
|
+
delete next.PendingReplayScript;
|
|
135
|
+
if (promoting) {
|
|
136
|
+
next.ReplayScript = e.pending;
|
|
137
|
+
}
|
|
138
|
+
e.test.ConfigurationObject = next;
|
|
139
|
+
if (await e.test.Save()) {
|
|
140
|
+
console.log(chalk.green(` ${verb}: ${e.test.Name}`));
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
failures++;
|
|
144
|
+
console.log(chalk.red(` Failed: ${e.test.Name} — ${e.test.LatestResult?.CompleteMessage ?? 'Save() returned false'}`));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
console.log(failures === 0
|
|
148
|
+
? chalk.bold(`\n${verb} ${entries.length} script(s).\n`)
|
|
149
|
+
: chalk.bold.red(`\n${verb} ${entries.length - failures} of ${entries.length}; ${failures} failed.\n`));
|
|
150
|
+
if (failures > 0) {
|
|
151
|
+
process.exitCode = 1;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=scripts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../src/commands/scripts.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/suite.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export declare class SuiteCommand {
|
|
|
16
16
|
* @param flags - Command flags
|
|
17
17
|
* @param contextUser - Optional user context (will be fetched if not provided)
|
|
18
18
|
*/
|
|
19
|
+
Execute(suiteId: string | undefined, flags: SuiteFlags, contextUser?: UserInfo): Promise<void>;
|
|
20
|
+
/** @deprecated Use {@link Execute}. */
|
|
19
21
|
execute(suiteId: string | undefined, flags: SuiteFlags, contextUser?: UserInfo): Promise<void>;
|
|
20
22
|
/**
|
|
21
23
|
* Build a flaky-test summary by grouping iteration results by testId and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suite.d.ts","sourceRoot":"","sources":["../../src/commands/suite.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAUtC;;GAEG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,OAAO,CAAwB;IAEvC;;;;;;OAMG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6KpG;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;CA6D3B"}
|
|
1
|
+
{"version":3,"file":"suite.d.ts","sourceRoot":"","sources":["../../src/commands/suite.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAUtC;;GAEG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,OAAO,CAAwB;IAEvC;;;;;;OAMG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6KpG,uCAAuC;IACjC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpG;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;CA6D3B"}
|
package/dist/commands/suite.js
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
import { TestEngine } from '@memberjunction/testing-engine';
|
|
6
6
|
import { OutputFormatter } from '../utils/output-formatter.js';
|
|
7
7
|
import { SpinnerManager } from '../utils/spinner-manager.js';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
8
|
+
import { LoadMJConfig, LoadCLIConfig } from '../utils/config-loader.js';
|
|
9
|
+
import { InitializeMJProvider, CloseMJProvider, GetContextUser } from '../lib/mj-provider.js';
|
|
10
|
+
import { ParseVariableFlags } from '../utils/variable-parser.js';
|
|
11
|
+
import { LoadOraclesModule } from '../utils/oracle-module-loader.js';
|
|
12
|
+
import { LoadCheckModules } from '../utils/check-module-loader.js';
|
|
13
13
|
import { installInstrumentedCacheFirst } from '@memberjunction/testing-integration';
|
|
14
14
|
/**
|
|
15
15
|
* Suite command - Execute a test suite
|
|
@@ -25,7 +25,7 @@ export class SuiteCommand {
|
|
|
25
25
|
* @param flags - Command flags
|
|
26
26
|
* @param contextUser - Optional user context (will be fetched if not provided)
|
|
27
27
|
*/
|
|
28
|
-
async
|
|
28
|
+
async Execute(suiteId, flags, contextUser) {
|
|
29
29
|
try {
|
|
30
30
|
// Integration tests must install the instrumented cache as the FIRST caller
|
|
31
31
|
// (before any provider setup) or its counters are a silent no-op. Opt-in via
|
|
@@ -48,29 +48,29 @@ export class SuiteCommand {
|
|
|
48
48
|
// `testing.checkModules`; ad-hoc form: --checks-module. Runs AFTER the
|
|
49
49
|
// instrumented-cache install (first-caller invariant) and BEFORE the provider +
|
|
50
50
|
// engine so bundles are registered by the time the driver resolves them.
|
|
51
|
-
const mjConfig = await
|
|
51
|
+
const mjConfig = await LoadMJConfig();
|
|
52
52
|
const checkModuleSpecifiers = [
|
|
53
53
|
...(mjConfig?.testing?.checkModules ?? []),
|
|
54
54
|
...(flags.checksModule ? [flags.checksModule] : []),
|
|
55
55
|
];
|
|
56
56
|
if (checkModuleSpecifiers.length > 0) {
|
|
57
|
-
const checkSummary = await
|
|
58
|
-
if (checkSummary.
|
|
59
|
-
console.log(`Loaded check modules: ${checkSummary.
|
|
57
|
+
const checkSummary = await LoadCheckModules(checkModuleSpecifiers);
|
|
58
|
+
if (checkSummary.Loaded.length > 0) {
|
|
59
|
+
console.log(`Loaded check modules: ${checkSummary.Loaded.join(', ')} (bundles added: ${checkSummary.NewBundles.length})`);
|
|
60
60
|
}
|
|
61
|
-
for (const f of checkSummary.
|
|
61
|
+
for (const f of checkSummary.Failed) {
|
|
62
62
|
console.warn(`Check module '${f.specifier}' failed to load: ${f.error}`);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
// Initialize MJ provider (database connection and metadata)
|
|
66
66
|
console.log('Initializing MJ provider...');
|
|
67
|
-
await
|
|
67
|
+
await InitializeMJProvider();
|
|
68
68
|
console.log('MJ provider initialized successfully');
|
|
69
69
|
// Get context user after initialization if not provided
|
|
70
70
|
if (!contextUser) {
|
|
71
|
-
contextUser = await
|
|
71
|
+
contextUser = await GetContextUser();
|
|
72
72
|
}
|
|
73
|
-
const config =
|
|
73
|
+
const config = LoadCLIConfig();
|
|
74
74
|
const format = flags.format || config.defaultFormat || 'console';
|
|
75
75
|
// Get engine instance
|
|
76
76
|
console.log('Getting TestEngine instance...');
|
|
@@ -85,10 +85,10 @@ export class SuiteCommand {
|
|
|
85
85
|
// become available to every test in the suite that references the
|
|
86
86
|
// matching oracle `type`.
|
|
87
87
|
if (flags.oraclesModule) {
|
|
88
|
-
const summary = await
|
|
89
|
-
console.log(`Loaded oracle module ${summary.
|
|
90
|
-
`(registered: ${summary.
|
|
91
|
-
(summary.
|
|
88
|
+
const summary = await LoadOraclesModule(flags.oraclesModule, engine);
|
|
89
|
+
console.log(`Loaded oracle module ${summary.ModulePath} ` +
|
|
90
|
+
`(registered: ${summary.Registered.join(', ') || 'none'}` +
|
|
91
|
+
(summary.Skipped.length ? `; skipped: ${summary.Skipped.length}` : '') +
|
|
92
92
|
')');
|
|
93
93
|
}
|
|
94
94
|
let suite;
|
|
@@ -124,7 +124,7 @@ export class SuiteCommand {
|
|
|
124
124
|
}
|
|
125
125
|
// Parse variables from --var flags
|
|
126
126
|
// Note: Suite variables apply to all tests - type conversion happens per-test
|
|
127
|
-
const variables =
|
|
127
|
+
const variables = ParseVariableFlags(flags.var);
|
|
128
128
|
// Execute suite
|
|
129
129
|
const flakyMsg = flags.flakyCheck && flags.flakyCheck > 1
|
|
130
130
|
? ` (flaky-check: each test ×${flags.flakyCheck})`
|
|
@@ -161,7 +161,7 @@ export class SuiteCommand {
|
|
|
161
161
|
const fileOutput = flakyReport && format !== 'json' ? output + '\n' + flakyReport : output;
|
|
162
162
|
OutputFormatter.writeToFile(fileOutput, flags.output);
|
|
163
163
|
// Clean up resources
|
|
164
|
-
await
|
|
164
|
+
await CloseMJProvider();
|
|
165
165
|
// Exit with appropriate code (non-zero if any test failed)
|
|
166
166
|
process.exit(result.failedTests === 0 ? 0 : 1);
|
|
167
167
|
}
|
|
@@ -170,7 +170,7 @@ export class SuiteCommand {
|
|
|
170
170
|
console.error(OutputFormatter.formatError('Failed to run test suite', error));
|
|
171
171
|
// Clean up resources before exit
|
|
172
172
|
try {
|
|
173
|
-
await
|
|
173
|
+
await CloseMJProvider();
|
|
174
174
|
}
|
|
175
175
|
catch {
|
|
176
176
|
// Ignore cleanup errors
|
|
@@ -178,6 +178,10 @@ export class SuiteCommand {
|
|
|
178
178
|
process.exit(1);
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
|
+
/** @deprecated Use {@link Execute}. */
|
|
182
|
+
async execute(suiteId, flags, contextUser) {
|
|
183
|
+
return this.Execute(suiteId, flags, contextUser);
|
|
184
|
+
}
|
|
181
185
|
/**
|
|
182
186
|
* Build a flaky-test summary by grouping iteration results by testId and
|
|
183
187
|
* computing score variance. A test is "flaky" if its scores vary by more
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suite.js","sourceRoot":"","sources":["../../src/commands/suite.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAEpF;;GAEG;AACH,MAAM,OAAO,YAAY;IAAzB;QACY,YAAO,GAAG,IAAI,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"suite.js","sourceRoot":"","sources":["../../src/commands/suite.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,8 @@ export declare class ValidateCommand {
|
|
|
16
16
|
* @param flags - Command flags
|
|
17
17
|
* @param contextUser - Optional user context (will be fetched if not provided)
|
|
18
18
|
*/
|
|
19
|
+
Execute(testId: string | undefined, flags: ValidateFlags, contextUser?: UserInfo): Promise<void>;
|
|
20
|
+
/** @deprecated Use {@link Execute}. */
|
|
19
21
|
execute(testId: string | undefined, flags: ValidateFlags, contextUser?: UserInfo): Promise<void>;
|
|
20
22
|
/**
|
|
21
23
|
* Validate a single test
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAmBzC;;GAEG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,OAAO,CAAwB;IAEvC;;;;;;OAMG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6EtG;;OAEG;IACH,OAAO,CAAC,YAAY;IA4DpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAuCtB;;OAEG;IACH,OAAO,CAAC,UAAU;CAqDrB"}
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAmBzC;;GAEG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,OAAO,CAAwB;IAEvC;;;;;;OAMG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6EtG,uCAAuC;IACjC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAItG;;OAEG;IACH,OAAO,CAAC,YAAY;IA4DpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAuCtB;;OAEG;IACH,OAAO,CAAC,UAAU;CAqDrB"}
|
|
@@ -6,7 +6,7 @@ import { TestEngine } from '@memberjunction/testing-engine';
|
|
|
6
6
|
import { UUIDsEqual } from '@memberjunction/global';
|
|
7
7
|
import { OutputFormatter } from '../utils/output-formatter.js';
|
|
8
8
|
import { SpinnerManager } from '../utils/spinner-manager.js';
|
|
9
|
-
import {
|
|
9
|
+
import { InitializeMJProvider, CloseMJProvider, GetContextUser } from '../lib/mj-provider.js';
|
|
10
10
|
import chalk from 'chalk';
|
|
11
11
|
import * as fs from 'fs';
|
|
12
12
|
/**
|
|
@@ -23,13 +23,13 @@ export class ValidateCommand {
|
|
|
23
23
|
* @param flags - Command flags
|
|
24
24
|
* @param contextUser - Optional user context (will be fetched if not provided)
|
|
25
25
|
*/
|
|
26
|
-
async
|
|
26
|
+
async Execute(testId, flags, contextUser) {
|
|
27
27
|
try {
|
|
28
28
|
// Initialize MJ provider (database connection and metadata)
|
|
29
|
-
await
|
|
29
|
+
await InitializeMJProvider();
|
|
30
30
|
// Get context user after initialization if not provided
|
|
31
31
|
if (!contextUser) {
|
|
32
|
-
contextUser = await
|
|
32
|
+
contextUser = await GetContextUser();
|
|
33
33
|
}
|
|
34
34
|
const engine = TestEngine.Instance;
|
|
35
35
|
await engine.Config(false, contextUser);
|
|
@@ -72,7 +72,7 @@ export class ValidateCommand {
|
|
|
72
72
|
this.saveReport(results, reportPath);
|
|
73
73
|
}
|
|
74
74
|
// Clean up resources
|
|
75
|
-
await
|
|
75
|
+
await CloseMJProvider();
|
|
76
76
|
// Exit with appropriate code
|
|
77
77
|
const hasErrors = results.some(r => !r.valid);
|
|
78
78
|
process.exit(hasErrors ? 1 : 0);
|
|
@@ -82,7 +82,7 @@ export class ValidateCommand {
|
|
|
82
82
|
console.error(OutputFormatter.formatError('Failed to validate tests', error));
|
|
83
83
|
// Clean up resources before exit
|
|
84
84
|
try {
|
|
85
|
-
await
|
|
85
|
+
await CloseMJProvider();
|
|
86
86
|
}
|
|
87
87
|
catch {
|
|
88
88
|
// Ignore cleanup errors
|
|
@@ -90,6 +90,10 @@ export class ValidateCommand {
|
|
|
90
90
|
process.exit(1);
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
+
/** @deprecated Use {@link Execute}. */
|
|
94
|
+
async execute(testId, flags, contextUser) {
|
|
95
|
+
return this.Execute(testId, flags, contextUser);
|
|
96
|
+
}
|
|
93
97
|
/**
|
|
94
98
|
* Validate a single test
|
|
95
99
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAI5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3F,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAazB;;GAEG;AACH,MAAM,OAAO,eAAe;IAA5B;QACY,YAAO,GAAG,IAAI,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,9 +11,10 @@ export { ValidateCommand } from './commands/validate.js';
|
|
|
11
11
|
export { ReportCommand } from './commands/report.js';
|
|
12
12
|
export { HistoryCommand } from './commands/history.js';
|
|
13
13
|
export { CompareCommand } from './commands/compare.js';
|
|
14
|
+
export { ScriptsCommand } from './commands/scripts.js';
|
|
14
15
|
export { OutputFormatter } from './utils/output-formatter.js';
|
|
15
|
-
export { loadCLIConfig } from './utils/config-loader.js';
|
|
16
|
+
export { LoadCLIConfig, loadCLIConfig } from './utils/config-loader.js';
|
|
16
17
|
export { SpinnerManager } from './utils/spinner-manager.js';
|
|
17
|
-
export { getContextUser } from './lib/mj-provider.js';
|
|
18
|
+
export { GetContextUser, getContextUser } from './lib/mj-provider.js';
|
|
18
19
|
export * from './types.js';
|
|
19
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnE,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,11 +12,12 @@ export { ValidateCommand } from './commands/validate.js';
|
|
|
12
12
|
export { ReportCommand } from './commands/report.js';
|
|
13
13
|
export { HistoryCommand } from './commands/history.js';
|
|
14
14
|
export { CompareCommand } from './commands/compare.js';
|
|
15
|
+
export { ScriptsCommand } from './commands/scripts.js';
|
|
15
16
|
// Utilities
|
|
16
17
|
export { OutputFormatter } from './utils/output-formatter.js';
|
|
17
|
-
export { loadCLIConfig } from './utils/config-loader.js';
|
|
18
|
+
export { LoadCLIConfig, loadCLIConfig } from './utils/config-loader.js';
|
|
18
19
|
export { SpinnerManager } from './utils/spinner-manager.js';
|
|
19
|
-
export { getContextUser } from './lib/mj-provider.js';
|
|
20
|
+
export { GetContextUser, getContextUser } from './lib/mj-provider.js';
|
|
20
21
|
// Types
|
|
21
22
|
export * from './types.js';
|
|
22
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,0BAA0B;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,0BAA0B;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnE,QAAQ;AACR,cAAc,SAAS,CAAC"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import sql from 'mssql';
|
|
2
|
+
export declare function InitializeMJProvider(): Promise<void>;
|
|
3
|
+
/** @deprecated Use {@link InitializeMJProvider}. */
|
|
2
4
|
export declare function initializeMJProvider(): Promise<void>;
|
|
5
|
+
export declare function GetConnectionPool(): sql.ConnectionPool;
|
|
6
|
+
/** @deprecated Use {@link GetConnectionPool}. */
|
|
3
7
|
export declare function getConnectionPool(): sql.ConnectionPool;
|
|
8
|
+
export declare function CloseMJProvider(): Promise<void>;
|
|
9
|
+
/** @deprecated Use {@link CloseMJProvider}. */
|
|
4
10
|
export declare function closeMJProvider(): Promise<void>;
|
|
5
11
|
/**
|
|
6
12
|
* Get a context user for CLI operations
|
|
7
13
|
* Tries to get the "System" user first, falls back to first available user
|
|
8
14
|
*/
|
|
15
|
+
export declare function GetContextUser(): Promise<import('@memberjunction/core').UserInfo>;
|
|
16
|
+
/** @deprecated Use {@link GetContextUser}. */
|
|
9
17
|
export declare function getContextUser(): Promise<import('@memberjunction/core').UserInfo>;
|
|
10
18
|
//# sourceMappingURL=mj-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mj-provider.d.ts","sourceRoot":"","sources":["../../src/lib/mj-provider.ts"],"names":[],"mappings":"AAMA,OAAO,GAAG,MAAM,OAAO,CAAC;AAuBxB,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CA8K1D;AAsED,wBAAgB,iBAAiB,IAAI,GAAG,CAAC,cAAc,CAWtD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAWrD;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,sBAAsB,EAAE,QAAQ,CAAC,CAuCvF"}
|
|
1
|
+
{"version":3,"file":"mj-provider.d.ts","sourceRoot":"","sources":["../../src/lib/mj-provider.ts"],"names":[],"mappings":"AAMA,OAAO,GAAG,MAAM,OAAO,CAAC;AAuBxB,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CA8K1D;AAED,oDAAoD;AACpD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1D;AAsED,wBAAgB,iBAAiB,IAAI,GAAG,CAAC,cAAc,CAWtD;AAED,iDAAiD;AACjD,wBAAgB,iBAAiB,IAAI,GAAG,CAAC,cAAc,CAEtD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAWrD;AAED,+CAA+C;AAC/C,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAErD;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,sBAAsB,EAAE,QAAQ,CAAC,CAuCvF;AAED,8CAA8C;AAC9C,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,sBAAsB,EAAE,QAAQ,CAAC,CAEvF"}
|
package/dist/lib/mj-provider.js
CHANGED
|
@@ -7,7 +7,7 @@ import { UserCache, resolveDbPlatformFromEnv } from '@memberjunction/generic-dat
|
|
|
7
7
|
import sql from 'mssql';
|
|
8
8
|
import dotenv from 'dotenv';
|
|
9
9
|
import path from 'path';
|
|
10
|
-
import {
|
|
10
|
+
import { LoadMJConfig } from '../utils/config-loader.js';
|
|
11
11
|
import { DiscoverMJConfig, EffectiveProcessId, LoadDynamicPackages, StderrDynamicPackagesLogger } from '@memberjunction/dynamic-packages';
|
|
12
12
|
// Load environment variables from .env file.
|
|
13
13
|
// `override` is deliberately FALSE so an explicitly-set variable wins over `.env`
|
|
@@ -24,7 +24,7 @@ let isInitialized = false;
|
|
|
24
24
|
let connectionPool = null;
|
|
25
25
|
/** Set only on the PostgreSQL path; there is no mssql pool to close in that case. */
|
|
26
26
|
let pgProvider = null;
|
|
27
|
-
export async function
|
|
27
|
+
export async function InitializeMJProvider() {
|
|
28
28
|
if (isInitialized) {
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
@@ -35,7 +35,7 @@ export async function initializeMJProvider() {
|
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
37
|
try {
|
|
38
|
-
const config = await
|
|
38
|
+
const config = await LoadMJConfig();
|
|
39
39
|
// Installed Open App server packages register their entity/action subclasses here, before the
|
|
40
40
|
// provider exists. When this CLI runs inside `mj`, the prerun hook has already loaded them and
|
|
41
41
|
// published its process id (`cli:test:…`), which EffectiveProcessId adopts so the same scoping
|
|
@@ -184,6 +184,10 @@ For debugging, run with --verbose flag for detailed error information.`);
|
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
|
+
/** @deprecated Use {@link InitializeMJProvider}. */
|
|
188
|
+
export async function initializeMJProvider() {
|
|
189
|
+
return InitializeMJProvider();
|
|
190
|
+
}
|
|
187
191
|
/**
|
|
188
192
|
* PostgreSQL provider setup for the testing CLI.
|
|
189
193
|
*
|
|
@@ -230,7 +234,7 @@ async function refreshUserCacheFromPG(provider, coreSchema) {
|
|
|
230
234
|
{ ...u, UserRoles: (roles ?? []).filter(r => UUIDsEqual(r.UserID, u.ID)) }));
|
|
231
235
|
UserCache.Instance.SetUsers(userInfos);
|
|
232
236
|
}
|
|
233
|
-
export function
|
|
237
|
+
export function GetConnectionPool() {
|
|
234
238
|
if (!connectionPool) {
|
|
235
239
|
throw new Error(`❌ MJ Provider not initialized
|
|
236
240
|
|
|
@@ -242,7 +246,11 @@ This is an internal error. Please report this issue.`);
|
|
|
242
246
|
}
|
|
243
247
|
return connectionPool;
|
|
244
248
|
}
|
|
245
|
-
|
|
249
|
+
/** @deprecated Use {@link GetConnectionPool}. */
|
|
250
|
+
export function getConnectionPool() {
|
|
251
|
+
return GetConnectionPool();
|
|
252
|
+
}
|
|
253
|
+
export async function CloseMJProvider() {
|
|
246
254
|
if (connectionPool) {
|
|
247
255
|
await connectionPool.close();
|
|
248
256
|
connectionPool = null;
|
|
@@ -254,11 +262,15 @@ export async function closeMJProvider() {
|
|
|
254
262
|
isInitialized = false;
|
|
255
263
|
}
|
|
256
264
|
}
|
|
265
|
+
/** @deprecated Use {@link CloseMJProvider}. */
|
|
266
|
+
export async function closeMJProvider() {
|
|
267
|
+
return CloseMJProvider();
|
|
268
|
+
}
|
|
257
269
|
/**
|
|
258
270
|
* Get a context user for CLI operations
|
|
259
271
|
* Tries to get the "System" user first, falls back to first available user
|
|
260
272
|
*/
|
|
261
|
-
export async function
|
|
273
|
+
export async function GetContextUser() {
|
|
262
274
|
// Try to get the System user like other CLIs do
|
|
263
275
|
let user = UserCache.Instance.UserByName("System", false);
|
|
264
276
|
// Then the well-known System ID, then the first active Owner. `Type` is space-padded in both
|
|
@@ -293,4 +305,8 @@ This is typically a configuration or database setup issue.`);
|
|
|
293
305
|
}
|
|
294
306
|
return user;
|
|
295
307
|
}
|
|
308
|
+
/** @deprecated Use {@link GetContextUser}. */
|
|
309
|
+
export async function getContextUser() {
|
|
310
|
+
return GetContextUser();
|
|
311
|
+
}
|
|
296
312
|
//# sourceMappingURL=mj-provider.js.map
|