tina4ruby 3.13.137 → 3.13.138
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/CHANGELOG.md +36 -0
- data/COMMERCIAL-LICENSE.md +8 -0
- data/LICENSE +373 -0
- data/LICENSE.txt +373 -21
- data/NOTICE +11 -0
- data/README.md +11 -7
- data/exe/tina4ruby +6 -0
- data/lib/tina4/ai.rb +6 -0
- data/lib/tina4/ai_client.rb +10 -3
- data/lib/tina4/api.rb +57 -7
- data/lib/tina4/auth.rb +18 -12
- data/lib/tina4/auto_crud.rb +83 -27
- data/lib/tina4/background.rb +7 -1
- data/lib/tina4/base64.rb +59 -0
- data/lib/tina4/cache.rb +6 -0
- data/lib/tina4/cache_backends/base_backend.rb +6 -0
- data/lib/tina4/cache_backends/database_backend.rb +6 -0
- data/lib/tina4/cache_backends/file_backend.rb +6 -0
- data/lib/tina4/cache_backends/memcached_backend.rb +6 -0
- data/lib/tina4/cache_backends/memory_backend.rb +6 -0
- data/lib/tina4/cache_backends/mongo_backend.rb +6 -0
- data/lib/tina4/cache_backends/redis_backend.rb +6 -0
- data/lib/tina4/cache_backends/valkey_backend.rb +6 -0
- data/lib/tina4/cache_backends.rb +6 -0
- data/lib/tina4/cli.rb +22 -7
- data/lib/tina4/constants.rb +12 -8
- data/lib/tina4/container.rb +6 -0
- data/lib/tina4/context/chunker.rb +6 -0
- data/lib/tina4/context.rb +13 -5
- data/lib/tina4/cors.rb +66 -10
- data/lib/tina4/crud.rb +78 -9
- data/lib/tina4/database/sqlite3_adapter.rb +9 -1
- data/lib/tina4/database.rb +260 -44
- data/lib/tina4/database_adapter.rb +6 -0
- data/lib/tina4/database_result.rb +6 -0
- data/lib/tina4/database_url.rb +6 -0
- data/lib/tina4/debug.rb +6 -0
- data/lib/tina4/dev.rb +6 -0
- data/lib/tina4/dev_admin.rb +215 -89
- data/lib/tina4/dev_mailbox.rb +6 -1
- data/lib/tina4/dispatch_pipeline.rb +86 -1
- data/lib/tina4/docs.rb +6 -0
- data/lib/tina4/docstore.rb +23 -4
- data/lib/tina4/drivers/arango_graph_driver.rb +8 -1
- data/lib/tina4/drivers/bolt_graph_driver.rb +6 -0
- data/lib/tina4/drivers/firebird_driver.rb +95 -6
- data/lib/tina4/drivers/mongodb_driver.rb +6 -0
- data/lib/tina4/drivers/mssql_driver.rb +54 -39
- data/lib/tina4/drivers/mysql_driver.rb +6 -0
- data/lib/tina4/drivers/odbc_driver.rb +6 -0
- data/lib/tina4/drivers/postgres_driver.rb +35 -8
- data/lib/tina4/drivers/schema_split.rb +6 -0
- data/lib/tina4/drivers/sqlite_driver.rb +8 -1
- data/lib/tina4/drivers/ultipa_graph_driver.rb +6 -0
- data/lib/tina4/env.rb +6 -0
- data/lib/tina4/error_overlay.rb +6 -0
- data/lib/tina4/events.rb +6 -0
- data/lib/tina4/feedback.rb +9 -2
- data/lib/tina4/field_types.rb +6 -0
- data/lib/tina4/form_parser.rb +241 -0
- data/lib/tina4/frond.rb +196 -56
- data/lib/tina4/gallery/auth/src/routes/api/gallery_auth.rb +6 -0
- data/lib/tina4/gallery/database/src/routes/api/gallery_db.rb +6 -0
- data/lib/tina4/gallery/error-overlay/src/routes/api/gallery_crash.rb +6 -0
- data/lib/tina4/gallery/orm/src/routes/api/gallery_products.rb +6 -0
- data/lib/tina4/gallery/queue/src/routes/api/gallery_queue.rb +6 -0
- data/lib/tina4/gallery/rest-api/src/routes/api/gallery_hello.rb +6 -0
- data/lib/tina4/gallery/templates/src/routes/gallery_page.rb +6 -0
- data/lib/tina4/graph.rb +6 -0
- data/lib/tina4/graphql.rb +28 -27
- data/lib/tina4/health.rb +6 -0
- data/lib/tina4/html_element.rb +6 -0
- data/lib/tina4/http_server.rb +690 -0
- data/lib/tina4/imap_client.rb +352 -0
- data/lib/tina4/import_helper.rb +6 -0
- data/lib/tina4/job.rb +6 -0
- data/lib/tina4/localization.rb +6 -0
- data/lib/tina4/log.rb +6 -0
- data/lib/tina4/mail_socket.rb +124 -0
- data/lib/tina4/mcp.rb +15 -8
- data/lib/tina4/messenger.rb +86 -55
- data/lib/tina4/metrics.rb +6 -0
- data/lib/tina4/middleware.rb +24 -9
- data/lib/tina4/migration.rb +6 -0
- data/lib/tina4/model_collection.rb +6 -0
- data/lib/tina4/mqtt.rb +9 -2
- data/lib/tina4/mqtt_message.rb +6 -0
- data/lib/tina4/orm.rb +72 -16
- data/lib/tina4/parse_json.rb +25 -0
- data/lib/tina4/plan.rb +9 -2
- data/lib/tina4/point.rb +6 -0
- data/lib/tina4/port_takeover.rb +6 -0
- data/lib/tina4/project_index.rb +6 -0
- data/lib/tina4/public/THIRD-PARTY-NOTICES.md +55 -0
- data/lib/tina4/public/bundled-component-provenance.json +48 -0
- data/lib/tina4/public/js/tina4js.min.js +13 -3
- data/lib/tina4/public/licenses/swagger-ui-3.10.0-original-notice.txt +11 -0
- data/lib/tina4/public/licenses/swagger-ui-5.17.14-NOTICE.txt +2 -0
- data/lib/tina4/public/licenses/swagger-ui-Apache-2.0.txt +202 -0
- data/lib/tina4/public/licenses/tina4-css-MIT.txt +21 -0
- data/lib/tina4/public/licenses/tina4-dev-admin-components.json +240 -0
- data/lib/tina4/public/licenses/tina4-dev-admin-third-party.txt +919 -0
- data/lib/tina4/public/licenses/tina4-js-MIT.txt +20 -0
- data/lib/tina4/push.rb +9 -3
- data/lib/tina4/query_builder.rb +6 -0
- data/lib/tina4/queue.rb +6 -0
- data/lib/tina4/queue_backends/kafka_backend.rb +10 -2
- data/lib/tina4/queue_backends/lite_backend.rb +6 -0
- data/lib/tina4/queue_backends/mongo_backend.rb +6 -0
- data/lib/tina4/queue_backends/rabbitmq_backend.rb +10 -2
- data/lib/tina4/rack_app.rb +11 -1
- data/lib/tina4/rate_limiter.rb +6 -0
- data/lib/tina4/realtime/attachment.rb +6 -0
- data/lib/tina4/realtime/channel.rb +6 -0
- data/lib/tina4/realtime/channel_member.rb +6 -0
- data/lib/tina4/realtime/local_storage.rb +6 -0
- data/lib/tina4/realtime/message.rb +6 -0
- data/lib/tina4/realtime/s3_storage.rb +6 -0
- data/lib/tina4/realtime/storage.rb +6 -0
- data/lib/tina4/realtime/storage_backend.rb +6 -0
- data/lib/tina4/realtime/workspace.rb +6 -0
- data/lib/tina4/realtime.rb +10 -3
- data/lib/tina4/request.rb +85 -127
- data/lib/tina4/response.rb +71 -9
- data/lib/tina4/response_cache.rb +6 -0
- data/lib/tina4/router.rb +6 -0
- data/lib/tina4/secret_file.rb +34 -0
- data/lib/tina4/seeder.rb +9 -3
- data/lib/tina4/service.rb +8 -2
- data/lib/tina4/service_runner.rb +6 -0
- data/lib/tina4/session.rb +6 -0
- data/lib/tina4/session_handlers/database_handler.rb +6 -0
- data/lib/tina4/session_handlers/file_handler.rb +6 -0
- data/lib/tina4/session_handlers/memcached_handler.rb +6 -0
- data/lib/tina4/session_handlers/mongo_handler.rb +108 -39
- data/lib/tina4/session_handlers/mongo_wire_client.rb +23 -9
- data/lib/tina4/session_handlers/redis_handler.rb +6 -0
- data/lib/tina4/session_handlers/resp_client.rb +6 -0
- data/lib/tina4/session_handlers/valkey_handler.rb +6 -0
- data/lib/tina4/shutdown.rb +17 -14
- data/lib/tina4/smtp_client.rb +222 -0
- data/lib/tina4/sql_translator.rb +93 -0
- data/lib/tina4/sqlite3_gem.rb +27 -0
- data/lib/tina4/sso.rb +25 -8
- data/lib/tina4/swagger.rb +6 -0
- data/lib/tina4/template.rb +6 -0
- data/lib/tina4/test.rb +8 -2
- data/lib/tina4/test_client.rb +8 -1
- data/lib/tina4/testing.rb +8 -1
- data/lib/tina4/validator.rb +6 -0
- data/lib/tina4/version.rb +7 -1
- data/lib/tina4/webserver.rb +25 -143
- data/lib/tina4/websocket.rb +10 -4
- data/lib/tina4/websocket_backplane.rb +19 -2
- data/lib/tina4/wsdl.rb +31 -16
- data/lib/tina4/xml_parser.rb +259 -0
- data/lib/tina4.rb +87 -31
- data/lib/tina4ruby.rb +6 -0
- metadata +43 -140
data/lib/tina4.rb
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# Copyright (c) 2026 Code Infinity
|
|
3
|
+
# SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
5
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
|
+
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
|
+
|
|
2
8
|
|
|
3
9
|
# ── Core (always loaded) ──────────────────────────────────────────────
|
|
4
10
|
require_relative "tina4/version"
|
|
@@ -144,6 +150,8 @@ module Tina4
|
|
|
144
150
|
|
|
145
151
|
# ── Lazy-loaded: web server ───────────────────────────────────────────
|
|
146
152
|
autoload :WebServer, File.expand_path("tina4/webserver", __dir__)
|
|
153
|
+
autoload :HttpServer, File.expand_path("tina4/http_server", __dir__)
|
|
154
|
+
autoload :FormParser, File.expand_path("tina4/form_parser", __dir__)
|
|
147
155
|
|
|
148
156
|
# ── Lazy-loaded: optional modules ─────────────────────────────────────
|
|
149
157
|
autoload :Swagger, File.expand_path("tina4/swagger", __dir__)
|
|
@@ -351,6 +359,13 @@ module Tina4
|
|
|
351
359
|
/_/ /_/_/ /_/\__,_/ /_/
|
|
352
360
|
BANNER
|
|
353
361
|
|
|
362
|
+
# Environment variables that mean "this is a CI run" - the ADR-0070 union
|
|
363
|
+
# across the four frameworks and the CLI. No one is there to see a tab.
|
|
364
|
+
CI_ENV_VARS = %w[CI CONTINUOUS_INTEGRATION GITHUB_ACTIONS GITLAB_CI BUILDKITE
|
|
365
|
+
JENKINS_URL TF_BUILD TEAMCITY_VERSION].freeze
|
|
366
|
+
# A CI variable set to one of these does not mean CI (ADR-0070 ci_false).
|
|
367
|
+
CI_FALSE_VALUES = %w[false 0 no off].freeze
|
|
368
|
+
|
|
354
369
|
class << self
|
|
355
370
|
attr_accessor :root_dir
|
|
356
371
|
attr_reader :database
|
|
@@ -404,18 +419,14 @@ module Tina4
|
|
|
404
419
|
log_level = (ENV["TINA4_LOG_LEVEL"] || "ALL").upcase
|
|
405
420
|
display = (host == "0.0.0.0" || host == "::") ? "localhost" : host
|
|
406
421
|
|
|
407
|
-
# Auto-detect server name if not provided
|
|
422
|
+
# Auto-detect server name if not provided: Puma only when production
|
|
423
|
+
# would actually pick it (ADR-0067), otherwise Tina4's own server.
|
|
408
424
|
if server_name.nil?
|
|
409
|
-
if is_debug
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
server_name = "puma"
|
|
415
|
-
rescue LoadError
|
|
416
|
-
server_name = "WEBrick"
|
|
417
|
-
end
|
|
418
|
-
end
|
|
425
|
+
server_name = if !is_debug && !builtin_webserver_pinned? && puma_available?
|
|
426
|
+
"puma"
|
|
427
|
+
else
|
|
428
|
+
Tina4::HttpServer::SOFTWARE
|
|
429
|
+
end
|
|
419
430
|
end
|
|
420
431
|
|
|
421
432
|
puts "#{color}#{BANNER}#{reset}"
|
|
@@ -438,8 +449,10 @@ module Tina4
|
|
|
438
449
|
def initialize!(root_dir = Dir.pwd)
|
|
439
450
|
@root_dir = root_dir
|
|
440
451
|
|
|
441
|
-
#
|
|
442
|
-
|
|
452
|
+
# No banner here. The server start prints it (start_puma_server,
|
|
453
|
+
# WebServer#start) once the bind host and port are resolved; printed from
|
|
454
|
+
# here it named print_banner's defaults, localhost:7147, whatever the
|
|
455
|
+
# server really bound. Python prints it from run() for the same reason.
|
|
443
456
|
|
|
444
457
|
# Load environment. Precedence: real-env > .env.local > .env
|
|
445
458
|
# (.env.local loads first, both first-wins, so a real env var always wins).
|
|
@@ -530,14 +543,48 @@ module Tina4
|
|
|
530
543
|
start
|
|
531
544
|
end
|
|
532
545
|
|
|
533
|
-
|
|
546
|
+
# Open the app in a browser only when ALL of these hold (ADR-0070):
|
|
547
|
+
# * development: TINA4_DEBUG is truthy - never production or Puma
|
|
548
|
+
# * TINA4_NO_BROWSER is not truthy (true/1/yes/on, trimmed, any case)
|
|
549
|
+
# * --no-browser was not passed, and no_browser: true was not given
|
|
550
|
+
# * no CI variable vetoes (see ci_run?)
|
|
551
|
+
# open_browser used to check none of it, so every app.rb booted through
|
|
552
|
+
# run! - and every spec that did so - popped a real tab.
|
|
553
|
+
def browser_launch_allowed?(argv: ARGV, no_browser: false)
|
|
554
|
+
return false if no_browser
|
|
555
|
+
return false unless Tina4::Env.is_truthy(ENV["TINA4_DEBUG"])
|
|
556
|
+
return false if Tina4::Env.is_truthy(ENV["TINA4_NO_BROWSER"])
|
|
557
|
+
return false if argv.include?("--no-browser")
|
|
558
|
+
|
|
559
|
+
!ci_run?
|
|
560
|
+
end
|
|
561
|
+
|
|
562
|
+
# A CI variable vetoes when it is set to a non-empty value (after
|
|
563
|
+
# trimming) that is not one of CI_FALSE_VALUES, case-insensitively - so
|
|
564
|
+
# CI=woodpecker vetoes and CI=false does not (ADR-0070).
|
|
565
|
+
def ci_run?
|
|
566
|
+
CI_ENV_VARS.any? do |name|
|
|
567
|
+
value = ENV[name].to_s.strip.downcase
|
|
568
|
+
!value.empty? && !CI_FALSE_VALUES.include?(value)
|
|
569
|
+
end
|
|
570
|
+
end
|
|
571
|
+
|
|
572
|
+
# TINA4_BROWSER_COMMAND names the launcher to run instead of the OS default
|
|
573
|
+
# (open / start / xdg-open); it receives the URL as its only argument.
|
|
574
|
+
def open_browser(url, no_browser: false)
|
|
575
|
+
return unless browser_launch_allowed?(no_browser: no_browser)
|
|
576
|
+
|
|
534
577
|
require "rbconfig"
|
|
578
|
+
command = ENV["TINA4_BROWSER_COMMAND"].to_s.strip
|
|
535
579
|
Thread.new do
|
|
536
580
|
sleep 2
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
581
|
+
if !command.empty? then system(command, url)
|
|
582
|
+
else
|
|
583
|
+
case RbConfig::CONFIG["host_os"]
|
|
584
|
+
when /darwin/i then system("open", url)
|
|
585
|
+
when /mswin|mingw/i then system("start", url)
|
|
586
|
+
else system("xdg-open", url)
|
|
587
|
+
end
|
|
541
588
|
end
|
|
542
589
|
end
|
|
543
590
|
end
|
|
@@ -550,18 +597,25 @@ module Tina4
|
|
|
550
597
|
Tina4::Frond.register_live_endpoint!
|
|
551
598
|
end
|
|
552
599
|
|
|
553
|
-
|
|
600
|
+
# no_browser: true keeps the browser shut (Python run(no_browser=True));
|
|
601
|
+
# false never forces one open (ADR-0070).
|
|
602
|
+
def run!(root_dir = nil, port: nil, host: nil, debug: nil, no_browser: false)
|
|
554
603
|
# Handle legacy call: run!(port: 7147) where root_dir receives the hash
|
|
555
604
|
if root_dir.is_a?(Hash)
|
|
556
605
|
port ||= root_dir[:port]
|
|
557
606
|
host ||= root_dir[:host]
|
|
558
607
|
debug = root_dir[:debug] if debug.nil? && root_dir.key?(:debug)
|
|
608
|
+
no_browser ||= root_dir[:no_browser]
|
|
559
609
|
root_dir = nil
|
|
560
610
|
end
|
|
561
611
|
root_dir ||= Dir.pwd
|
|
562
612
|
|
|
563
|
-
|
|
564
|
-
|
|
613
|
+
# An explicit argument beats the environment (ADR-0041), so it goes into
|
|
614
|
+
# the framework's own variables, which outrank everything else. Written
|
|
615
|
+
# into the bare PORT/HOST it lost to TINA4_PORT/TINA4_HOST and warned the
|
|
616
|
+
# app about a deprecated variable it never set.
|
|
617
|
+
ENV["TINA4_PORT"] = port.to_s if port
|
|
618
|
+
ENV["TINA4_HOST"] = host.to_s if host
|
|
565
619
|
ENV["TINA4_DEBUG"] = debug.to_s unless debug.nil?
|
|
566
620
|
|
|
567
621
|
initialize!(root_dir) unless @root_dir
|
|
@@ -603,22 +657,21 @@ module Tina4
|
|
|
603
657
|
app = Tina4::RackApp.new(root_dir: root_dir)
|
|
604
658
|
is_debug = Tina4::Env.is_truthy(ENV["TINA4_DEBUG"])
|
|
605
659
|
|
|
606
|
-
#
|
|
660
|
+
# Puma when the APPLICATION bundles it (ADR-0067), otherwise the
|
|
661
|
+
# built-in server - in development AND production, as in Python.
|
|
607
662
|
if !is_debug && !builtin_webserver_pinned? && puma_available?
|
|
608
|
-
open_browser(url)
|
|
609
663
|
start_puma_server(app, host: host, port: port)
|
|
610
664
|
return
|
|
611
665
|
end
|
|
612
666
|
|
|
613
|
-
|
|
614
|
-
open_browser(url)
|
|
667
|
+
open_browser(url, no_browser: no_browser)
|
|
615
668
|
server = Tina4::WebServer.new(app, host: host, port: port)
|
|
616
669
|
server.start
|
|
617
670
|
end
|
|
618
671
|
|
|
619
|
-
# TINA4_DEFAULT_WEBSERVER=TRUE pins Tina4's BUILT-IN server
|
|
620
|
-
#
|
|
621
|
-
#
|
|
672
|
+
# TINA4_DEFAULT_WEBSERVER=TRUE pins Tina4's BUILT-IN server even when the
|
|
673
|
+
# application bundles Puma, which production would otherwise pick
|
|
674
|
+
# (ADR-0067). Unset/FALSE: Puma if it is loadable, else the built-in server.
|
|
622
675
|
#
|
|
623
676
|
# This is NOT the remedy for a production shutdown problem - an operator
|
|
624
677
|
# must never have to give up Puma to get their database connections closed.
|
|
@@ -628,8 +681,10 @@ module Tina4
|
|
|
628
681
|
Tina4::Env.is_truthy(ENV["TINA4_DEFAULT_WEBSERVER"])
|
|
629
682
|
end
|
|
630
683
|
|
|
631
|
-
# Is Puma loadable?
|
|
632
|
-
#
|
|
684
|
+
# Is Puma loadable? Puma is NOT a Tina4 dependency (ADR-0067): it is used
|
|
685
|
+
# only when the application installs it (under Bundler, when its Gemfile
|
|
686
|
+
# lists it). Separate from start_puma_server so the caller can fall back to
|
|
687
|
+
# the built-in server BEFORE any side effect (opening a browser) happens.
|
|
633
688
|
def puma_available?
|
|
634
689
|
require "puma"
|
|
635
690
|
require "puma/configuration"
|
|
@@ -674,6 +729,7 @@ module Tina4
|
|
|
674
729
|
user_config.raise_exception_on_sigterm false
|
|
675
730
|
end
|
|
676
731
|
|
|
732
|
+
print_banner(host: host, port: port, server_name: "puma")
|
|
677
733
|
Tina4::Log.info("Production server: puma (TINA4_SHUTDOWN_TIMEOUT=#{shutdown_timeout}s)")
|
|
678
734
|
begin
|
|
679
735
|
Puma::Launcher.new(config).run
|
|
@@ -916,7 +972,7 @@ module Tina4
|
|
|
916
972
|
if db_url && !db_url.empty?
|
|
917
973
|
begin
|
|
918
974
|
bind_database(Tina4::Database.new(db_url))
|
|
919
|
-
Tina4::Log.info("Database connected: #{
|
|
975
|
+
Tina4::Log.info("Database connected: #{Tina4::DatabaseUrl.redact(db_url)}")
|
|
920
976
|
rescue => e
|
|
921
977
|
Tina4::Log.error("Database connection failed: #{e.message}")
|
|
922
978
|
end
|
data/lib/tina4ruby.rb
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
# Copyright (c) 2026 Code Infinity
|
|
3
|
+
# SPDX-License-Identifier: MPL-2.0
|
|
4
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
5
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
6
|
+
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
7
|
+
|
|
2
8
|
|
|
3
9
|
# Alias: `require "tina4ruby"` loads the same code as `require "tina4"`
|
|
4
10
|
require_relative "tina4"
|
metadata
CHANGED
|
@@ -1,183 +1,63 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tina4ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.13.
|
|
4
|
+
version: 3.13.138
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tina4 Team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-09-
|
|
11
|
+
date: 2026-09-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: sqlite3
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
20
|
-
type: :
|
|
19
|
+
version: '2.0'
|
|
20
|
+
type: :development
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
26
|
+
version: '2.0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: listen
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
34
|
-
type: :
|
|
33
|
+
version: '3.8'
|
|
34
|
+
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
40
|
+
version: '3.8'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: puma
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
48
|
-
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '6.0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: net-smtp
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '0.5'
|
|
62
|
-
type: :runtime
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - "~>"
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '0.5'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: net-imap
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0.5'
|
|
76
|
-
type: :runtime
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0.5'
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: json
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - "~>"
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '2.7'
|
|
90
|
-
type: :runtime
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - "~>"
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '2.7'
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: rexml
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
100
|
-
requirements:
|
|
101
|
-
- - "~>"
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: '3.2'
|
|
104
|
-
type: :runtime
|
|
105
|
-
prerelease: false
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
requirements:
|
|
108
|
-
- - "~>"
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: '3.2'
|
|
111
|
-
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: webrick
|
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - "~>"
|
|
116
|
-
- !ruby/object:Gem::Version
|
|
117
|
-
version: '1.8'
|
|
118
|
-
type: :runtime
|
|
119
|
-
prerelease: false
|
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
requirements:
|
|
122
|
-
- - "~>"
|
|
123
|
-
- !ruby/object:Gem::Version
|
|
124
|
-
version: '1.8'
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: logger
|
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
|
128
|
-
requirements:
|
|
129
|
-
- - "~>"
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: '1.6'
|
|
132
|
-
type: :runtime
|
|
133
|
-
prerelease: false
|
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
-
requirements:
|
|
136
|
-
- - "~>"
|
|
137
|
-
- !ruby/object:Gem::Version
|
|
138
|
-
version: '1.6'
|
|
139
|
-
- !ruby/object:Gem::Dependency
|
|
140
|
-
name: base64
|
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
|
142
|
-
requirements:
|
|
143
|
-
- - "~>"
|
|
144
|
-
- !ruby/object:Gem::Version
|
|
145
|
-
version: '0.2'
|
|
146
|
-
type: :runtime
|
|
147
|
-
prerelease: false
|
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
-
requirements:
|
|
150
|
-
- - "~>"
|
|
151
|
-
- !ruby/object:Gem::Version
|
|
152
|
-
version: '0.2'
|
|
153
|
-
- !ruby/object:Gem::Dependency
|
|
154
|
-
name: sqlite3
|
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
|
156
|
-
requirements:
|
|
157
|
-
- - "~>"
|
|
158
|
-
- !ruby/object:Gem::Version
|
|
159
|
-
version: '2.0'
|
|
160
|
-
type: :runtime
|
|
161
|
-
prerelease: false
|
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
-
requirements:
|
|
164
|
-
- - "~>"
|
|
47
|
+
version: '7.2'
|
|
48
|
+
- - ">="
|
|
165
49
|
- !ruby/object:Gem::Version
|
|
166
|
-
version:
|
|
167
|
-
- !ruby/object:Gem::Dependency
|
|
168
|
-
name: listen
|
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
|
170
|
-
requirements:
|
|
171
|
-
- - "~>"
|
|
172
|
-
- !ruby/object:Gem::Version
|
|
173
|
-
version: '3.8'
|
|
50
|
+
version: 7.2.1
|
|
174
51
|
type: :development
|
|
175
52
|
prerelease: false
|
|
176
53
|
version_requirements: !ruby/object:Gem::Requirement
|
|
177
54
|
requirements:
|
|
178
55
|
- - "~>"
|
|
179
56
|
- !ruby/object:Gem::Version
|
|
180
|
-
version: '
|
|
57
|
+
version: '7.2'
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 7.2.1
|
|
181
61
|
- !ruby/object:Gem::Dependency
|
|
182
62
|
name: mongo
|
|
183
63
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -290,8 +170,9 @@ dependencies:
|
|
|
290
170
|
- - "~>"
|
|
291
171
|
- !ruby/object:Gem::Version
|
|
292
172
|
version: '0.10'
|
|
293
|
-
description: 'TINA4: The Intelligent Native Application 4ramework for Ruby. A
|
|
294
|
-
backend with native Ruby conventions and shared cross-language
|
|
173
|
+
description: 'TINA4: The Intelligent Native Application 4ramework for Ruby. A zero-dependency
|
|
174
|
+
backend with its own HTTP server, native Ruby conventions and shared cross-language
|
|
175
|
+
contracts.'
|
|
295
176
|
email:
|
|
296
177
|
- info@tina4.com
|
|
297
178
|
executables:
|
|
@@ -300,7 +181,10 @@ extensions: []
|
|
|
300
181
|
extra_rdoc_files: []
|
|
301
182
|
files:
|
|
302
183
|
- CHANGELOG.md
|
|
184
|
+
- COMMERCIAL-LICENSE.md
|
|
185
|
+
- LICENSE
|
|
303
186
|
- LICENSE.txt
|
|
187
|
+
- NOTICE
|
|
304
188
|
- README.md
|
|
305
189
|
- exe/tina4ruby
|
|
306
190
|
- lib/tina4.rb
|
|
@@ -310,6 +194,7 @@ files:
|
|
|
310
194
|
- lib/tina4/auth.rb
|
|
311
195
|
- lib/tina4/auto_crud.rb
|
|
312
196
|
- lib/tina4/background.rb
|
|
197
|
+
- lib/tina4/base64.rb
|
|
313
198
|
- lib/tina4/cache.rb
|
|
314
199
|
- lib/tina4/cache_backends.rb
|
|
315
200
|
- lib/tina4/cache_backends/base_backend.rb
|
|
@@ -355,6 +240,7 @@ files:
|
|
|
355
240
|
- lib/tina4/events.rb
|
|
356
241
|
- lib/tina4/feedback.rb
|
|
357
242
|
- lib/tina4/field_types.rb
|
|
243
|
+
- lib/tina4/form_parser.rb
|
|
358
244
|
- lib/tina4/frond.rb
|
|
359
245
|
- lib/tina4/gallery/auth/meta.json
|
|
360
246
|
- lib/tina4/gallery/auth/src/routes/api/gallery_auth.rb
|
|
@@ -375,10 +261,13 @@ files:
|
|
|
375
261
|
- lib/tina4/graphql.rb
|
|
376
262
|
- lib/tina4/health.rb
|
|
377
263
|
- lib/tina4/html_element.rb
|
|
264
|
+
- lib/tina4/http_server.rb
|
|
265
|
+
- lib/tina4/imap_client.rb
|
|
378
266
|
- lib/tina4/import_helper.rb
|
|
379
267
|
- lib/tina4/job.rb
|
|
380
268
|
- lib/tina4/localization.rb
|
|
381
269
|
- lib/tina4/log.rb
|
|
270
|
+
- lib/tina4/mail_socket.rb
|
|
382
271
|
- lib/tina4/mcp.rb
|
|
383
272
|
- lib/tina4/messenger.rb
|
|
384
273
|
- lib/tina4/metrics.rb
|
|
@@ -388,11 +277,14 @@ files:
|
|
|
388
277
|
- lib/tina4/mqtt.rb
|
|
389
278
|
- lib/tina4/mqtt_message.rb
|
|
390
279
|
- lib/tina4/orm.rb
|
|
280
|
+
- lib/tina4/parse_json.rb
|
|
391
281
|
- lib/tina4/plan.rb
|
|
392
282
|
- lib/tina4/point.rb
|
|
393
283
|
- lib/tina4/port_takeover.rb
|
|
394
284
|
- lib/tina4/project_index.rb
|
|
285
|
+
- lib/tina4/public/THIRD-PARTY-NOTICES.md
|
|
395
286
|
- lib/tina4/public/__feedback/widget.js
|
|
287
|
+
- lib/tina4/public/bundled-component-provenance.json
|
|
396
288
|
- lib/tina4/public/css/tina4.css
|
|
397
289
|
- lib/tina4/public/css/tina4.min.css
|
|
398
290
|
- lib/tina4/public/favicon.ico
|
|
@@ -403,6 +295,13 @@ files:
|
|
|
403
295
|
- lib/tina4/public/js/tina4-dev-admin.min.js
|
|
404
296
|
- lib/tina4/public/js/tina4.min.js
|
|
405
297
|
- lib/tina4/public/js/tina4js.min.js
|
|
298
|
+
- lib/tina4/public/licenses/swagger-ui-3.10.0-original-notice.txt
|
|
299
|
+
- lib/tina4/public/licenses/swagger-ui-5.17.14-NOTICE.txt
|
|
300
|
+
- lib/tina4/public/licenses/swagger-ui-Apache-2.0.txt
|
|
301
|
+
- lib/tina4/public/licenses/tina4-css-MIT.txt
|
|
302
|
+
- lib/tina4/public/licenses/tina4-dev-admin-components.json
|
|
303
|
+
- lib/tina4/public/licenses/tina4-dev-admin-third-party.txt
|
|
304
|
+
- lib/tina4/public/licenses/tina4-js-MIT.txt
|
|
406
305
|
- lib/tina4/public/swagger/index.html
|
|
407
306
|
- lib/tina4/public/swagger/oauth2-redirect.html
|
|
408
307
|
- lib/tina4/push.rb
|
|
@@ -428,6 +327,7 @@ files:
|
|
|
428
327
|
- lib/tina4/response.rb
|
|
429
328
|
- lib/tina4/response_cache.rb
|
|
430
329
|
- lib/tina4/router.rb
|
|
330
|
+
- lib/tina4/secret_file.rb
|
|
431
331
|
- lib/tina4/seeder.rb
|
|
432
332
|
- lib/tina4/service.rb
|
|
433
333
|
- lib/tina4/service_runner.rb
|
|
@@ -441,7 +341,9 @@ files:
|
|
|
441
341
|
- lib/tina4/session_handlers/resp_client.rb
|
|
442
342
|
- lib/tina4/session_handlers/valkey_handler.rb
|
|
443
343
|
- lib/tina4/shutdown.rb
|
|
344
|
+
- lib/tina4/smtp_client.rb
|
|
444
345
|
- lib/tina4/sql_translator.rb
|
|
346
|
+
- lib/tina4/sqlite3_gem.rb
|
|
445
347
|
- lib/tina4/sso.rb
|
|
446
348
|
- lib/tina4/swagger.rb
|
|
447
349
|
- lib/tina4/template.rb
|
|
@@ -463,10 +365,11 @@ files:
|
|
|
463
365
|
- lib/tina4/websocket.rb
|
|
464
366
|
- lib/tina4/websocket_backplane.rb
|
|
465
367
|
- lib/tina4/wsdl.rb
|
|
368
|
+
- lib/tina4/xml_parser.rb
|
|
466
369
|
- lib/tina4ruby.rb
|
|
467
370
|
homepage: https://tina4.com
|
|
468
371
|
licenses:
|
|
469
|
-
-
|
|
372
|
+
- MPL-2.0
|
|
470
373
|
metadata:
|
|
471
374
|
homepage_uri: https://tina4.com
|
|
472
375
|
post_install_message:
|