Skip to content

Commit 19db897

Browse files
committed
fix(jsonpath): replace lib to detect jsonpath syntax error
1 parent ce80c8a commit 19db897

File tree

4 files changed

+118
-44
lines changed

4 files changed

+118
-44
lines changed

packages/sdk/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"@crossplane-js/libs": "workspace:^",
99
"@kubernetes-models/apimachinery": "^2.1.0",
1010
"@kubernetes-models/base": "^5.0.1",
11-
"jsonpath-plus": "^10.3.0",
11+
"jsonpath": "^1.1.1",
1212
"lodash": "^4.17.21",
1313
"pino": "^9.6.0",
1414
"yaml": "^2.7.0"
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
declare module "jsonpath" {
2+
export function value(obj: any, path: string): any
3+
export function query(obj: any, path: string): any[]
4+
export function paths(obj: any, path: string): string[][]
5+
export function nodes(obj: any, path: string): Array<{ path: string[]; value: any }>
6+
export function parent(obj: any, path: string): any
7+
export function apply(obj: any, path: string, fn: (value: any) => any): any
8+
export function stringify(path: string[]): string
9+
export function parse(pathExpression: string): string[]
10+
}

packages/sdk/src/utils/FieldRef.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { JSONPath } from "jsonpath-plus"
1+
import jsonpath from "jsonpath"
22

33
/**
44
* A reference to a field in an object, with fallback in case the field is not found.
@@ -33,7 +33,7 @@ export class FieldRef<T> extends String {
3333
fallback: T,
3434
valueTransformer?: (value: any) => T
3535
): [T, boolean] {
36-
const obj = JSONPath({ path, json: valueContainer, wrap: false })
36+
const obj = jsonpath.value(valueContainer, path)
3737
if (obj === undefined) {
3838
return [fallback, false]
3939
}

yarn.lock

Lines changed: 105 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ __metadata:
333333
"@kubernetes-models/apimachinery": "npm:^2.1.0"
334334
"@kubernetes-models/base": "npm:^5.0.1"
335335
"@types/lodash": "npm:^4"
336-
jsonpath-plus: "npm:^10.3.0"
336+
jsonpath: "npm:^1.1.1"
337337
lodash: "npm:^4.17.21"
338338
pino: "npm:^9.6.0"
339339
yaml: "npm:^2.7.0"
@@ -817,24 +817,6 @@ __metadata:
817817
languageName: node
818818
linkType: hard
819819

820-
"@jsep-plugin/assignment@npm:^1.3.0":
821-
version: 1.3.0
822-
resolution: "@jsep-plugin/assignment@npm:1.3.0"
823-
peerDependencies:
824-
jsep: ^0.4.0||^1.0.0
825-
checksum: 10c0/d749554dc691798116eb068eebe2d9bcb0b0d89ef6c7cc7c2a9f37d03da15fdbf8053407e97008090cd1bd6f256ea6c26abbada7399cf79f0b6b502e164b084b
826-
languageName: node
827-
linkType: hard
828-
829-
"@jsep-plugin/regex@npm:^1.0.4":
830-
version: 1.0.4
831-
resolution: "@jsep-plugin/regex@npm:1.0.4"
832-
peerDependencies:
833-
jsep: ^0.4.0||^1.0.0
834-
checksum: 10c0/bec7eb7ea6ab453a2672edc808644c5be3dc06b2a9d77182e18cd595b37deba6dcdb3760849d8684afc5779a86b7d2604dd525cb612a548f9ed9f31a8032ec24
835-
languageName: node
836-
linkType: hard
837-
838820
"@kubernetes-models/apimachinery@npm:^2.1.0":
839821
version: 2.1.0
840822
resolution: "@kubernetes-models/apimachinery@npm:2.1.0"
@@ -3440,7 +3422,7 @@ __metadata:
34403422
languageName: node
34413423
linkType: hard
34423424

3443-
"deep-is@npm:^0.1.3":
3425+
"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3":
34443426
version: 0.1.4
34453427
resolution: "deep-is@npm:0.1.4"
34463428
checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c
@@ -3920,6 +3902,25 @@ __metadata:
39203902
languageName: node
39213903
linkType: hard
39223904

3905+
"escodegen@npm:^1.8.1":
3906+
version: 1.14.3
3907+
resolution: "escodegen@npm:1.14.3"
3908+
dependencies:
3909+
esprima: "npm:^4.0.1"
3910+
estraverse: "npm:^4.2.0"
3911+
esutils: "npm:^2.0.2"
3912+
optionator: "npm:^0.8.1"
3913+
source-map: "npm:~0.6.1"
3914+
dependenciesMeta:
3915+
source-map:
3916+
optional: true
3917+
bin:
3918+
escodegen: bin/escodegen.js
3919+
esgenerate: bin/esgenerate.js
3920+
checksum: 10c0/30d337803e8f44308c90267bf6192399e4b44792497c77a7506b68ab802ba6a48ebbe1ce77b219aba13dfd2de5f5e1c267e35be1ed87b2a9c3315e8b283e302a
3921+
languageName: node
3922+
linkType: hard
3923+
39233924
"eslint-config-prettier@npm:^10.1.1":
39243925
version: 10.1.1
39253926
resolution: "eslint-config-prettier@npm:10.1.1"
@@ -4088,7 +4089,17 @@ __metadata:
40884089
languageName: node
40894090
linkType: hard
40904091

4091-
"esprima@npm:^4.0.0":
4092+
"esprima@npm:1.2.2":
4093+
version: 1.2.2
4094+
resolution: "esprima@npm:1.2.2"
4095+
bin:
4096+
esparse: ./bin/esparse.js
4097+
esvalidate: ./bin/esvalidate.js
4098+
checksum: 10c0/a5a8fd359651dd8228736d7352eb7636c7765e1ec6ff8fff3f6641622039a9f51fa501969a1a4777ba4187cf9942a8d7e0367dccaff768b782bdb1a71d046abf
4099+
languageName: node
4100+
linkType: hard
4101+
4102+
"esprima@npm:^4.0.0, esprima@npm:^4.0.1":
40924103
version: 4.0.1
40934104
resolution: "esprima@npm:4.0.1"
40944105
bin:
@@ -4116,6 +4127,13 @@ __metadata:
41164127
languageName: node
41174128
linkType: hard
41184129

4130+
"estraverse@npm:^4.2.0":
4131+
version: 4.3.0
4132+
resolution: "estraverse@npm:4.3.0"
4133+
checksum: 10c0/9cb46463ef8a8a4905d3708a652d60122a0c20bb58dec7e0e12ab0e7235123d74214fc0141d743c381813e1b992767e2708194f6f6e0f9fd00c1b4e0887b8b6d
4134+
languageName: node
4135+
linkType: hard
4136+
41194137
"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0":
41204138
version: 5.3.0
41214139
resolution: "estraverse@npm:5.3.0"
@@ -4249,7 +4267,7 @@ __metadata:
42494267
languageName: node
42504268
linkType: hard
42514269

4252-
"fast-levenshtein@npm:^2.0.6":
4270+
"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6":
42534271
version: 2.0.6
42544272
resolution: "fast-levenshtein@npm:2.0.6"
42554273
checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4
@@ -5745,13 +5763,6 @@ __metadata:
57455763
languageName: node
57465764
linkType: hard
57475765

5748-
"jsep@npm:^1.4.0":
5749-
version: 1.4.0
5750-
resolution: "jsep@npm:1.4.0"
5751-
checksum: 10c0/fe60adf47e050e22eadced42514a51a15a3cf0e2d147896584486acd8ee670fc16641101b9aeb81f4aaba382043d29744b7aac41171e8106515b14f27e0c7116
5752-
languageName: node
5753-
linkType: hard
5754-
57555766
"jsesc@npm:^3.0.2":
57565767
version: 3.1.0
57575768
resolution: "jsesc@npm:3.1.0"
@@ -5841,17 +5852,14 @@ __metadata:
58415852
languageName: node
58425853
linkType: hard
58435854

5844-
"jsonpath-plus@npm:^10.3.0":
5845-
version: 10.3.0
5846-
resolution: "jsonpath-plus@npm:10.3.0"
5855+
"jsonpath@npm:^1.1.1":
5856+
version: 1.1.1
5857+
resolution: "jsonpath@npm:1.1.1"
58475858
dependencies:
5848-
"@jsep-plugin/assignment": "npm:^1.3.0"
5849-
"@jsep-plugin/regex": "npm:^1.0.4"
5850-
jsep: "npm:^1.4.0"
5851-
bin:
5852-
jsonpath: bin/jsonpath-cli.js
5853-
jsonpath-plus: bin/jsonpath-cli.js
5854-
checksum: 10c0/f5ff53078ecab98e8afd1dcdb4488e528653fa5a03a32d671f52db1ae9c3236e6e072d75e1949a80929fd21b07603924a586f829b40ad35993fa0247fa4f7506
5859+
esprima: "npm:1.2.2"
5860+
static-eval: "npm:2.0.2"
5861+
underscore: "npm:1.12.1"
5862+
checksum: 10c0/4fea3f83bcb4df08c32090ba8a0d1a6d26244f6d19c4296f9b58caa01eeb7de0f8347eba40077ceee2f95acc69d032b0b48226d350339063ba580e87983f6dec
58555863
languageName: node
58565864
linkType: hard
58575865

@@ -5881,6 +5889,16 @@ __metadata:
58815889
languageName: node
58825890
linkType: hard
58835891

5892+
"levn@npm:~0.3.0":
5893+
version: 0.3.0
5894+
resolution: "levn@npm:0.3.0"
5895+
dependencies:
5896+
prelude-ls: "npm:~1.1.2"
5897+
type-check: "npm:~0.3.2"
5898+
checksum: 10c0/e440df9de4233da0b389cd55bd61f0f6aaff766400bebbccd1231b81801f6dbc1d816c676ebe8d70566394b749fa624b1ed1c68070e9c94999f0bdecc64cb676
5899+
languageName: node
5900+
linkType: hard
5901+
58845902
"lilconfig@npm:^3.1.3":
58855903
version: 3.1.3
58865904
resolution: "lilconfig@npm:3.1.3"
@@ -6795,6 +6813,20 @@ __metadata:
67956813
languageName: node
67966814
linkType: hard
67976815

6816+
"optionator@npm:^0.8.1":
6817+
version: 0.8.3
6818+
resolution: "optionator@npm:0.8.3"
6819+
dependencies:
6820+
deep-is: "npm:~0.1.3"
6821+
fast-levenshtein: "npm:~2.0.6"
6822+
levn: "npm:~0.3.0"
6823+
prelude-ls: "npm:~1.1.2"
6824+
type-check: "npm:~0.3.2"
6825+
word-wrap: "npm:~1.2.3"
6826+
checksum: 10c0/ad7000ea661792b3ec5f8f86aac28895850988926f483b5f308f59f4607dfbe24c05df2d049532ee227c040081f39401a268cf7bbf3301512f74c4d760dc6dd8
6827+
languageName: node
6828+
linkType: hard
6829+
67986830
"optionator@npm:^0.9.3":
67996831
version: 0.9.4
68006832
resolution: "optionator@npm:0.9.4"
@@ -7182,6 +7214,13 @@ __metadata:
71827214
languageName: node
71837215
linkType: hard
71847216

7217+
"prelude-ls@npm:~1.1.2":
7218+
version: 1.1.2
7219+
resolution: "prelude-ls@npm:1.1.2"
7220+
checksum: 10c0/7284270064f74e0bb7f04eb9bff7be677e4146417e599ccc9c1200f0f640f8b11e592d94eb1b18f7aa9518031913bb42bea9c86af07ba69902864e61005d6f18
7221+
languageName: node
7222+
linkType: hard
7223+
71857224
"prettier-linter-helpers@npm:^1.0.0":
71867225
version: 1.0.0
71877226
resolution: "prettier-linter-helpers@npm:1.0.0"
@@ -8098,7 +8137,7 @@ __metadata:
80988137
languageName: node
80998138
linkType: hard
81008139

8101-
"source-map@npm:^0.6.1":
8140+
"source-map@npm:^0.6.1, source-map@npm:~0.6.1":
81028141
version: 0.6.1
81038142
resolution: "source-map@npm:0.6.1"
81048143
checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011
@@ -8214,6 +8253,15 @@ __metadata:
82148253
languageName: node
82158254
linkType: hard
82168255

8256+
"static-eval@npm:2.0.2":
8257+
version: 2.0.2
8258+
resolution: "static-eval@npm:2.0.2"
8259+
dependencies:
8260+
escodegen: "npm:^1.8.1"
8261+
checksum: 10c0/9bc1114ea5ba2a6978664907c4dd3fde6f58767274f6cb4fbfb11ba3a73cb6e74dc11e89ec4a7bf1472a587c1f976fcd4ab8fe9aae1651f5e576f097745d48ff
8262+
languageName: node
8263+
linkType: hard
8264+
82178265
"statuses@npm:2.0.1, statuses@npm:^2.0.1":
82188266
version: 2.0.1
82198267
resolution: "statuses@npm:2.0.1"
@@ -8688,6 +8736,15 @@ __metadata:
86888736
languageName: node
86898737
linkType: hard
86908738

8739+
"type-check@npm:~0.3.2":
8740+
version: 0.3.2
8741+
resolution: "type-check@npm:0.3.2"
8742+
dependencies:
8743+
prelude-ls: "npm:~1.1.2"
8744+
checksum: 10c0/776217116b2b4e50e368c7ee0c22c0a85e982881c16965b90d52f216bc296d6a52ef74f9202d22158caacc092a7645b0b8d5fe529a96e3fe35d0fb393966c875
8745+
languageName: node
8746+
linkType: hard
8747+
86918748
"type-fest@npm:^0.12.0":
86928749
version: 0.12.0
86938750
resolution: "type-fest@npm:0.12.0"
@@ -8842,6 +8899,13 @@ __metadata:
88428899
languageName: node
88438900
linkType: hard
88448901

8902+
"underscore@npm:1.12.1":
8903+
version: 1.12.1
8904+
resolution: "underscore@npm:1.12.1"
8905+
checksum: 10c0/00f392357e363353ac485e7c156b749505087e31ff4fdad22e04ebd2f94a56fbc554cd41a6722e3895a818466cf298b1cae93ff6211d102d373a9b50db63bfd0
8906+
languageName: node
8907+
linkType: hard
8908+
88458909
"undici-types@npm:~5.26.4":
88468910
version: 5.26.5
88478911
resolution: "undici-types@npm:5.26.5"
@@ -9096,7 +9160,7 @@ __metadata:
90969160
languageName: node
90979161
linkType: hard
90989162

9099-
"word-wrap@npm:^1.2.5":
9163+
"word-wrap@npm:^1.2.5, word-wrap@npm:~1.2.3":
91009164
version: 1.2.5
91019165
resolution: "word-wrap@npm:1.2.5"
91029166
checksum: 10c0/e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20

0 commit comments

Comments
 (0)