@plurnk/plurnk-mimetypes-application-json 0.4.2 → 0.5.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.
|
@@ -3,6 +3,7 @@ import type { HandlerContent, MimeSymbol, QueryDialect, QueryMatch } from "@plur
|
|
|
3
3
|
export default class ApplicationJson extends BaseHandler {
|
|
4
4
|
validate(content: string): void;
|
|
5
5
|
extractRaw(content: string): MimeSymbol[];
|
|
6
|
+
deepJson(content: HandlerContent): unknown;
|
|
6
7
|
query(content: HandlerContent, dialect: QueryDialect, pattern: string, flags?: string): Promise<QueryMatch[]>;
|
|
7
8
|
}
|
|
8
9
|
//# sourceMappingURL=ApplicationJson.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationJson.d.ts","sourceRoot":"","sources":["../src/ApplicationJson.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EAGd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACR,cAAc,EACd,UAAU,EACV,YAAY,EACZ,UAAU,EACb,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ApplicationJson.d.ts","sourceRoot":"","sources":["../src/ApplicationJson.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EAGd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACR,cAAc,EACd,UAAU,EACV,YAAY,EACZ,UAAU,EACb,MAAM,0BAA0B,CAAC;AAuBlC,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAe/B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE;IAqBzC,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAuBpC,KAAK,CAChB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,EAAE,CAAC;CAiC3B"}
|
package/dist/ApplicationJson.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseHandler, queryJsonpathObject, QueryParseFailureError, } from "@plurnk/plurnk-mimetypes";
|
|
2
|
-
import { findNodeAtLocation, getNodeValue, parseTree, printParseErrorCode, } from "jsonc-parser";
|
|
2
|
+
import { findNodeAtLocation, getNodeValue, parse as parseJsonc, parseTree, printParseErrorCode, } from "jsonc-parser";
|
|
3
3
|
// One class serves two mimetype names — application/json (strict) and
|
|
4
4
|
// application/jsonc (comments + trailing commas allowed). The framework
|
|
5
5
|
// constructs one instance per registered name; this.mimetype distinguishes
|
|
@@ -39,6 +39,29 @@ export default class ApplicationJson extends BaseHandler {
|
|
|
39
39
|
collectKeys(tree, content, symbols);
|
|
40
40
|
return symbols;
|
|
41
41
|
}
|
|
42
|
+
// Deep-channel (issue #10). For JSON, the deep-json IS the parsed value
|
|
43
|
+
// tree — users writing jsonpath like `$.server.host` expect the actual
|
|
44
|
+
// parsed value back, not a transformation. The framework's
|
|
45
|
+
// projectJsonToXml renders this directly into deep-xml.
|
|
46
|
+
//
|
|
47
|
+
// jsonc relaxations are applied per mimetype. Malformed content returns
|
|
48
|
+
// null (parse failure is non-fatal here; validate() is the strict gate).
|
|
49
|
+
deepJson(content) {
|
|
50
|
+
if (typeof content !== "string")
|
|
51
|
+
return null;
|
|
52
|
+
const allowsRelaxation = this.mimetype === "application/jsonc";
|
|
53
|
+
// jsonc-parser's `parse` returns plain-prototype objects (unlike
|
|
54
|
+
// parseTree+getNodeValue which returns null-prototype objects that
|
|
55
|
+
// confuse downstream consumers' structural comparisons).
|
|
56
|
+
const errors = [];
|
|
57
|
+
const value = parseJsonc(content, errors, {
|
|
58
|
+
allowTrailingComma: allowsRelaxation,
|
|
59
|
+
disallowComments: !allowsRelaxation,
|
|
60
|
+
});
|
|
61
|
+
if (errors.length > 0)
|
|
62
|
+
return null;
|
|
63
|
+
return value ?? null;
|
|
64
|
+
}
|
|
42
65
|
// Override jsonpath dispatch so queries hit the parsed JSON value (the
|
|
43
66
|
// actual data the model is asking about) rather than the bare-leaves
|
|
44
67
|
// outline of keys. Line numbers for matches come from jsonc-parser's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationJson.js","sourceRoot":"","sources":["../src/ApplicationJson.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,mBAAmB,EACnB,sBAAsB,GACzB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EACH,kBAAkB,EAClB,YAAY,
|
|
1
|
+
{"version":3,"file":"ApplicationJson.js","sourceRoot":"","sources":["../src/ApplicationJson.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-mimetypes-application-json",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "application/json and application/jsonc mimetype handler for plurnk-service.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"prepare": "npm run build"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@plurnk/plurnk-mimetypes": "0.
|
|
52
|
+
"@plurnk/plurnk-mimetypes": "0.9.0",
|
|
53
53
|
"jsonc-parser": "^3.3.1"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|