@o3co/ts.hocon 0.1.0 → 0.1.2

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.
Files changed (106) hide show
  1. package/README.ja.md +49 -0
  2. package/README.md +49 -0
  3. package/dist/config-D4EyvNd8.d.cts +31 -0
  4. package/dist/config-D4EyvNd8.d.ts +31 -0
  5. package/dist/index.cjs +891 -0
  6. package/dist/index.d.cts +39 -0
  7. package/dist/index.d.ts +39 -0
  8. package/dist/index.js +847 -0
  9. package/dist/zod.cjs +39 -0
  10. package/dist/zod.d.cts +7 -0
  11. package/dist/zod.d.ts +7 -0
  12. package/dist/zod.js +13 -0
  13. package/package.json +13 -10
  14. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -29
  15. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -23
  16. package/.github/pull_request_template.md +0 -17
  17. package/.github/workflows/lint.yml +0 -33
  18. package/.github/workflows/release.yml +0 -41
  19. package/.github/workflows/test.yml +0 -53
  20. package/CHANGELOG.md +0 -22
  21. package/CONTRIBUTING.md +0 -62
  22. package/SECURITY.md +0 -20
  23. package/docs/superpowers/plans/2026-03-20-ts-hocon.md +0 -2412
  24. package/docs/superpowers/specs/2026-03-20-ts-hocon-design.md +0 -368
  25. package/src/config.ts +0 -108
  26. package/src/errors.ts +0 -34
  27. package/src/index.ts +0 -5
  28. package/src/internal/lexer/lexer.ts +0 -168
  29. package/src/internal/lexer/token.ts +0 -20
  30. package/src/internal/parser/ast.ts +0 -17
  31. package/src/internal/parser/parser.ts +0 -229
  32. package/src/internal/resolver/resolver.ts +0 -428
  33. package/src/parse.ts +0 -79
  34. package/src/value.ts +0 -5
  35. package/src/zod.ts +0 -12
  36. package/tests/config.test.ts +0 -100
  37. package/tests/errors.test.ts +0 -43
  38. package/tests/lexer.test.ts +0 -141
  39. package/tests/lightbend/lightbend.test.ts +0 -39
  40. package/tests/lightbend/testdata/a_1.conf +0 -1
  41. package/tests/lightbend/testdata/b_2.conf +0 -1
  42. package/tests/lightbend/testdata/beanconfig/beanconfig01.conf +0 -131
  43. package/tests/lightbend/testdata/bom.conf +0 -2
  44. package/tests/lightbend/testdata/cycle.conf +0 -1
  45. package/tests/lightbend/testdata/env-variables.conf +0 -16
  46. package/tests/lightbend/testdata/equiv01/comments.conf +0 -45
  47. package/tests/lightbend/testdata/equiv01/equals.conf +0 -41
  48. package/tests/lightbend/testdata/equiv01/no-commas.conf +0 -55
  49. package/tests/lightbend/testdata/equiv01/no-root-braces.conf +0 -40
  50. package/tests/lightbend/testdata/equiv01/no-whitespace.json +0 -1
  51. package/tests/lightbend/testdata/equiv01/omit-colons.conf +0 -44
  52. package/tests/lightbend/testdata/equiv01/original.json +0 -41
  53. package/tests/lightbend/testdata/equiv01/path-keys.conf +0 -29
  54. package/tests/lightbend/testdata/equiv01/properties-style.conf +0 -37
  55. package/tests/lightbend/testdata/equiv01/substitutions.conf +0 -41
  56. package/tests/lightbend/testdata/equiv01/unquoted.conf +0 -41
  57. package/tests/lightbend/testdata/equiv02/original.json +0 -17
  58. package/tests/lightbend/testdata/equiv02/path-keys-weird-whitespace.conf +0 -32
  59. package/tests/lightbend/testdata/equiv02/path-keys.conf +0 -9
  60. package/tests/lightbend/testdata/equiv03/includes.conf +0 -7
  61. package/tests/lightbend/testdata/equiv03/letters/a.conf +0 -6
  62. package/tests/lightbend/testdata/equiv03/letters/b.json +0 -3
  63. package/tests/lightbend/testdata/equiv03/letters/c.conf +0 -2
  64. package/tests/lightbend/testdata/equiv03/letters/c.properties +0 -1
  65. package/tests/lightbend/testdata/equiv03/letters/numbers/1.conf +0 -1
  66. package/tests/lightbend/testdata/equiv03/letters/numbers/2.properties +0 -1
  67. package/tests/lightbend/testdata/equiv03/original.json +0 -15
  68. package/tests/lightbend/testdata/equiv03/root/foo.conf +0 -1
  69. package/tests/lightbend/testdata/equiv04/missing-substitutions.conf +0 -4
  70. package/tests/lightbend/testdata/equiv04/original.json +0 -3
  71. package/tests/lightbend/testdata/equiv05/original.json +0 -16
  72. package/tests/lightbend/testdata/equiv05/triple-quotes.conf +0 -20
  73. package/tests/lightbend/testdata/file-include.conf +0 -5
  74. package/tests/lightbend/testdata/include-from-list.conf +0 -5
  75. package/tests/lightbend/testdata/onclasspath.conf +0 -2
  76. package/tests/lightbend/testdata/subdir/bar-file.conf +0 -1
  77. package/tests/lightbend/testdata/subdir/bar.conf +0 -1
  78. package/tests/lightbend/testdata/subdir/baz.conf +0 -1
  79. package/tests/lightbend/testdata/subdir/foo.conf +0 -5
  80. package/tests/lightbend/testdata/test01.conf +0 -96
  81. package/tests/lightbend/testdata/test01.json +0 -4
  82. package/tests/lightbend/testdata/test01.properties +0 -5
  83. package/tests/lightbend/testdata/test02.conf +0 -13
  84. package/tests/lightbend/testdata/test03-included.conf +0 -9
  85. package/tests/lightbend/testdata/test03.conf +0 -36
  86. package/tests/lightbend/testdata/test04.conf +0 -305
  87. package/tests/lightbend/testdata/test05.conf +0 -154
  88. package/tests/lightbend/testdata/test06.conf +0 -14
  89. package/tests/lightbend/testdata/test07.conf +0 -4
  90. package/tests/lightbend/testdata/test08.conf +0 -6
  91. package/tests/lightbend/testdata/test09.conf +0 -17
  92. package/tests/lightbend/testdata/test10.conf +0 -11
  93. package/tests/lightbend/testdata/test11.conf +0 -7
  94. package/tests/lightbend/testdata/test12.conf +0 -43
  95. package/tests/lightbend/testdata/test13-application-override-substitutions.conf +0 -1
  96. package/tests/lightbend/testdata/test13-reference-bad-substitutions.conf +0 -1
  97. package/tests/lightbend/testdata/test13-reference-with-substitutions.conf +0 -2
  98. package/tests/lightbend/testdata/validate-invalid.conf +0 -30
  99. package/tests/lightbend/testdata/validate-reference.conf +0 -32
  100. package/tests/parse.test.ts +0 -44
  101. package/tests/parser.test.ts +0 -154
  102. package/tests/resolver.test.ts +0 -159
  103. package/tests/zod.test.ts +0 -57
  104. package/tsconfig.json +0 -16
  105. package/tsup.config.ts +0 -12
  106. package/vitest.config.ts +0 -7
@@ -1,55 +0,0 @@
1
- {
2
- "ints" : {
3
- "fortyTwo" : 42
4
- "fortyTwoAgain" : 42
5
- }
6
-
7
- "floats" : {
8
- "fortyTwoPointOne" : 42.1
9
- "fortyTwoPointOneAgain" : 42.1
10
- }
11
-
12
- "strings" : {
13
- "abcd" : "abcd"
14
- "abcdAgain" : "abcd"
15
- "a" : "a"
16
- "b" : "b"
17
- "c" : "c"
18
- "d" : "d"
19
- "concatenated" : "null bar 42 baz true 3.14 hi"
20
- }
21
-
22
- "arrays" : {
23
- "empty" : []
24
- "1" : [ 1 ]
25
- "12" : [1
26
- 2]
27
- "123" : [1
28
- 2
29
- 3 ]
30
- "ofString" : [
31
-
32
- "a"
33
- "b"
34
- "c"
35
-
36
- ]
37
- }
38
-
39
- "booleans" : {
40
-
41
- "true" : true
42
-
43
- "trueAgain" : true
44
-
45
- "false" : false
46
-
47
- "falseAgain" : false
48
-
49
- }
50
-
51
- "nulls" : {
52
- "null" : null
53
- "nullAgain" : null
54
- }
55
- }
@@ -1,40 +0,0 @@
1
- "ints" : {
2
- "fortyTwo" : 42,
3
- "fortyTwoAgain" : 42
4
- },
5
-
6
- "floats" : {
7
- "fortyTwoPointOne" : 42.1,
8
- "fortyTwoPointOneAgain" : 42.1
9
- },
10
-
11
- "strings" : {
12
- "abcd" : "abcd",
13
- "abcdAgain" : "abcd",
14
- "a" : "a",
15
- "b" : "b",
16
- "c" : "c",
17
- "d" : "d",
18
- "concatenated" : "null bar 42 baz true 3.14 hi"
19
- },
20
-
21
- "arrays" : {
22
- "empty" : [],
23
- "1" : [ 1 ],
24
- "12" : [1, 2],
25
- "123" : [1, 2, 3],
26
- "ofString" : [ "a", "b", "c" ]
27
- },
28
-
29
- "booleans" : {
30
- "true" : true,
31
- "trueAgain" : true,
32
- "false" : false,
33
- "falseAgain" : false
34
- },
35
-
36
- "nulls" : {
37
- "null" : null,
38
- "nullAgain" : null
39
- }
40
-
@@ -1 +0,0 @@
1
- {"ints":{"fortyTwo":42,"fortyTwoAgain":42},"floats":{"fortyTwoPointOne":42.1,"fortyTwoPointOneAgain":42.1},"strings":{"abcd":"abcd","abcdAgain":"abcd","a":"a","b":"b","c":"c","d":"d","concatenated":"null bar 42 baz true 3.14 hi"},"arrays":{"empty":[],"1":[1],"12":[1,2],"123":[1,2,3],"ofString":["a","b","c"]},"booleans":{"true":true,"trueAgain":true,"false":false,"falseAgain":false},"nulls":{"null":null,"nullAgain":null}}
@@ -1,44 +0,0 @@
1
- {
2
- "ints" {
3
- "fortyTwo" : 42,
4
- "fortyTwoAgain" : 42
5
- },
6
-
7
- "floats"
8
- {
9
- "fortyTwoPointOne" : 42.1,
10
- "fortyTwoPointOneAgain" : 42.1
11
- },
12
-
13
- "strings"
14
-
15
- {
16
- "abcd" : "abcd",
17
- "abcdAgain" : "abcd",
18
- "a" : "a",
19
- "b" : "b",
20
- "c" : "c",
21
- "d" : "d",
22
- "concatenated" : "null bar 42 baz true 3.14 hi"
23
- },
24
-
25
- "arrays" {
26
- "empty" : [],
27
- "1" : [ 1 ],
28
- "12" : [1, 2],
29
- "123" : [1, 2, 3],
30
- "ofString" : [ "a", "b", "c" ]
31
- },
32
-
33
- "booleans" {
34
- "true" : true,
35
- "trueAgain" : true,
36
- "false" : false,
37
- "falseAgain" : false
38
- },
39
-
40
- "nulls" {
41
- "null" : null,
42
- "nullAgain" : null
43
- }
44
- }
@@ -1,41 +0,0 @@
1
- {
2
- "ints" : {
3
- "fortyTwo" : 42,
4
- "fortyTwoAgain" : 42
5
- },
6
-
7
- "floats" : {
8
- "fortyTwoPointOne" : 42.1,
9
- "fortyTwoPointOneAgain" : 42.1
10
- },
11
-
12
- "strings" : {
13
- "abcd" : "abcd",
14
- "abcdAgain" : "abcd",
15
- "a" : "a",
16
- "b" : "b",
17
- "c" : "c",
18
- "d" : "d",
19
- "concatenated" : "null bar 42 baz true 3.14 hi"
20
- },
21
-
22
- "arrays" : {
23
- "empty" : [],
24
- "1" : [ 1 ],
25
- "12" : [1, 2],
26
- "123" : [1, 2, 3],
27
- "ofString" : [ "a", "b", "c" ]
28
- },
29
-
30
- "booleans" : {
31
- "true" : true,
32
- "trueAgain" : true,
33
- "false" : false,
34
- "falseAgain" : false
35
- },
36
-
37
- "nulls" : {
38
- "null" : null,
39
- "nullAgain" : null
40
- }
41
- }
@@ -1,29 +0,0 @@
1
- {
2
- ints.fortyTwo : 42,
3
- ints.fortyTwoAgain : 42,
4
-
5
- floats.fortyTwoPointOne : 42.1,
6
- floats.fortyTwoPointOneAgain : 42.1,
7
-
8
- strings.abcd : "abcd",
9
- strings.abcdAgain : "abcd",
10
- strings.a : "a",
11
- strings.b : "b",
12
- strings.c : "c",
13
- strings.d : "d",
14
- strings.concatenated : "null bar 42 baz true 3.14 hi",
15
-
16
- arrays."empty" : [],
17
- arrays."1" : [ 1 ],
18
- arrays.12 : [1, 2],
19
- arrays.123 : [1, 2, 3],
20
- arrays.ofString : [ "a", "b", "c" ],
21
-
22
- booleans.true : true,
23
- booleans.trueAgain : true,
24
- booleans.false : false,
25
- booleans.falseAgain : false,
26
-
27
- nulls.null : null,
28
- nulls.nullAgain : null
29
- }
@@ -1,37 +0,0 @@
1
- # this file is in a no-braces java properties style,
2
- # but it's a .conf file with json-style escaping,
3
- # not a Java properties file.
4
- # lots of playing with whitespace and commas
5
- # in here to test various cases; don't copy
6
- # this as exemplary, it has gratuitously
7
- # stupid formatting.
8
- ints.fortyTwo=42
9
- ints.fortyTwoAgain = 42 // whitespace ignored around the =
10
- floats.fortyTwoPointOne=42.1
11
- floats.fortyTwoPointOneAgain:42.1 // colon is fine too
12
- strings.abcd=abcd
13
- strings.abcdAgain : "abcd", // colon and quotes and comma!
14
- strings.a=a
15
- strings.b=b
16
- strings.c="c",
17
- strings.d:"d"
18
- strings.concatenated=null bar 42 baz true 3.14 hi # this gets squished to a string
19
- arrays.empty=[]
20
- arrays.1 : [ 1 ]
21
- # it's allowed to omit commas in arrays if you have newlines
22
- arrays.12 = [
23
- 1
24
- 2
25
- ]
26
- arrays.123 = [1,
27
- 2
28
- 3]
29
- arrays.ofString = [ "a", "b", "c" ]
30
- booleans.true=true
31
- booleans.trueAgain=${booleans.true}
32
- booleans.false=false
33
- # you could quote keys, though here it's pointless
34
- # since the key contains no special characters
35
- "booleans"."falseAgain" : ${booleans.false},
36
- nulls.null=${nulls.nullAgain}
37
- nulls.nullAgain=null
@@ -1,41 +0,0 @@
1
- {
2
- "ints" : {
3
- "fortyTwo" : 42,
4
- "fortyTwoAgain" : ${ints.fortyTwo}
5
- },
6
-
7
- "floats" : {
8
- "fortyTwoPointOne" : 42.1,
9
- "fortyTwoPointOneAgain" : ${floats.fortyTwoPointOne}
10
- },
11
-
12
- "strings" : {
13
- "abcd" : "abcd",
14
- "abcdAgain" : ${strings.a}${strings.b}${strings.c}${strings.d},
15
- "a" : "a",
16
- "b" : "b",
17
- "c" : "c",
18
- "d" : "d",
19
- "concatenated" : "null bar 42 baz true 3.14 hi"
20
- },
21
-
22
- "arrays" : {
23
- "empty" : [],
24
- "1" : [ 1 ],
25
- "12" : [1, 2],
26
- "123" : [1, 2, 3],
27
- "ofString" : [ ${strings.a}, ${strings.b}, ${strings.c} ]
28
- },
29
-
30
- "booleans" : {
31
- "true" : true,
32
- "trueAgain" : ${booleans.true},
33
- "false" : false,
34
- "falseAgain" : ${booleans.false}
35
- },
36
-
37
- "nulls" : {
38
- "null" : null,
39
- "nullAgain" : ${nulls.null}
40
- }
41
- }
@@ -1,41 +0,0 @@
1
- {
2
- "ints" : {
3
- "fortyTwo" : 42,
4
- "fortyTwoAgain" : 42
5
- },
6
-
7
- "floats" : {
8
- "fortyTwoPointOne" : 42.1,
9
- "fortyTwoPointOneAgain" : 42.1
10
- },
11
-
12
- "strings" : {
13
- "abcd" : abcd,
14
- "abcdAgain" : abcd,
15
- "a" : a,
16
- "b" : b,
17
- "c" : c,
18
- "d" : d,
19
- "concatenated" : null bar 42 "baz" true 3.14 hi
20
- },
21
-
22
- "arrays" : {
23
- "empty" : [],
24
- "1" : [ 1 ],
25
- "12" : [1, 2],
26
- "123" : [1, 2, 3],
27
- "ofString" : [a, b, c]
28
- },
29
-
30
- "booleans" : {
31
- "true" : true,
32
- "trueAgain" : true,
33
- "false" : false,
34
- "falseAgain" : false
35
- },
36
-
37
- "nulls" : {
38
- "null" : null,
39
- "nullAgain" : null
40
- }
41
- }
@@ -1,17 +0,0 @@
1
- {
2
- "a" : {
3
- "s" : 303,
4
- "b" : {
5
- "r" : 302,
6
- "c" : {
7
- "q" : 301,
8
- "d" : {
9
- "e" : 401,
10
- "a" : 1,
11
- "b" : 2,
12
- "z" : 102
13
- }
14
- }
15
- }
16
- }
17
- }
@@ -1,32 +0,0 @@
1
- {
2
- a.b.c.d
3
- : { "a" : 1, "z" : 101 },
4
- a.b.c
5
- : { "q" : 301 },
6
- a.b :
7
-
8
- { "r" : 302 },
9
-
10
- a
11
-
12
- : { "s" : 303 },
13
-
14
- a.b.c.d
15
-
16
-
17
- : { "b" : 2, "z" : 102 },
18
-
19
-
20
- a.b.c.d.e
21
-
22
- : 400,
23
-
24
-
25
- a.b.c.d.e
26
-
27
- :
28
-
29
-
30
- 401
31
-
32
- }
@@ -1,9 +0,0 @@
1
- {
2
- a.b.c.d : { "a" : 1, "z" : 101 },
3
- a.b.c : { "q" : 301 },
4
- a.b : { "r" : 302 },
5
- a : { "s" : 303 },
6
- a.b.c.d : { "b" : 2, "z" : 102 },
7
- a.b.c.d.e : 400,
8
- a.b.c.d.e : 401
9
- }
@@ -1,7 +0,0 @@
1
- letters {
2
- include "letters/a.conf"
3
- include "letters/b.json"
4
- include "letters/c"
5
- }
6
-
7
- include "root/foo.conf"
@@ -1,6 +0,0 @@
1
- numbers {
2
- include "numbers/1.conf"
3
- include "numbers/2"
4
- }
5
-
6
- a=ok
@@ -1,3 +0,0 @@
1
- {
2
- "b" : 507
3
- }
@@ -1,2 +0,0 @@
1
- c.fromConf=89
2
-
@@ -1 +0,0 @@
1
- c.fromProp=true
@@ -1,15 +0,0 @@
1
- {
2
- "letters" : {
3
- "numbers" : {
4
- "2" : "abcd",
5
- "1" : 1
6
- },
7
- "a" : "ok",
8
- "b" : 507,
9
- "c" : {
10
- "fromConf" : 89,
11
- "fromProp" : "true"
12
- }
13
- },
14
- "root" : "this gets included at the root"
15
- }
@@ -1 +0,0 @@
1
- root="this gets included at the root"
@@ -1,4 +0,0 @@
1
- a=${?NOT_DEFINED_ANYWHERE}
2
- b=${?also.not.defined.anywhere}
3
- c=${?a}
4
-
@@ -1,16 +0,0 @@
1
- {
2
- "a" : "hello",
3
- "b" : "hello\nworld",
4
- "b1" : "hello\\nworld",
5
- "c" : " \n hello \n world \n ",
6
- "d" : " \"hello\" ",
7
- "e" : "\"hello\"",
8
- "f1" : "hello\"",
9
- "f2" : "hello\"\"",
10
- "f3" : "hello\"\"\"",
11
- "f4" : "hello\"\"\"\"",
12
- "g1" : "\"hello",
13
- "g2" : "\"\"hello",
14
- "h" : "\"\"",
15
- "i" : "foo\"\"bar"
16
- }
@@ -1,20 +0,0 @@
1
- {
2
- a : """hello""",
3
- b : """hello
4
- world""",
5
- b1 : """hello\nworld""",
6
- c : """
7
- hello
8
- world
9
- """,
10
- d : """ "hello" """,
11
- e : """"hello"""",
12
- f1 : """hello"""",
13
- f2 : """hello""""",
14
- f3 : """hello"""""",
15
- f4 : """hello""""""",
16
- g1 : """"hello""",
17
- g2 : """""hello""",
18
- h : """""""",
19
- i : """foo""bar"""
20
- }
@@ -1,5 +0,0 @@
1
- base=41
2
- # included without file() in a subdir
3
- include "subdir/foo.conf"
4
- # included using file() in a subdir
5
- include file("subdir/baz.conf")
@@ -1,5 +0,0 @@
1
- // The {} inside the [] is needed because
2
- // just [ include ] means an array with the
3
- // string "include" in it.
4
- a = [ { include "test01.conf" } ]
5
-
@@ -1,2 +0,0 @@
1
- # this is just a file on the classpath that we ensure we can load
2
- onclasspath=42
@@ -1 +0,0 @@
1
- bar-file=44
@@ -1 +0,0 @@
1
- bar=43
@@ -1 +0,0 @@
1
- baz=45
@@ -1,5 +0,0 @@
1
- foo=42
2
- # included without file()
3
- include "bar.conf"
4
- # included using file()
5
- include file("bar-file.conf")
@@ -1,96 +0,0 @@
1
- {
2
- "ints" : {
3
- "fortyTwo" : 42,
4
- "fortyTwoAgain" : ${ints.fortyTwo}
5
- },
6
-
7
- "floats" : {
8
- "fortyTwoPointOne" : 42.1,
9
- "fortyTwoPointOneAgain" : ${floats.fortyTwoPointOne},
10
- "pointThirtyThree": .33
11
- "pointThirtyThreeAgain": ${floats.pointThirtyThree}
12
- },
13
-
14
- "strings" : {
15
- "abcd" : "abcd",
16
- "abcdAgain" : ${strings.a}${strings.b}${strings.c}${strings.d},
17
- "a" : "a",
18
- "b" : "b",
19
- "c" : "c",
20
- "d" : "d",
21
- "concatenated" : null bar 42 baz true 3.14 hi,
22
- "double" : "3.14",
23
- "doubleStartingWithDot": ".33",
24
- "number" : "57",
25
- "null" : "null",
26
- "true" : "true",
27
- "yes" : "yes",
28
- "false" : "false",
29
- "no" : "no"
30
- },
31
-
32
- "arrays" : {
33
- "empty" : [],
34
- "ofInt" : [1, 2, 3],
35
- "ofString" : [ ${strings.a}, ${strings.b}, ${strings.c} ],
36
- "ofDouble" : [3.14, 4.14, 5.14],
37
- "ofNull" : [null, null, null],
38
- "ofBoolean" : [true, false],
39
- "ofArray" : [${arrays.ofString}, ${arrays.ofString}, ${arrays.ofString}],
40
- "ofObject" : [${ints}, ${booleans}, ${strings}],
41
- "firstElementNotASubst" : [ "a", ${strings.b} ]
42
- },
43
-
44
- "booleans" : {
45
- "true" : true,
46
- "trueAgain" : ${booleans.true},
47
- "false" : false,
48
- "falseAgain" : ${booleans.false}
49
- },
50
-
51
- "nulls" : {
52
- "null" : null,
53
- "nullAgain" : ${nulls.null}
54
- },
55
-
56
- "durations" : {
57
- "second" : 1s,
58
- "secondsList" : [1s,2seconds,3 s, 4000],
59
- "secondAsNumber" : 1000,
60
- "halfSecond" : 0.5s,
61
- "millis" : 1 milli,
62
- "micros" : 2000 micros,
63
- "largeNanos" : 4878955355435272204ns,
64
- "plusLargeNanos" : "+4878955355435272204ns",
65
- "minusLargeNanos" : -4878955355435272204ns
66
- },
67
-
68
- "periods" : {
69
- "day" : 1d,
70
- "dayAsNumber": 2,
71
- "week": 3 weeks,
72
- "month": 5 mo,
73
- "year": 8y
74
- },
75
-
76
- "memsizes" : {
77
- "meg" : 1M,
78
- "megsList" : [1M, 1024K, 1048576],
79
- "megAsNumber" : 1048576,
80
- "halfMeg" : 0.5M
81
- "yottabyte" : 1YB
82
- "yottabyteList" : [1YB, 0.5YB]
83
- },
84
-
85
- "system" : {
86
- "javaversion" : ${?java.version},
87
- "userhome" : ${?user.home},
88
- "home" : ${?HOME},
89
- "pwd" : ${?PWD},
90
- "shell" : ${?SHELL},
91
- "lang" : ${?LANG},
92
- "path" : ${?PATH},
93
- "not_here" : ${?NOT_HERE},
94
- "concatenated" : Your Java version is ${?system.javaversion} and your user.home is ${?system.userhome}
95
- }
96
- }
@@ -1,4 +0,0 @@
1
- {
2
- "fromJson1" : 1,
3
- "fromJsonA" : "A"
4
- }
@@ -1,5 +0,0 @@
1
- # .properties file
2
- fromProps.abc=abc
3
- fromProps.one=1
4
- fromProps.bool=true
5
- fromProps.specialChars=hello^^
@@ -1,13 +0,0 @@
1
- {
2
- "" : { "" : { "" : 42 } },
3
- "42_a" : ${""."".""},
4
- "42_b" : ${ "".""."" },
5
- "a" : { "b" : { "c" : 57 } },
6
- "57_a" : ${a.b.c},
7
- "57_b" : ${"a"."b"."c"},
8
- "a.b.c" : 103,
9
- "103_a" : ${"a.b.c"},
10
- "a-c" : 259,
11
- "a_c" : 260,
12
- "-" : 261
13
- }
@@ -1,9 +0,0 @@
1
- # this file is used to include in test03.conf
2
-
3
- foo="This is in the included file"
4
-
5
- # foo is in this file, so "a" should always be our local ${foo}
6
- a=${foo}
7
-
8
- # bar is only in the parent file, so "b" should always be the root ${bar}
9
- b=${bar}