docs: finalize initial cheat_sheet/docs pattern

This commit is contained in:
Zach Daniel 2023-09-26 23:13:40 -04:00
parent df2102501c
commit 5c8f96231e
11 changed files with 15742 additions and 1188 deletions

View file

@ -1,3 +1,6 @@
<!--
This file was generated by Spark. Do not edit it by hand.
-->
# DSL: Ash.Api.Dsl
Apis are the entrypoints for working with your resources.
@ -28,9 +31,40 @@ end
### Options
| Name | Type | Default | Docs |
| --- | --- | --- | --- |
| `description` | `String.t` | | A description for the api. |
<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="api-description" href="#api-description">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
description
</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>
A description for the api.
</td>
</tr>
</tbody>
</table>
@ -57,11 +91,82 @@ end
### Options
| Name | Type | Default | Docs |
| --- | --- | --- | --- |
| `allow` | `mfa` | | Support a dynamic resource list by providing a callback that checks whether or not the resource should be allowed. |
| `allow_unregistered?` | `boolean` | `false` | Whether the Api will support only registered entries or not. |
| `registry` | `module` | | Configure a registry that contains the resources. This option is generally not necessary anymore, and remains for backwards compatibility. Instead, configure resources in this block directly. |
<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="resources-allow" href="#resources-allow">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
allow
</span>
</a>
</td>
<td style="text-align: left">
<code class="inline">mfa</code>
</td>
<td style="text-align: left">
</td>
<td style="text-align: left" colspan=2>
Support a dynamic resource list by providing a callback that checks whether or not the resource should be allowed.
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="resources-allow_unregistered?" href="#resources-allow_unregistered?">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
allow_unregistered?
</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>
Whether the Api will support only registered entries or not.
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="resources-registry" href="#resources-registry">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
registry
</span>
</a>
</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>
Configure a registry that contains the resources. This option is generally not necessary anymore, and remains for backwards compatibility. Instead, configure resources in this block directly.
</td>
</tr>
</tbody>
</table>
@ -83,9 +188,40 @@ resource Foo
### Arguments
| Name | Type | Default | Docs |
| --- | --- | --- | --- |
| `resource`* | `module` | | |
<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="resource-resource" href="#resource-resource">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
resource
</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>
</td>
</tr>
</tbody>
</table>
@ -116,10 +252,61 @@ end
### Options
| Name | Type | Default | Docs |
| --- | --- | --- | --- |
| `timeout` | `timeout` | `30000` | The default timeout to use for requests using this API. See the [timeouts guide](/documentation/topics/timeouts.md) for more. |
| `trace_name` | `String.t` | | The name to use in traces. Defaults to the last part of the module. See the [monitoring guide](/documentation/topics/monitoring.md) for more |
<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="execution-timeout" href="#execution-timeout">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
timeout
</span>
</a>
</td>
<td style="text-align: left">
<code class="inline">timeout</code>
</td>
<td style="text-align: left">
<code class="inline">30000</code>
</td>
<td style="text-align: left" colspan=2>
The default timeout to use for requests using this API. See the [timeouts guide](/documentation/topics/timeouts.md) for more.
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="execution-trace_name" href="#execution-trace_name">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
trace_name
</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 name to use in traces. Defaults to the last part of the module. See the [monitoring guide](/documentation/topics/monitoring.md) for more
</td>
</tr>
</tbody>
</table>
@ -144,10 +331,60 @@ end
### Options
| Name | Type | Default | Docs |
| --- | --- | --- | --- |
| `require_actor?` | `boolean` | `false` | Requires that an actor has been supplied. |
| `authorize` | `:always \| :by_default \| :when_requested` | `:when_requested` | When to run authorization for a given request. |
<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="authorization-require_actor?" href="#authorization-require_actor?">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
require_actor?
</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>
Requires that an actor has been supplied.
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="authorization-authorize" href="#authorization-authorize">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
authorize
</span>
</a>
</td>
<td style="text-align: left">
<code class="inline">:always | :by_default | :when_requested</code>
</td>
<td style="text-align: left">
<code class="inline">:when_requested</code>
</td>
<td style="text-align: left" colspan=2>
When to run authorization for a given request.
</td>
</tr>
</tbody>
</table>

View file

@ -1,3 +1,6 @@
<!--
This file was generated by Spark. Do not edit it by hand.
-->
# DSL: Ash.DataLayer.Ets
An ETS (Erlang Term Storage) backed Ash Datalayer, for testing and lightweight usage.
@ -25,10 +28,60 @@ end
### Options
| Name | Type | Default | Docs |
| --- | --- | --- | --- |
| `private?` | `boolean` | `false` | Sets the ets table protection to private, and scopes it to only this process. The table name will not be used directly if this is true, to allow multiple processes to use this resource separately. |
| `table` | `atom` | | The name of the table. Defaults to the resource name. |
<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="ets-private?" href="#ets-private?">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
private?
</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>
Sets the ets table protection to private, and scopes it to only this process. The table name will not be used directly if this is true, to allow multiple processes to use this resource separately.
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="ets-table" href="#ets-table">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
table
</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 name of the table. Defaults to the resource name.
</td>
</tr>
</tbody>
</table>

View file

@ -1,3 +1,6 @@
<!--
This file was generated by Spark. Do not edit it by hand.
-->
# DSL: Ash.DataLayer.Mnesia
An Mnesia backed Ash Datalayer.
@ -29,9 +32,39 @@ end
### Options
| Name | Type | Default | Docs |
| --- | --- | --- | --- |
| `table` | `atom` | | The table name to use, defaults to the name of the resource |
<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="mnesia-table" href="#mnesia-table">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
table
</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 table name to use, defaults to the name of the resource
</td>
</tr>
</tbody>
</table>

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,6 @@
<!--
This file was generated by Spark. Do not edit it by hand.
-->
# DSL: Ash.Notifier.PubSub
A pubsub notifier extension.
@ -32,12 +35,101 @@ end
### Options
| Name | Type | Default | Docs |
| --- | --- | --- | --- |
| `module`* | `atom` | | The module to call `broadcast/3` on e.g module.broadcast(topic, event, message). |
| `prefix` | `String.t` | | A prefix for all pubsub messages, e.g `users`. A message with `created` would be published as `users:created` |
| `broadcast_type` | `:notification \| :phoenix_broadcast \| :broadcast` | `:notification` | What shape the event payloads will be in. See |
| `name` | `atom` | | A named pub sub to pass as the first argument to broadcast. |
<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="pub_sub-module" href="#pub_sub-module">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
module
</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 module to call `broadcast/3` on e.g module.broadcast(topic, event, message).
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="pub_sub-prefix" href="#pub_sub-prefix">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
prefix
</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>
A prefix for all pubsub messages, e.g `users`. A message with `created` would be published as `users:created`
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="pub_sub-broadcast_type" href="#pub_sub-broadcast_type">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
broadcast_type
</span>
</a>
</td>
<td style="text-align: left">
<code class="inline">:notification | :phoenix_broadcast | :broadcast</code>
</td>
<td style="text-align: left">
<code class="inline">:notification</code>
</td>
<td style="text-align: left" colspan=2>
What shape the event payloads will be in. See
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="pub_sub-name" href="#pub_sub-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 named pub sub to pass as the first argument to broadcast.
</td>
</tr>
</tbody>
</table>
@ -66,16 +158,103 @@ publish :assign, "assigned"
### Arguments
| Name | Type | Default | Docs |
| --- | --- | --- | --- |
| `action`* | `atom` | | The name of the action that should be published |
| `topic`* | ``any`` | | The topic to publish |
### Options
| Name | Type | Default | Docs |
| --- | --- | --- | --- |
| `event` | `String.t` | | The name of the event to publish. Defaults to the action name |
| `dispatcher` | `atom` | | The module to use as a dispatcher. If none is set, the pubsub module provided is used. |
<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="action-topic-action" href="#action-topic-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 name of the action that should be published
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="action-topic-topic" href="#action-topic-topic">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
topic
</span>
</a>
<sup style="color: red">*</sup>
</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 topic to publish
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="action-topic-event" href="#action-topic-event">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
event
</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 name of the event to publish. Defaults to the action name
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="action-topic-dispatcher" href="#action-topic-dispatcher">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
dispatcher
</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 module to use as a dispatcher. If none is set, the pubsub module provided is used.
</td>
</tr>
</tbody>
</table>
@ -106,17 +285,122 @@ publish_all :create, "created"
### Arguments
| Name | Type | Default | Docs |
| --- | --- | --- | --- |
| `type` | `:create \| :update \| :destroy` | | Publish on all actions of a given type |
| `topic`* | ``any`` | | The topic to publish |
### Options
| Name | Type | Default | Docs |
| --- | --- | --- | --- |
| `action` | `atom` | | The name of the action that should be published |
| `event` | `String.t` | | The name of the event to publish. Defaults to the action name |
| `dispatcher` | `atom` | | The module to use as a dispatcher. If none is set, the pubsub module provided is used. |
<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="type-topic-topic" href="#type-topic-topic">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
topic
</span>
</a>
<sup style="color: red">*</sup>
</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 topic to publish
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="type-topic-type" href="#type-topic-type">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
type
</span>
</a>
</td>
<td style="text-align: left">
<code class="inline">:create | :update | :destroy</code>
</td>
<td style="text-align: left">
</td>
<td style="text-align: left" colspan=2>
Publish on all actions of a given type
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="type-topic-action" href="#type-topic-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 name of the action that should be published
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="type-topic-event" href="#type-topic-event">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
event
</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 name of the event to publish. Defaults to the action name
</td>
</tr>
<tr>
<td style="text-align: left">
<a id="type-topic-dispatcher" href="#type-topic-dispatcher">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
dispatcher
</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 module to use as a dispatcher. If none is set, the pubsub module provided is used.
</td>
</tr>
</tbody>
</table>

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,6 @@
<!--
This file was generated by Spark. Do not edit it by hand.
-->
# DSL: Ash.Registry.Dsl
A small DSL for declaring an `Ash.Registry`. Not generally necessary any longer.
@ -26,9 +29,39 @@ end
### Options
| Name | Type | Default | Docs |
| --- | --- | --- | --- |
| `warn_on_empty?` | `boolean` | `true` | Set to `false` to ignore warnings about an empty registry |
<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="entries-warn_on_empty?" href="#entries-warn_on_empty?">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
warn_on_empty?
</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>
Set to `false` to ignore warnings about an empty registry
</td>
</tr>
</tbody>
</table>
@ -50,9 +83,40 @@ entry MyApp.User
### Arguments
| Name | Type | Default | Docs |
| --- | --- | --- | --- |
| `entry`* | `atom` | | The referenced module |
<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="entry-entry" href="#entry-entry">
<span style="font-family: Inconsolata, Menlo, Courier, monospace;">
entry
</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 referenced module
</td>
</tr>
</tbody>
</table>

File diff suppressed because it is too large Load diff

View file

@ -1,63 +0,0 @@
defmodule Mix.Tasks.Ash.ReplaceDocLinks do
@moduledoc """
Replaces any documentation links with text appropriate for hex docs.
"""
use Mix.Task
@shortdoc "Replaces any ash specific doc links with text appropriate for hex docs."
def run(_argv) do
mix_project = Mix.Project.get!()
module_prefix = mix_project |> Module.split() |> Enum.at(0)
"doc/**/*.html"
|> Path.wildcard()
|> Enum.each(fn file ->
new_contents =
file
|> File.read!()
|> String.replace(~r/\>d\:.*\</, fn ">d:" <> contents ->
contents =
contents
|> String.trim_trailing("<")
|> String.replace("|", ".")
module_name =
contents
|> String.split(".")
|> Enum.take_while(&capitalized?/1)
|> Enum.join(".")
if String.starts_with?(module_name, module_prefix) do
case Code.ensure_compiled(Module.concat([module_name])) do
{:module, _} ->
:ok
{:error, error} ->
raise "Expected #{module_name} to be compiled, but it was not: #{inspect(error)}"
end
end
name =
module_name
|> String.trim_trailing(".Dsl")
|> String.split(".")
|> Enum.map_join("-", &String.downcase/1)
rest = contents |> String.trim_leading(module_name <> ".") |> String.replace(".", "-")
"><a href=\"dsl-#{name}.html##{rest}\">#{contents}</a><"
end)
File.write!(file, new_contents)
end)
end
defp capitalized?(string) do
first =
string
|> String.graphemes()
|> Enum.at(0)
String.downcase(first) != first
end
end

View file

@ -318,7 +318,7 @@ defmodule Ash.MixProject do
docs: [
"spark.cheat_sheets",
"docs",
"ash.replace_doc_links",
"spark.replace_doc_links",
"spark.cheat_sheets_in_search"
],
"spark.cheat_sheets_in_search":

View file

@ -31,7 +31,7 @@
"plug_crypto": {:hex, :plug_crypto, "1.2.5", "918772575e48e81e455818229bf719d4ab4181fcbf7f85b68a35620f78d89ced", [:mix], [], "hexpm", "26549a1d6345e2172eb1c233866756ae44a9609bd33ee6f99147ab3fd87fd842"},
"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"},
"spark": {:hex, :spark, "1.1.39", "f143b84a5b796bf2d83ec8fb4793ee9e66e67510c40d785f9a67050bb88e7677", [: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", "d71bc26014c7e7abcdcf553f4cf7c5a5ff96f8365b1e20be3768ce503aafb203"},
"spark": {:hex, :spark, "1.1.40", "b61438fece40eb0ffed7c4c9e5f1c2c817209902ed853b0008b7681b1994c29c", [: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", "40d0f803f1090249ef6a76cb2bf40466c57f4995326dc97996e0b8b4f365ad17"},
"statistex": {:hex, :statistex, "1.0.0", "f3dc93f3c0c6c92e5f291704cf62b99b553253d7969e9a5fa713e5481cd858a5", [:mix], [], "hexpm", "ff9d8bee7035028ab4742ff52fc80a2aa35cece833cf5319009b52f1b5a86c27"},
"stream_data": {:hex, :stream_data, "0.6.0", "e87a9a79d7ec23d10ff83eb025141ef4915eeb09d4491f79e52f2562b73e5f47", [:mix], [], "hexpm", "b92b5031b650ca480ced047578f1d57ea6dd563f5b57464ad274718c9c29501c"},
"telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"},