@nowline/cli 0.0.0-dev.20261026035511.g8612a42 → 0.0.0-dev.20261026055950.g26802dd
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/diagnostics/adapt.d.ts.map +1 -1
- package/dist/diagnostics/adapt.js +5 -4
- package/dist/diagnostics/adapt.js.map +1 -1
- package/dist/diagnostics/text.js +6 -14
- package/dist/diagnostics/text.js.map +1 -1
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +2 -2
- package/package.json +14 -14
- package/src/diagnostics/adapt.ts +5 -4
- package/src/diagnostics/text.ts +5 -14
- package/src/generated/version.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapt.d.ts","sourceRoot":"","sources":["../../src/diagnostics/adapt.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"adapt.d.ts","sourceRoot":"","sources":["../../src/diagnostics/adapt.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAGzB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,aAAa,EAA4C,MAAM,YAAY,CAAC;AAE1F,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CA2B/F;AAgBD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAclF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAgBhF;AAMD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAClC,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,GAClB,aAAa,CAgBf"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { inferCodeFromMessage, resolveDiagnosticCode, resolveDiagnosticSuggestion, } from '@nowline/core';
|
|
2
2
|
export function adaptLangiumDiagnostic(diag, file) {
|
|
3
3
|
const severity = mapSeverity(diag.severity);
|
|
4
4
|
const line = (diag.range?.start.line ?? 0) + 1;
|
|
@@ -21,7 +21,7 @@ export function adaptLangiumDiagnostic(diag, file) {
|
|
|
21
21
|
},
|
|
22
22
|
}
|
|
23
23
|
: undefined,
|
|
24
|
-
suggestion:
|
|
24
|
+
suggestion: resolveDiagnosticSuggestion(diag.message, diag.data),
|
|
25
25
|
// The CLI keeps the full { code, args } so formatDiagnostics can
|
|
26
26
|
// re-render the message in the operator's locale at print time.
|
|
27
27
|
data: extractMessageData(diag.data),
|
|
@@ -95,6 +95,7 @@ export function adaptResolveDiagnostic(diag, file, contents) {
|
|
|
95
95
|
return adaptLexerError(diag.syntax.error, file);
|
|
96
96
|
if (diag.syntax?.origin === 'parser')
|
|
97
97
|
return adaptParserError(diag.syntax.error, file);
|
|
98
|
+
const data = diag.code === undefined ? undefined : { code: diag.code, args: diag.args ?? [] };
|
|
98
99
|
return {
|
|
99
100
|
file,
|
|
100
101
|
...resolveLocation(diag, contents),
|
|
@@ -102,8 +103,8 @@ export function adaptResolveDiagnostic(diag, file, contents) {
|
|
|
102
103
|
// WV8 is uncoded; label it the way the validator's copy is labelled.
|
|
103
104
|
code: diag.code ?? inferCodeFromMessage(diag.message),
|
|
104
105
|
message: diag.message,
|
|
105
|
-
suggestion:
|
|
106
|
-
data
|
|
106
|
+
suggestion: resolveDiagnosticSuggestion(diag.message, data),
|
|
107
|
+
data,
|
|
107
108
|
};
|
|
108
109
|
}
|
|
109
110
|
function resolveLocation(diag, contents) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapt.js","sourceRoot":"","sources":["../../src/diagnostics/adapt.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"adapt.js","sourceRoot":"","sources":["../../src/diagnostics/adapt.ts"],"names":[],"mappings":"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"}
|
package/dist/diagnostics/text.js
CHANGED
|
@@ -20,24 +20,16 @@ function renderOne(diag, source, useColor) {
|
|
|
20
20
|
});
|
|
21
21
|
return `${header}\n${frame}`;
|
|
22
22
|
}
|
|
23
|
+
// The message is printed as is. A diagnostic with a `suggestion` already
|
|
24
|
+
// offers it in the message's own words and locale ("Did you mean ...?"), so
|
|
25
|
+
// the header adds nothing for it.
|
|
23
26
|
function renderHeader(diag, useColor) {
|
|
24
27
|
const loc = `${diag.file}:${diag.line}:${diag.column}`;
|
|
25
28
|
const severityWord = diag.severity === 'error' ? 'error' : 'warning';
|
|
26
|
-
if (!useColor)
|
|
27
|
-
|
|
28
|
-
return `${loc} ${severityWord}: ${stripSuggestion(diag.message, diag.suggestion)}${suffix}`;
|
|
29
|
-
}
|
|
29
|
+
if (!useColor)
|
|
30
|
+
return `${loc} ${severityWord}: ${diag.message}`;
|
|
30
31
|
const coloredLoc = chalk.cyan(loc);
|
|
31
32
|
const coloredSeverity = diag.severity === 'error' ? chalk.red.bold(severityWord) : chalk.yellow.bold(severityWord);
|
|
32
|
-
|
|
33
|
-
const suggestion = diag.suggestion
|
|
34
|
-
? ` ${chalk.dim('—')} did you mean ${chalk.green(`'${diag.suggestion}'`)}?`
|
|
35
|
-
: '';
|
|
36
|
-
return `${coloredLoc} ${coloredSeverity}: ${message}${suggestion}`;
|
|
37
|
-
}
|
|
38
|
-
function stripSuggestion(message, suggestion) {
|
|
39
|
-
if (!suggestion)
|
|
40
|
-
return message;
|
|
41
|
-
return message.replace(/ —\s*did you mean ['"]?[^'"?]+['"]?\??/i, '').trimEnd();
|
|
33
|
+
return `${coloredLoc} ${coloredSeverity}: ${diag.message}`;
|
|
42
34
|
}
|
|
43
35
|
//# sourceMappingURL=text.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/diagnostics/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,UAAU,UAAU,CACtB,WAA4B,EAC5B,OAAsC,EACtC,OAAO,GAAsB,EAAE;IAE/B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,SAAS,CACd,IAAmB,EACnB,MAAoC,EACpC,QAAiB;IAEjB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAC3B,MAAM,KAAK,GAAG,gBAAgB,CAC1B,MAAM,CAAC,QAAQ,EACf;QACI,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QAC/C,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;KAC1F,EACD;QACI,aAAa,EAAE,QAAQ;QACvB,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,QAAQ;KACvB,CACJ,CAAC;IACF,OAAO,GAAG,MAAM,KAAK,KAAK,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,YAAY,CAAC,IAAmB,EAAE,QAAiB;IACxD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,IAAI,CAAC,QAAQ
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/diagnostics/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,UAAU,UAAU,CACtB,WAA4B,EAC5B,OAAsC,EACtC,OAAO,GAAsB,EAAE;IAE/B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,SAAS,CACd,IAAmB,EACnB,MAAoC,EACpC,QAAiB;IAEjB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAC3B,MAAM,KAAK,GAAG,gBAAgB,CAC1B,MAAM,CAAC,QAAQ,EACf;QACI,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QAC/C,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;KAC1F,EACD;QACI,aAAa,EAAE,QAAQ;QACvB,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,QAAQ;KACvB,CACJ,CAAC;IACF,OAAO,GAAG,MAAM,KAAK,KAAK,EAAE,CAAC;AACjC,CAAC;AAED,yEAAyE;AACzE,4EAA4E;AAC5E,kCAAkC;AAClC,SAAS,YAAY,CAAC,IAAmB,EAAE,QAAiB;IACxD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,GAAG,IAAI,YAAY,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IAChE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,eAAe,GACjB,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/F,OAAO,GAAG,UAAU,IAAI,eAAe,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/D,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const CLI_VERSION = "0.0.0-dev.
|
|
1
|
+
export declare const CLI_VERSION = "0.0.0-dev.20261026055950.g26802dd";
|
|
2
2
|
export interface CliBuild {
|
|
3
3
|
/** Short git SHA at build time, or empty when not in a git checkout. */
|
|
4
4
|
readonly sha: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Auto-generated by scripts/bundle-templates.mjs. Do not edit by hand.
|
|
2
|
-
export const CLI_VERSION = "0.0.0-dev.
|
|
2
|
+
export const CLI_VERSION = "0.0.0-dev.20261026055950.g26802dd";
|
|
3
3
|
export const CLI_BUILD = {
|
|
4
|
-
"sha": "
|
|
4
|
+
"sha": "26802dd",
|
|
5
5
|
"isRelease": false,
|
|
6
6
|
"isDirty": true
|
|
7
7
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nowline/cli",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.20261026055950.g26802dd",
|
|
4
4
|
"description": "Command-line tool to check, convert, and create Nowline roadmaps.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"engines": {
|
|
@@ -33,19 +33,19 @@
|
|
|
33
33
|
"@babel/code-frame": "^8.0.6",
|
|
34
34
|
"@clack/prompts": "^1.8.1",
|
|
35
35
|
"@modelcontextprotocol/server": "^2.3.1",
|
|
36
|
-
"@nowline/config": "0.0.0-dev.
|
|
37
|
-
"@nowline/core": "0.0.0-dev.
|
|
38
|
-
"@nowline/export": "0.0.0-dev.
|
|
39
|
-
"@nowline/export-core": "0.0.0-dev.
|
|
40
|
-
"@nowline/export-html": "0.0.0-dev.
|
|
41
|
-
"@nowline/export-mermaid": "0.0.0-dev.
|
|
42
|
-
"@nowline/export-msproj": "0.0.0-dev.
|
|
43
|
-
"@nowline/export-pdf": "0.0.0-dev.
|
|
44
|
-
"@nowline/export-png": "0.0.0-dev.
|
|
45
|
-
"@nowline/export-xlsx": "0.0.0-dev.
|
|
46
|
-
"@nowline/layout": "0.0.0-dev.
|
|
47
|
-
"@nowline/mcp": "0.0.0-dev.
|
|
48
|
-
"@nowline/renderer": "0.0.0-dev.
|
|
36
|
+
"@nowline/config": "0.0.0-dev.20261026055950.g26802dd",
|
|
37
|
+
"@nowline/core": "0.0.0-dev.20261026055950.g26802dd",
|
|
38
|
+
"@nowline/export": "0.0.0-dev.20261026055950.g26802dd",
|
|
39
|
+
"@nowline/export-core": "0.0.0-dev.20261026055950.g26802dd",
|
|
40
|
+
"@nowline/export-html": "0.0.0-dev.20261026055950.g26802dd",
|
|
41
|
+
"@nowline/export-mermaid": "0.0.0-dev.20261026055950.g26802dd",
|
|
42
|
+
"@nowline/export-msproj": "0.0.0-dev.20261026055950.g26802dd",
|
|
43
|
+
"@nowline/export-pdf": "0.0.0-dev.20261026055950.g26802dd",
|
|
44
|
+
"@nowline/export-png": "0.0.0-dev.20261026055950.g26802dd",
|
|
45
|
+
"@nowline/export-xlsx": "0.0.0-dev.20261026055950.g26802dd",
|
|
46
|
+
"@nowline/layout": "0.0.0-dev.20261026055950.g26802dd",
|
|
47
|
+
"@nowline/mcp": "0.0.0-dev.20261026055950.g26802dd",
|
|
48
|
+
"@nowline/renderer": "0.0.0-dev.20261026055950.g26802dd",
|
|
49
49
|
"chalk": "^6.0.1",
|
|
50
50
|
"citty": "^0.2.2",
|
|
51
51
|
"consola": "^3.4.2",
|
package/src/diagnostics/adapt.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
|
-
extractSuggestion,
|
|
3
2
|
inferCodeFromMessage,
|
|
4
3
|
type LangiumLikeDiagnostic,
|
|
5
4
|
type LexerErrorLike,
|
|
6
5
|
type ParserErrorLike,
|
|
7
6
|
type ResolveDiagnostic,
|
|
8
7
|
resolveDiagnosticCode,
|
|
8
|
+
resolveDiagnosticSuggestion,
|
|
9
9
|
} from '@nowline/core';
|
|
10
10
|
import type { CliDiagnostic, DiagnosticSeverity, LocalizedMessageData } from './model.js';
|
|
11
11
|
|
|
@@ -31,7 +31,7 @@ export function adaptLangiumDiagnostic(diag: LangiumLikeDiagnostic, file: string
|
|
|
31
31
|
},
|
|
32
32
|
}
|
|
33
33
|
: undefined,
|
|
34
|
-
suggestion:
|
|
34
|
+
suggestion: resolveDiagnosticSuggestion(diag.message, diag.data),
|
|
35
35
|
// The CLI keeps the full { code, args } so formatDiagnostics can
|
|
36
36
|
// re-render the message in the operator's locale at print time.
|
|
37
37
|
data: extractMessageData(diag.data),
|
|
@@ -109,6 +109,7 @@ export function adaptResolveDiagnostic(
|
|
|
109
109
|
// checked on its own.
|
|
110
110
|
if (diag.syntax?.origin === 'lexer') return adaptLexerError(diag.syntax.error, file);
|
|
111
111
|
if (diag.syntax?.origin === 'parser') return adaptParserError(diag.syntax.error, file);
|
|
112
|
+
const data = diag.code === undefined ? undefined : { code: diag.code, args: diag.args ?? [] };
|
|
112
113
|
return {
|
|
113
114
|
file,
|
|
114
115
|
...resolveLocation(diag, contents),
|
|
@@ -116,8 +117,8 @@ export function adaptResolveDiagnostic(
|
|
|
116
117
|
// WV8 is uncoded; label it the way the validator's copy is labelled.
|
|
117
118
|
code: diag.code ?? inferCodeFromMessage(diag.message),
|
|
118
119
|
message: diag.message,
|
|
119
|
-
suggestion:
|
|
120
|
-
data
|
|
120
|
+
suggestion: resolveDiagnosticSuggestion(diag.message, data),
|
|
121
|
+
data,
|
|
121
122
|
};
|
|
122
123
|
}
|
|
123
124
|
|
package/src/diagnostics/text.ts
CHANGED
|
@@ -39,24 +39,15 @@ function renderOne(
|
|
|
39
39
|
return `${header}\n${frame}`;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
// The message is printed as is. A diagnostic with a `suggestion` already
|
|
43
|
+
// offers it in the message's own words and locale ("Did you mean ...?"), so
|
|
44
|
+
// the header adds nothing for it.
|
|
42
45
|
function renderHeader(diag: CliDiagnostic, useColor: boolean): string {
|
|
43
46
|
const loc = `${diag.file}:${diag.line}:${diag.column}`;
|
|
44
47
|
const severityWord = diag.severity === 'error' ? 'error' : 'warning';
|
|
45
|
-
if (!useColor) {
|
|
46
|
-
const suffix = diag.suggestion ? ` — did you mean '${diag.suggestion}'?` : '';
|
|
47
|
-
return `${loc} ${severityWord}: ${stripSuggestion(diag.message, diag.suggestion)}${suffix}`;
|
|
48
|
-
}
|
|
48
|
+
if (!useColor) return `${loc} ${severityWord}: ${diag.message}`;
|
|
49
49
|
const coloredLoc = chalk.cyan(loc);
|
|
50
50
|
const coloredSeverity =
|
|
51
51
|
diag.severity === 'error' ? chalk.red.bold(severityWord) : chalk.yellow.bold(severityWord);
|
|
52
|
-
|
|
53
|
-
const suggestion = diag.suggestion
|
|
54
|
-
? ` ${chalk.dim('—')} did you mean ${chalk.green(`'${diag.suggestion}'`)}?`
|
|
55
|
-
: '';
|
|
56
|
-
return `${coloredLoc} ${coloredSeverity}: ${message}${suggestion}`;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function stripSuggestion(message: string, suggestion: string | undefined): string {
|
|
60
|
-
if (!suggestion) return message;
|
|
61
|
-
return message.replace(/ —\s*did you mean ['"]?[^'"?]+['"]?\??/i, '').trimEnd();
|
|
52
|
+
return `${coloredLoc} ${coloredSeverity}: ${diag.message}`;
|
|
62
53
|
}
|
package/src/generated/version.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Auto-generated by scripts/bundle-templates.mjs. Do not edit by hand.
|
|
2
2
|
|
|
3
|
-
export const CLI_VERSION = "0.0.0-dev.
|
|
3
|
+
export const CLI_VERSION = "0.0.0-dev.20261026055950.g26802dd";
|
|
4
4
|
|
|
5
5
|
export interface CliBuild {
|
|
6
6
|
/** Short git SHA at build time, or empty when not in a git checkout. */
|
|
@@ -12,7 +12,7 @@ export interface CliBuild {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export const CLI_BUILD: CliBuild = {
|
|
15
|
-
"sha": "
|
|
15
|
+
"sha": "26802dd",
|
|
16
16
|
"isRelease": false,
|
|
17
17
|
"isDirty": true
|
|
18
18
|
};
|