mihari 5.2.4 → 5.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -1
  3. data/README.md +0 -10
  4. data/Rakefile +7 -1
  5. data/build_frontend.sh +1 -1
  6. data/frontend/.eslintrc.cjs +22 -0
  7. data/frontend/.gitignore +18 -12
  8. data/frontend/.prettierrc.json +8 -0
  9. data/frontend/env.d.ts +5 -0
  10. data/frontend/package-lock.json +5095 -9661
  11. data/frontend/package.json +34 -24
  12. data/frontend/src/App.vue +5 -5
  13. data/frontend/src/api-helper.ts +38 -40
  14. data/frontend/src/api.ts +40 -40
  15. data/frontend/src/components/ErrorMessage.vue +8 -8
  16. data/frontend/src/components/Loading.vue +3 -3
  17. data/frontend/src/components/Navbar.vue +10 -27
  18. data/frontend/src/components/Pagination.vue +35 -42
  19. data/frontend/src/components/alert/Alert.vue +21 -26
  20. data/frontend/src/components/alert/Alerts.vue +23 -25
  21. data/frontend/src/components/alert/AlertsWithPagination.vue +34 -34
  22. data/frontend/src/components/alert/AlertsWrapper.vue +42 -49
  23. data/frontend/src/components/alert/Form.vue +39 -40
  24. data/frontend/src/components/artifact/AS.vue +7 -7
  25. data/frontend/src/components/artifact/Artifact.vue +66 -83
  26. data/frontend/src/components/artifact/ArtifactTag.vue +21 -27
  27. data/frontend/src/components/artifact/ArtifactTags.vue +8 -8
  28. data/frontend/src/components/artifact/ArtifactWrapper.vue +22 -25
  29. data/frontend/src/components/artifact/CPEs.vue +6 -6
  30. data/frontend/src/components/artifact/DnsRecords.vue +9 -9
  31. data/frontend/src/components/artifact/Ports.vue +6 -6
  32. data/frontend/src/components/artifact/ReverseDnsNames.vue +7 -7
  33. data/frontend/src/components/artifact/Tags.vue +6 -6
  34. data/frontend/src/components/artifact/WhoisRecord.vue +7 -9
  35. data/frontend/src/components/config/Configs.vue +7 -10
  36. data/frontend/src/components/config/ConfigsWrapper.vue +14 -20
  37. data/frontend/src/components/link/Link.vue +7 -7
  38. data/frontend/src/components/link/Links.vue +16 -21
  39. data/frontend/src/components/rule/EditRule.vue +22 -22
  40. data/frontend/src/components/rule/EditRuleWrapper.vue +22 -28
  41. data/frontend/src/components/rule/Form.vue +28 -28
  42. data/frontend/src/components/rule/InputForm.vue +31 -25
  43. data/frontend/src/components/rule/NewRule.vue +18 -18
  44. data/frontend/src/components/rule/Rule.vue +25 -27
  45. data/frontend/src/components/rule/RuleWrapper.vue +24 -31
  46. data/frontend/src/components/rule/Rules.vue +26 -30
  47. data/frontend/src/components/rule/RulesWrapper.vue +39 -42
  48. data/frontend/src/components/rule/YAML.vue +19 -22
  49. data/frontend/src/components/tag/Tag.vue +24 -32
  50. data/frontend/src/components/tag/Tags.vue +11 -11
  51. data/frontend/src/countries.ts +23 -23
  52. data/frontend/src/index.ts +9 -12
  53. data/frontend/src/links/anyrun.ts +10 -10
  54. data/frontend/src/links/base.ts +3 -3
  55. data/frontend/src/links/censys.ts +10 -10
  56. data/frontend/src/links/crtsh.ts +10 -10
  57. data/frontend/src/links/dnslytics.ts +18 -18
  58. data/frontend/src/links/greynoise.ts +10 -10
  59. data/frontend/src/links/index.ts +15 -15
  60. data/frontend/src/links/intezer.ts +10 -10
  61. data/frontend/src/links/otx.ts +14 -14
  62. data/frontend/src/links/securitytrails.ts +15 -15
  63. data/frontend/src/links/shodan.ts +10 -10
  64. data/frontend/src/links/urlscan.ts +19 -19
  65. data/frontend/src/links/virustotal.ts +27 -27
  66. data/frontend/src/main.ts +8 -8
  67. data/frontend/src/router/index.ts +20 -20
  68. data/frontend/src/rule.ts +6 -6
  69. data/frontend/src/shims-vue.d.ts +2 -2
  70. data/frontend/src/types.ts +91 -91
  71. data/frontend/src/utils.ts +23 -29
  72. data/frontend/src/views/Alerts.vue +7 -7
  73. data/frontend/src/views/Artifact.vue +17 -17
  74. data/frontend/src/views/Configs.vue +7 -7
  75. data/frontend/src/views/EditRule.vue +17 -17
  76. data/frontend/src/views/NewRule.vue +10 -10
  77. data/frontend/src/views/Rule.vue +17 -17
  78. data/frontend/src/views/Rules.vue +7 -7
  79. data/frontend/tests/utils.spec.ts +9 -0
  80. data/frontend/tsconfig.app.json +21 -0
  81. data/frontend/tsconfig.json +10 -36
  82. data/frontend/tsconfig.node.json +13 -0
  83. data/frontend/tsconfig.vitest.json +12 -0
  84. data/frontend/vite.config.ts +24 -0
  85. data/frontend/vitest.config.ts +21 -0
  86. data/lefthook.yml +4 -2
  87. data/lib/mihari/analyzers/base.rb +48 -14
  88. data/lib/mihari/analyzers/binaryedge.rb +10 -15
  89. data/lib/mihari/analyzers/censys.rb +12 -15
  90. data/lib/mihari/analyzers/circl.rb +10 -10
  91. data/lib/mihari/analyzers/crtsh.rb +10 -6
  92. data/lib/mihari/analyzers/dnstwister.rb +6 -8
  93. data/lib/mihari/analyzers/feed.rb +21 -10
  94. data/lib/mihari/analyzers/greynoise.rb +10 -20
  95. data/lib/mihari/analyzers/onyphe.rb +9 -14
  96. data/lib/mihari/analyzers/otx.rb +8 -9
  97. data/lib/mihari/analyzers/passivetotal.rb +10 -10
  98. data/lib/mihari/analyzers/pulsedive.rb +21 -31
  99. data/lib/mihari/analyzers/securitytrails.rb +8 -6
  100. data/lib/mihari/analyzers/shodan.rb +8 -13
  101. data/lib/mihari/analyzers/urlscan.rb +15 -20
  102. data/lib/mihari/analyzers/virustotal.rb +16 -26
  103. data/lib/mihari/analyzers/virustotal_intelligence.rb +11 -17
  104. data/lib/mihari/analyzers/zoomeye.rb +12 -17
  105. data/lib/mihari/config.rb +133 -0
  106. data/lib/mihari/constants.rb +3 -0
  107. data/lib/mihari/emitters/slack.rb +13 -3
  108. data/lib/mihari/errors.rb +1 -1
  109. data/lib/mihari/http.rb +2 -3
  110. data/lib/mihari/schemas/analyzer.rb +2 -0
  111. data/lib/mihari/type_checker.rb +6 -6
  112. data/lib/mihari/version.rb +1 -1
  113. data/lib/mihari/web/endpoints/configs.rb +5 -1
  114. data/lib/mihari/web/public/assets/{index-eed1bcd8.css → index-2ba8f0a6.css} +1 -1
  115. data/lib/mihari/web/public/assets/{index-ac4e5ffa.js → index-71285b15.js} +16 -16
  116. data/lib/mihari/web/public/index.html +2 -2
  117. data/lib/mihari/web/public/redoc-static.html +388 -2193
  118. data/lib/mihari.rb +9 -59
  119. data/mihari.gemspec +8 -8
  120. metadata +24 -62
  121. data/frontend/.browserslistrc +0 -3
  122. data/frontend/.eslintrc.js +0 -33
  123. data/frontend/babel.config.js +0 -3
  124. data/frontend/jest.config.js +0 -9
  125. data/frontend/tests/unit/utils.spec.ts +0 -7
  126. data/frontend/vite.config.js +0 -24
data/lib/mihari.rb CHANGED
@@ -19,7 +19,6 @@ require "active_support/core_ext/object/deep_dup"
19
19
  require "active_record"
20
20
 
21
21
  # dry-rb
22
- require "dry/configurable"
23
22
  require "dry/files"
24
23
  require "dry/initializer"
25
24
  require "dry/schema"
@@ -51,6 +50,8 @@ require "dotenv/load"
51
50
  require "mihari/version"
52
51
  require "mihari/errors"
53
52
 
53
+ require "mihari/config"
54
+
54
55
  # Mixins
55
56
  require "mihari/mixins/autonomous_system"
56
57
  require "mihari/mixins/configurable"
@@ -60,55 +61,6 @@ require "mihari/mixins/refang"
60
61
  require "mihari/mixins/retriable"
61
62
 
62
63
  module Mihari
63
- extend Dry::Configurable
64
-
65
- setting :binaryedge_api_key, default: ENV.fetch("BINARYEDGE_API_KEY", nil)
66
-
67
- setting :censys_id, default: ENV.fetch("CENSYS_ID", nil)
68
- setting :censys_secret, default: ENV.fetch("CENSYS_SECRET", nil)
69
-
70
- setting :circl_passive_password, default: ENV.fetch("CIRCL_PASSIVE_PASSWORD", nil)
71
- setting :circl_passive_username, default: ENV.fetch("CIRCL_PASSIVE_USERNAME", nil)
72
-
73
- setting :database_url, default: URI(ENV.fetch("DATABASE_URL", "sqlite3:///mihari.db"))
74
-
75
- setting :greynoise_api_key, default: ENV.fetch("GREYNOISE_API_KEY", nil)
76
-
77
- setting :ipinfo_api_key, default: ENV.fetch("IPINFO_API_KEY", nil)
78
-
79
- setting :misp_url, default: ENV.fetch("MISP_URL", nil)
80
- setting :misp_api_key, default: ENV.fetch("MISP_API_KEY", nil)
81
-
82
- setting :onyphe_api_key, default: ENV.fetch("ONYPHE_API_KEY", nil)
83
-
84
- setting :otx_api_key, default: ENV.fetch("OTX_API_KEY", nil)
85
-
86
- setting :passivetotal_api_key, default: ENV.fetch("PASSIVETOTAL_API_KEY", nil)
87
- setting :passivetotal_username, default: ENV.fetch("PASSIVETOTAL_USERNAME", nil)
88
-
89
- setting :pulsedive_api_key, default: ENV.fetch("PULSEDIVE_API_KEY", nil)
90
-
91
- setting :securitytrails_api_key, default: ENV.fetch("SECURITYTRAILS_API_KEY", nil)
92
-
93
- setting :shodan_api_key, default: ENV.fetch("SHODAN_API_KEY", nil)
94
-
95
- setting :slack_channel, default: ENV.fetch("SLACK_CHANNEL", nil)
96
- setting :slack_webhook_url, default: ENV.fetch("SLACK_WEBHOOK_URL", nil)
97
-
98
- setting :thehive_url, default: ENV.fetch("THEHIVE_URL", nil)
99
- setting :thehive_api_key, default: ENV.fetch("THEHIVE_API_KEY", nil)
100
- setting :thehive_api_version, default: ENV.fetch("THEHIVE_API_VERSION", nil)
101
-
102
- setting :urlscan_api_key, default: ENV.fetch("URLSCAN_API_KEY", nil)
103
-
104
- setting :virustotal_api_key, default: ENV.fetch("VIRUSTOTAL_API_KEY", nil)
105
-
106
- setting :zoomeye_api_key, default: ENV.fetch("ZOOMEYE_API_KEY", nil)
107
-
108
- setting :sentry_dsn, default: ENV.fetch("SENTRY_DSN", nil)
109
-
110
- setting :hide_config_values, default: ENV.fetch("HIDE_CONFIG_VALUES", false)
111
-
112
64
  class << self
113
65
  include Memist::Memoizable
114
66
 
@@ -127,10 +79,8 @@ module Mihari
127
79
  end
128
80
  memoize :enrichers
129
81
 
130
- def configs
131
- (Mihari.analyzers + Mihari.emitters + Mihari.enrichers).map do |klass|
132
- Mihari::Structs::Config.from_class(klass)
133
- end.compact
82
+ def config
83
+ @config ||= Config.new
134
84
  end
135
85
 
136
86
  def logger
@@ -153,17 +103,17 @@ module Mihari
153
103
  end
154
104
  end
155
105
 
156
- require "mihari/database"
157
- require "mihari/type_checker"
158
-
159
- require "mihari/http"
160
-
161
106
  # Constants
162
107
  require "mihari/constants"
163
108
 
164
109
  # Types
165
110
  require "mihari/types"
166
111
 
112
+ # Core classes
113
+ require "mihari/database"
114
+ require "mihari/type_checker"
115
+ require "mihari/http"
116
+
167
117
  # Structs
168
118
  require "mihari/structs/censys"
169
119
  require "mihari/structs/config"
data/mihari.gemspec CHANGED
@@ -28,6 +28,9 @@ Gem::Specification.new do |spec|
28
28
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
29
29
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|images|docker|.github)/}) }
30
30
  end
31
+ # Include frontend assets in lib/mihari/web/public
32
+ spec.files += Dir.glob("lib/mihari/web/public/**/*")
33
+
31
34
  spec.bindir = "exe"
32
35
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
33
36
  spec.require_paths = ["lib"]
@@ -46,24 +49,21 @@ Gem::Specification.new do |spec|
46
49
  spec.add_development_dependency "simplecov-lcov", "~> 0.8.0"
47
50
  spec.add_development_dependency "standard", "~> 1.29"
48
51
  spec.add_development_dependency "timecop", "~> 0.9"
49
- spec.add_development_dependency "vcr", "~> 6.1"
52
+ spec.add_development_dependency "vcr", "~> 6.2"
50
53
  spec.add_development_dependency "webmock", "~> 3.18"
51
54
 
52
55
  unless ci_env?
53
56
  spec.add_development_dependency "lefthook", "~> 1.4"
54
- spec.add_development_dependency "ruby-lsp", "~> 0.5"
55
57
  spec.add_development_dependency "solargraph", "~> 0.49"
56
58
  spec.add_development_dependency "steep", "~> 1.4"
57
59
  end
58
60
 
59
- spec.add_dependency "activerecord", "7.0.5"
61
+ spec.add_dependency "activerecord", "7.0.6"
60
62
  spec.add_dependency "addressable", "2.8.4"
61
63
  spec.add_dependency "awrence", "2.0.1"
62
64
  spec.add_dependency "dotenv", "2.8.1"
63
- spec.add_dependency "dry-configurable", "1.0.1"
64
65
  spec.add_dependency "dry-container", "0.11.0"
65
66
  spec.add_dependency "dry-files", "1.0.1"
66
- spec.add_dependency "dry-initializer", "3.1.1"
67
67
  spec.add_dependency "dry-schema", "1.13.2"
68
68
  spec.add_dependency "dry-struct", "1.6.0"
69
69
  spec.add_dependency "dry-validation", "1.10.0"
@@ -71,7 +71,7 @@ Gem::Specification.new do |spec|
71
71
  spec.add_dependency "grape", "1.7.0"
72
72
  spec.add_dependency "grape-entity", "1.0.0"
73
73
  spec.add_dependency "grape-swagger", "1.6.1"
74
- spec.add_dependency "grape-swagger-entity", "0.5.1"
74
+ spec.add_dependency "grape-swagger-entity", "0.5.2"
75
75
  spec.add_dependency "insensitive_hash", "0.3.3"
76
76
  spec.add_dependency "jr-cli", "0.6.0"
77
77
  spec.add_dependency "launchy", "2.5.2"
@@ -80,13 +80,13 @@ Gem::Specification.new do |spec|
80
80
  spec.add_dependency "normalize_country", "0.3.2"
81
81
  spec.add_dependency "parallel", "1.23.0"
82
82
  spec.add_dependency "plissken", "2.0.1"
83
- spec.add_dependency "public_suffix", "5.0.1"
83
+ spec.add_dependency "public_suffix", "5.0.3"
84
84
  spec.add_dependency "puma", "6.3.0"
85
85
  spec.add_dependency "rack", "3.0.8"
86
86
  spec.add_dependency "rack-cors", "2.0.1"
87
87
  spec.add_dependency "rackup", "2.1.0"
88
88
  spec.add_dependency "semantic_logger", "4.13.0"
89
- spec.add_dependency "sentry-ruby", "5.9.0"
89
+ spec.add_dependency "sentry-ruby", "5.10.0"
90
90
  spec.add_dependency "slack-notifier", "2.4.0"
91
91
  spec.add_dependency "sqlite3", "1.6.3"
92
92
  spec.add_dependency "thor", "1.2.2"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mihari
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.4
4
+ version: 5.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manabu Niseki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-18 00:00:00.000000000 Z
11
+ date: 2023-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -212,14 +212,14 @@ dependencies:
212
212
  requirements:
213
213
  - - "~>"
214
214
  - !ruby/object:Gem::Version
215
- version: '6.1'
215
+ version: '6.2'
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
- version: '6.1'
222
+ version: '6.2'
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: webmock
225
225
  requirement: !ruby/object:Gem::Requirement
@@ -248,20 +248,6 @@ dependencies:
248
248
  - - "~>"
249
249
  - !ruby/object:Gem::Version
250
250
  version: '1.4'
251
- - !ruby/object:Gem::Dependency
252
- name: ruby-lsp
253
- requirement: !ruby/object:Gem::Requirement
254
- requirements:
255
- - - "~>"
256
- - !ruby/object:Gem::Version
257
- version: '0.5'
258
- type: :development
259
- prerelease: false
260
- version_requirements: !ruby/object:Gem::Requirement
261
- requirements:
262
- - - "~>"
263
- - !ruby/object:Gem::Version
264
- version: '0.5'
265
251
  - !ruby/object:Gem::Dependency
266
252
  name: solargraph
267
253
  requirement: !ruby/object:Gem::Requirement
@@ -296,14 +282,14 @@ dependencies:
296
282
  requirements:
297
283
  - - '='
298
284
  - !ruby/object:Gem::Version
299
- version: 7.0.5
285
+ version: 7.0.6
300
286
  type: :runtime
301
287
  prerelease: false
302
288
  version_requirements: !ruby/object:Gem::Requirement
303
289
  requirements:
304
290
  - - '='
305
291
  - !ruby/object:Gem::Version
306
- version: 7.0.5
292
+ version: 7.0.6
307
293
  - !ruby/object:Gem::Dependency
308
294
  name: addressable
309
295
  requirement: !ruby/object:Gem::Requirement
@@ -346,20 +332,6 @@ dependencies:
346
332
  - - '='
347
333
  - !ruby/object:Gem::Version
348
334
  version: 2.8.1
349
- - !ruby/object:Gem::Dependency
350
- name: dry-configurable
351
- requirement: !ruby/object:Gem::Requirement
352
- requirements:
353
- - - '='
354
- - !ruby/object:Gem::Version
355
- version: 1.0.1
356
- type: :runtime
357
- prerelease: false
358
- version_requirements: !ruby/object:Gem::Requirement
359
- requirements:
360
- - - '='
361
- - !ruby/object:Gem::Version
362
- version: 1.0.1
363
335
  - !ruby/object:Gem::Dependency
364
336
  name: dry-container
365
337
  requirement: !ruby/object:Gem::Requirement
@@ -388,20 +360,6 @@ dependencies:
388
360
  - - '='
389
361
  - !ruby/object:Gem::Version
390
362
  version: 1.0.1
391
- - !ruby/object:Gem::Dependency
392
- name: dry-initializer
393
- requirement: !ruby/object:Gem::Requirement
394
- requirements:
395
- - - '='
396
- - !ruby/object:Gem::Version
397
- version: 3.1.1
398
- type: :runtime
399
- prerelease: false
400
- version_requirements: !ruby/object:Gem::Requirement
401
- requirements:
402
- - - '='
403
- - !ruby/object:Gem::Version
404
- version: 3.1.1
405
363
  - !ruby/object:Gem::Dependency
406
364
  name: dry-schema
407
365
  requirement: !ruby/object:Gem::Requirement
@@ -506,14 +464,14 @@ dependencies:
506
464
  requirements:
507
465
  - - '='
508
466
  - !ruby/object:Gem::Version
509
- version: 0.5.1
467
+ version: 0.5.2
510
468
  type: :runtime
511
469
  prerelease: false
512
470
  version_requirements: !ruby/object:Gem::Requirement
513
471
  requirements:
514
472
  - - '='
515
473
  - !ruby/object:Gem::Version
516
- version: 0.5.1
474
+ version: 0.5.2
517
475
  - !ruby/object:Gem::Dependency
518
476
  name: insensitive_hash
519
477
  requirement: !ruby/object:Gem::Requirement
@@ -632,14 +590,14 @@ dependencies:
632
590
  requirements:
633
591
  - - '='
634
592
  - !ruby/object:Gem::Version
635
- version: 5.0.1
593
+ version: 5.0.3
636
594
  type: :runtime
637
595
  prerelease: false
638
596
  version_requirements: !ruby/object:Gem::Requirement
639
597
  requirements:
640
598
  - - '='
641
599
  - !ruby/object:Gem::Version
642
- version: 5.0.1
600
+ version: 5.0.3
643
601
  - !ruby/object:Gem::Dependency
644
602
  name: puma
645
603
  requirement: !ruby/object:Gem::Requirement
@@ -716,14 +674,14 @@ dependencies:
716
674
  requirements:
717
675
  - - '='
718
676
  - !ruby/object:Gem::Version
719
- version: 5.9.0
677
+ version: 5.10.0
720
678
  type: :runtime
721
679
  prerelease: false
722
680
  version_requirements: !ruby/object:Gem::Requirement
723
681
  requirements:
724
682
  - - '='
725
683
  - !ruby/object:Gem::Version
726
- version: 5.9.0
684
+ version: 5.10.0
727
685
  - !ruby/object:Gem::Dependency
728
686
  name: slack-notifier
729
687
  requirement: !ruby/object:Gem::Requirement
@@ -830,13 +788,12 @@ files:
830
788
  - build_frontend.sh
831
789
  - config.ru
832
790
  - exe/mihari
833
- - frontend/.browserslistrc
834
- - frontend/.eslintrc.js
791
+ - frontend/.eslintrc.cjs
835
792
  - frontend/.gitignore
793
+ - frontend/.prettierrc.json
836
794
  - frontend/README.md
837
- - frontend/babel.config.js
795
+ - frontend/env.d.ts
838
796
  - frontend/index.html
839
- - frontend/jest.config.js
840
797
  - frontend/package-lock.json
841
798
  - frontend/package.json
842
799
  - frontend/public/favicon.ico
@@ -909,9 +866,13 @@ files:
909
866
  - frontend/src/views/NewRule.vue
910
867
  - frontend/src/views/Rule.vue
911
868
  - frontend/src/views/Rules.vue
912
- - frontend/tests/unit/utils.spec.ts
869
+ - frontend/tests/utils.spec.ts
870
+ - frontend/tsconfig.app.json
913
871
  - frontend/tsconfig.json
914
- - frontend/vite.config.js
872
+ - frontend/tsconfig.node.json
873
+ - frontend/tsconfig.vitest.json
874
+ - frontend/vite.config.ts
875
+ - frontend/vitest.config.ts
915
876
  - lefthook.yml
916
877
  - lib/mihari.rb
917
878
  - lib/mihari/analyzers/base.rb
@@ -960,6 +921,7 @@ files:
960
921
  - lib/mihari/commands/search.rb
961
922
  - lib/mihari/commands/version.rb
962
923
  - lib/mihari/commands/web.rb
924
+ - lib/mihari/config.rb
963
925
  - lib/mihari/constants.rb
964
926
  - lib/mihari/database.rb
965
927
  - lib/mihari/emitters/base.rb
@@ -1047,8 +1009,8 @@ files:
1047
1009
  - lib/mihari/web/public/assets/fa-solid-900-7152a693.woff2
1048
1010
  - lib/mihari/web/public/assets/fa-v4compatibility-0515a423.ttf
1049
1011
  - lib/mihari/web/public/assets/fa-v4compatibility-694a17c3.woff2
1050
- - lib/mihari/web/public/assets/index-ac4e5ffa.js
1051
- - lib/mihari/web/public/assets/index-eed1bcd8.css
1012
+ - lib/mihari/web/public/assets/index-2ba8f0a6.css
1013
+ - lib/mihari/web/public/assets/index-71285b15.js
1052
1014
  - lib/mihari/web/public/favicon.ico
1053
1015
  - lib/mihari/web/public/index.html
1054
1016
  - lib/mihari/web/public/redoc-static.html
@@ -1,3 +0,0 @@
1
- > 1%
2
- last 2 versions
3
- not dead
@@ -1,33 +0,0 @@
1
- module.exports = {
2
- root: true,
3
- env: {
4
- node: true,
5
- },
6
- plugins: ["simple-import-sort"],
7
- extends: [
8
- "plugin:vue/vue3-essential",
9
- "eslint:recommended",
10
- "@vue/typescript/recommended",
11
- "plugin:prettier/recommended",
12
- ],
13
- parserOptions: {
14
- ecmaVersion: 2020,
15
- },
16
- rules: {
17
- "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
18
- "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
19
- "simple-import-sort/imports": "error",
20
- "simple-import-sort/exports": "error",
21
- },
22
- overrides: [
23
- {
24
- files: [
25
- "**/__tests__/*.{j,t}s?(x)",
26
- "**/tests/unit/**/*.spec.{j,t}s?(x)",
27
- ],
28
- env: {
29
- jest: true,
30
- },
31
- },
32
- ],
33
- };
@@ -1,3 +0,0 @@
1
- module.exports = {
2
- presets: ["@vue/cli-plugin-babel/preset"],
3
- };
@@ -1,9 +0,0 @@
1
- module.exports = {
2
- moduleNameMapper: {
3
- "^@/(.*)$": "<rootDir>/src/$1",
4
- },
5
- transform: {
6
- "^.+\\.vue$": "@vue/vue3-jest",
7
- "^.+\\.ts$": "ts-jest",
8
- },
9
- };
@@ -1,7 +0,0 @@
1
- import { getHumanizedRelativeTime } from "@/utils";
2
-
3
- describe("getHumanizedRelativeTime", () => {
4
- it("returns a relative time in humanized format", () => {
5
- expect(getHumanizedRelativeTime("1970-01-01 00:00:00")).toContain("years");
6
- });
7
- });
@@ -1,24 +0,0 @@
1
- import vue from "@vitejs/plugin-vue";
2
- import path from "path";
3
- import { defineConfig, loadEnv } from "vite";
4
-
5
- export default defineConfig(({ _, mode }) => {
6
- const env = loadEnv(mode, process.cwd(), "");
7
- const target = env.BACKEND_URL || "http://localhost:9292/";
8
- const port = env.port || 8080;
9
-
10
- return {
11
- plugins: [vue()],
12
- server: {
13
- port,
14
- proxy: {
15
- "/api": target,
16
- },
17
- },
18
- resolve: {
19
- alias: {
20
- "@": path.resolve(__dirname, "./src"),
21
- },
22
- },
23
- };
24
- });