mirror of
https://github.com/ash-project/ash_hq.git
synced 2024-09-19 21:03:30 +12:00
WIP
This commit is contained in:
parent
4e219667f2
commit
6085b1bbca
18 changed files with 567 additions and 205 deletions
|
@ -256,7 +256,7 @@ liveSocket.connect()
|
|||
|
||||
|
||||
// expose liveSocket on window for web console debug logs and latency simulation:
|
||||
// >> liveSocket.enableDebug()
|
||||
liveSocket.enableDebug()
|
||||
// >> liveSocket.enableLatencySim(1000) // enabled for duration of browser session
|
||||
// >> liveSocket.disableLatencySim()
|
||||
window.liveSocket = liveSocket
|
||||
|
|
127
lib/ash_hq/docs/flows/search/steps/experimental_run_search.ex
Normal file
127
lib/ash_hq/docs/flows/search/steps/experimental_run_search.ex
Normal file
|
@ -0,0 +1,127 @@
|
|||
# defmodule AshHq.Docs.Search.Steps.RunSearch do
|
||||
# use Ash.Flow.Step
|
||||
# import Ecto.Query, only: [from: 2]
|
||||
# require Ecto.Query
|
||||
# require Ash.Query
|
||||
|
||||
# @resources AshHq.Docs.Registry
|
||||
# |> Ash.Registry.entries()
|
||||
# |> Enum.filter(&(AshHq.Docs.Extensions.Search in Ash.Resource.Info.extensions(&1)))
|
||||
|
||||
# def run(input, _opts, _context) do
|
||||
# @resources
|
||||
# |> Enum.reduce(nil, fn resource, query ->
|
||||
# {:ok, next_query} =
|
||||
# resource
|
||||
# |> Ash.Query.for_read(:search, %{
|
||||
# library_versions: input[:library_versions],
|
||||
# query: input[:query]
|
||||
# })
|
||||
# |> Ash.Query.select([:id])
|
||||
# |> Ash.Query.data_layer_query()
|
||||
|
||||
# next_query =
|
||||
# from row in next_query,
|
||||
# select_merge: %{__metadata__: %{resource: ^to_string(resource)}}
|
||||
|
||||
# if query do
|
||||
# Ecto.Query.union_all(query, ^next_query)
|
||||
# else
|
||||
# next_query
|
||||
# end
|
||||
# end)
|
||||
# |> then(fn query ->
|
||||
# query =
|
||||
# from row in query,
|
||||
# order_by: [
|
||||
# fragment(
|
||||
# "ts_rank(setweight(to_tsvector(?), 'A') || setweight(to_tsvector(?), 'D'), plainto_tsquery(?))",
|
||||
# field(row, ^name_attribute),
|
||||
# field(row, ^doc_attribute),
|
||||
# ^input[:query]
|
||||
# )
|
||||
# ],
|
||||
# limit: 20
|
||||
|
||||
# ids = AshHq.Repo.all(query)
|
||||
|
||||
# data =
|
||||
# ids
|
||||
# |> Enum.group_by(& &1.__metadata__.resource, & &1)
|
||||
# |> Enum.reduce(%{}, fn {resource, id_data}, results ->
|
||||
# resource = Module.concat([resource])
|
||||
# primary_read = Ash.Resource.Info.primary_action!(resource, :read).name
|
||||
# to_load = AshHq.Docs.Extensions.Search.load_for_search(resource)
|
||||
# ids = Enum.map(id_data, & &1.id)
|
||||
|
||||
# resource
|
||||
# |> Ash.Query.filter(id in ^ids)
|
||||
# |> Ash.Query.load(
|
||||
# search_headline: %{query: input[:query]},
|
||||
# name_matches: %{query: input[:query], similarity: 0.7},
|
||||
# match_rank: %{query: input[:query]}
|
||||
# )
|
||||
# |> Ash.Query.load(to_load)
|
||||
# |> Ash.Query.for_read(primary_read)
|
||||
# |> AshHq.Docs.read!()
|
||||
# |> Enum.reduce(results, fn item, results ->
|
||||
# Map.put(results, item.id, item)
|
||||
# end)
|
||||
# end)
|
||||
|
||||
# {:ok,
|
||||
# Enum.map(ids, fn %{id: id} ->
|
||||
# Map.fetch!(data, id)
|
||||
# end)}
|
||||
# end)
|
||||
# end
|
||||
|
||||
# # read :options, AshHq.Docs.Option, :search do
|
||||
# # input %{
|
||||
# # library_versions: arg(:library_versions),
|
||||
# # query: arg(:query)
|
||||
# # }
|
||||
# # end
|
||||
|
||||
# # read :dsls, AshHq.Docs.Dsl, :search do
|
||||
# # input %{
|
||||
# # library_versions: arg(:library_versions),
|
||||
# # query: arg(:query)
|
||||
# # }
|
||||
# # end
|
||||
|
||||
# # read :guides, AshHq.Docs.Guide, :search do
|
||||
# # input %{
|
||||
# # library_versions: arg(:library_versions),
|
||||
# # query: arg(:query)
|
||||
# # }
|
||||
# # end
|
||||
|
||||
# # read :library_versions, AshHq.Docs.LibraryVersion, :search do
|
||||
# # input %{
|
||||
# # library_versions: arg(:library_versions),
|
||||
# # query: arg(:query)
|
||||
# # }
|
||||
# # end
|
||||
|
||||
# # read :extensions, AshHq.Docs.Extension, :search do
|
||||
# # input %{
|
||||
# # library_versions: arg(:library_versions),
|
||||
# # query: arg(:query)
|
||||
# # }
|
||||
# # end
|
||||
|
||||
# # read :functions, AshHq.Docs.Function, :search do
|
||||
# # input %{
|
||||
# # library_versions: arg(:library_versions),
|
||||
# # query: arg(:query)
|
||||
# # }
|
||||
# # end
|
||||
|
||||
# # read :modules, AshHq.Docs.Module, :search do
|
||||
# # input %{
|
||||
# # library_versions: arg(:library_versions),
|
||||
# # query: arg(:query)
|
||||
# # }
|
||||
# # end
|
||||
# end
|
|
@ -54,9 +54,6 @@ defmodule AshHq.Docs.Importer do
|
|||
Enum.find(already_defined_versions, &(&1.version == version))
|
||||
end)
|
||||
end
|
||||
|> tap(fn versions ->
|
||||
Enum.map(versions, & &1.version)
|
||||
end)
|
||||
|> Enum.concat(Enum.map(library.track_branches, &{&1, true}))
|
||||
|> Enum.each(fn version ->
|
||||
{version, branch?} =
|
||||
|
@ -83,7 +80,7 @@ defmodule AshHq.Docs.Importer do
|
|||
if result do
|
||||
AshHq.Repo.transaction(fn ->
|
||||
id =
|
||||
case LibraryVersion.by_version(version) do
|
||||
case LibraryVersion.by_version(library.id, version) do
|
||||
{:ok, version} ->
|
||||
LibraryVersion.destroy!(version)
|
||||
version.id
|
||||
|
@ -92,30 +89,22 @@ defmodule AshHq.Docs.Importer do
|
|||
Ash.UUID.generate()
|
||||
end
|
||||
|
||||
LibraryVersion.build!(library.id, version, result, %{
|
||||
timeout: :infinity,
|
||||
id: id,
|
||||
doc: result[:doc],
|
||||
guides: result[:guides],
|
||||
modules: result[:modules]
|
||||
})
|
||||
LibraryVersion.build!(
|
||||
library.id,
|
||||
version,
|
||||
%{
|
||||
timeout: :infinity,
|
||||
id: id,
|
||||
extensions: result[:extensions],
|
||||
doc: result[:doc],
|
||||
guides: result[:guides],
|
||||
modules: result[:modules]
|
||||
}
|
||||
)
|
||||
end)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
for version <- LibraryVersion.unprocessed!() do
|
||||
try do
|
||||
LibraryVersion.process!(version, timeout: :infinity)
|
||||
rescue
|
||||
e ->
|
||||
Logger.error(
|
||||
"Exception while importing: #{version.id}\n#{Exception.format(:error, e, __STACKTRACE__)}"
|
||||
)
|
||||
|
||||
:ok
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
defp filter_by_version(versions, latest_version) do
|
||||
|
|
|
@ -36,6 +36,7 @@ defmodule AshHq.Docs.Dsl do
|
|||
defaults [:read, :destroy]
|
||||
|
||||
create :create do
|
||||
primary? true
|
||||
argument :options, {:array, :map}
|
||||
argument :library_version, :uuid
|
||||
|
||||
|
@ -49,19 +50,6 @@ defmodule AshHq.Docs.Dsl do
|
|||
change manage_relationship(:options, type: :direct_control)
|
||||
change manage_relationship(:library_version, type: :replace)
|
||||
end
|
||||
|
||||
update :update do
|
||||
argument :options, {:array, :map}
|
||||
argument :library_version, :uuid
|
||||
|
||||
change {AshHq.Docs.Changes.AddArgToRelationship,
|
||||
attr: :extension_id, arg: :extension_id, rel: :options}
|
||||
|
||||
change {AshHq.Docs.Changes.AddArgToRelationship, arg: :library_version, rel: :options}
|
||||
|
||||
change manage_relationship(:options, type: :direct_control)
|
||||
change manage_relationship(:library_version, type: :replace)
|
||||
end
|
||||
end
|
||||
|
||||
attributes do
|
||||
|
|
|
@ -27,14 +27,15 @@ defmodule AshHq.Docs.Extension do
|
|||
code_interface do
|
||||
define_for AshHq.Docs
|
||||
|
||||
define :import, args: [:library_version]
|
||||
define :destroy
|
||||
end
|
||||
|
||||
actions do
|
||||
defaults [:read, :update, :destroy]
|
||||
|
||||
create :import do
|
||||
create :create do
|
||||
primary? true
|
||||
|
||||
argument :library_version, :uuid do
|
||||
allow_nil? false
|
||||
end
|
||||
|
@ -46,7 +47,7 @@ defmodule AshHq.Docs.Extension do
|
|||
change {AshHq.Docs.Changes.AddArgToRelationship,
|
||||
attr: :id, arg: :extension_id, rel: :dsls, generate: &Ash.UUID.generate/0}
|
||||
|
||||
change manage_relationship(:dsls, type: :direct_control)
|
||||
change manage_relationship(:dsls, type: :create)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
defmodule AshHq.Docs.LibraryVersion.Changes.ProcessLibraryVersion do
|
||||
use Ash.Resource.Change
|
||||
|
||||
require Logger
|
||||
|
||||
alias AshHq.Docs
|
||||
alias AshHq.Docs.{Extension}
|
||||
|
||||
def change(changeset, _, _) do
|
||||
Ash.Changeset.before_action(changeset, fn changeset ->
|
||||
if changeset.data.processed do
|
||||
changeset
|
||||
else
|
||||
notifications = process(changeset.data, Ash.Changeset.get_attribute(changeset, :data))
|
||||
|
||||
{Ash.Changeset.force_change_attribute(changeset, :processed, true),
|
||||
%{notifications: notifications}}
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
defp process(library_version, data) do
|
||||
library_version = Docs.load!(library_version, :extensions)
|
||||
process_extensions(library_version, data["extensions"] || [])
|
||||
end
|
||||
|
||||
defp process_extensions(library_version, extensions) do
|
||||
{extensions, notifications} =
|
||||
Enum.reduce(extensions, {[], []}, fn config, {extensions, notifications} ->
|
||||
case Extension.import(library_version.id, config,
|
||||
upsert?: true,
|
||||
upsert_identity: :unique_name_by_library_version,
|
||||
return_notifications?: true
|
||||
) do
|
||||
{:ok, extension, new_notifications} ->
|
||||
{[extension | extensions], notifications ++ new_notifications}
|
||||
|
||||
{:error, %{changeset: changeset} = error} ->
|
||||
Logger.error(
|
||||
"Error importing extension with #{inspect(changeset.params)} #{Exception.format(:error, error)}"
|
||||
)
|
||||
|
||||
{extensions, notifications}
|
||||
end
|
||||
end)
|
||||
|
||||
destroy_notifications =
|
||||
library_version.extensions
|
||||
|> Enum.reject(fn extension -> Enum.any?(extensions, &(&1.name == extension.name)) end)
|
||||
|> Enum.flat_map(&Extension.destroy!(&1, return_notifications?: true))
|
||||
|
||||
notifications ++ destroy_notifications
|
||||
end
|
||||
end
|
|
@ -24,12 +24,10 @@ defmodule AshHq.Docs.LibraryVersion do
|
|||
|
||||
code_interface do
|
||||
define_for AshHq.Docs
|
||||
define :build, args: [:library, :version, :data]
|
||||
define :build, args: [:library, :version]
|
||||
define :defined_for, args: [:library, :versions]
|
||||
define :by_version, args: [:version]
|
||||
define :by_version, args: [:library, :version]
|
||||
define :destroy
|
||||
define :unprocessed
|
||||
define :process
|
||||
end
|
||||
|
||||
actions do
|
||||
|
@ -42,7 +40,11 @@ defmodule AshHq.Docs.LibraryVersion do
|
|||
allow_nil? false
|
||||
end
|
||||
|
||||
filter expr(version == ^arg(:version))
|
||||
argument :library, :uuid do
|
||||
allow_nil? false
|
||||
end
|
||||
|
||||
filter expr(version == ^arg(:version) and library == ^arg(:library))
|
||||
end
|
||||
|
||||
create :build do
|
||||
|
@ -60,14 +62,22 @@ defmodule AshHq.Docs.LibraryVersion do
|
|||
allow_nil? false
|
||||
end
|
||||
|
||||
argument :extensions, {:array, :map} do
|
||||
allow_nil? false
|
||||
end
|
||||
|
||||
change set_attribute(:id, {:arg, :id})
|
||||
|
||||
change {AshHq.Docs.Changes.AddArgToRelationship,
|
||||
attr: :id, arg: :library_version, rel: :modules, generate: &Ash.UUID.generate/0}
|
||||
|
||||
change manage_relationship(:guides, type: :direct_control)
|
||||
change {AshHq.Docs.Changes.AddArgToRelationship,
|
||||
attr: :id, arg: :library_version, rel: :extensions, generate: &Ash.UUID.generate/0}
|
||||
|
||||
change manage_relationship(:guides, type: :create)
|
||||
change manage_relationship(:library, type: :replace)
|
||||
change manage_relationship(:modules, type: :direct_control)
|
||||
change manage_relationship(:modules, type: :create)
|
||||
change manage_relationship(:extensions, type: :create)
|
||||
end
|
||||
|
||||
read :defined_for do
|
||||
|
@ -81,14 +91,6 @@ defmodule AshHq.Docs.LibraryVersion do
|
|||
|
||||
filter expr(version in ^arg(:versions) and library_id == ^arg(:library))
|
||||
end
|
||||
|
||||
read :unprocessed do
|
||||
filter expr(processed == false)
|
||||
end
|
||||
|
||||
update :process do
|
||||
change AshHq.Docs.LibraryVersion.Changes.ProcessLibraryVersion
|
||||
end
|
||||
end
|
||||
|
||||
aggregates do
|
||||
|
@ -103,8 +105,6 @@ defmodule AshHq.Docs.LibraryVersion do
|
|||
allow_nil? false
|
||||
end
|
||||
|
||||
attribute :data, :map
|
||||
|
||||
attribute :doc, :string do
|
||||
allow_nil? false
|
||||
constraints trim?: false, allow_empty?: true
|
||||
|
@ -115,11 +115,6 @@ defmodule AshHq.Docs.LibraryVersion do
|
|||
constraints trim?: false, allow_empty?: true
|
||||
writable? false
|
||||
end
|
||||
|
||||
attribute :processed, :boolean do
|
||||
default false
|
||||
writable? false
|
||||
end
|
||||
end
|
||||
|
||||
calculations do
|
||||
|
|
|
@ -211,7 +211,7 @@ defmodule AshHqWeb.Components.Search do
|
|||
|
||||
defp search(socket) do
|
||||
if socket.assigns[:search] in [nil, ""] || socket.assigns[:selected_versions] in [nil, %{}] do
|
||||
assign(socket, :results, %{})
|
||||
assign(socket, results: %{}, item_list: [])
|
||||
else
|
||||
versions =
|
||||
Enum.map(socket.assigns.selected_versions, fn
|
||||
|
|
|
@ -19,22 +19,6 @@ defmodule AshHqWeb.Pages.Home do
|
|||
</div>
|
||||
<SearchBar class="hidden sm:block mt-16" />
|
||||
|
||||
<div class="grid grid-cols-3 w-full place-content-evenly mt-12">
|
||||
<div class="grid grid-cols-1 text-center">
|
||||
Data Layers
|
||||
<LiveRedirect to={"/"}>
|
||||
AshPostgres
|
||||
</LiveRedirect>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 text-center">
|
||||
APIs
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 text-center">
|
||||
Build your own
|
||||
</div>
|
||||
</div>
|
||||
<div class="pt-6 pb-6 w-full hidden sm:block mt-36">
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-10">
|
||||
<CodeExample
|
||||
|
|
|
@ -33,7 +33,7 @@ defmodule AshHqWeb.Routes do
|
|||
},
|
||||
selected_versions
|
||||
) do
|
||||
"/docs/module/#{sanitize_name(library_name)}/#{version(version_name, IO.inspect(library_id), selected_versions)}/#{sanitize_name(module_name)}/##{type}-#{sanitize_name(name)}-#{arity}"
|
||||
"/docs/module/#{sanitize_name(library_name)}/#{version(version_name, library_id, selected_versions)}/#{sanitize_name(module_name)}/##{type}-#{sanitize_name(name)}-#{arity}"
|
||||
end
|
||||
|
||||
def doc_link(
|
||||
|
|
|
@ -21,16 +21,16 @@ defmodule AshHqWeb.AppViewLive do
|
|||
class={"h-full font-sans": true, "#{@configured_theme}": true}
|
||||
phx-hook="ColorTheme"
|
||||
>
|
||||
<Search
|
||||
id="search-box"
|
||||
uri={@uri}
|
||||
close={close_search()}
|
||||
libraries={@libraries}
|
||||
selected_types={@selected_types}
|
||||
change_types="change-types"
|
||||
change_versions="change-versions"
|
||||
selected_versions={@selected_versions}
|
||||
/>
|
||||
<Search
|
||||
id="search-box"
|
||||
uri={@uri}
|
||||
close={close_search()}
|
||||
libraries={@libraries}
|
||||
selected_types={@selected_types}
|
||||
change_types="change-types"
|
||||
change_versions="change-versions"
|
||||
selected_versions={@selected_versions}
|
||||
/>
|
||||
<button id="search-button" class="hidden" phx-click={AshHqWeb.AppViewLive.toggle_search()} />
|
||||
<div
|
||||
id="main-container"
|
||||
|
@ -307,48 +307,39 @@ defmodule AshHqWeb.AppViewLive do
|
|||
end)
|
||||
end
|
||||
|
||||
socket =
|
||||
socket
|
||||
|> assign(:selected_versions, configured_library_versions)
|
||||
|> AshPhoenix.LiveView.keep_live(
|
||||
:libraries,
|
||||
fn _socket ->
|
||||
versions_query =
|
||||
AshHq.Docs.LibraryVersion
|
||||
|> Ash.Query.sort(version: :desc)
|
||||
|> Ash.Query.filter(processed == true)
|
||||
|> Ash.Query.deselect(:data)
|
||||
versions_query =
|
||||
AshHq.Docs.LibraryVersion
|
||||
|> Ash.Query.sort(version: :desc)
|
||||
|
||||
AshHq.Docs.Library.read!(load: [versions: versions_query])
|
||||
end,
|
||||
after_fetch: fn results, socket ->
|
||||
selected_versions =
|
||||
Enum.reduce(results, socket.assigns[:selected_versions] || %{}, fn library, acc ->
|
||||
case Enum.at(library.versions, 0) do
|
||||
nil ->
|
||||
acc
|
||||
libraries = AshHq.Docs.Library.read!(load: [versions: versions_query])
|
||||
|
||||
version ->
|
||||
Map.put_new(acc, library.id, version.id)
|
||||
end
|
||||
end)
|
||||
selected_versions =
|
||||
Enum.reduce(libraries, %{}, fn library, acc ->
|
||||
case Enum.at(library.versions, 0) do
|
||||
nil ->
|
||||
acc
|
||||
|
||||
socket
|
||||
|> assign(
|
||||
:selected_versions,
|
||||
selected_versions
|
||||
)
|
||||
|> assign(
|
||||
:selected_types,
|
||||
selected_types
|
||||
)
|
||||
|> push_event("selected-versions", selected_versions)
|
||||
|> push_event("selected_types", %{types: selected_types})
|
||||
version ->
|
||||
Map.put_new(acc, library.id, version.id)
|
||||
end
|
||||
)
|
||||
|> load_docs()
|
||||
end)
|
||||
|
||||
{:ok, assign(socket, configured_theme: configured_theme, sidebar_state: sidebar_state)}
|
||||
{:ok,
|
||||
socket
|
||||
|> assign(:libraries, libraries)
|
||||
|> assign(
|
||||
:selected_versions,
|
||||
selected_versions
|
||||
)
|
||||
|> assign(
|
||||
:selected_types,
|
||||
selected_types
|
||||
)
|
||||
|> assign(:selected_versions, configured_library_versions)
|
||||
|> assign(configured_theme: configured_theme, sidebar_state: sidebar_state)
|
||||
|> push_event("selected-versions", selected_versions)
|
||||
|> push_event("selected_types", %{types: selected_types})
|
||||
|> load_docs()}
|
||||
end
|
||||
|
||||
def toggle_search(js \\ %JS{}) do
|
||||
|
@ -383,9 +374,7 @@ defmodule AshHqWeb.AppViewLive do
|
|||
defp load_for_search(query) do
|
||||
Ash.Query.load(
|
||||
query,
|
||||
IO.inspect(AshHq.Docs.Extensions.Search.load_for_search(query.resource),
|
||||
label: inspect(query.resource)
|
||||
)
|
||||
AshHq.Docs.Extensions.Search.load_for_search(query.resource)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
7
mix.exs
7
mix.exs
|
@ -33,13 +33,12 @@ defmodule AshHq.MixProject do
|
|||
# Type `mix help deps` for examples and options.
|
||||
defp deps do
|
||||
[
|
||||
{:ash, github: "ash-project/ash", override: true},
|
||||
# {:ash, path: "../ash", override: true},
|
||||
# {:ash, github: "ash-project/ash", override: true},
|
||||
{:ash, path: "../ash", override: true},
|
||||
{:ash_postgres, github: "ash-project/ash_postgres"},
|
||||
# {:ash_postgres, path: "../ash_postgres"},
|
||||
{:ash_phoenix, github: "ash-project/ash_phoenix"},
|
||||
{:earmark, "~> 1.5.0-pre1"},
|
||||
{:ecto, git: "https://github.com/elixir-ecto/ecto.git", override: true},
|
||||
{:earmark, "~> 1.5.0-pre1", override: true},
|
||||
{:surface, "~> 0.7.3"},
|
||||
{:surface_heroicons, "~> 0.6.0"},
|
||||
# Syntax Highlighting
|
||||
|
|
30
mix.lock
30
mix.lock
|
@ -1,8 +1,8 @@
|
|||
%{
|
||||
"ash": {:git, "https://github.com/ash-project/ash.git", "ea1adcf2309e6a317cda288af949da2ae582f7eb", []},
|
||||
"ash": {:git, "https://github.com/ash-project/ash.git", "a626f8d92deb117d6712f8ed7b2ddfd560c6aa66", []},
|
||||
"ash_phoenix": {:git, "https://github.com/ash-project/ash_phoenix.git", "9de0ff87780bd16d06dcde1bac6a8e041a31659d", []},
|
||||
"ash_postgres": {:git, "https://github.com/ash-project/ash_postgres.git", "48c6142040d389272d235b7e62d354a3a37a825e", []},
|
||||
"castore": {:hex, :castore, "0.1.16", "2675f717adc700475345c5512c381ef9273eb5df26bdd3f8c13e2636cf4cc175", [:mix], [], "hexpm", "28ed2c43d83b5c25d35c51bc0abf229ac51359c170cba76171a462ced2e4b651"},
|
||||
"ash_postgres": {:git, "https://github.com/ash-project/ash_postgres.git", "ff3039ee3200cc255c9d4dca3383f6092f567e1e", []},
|
||||
"castore": {:hex, :castore, "0.1.17", "ba672681de4e51ed8ec1f74ed624d104c0db72742ea1a5e74edbc770c815182f", [:mix], [], "hexpm", "d9844227ed52d26e7519224525cb6868650c272d4a3d327ce3ca5570c12163f9"},
|
||||
"certifi": {:hex, :certifi, "2.9.0", "6f2a475689dd47f19fb74334859d460a2dc4e3252a3324bd2111b8f0429e7e21", [:rebar3], [], "hexpm", "266da46bdb06d6c6d35fde799bcb28d36d985d424ad7c08b5bb48f5b5cdd4641"},
|
||||
"combine": {:hex, :combine, "0.10.0", "eff8224eeb56498a2af13011d142c5e7997a80c8f5b97c499f84c841032e429f", [:mix], [], "hexpm", "1b1dbc1790073076580d0d1d64e42eae2366583e7aecd455d1215b0d16f2451b"},
|
||||
"comparable": {:hex, :comparable, "1.0.0", "bb669e91cedd14ae9937053e5bcbc3c52bb2f22422611f43b6e38367d94a495f", [:mix], [{:typable, "~> 0.1", [hex: :typable, repo: "hexpm", optional: false]}], "hexpm", "277c11eeb1cd726e7cd41c6c199e7e52fa16ee6830b45ad4cdc62e51f62eb60c"},
|
||||
|
@ -14,15 +14,15 @@
|
|||
"decimal": {:hex, :decimal, "2.0.0", "a78296e617b0f5dd4c6caf57c714431347912ffb1d0842e998e9792b5642d697", [:mix], [], "hexpm", "34666e9c55dea81013e77d9d87370fe6cb6291d1ef32f46a1600230b1d44f577"},
|
||||
"earmark": {:hex, :earmark, "1.5.0-pre1", "e04aca73692bc3cda3429d6df99c8dae2bf76411e5e76d006a4bc04ac81ef1c1", [:mix], [{:earmark_parser, "~> 1.4.21", [hex: :earmark_parser, repo: "hexpm", optional: false]}], "hexpm", "26ec0473ad2ef995b9672f89309a7a4952887f69b78cfc7af14e320bc6546bfa"},
|
||||
"earmark_parser": {:hex, :earmark_parser, "1.4.25", "2024618731c55ebfcc5439d756852ec4e85978a39d0d58593763924d9a15916f", [:mix], [], "hexpm", "56749c5e1c59447f7b7a23ddb235e4b3defe276afc220a6227237f3efe83f51e"},
|
||||
"ecto": {:git, "https://github.com/elixir-ecto/ecto.git", "cda1172063753dea764e9c8ad80757dae5d1a4a7", []},
|
||||
"ecto_sql": {:hex, :ecto_sql, "3.7.2", "55c60aa3a06168912abf145c6df38b0295c34118c3624cf7a6977cd6ce043081", [:mix], [{:db_connection, "~> 2.2", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.7.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.4.0 or ~> 0.5.0 or ~> 0.6.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.15.0 or ~> 0.16.0 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "3c218ea62f305dcaef0b915fb56583195e7b91c91dcfb006ba1f669bfacbff2a"},
|
||||
"ecto": {:hex, :ecto, "3.8.3", "5e681d35bc2cbb46dcca1e2675837c7d666316e5ada14eca6c9c609b6232817c", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "af92dd7815967bcaea0daaaccf31c3b23165432b1c7a475d84144efbc703d105"},
|
||||
"ecto_sql": {:hex, :ecto_sql, "3.8.2", "d7d44bc8d45ba9c85485952710c80408632a7336eb811b045e791718d11ddb5b", [:mix], [{:db_connection, "~> 2.5 or ~> 2.4.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.8.1", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.6.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.15.0 or ~> 0.16.0 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7b9b03d64360d6cc05dc263500a43c11740b5fd4552244c27efad358e98c75b3"},
|
||||
"elasticlunr": {:hex, :elasticlunr, "0.6.6", "937a41a7293040e060f880817abac8e025ac9e146554e24042aaf8fbe94a0d1f", [:mix], [{:jason, "~> 1.3", [hex: :jason, repo: "hexpm", optional: false]}, {:stemmer, "~> 1.0", [hex: :stemmer, repo: "hexpm", optional: false]}, {:uuid, "~> 1.1", [hex: :uuid, repo: "hexpm", optional: false]}], "hexpm", "d02244cb10c46b82bbc1e68477be296aa78f2d6ecf70355722ce916ff24f6958"},
|
||||
"elixir_make": {:hex, :elixir_make, "0.6.3", "bc07d53221216838d79e03a8019d0839786703129599e9619f4ab74c8c096eac", [:mix], [], "hexpm", "f5cbd651c5678bcaabdbb7857658ee106b12509cd976c2c2fca99688e1daf716"},
|
||||
"esbuild": {:hex, :esbuild, "0.4.0", "9f17db148aead4cf1e6e6a584214357287a93407b5fb51a031f122b61385d4c2", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}], "hexpm", "b61e4e6b92ffe45e4ee4755a22de6211a67c67987dc02afb35a425a0add1d447"},
|
||||
"ets": {:hex, :ets, "0.8.1", "8ff9bcda5682b98493f8878fc9dbd990e48d566cba8cce59f7c2a78130da29ea", [:mix], [], "hexpm", "6be41b50adb5bc5c43626f25ea2d0af1f4a242fb3fad8d53f0c67c20b78915cc"},
|
||||
"file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
|
||||
"finch": {:hex, :finch, "0.10.2", "9ad27d68270d879f73f26604bb2e573d40f29bf0e907064a9a337f90a16a0312", [:mix], [{:castore, "~> 0.1", [hex: :castore, repo: "hexpm", optional: false]}, {:mint, "~> 1.3", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "dd8b11b282072cec2ef30852283949c248bd5d2820c88d8acc89402b81db7550"},
|
||||
"floki": {:hex, :floki, "0.32.0", "f915dc15258bc997d49be1f5ef7d3992f8834d6f5695270acad17b41f5bcc8e2", [:mix], [{:html_entities, "~> 0.5.0", [hex: :html_entities, repo: "hexpm", optional: false]}], "hexpm", "1c5a91cae1fd8931c26a4826b5e2372c284813904c8bacb468b5de39c7ececbd"},
|
||||
"floki": {:hex, :floki, "0.32.1", "dfe3b8db3b793939c264e6f785bca01753d17318d144bd44b407fb3493acaa87", [:mix], [{:html_entities, "~> 0.5.0", [hex: :html_entities, repo: "hexpm", optional: false]}], "hexpm", "d4b91c713e4a784a3f7b1e3cc016eefc619f6b1c3898464222867cafd3c681a3"},
|
||||
"gettext": {:hex, :gettext, "0.19.1", "564953fd21f29358e68b91634799d9d26989f8d039d7512622efb3c3b1c97892", [:mix], [], "hexpm", "10c656c0912b8299adba9b061c06947511e3f109ab0d18b44a866a4498e77222"},
|
||||
"hackney": {:hex, :hackney, "1.18.1", "f48bf88f521f2a229fc7bae88cf4f85adc9cd9bcf23b5dc8eb6a1788c662c4f6", [:rebar3], [{:certifi, "~>2.9.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~>6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~>1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~>1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "a4ecdaff44297e9b5894ae499e9a070ea1888c84afdd1fd9b7b2bc384950128e"},
|
||||
"hpax": {:hex, :hpax, "0.1.1", "2396c313683ada39e98c20a75a82911592b47e5c24391363343bde74f82396ca", [:mix], [], "hexpm", "0ae7d5a0b04a8a60caf7a39fcf3ec476f35cc2cc16c05abea730d3ce6ac6c826"},
|
||||
|
@ -45,28 +45,28 @@
|
|||
"nimble_parsec": {:hex, :nimble_parsec, "1.2.3", "244836e6e3f1200c7f30cb56733fd808744eca61fd182f731eac4af635cc6d0b", [:mix], [], "hexpm", "c8d789e39b9131acf7b99291e93dae60ab48ef14a7ee9d58c6964f59efb570b0"},
|
||||
"nimble_pool": {:hex, :nimble_pool, "0.2.6", "91f2f4c357da4c4a0a548286c84a3a28004f68f05609b4534526871a22053cde", [:mix], [], "hexpm", "1c715055095d3f2705c4e236c18b618420a35490da94149ff8b580a2144f653f"},
|
||||
"parse_trans": {:hex, :parse_trans, "3.3.1", "16328ab840cc09919bd10dab29e431da3af9e9e7e7e6f0089dd5a2d2820011d8", [:rebar3], [], "hexpm", "07cd9577885f56362d414e8c4c4e6bdf10d43a8767abb92d24cbe8b24c54888b"},
|
||||
"phoenix": {:hex, :phoenix, "1.6.6", "281c8ce8dccc9f60607346b72cdfc597c3dde134dd9df28dff08282f0b751754", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 1.0", [hex: :phoenix_view, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.2", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "807bd646e64cd9dc83db016199715faba72758e6db1de0707eef0a2da4924364"},
|
||||
"phoenix": {:hex, :phoenix, "1.6.9", "648e660040cdc758c5401972e0f592ce622d4ce9cd16d2d9c33dda32d0c9f7fa", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 1.0", [hex: :phoenix_view, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.2", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "be2fe497597d6bf297dcbf9f4416b4929dbfbdcc25edc1acf6d4dcaecbe898a6"},
|
||||
"phoenix_ecto": {:hex, :phoenix_ecto, "4.4.0", "0672ed4e4808b3fbed494dded89958e22fb882de47a97634c0b13e7b0b5f7720", [:mix], [{:ecto, "~> 3.3", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "09864e558ed31ee00bd48fcc1d4fc58ae9678c9e81649075431e69dbabb43cc1"},
|
||||
"phoenix_html": {:hex, :phoenix_html, "3.2.0", "1c1219d4b6cb22ac72f12f73dc5fad6c7563104d083f711c3fcd8551a1f4ae11", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "36ec97ba56d25c0136ef1992c37957e4246b649d620958a1f9fa86165f8bc54f"},
|
||||
"phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.6.5", "1495bb014be12c9a9252eca04b9af54246f6b5c1e4cd1f30210cd00ec540cf8e", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.3", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.17.7", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "ef4fa50dd78364409039c99cf6f98ab5209b4c5f8796c17f4db118324f0db852"},
|
||||
"phoenix_live_reload": {:hex, :phoenix_live_reload, "1.3.3", "3a53772a6118d5679bf50fc1670505a290e32a1d195df9e069d8c53ab040c054", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "766796676e5f558dbae5d1bdb066849673e956005e3730dfd5affd7a6da4abac"},
|
||||
"phoenix_live_view": {:hex, :phoenix_live_view, "0.17.7", "05a42377075868a678d446361effba80cefef19ab98941c01a7a4c7560b29121", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.5.9 or ~> 1.6.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.1", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "25eaf41028eb351b90d4f69671874643a09944098fefd0d01d442f40a6091b6f"},
|
||||
"phoenix_pubsub": {:hex, :phoenix_pubsub, "2.0.0", "a1ae76717bb168cdeb10ec9d92d1480fec99e3080f011402c0a2d68d47395ffb", [:mix], [], "hexpm", "c52d948c4f261577b9c6fa804be91884b381a7f8f18450c5045975435350f771"},
|
||||
"phoenix_live_view": {:hex, :phoenix_live_view, "0.17.9", "36b5aa812bc3ccd64c9630f6b3234d9ea21105493237e927aae19d0ba758f0db", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.1", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "f7ebc3e0ba0c5f6b6996ed6c901ddbfdaba59a6d09b569e7cb2f2f7d693b4455"},
|
||||
"phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.1", "ba04e489ef03763bf28a17eb2eaddc2c20c6d217e2150a61e3298b0f4c2012b5", [:mix], [], "hexpm", "81367c6d1eea5878ad726be80808eb5a787a23dee699f96e72b1109c57cdd8d9"},
|
||||
"phoenix_view": {:hex, :phoenix_view, "1.1.2", "1b82764a065fb41051637872c7bd07ed2fdb6f5c3bd89684d4dca6e10115c95a", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "7ae90ad27b09091266f6adbb61e1d2516a7c3d7062c6789d46a7554ec40f3a56"},
|
||||
"picosat_elixir": {:hex, :picosat_elixir, "0.2.1", "407dcb90755167fd9e3311b60565ff32ed0d234010363406c07cdb4175b95bc5", [:make, :mix], [{:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "68f4bdb2ac3b594209e54625d3d58c9e2e98b90f2ec8e03235f66e88c9eda5fe"},
|
||||
"plug": {:hex, :plug, "1.13.4", "addb6e125347226e3b11489e23d22a60f7ab74786befb86c14f94fb5f23ca9a4", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "06114c1f2a334212fe3ae567dbb3b1d29fd492c1a09783d52f3d489c1a6f4cf2"},
|
||||
"plug": {:hex, :plug, "1.13.6", "187beb6b67c6cec50503e940f0434ea4692b19384d47e5fdfd701e93cadb4cc2", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "02b9c6b9955bce92c829f31d6284bf53c591ca63c4fb9ff81dfd0418667a34ff"},
|
||||
"plug_cowboy": {:hex, :plug_cowboy, "2.5.2", "62894ccd601cf9597e2c23911ff12798a8a18d237e9739f58a6b04e4988899fe", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "ea6e87f774c8608d60c8d34022a7d073bd7680a0a013f049fc62bf35efea1044"},
|
||||
"plug_crypto": {:hex, :plug_crypto, "1.2.2", "05654514ac717ff3a1843204b424477d9e60c143406aa94daf2274fdd280794d", [:mix], [], "hexpm", "87631c7ad914a5a445f0a3809f99b079113ae4ed4b867348dd9eec288cecb6db"},
|
||||
"postgrex": {:hex, :postgrex, "0.16.2", "0f83198d0e73a36e8d716b90f45f3bde75b5eebf4ade4f43fa1f88c90a812f74", [:mix], [{:connection, "~> 1.1", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "a9ea589754d9d4d076121090662b7afe155b374897a6550eb288f11d755acfa0"},
|
||||
"postgrex": {:hex, :postgrex, "0.16.3", "fac79a81a9a234b11c44235a4494d8565303fa4b9147acf57e48978a074971db", [:mix], [{:connection, "~> 1.1", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "aeaae1d2d1322da4e5fe90d241b0a564ce03a3add09d7270fb85362166194590"},
|
||||
"ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"},
|
||||
"req": {:hex, :req, "0.2.1", "5d4ee7bc6666cd4d77e95f89ce75ca0ca73b6a25eeebbe2e7bc60cdd56d73865", [:mix], [{:finch, "~> 0.9.1", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_csv, "~> 1.0", [hex: :nimble_csv, repo: "hexpm", optional: true]}], "hexpm", "ababd5c8a334848bde2bc3c2f518df22211c8533d863d15bfefa04796abc3633"},
|
||||
"sourceror": {:hex, :sourceror, "0.10.0", "a6a85d8acc874df59bedb7497374f8f7517e4d54a5805da903ff31aaee14a1a7", [:mix], [], "hexpm", "ddd94d23d96ac949696616eb89cecac977dfed7ecdfac6bbd3f83617e4daea28"},
|
||||
"sourceror": {:hex, :sourceror, "0.11.1", "1b80efe84330beefb6b3da95b75c1e1cdefe9dc785bf4c5064fae251a8af615c", [:mix], [], "hexpm", "22b6828ee5572f6cec75cc6357f3ca6c730a02954cef0302c428b3dba31e5e74"},
|
||||
"ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.6", "cf344f5692c82d2cd7554f5ec8fd961548d4fd09e7d22f5b62482e5aeaebd4b0", [:make, :mix, :rebar3], [], "hexpm", "bdb0d2471f453c88ff3908e7686f86f9be327d065cc1ec16fa4540197ea04680"},
|
||||
"stemmer": {:hex, :stemmer, "1.1.0", "71221331ced40832b47e6989a12dd9de1b15c982043d1014742be83c34ec9e79", [:mix], [], "hexpm", "0cb5faf73476b84500e371ff39fd9a494f60ab31d991689c1cd53b920556228f"},
|
||||
"surface": {:hex, :surface, "0.7.3", "104dbb22d828a63a9ef45edf65c1f47fa4aedbcfb5478f2cafbe649586b02a58", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.17.4", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:sourceror, "~> 0.9", [hex: :sourceror, repo: "hexpm", optional: false]}], "hexpm", "ab4aa36f767042dc822b28ba0fb455bfa2cca054c7305a6cc113597ab81726e2"},
|
||||
"surface": {:hex, :surface, "0.7.4", "ce9cf98a11e6572008d82b6dd1dd25fd90966d69cc72a06d69058ef3e7063df8", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.17.4", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:sourceror, "~> 0.9", [hex: :sourceror, repo: "hexpm", optional: false]}], "hexpm", "052c2a9a35e260339ec0f9bbc667224993e7e2805c36409736f673ffe7d486ac"},
|
||||
"surface_heroicons": {:hex, :surface_heroicons, "0.6.0", "04e171843439d2d52c868f8adf5294c49505f504a74a0200179e49c447d6f354", [:mix], [{:surface, ">= 0.5.0", [hex: :surface, repo: "hexpm", optional: false]}], "hexpm", "1136c88a8de44a63c050cec9b0b64f771127dfd96feabab4cd0bde8b6b727ba2"},
|
||||
"swoosh": {:hex, :swoosh, "1.6.3", "598d3f07641004bedb3eede40057760ae18be1073cff72f079ca1e1fc9cd97b9", [:mix], [{:cowboy, "~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:finch, "~> 0.6", [hex: :finch, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13 or ~> 1.0", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "81ff9d7c7c4005a57465a7eb712edd71db51829aef94c8a34c30c5b9e9964adf"},
|
||||
"telemetry": {:hex, :telemetry, "1.0.0", "0f453a102cdf13d506b7c0ab158324c337c41f1cc7548f0bc0e130bbf0ae9452", [:rebar3], [], "hexpm", "73bc09fa59b4a0284efb4624335583c528e07ec9ae76aca96ea0673850aec57a"},
|
||||
"swoosh": {:hex, :swoosh, "1.6.6", "6018c6f4659ac0b4f30684982993b7812b2bb97436d39f76fcfa8c9e3ae74f85", [:mix], [{:cowboy, "~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:ex_aws, "~> 2.1", [hex: :ex_aws, repo: "hexpm", optional: true]}, {:finch, "~> 0.6", [hex: :finch, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13 or ~> 1.0", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "e92c7206efd442f08484993676ab072afab2f2bb1e87e604230bb1183c5980de"},
|
||||
"telemetry": {:hex, :telemetry, "1.1.0", "a589817034a27eab11144ad24d5c0f9fab1f58173274b1e9bae7074af9cbee51", [:rebar3], [], "hexpm", "b727b2a1f75614774cff2d7565b64d0dfa5bd52ba517f16543e6fc7efcc0df48"},
|
||||
"telemetry_metrics": {:hex, :telemetry_metrics, "0.6.1", "315d9163a1d4660aedc3fee73f33f1d355dcc76c5c3ab3d59e76e3edf80eef1f", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7be9e0871c41732c233be71e4be11b96e56177bf15dde64a8ac9ce72ac9834c6"},
|
||||
"telemetry_poller": {:hex, :telemetry_poller, "1.0.0", "db91bb424e07f2bb6e73926fcafbfcbcb295f0193e0a00e825e589a0a47e8453", [:rebar3], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "b3a24eafd66c3f42da30fc3ca7dda1e9d546c12250a2d60d7b81d264fbec4f6e"},
|
||||
"timex": {:hex, :timex, "3.7.7", "3ed093cae596a410759104d878ad7b38e78b7c2151c6190340835515d4a46b8a", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 1.0", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm", "0ec4b09f25fe311321f9fc04144a7e3affe48eb29481d7a5583849b6c4dfa0a7"},
|
||||
|
|
42
priv/repo/migrations/20220604165434_migrate_resources6.exs
Normal file
42
priv/repo/migrations/20220604165434_migrate_resources6.exs
Normal file
|
@ -0,0 +1,42 @@
|
|||
defmodule AshHq.Repo.Migrations.MigrateResources6 do
|
||||
@moduledoc """
|
||||
Updates resources based on their most recent snapshots.
|
||||
|
||||
This file was autogenerated with `mix ash_postgres.generate_migrations`
|
||||
"""
|
||||
|
||||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
alter table(:library_versions) do
|
||||
remove :processed
|
||||
remove :data
|
||||
end
|
||||
|
||||
alter table(:libraries) do
|
||||
remove :description
|
||||
|
||||
modify :track_branches, {:array, :text}, default: nil
|
||||
end
|
||||
|
||||
alter table(:functions) do
|
||||
modify :heads, {:array, :text}, default: nil
|
||||
end
|
||||
end
|
||||
|
||||
def down do
|
||||
alter table(:functions) do
|
||||
modify :heads, {:array, :text}, default: []
|
||||
end
|
||||
|
||||
alter table(:libraries) do
|
||||
modify :track_branches, {:array, :text}, default: []
|
||||
add :description, :text
|
||||
end
|
||||
|
||||
alter table(:library_versions) do
|
||||
add :data, :map
|
||||
add :processed, :boolean, default: false
|
||||
end
|
||||
end
|
||||
end
|
|
@ -15,5 +15,5 @@ AshHq.Docs.Library.create!(%{name: "ash", display_name: "Ash", track_branches: [
|
|||
AshHq.Docs.Library.create!(%{
|
||||
name: "ash_postgres",
|
||||
display_name: "AshPostgres",
|
||||
track_branches: ["master"]
|
||||
track_branches: ["main"]
|
||||
})
|
||||
|
|
149
priv/resource_snapshots/repo/functions/20220604165434.json
Normal file
149
priv/resource_snapshots/repo/functions/20220604165434.json
Normal file
|
@ -0,0 +1,149 @@
|
|||
{
|
||||
"attributes": [
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "fragment(\"uuid_generate_v4()\")",
|
||||
"generated?": false,
|
||||
"primary_key?": true,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "id",
|
||||
"type": "uuid"
|
||||
},
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "nil",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "name",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "nil",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "arity",
|
||||
"type": "bigint"
|
||||
},
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "nil",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "type",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"allow_nil?": true,
|
||||
"default": "nil",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "heads",
|
||||
"type": [
|
||||
"array",
|
||||
"text"
|
||||
]
|
||||
},
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "\"\"",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "doc",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"allow_nil?": true,
|
||||
"default": "nil",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "doc_html",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "nil",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "order",
|
||||
"type": "bigint"
|
||||
},
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "nil",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": {
|
||||
"destination_field": "id",
|
||||
"destination_field_default": null,
|
||||
"destination_field_generated": null,
|
||||
"multitenancy": {
|
||||
"attribute": null,
|
||||
"global": null,
|
||||
"strategy": null
|
||||
},
|
||||
"name": "functions_library_version_id_fkey",
|
||||
"on_delete": "delete",
|
||||
"on_update": null,
|
||||
"schema": "public",
|
||||
"table": "library_versions"
|
||||
},
|
||||
"size": null,
|
||||
"source": "library_version_id",
|
||||
"type": "uuid"
|
||||
},
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "nil",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": {
|
||||
"destination_field": "id",
|
||||
"destination_field_default": null,
|
||||
"destination_field_generated": null,
|
||||
"multitenancy": {
|
||||
"attribute": null,
|
||||
"global": null,
|
||||
"strategy": null
|
||||
},
|
||||
"name": "functions_module_id_fkey",
|
||||
"on_delete": null,
|
||||
"on_update": null,
|
||||
"schema": "public",
|
||||
"table": "modules"
|
||||
},
|
||||
"size": null,
|
||||
"source": "module_id",
|
||||
"type": "uuid"
|
||||
}
|
||||
],
|
||||
"base_filter": null,
|
||||
"check_constraints": [],
|
||||
"custom_indexes": [],
|
||||
"has_create_action": true,
|
||||
"hash": "15E95E5428C82FC8A1A31C846CCC1B55ECF3C1957E6399D684E4EEE3C9DD16F5",
|
||||
"identities": [],
|
||||
"multitenancy": {
|
||||
"attribute": null,
|
||||
"global": null,
|
||||
"strategy": null
|
||||
},
|
||||
"repo": "Elixir.AshHq.Repo",
|
||||
"schema": null,
|
||||
"table": "functions"
|
||||
}
|
61
priv/resource_snapshots/repo/libraries/20220604165435.json
Normal file
61
priv/resource_snapshots/repo/libraries/20220604165435.json
Normal file
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"attributes": [
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "fragment(\"uuid_generate_v4()\")",
|
||||
"generated?": false,
|
||||
"primary_key?": true,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "id",
|
||||
"type": "uuid"
|
||||
},
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "nil",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "name",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "nil",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "display_name",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"allow_nil?": true,
|
||||
"default": "nil",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "track_branches",
|
||||
"type": [
|
||||
"array",
|
||||
"text"
|
||||
]
|
||||
}
|
||||
],
|
||||
"base_filter": null,
|
||||
"check_constraints": [],
|
||||
"custom_indexes": [],
|
||||
"has_create_action": true,
|
||||
"hash": "937C265361A65909A2C903124CEB4E810B50634F4FB7420325AD9A487C954B5B",
|
||||
"identities": [],
|
||||
"multitenancy": {
|
||||
"attribute": null,
|
||||
"global": null,
|
||||
"strategy": null
|
||||
},
|
||||
"repo": "Elixir.AshHq.Repo",
|
||||
"schema": null,
|
||||
"table": "libraries"
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
{
|
||||
"attributes": [
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "fragment(\"uuid_generate_v4()\")",
|
||||
"generated?": false,
|
||||
"primary_key?": true,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "id",
|
||||
"type": "uuid"
|
||||
},
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "nil",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "version",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "\"\"",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "doc",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"allow_nil?": true,
|
||||
"default": "nil",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": null,
|
||||
"size": null,
|
||||
"source": "doc_html",
|
||||
"type": "text"
|
||||
},
|
||||
{
|
||||
"allow_nil?": false,
|
||||
"default": "nil",
|
||||
"generated?": false,
|
||||
"primary_key?": false,
|
||||
"references": {
|
||||
"destination_field": "id",
|
||||
"destination_field_default": null,
|
||||
"destination_field_generated": null,
|
||||
"multitenancy": {
|
||||
"attribute": null,
|
||||
"global": null,
|
||||
"strategy": null
|
||||
},
|
||||
"name": "library_versions_library_id_fkey",
|
||||
"on_delete": null,
|
||||
"on_update": null,
|
||||
"schema": "public",
|
||||
"table": "libraries"
|
||||
},
|
||||
"size": null,
|
||||
"source": "library_id",
|
||||
"type": "uuid"
|
||||
}
|
||||
],
|
||||
"base_filter": null,
|
||||
"check_constraints": [],
|
||||
"custom_indexes": [],
|
||||
"has_create_action": true,
|
||||
"hash": "9156E7D306BB40CFFD32BB0968EE53D2F86DA0BC5AAB860F63C878B9636001FD",
|
||||
"identities": [
|
||||
{
|
||||
"base_filter": null,
|
||||
"index_name": "library_versions_unique_version_for_library_index",
|
||||
"keys": [
|
||||
"library_id",
|
||||
"version"
|
||||
],
|
||||
"name": "unique_version_for_library"
|
||||
}
|
||||
],
|
||||
"multitenancy": {
|
||||
"attribute": null,
|
||||
"global": null,
|
||||
"strategy": null
|
||||
},
|
||||
"repo": "Elixir.AshHq.Repo",
|
||||
"schema": null,
|
||||
"table": "library_versions"
|
||||
}
|
Loading…
Reference in a new issue