@contractkit/openapi-to-ck 0.7.1

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 (97) hide show
  1. package/.turbo/turbo-build$colon$ci.log +40 -0
  2. package/.turbo/turbo-build.log +20 -0
  3. package/.turbo/turbo-format.log +36 -0
  4. package/.turbo/turbo-test$colon$ci.log +77 -0
  5. package/.turbo/turbo-test.log +19 -0
  6. package/CHANGELOG.md +108 -0
  7. package/coverage/base.css +224 -0
  8. package/coverage/block-navigation.js +87 -0
  9. package/coverage/clover.xml +878 -0
  10. package/coverage/coverage-final.json +10 -0
  11. package/coverage/favicon.png +0 -0
  12. package/coverage/index.html +131 -0
  13. package/coverage/prettify.css +1 -0
  14. package/coverage/prettify.js +2 -0
  15. package/coverage/sort-arrow-sprite.png +0 -0
  16. package/coverage/sorter.js +210 -0
  17. package/coverage/src/ast-to-ck.ts.html +1336 -0
  18. package/coverage/src/circular-refs.ts.html +298 -0
  19. package/coverage/src/convert.ts.html +535 -0
  20. package/coverage/src/index.html +221 -0
  21. package/coverage/src/normalize.ts.html +1162 -0
  22. package/coverage/src/paths-to-ast.ts.html +1165 -0
  23. package/coverage/src/schema-to-ast.ts.html +1378 -0
  24. package/coverage/src/tag-splitter.ts.html +685 -0
  25. package/coverage/src/warnings.ts.html +154 -0
  26. package/coverage/tests/helpers.ts.html +559 -0
  27. package/coverage/tests/index.html +116 -0
  28. package/dist/ast-to-ck.d.ts +8 -0
  29. package/dist/ast-to-ck.d.ts.map +1 -0
  30. package/dist/chunk-CQGFQKBJ.js +1681 -0
  31. package/dist/chunk-CQGFQKBJ.js.map +1 -0
  32. package/dist/chunk-FNUU2DWY.js +1779 -0
  33. package/dist/chunk-FNUU2DWY.js.map +1 -0
  34. package/dist/chunk-LD2HAFZG.js +1681 -0
  35. package/dist/chunk-LD2HAFZG.js.map +1 -0
  36. package/dist/chunk-LQ2B3EJG.js +1777 -0
  37. package/dist/chunk-LQ2B3EJG.js.map +1 -0
  38. package/dist/chunk-M6JA6WY2.js +1714 -0
  39. package/dist/chunk-M6JA6WY2.js.map +1 -0
  40. package/dist/chunk-MQTKLXTN.js +1681 -0
  41. package/dist/chunk-MQTKLXTN.js.map +1 -0
  42. package/dist/chunk-NV7RGUUS.js +1699 -0
  43. package/dist/chunk-NV7RGUUS.js.map +1 -0
  44. package/dist/chunk-REM25FDE.js +1779 -0
  45. package/dist/chunk-REM25FDE.js.map +1 -0
  46. package/dist/chunk-SNW7GJOM.js +1681 -0
  47. package/dist/chunk-SNW7GJOM.js.map +1 -0
  48. package/dist/chunk-UWOSCBRG.js +1681 -0
  49. package/dist/chunk-UWOSCBRG.js.map +1 -0
  50. package/dist/chunk-YP7FWA4H.js +1779 -0
  51. package/dist/chunk-YP7FWA4H.js.map +1 -0
  52. package/dist/circular-refs.d.ts +12 -0
  53. package/dist/circular-refs.d.ts.map +1 -0
  54. package/dist/convert.d.ts +6 -0
  55. package/dist/convert.d.ts.map +1 -0
  56. package/dist/index.d.ts +9 -0
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +29 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/normalize.d.ts +12 -0
  61. package/dist/normalize.d.ts.map +1 -0
  62. package/dist/paths-to-ast.d.ts +22 -0
  63. package/dist/paths-to-ast.d.ts.map +1 -0
  64. package/dist/plugin.d.ts +4 -0
  65. package/dist/plugin.d.ts.map +1 -0
  66. package/dist/plugin.js +86 -0
  67. package/dist/plugin.js.map +1 -0
  68. package/dist/schema-to-ast.d.ts +39 -0
  69. package/dist/schema-to-ast.d.ts.map +1 -0
  70. package/dist/tag-splitter.d.ts +16 -0
  71. package/dist/tag-splitter.d.ts.map +1 -0
  72. package/dist/types.d.ts +137 -0
  73. package/dist/types.d.ts.map +1 -0
  74. package/dist/warnings.d.ts +10 -0
  75. package/dist/warnings.d.ts.map +1 -0
  76. package/eslint.config.js +6 -0
  77. package/package.json +46 -0
  78. package/src/ast-to-ck.ts +417 -0
  79. package/src/circular-refs.ts +71 -0
  80. package/src/convert.ts +150 -0
  81. package/src/index.ts +8 -0
  82. package/src/normalize.ts +359 -0
  83. package/src/paths-to-ast.ts +360 -0
  84. package/src/plugin.ts +89 -0
  85. package/src/schema-to-ast.ts +431 -0
  86. package/src/tag-splitter.ts +200 -0
  87. package/src/types.ts +133 -0
  88. package/src/warnings.ts +23 -0
  89. package/tests/ast-to-ck.test.ts +425 -0
  90. package/tests/circular-refs.test.ts +71 -0
  91. package/tests/convert.test.ts +330 -0
  92. package/tests/fixtures/petstore-3.1.json +187 -0
  93. package/tests/helpers.ts +158 -0
  94. package/tests/normalize.test.ts +114 -0
  95. package/tests/schema-to-ast.test.ts +341 -0
  96. package/tests/tag-splitter.test.ts +75 -0
  97. package/tsconfig.json +9 -0
@@ -0,0 +1,40 @@
1
+
2
+ 
3
+ > @contractkit/openapi-to-ck@0.7.0 build:ci /Users/robert/projects/contractkit/packages/openapi-to-ck
4
+ > eslint --max-warnings=0 && pnpm run build
5
+
6
+ =============
7
+
8
+
9
+ WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.
10
+
11
+
12
+ * @typescript-eslint/typescript-estree version: 8.57.2
13
+ * Supported TypeScript versions: >=4.8.4 <6.0.0
14
+ * Your TypeScript version: 6.0.2
15
+
16
+
17
+ Please only submit bug reports when using the officially supported version.
18
+
19
+
20
+ =============
21
+
22
+ > @contractkit/openapi-to-ck@0.7.0 build /Users/robert/projects/contractkit/packages/openapi-to-ck
23
+ > tsup src/index.ts src/plugin.ts --format esm --sourcemap --dts && tsc --emitDeclarationOnly --declaration
24
+
25
+ CLI Building entry: src/index.ts, src/plugin.ts
26
+ CLI Using tsconfig: tsconfig.json
27
+ CLI tsup v8.5.1
28
+ CLI Target: esnext
29
+ ESM Build start
30
+ ESM dist/index.js 498.00 B
31
+ ESM dist/chunk-YP7FWA4H.js 50.65 KB
32
+ ESM dist/plugin.js 2.51 KB
33
+ ESM dist/index.js.map 71.00 B
34
+ ESM dist/chunk-YP7FWA4H.js.map 117.23 KB
35
+ ESM dist/plugin.js.map 4.95 KB
36
+ ESM ⚡️ Build success in 71ms
37
+ DTS Build start
38
+ DTS ⚡️ Build success in 1043ms
39
+ DTS dist/index.d.ts 8.29 KB
40
+ DTS dist/plugin.d.ts 128.00 B
@@ -0,0 +1,20 @@
1
+
2
+ > @contractkit/openapi-to-ck@0.7.0 build /Users/robert/projects/contractkit/packages/openapi-to-ck
3
+ > tsup src/index.ts src/plugin.ts --format esm --sourcemap --dts && tsc --emitDeclarationOnly --declaration
4
+
5
+ CLI Building entry: src/index.ts, src/plugin.ts
6
+ CLI Using tsconfig: tsconfig.json
7
+ CLI tsup v8.5.1
8
+ CLI Target: esnext
9
+ ESM Build start
10
+ ESM dist/chunk-YP7FWA4H.js 50.65 KB
11
+ ESM dist/index.js 498.00 B
12
+ ESM dist/plugin.js 2.51 KB
13
+ ESM dist/chunk-YP7FWA4H.js.map 117.23 KB
14
+ ESM dist/index.js.map 71.00 B
15
+ ESM dist/plugin.js.map 4.95 KB
16
+ ESM ⚡️ Build success in 49ms
17
+ DTS Build start
18
+ DTS ⚡️ Build success in 1120ms
19
+ DTS dist/index.d.ts 8.29 KB
20
+ DTS dist/plugin.d.ts 128.00 B
@@ -0,0 +1,36 @@
1
+
2
+ 
3
+ > @maroonedsoftware/openapi-to-ck@0.1.0 format /Users/robert/projects/contractkit/packages/openapi-to-ck
4
+ > prettier --write .
5
+
6
+ .turbo/turbo-build.log.turbo/turbo-format.log.turbo/turbo-test.logdist/ast-to-ck.d.tsdist/ast-to-ck.d.ts 33ms
7
+ dist/ast-to-ck.d.ts.mapdist/circular-refs.d.tsdist/circular-refs.d.ts 2ms
8
+ dist/circular-refs.d.ts.mapdist/convert.d.tsdist/convert.d.ts 1ms
9
+ dist/convert.d.ts.mapdist/index.d.tsdist/index.d.ts 2ms
10
+ dist/index.d.ts.mapdist/index.jsdist/index.js 65ms
11
+ dist/index.js.mapdist/normalize.d.tsdist/normalize.d.ts 1ms
12
+ dist/normalize.d.ts.mapdist/paths-to-ast.d.tsdist/paths-to-ast.d.ts 2ms
13
+ dist/paths-to-ast.d.ts.mapdist/schema-to-ast.d.tsdist/schema-to-ast.d.ts 3ms
14
+ dist/schema-to-ast.d.ts.mapdist/tag-splitter.d.tsdist/tag-splitter.d.ts 1ms
15
+ dist/tag-splitter.d.ts.mapdist/types.d.tsdist/types.d.ts 4ms
16
+ dist/types.d.ts.mapdist/warnings.d.tsdist/warnings.d.ts 2ms
17
+ dist/warnings.d.ts.mappackage.jsonpackage.json 2ms
18
+ src/ast-to-ck.tssrc/ast-to-ck.ts 23ms
19
+ src/circular-refs.tssrc/circular-refs.ts 3ms
20
+ src/convert.tssrc/convert.ts 6ms
21
+ src/index.tssrc/index.ts 1ms (unchanged)
22
+ src/normalize.tssrc/normalize.ts 17ms
23
+ src/paths-to-ast.tssrc/paths-to-ast.ts 9ms
24
+ src/schema-to-ast.tssrc/schema-to-ast.ts 19ms
25
+ src/tag-splitter.tssrc/tag-splitter.ts 5ms
26
+ src/types.tssrc/types.ts 4ms
27
+ src/warnings.tssrc/warnings.ts 2ms
28
+ tests/ast-to-ck.test.tstests/ast-to-ck.test.ts 14ms
29
+ tests/circular-refs.test.tstests/circular-refs.test.ts 2ms
30
+ tests/convert.test.tstests/convert.test.ts 10ms
31
+ tests/fixtures/petstore-3.1.jsontests/fixtures/petstore-3.1.json 2ms
32
+ tests/helpers.tstests/helpers.ts 5ms
33
+ tests/normalize.test.tstests/normalize.test.ts 5ms
34
+ tests/schema-to-ast.test.tstests/schema-to-ast.test.ts 15ms
35
+ tests/tag-splitter.test.tstests/tag-splitter.test.ts 4ms
36
+ tsconfig.jsontsconfig.json 1ms
@@ -0,0 +1,77 @@
1
+
2
+ 
3
+ > @contractkit/openapi-to-ck@0.7.0 test:ci /Users/robert/projects/contractkit/packages/openapi-to-ck
4
+ > vitest run --coverage
5
+
6
+ [?25l
7
+  RUN  v4.1.5 /Users/robert/projects/contractkit/packages/openapi-to-ck
8
+ Coverage enabled with v8
9
+
10
+ [?2026h
11
+  ❯ tests/convert.test.ts [queued]
12
+
13
+  Test Files 0 passed (6)
14
+  Tests 0 passed (0)
15
+  Start at 08:51:09
16
+  Duration 205ms
17
+ [?2026l[?2026h
18
+  ❯ tests/convert.test.ts [queued]
19
+  ❯ tests/normalize.test.ts [queued]
20
+  ❯ tests/schema-to-ast.test.ts [queued]
21
+  ❯ tests/tag-splitter.test.ts [queued]
22
+
23
+  Test Files 0 passed (6)
24
+  Tests 0 passed (0)
25
+  Start at 08:51:09
26
+  Duration 442ms
27
+ [?2026l[?2026h ✓ tests/circular-refs.test.ts (8 tests) 3ms
28
+
29
+  ❯ tests/ast-to-ck.test.ts [queued]
30
+  ❯ tests/convert.test.ts [queued]
31
+  ❯ tests/normalize.test.ts [queued]
32
+  ❯ tests/schema-to-ast.test.ts [queued]
33
+  ❯ tests/tag-splitter.test.ts 0/5
34
+
35
+  Test Files 1 passed (6)
36
+  Tests 8 passed (13)
37
+  Start at 08:51:09
38
+  Duration 562ms
39
+ [?2026l[?2026h ✓ tests/normalize.test.ts (6 tests) 4ms
40
+ ✓ tests/tag-splitter.test.ts (5 tests) 9ms
41
+ ✓ tests/schema-to-ast.test.ts (36 tests) 9ms
42
+ ✓ tests/ast-to-ck.test.ts (35 tests) 5ms
43
+
44
+
45
+
46
+
47
+  ❯ tests/convert.test.ts 0/16
48
+
49
+  Test Files 5 passed (6)
50
+  Tests 90 passed (106)
51
+  Start at 08:51:09
52
+  Duration 884ms
53
+ [?2026l ✓ tests/convert.test.ts (16 tests) 17ms
54
+
55
+  Test Files  6 passed (6)
56
+  Tests  106 passed (106)
57
+  Start at  08:51:09
58
+  Duration  1.13s (transform 549ms, setup 0ms, import 1.57s, tests 46ms, environment 0ms)
59
+
60
+  % Coverage report from v8
61
+ -------------------|---------|----------|---------|---------|-------------------------------------------------------------
62
+ File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
63
+ -------------------|---------|----------|---------|---------|-------------------------------------------------------------
64
+ All files  |  80.49 |  70.11 |  94.69 |  82.95 |  
65
+  src  |  80.24 |  70.39 |  93.47 |  82.57 |  
66
+  ast-to-ck.ts  |  90.65 |  82.01 |  100 |  91.91 | 82-91,168,263,295-296,311,344-345,355,415 
67
+  circular-refs.ts |  100 |  90 |  100 |  100 | 20-23 
68
+  convert.ts  |  77.19 |  87.5 |  80 |  77.77 | 83-98,112-117 
69
+  normalize.ts  |  62.96 |  56.6 |  80 |  63.33 | 79,121-163,237-255,270-271,280-309,346,350,358 
70
+  paths-to-ast.ts  |  81.2 |  64.48 |  100 |  85.12 | 100,125,130,140-141,149,192,206,247,277,283,320-332 
71
+  schema-to-ast.ts |  84.69 |  75 |  95.65 |  87.65 | 128-129,151,159,173,196-197,205-206,311-314,353-360,396-404
72
+  tag-splitter.ts  |  70 |  57.14 |  81.81 |  76.47 | 63-71,137-138,141-146,162-163,171-178 
73
+  warnings.ts  |  100 |  100 |  100 |  100 |  
74
+  tests  |  86.48 |  60 |  100 |  93.33 |  
75
+  helpers.ts  |  86.48 |  60 |  100 |  93.33 | 138-139 
76
+ -------------------|---------|----------|---------|---------|-------------------------------------------------------------
77
+ [?25h
@@ -0,0 +1,19 @@
1
+
2
+ > @contractkit/openapi-to-ck@0.7.0 test /Users/robert/projects/contractkit/packages/openapi-to-ck
3
+ > vitest run
4
+
5
+
6
+  RUN  v4.1.5 /Users/robert/projects/contractkit/packages/openapi-to-ck
7
+
8
+ ✓ tests/circular-refs.test.ts (8 tests) 3ms
9
+ ✓ tests/normalize.test.ts (6 tests) 3ms
10
+ ✓ tests/tag-splitter.test.ts (5 tests) 3ms
11
+ ✓ tests/schema-to-ast.test.ts (36 tests) 5ms
12
+ ✓ tests/ast-to-ck.test.ts (35 tests) 5ms
13
+ ✓ tests/convert.test.ts (16 tests) 9ms
14
+
15
+  Test Files  6 passed (6)
16
+  Tests  106 passed (106)
17
+  Start at  08:51:34
18
+  Duration  336ms (transform 551ms, setup 0ms, import 701ms, tests 26ms, environment 0ms)
19
+
package/CHANGELOG.md ADDED
@@ -0,0 +1,108 @@
1
+ # @contractkit/openapi-to-ck
2
+
3
+ ## 0.7.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 9269093: chore: update dependencies across multiple projects
8
+
9
+ This commit updates various dependencies in the package.json files for several projects, including:
10
+ - Upgraded `@changesets/cli`, `@types/node`, `@vitest/coverage-v8`, `eslint`, `prettier`, `turbo`, and `typescript` to their latest versions.
11
+ - Updated `@types/vscode`, `@vscode/vsce`, and `esbuild` in the vscode extension.
12
+ - Adjusted `@scalar/openapi-parser` and `yaml` in the openapi-to-ck package.
13
+ - Enhanced ESLint and TypeScript configurations in the config-eslint package.
14
+
15
+ These updates improve compatibility and maintainability across the codebase.
16
+
17
+ - Updated dependencies [c9f2166]
18
+ - @contractkit/core@0.11.0
19
+
20
+ ## 0.7.0
21
+
22
+ ### Minor Changes
23
+
24
+ - bbee232: prep for public release
25
+
26
+ ### Patch Changes
27
+
28
+ - Updated dependencies [bbee232]
29
+ - @contractkit/core@0.10.0
30
+
31
+ ## 0.6.1
32
+
33
+ ### Patch Changes
34
+
35
+ - Updated dependencies [d13614c]
36
+ - @maroonedsoftware/contractkit@0.9.0
37
+
38
+ ## 0.6.0
39
+
40
+ ### Minor Changes
41
+
42
+ - 888ded5: Enhance contract DSL with multi-base inheritance support and override modifier. This update introduces the ability to declare multiple base contracts, along with validation rules for field conflicts across bases. The `override` modifier is now required for redeclaring conflicting fields, and the documentation has been updated to reflect these changes. Tests have been added to ensure correct behavior for inheritance and modifier usage.
43
+
44
+ ### Patch Changes
45
+
46
+ - Updated dependencies [353aa10]
47
+ - Updated dependencies [888ded5]
48
+ - @maroonedsoftware/contractkit@0.8.0
49
+
50
+ ## 0.5.0
51
+
52
+ ### Minor Changes
53
+
54
+ - 9b13e28: Implement support for lifting response headers in OpenAPI 3.x and Swagger 2.0. Enhanced serialization of responses to include headers, updated normalization functions, and added tests to verify correct handling of response headers in generated output.
55
+
56
+ ## 0.4.2
57
+
58
+ ### Patch Changes
59
+
60
+ - Updated dependencies [16ac3a7]
61
+ - @maroonedsoftware/contractkit@0.7.0
62
+
63
+ ## 0.4.1
64
+
65
+ ### Patch Changes
66
+
67
+ - Updated dependencies [d3ea773]
68
+ - @maroonedsoftware/contractkit@0.6.0
69
+
70
+ ## 0.4.0
71
+
72
+ ### Minor Changes
73
+
74
+ - 181dadb: Refactor request handling to support multiple content types in operations. Updated OpRequestNode to accept an array of bodies, modified related functions and tests to accommodate multi-MIME requests, and enhanced validation for nested structures in URL-encoded bodies. Improved code generation across various plugins to handle new request structure.
75
+
76
+ ### Patch Changes
77
+
78
+ - Updated dependencies [181dadb]
79
+ - @maroonedsoftware/contractkit@0.5.0
80
+
81
+ ## 0.3.0
82
+
83
+ ### Minor Changes
84
+
85
+ - ada5f84: Implement discriminated unions in ContractKit with validation and code generation support. Update README and tests to reflect new functionality, including parsing, rendering, and OpenAPI generation for discriminated unions.
86
+
87
+ ### Patch Changes
88
+
89
+ - Updated dependencies [ada5f84]
90
+ - @maroonedsoftware/contractkit@0.4.0
91
+
92
+ ## 0.2.1
93
+
94
+ ### Patch Changes
95
+
96
+ - Updated dependencies [f396a68]
97
+ - @maroonedsoftware/contractkit@0.3.0
98
+
99
+ ## 0.2.0
100
+
101
+ ### Minor Changes
102
+
103
+ - 6aa2aa0: build fix
104
+
105
+ ### Patch Changes
106
+
107
+ - Updated dependencies [db7345b]
108
+ - @contractkit/core@0.2.0
@@ -0,0 +1,224 @@
1
+ body, html {
2
+ margin:0; padding: 0;
3
+ height: 100%;
4
+ }
5
+ body {
6
+ font-family: Helvetica Neue, Helvetica, Arial;
7
+ font-size: 14px;
8
+ color:#333;
9
+ }
10
+ .small { font-size: 12px; }
11
+ *, *:after, *:before {
12
+ -webkit-box-sizing:border-box;
13
+ -moz-box-sizing:border-box;
14
+ box-sizing:border-box;
15
+ }
16
+ h1 { font-size: 20px; margin: 0;}
17
+ h2 { font-size: 14px; }
18
+ pre {
19
+ font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
20
+ margin: 0;
21
+ padding: 0;
22
+ -moz-tab-size: 2;
23
+ -o-tab-size: 2;
24
+ tab-size: 2;
25
+ }
26
+ a { color:#0074D9; text-decoration:none; }
27
+ a:hover { text-decoration:underline; }
28
+ .strong { font-weight: bold; }
29
+ .space-top1 { padding: 10px 0 0 0; }
30
+ .pad2y { padding: 20px 0; }
31
+ .pad1y { padding: 10px 0; }
32
+ .pad2x { padding: 0 20px; }
33
+ .pad2 { padding: 20px; }
34
+ .pad1 { padding: 10px; }
35
+ .space-left2 { padding-left:55px; }
36
+ .space-right2 { padding-right:20px; }
37
+ .center { text-align:center; }
38
+ .clearfix { display:block; }
39
+ .clearfix:after {
40
+ content:'';
41
+ display:block;
42
+ height:0;
43
+ clear:both;
44
+ visibility:hidden;
45
+ }
46
+ .fl { float: left; }
47
+ @media only screen and (max-width:640px) {
48
+ .col3 { width:100%; max-width:100%; }
49
+ .hide-mobile { display:none!important; }
50
+ }
51
+
52
+ .quiet {
53
+ color: #7f7f7f;
54
+ color: rgba(0,0,0,0.5);
55
+ }
56
+ .quiet a { opacity: 0.7; }
57
+
58
+ .fraction {
59
+ font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
60
+ font-size: 10px;
61
+ color: #555;
62
+ background: #E8E8E8;
63
+ padding: 4px 5px;
64
+ border-radius: 3px;
65
+ vertical-align: middle;
66
+ }
67
+
68
+ div.path a:link, div.path a:visited { color: #333; }
69
+ table.coverage {
70
+ border-collapse: collapse;
71
+ margin: 10px 0 0 0;
72
+ padding: 0;
73
+ }
74
+
75
+ table.coverage td {
76
+ margin: 0;
77
+ padding: 0;
78
+ vertical-align: top;
79
+ }
80
+ table.coverage td.line-count {
81
+ text-align: right;
82
+ padding: 0 5px 0 20px;
83
+ }
84
+ table.coverage td.line-coverage {
85
+ text-align: right;
86
+ padding-right: 10px;
87
+ min-width:20px;
88
+ }
89
+
90
+ table.coverage td span.cline-any {
91
+ display: inline-block;
92
+ padding: 0 5px;
93
+ width: 100%;
94
+ }
95
+ .missing-if-branch {
96
+ display: inline-block;
97
+ margin-right: 5px;
98
+ border-radius: 3px;
99
+ position: relative;
100
+ padding: 0 4px;
101
+ background: #333;
102
+ color: yellow;
103
+ }
104
+
105
+ .skip-if-branch {
106
+ display: none;
107
+ margin-right: 10px;
108
+ position: relative;
109
+ padding: 0 4px;
110
+ background: #ccc;
111
+ color: white;
112
+ }
113
+ .missing-if-branch .typ, .skip-if-branch .typ {
114
+ color: inherit !important;
115
+ }
116
+ .coverage-summary {
117
+ border-collapse: collapse;
118
+ width: 100%;
119
+ }
120
+ .coverage-summary tr { border-bottom: 1px solid #bbb; }
121
+ .keyline-all { border: 1px solid #ddd; }
122
+ .coverage-summary td, .coverage-summary th { padding: 10px; }
123
+ .coverage-summary tbody { border: 1px solid #bbb; }
124
+ .coverage-summary td { border-right: 1px solid #bbb; }
125
+ .coverage-summary td:last-child { border-right: none; }
126
+ .coverage-summary th {
127
+ text-align: left;
128
+ font-weight: normal;
129
+ white-space: nowrap;
130
+ }
131
+ .coverage-summary th.file { border-right: none !important; }
132
+ .coverage-summary th.pct { }
133
+ .coverage-summary th.pic,
134
+ .coverage-summary th.abs,
135
+ .coverage-summary td.pct,
136
+ .coverage-summary td.abs { text-align: right; }
137
+ .coverage-summary td.file { white-space: nowrap; }
138
+ .coverage-summary td.pic { min-width: 120px !important; }
139
+ .coverage-summary tfoot td { }
140
+
141
+ .coverage-summary .sorter {
142
+ height: 10px;
143
+ width: 7px;
144
+ display: inline-block;
145
+ margin-left: 0.5em;
146
+ background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
147
+ }
148
+ .coverage-summary .sorted .sorter {
149
+ background-position: 0 -20px;
150
+ }
151
+ .coverage-summary .sorted-desc .sorter {
152
+ background-position: 0 -10px;
153
+ }
154
+ .status-line { height: 10px; }
155
+ /* yellow */
156
+ .cbranch-no { background: yellow !important; color: #111; }
157
+ /* dark red */
158
+ .red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
159
+ .low .chart { border:1px solid #C21F39 }
160
+ .highlighted,
161
+ .highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{
162
+ background: #C21F39 !important;
163
+ }
164
+ /* medium red */
165
+ .cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
166
+ /* light red */
167
+ .low, .cline-no { background:#FCE1E5 }
168
+ /* light green */
169
+ .high, .cline-yes { background:rgb(230,245,208) }
170
+ /* medium green */
171
+ .cstat-yes { background:rgb(161,215,106) }
172
+ /* dark green */
173
+ .status-line.high, .high .cover-fill { background:rgb(77,146,33) }
174
+ .high .chart { border:1px solid rgb(77,146,33) }
175
+ /* dark yellow (gold) */
176
+ .status-line.medium, .medium .cover-fill { background: #f9cd0b; }
177
+ .medium .chart { border:1px solid #f9cd0b; }
178
+ /* light yellow */
179
+ .medium { background: #fff4c2; }
180
+
181
+ .cstat-skip { background: #ddd; color: #111; }
182
+ .fstat-skip { background: #ddd; color: #111 !important; }
183
+ .cbranch-skip { background: #ddd !important; color: #111; }
184
+
185
+ span.cline-neutral { background: #eaeaea; }
186
+
187
+ .coverage-summary td.empty {
188
+ opacity: .5;
189
+ padding-top: 4px;
190
+ padding-bottom: 4px;
191
+ line-height: 1;
192
+ color: #888;
193
+ }
194
+
195
+ .cover-fill, .cover-empty {
196
+ display:inline-block;
197
+ height: 12px;
198
+ }
199
+ .chart {
200
+ line-height: 0;
201
+ }
202
+ .cover-empty {
203
+ background: white;
204
+ }
205
+ .cover-full {
206
+ border-right: none !important;
207
+ }
208
+ pre.prettyprint {
209
+ border: none !important;
210
+ padding: 0 !important;
211
+ margin: 0 !important;
212
+ }
213
+ .com { color: #999 !important; }
214
+ .ignore-none { color: #999; font-weight: normal; }
215
+
216
+ .wrapper {
217
+ min-height: 100%;
218
+ height: auto !important;
219
+ height: 100%;
220
+ margin: 0 auto -48px;
221
+ }
222
+ .footer, .push {
223
+ height: 48px;
224
+ }
@@ -0,0 +1,87 @@
1
+ /* eslint-disable */
2
+ var jumpToCode = (function init() {
3
+ // Classes of code we would like to highlight in the file view
4
+ var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no'];
5
+
6
+ // Elements to highlight in the file listing view
7
+ var fileListingElements = ['td.pct.low'];
8
+
9
+ // We don't want to select elements that are direct descendants of another match
10
+ var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
11
+
12
+ // Selector that finds elements on the page to which we can jump
13
+ var selector =
14
+ fileListingElements.join(', ') +
15
+ ', ' +
16
+ notSelector +
17
+ missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
18
+
19
+ // The NodeList of matching elements
20
+ var missingCoverageElements = document.querySelectorAll(selector);
21
+
22
+ var currentIndex;
23
+
24
+ function toggleClass(index) {
25
+ missingCoverageElements
26
+ .item(currentIndex)
27
+ .classList.remove('highlighted');
28
+ missingCoverageElements.item(index).classList.add('highlighted');
29
+ }
30
+
31
+ function makeCurrent(index) {
32
+ toggleClass(index);
33
+ currentIndex = index;
34
+ missingCoverageElements.item(index).scrollIntoView({
35
+ behavior: 'smooth',
36
+ block: 'center',
37
+ inline: 'center'
38
+ });
39
+ }
40
+
41
+ function goToPrevious() {
42
+ var nextIndex = 0;
43
+ if (typeof currentIndex !== 'number' || currentIndex === 0) {
44
+ nextIndex = missingCoverageElements.length - 1;
45
+ } else if (missingCoverageElements.length > 1) {
46
+ nextIndex = currentIndex - 1;
47
+ }
48
+
49
+ makeCurrent(nextIndex);
50
+ }
51
+
52
+ function goToNext() {
53
+ var nextIndex = 0;
54
+
55
+ if (
56
+ typeof currentIndex === 'number' &&
57
+ currentIndex < missingCoverageElements.length - 1
58
+ ) {
59
+ nextIndex = currentIndex + 1;
60
+ }
61
+
62
+ makeCurrent(nextIndex);
63
+ }
64
+
65
+ return function jump(event) {
66
+ if (
67
+ document.getElementById('fileSearch') === document.activeElement &&
68
+ document.activeElement != null
69
+ ) {
70
+ // if we're currently focused on the search input, we don't want to navigate
71
+ return;
72
+ }
73
+
74
+ switch (event.which) {
75
+ case 78: // n
76
+ case 74: // j
77
+ goToNext();
78
+ break;
79
+ case 66: // b
80
+ case 75: // k
81
+ case 80: // p
82
+ goToPrevious();
83
+ break;
84
+ }
85
+ };
86
+ })();
87
+ window.addEventListener('keydown', jumpToCode);