inferno_core 0.4.29 → 0.4.31
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.
- checksums.yaml +4 -4
- data/lib/inferno/apps/cli/new.rb +42 -18
- data/lib/inferno/apps/cli/templates/%library_name%.gemspec.tt +26 -0
- data/lib/inferno/apps/cli/templates/Dockerfile.tt +22 -0
- data/lib/inferno/apps/cli/templates/Gemfile.tt +9 -0
- data/lib/inferno/apps/cli/templates/LICENSE.tt +201 -0
- data/lib/inferno/apps/cli/templates/Procfile.tt +2 -0
- data/lib/inferno/apps/cli/templates/README.md.tt +41 -0
- data/lib/inferno/apps/cli/templates/Rakefile.tt +15 -0
- data/lib/inferno/apps/cli/templates/config/database.yml.tt +18 -0
- data/lib/inferno/apps/cli/templates/config/nginx.background.conf.tt +86 -0
- data/lib/inferno/apps/cli/templates/config/nginx.conf.tt +101 -0
- data/lib/inferno/apps/cli/templates/config/puma.rb.tt +2 -0
- data/lib/inferno/apps/cli/templates/config.ru.tt +11 -0
- data/lib/inferno/apps/cli/templates/docker-compose.background.yml.tt +30 -0
- data/lib/inferno/apps/cli/templates/docker-compose.yml.tt +35 -0
- data/lib/inferno/apps/cli/templates/lib/%library_name%/igs/put_ig_package_dot_tgz_here +0 -0
- data/lib/inferno/apps/cli/templates/lib/%library_name%/patient_group.rb.tt +44 -0
- data/lib/inferno/apps/cli/templates/lib/%library_name%.rb.tt +53 -0
- data/lib/inferno/apps/cli/templates/run.sh +3 -0
- data/lib/inferno/apps/cli/templates/setup.sh +4 -0
- data/lib/inferno/apps/cli/templates/spec/%library_name%/patient_group_spec.rb.tt +105 -0
- data/lib/inferno/apps/cli/templates/spec/spec_helper.rb.tt +141 -0
- data/lib/inferno/apps/cli/templates/worker.rb.tt +3 -0
- data/lib/inferno/db/migrations/010_add_validator_sessions.rb +14 -0
- data/lib/inferno/db/schema.rb +14 -0
- data/lib/inferno/dsl/fhir_client_builder.rb +1 -1
- data/lib/inferno/dsl/fhir_resource_validation.rb +21 -7
- data/lib/inferno/dsl/http_client_builder.rb +1 -1
- data/lib/inferno/entities/validator_session.rb +22 -0
- data/lib/inferno/entities.rb +1 -0
- data/lib/inferno/jobs/invoke_validator_session.rb +3 -3
- data/lib/inferno/public/175.bundle.js +1 -0
- data/lib/inferno/public/assets.json +1 -1
- data/lib/inferno/public/bundle.js +21 -21
- data/lib/inferno/public/bundle.js.LICENSE.txt +17 -5
- data/lib/inferno/repositories/validator_sessions.rb +58 -0
- data/lib/inferno/repositories.rb +1 -0
- data/lib/inferno/utils/ig_downloader.rb +57 -0
- data/lib/inferno/version.rb +1 -1
- metadata +29 -2
@@ -60,15 +60,27 @@
|
|
60
60
|
*/
|
61
61
|
|
62
62
|
/**
|
63
|
-
* @
|
63
|
+
* @license React
|
64
|
+
* use-sync-external-store-shim.production.min.js
|
65
|
+
*
|
66
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
67
|
+
*
|
68
|
+
* This source code is licensed under the MIT license found in the
|
69
|
+
* LICENSE file in the root directory of this source tree.
|
70
|
+
*/
|
71
|
+
|
72
|
+
/**
|
73
|
+
* @license React
|
74
|
+
* use-sync-external-store-shim/with-selector.production.min.js
|
75
|
+
*
|
76
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
64
77
|
*
|
65
|
-
* @license MIT
|
66
78
|
* This source code is licensed under the MIT license found in the
|
67
79
|
* LICENSE file in the root directory of this source tree.
|
68
80
|
*/
|
69
81
|
|
70
82
|
/**
|
71
|
-
* @remix-run/router v1.
|
83
|
+
* @remix-run/router v1.15.2
|
72
84
|
*
|
73
85
|
* Copyright (c) Remix Software Inc.
|
74
86
|
*
|
@@ -79,7 +91,7 @@
|
|
79
91
|
*/
|
80
92
|
|
81
93
|
/**
|
82
|
-
* React Router DOM v6.
|
94
|
+
* React Router DOM v6.22.2
|
83
95
|
*
|
84
96
|
* Copyright (c) Remix Software Inc.
|
85
97
|
*
|
@@ -90,7 +102,7 @@
|
|
90
102
|
*/
|
91
103
|
|
92
104
|
/**
|
93
|
-
* React Router v6.
|
105
|
+
* React Router v6.22.2
|
94
106
|
*
|
95
107
|
* Copyright (c) Remix Software Inc.
|
96
108
|
*
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'base62-rb'
|
2
|
+
require_relative 'repository'
|
3
|
+
|
4
|
+
module Inferno
|
5
|
+
module Repositories
|
6
|
+
class ValidatorSessions < Repository
|
7
|
+
def save(params)
|
8
|
+
validator_session_id = params[:validator_session_id]
|
9
|
+
validator_name = params[:validator_name]
|
10
|
+
test_suite_id = params[:test_suite_id]
|
11
|
+
raw_suite_options = params[:suite_options]
|
12
|
+
time = Time.now
|
13
|
+
|
14
|
+
suite_options =
|
15
|
+
if raw_suite_options.blank?
|
16
|
+
'[]'
|
17
|
+
else
|
18
|
+
raw_suite_options.sort.to_s
|
19
|
+
end
|
20
|
+
|
21
|
+
db.insert_conflict(
|
22
|
+
target: [:test_suite_id,
|
23
|
+
:suite_options,
|
24
|
+
:validator_name],
|
25
|
+
update: { validator_session_id:,
|
26
|
+
test_suite_id:,
|
27
|
+
suite_options:,
|
28
|
+
validator_name: }
|
29
|
+
).insert(
|
30
|
+
id: SecureRandom.uuid,
|
31
|
+
validator_session_id:,
|
32
|
+
test_suite_id:,
|
33
|
+
validator_name:,
|
34
|
+
suite_options:,
|
35
|
+
last_accessed: time
|
36
|
+
)
|
37
|
+
end
|
38
|
+
|
39
|
+
def find_validator_session_id(test_suite_id, validator_name, suite_options)
|
40
|
+
suite_options = suite_options.nil? ? '[]' : suite_options.sort.to_s
|
41
|
+
session = self.class::Model
|
42
|
+
.find(test_suite_id:, validator_name:, suite_options:)
|
43
|
+
return nil if session.nil?
|
44
|
+
|
45
|
+
time = Time.now
|
46
|
+
session.update(last_accessed: time)
|
47
|
+
session[:validator_session_id]
|
48
|
+
end
|
49
|
+
|
50
|
+
class Model < Sequel::Model(db)
|
51
|
+
def before_save
|
52
|
+
time = Time.now
|
53
|
+
self.last_accessed ||= time
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/lib/inferno/repositories.rb
CHANGED
@@ -0,0 +1,57 @@
|
|
1
|
+
module Inferno
|
2
|
+
module Utils
|
3
|
+
module IgDownloader
|
4
|
+
FHIR_PACKAGE_NAME_REG_EX = /^[a-z][a-zA-Z0-9-]*\.([a-z][a-zA-Z0-9-]*\.?)*/
|
5
|
+
HTTP_URI_REG_EX = %r{^https?://[^/?#]+[^?#]*}
|
6
|
+
FILE_URI_REG_EX = %r{^file://(.+)}
|
7
|
+
HTTP_URI_END_REG_EX = %r{[^/]*\.x?html?$}
|
8
|
+
|
9
|
+
def ig_path
|
10
|
+
File.join('lib', library_name, 'igs')
|
11
|
+
end
|
12
|
+
|
13
|
+
def ig_file(suffix = nil)
|
14
|
+
File.join(ig_path, suffix ? "package_#{suffix}.tgz" : 'package.tgz')
|
15
|
+
end
|
16
|
+
|
17
|
+
def load_ig(ig_input, idx = nil, thor_config = { verbose: true })
|
18
|
+
case ig_input
|
19
|
+
when FHIR_PACKAGE_NAME_REG_EX
|
20
|
+
uri = ig_registry_url(ig_input)
|
21
|
+
when HTTP_URI_REG_EX
|
22
|
+
uri = ig_http_url(ig_input)
|
23
|
+
when FILE_URI_REG_EX
|
24
|
+
uri = ig_input[7..]
|
25
|
+
else
|
26
|
+
raise StandardError, <<~FAILED_TO_LOAD
|
27
|
+
Could not find implementation guide: #{ig_input}
|
28
|
+
Put its package.tgz file directly in #{ig_path}
|
29
|
+
FAILED_TO_LOAD
|
30
|
+
end
|
31
|
+
|
32
|
+
# use Thor's get to support CLI options config
|
33
|
+
get(uri, ig_file(idx), thor_config)
|
34
|
+
uri
|
35
|
+
end
|
36
|
+
|
37
|
+
def ig_registry_url(ig_npm_style)
|
38
|
+
unless ig_npm_style.include? '@'
|
39
|
+
raise StandardError, <<~NO_VERSION
|
40
|
+
No IG version specified for #{ig_npm_style}; you must specify one with '@'. I.e: hl7.fhir.us.core@6.1.0
|
41
|
+
NO_VERSION
|
42
|
+
end
|
43
|
+
|
44
|
+
package_name, version = ig_npm_style.split('@')
|
45
|
+
"https://packages.fhir.org/#{package_name}/-/#{package_name}-#{version}.tgz"
|
46
|
+
end
|
47
|
+
|
48
|
+
def ig_http_url(ig_page_url)
|
49
|
+
return ig_page_url if ig_page_url.end_with? 'package.tgz'
|
50
|
+
|
51
|
+
return "#{ig_page_url}package.tgz" if ig_page_url.end_with? '/'
|
52
|
+
|
53
|
+
ig_page_url.gsub(HTTP_URI_END_REG_EX, 'package.tgz')
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
data/lib/inferno/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inferno_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.31
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen MacVicar
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2024-
|
13
|
+
date: 2024-03-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -551,6 +551,28 @@ files:
|
|
551
551
|
- lib/inferno/apps/cli/suite.rb
|
552
552
|
- lib/inferno/apps/cli/suite_input_template.rb
|
553
553
|
- lib/inferno/apps/cli/suites.rb
|
554
|
+
- lib/inferno/apps/cli/templates/%library_name%.gemspec.tt
|
555
|
+
- lib/inferno/apps/cli/templates/Dockerfile.tt
|
556
|
+
- lib/inferno/apps/cli/templates/Gemfile.tt
|
557
|
+
- lib/inferno/apps/cli/templates/LICENSE.tt
|
558
|
+
- lib/inferno/apps/cli/templates/Procfile.tt
|
559
|
+
- lib/inferno/apps/cli/templates/README.md.tt
|
560
|
+
- lib/inferno/apps/cli/templates/Rakefile.tt
|
561
|
+
- lib/inferno/apps/cli/templates/config.ru.tt
|
562
|
+
- lib/inferno/apps/cli/templates/config/database.yml.tt
|
563
|
+
- lib/inferno/apps/cli/templates/config/nginx.background.conf.tt
|
564
|
+
- lib/inferno/apps/cli/templates/config/nginx.conf.tt
|
565
|
+
- lib/inferno/apps/cli/templates/config/puma.rb.tt
|
566
|
+
- lib/inferno/apps/cli/templates/docker-compose.background.yml.tt
|
567
|
+
- lib/inferno/apps/cli/templates/docker-compose.yml.tt
|
568
|
+
- lib/inferno/apps/cli/templates/lib/%library_name%.rb.tt
|
569
|
+
- lib/inferno/apps/cli/templates/lib/%library_name%/igs/put_ig_package_dot_tgz_here
|
570
|
+
- lib/inferno/apps/cli/templates/lib/%library_name%/patient_group.rb.tt
|
571
|
+
- lib/inferno/apps/cli/templates/run.sh
|
572
|
+
- lib/inferno/apps/cli/templates/setup.sh
|
573
|
+
- lib/inferno/apps/cli/templates/spec/%library_name%/patient_group_spec.rb.tt
|
574
|
+
- lib/inferno/apps/cli/templates/spec/spec_helper.rb.tt
|
575
|
+
- lib/inferno/apps/cli/templates/worker.rb.tt
|
554
576
|
- lib/inferno/apps/web/application.rb
|
555
577
|
- lib/inferno/apps/web/controllers/controller.rb
|
556
578
|
- lib/inferno/apps/web/controllers/requests/show.rb
|
@@ -603,6 +625,7 @@ files:
|
|
603
625
|
- lib/inferno/db/migrations/007_add_suite_options.rb
|
604
626
|
- lib/inferno/db/migrations/008_remove_timestamps.rb
|
605
627
|
- lib/inferno/db/migrations/009_add_request_tags.rb
|
628
|
+
- lib/inferno/db/migrations/010_add_validator_sessions.rb
|
606
629
|
- lib/inferno/db/schema.rb
|
607
630
|
- lib/inferno/dsl.rb
|
608
631
|
- lib/inferno/dsl/assertions.rb
|
@@ -637,6 +660,7 @@ files:
|
|
637
660
|
- lib/inferno/entities/test_run.rb
|
638
661
|
- lib/inferno/entities/test_session.rb
|
639
662
|
- lib/inferno/entities/test_suite.rb
|
663
|
+
- lib/inferno/entities/validator_session.rb
|
640
664
|
- lib/inferno/exceptions.rb
|
641
665
|
- lib/inferno/ext/fhir_client.rb
|
642
666
|
- lib/inferno/ext/fhir_models.rb
|
@@ -645,6 +669,7 @@ files:
|
|
645
669
|
- lib/inferno/jobs/invoke_validator_session.rb
|
646
670
|
- lib/inferno/jobs/resume_test_run.rb
|
647
671
|
- lib/inferno/public/0e0b993fd6ff351f435ff1c2938daf2d.png
|
672
|
+
- lib/inferno/public/175.bundle.js
|
648
673
|
- lib/inferno/public/217.bundle.js
|
649
674
|
- lib/inferno/public/a5cd39450ab0336db73c5e57228b649d.png
|
650
675
|
- lib/inferno/public/assets.json
|
@@ -668,9 +693,11 @@ files:
|
|
668
693
|
- lib/inferno/repositories/test_suites.rb
|
669
694
|
- lib/inferno/repositories/tests.rb
|
670
695
|
- lib/inferno/repositories/validate_runnable_reference.rb
|
696
|
+
- lib/inferno/repositories/validator_sessions.rb
|
671
697
|
- lib/inferno/result_summarizer.rb
|
672
698
|
- lib/inferno/spec_support.rb
|
673
699
|
- lib/inferno/test_runner.rb
|
700
|
+
- lib/inferno/utils/ig_downloader.rb
|
674
701
|
- lib/inferno/utils/markdown_formatter.rb
|
675
702
|
- lib/inferno/utils/middleware/request_logger.rb
|
676
703
|
- lib/inferno/utils/migration.rb
|