mirror of
https://github.com/ash-project/ash_oban.git
synced 2024-09-19 21:03:00 +12:00
docs: update ex_doc, clean up docs
This commit is contained in:
parent
bfacb4572c
commit
1f9a3ae4e7
4 changed files with 208 additions and 878 deletions
|
@ -1,812 +0,0 @@
|
||||||
<!--
|
|
||||||
This file was generated by Spark. Do not edit it by hand.
|
|
||||||
-->
|
|
||||||
# DSL: AshOban
|
|
||||||
|
|
||||||
Tools for working with AshOban triggers.
|
|
||||||
|
|
||||||
|
|
||||||
## oban
|
|
||||||
|
|
||||||
|
|
||||||
### Nested DSLs
|
|
||||||
* [triggers](#oban-triggers)
|
|
||||||
* trigger
|
|
||||||
* [scheduled_actions](#oban-scheduled_actions)
|
|
||||||
* schedule
|
|
||||||
|
|
||||||
|
|
||||||
### Examples
|
|
||||||
```
|
|
||||||
oban do
|
|
||||||
api AshOban.Test.Api
|
|
||||||
|
|
||||||
triggers do
|
|
||||||
trigger :process do
|
|
||||||
action :process
|
|
||||||
where expr(processed != true)
|
|
||||||
worker_read_action(:read)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Options
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Name</th>
|
|
||||||
<th>Type</th>
|
|
||||||
<th>Default</th>
|
|
||||||
<th colspan=2>Docs</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="oban-api" href="#oban-api">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
api
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
<sup style="color: red">*</sup>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">module</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
The Api module to use when calling actions on this resource
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
|
|
||||||
## oban.triggers
|
|
||||||
|
|
||||||
|
|
||||||
### Nested DSLs
|
|
||||||
* [trigger](#oban-triggers-trigger)
|
|
||||||
|
|
||||||
|
|
||||||
### Examples
|
|
||||||
```
|
|
||||||
triggers do
|
|
||||||
trigger :process do
|
|
||||||
action :process
|
|
||||||
where expr(processed != true)
|
|
||||||
worker_read_action(:read)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## oban.triggers.trigger
|
|
||||||
```elixir
|
|
||||||
trigger name
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Examples
|
|
||||||
```
|
|
||||||
trigger :process do
|
|
||||||
action :process
|
|
||||||
where expr(processed != true)
|
|
||||||
worker_read_action(:read)
|
|
||||||
end
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Options
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Name</th>
|
|
||||||
<th>Type</th>
|
|
||||||
<th>Default</th>
|
|
||||||
<th colspan=2>Docs</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-action" href="#name-action">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
action
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
<sup style="color: red">*</sup>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">atom</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
The action to be triggered. Defaults to the identifier of the resource plus the name of the trigger
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-name" href="#name-name">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
name
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">atom</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
A unique identifier for this trigger.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-action_input" href="#name-action_input">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
action_input
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">map</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
Static inputs to supply to the update/destroy action when it is called. Any metadata produced by `read_metadata` will overwrite these values.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-scheduler_queue" href="#name-scheduler_queue">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
scheduler_queue
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">atom</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
The queue to place the scheduler job in. The same queue as job is used by default (but with a priority of 1 so schedulers run first).
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-debug?" href="#name-debug?">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
debug?
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">boolean</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">false</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
If set to `true`, detailed debug logging will be enabled for this trigger. You can also set `config :ash_oban, debug_all_triggers?: true` to enable debug logging for all triggers.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-scheduler_cron" href="#name-scheduler_cron">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
scheduler_cron
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">String.t | false</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">"* * * * *"</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
A crontab configuration for when the job should run. Defaults to once per minute ("* * * * *"). Use `false` to disable the scheduler entirely.
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-stream_batch_size" href="#name-stream_batch_size">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
stream_batch_size
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">pos_integer</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
The batch size to pass when streaming records from using `c:Ash.Api.stream!/2`. No batch size is passed if none is provided here, so the default is used.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-queue" href="#name-queue">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
queue
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">atom</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
The queue to place the worker job in. The trigger name is used by default.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-record_limit" href="#name-record_limit">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
record_limit
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">pos_integer</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
If set, any given run of the scheduler will only ever schedule this many items maximum
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-log_errors?" href="#name-log_errors?">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
log_errors?
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">boolean</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">true</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
Whether or not to log errors that occur when performing an action.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-log_final_error?" href="#name-log_final_error?">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
log_final_error?
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">boolean</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">true</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
If true, logs that an error occurred on the final attempt to perform an action even if `log_errors?` is set to false.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-worker_priority" href="#name-worker_priority">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
worker_priority
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">non_neg_integer</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">2</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
A number from 0 to 3, where 0 is the highest priority and 3 is the lowest.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-scheduler_priority" href="#name-scheduler_priority">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
scheduler_priority
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">non_neg_integer</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">3</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
A number from 0 to 3, where 0 is the highest priority and 3 is the lowest.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-max_scheduler_attempts" href="#name-max_scheduler_attempts">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
max_scheduler_attempts
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">pos_integer</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">1</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
How many times to attempt scheduling of the triggered action.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-max_attempts" href="#name-max_attempts">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
max_attempts
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">pos_integer</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">1</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
How many times to attempt the job. After all attempts have been exhausted, the scheduler may just reschedule it. Use the `on_error` action to update the record to make the scheduler no longer apply.
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-read_metadata" href="#name-read_metadata">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
read_metadata
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">(any -> any)</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
Takes a record, and returns metadata to be given to the update action as an argument called `metadata`.
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-state" href="#name-state">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
state
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">:active | :paused | :deleted</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">:active</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
Describes the state of the cron job. See the getting started guide for more information. The most important thing is that you *do not remove a trigger from a resource if you are using oban pro*.
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-read_action" href="#name-read_action">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
read_action
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">atom</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
The read action to use when querying records. Defaults to the primary read. This action *must* support keyset pagination.
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-worker_read_action" href="#name-worker_read_action">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
worker_read_action
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">atom</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
The read action to use when fetching the individual records for the trigger. Defaults to `read_action`. If you customize this, ensure your action handles scenarios where the trigger is no longer relevant.
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-where" href="#name-where">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
where
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">`any`</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
The filter expression to determine if something should be triggered
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-on_error" href="#name-on_error">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
on_error
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">atom</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
An update action to call after the last attempt has failed. See the getting started guide for more.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Introspection
|
|
||||||
|
|
||||||
Target: `AshOban.Trigger`
|
|
||||||
|
|
||||||
|
|
||||||
## oban.scheduled_actions
|
|
||||||
A section for configured scheduled actions. Supports generic and create actions.
|
|
||||||
|
|
||||||
|
|
||||||
### Nested DSLs
|
|
||||||
* [schedule](#oban-scheduled_actions-schedule)
|
|
||||||
|
|
||||||
|
|
||||||
### Examples
|
|
||||||
```
|
|
||||||
scheduled_actions do
|
|
||||||
schedule :import, "0 */6 * * *", action: :import
|
|
||||||
end
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## oban.scheduled_actions.schedule
|
|
||||||
```elixir
|
|
||||||
schedule name, cron
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Options
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Name</th>
|
|
||||||
<th>Type</th>
|
|
||||||
<th>Default</th>
|
|
||||||
<th colspan=2>Docs</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-cron-name" href="#name-cron-name">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
name
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">atom</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
A unique identifier for this scheduled action.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-cron-cron" href="#name-cron-cron">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
cron
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">String.t</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
The schedule in crontab notation
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-cron-action_input" href="#name-cron-action_input">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
action_input
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">map</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
Inputs to supply to the action when it is called.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-cron-action" href="#name-cron-action">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
action
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">atom</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
The generic or create action to call when the schedule is triggered.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-cron-queue" href="#name-cron-queue">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
queue
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">atom</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
The queue to place the job in. Defaults to the resources short name plus the name of the scheduled action (not the action name).
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-cron-state" href="#name-cron-state">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
state
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">:active | :paused | :deleted</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">:active</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
Describes the state of the cron job. See the getting started guide for more information. The most important thing is that you *do not remove a scheduled action from a resource if you are using oban pro*.
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-cron-max_attempts" href="#name-cron-max_attempts">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
max_attempts
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">pos_integer</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">1</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
How many times to attempt the job. The action will receive a `last_oban_attempt?` argument on the last attempt, and you should handle errors accordingly.
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-cron-priority" href="#name-cron-priority">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
priority
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">non_neg_integer</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">3</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
A number from 0 to 3, where 0 is the highest priority and 3 is the lowest.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<a id="name-cron-debug?" href="#name-cron-debug?">
|
|
||||||
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
|
|
||||||
debug?
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">boolean</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left">
|
|
||||||
<code class="inline">false</code>
|
|
||||||
</td>
|
|
||||||
<td style="text-align: left" colspan=2>
|
|
||||||
If set to `true`, detailed debug logging will be enabled for this trigger. You can also set `config :ash_oban, debug_all_triggers?: true` to enable debug logging for all triggers.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Introspection
|
|
||||||
|
|
||||||
Target: `AshOban.Schedule`
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
191
documentation/dsls/DSL:-AshOban.md
Normal file
191
documentation/dsls/DSL:-AshOban.md
Normal file
|
@ -0,0 +1,191 @@
|
||||||
|
<!--
|
||||||
|
This file was generated by Spark. Do not edit it by hand.
|
||||||
|
-->
|
||||||
|
# DSL: AshOban
|
||||||
|
|
||||||
|
Tools for working with AshOban triggers.
|
||||||
|
|
||||||
|
|
||||||
|
## oban
|
||||||
|
|
||||||
|
|
||||||
|
### Nested DSLs
|
||||||
|
* [triggers](#oban-triggers)
|
||||||
|
* trigger
|
||||||
|
* [scheduled_actions](#oban-scheduled_actions)
|
||||||
|
* schedule
|
||||||
|
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
```
|
||||||
|
oban do
|
||||||
|
api AshOban.Test.Api
|
||||||
|
|
||||||
|
triggers do
|
||||||
|
trigger :process do
|
||||||
|
action :process
|
||||||
|
where expr(processed != true)
|
||||||
|
worker_read_action(:read)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Options
|
||||||
|
|
||||||
|
| Name | Type | Default | Docs |
|
||||||
|
|------|------|---------|------|
|
||||||
|
| [`api`](#oban-api){: #oban-api .spark-required} | `module` | | The Api module to use when calling actions on this resource |
|
||||||
|
|
||||||
|
|
||||||
|
## oban.triggers
|
||||||
|
|
||||||
|
|
||||||
|
### Nested DSLs
|
||||||
|
* [trigger](#oban-triggers-trigger)
|
||||||
|
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
```
|
||||||
|
triggers do
|
||||||
|
trigger :process do
|
||||||
|
action :process
|
||||||
|
where expr(processed != true)
|
||||||
|
worker_read_action(:read)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## oban.triggers.trigger
|
||||||
|
```elixir
|
||||||
|
trigger name
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
```
|
||||||
|
trigger :process do
|
||||||
|
action :process
|
||||||
|
where expr(processed != true)
|
||||||
|
worker_read_action(:read)
|
||||||
|
end
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Arguments
|
||||||
|
|
||||||
|
| Name | Type | Default | Docs |
|
||||||
|
|------|------|---------|------|
|
||||||
|
| [`name`](#oban-triggers-trigger-name){: #oban-triggers-trigger-name } | `atom` | | A unique identifier for this trigger. |
|
||||||
|
### Options
|
||||||
|
|
||||||
|
| Name | Type | Default | Docs |
|
||||||
|
|------|------|---------|------|
|
||||||
|
| [`action`](#oban-triggers-trigger-action){: #oban-triggers-trigger-action .spark-required} | `atom` | | The action to be triggered. Defaults to the identifier of the resource plus the name of the trigger |
|
||||||
|
| [`action_input`](#oban-triggers-trigger-action_input){: #oban-triggers-trigger-action_input } | `map` | | Static inputs to supply to the update/destroy action when it is called. Any metadata produced by `read_metadata` will overwrite these values. |
|
||||||
|
| [`scheduler_queue`](#oban-triggers-trigger-scheduler_queue){: #oban-triggers-trigger-scheduler_queue } | `atom` | | The queue to place the scheduler job in. The same queue as job is used by default (but with a priority of 1 so schedulers run first). |
|
||||||
|
| [`debug?`](#oban-triggers-trigger-debug?){: #oban-triggers-trigger-debug? } | `boolean` | `false` | If set to `true`, detailed debug logging will be enabled for this trigger. You can also set `config :ash_oban, debug_all_triggers?: true` to enable debug logging for all triggers. |
|
||||||
|
| [`scheduler_cron`](#oban-triggers-trigger-scheduler_cron){: #oban-triggers-trigger-scheduler_cron } | `String.t \| false` | `"* * * * *"` | A crontab configuration for when the job should run. Defaults to once per minute ("* * * * *"). Use `false` to disable the scheduler entirely. |
|
||||||
|
| [`stream_batch_size`](#oban-triggers-trigger-stream_batch_size){: #oban-triggers-trigger-stream_batch_size } | `pos_integer` | | The batch size to pass when streaming records from using `c:Ash.Api.stream!/2`. No batch size is passed if none is provided here, so the default is used. |
|
||||||
|
| [`queue`](#oban-triggers-trigger-queue){: #oban-triggers-trigger-queue } | `atom` | | The queue to place the worker job in. The trigger name is used by default. |
|
||||||
|
| [`record_limit`](#oban-triggers-trigger-record_limit){: #oban-triggers-trigger-record_limit } | `pos_integer` | | If set, any given run of the scheduler will only ever schedule this many items maximum |
|
||||||
|
| [`log_errors?`](#oban-triggers-trigger-log_errors?){: #oban-triggers-trigger-log_errors? } | `boolean` | `true` | Whether or not to log errors that occur when performing an action. |
|
||||||
|
| [`log_final_error?`](#oban-triggers-trigger-log_final_error?){: #oban-triggers-trigger-log_final_error? } | `boolean` | `true` | If true, logs that an error occurred on the final attempt to perform an action even if `log_errors?` is set to false. |
|
||||||
|
| [`worker_priority`](#oban-triggers-trigger-worker_priority){: #oban-triggers-trigger-worker_priority } | `non_neg_integer` | `2` | A number from 0 to 3, where 0 is the highest priority and 3 is the lowest. |
|
||||||
|
| [`scheduler_priority`](#oban-triggers-trigger-scheduler_priority){: #oban-triggers-trigger-scheduler_priority } | `non_neg_integer` | `3` | A number from 0 to 3, where 0 is the highest priority and 3 is the lowest. |
|
||||||
|
| [`max_scheduler_attempts`](#oban-triggers-trigger-max_scheduler_attempts){: #oban-triggers-trigger-max_scheduler_attempts } | `pos_integer` | `1` | How many times to attempt scheduling of the triggered action. |
|
||||||
|
| [`max_attempts`](#oban-triggers-trigger-max_attempts){: #oban-triggers-trigger-max_attempts } | `pos_integer` | `1` | How many times to attempt the job. After all attempts have been exhausted, the scheduler may just reschedule it. Use the `on_error` action to update the record to make the scheduler no longer apply. |
|
||||||
|
| [`read_metadata`](#oban-triggers-trigger-read_metadata){: #oban-triggers-trigger-read_metadata } | `(any -> any)` | | Takes a record, and returns metadata to be given to the update action as an argument called `metadata`. |
|
||||||
|
| [`state`](#oban-triggers-trigger-state){: #oban-triggers-trigger-state } | `:active \| :paused \| :deleted` | `:active` | Describes the state of the cron job. See the getting started guide for more information. The most important thing is that you *do not remove a trigger from a resource if you are using oban pro*. |
|
||||||
|
| [`read_action`](#oban-triggers-trigger-read_action){: #oban-triggers-trigger-read_action } | `atom` | | The read action to use when querying records. Defaults to the primary read. This action *must* support keyset pagination. |
|
||||||
|
| [`worker_read_action`](#oban-triggers-trigger-worker_read_action){: #oban-triggers-trigger-worker_read_action } | `atom` | | The read action to use when fetching the individual records for the trigger. Defaults to `read_action`. If you customize this, ensure your action handles scenarios where the trigger is no longer relevant. |
|
||||||
|
| [`where`](#oban-triggers-trigger-where){: #oban-triggers-trigger-where } | `any` | | The filter expression to determine if something should be triggered |
|
||||||
|
| [`on_error`](#oban-triggers-trigger-on_error){: #oban-triggers-trigger-on_error } | `atom` | | An update action to call after the last attempt has failed. See the getting started guide for more. |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Introspection
|
||||||
|
|
||||||
|
Target: `AshOban.Trigger`
|
||||||
|
|
||||||
|
|
||||||
|
## oban.scheduled_actions
|
||||||
|
A section for configured scheduled actions. Supports generic and create actions.
|
||||||
|
|
||||||
|
|
||||||
|
### Nested DSLs
|
||||||
|
* [schedule](#oban-scheduled_actions-schedule)
|
||||||
|
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
```
|
||||||
|
scheduled_actions do
|
||||||
|
schedule :import, "0 */6 * * *", action: :import
|
||||||
|
end
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## oban.scheduled_actions.schedule
|
||||||
|
```elixir
|
||||||
|
schedule name, cron
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Arguments
|
||||||
|
|
||||||
|
| Name | Type | Default | Docs |
|
||||||
|
|------|------|---------|------|
|
||||||
|
| [`name`](#oban-scheduled_actions-schedule-name){: #oban-scheduled_actions-schedule-name } | `atom` | | A unique identifier for this scheduled action. |
|
||||||
|
| [`cron`](#oban-scheduled_actions-schedule-cron){: #oban-scheduled_actions-schedule-cron } | `String.t` | | The schedule in crontab notation |
|
||||||
|
### Options
|
||||||
|
|
||||||
|
| Name | Type | Default | Docs |
|
||||||
|
|------|------|---------|------|
|
||||||
|
| [`action_input`](#oban-scheduled_actions-schedule-action_input){: #oban-scheduled_actions-schedule-action_input } | `map` | | Inputs to supply to the action when it is called. |
|
||||||
|
| [`action`](#oban-scheduled_actions-schedule-action){: #oban-scheduled_actions-schedule-action } | `atom` | | The generic or create action to call when the schedule is triggered. |
|
||||||
|
| [`queue`](#oban-scheduled_actions-schedule-queue){: #oban-scheduled_actions-schedule-queue } | `atom` | | The queue to place the job in. Defaults to the resources short name plus the name of the scheduled action (not the action name). |
|
||||||
|
| [`state`](#oban-scheduled_actions-schedule-state){: #oban-scheduled_actions-schedule-state } | `:active \| :paused \| :deleted` | `:active` | Describes the state of the cron job. See the getting started guide for more information. The most important thing is that you *do not remove a scheduled action from a resource if you are using oban pro*. |
|
||||||
|
| [`max_attempts`](#oban-scheduled_actions-schedule-max_attempts){: #oban-scheduled_actions-schedule-max_attempts } | `pos_integer` | `1` | How many times to attempt the job. The action will receive a `last_oban_attempt?` argument on the last attempt, and you should handle errors accordingly. |
|
||||||
|
| [`priority`](#oban-scheduled_actions-schedule-priority){: #oban-scheduled_actions-schedule-priority } | `non_neg_integer` | `3` | A number from 0 to 3, where 0 is the highest priority and 3 is the lowest. |
|
||||||
|
| [`debug?`](#oban-scheduled_actions-schedule-debug?){: #oban-scheduled_actions-schedule-debug? } | `boolean` | `false` | If set to `true`, detailed debug logging will be enabled for this trigger. You can also set `config :ash_oban, debug_all_triggers?: true` to enable debug logging for all triggers. |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Introspection
|
||||||
|
|
||||||
|
Target: `AshOban.Schedule`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<style type="text/css">.spark-required::after { content: "*"; color: red !important; }</style>
|
67
mix.exs
67
mix.exs
|
@ -45,62 +45,22 @@ defmodule AshOban.MixProject do
|
||||||
["lib"]
|
["lib"]
|
||||||
end
|
end
|
||||||
|
|
||||||
defp extras() do
|
|
||||||
"documentation/**/*.{md,livemd,cheatmd}"
|
|
||||||
|> Path.wildcard()
|
|
||||||
|> Enum.map(fn path ->
|
|
||||||
title =
|
|
||||||
path
|
|
||||||
|> Path.basename(".md")
|
|
||||||
|> Path.basename(".livemd")
|
|
||||||
|> Path.basename(".cheatmd")
|
|
||||||
|> String.split(~r/[-_]/)
|
|
||||||
|> Enum.map(&capitalize/1)
|
|
||||||
|> Enum.join(" ")
|
|
||||||
|> case do
|
|
||||||
"F A Q" ->
|
|
||||||
"FAQ"
|
|
||||||
|
|
||||||
other ->
|
|
||||||
other
|
|
||||||
end
|
|
||||||
|
|
||||||
{String.to_atom(path),
|
|
||||||
[
|
|
||||||
title: title
|
|
||||||
]}
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
defp groups_for_extras() do
|
|
||||||
[
|
|
||||||
Tutorials: [
|
|
||||||
~r'documentation/tutorials'
|
|
||||||
],
|
|
||||||
"How To": ~r'documentation/how_to',
|
|
||||||
Topics: ~r'documentation/topics',
|
|
||||||
DSLs: ~r'documentation/dsls'
|
|
||||||
]
|
|
||||||
end
|
|
||||||
|
|
||||||
defp docs do
|
defp docs do
|
||||||
[
|
[
|
||||||
main: "get-started-with-ash-oban",
|
main: "get-started-with-ash-oban",
|
||||||
source_ref: "v#{@version}",
|
source_ref: "v#{@version}",
|
||||||
logo: "logos/small-logo.png",
|
logo: "logos/small-logo.png",
|
||||||
extra_section: "GUIDES",
|
extra_section: "GUIDES",
|
||||||
spark: [
|
extras: [
|
||||||
extensions: [
|
"documentation/tutorials/get-started-with-ash-oban.md",
|
||||||
%{
|
"documentation/dsls/DSL:-AshOban.md"
|
||||||
module: AshOban,
|
],
|
||||||
name: "AshOban",
|
groups_for_extras: [
|
||||||
target: "Ash.Resource",
|
Tutorials: ~r'documentation/tutorials',
|
||||||
type: "AshOban Resource"
|
"How To": ~r'documentation/how_to',
|
||||||
}
|
Topics: ~r'documentation/topics',
|
||||||
]
|
DSLs: ~r'documentation/dsls'
|
||||||
],
|
],
|
||||||
extras: extras(),
|
|
||||||
groups_for_extras: groups_for_extras(),
|
|
||||||
groups_for_modules: [
|
groups_for_modules: [
|
||||||
AshOban: [
|
AshOban: [
|
||||||
AshOban
|
AshOban
|
||||||
|
@ -124,15 +84,6 @@ defmodule AshOban.MixProject do
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
defp capitalize(string) do
|
|
||||||
string
|
|
||||||
|> String.split(" ")
|
|
||||||
|> Enum.map(fn string ->
|
|
||||||
[hd | tail] = String.graphemes(string)
|
|
||||||
String.capitalize(hd) <> Enum.join(tail)
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Run "mix help compile.app" to learn about applications.
|
# Run "mix help compile.app" to learn about applications.
|
||||||
def application do
|
def application do
|
||||||
[
|
[
|
||||||
|
|
16
mix.lock
16
mix.lock
|
@ -6,30 +6,30 @@
|
||||||
"db_connection": {:hex, :db_connection, "2.5.0", "bb6d4f30d35ded97b29fe80d8bd6f928a1912ca1ff110831edcd238a1973652c", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c92d5ba26cd69ead1ff7582dbb860adeedfff39774105a4f1c92cbb654b55aa2"},
|
"db_connection": {:hex, :db_connection, "2.5.0", "bb6d4f30d35ded97b29fe80d8bd6f928a1912ca1ff110831edcd238a1973652c", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c92d5ba26cd69ead1ff7582dbb860adeedfff39774105a4f1c92cbb654b55aa2"},
|
||||||
"decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"},
|
"decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"},
|
||||||
"dialyxir": {:hex, :dialyxir, "1.4.1", "a22ed1e7bd3a3e3f197b68d806ef66acb61ee8f57b3ac85fc5d57354c5482a93", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "84b795d6d7796297cca5a3118444b80c7d94f7ce247d49886e7c291e1ae49801"},
|
"dialyxir": {:hex, :dialyxir, "1.4.1", "a22ed1e7bd3a3e3f197b68d806ef66acb61ee8f57b3ac85fc5d57354c5482a93", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "84b795d6d7796297cca5a3118444b80c7d94f7ce247d49886e7c291e1ae49801"},
|
||||||
"earmark_parser": {:hex, :earmark_parser, "1.4.35", "437773ca9384edf69830e26e9e7b2e0d22d2596c4a6b17094a3b29f01ea65bb8", [:mix], [], "hexpm", "8652ba3cb85608d0d7aa2d21b45c6fad4ddc9a1f9a1f1b30ca3a246f0acc33f6"},
|
"earmark_parser": {:hex, :earmark_parser, "1.4.39", "424642f8335b05bb9eb611aa1564c148a8ee35c9c8a8bba6e129d51a3e3c6769", [:mix], [], "hexpm", "06553a88d1f1846da9ef066b87b57c6f605552cfbe40d20bd8d59cc6bde41944"},
|
||||||
"ecto": {:hex, :ecto, "3.10.3", "eb2ae2eecd210b4eb8bece1217b297ad4ff824b4384c0e3fdd28aaf96edd6135", [: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", "44bec74e2364d491d70f7e42cd0d690922659d329f6465e89feb8a34e8cd3433"},
|
"ecto": {:hex, :ecto, "3.10.3", "eb2ae2eecd210b4eb8bece1217b297ad4ff824b4384c0e3fdd28aaf96edd6135", [: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", "44bec74e2364d491d70f7e42cd0d690922659d329f6465e89feb8a34e8cd3433"},
|
||||||
"ecto_sql": {:hex, :ecto_sql, "3.10.2", "6b98b46534b5c2f8b8b5f03f126e75e2a73c64f3c071149d32987a5378b0fdbd", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.10.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.6.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.16.0 or ~> 0.17.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", "68c018debca57cb9235e3889affdaec7a10616a4e3a80c99fa1d01fdafaa9007"},
|
"ecto_sql": {:hex, :ecto_sql, "3.10.2", "6b98b46534b5c2f8b8b5f03f126e75e2a73c64f3c071149d32987a5378b0fdbd", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.10.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.6.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.16.0 or ~> 0.17.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", "68c018debca57cb9235e3889affdaec7a10616a4e3a80c99fa1d01fdafaa9007"},
|
||||||
"elixir_make": {:hex, :elixir_make, "0.7.7", "7128c60c2476019ed978210c245badf08b03dbec4f24d05790ef791da11aa17c", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}], "hexpm", "5bc19fff950fad52bbe5f211b12db9ec82c6b34a9647da0c2224b8b8464c7e6c"},
|
"elixir_make": {:hex, :elixir_make, "0.7.7", "7128c60c2476019ed978210c245badf08b03dbec4f24d05790ef791da11aa17c", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}], "hexpm", "5bc19fff950fad52bbe5f211b12db9ec82c6b34a9647da0c2224b8b8464c7e6c"},
|
||||||
"erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"},
|
"erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"},
|
||||||
"ets": {:hex, :ets, "0.9.0", "79c6a6c205436780486f72d84230c6cba2f8a9920456750ddd1e47389107d5fd", [:mix], [], "hexpm", "2861fdfb04bcaeff370f1a5904eec864f0a56dcfebe5921ea9aadf2a481c822b"},
|
"ets": {:hex, :ets, "0.9.0", "79c6a6c205436780486f72d84230c6cba2f8a9920456750ddd1e47389107d5fd", [:mix], [], "hexpm", "2861fdfb04bcaeff370f1a5904eec864f0a56dcfebe5921ea9aadf2a481c822b"},
|
||||||
"ex_check": {:hex, :ex_check, "0.15.0", "074b94c02de11c37bba1ca82ae5cc4926e6ccee862e57a485b6ba60fca2d8dc1", [:mix], [], "hexpm", "33848031a0c7e4209c3b4369ce154019788b5219956220c35ca5474299fb6a0e"},
|
"ex_check": {:hex, :ex_check, "0.15.0", "074b94c02de11c37bba1ca82ae5cc4926e6ccee862e57a485b6ba60fca2d8dc1", [:mix], [], "hexpm", "33848031a0c7e4209c3b4369ce154019788b5219956220c35ca5474299fb6a0e"},
|
||||||
"ex_doc": {:hex, :ex_doc, "0.30.6", "5f8b54854b240a2b55c9734c4b1d0dd7bdd41f71a095d42a70445c03cf05a281", [:mix], [{:earmark_parser, "~> 1.4.31", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "bd48f2ddacf4e482c727f9293d9498e0881597eae6ddc3d9562bd7923375109f"},
|
"ex_doc": {:hex, :ex_doc, "0.31.1", "8a2355ac42b1cc7b2379da9e40243f2670143721dd50748bf6c3b1184dae2089", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.1", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "3178c3a407c557d8343479e1ff117a96fd31bafe52a039079593fb0524ef61b0"},
|
||||||
"excoveralls": {:hex, :excoveralls, "0.17.1", "83fa7906ef23aa7fc8ad7ee469c357a63b1b3d55dd701ff5b9ce1f72442b2874", [:mix], [{:castore, "~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "95bc6fda953e84c60f14da4a198880336205464e75383ec0f570180567985ae0"},
|
"excoveralls": {:hex, :excoveralls, "0.17.1", "83fa7906ef23aa7fc8ad7ee469c357a63b1b3d55dd701ff5b9ce1f72442b2874", [:mix], [{:castore, "~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "95bc6fda953e84c60f14da4a198880336205464e75383ec0f570180567985ae0"},
|
||||||
"file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
|
"file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
|
||||||
"git_cli": {:hex, :git_cli, "0.3.0", "a5422f9b95c99483385b976f5d43f7e8233283a47cda13533d7c16131cb14df5", [:mix], [], "hexpm", "78cb952f4c86a41f4d3511f1d3ecb28edb268e3a7df278de2faa1bd4672eaf9b"},
|
"git_cli": {:hex, :git_cli, "0.3.0", "a5422f9b95c99483385b976f5d43f7e8233283a47cda13533d7c16131cb14df5", [:mix], [], "hexpm", "78cb952f4c86a41f4d3511f1d3ecb28edb268e3a7df278de2faa1bd4672eaf9b"},
|
||||||
"git_ops": {:hex, :git_ops, "2.6.0", "e0791ee1cf5db03f2c61b7ebd70e2e95cba2bb9b9793011f26609f22c0900087", [:mix], [{:git_cli, "~> 0.2", [hex: :git_cli, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "b98fca849b18aaf490f4ac7d1dd8c6c469b0cc3e6632562d366cab095e666ffe"},
|
"git_ops": {:hex, :git_ops, "2.6.0", "e0791ee1cf5db03f2c61b7ebd70e2e95cba2bb9b9793011f26609f22c0900087", [:mix], [{:git_cli, "~> 0.2", [hex: :git_cli, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "b98fca849b18aaf490f4ac7d1dd8c6c469b0cc3e6632562d366cab095e666ffe"},
|
||||||
"jason": {:hex, :jason, "1.4.1", "af1504e35f629ddcdd6addb3513c3853991f694921b1b9368b0bd32beb9f1b63", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fbb01ecdfd565b56261302f7e1fcc27c4fb8f32d56eab74db621fc154604a7a1"},
|
"jason": {:hex, :jason, "1.4.1", "af1504e35f629ddcdd6addb3513c3853991f694921b1b9368b0bd32beb9f1b63", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fbb01ecdfd565b56261302f7e1fcc27c4fb8f32d56eab74db621fc154604a7a1"},
|
||||||
"makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"},
|
"makeup": {:hex, :makeup, "1.1.1", "fa0bc768698053b2b3869fa8a62616501ff9d11a562f3ce39580d60860c3a55e", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "5dc62fbdd0de44de194898b6710692490be74baa02d9d108bc29f007783b0b48"},
|
||||||
"makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"},
|
"makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"},
|
||||||
"makeup_erlang": {:hex, :makeup_erlang, "0.1.2", "ad87296a092a46e03b7e9b0be7631ddcf64c790fa68a9ef5323b6cbb36affc72", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "f3f5a1ca93ce6e092d92b6d9c049bcda58a3b617a8d888f8e7231c85630e8108"},
|
"makeup_erlang": {:hex, :makeup_erlang, "0.1.3", "d684f4bac8690e70b06eb52dad65d26de2eefa44cd19d64a8095e1417df7c8fd", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "b78dc853d2e670ff6390b605d807263bf606da3c82be37f9d7f68635bd886fc9"},
|
||||||
"nimble_options": {:hex, :nimble_options, "1.0.2", "92098a74df0072ff37d0c12ace58574d26880e522c22801437151a159392270e", [:mix], [], "hexpm", "fd12a8db2021036ce12a309f26f564ec367373265b53e25403f0ee697380f1b8"},
|
"nimble_options": {:hex, :nimble_options, "1.1.0", "3b31a57ede9cb1502071fade751ab0c7b8dbe75a9a4c2b5bbb0943a690b63172", [:mix], [], "hexpm", "8bbbb3941af3ca9acc7835f5655ea062111c9c27bcac53e004460dfd19008a99"},
|
||||||
"nimble_parsec": {:hex, :nimble_parsec, "1.3.1", "2c54013ecf170e249e9291ed0a62e5832f70a476c61da16f6aac6dca0189f2af", [:mix], [], "hexpm", "2682e3c0b2eb58d90c6375fc0cc30bc7be06f365bf72608804fb9cffa5e1b167"},
|
"nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"},
|
||||||
"oban": {:hex, :oban, "2.15.4", "d49ab4ffb7153010e32f80fe9e56f592706238149ec579eb50f8a4e41d218856", [:mix], [{:ecto_sql, "~> 3.6", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "5fce611fdfffb13e9148df883116e5201adf1e731eb302cc88cde0588510079c"},
|
"oban": {:hex, :oban, "2.15.4", "d49ab4ffb7153010e32f80fe9e56f592706238149ec579eb50f8a4e41d218856", [:mix], [{:ecto_sql, "~> 3.6", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "5fce611fdfffb13e9148df883116e5201adf1e731eb302cc88cde0588510079c"},
|
||||||
"oban_pro": {:hex, :oban_pro, "1.0.2", "fa25f84f24c665f0f812321a35ef37eaa5e6e929782727226becb9ea2cf05eb3", [:mix], [{:ecto_sql, "~> 3.8", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:libgraph, "~> 0.13", [hex: :libgraph, repo: "hexpm", optional: true]}, {:oban, "~> 2.15.4", [hex: :oban, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}], "oban", "65b87d47f08d43c39ad5c026e2c86392296d29c028011d92670baf7032e93760"},
|
"oban_pro": {:hex, :oban_pro, "1.0.2", "fa25f84f24c665f0f812321a35ef37eaa5e6e929782727226becb9ea2cf05eb3", [:mix], [{:ecto_sql, "~> 3.8", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:libgraph, "~> 0.13", [hex: :libgraph, repo: "hexpm", optional: true]}, {:oban, "~> 2.15.4", [hex: :oban, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}], "oban", "65b87d47f08d43c39ad5c026e2c86392296d29c028011d92670baf7032e93760"},
|
||||||
"picosat_elixir": {:hex, :picosat_elixir, "0.2.3", "bf326d0f179fbb3b706bb2c15fbc367dacfa2517157d090fdfc32edae004c597", [:make, :mix], [{:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "f76c9db2dec9d2561ffaa9be35f65403d53e984e8cd99c832383b7ab78c16c66"},
|
"picosat_elixir": {:hex, :picosat_elixir, "0.2.3", "bf326d0f179fbb3b706bb2c15fbc367dacfa2517157d090fdfc32edae004c597", [:make, :mix], [{:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "f76c9db2dec9d2561ffaa9be35f65403d53e984e8cd99c832383b7ab78c16c66"},
|
||||||
"sobelow": {:hex, :sobelow, "0.13.0", "218afe9075904793f5c64b8837cc356e493d88fddde126a463839351870b8d1e", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "cd6e9026b85fc35d7529da14f95e85a078d9dd1907a9097b3ba6ac7ebbe34a0d"},
|
"sobelow": {:hex, :sobelow, "0.13.0", "218afe9075904793f5c64b8837cc356e493d88fddde126a463839351870b8d1e", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "cd6e9026b85fc35d7529da14f95e85a078d9dd1907a9097b3ba6ac7ebbe34a0d"},
|
||||||
"sourceror": {:hex, :sourceror, "0.14.0", "b6b8552d0240400d66b6f107c1bab7ac1726e998efc797f178b7b517e928e314", [:mix], [], "hexpm", "809c71270ad48092d40bbe251a133e49ae229433ce103f762a2373b7a10a8d8b"},
|
"sourceror": {:hex, :sourceror, "0.14.1", "c6fb848d55bd34362880da671debc56e77fd722fa13b4dcbeac89a8998fc8b09", [:mix], [], "hexpm", "8b488a219e4c4d7d9ff29d16346fd4a5858085ccdd010e509101e226bbfd8efc"},
|
||||||
"spark": {:hex, :spark, "1.1.41", "c34c7bec8b91f8af05690b5500b5287a319c10887a2e1db6fa5e203289ba62c8", [:mix], [{:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.5 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:sourceror, "~> 0.1", [hex: :sourceror, repo: "hexpm", optional: false]}], "hexpm", "908548f3cbf84d402869e1caf7b5a78492e7d171fe492affc02748f2a51746ff"},
|
"spark": {:hex, :spark, "1.1.54", "54dac39403a2960f738ba5d60678d20b30de7381fb51b787b6bcb6aeabb73d9d", [:mix], [{:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.5 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:sourceror, "~> 0.1", [hex: :sourceror, repo: "hexpm", optional: false]}], "hexpm", "abc9a67cfb60a97d2f3c7e270fa968a2ace94f389e2741d406239d237ec6dbb1"},
|
||||||
"stream_data": {:hex, :stream_data, "0.6.0", "e87a9a79d7ec23d10ff83eb025141ef4915eeb09d4491f79e52f2562b73e5f47", [:mix], [], "hexpm", "b92b5031b650ca480ced047578f1d57ea6dd563f5b57464ad274718c9c29501c"},
|
"stream_data": {:hex, :stream_data, "0.6.0", "e87a9a79d7ec23d10ff83eb025141ef4915eeb09d4491f79e52f2562b73e5f47", [:mix], [], "hexpm", "b92b5031b650ca480ced047578f1d57ea6dd563f5b57464ad274718c9c29501c"},
|
||||||
"telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"},
|
"telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"},
|
||||||
"typable": {:hex, :typable, "0.3.0", "0431e121d124cd26f312123e313d2689b9a5322b15add65d424c07779eaa3ca1", [:mix], [], "hexpm", "880a0797752da1a4c508ac48f94711e04c86156f498065a83d160eef945858f8"},
|
"typable": {:hex, :typable, "0.3.0", "0431e121d124cd26f312123e313d2689b9a5322b15add65d424c07779eaa3ca1", [:mix], [], "hexpm", "880a0797752da1a4c508ac48f94711e04c86156f498065a83d160eef945858f8"},
|
||||||
|
|
Loading…
Reference in a new issue