Skip to content

Commit 83e950d

Browse files
Added URI-encoding and URI-decoding of JSON Pointers
1 parent fa9600a commit 83e950d

12 files changed

Lines changed: 38 additions & 38 deletions

dist/ref-parser.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -833,7 +833,7 @@ Pointer.parse = function(path) {
833833

834834
// Decode each part, according to RFC 6901
835835
for (var i = 0; i < pointer.length; i++) {
836-
pointer[i] = pointer[i].replace(escapedSlash, '/').replace(escapedTilde, '~');
836+
pointer[i] = decodeURI(pointer[i].replace(escapedSlash, '/').replace(escapedTilde, '~'));
837837
}
838838

839839
if (pointer[0] !== '') {
@@ -864,7 +864,7 @@ Pointer.join = function(base, tokens) {
864864
base += '/' + token.replace(tildes, '~0').replace(slashes, '~1');
865865
}
866866

867-
return base;
867+
return encodeURI(base);
868868
};
869869

870870
/**

dist/ref-parser.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ref-parser.min.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ref-parser.min.js.map

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/pointer.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ Pointer.parse = function(path) {
154154

155155
// Decode each part, according to RFC 6901
156156
for (var i = 0; i < pointer.length; i++) {
157-
pointer[i] = pointer[i].replace(escapedSlash, '/').replace(escapedTilde, '~');
157+
pointer[i] = decodeURI(pointer[i].replace(escapedSlash, '/').replace(escapedTilde, '~'));
158158
}
159159

160160
if (pointer[0] !== '') {
@@ -185,7 +185,7 @@ Pointer.join = function(base, tokens) {
185185
base += '/' + token.replace(tildes, '~0').replace(slashes, '~1');
186186
}
187187

188-
return base;
188+
return encodeURI(base);
189189
};
190190

191191
/**

tests/specs/external/definitions/definitions.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
2-
"requiredString": {
2+
"required string": {
33
"$ref": "required-string.yaml"
44
},
55
"string": {
6-
"$ref": "#/requiredString/type"
6+
"$ref": "#/required%20string/type"
77
},
88
"name": {
99
"$ref": "../definitions/name.yaml"

tests/specs/external/definitions/name.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ required:
55
- last
66
properties:
77
first:
8-
$ref: ../definitions/definitions.json#/requiredString
8+
$ref: ../definitions/definitions.json#/required string
99
last:
1010
$ref: ./required-string.yaml
1111
middle:
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
title: requiredString
1+
title: required string
22
type: string
33
minLength: 1

tests/specs/external/external.bundled.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ helper.bundled.external =
2222
}
2323
},
2424
"definitions": {
25-
"requiredString": {
26-
"title": "requiredString",
25+
"required string": {
26+
"title": "required string",
2727
"type": "string",
2828
"minLength": 1
2929
},
3030
"string": {
31-
"$ref": "#/definitions/requiredString/type"
31+
"$ref": "#/definitions/required%20string/type"
3232
},
3333
"name": {
3434
"title": "name",
@@ -39,21 +39,21 @@ helper.bundled.external =
3939
],
4040
"properties": {
4141
"first": {
42-
"$ref": "#/definitions/requiredString"
42+
"$ref": "#/definitions/required%20string"
4343
},
4444
"last": {
45-
"$ref": "#/definitions/requiredString"
45+
"$ref": "#/definitions/required%20string"
4646
},
4747
"middle": {
4848
"type": {
49-
"$ref": "#/definitions/requiredString/type"
49+
"$ref": "#/definitions/required%20string/type"
5050
},
5151
"minLength": {
52-
"$ref": "#/definitions/requiredString/minLength"
52+
"$ref": "#/definitions/required%20string/minLength"
5353
}
5454
},
5555
"prefix": {
56-
"$ref": "#/definitions/requiredString",
56+
"$ref": "#/definitions/required%20string",
5757
"minLength": 3
5858
},
5959
"suffix": {

tests/specs/external/external.dereferenced.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ helper.dereferenced.external =
1515
],
1616
"properties": {
1717
"first": {
18-
"title": "requiredString",
18+
"title": "required string",
1919
"type": "string",
2020
"minLength": 1
2121
},
2222
"last": {
23-
"title": "requiredString",
23+
"title": "required string",
2424
"type": "string",
2525
"minLength": 1
2626
},
@@ -29,12 +29,12 @@ helper.dereferenced.external =
2929
"minLength": 1
3030
},
3131
"prefix": {
32-
"title": "requiredString",
32+
"title": "required string",
3333
"type": "string",
3434
"minLength": 3
3535
},
3636
"suffix": {
37-
"title": "requiredString",
37+
"title": "required string",
3838
"type": "string",
3939
"minLength": 3,
4040
"maxLength": 3
@@ -54,8 +54,8 @@ helper.dereferenced.external =
5454
}
5555
},
5656
"definitions": {
57-
"requiredString": {
58-
"title": "requiredString",
57+
"required string": {
58+
"title": "required string",
5959
"type": "string",
6060
"minLength": 1
6161
},
@@ -69,12 +69,12 @@ helper.dereferenced.external =
6969
],
7070
"properties": {
7171
"first": {
72-
"title": "requiredString",
72+
"title": "required string",
7373
"type": "string",
7474
"minLength": 1
7575
},
7676
"last": {
77-
"title": "requiredString",
77+
"title": "required string",
7878
"type": "string",
7979
"minLength": 1
8080
},
@@ -83,12 +83,12 @@ helper.dereferenced.external =
8383
"minLength": 1
8484
},
8585
"prefix": {
86-
"title": "requiredString",
86+
"title": "required string",
8787
"type": "string",
8888
"minLength": 3
8989
},
9090
"suffix": {
91-
"title": "requiredString",
91+
"title": "required string",
9292
"type": "string",
9393
"minLength": 3,
9494
"maxLength": 3

0 commit comments

Comments
 (0)