auto-format
This commit is contained in:
parent
9d0ca204ad
commit
0ef85e77f9
10
.credo.exs
10
.credo.exs
|
@ -3,14 +3,20 @@
|
|||
%{
|
||||
name: "default",
|
||||
files: %{
|
||||
included: ["mix.exs", "flavours/", "lib/", "forks/*/mix.exs", "forks/*/lib"],
|
||||
included: [
|
||||
"mix.exs",
|
||||
"flavours/",
|
||||
"lib/",
|
||||
"forks/*/mix.exs",
|
||||
"forks/*/lib"
|
||||
],
|
||||
excluded: [~r"/_build/", "**/*_test.exs"]
|
||||
},
|
||||
plugins: [],
|
||||
requires: [],
|
||||
strict: false,
|
||||
parse_timeout: 5000,
|
||||
color: true,
|
||||
color: true
|
||||
# checks: [
|
||||
# {Credo.Check.Design.AliasUsage, priority: :low},
|
||||
# # ... other checks omitted for readability ...
|
||||
|
|
|
@ -1,15 +1,21 @@
|
|||
[
|
||||
import_deps: [:surface],
|
||||
plugins: [Surface.Formatter.Plugin],
|
||||
plugins: [Phoenix.LiveView.HTMLFormatter, Surface.Formatter.Plugin],
|
||||
|
||||
# add patterns matching all .sface files and all .ex files with ~F sigils
|
||||
inputs: ["*.{ex,exs}", "{config,lib,test,forks}/**/*.{ex,exs,sface}"],
|
||||
inputs: [
|
||||
"{mix,.formatter,mess}.exs",
|
||||
"{flavours,lib,test}/**/*.{ex,exs,sface,heex}",
|
||||
"forks/bonfire*/{config,lib,test}/**/*.{ex,exs,sface,heex}"
|
||||
],
|
||||
|
||||
# THE FOLLOWING ARE OPTIONAL:
|
||||
|
||||
# set desired line length for both Elixir's code formatter and this one
|
||||
# (only affects opening tags in Surface)
|
||||
line_length: 80,
|
||||
line_length: 98
|
||||
|
||||
# heex_line_length: 84,
|
||||
|
||||
# or, set line length only for Surface code (overrides `line_length`)
|
||||
# surface_line_length: 84
|
||||
|
|
6
.iex.exs
6
.iex.exs
|
@ -24,9 +24,9 @@ if module_enabled?(Bonfire.Common.Test.Interactive) && Mix.env() == :test do
|
|||
Process.unlink(pid)
|
||||
end
|
||||
|
||||
Bonfire.Common.Test.Interactive.Helpers.ready
|
||||
|
||||
Bonfire.Common.Test.Interactive.Helpers.ready()
|
||||
else
|
||||
info("IExWatchTests is not running")
|
||||
end
|
||||
import_if_enabled Bonfire.Common.Test.Interactive.Helpers
|
||||
|
||||
import_if_enabled(Bonfire.Common.Test.Interactive.Helpers)
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
alias Recode.Task
|
||||
|
||||
[
|
||||
version: "0.4.0",
|
||||
# Can also be set/reset with "--autocorrect"/"--no-autocorrect".
|
||||
autocorrect: true,
|
||||
# With "--dry" no changes will be written to the files.
|
||||
# Can also be set/reset with "--dry"/"--no-dry".
|
||||
# If dry is true then verbose is also active.
|
||||
dry: true,
|
||||
# Can also be set/reset with "--verbose"/"--no-verbose".
|
||||
verbose: true,
|
||||
# Can be overwriten by calling `mix recode "lib/**/*.ex"`.
|
||||
inputs: [
|
||||
"{flavours,lib,test}/**/*.{ex,exs}",
|
||||
"forks/bonfire*/{config,lib,test}/**/*.{ex,exs}"
|
||||
],
|
||||
formatter: {Recode.Formatter, []},
|
||||
tasks: [
|
||||
# Tasks could be added by a tuple of the tasks module name and an options
|
||||
# keyword list. A task can be deactived by `active: false`. The execution of
|
||||
# a deactivated task can be forced by calling `mix recode --task ModuleName`.
|
||||
{Task.AliasExpansion, []},
|
||||
{Task.AliasOrder, active: false},
|
||||
{Task.EnforceLineLength, active: false},
|
||||
{Task.PipeFunOne, []},
|
||||
{Task.SinglePipe, active: false}, # Note: does not known how to handle `Arrows`
|
||||
{Task.Specs, active: false, exclude: "{test}/**/*.{ex,exs}", config: [only: :visible]},
|
||||
{Task.TestFileExt, []},
|
||||
{Task.UnusedVariable, active: false}
|
||||
]
|
||||
]
|
|
@ -49,7 +49,7 @@
|
|||
"tailwindcss-debug-screens": "^2.2.1"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"chromedriver": "^103.0.0"
|
||||
"chromedriver": "^105.0.0"
|
||||
},
|
||||
"disabledDependencies": {
|
||||
"@rtvision/esbuild-dynamic-import": "^0.2.0",
|
||||
|
|
347
assets/yarn.lock
347
assets/yarn.lock
|
@ -12,6 +12,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@alpinejs/intersect/-/intersect-3.10.3.tgz#9aebf43b40e02b0f53e244229472cc3f1d1ed304"
|
||||
integrity sha512-vMRvhbMJzS1tupb2a/3GF5H+gLxxWaXJpcxJlfSHrV2JTb+RFWOJIkL/63JpPPGibtpaNBDrx3hsRN0CJ4d5mw==
|
||||
|
||||
"@esbuild/linux-loong64@0.14.54":
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028"
|
||||
integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==
|
||||
|
||||
"@nodelib/fs.scandir@2.1.5":
|
||||
version "2.1.5"
|
||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
|
||||
|
@ -34,25 +39,26 @@
|
|||
fastq "^1.6.0"
|
||||
|
||||
"@tailwindcss/forms@^0.5.2":
|
||||
version "0.5.2"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.2.tgz#4ef45f9916dcb37838cbe7fecdcc4ba7a7c2ab59"
|
||||
integrity sha512-pSrFeJB6Bg1Mrg9CdQW3+hqZXAKsBrSG9MAfFLKy1pVA4Mb4W7C0k7mEhlmS2Dfo/otxrQOET7NJiJ9RrS563w==
|
||||
version "0.5.3"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.3.tgz#e4d7989686cbcaf416c53f1523df5225332a86e7"
|
||||
integrity sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==
|
||||
dependencies:
|
||||
mini-svg-data-uri "^1.2.3"
|
||||
|
||||
"@tailwindcss/line-clamp@^0.4.0":
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/line-clamp/-/line-clamp-0.4.0.tgz#03353e31e77636b785f2336e8c978502cec1de81"
|
||||
integrity sha512-HQZo6gfx1D0+DU3nWlNLD5iA6Ef4JAXh0LeD8lOGrJwEDBwwJNKQza6WoXhhY1uQrxOuU8ROxV7CqiQV4CoiLw==
|
||||
version "0.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/line-clamp/-/line-clamp-0.4.2.tgz#f353c5a8ab2c939c6267ac5b907f012e5ee130f9"
|
||||
integrity sha512-HFzAQuqYCjyy/SX9sLGB1lroPzmcnWv1FHkIpmypte10hptf4oPUfucryMKovZh2u0uiS9U5Ty3GghWfEJGwVw==
|
||||
|
||||
"@tailwindcss/typography@^0.5.2":
|
||||
version "0.5.4"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.4.tgz#ad8c9e6808bae297bb7826742e4789f2a9f09a48"
|
||||
integrity sha512-QEdg40EmGvE7kKoDei8zr5sf4D1pIayHj4R31bH3lX8x2BtTiR+jNejYPOkhbmy3DXgkMF9jC8xqNiGFAuL9Sg==
|
||||
version "0.5.7"
|
||||
resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.7.tgz#e0b95bea787ee14c5a34a74fc824e6fe86ea8855"
|
||||
integrity sha512-JTTSTrgZfp6Ki4svhPA4mkd9nmQ/j9EfE7SbHJ1cLtthKkpW2OxsFXzSmxbhYbEkfNIyAyhle5p4SYyKRbz/jg==
|
||||
dependencies:
|
||||
lodash.castarray "^4.4.0"
|
||||
lodash.isplainobject "^4.0.6"
|
||||
lodash.merge "^4.6.2"
|
||||
postcss-selector-parser "6.0.10"
|
||||
|
||||
"@testim/chrome-version@^1.1.2":
|
||||
version "1.1.2"
|
||||
|
@ -60,9 +66,9 @@
|
|||
integrity sha512-1c4ZOETSRpI0iBfIFUqU4KqwBAB2lHUAlBjZz/YqOHqwM9dTTzjV6Km0ZkiEiSCx/tLr1BtESIKyWWMww+RUqw==
|
||||
|
||||
"@types/node@*":
|
||||
version "18.6.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.6.1.tgz#828e4785ccca13f44e2fb6852ae0ef11e3e20ba5"
|
||||
integrity sha512-z+2vB6yDt1fNwKOeGbckpmirO+VBDuQqecXkgeIqDlaOtmKn6hPR/viQ8cxCfqLU4fTlvM3+YjM367TukWdxpg==
|
||||
version "18.7.16"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.16.tgz#0eb3cce1e37c79619943d2fd903919fc30850601"
|
||||
integrity sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg==
|
||||
|
||||
"@types/yauzl@^2.9.1":
|
||||
version "2.10.0"
|
||||
|
@ -84,9 +90,9 @@
|
|||
integrity sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==
|
||||
|
||||
"@yaireo/tagify@^4.12.0":
|
||||
version "4.14.1"
|
||||
resolved "https://registry.yarnpkg.com/@yaireo/tagify/-/tagify-4.14.1.tgz#2657426ec64a12f1a1000400a7be6bba319a2657"
|
||||
integrity sha512-Yo/keCvgGRNV2KA6M8W/A2XUV4S9lTX+VYWwErWMJxKgzfMlZmhaOqkmuQBbGCvSS/GcLW4lzcV+IxPd+yPEXA==
|
||||
version "4.16.4"
|
||||
resolved "https://registry.yarnpkg.com/@yaireo/tagify/-/tagify-4.16.4.tgz#78d2cbb56cd083af175d3cb48178ada0b37d9872"
|
||||
integrity sha512-7x13aVfYPGUUMXWkV11/Zw4w1RkkTWtaO/rEAkaOFNwGIFXDBeG5Wr4gWF6JSHXLZAreS53nHq6b6mJrtpUgYA==
|
||||
|
||||
acorn-node@^1.8.2:
|
||||
version "1.8.2"
|
||||
|
@ -165,12 +171,12 @@ asynckit@^0.4.0:
|
|||
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
|
||||
|
||||
autoprefixer@^10.4.7:
|
||||
version "10.4.7"
|
||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.7.tgz#1db8d195f41a52ca5069b7593be167618edbbedf"
|
||||
integrity sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==
|
||||
version "10.4.9"
|
||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.9.tgz#40f932f7d0535264823882031f9254ea72c693e5"
|
||||
integrity sha512-Uu67eduPEmOeA0vyJby5ghu1AAELCCNSsLAjK+lz6kYzNM5sqnBO36MqfsjhPjQF/BaJM5U/UuFYyl7PavY/wQ==
|
||||
dependencies:
|
||||
browserslist "^4.20.3"
|
||||
caniuse-lite "^1.0.30001335"
|
||||
browserslist "^4.21.3"
|
||||
caniuse-lite "^1.0.30001394"
|
||||
fraction.js "^4.2.0"
|
||||
normalize-range "^0.1.2"
|
||||
picocolors "^1.0.0"
|
||||
|
@ -214,15 +220,15 @@ braces@^3.0.2, braces@~3.0.2:
|
|||
dependencies:
|
||||
fill-range "^7.0.1"
|
||||
|
||||
browserslist@^4.20.3:
|
||||
version "4.21.2"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.2.tgz#59a400757465535954946a400b841ed37e2b4ecf"
|
||||
integrity sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==
|
||||
browserslist@^4.21.3:
|
||||
version "4.21.3"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a"
|
||||
integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30001366"
|
||||
electron-to-chromium "^1.4.188"
|
||||
caniuse-lite "^1.0.30001370"
|
||||
electron-to-chromium "^1.4.202"
|
||||
node-releases "^2.0.6"
|
||||
update-browserslist-db "^1.0.4"
|
||||
update-browserslist-db "^1.0.5"
|
||||
|
||||
buffer-crc32@~0.2.3:
|
||||
version "0.2.13"
|
||||
|
@ -242,10 +248,10 @@ camelcase-css@^2.0.1:
|
|||
resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
|
||||
integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
|
||||
|
||||
caniuse-lite@^1.0.30001335, caniuse-lite@^1.0.30001366:
|
||||
version "1.0.30001370"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001370.tgz#0a30d4f20d38b9e108cc5ae7cc62df9fe66cd5ba"
|
||||
integrity sha512-3PDmaP56wz/qz7G508xzjx8C+MC2qEm4SYhSEzC9IBROo+dGXFWRuaXkWti0A9tuI00g+toiriVqxtWMgl350g==
|
||||
caniuse-lite@^1.0.30001370, caniuse-lite@^1.0.30001394:
|
||||
version "1.0.30001397"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001397.tgz#010d9d56e3b8abcd8df261d0a94b22426271a15f"
|
||||
integrity sha512-SW9N2TbCdLf0eiNDRrrQXx2sOkaakNZbCjgNpPyMJJbiOrU5QzMIrXOVMRM1myBXTD5iTkdrtU/EguCrBocHlA==
|
||||
|
||||
chokidar@^3.3.0, chokidar@^3.5.3:
|
||||
version "3.5.3"
|
||||
|
@ -262,10 +268,10 @@ chokidar@^3.3.0, chokidar@^3.5.3:
|
|||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
chromedriver@^103.0.0:
|
||||
version "103.0.0"
|
||||
resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-103.0.0.tgz#2ef086d62076e3ff6df6cfb84895d11d2c18d9cf"
|
||||
integrity sha512-7BHf6HWt0PeOHCzWO8qlnD13sARzr5AKTtG8Csn+czsuAsajwPxdLNtry5GPh8HYFyl+i0M+yg3bT43AGfgU9w==
|
||||
chromedriver@^105.0.0:
|
||||
version "105.0.0"
|
||||
resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-105.0.0.tgz#81a68e2bc0618a640defd7317ddf6ae9127fc5e4"
|
||||
integrity sha512-BX3GOUW5m6eiW9cVVF8hw+EFxvrGqYCxbwOqnpk8PjbNFqL5xjy7yel+e6ilJPjckAYFutMKs8XJvOs/W85vvg==
|
||||
dependencies:
|
||||
"@testim/chrome-version" "^1.1.2"
|
||||
axios "^0.27.2"
|
||||
|
@ -362,9 +368,9 @@ cssesc@^3.0.0:
|
|||
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
|
||||
|
||||
daisyui@^2.24.0:
|
||||
version "2.24.0"
|
||||
resolved "https://registry.yarnpkg.com/daisyui/-/daisyui-2.24.0.tgz#7eacfc943815979227cf50b98f7df622c2814118"
|
||||
integrity sha512-Fdu/4LCdTfWLWAbCuPxvnaRotEfJ+hVPgZ2kv/aUk9RZ00Yk8fGdJtIf0kXJ3IgUKOr8rCXUpfQY6DQU9usPCQ==
|
||||
version "2.27.0"
|
||||
resolved "https://registry.yarnpkg.com/daisyui/-/daisyui-2.27.0.tgz#145e75e17529f81a113c84e86cc5312e01799f88"
|
||||
integrity sha512-AhFGhTore1Kdnae+5RGc2PGESSXOjAQDHJfvryP+KY41gxMcNErtuaGZG+nOmvOzNKgxViSDSaOn/VZq6H8kxA==
|
||||
dependencies:
|
||||
color "^4.2"
|
||||
css-selector-tokenizer "^0.8.0"
|
||||
|
@ -455,10 +461,10 @@ duplexer@^0.1.1:
|
|||
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
|
||||
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
|
||||
|
||||
electron-to-chromium@^1.4.188:
|
||||
version "1.4.202"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.202.tgz#0c2ed733f42b02ec49a955c5badfcc65888c390b"
|
||||
integrity sha512-JYsK2ex9lmQD27kj19fhXYxzFJ/phLAkLKHv49A5UY6kMRV2xED3qMMLg/voW/+0AR6wMiI+VxlmK9NDtdxlPA==
|
||||
electron-to-chromium@^1.4.202:
|
||||
version "1.4.247"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.247.tgz#cc93859bc5fc521f611656e65ce17eae26a0fd3d"
|
||||
integrity sha512-FLs6R4FQE+1JHM0hh3sfdxnYjKvJpHZyhQDjc2qFq/xFvmmRt/TATNToZhrcGUFzpF2XjeiuozrA8lI0PZmYYw==
|
||||
|
||||
emoji-regex@^8.0.0:
|
||||
version "8.0.0"
|
||||
|
@ -472,131 +478,132 @@ end-of-stream@^1.1.0:
|
|||
dependencies:
|
||||
once "^1.4.0"
|
||||
|
||||
esbuild-android-64@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.50.tgz#a46fc80fa2007690e647680d837483a750a3097f"
|
||||
integrity sha512-H7iUEm7gUJHzidsBlFPGF6FTExazcgXL/46xxLo6i6bMtPim6ZmXyTccS8yOMpy6HAC6dPZ/JCQqrkkin69n6Q==
|
||||
esbuild-android-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be"
|
||||
integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==
|
||||
|
||||
esbuild-android-arm64@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.50.tgz#bdda7851fa7f5f770d6ff0ad593a8945d3a0fcdd"
|
||||
integrity sha512-NFaoqEwa+OYfoYVpQWDMdKII7wZZkAjtJFo1WdnBeCYlYikvUhTnf2aPwPu5qEAw/ie1NYK0yn3cafwP+kP+OQ==
|
||||
esbuild-android-arm64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771"
|
||||
integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==
|
||||
|
||||
esbuild-darwin-64@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.50.tgz#f0535435f9760766f30db14a991ee5ca94c022a4"
|
||||
integrity sha512-gDQsCvGnZiJv9cfdO48QqxkRV8oKAXgR2CGp7TdIpccwFdJMHf8hyIJhMW/05b/HJjET/26Us27Jx91BFfEVSA==
|
||||
esbuild-darwin-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25"
|
||||
integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==
|
||||
|
||||
esbuild-darwin-arm64@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.50.tgz#76a41a40e8947a15ae62970e9ed2853883c4b16c"
|
||||
integrity sha512-36nNs5OjKIb/Q50Sgp8+rYW/PqirRiFN0NFc9hEvgPzNJxeJedktXwzfJSln4EcRFRh5Vz4IlqFRScp+aiBBzA==
|
||||
esbuild-darwin-arm64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73"
|
||||
integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==
|
||||
|
||||
esbuild-freebsd-64@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.50.tgz#2ed6633c17ed42c20a1bd68e82c4bbc75ea4fb57"
|
||||
integrity sha512-/1pHHCUem8e/R86/uR+4v5diI2CtBdiWKiqGuPa9b/0x3Nwdh5AOH7lj+8823C6uX1e0ufwkSLkS+aFZiBCWxA==
|
||||
esbuild-freebsd-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d"
|
||||
integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==
|
||||
|
||||
esbuild-freebsd-arm64@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.50.tgz#cb115f4cdafe9cdbe58875ba482fccc54d32aa43"
|
||||
integrity sha512-iKwUVMQztnPZe5pUYHdMkRc9aSpvoV1mkuHlCoPtxZA3V+Kg/ptpzkcSY+fKd0kuom+l6Rc93k0UPVkP7xoqrw==
|
||||
esbuild-freebsd-arm64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48"
|
||||
integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==
|
||||
|
||||
esbuild-linux-32@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.50.tgz#fe2b724994dcf1d4e48dc4832ff008ad7d00bcfd"
|
||||
integrity sha512-sWUwvf3uz7dFOpLzYuih+WQ7dRycrBWHCdoXJ4I4XdMxEHCECd8b7a9N9u7FzT6XR2gHPk9EzvchQUtiEMRwqw==
|
||||
esbuild-linux-32@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5"
|
||||
integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==
|
||||
|
||||
esbuild-linux-64@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.50.tgz#7851ab5151df9501a2187bd4909c594ad232b623"
|
||||
integrity sha512-u0PQxPhaeI629t4Y3EEcQ0wmWG+tC/LpP2K7yDFvwuPq0jSQ8SIN+ARNYfRjGW15O2we3XJvklbGV0wRuUCPig==
|
||||
esbuild-linux-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652"
|
||||
integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==
|
||||
|
||||
esbuild-linux-arm64@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.50.tgz#76a76afef484a0512f1fbbcc762edd705dee8892"
|
||||
integrity sha512-ZyfoNgsTftD7Rp5S7La5auomKdNeB3Ck+kSKXC4pp96VnHyYGjHHXWIlcbH8i+efRn9brszo1/Thl1qn8RqmhQ==
|
||||
esbuild-linux-arm64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b"
|
||||
integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==
|
||||
|
||||
esbuild-linux-arm@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.50.tgz#6d7a8c0712091b0c3a668dd5d8b5c924adbaeb12"
|
||||
integrity sha512-VALZq13bhmFJYFE/mLEb+9A0w5vo8z+YDVOWeaf9vOTrSC31RohRIwtxXBnVJ7YKLYfEMzcgFYf+OFln3Y0cWg==
|
||||
esbuild-linux-arm@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59"
|
||||
integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==
|
||||
|
||||
esbuild-linux-mips64le@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.50.tgz#43426909c1884c5dc6b40765673a08a7ec1d2064"
|
||||
integrity sha512-ygo31Vxn/WrmjKCHkBoutOlFG5yM9J2UhzHb0oWD9O61dGg+Hzjz9hjf5cmM7FBhAzdpOdEWHIrVOg2YAi6rTw==
|
||||
esbuild-linux-mips64le@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34"
|
||||
integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==
|
||||
|
||||
esbuild-linux-ppc64le@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.50.tgz#c754ea3da1dd180c6e9b6b508dc18ce983d92b11"
|
||||
integrity sha512-xWCKU5UaiTUT6Wz/O7GKP9KWdfbsb7vhfgQzRfX4ahh5NZV4ozZ4+SdzYG8WxetsLy84UzLX3Pi++xpVn1OkFQ==
|
||||
esbuild-linux-ppc64le@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e"
|
||||
integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==
|
||||
|
||||
esbuild-linux-riscv64@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.50.tgz#f3b2dd3c4c2b91bf191d3b98a9819c8aa6f5ad7f"
|
||||
integrity sha512-0+dsneSEihZTopoO9B6Z6K4j3uI7EdxBP7YSF5rTwUgCID+wHD3vM1gGT0m+pjCW+NOacU9kH/WE9N686FHAJg==
|
||||
esbuild-linux-riscv64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8"
|
||||
integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==
|
||||
|
||||
esbuild-linux-s390x@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.50.tgz#3dfbc4578b2a81995caabb79df2b628ea86a5390"
|
||||
integrity sha512-tVjqcu8o0P9H4StwbIhL1sQYm5mWATlodKB6dpEZFkcyTI8kfIGWiWcrGmkNGH2i1kBUOsdlBafPxR3nzp3TDA==
|
||||
esbuild-linux-s390x@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6"
|
||||
integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==
|
||||
|
||||
esbuild-netbsd-64@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.50.tgz#17dbf51eaa48d983e794b588d195415410ef8c85"
|
||||
integrity sha512-0R/glfqAQ2q6MHDf7YJw/TulibugjizBxyPvZIcorH0Mb7vSimdHy0XF5uCba5CKt+r4wjax1mvO9lZ4jiAhEg==
|
||||
esbuild-netbsd-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81"
|
||||
integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==
|
||||
|
||||
esbuild-openbsd-64@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.50.tgz#cf6b1a50c8cf67b0725aaa4bce9773976168c50e"
|
||||
integrity sha512-7PAtmrR5mDOFubXIkuxYQ4bdNS6XCK8AIIHUiZxq1kL8cFIH5731jPcXQ4JNy/wbj1C9sZ8rzD8BIM80Tqk29w==
|
||||
esbuild-openbsd-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b"
|
||||
integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==
|
||||
|
||||
esbuild-sunos-64@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.50.tgz#f705ae0dd914c3b45dc43319c4f532216c3d841f"
|
||||
integrity sha512-gBxNY/wyptvD7PkHIYcq7se6SQEXcSC8Y7mE0FJB+CGgssEWf6vBPfTTZ2b6BWKnmaP6P6qb7s/KRIV5T2PxsQ==
|
||||
esbuild-sunos-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da"
|
||||
integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==
|
||||
|
||||
esbuild-windows-32@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.50.tgz#6364905a99c1e6c1e2fe7bfccebd958131b1cd6c"
|
||||
integrity sha512-MOOe6J9cqe/iW1qbIVYSAqzJFh0p2LBLhVUIWdMVnNUNjvg2/4QNX4oT4IzgDeldU+Bym9/Tn6+DxvUHJXL5Zw==
|
||||
esbuild-windows-32@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31"
|
||||
integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==
|
||||
|
||||
esbuild-windows-64@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.50.tgz#56603cb6367e30d14098deb77de6aa18d76dd89b"
|
||||
integrity sha512-r/qE5Ex3w1jjGv/JlpPoWB365ldkppUlnizhMxJgojp907ZF1PgLTuW207kgzZcSCXyquL9qJkMsY+MRtaZ5yQ==
|
||||
esbuild-windows-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4"
|
||||
integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==
|
||||
|
||||
esbuild-windows-arm64@0.14.50:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.50.tgz#e7ddde6a97194051a5a4ac05f4f5900e922a7ea5"
|
||||
integrity sha512-EMS4lQnsIe12ZyAinOINx7eq2mjpDdhGZZWDwPZE/yUTN9cnc2Ze/xUTYIAyaJqrqQda3LnDpADKpvLvol6ENQ==
|
||||
esbuild-windows-arm64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982"
|
||||
integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==
|
||||
|
||||
esbuild@^0.14.47:
|
||||
version "0.14.50"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.50.tgz#7a665392c8df94bf6e1ae1e999966a5ee62c6cbc"
|
||||
integrity sha512-SbC3k35Ih2IC6trhbMYW7hYeGdjPKf9atTKwBUHqMCYFZZ9z8zhuvfnZihsnJypl74FjiAKjBRqFkBkAd0rS/w==
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2"
|
||||
integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==
|
||||
optionalDependencies:
|
||||
esbuild-android-64 "0.14.50"
|
||||
esbuild-android-arm64 "0.14.50"
|
||||
esbuild-darwin-64 "0.14.50"
|
||||
esbuild-darwin-arm64 "0.14.50"
|
||||
esbuild-freebsd-64 "0.14.50"
|
||||
esbuild-freebsd-arm64 "0.14.50"
|
||||
esbuild-linux-32 "0.14.50"
|
||||
esbuild-linux-64 "0.14.50"
|
||||
esbuild-linux-arm "0.14.50"
|
||||
esbuild-linux-arm64 "0.14.50"
|
||||
esbuild-linux-mips64le "0.14.50"
|
||||
esbuild-linux-ppc64le "0.14.50"
|
||||
esbuild-linux-riscv64 "0.14.50"
|
||||
esbuild-linux-s390x "0.14.50"
|
||||
esbuild-netbsd-64 "0.14.50"
|
||||
esbuild-openbsd-64 "0.14.50"
|
||||
esbuild-sunos-64 "0.14.50"
|
||||
esbuild-windows-32 "0.14.50"
|
||||
esbuild-windows-64 "0.14.50"
|
||||
esbuild-windows-arm64 "0.14.50"
|
||||
"@esbuild/linux-loong64" "0.14.54"
|
||||
esbuild-android-64 "0.14.54"
|
||||
esbuild-android-arm64 "0.14.54"
|
||||
esbuild-darwin-64 "0.14.54"
|
||||
esbuild-darwin-arm64 "0.14.54"
|
||||
esbuild-freebsd-64 "0.14.54"
|
||||
esbuild-freebsd-arm64 "0.14.54"
|
||||
esbuild-linux-32 "0.14.54"
|
||||
esbuild-linux-64 "0.14.54"
|
||||
esbuild-linux-arm "0.14.54"
|
||||
esbuild-linux-arm64 "0.14.54"
|
||||
esbuild-linux-mips64le "0.14.54"
|
||||
esbuild-linux-ppc64le "0.14.54"
|
||||
esbuild-linux-riscv64 "0.14.54"
|
||||
esbuild-linux-s390x "0.14.54"
|
||||
esbuild-netbsd-64 "0.14.54"
|
||||
esbuild-openbsd-64 "0.14.54"
|
||||
esbuild-sunos-64 "0.14.54"
|
||||
esbuild-windows-32 "0.14.54"
|
||||
esbuild-windows-64 "0.14.54"
|
||||
esbuild-windows-arm64 "0.14.54"
|
||||
|
||||
escalade@^3.1.1:
|
||||
version "3.1.1"
|
||||
|
@ -615,9 +622,9 @@ extract-zip@^2.0.1:
|
|||
"@types/yauzl" "^2.9.1"
|
||||
|
||||
fast-glob@^3.2.11, fast-glob@^3.2.9:
|
||||
version "3.2.11"
|
||||
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
|
||||
integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
|
||||
version "3.2.12"
|
||||
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80"
|
||||
integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
|
||||
dependencies:
|
||||
"@nodelib/fs.stat" "^2.0.2"
|
||||
"@nodelib/fs.walk" "^1.2.3"
|
||||
|
@ -850,9 +857,9 @@ is-binary-path@~2.1.0:
|
|||
binary-extensions "^2.0.0"
|
||||
|
||||
is-core-module@^2.9.0:
|
||||
version "2.9.0"
|
||||
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
|
||||
integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
|
||||
version "2.10.0"
|
||||
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed"
|
||||
integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==
|
||||
dependencies:
|
||||
has "^1.0.3"
|
||||
|
||||
|
@ -894,9 +901,9 @@ is-url@^1.2.4:
|
|||
integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==
|
||||
|
||||
is2@^2.0.6:
|
||||
version "2.0.7"
|
||||
resolved "https://registry.yarnpkg.com/is2/-/is2-2.0.7.tgz#d084e10cab3bd45d6c9dfde7a48599fcbb93fcac"
|
||||
integrity sha512-4vBQoURAXC6hnLFxD4VW7uc04XiwTTl/8ydYJxKvPwkWQrSjInkuM5VZVg6BGr1/natq69zDuvO9lGpLClJqvA==
|
||||
version "2.0.9"
|
||||
resolved "https://registry.yarnpkg.com/is2/-/is2-2.0.9.tgz#ff63b441f90de343fa8fac2125ee170da8e8240d"
|
||||
integrity sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==
|
||||
dependencies:
|
||||
deep-is "^0.1.3"
|
||||
ip-regex "^4.1.0"
|
||||
|
@ -916,7 +923,7 @@ jsonfile@^6.0.1:
|
|||
optionalDependencies:
|
||||
graceful-fs "^4.1.6"
|
||||
|
||||
lilconfig@^2.0.5:
|
||||
lilconfig@^2.0.5, lilconfig@^2.0.6:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4"
|
||||
integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==
|
||||
|
@ -1166,7 +1173,7 @@ postcss-reporter@^7.0.0:
|
|||
picocolors "^1.0.0"
|
||||
thenby "^1.3.4"
|
||||
|
||||
postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6:
|
||||
postcss-selector-parser@6.0.10, postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6:
|
||||
version "6.0.10"
|
||||
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d"
|
||||
integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==
|
||||
|
@ -1180,9 +1187,9 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
|
|||
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
|
||||
|
||||
postcss@^8.4.14:
|
||||
version "8.4.14"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf"
|
||||
integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
|
||||
version "8.4.16"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c"
|
||||
integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==
|
||||
dependencies:
|
||||
nanoid "^3.3.4"
|
||||
picocolors "^1.0.0"
|
||||
|
@ -1343,9 +1350,9 @@ tailwindcss-debug-screens@^2.2.1:
|
|||
integrity sha512-EMyA0CYBzqcZJHtVDvBfmYzfx3NxuK4qDyVO5wnzcGOrmJsv25D9xPpWefVTORTvhE6pCh90Z1WYnLUKsg3yMw==
|
||||
|
||||
tailwindcss@^3, tailwindcss@~3.1.4:
|
||||
version "3.1.6"
|
||||
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.6.tgz#bcb719357776c39e6376a8d84e9834b2b19a49f1"
|
||||
integrity sha512-7skAOY56erZAFQssT1xkpk+kWt2NrO45kORlxFPXUt3CiGsVPhH1smuH5XoDH6sGPXLyBv+zgCKA2HWBsgCytg==
|
||||
version "3.1.8"
|
||||
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.8.tgz#4f8520550d67a835d32f2f4021580f9fddb7b741"
|
||||
integrity sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==
|
||||
dependencies:
|
||||
arg "^5.0.2"
|
||||
chokidar "^3.5.3"
|
||||
|
@ -1356,7 +1363,7 @@ tailwindcss@^3, tailwindcss@~3.1.4:
|
|||
fast-glob "^3.2.11"
|
||||
glob-parent "^6.0.2"
|
||||
is-glob "^4.0.3"
|
||||
lilconfig "^2.0.5"
|
||||
lilconfig "^2.0.6"
|
||||
normalize-path "^3.0.0"
|
||||
object-hash "^3.0.0"
|
||||
picocolors "^1.0.0"
|
||||
|
@ -1395,10 +1402,10 @@ universalify@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
|
||||
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
|
||||
|
||||
update-browserslist-db@^1.0.4:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38"
|
||||
integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==
|
||||
update-browserslist-db@^1.0.5:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz#16279639cff1d0f800b14792de43d97df2d11b7d"
|
||||
integrity sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==
|
||||
dependencies:
|
||||
escalade "^3.1.1"
|
||||
picocolors "^1.0.0"
|
||||
|
@ -1448,9 +1455,9 @@ yaml@^2.1.1:
|
|||
integrity sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==
|
||||
|
||||
yargs-parser@^21.0.0:
|
||||
version "21.0.1"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35"
|
||||
integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==
|
||||
version "21.1.1"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
|
||||
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
|
||||
|
||||
yargs@^17.0.0:
|
||||
version "17.5.1"
|
||||
|
|
|
@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
||||
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
|
||||
|
||||
## [Unreleased (2022-09-09)]
|
||||
## [Unreleased (2022-09-12)]
|
||||
### Added
|
||||
- Static page generator [#444](https://github.com/bonfire-networks/bonfire-app/issues/444)
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@ config :activity_pub, :repo, Bonfire.Common.Repo
|
|||
|
||||
config :nodeinfo, :adapter, Bonfire.Federate.ActivityPub.NodeinfoAdapter
|
||||
|
||||
|
||||
config :activity_pub, :instance,
|
||||
hostname: "localhost",
|
||||
federation_publisher_modules: [ActivityPubWeb.Publisher],
|
||||
|
@ -29,6 +28,7 @@ config :activity_pub, :mrf_simple,
|
|||
banner_removal: []
|
||||
|
||||
config :http_signatures, adapter: ActivityPub.Signature
|
||||
|
||||
config :activity_pub, :http,
|
||||
proxy_url: nil,
|
||||
send_user_agent: true,
|
||||
|
@ -42,10 +42,14 @@ config :activity_pub, :http,
|
|||
]
|
||||
|
||||
config :activity_pub, ActivityPubWeb.Endpoint,
|
||||
render_errors: [view: ActivityPubWeb.ErrorView, accepts: ~w(json), layout: false]
|
||||
render_errors: [
|
||||
view: ActivityPubWeb.ErrorView,
|
||||
accepts: ~w(json),
|
||||
layout: false
|
||||
]
|
||||
|
||||
config :activity_pub, :json_contexts, %{
|
||||
"Hashtag"=> "as:Hashtag",
|
||||
"ValueFlows" => "https://w3id.org/valueflows#",
|
||||
"om2" => "http://www.ontology-of-units-of-measure.org/resource/om-2/"
|
||||
}
|
||||
"Hashtag" => "as:Hashtag",
|
||||
"ValueFlows" => "https://w3id.org/valueflows#",
|
||||
"om2" => "http://www.ontology-of-units-of-measure.org/resource/om-2/"
|
||||
}
|
||||
|
|
|
@ -12,9 +12,8 @@ config :activity_pub, Oban,
|
|||
repo: Bonfire.Common.Repo,
|
||||
queues: false
|
||||
|
||||
config :activity_pub, :instance,
|
||||
federating: false
|
||||
# rewrite_policy: [ActivityPub.MRF.SimplePolicy]
|
||||
config :activity_pub, :instance, federating: false
|
||||
# rewrite_policy: [ActivityPub.MRF.SimplePolicy]
|
||||
|
||||
config :tesla, adapter: Tesla.Mock
|
||||
|
||||
|
|
|
@ -13,10 +13,12 @@ config :bonfire_common,
|
|||
|
||||
config :bonfire_common, Bonfire.Common.Localise.Cldr,
|
||||
default_locale: default_locale,
|
||||
locales: ["fr", "en", "es", "it", "vi"], # locales that will be made available on top of those for which gettext localisation files are available
|
||||
# locales that will be made available on top of those for which gettext localisation files are available
|
||||
locales: ["fr", "en", "es", "it", "vi"],
|
||||
providers: [Cldr.Language],
|
||||
gettext: Bonfire.Common.Localise.Gettext,
|
||||
extra_gettext: [Timex.Gettext], # extra Gettex modules from dependencies not using the one from Bonfire.Common, so we can change their locale too
|
||||
# extra Gettex modules from dependencies not using the one from Bonfire.Common, so we can change their locale too
|
||||
extra_gettext: [Timex.Gettext],
|
||||
data_dir: "priv/cldr",
|
||||
add_fallback_locales: true,
|
||||
# precompile_number_formats: ["¤¤#,##0.##"],
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -12,9 +12,11 @@ config :bonfire_fail,
|
|||
bad_header: {400, "Bad request: malformed header."},
|
||||
no_access: {403, "This site is by invitation only."},
|
||||
token_expired: {403, "This link or token has expired, please request a fresh one."},
|
||||
already_claimed: {403, "This link or token was already used, please request a fresh one if necessary."},
|
||||
already_claimed:
|
||||
{403, "This link or token was already used, please request a fresh one if necessary."},
|
||||
token_not_found: {403, "This token was not found, please request a fresh one."},
|
||||
user_disabled: {403, "This user account is disabled. Please contact the instance administrator."},
|
||||
user_disabled:
|
||||
{403, "This user account is disabled. Please contact the instance administrator."},
|
||||
email_not_confirmed: {403, "Please confirm your email address first."},
|
||||
unknown_resource: {400, "Unknown resource."},
|
||||
invalid_argument: {400, "Invalid arguments passed."},
|
||||
|
|
|
@ -21,5 +21,5 @@ config :bonfire_gc,
|
|||
Bonfire.Data.Identity.Caretaker,
|
||||
Bonfire.Data.Identity.Self,
|
||||
Bonfire.Data.Social.PostContent
|
||||
],
|
||||
]
|
||||
]
|
||||
|
|
|
@ -3,5 +3,4 @@ import Config
|
|||
config :bonfire_geolocate,
|
||||
templates_path: "lib"
|
||||
|
||||
config :bonfire, :js_config,
|
||||
mapbox_api_key: System.get_env("MAPBOX_API_KEY")
|
||||
config :bonfire, :js_config, mapbox_api_key: System.get_env("MAPBOX_API_KEY")
|
||||
|
|
|
@ -11,17 +11,16 @@ config :boruta, Boruta.Oauth,
|
|||
]
|
||||
|
||||
# config :bonfire_open_id, :openid_connect_providers,
|
||||
# bonfire_cafe: [
|
||||
# discovery_document_uri: "https://bonfire.cafe/.well-known/openid-configuration",
|
||||
# client_id: "CLIENT_ID",
|
||||
# client_secret: "CLIENT_SECRET",
|
||||
# redirect_uri: "https://myinstance.net/",
|
||||
# response_type: "code",
|
||||
# scope: "identity data:public"
|
||||
# ]
|
||||
# bonfire_cafe: [
|
||||
# discovery_document_uri: "https://bonfire.cafe/.well-known/openid-configuration",
|
||||
# client_id: "CLIENT_ID",
|
||||
# client_secret: "CLIENT_SECRET",
|
||||
# redirect_uri: "https://myinstance.net/",
|
||||
# response_type: "code",
|
||||
# scope: "identity data:public"
|
||||
# ]
|
||||
|
||||
|
||||
if Mix.env()==:test do
|
||||
if Mix.env() == :test do
|
||||
config :bonfire_open_id, :oauth_module, Boruta.OauthMock
|
||||
config :bonfire_open_id, :openid_module, Boruta.OpenidMock
|
||||
end
|
||||
|
|
|
@ -2,15 +2,15 @@ import Config
|
|||
|
||||
# Please note that these are defaults meant to be overriden in Settings rather than edited here
|
||||
config :bonfire, :ui,
|
||||
theme: [
|
||||
instance_name: "Bonfire",
|
||||
instance_theme: "bonfire",
|
||||
instance_icon: "/images/bonfire-icon.png",
|
||||
instance_image: "/images/bonfires.png",
|
||||
instance_description: "This is a bonfire demo instance for testing purposes",
|
||||
instance_welcome: [
|
||||
title: "👋 Welcome",
|
||||
description: "
|
||||
theme: [
|
||||
instance_name: "Bonfire",
|
||||
instance_theme: "bonfire",
|
||||
instance_icon: "/images/bonfire-icon.png",
|
||||
instance_image: "/images/bonfires.png",
|
||||
instance_description: "This is a bonfire demo instance for testing purposes",
|
||||
instance_welcome: [
|
||||
title: "👋 Welcome",
|
||||
description: "
|
||||
Bonfire is a federated social networking toolkit for communities and individuals to design, operate and control their digital lives, by assembling their own social networks like lego blocks in order to cultivate safe and private spaces while being interconnected with the rest of the 'fediverse' and the internet at wide on their own terms.
|
||||
The bonfire ecosystem will include:
|
||||
1. Bonfire apps/flavours: Open source federated networks that are ready to be installed and used for different purposes. Made up of a set of pre-configured extensions.
|
||||
|
@ -19,122 +19,123 @@ The bonfire ecosystem will include:
|
|||
4. Bonfire cloud services: Your public identity in the cloud can receive messages even when your device is offline. Syncs your Bonfire device with the fediverse, and deletes already-synced data from the cloud. Open source so others can host equivalent services.
|
||||
|
||||
More details at https://bonfirenetworks.org",
|
||||
links: [
|
||||
"About Bonfire": "https://bonfirenetworks.org/",
|
||||
"Forum": "https://socialhub.activitypub.rocks/g/bonfire/activity/posts",
|
||||
"Community Chat": "https://matrix.to/#/%23bonfire-networks:matrix.org",
|
||||
"Contribute": "https://bonfirenetworks.org/contribute/"
|
||||
]
|
||||
links: [
|
||||
"About Bonfire": "https://bonfirenetworks.org/",
|
||||
Forum: "https://socialhub.activitypub.rocks/g/bonfire/activity/posts",
|
||||
"Community Chat": "https://matrix.to/#/%23bonfire-networks:matrix.org",
|
||||
Contribute: "https://bonfirenetworks.org/contribute/"
|
||||
]
|
||||
], # end theme
|
||||
# rich_text_editor_disabled: true,
|
||||
rich_text_editor: Bonfire.Editor.Quill,
|
||||
# rich_text_editor: Bonfire.Editor.Ck,
|
||||
font_family: "Inter (Latin Languages)", # default
|
||||
font_families: [
|
||||
"Inter (Latin Languages)",
|
||||
"Inter (More Languages)",
|
||||
"Noto Sans (Latin Languages)",
|
||||
"Noto Sans (More Languages)",
|
||||
"OpenDyslexic"
|
||||
],
|
||||
theme: "bonfire",
|
||||
themes: [
|
||||
"bonfire",
|
||||
"light",
|
||||
"dark",
|
||||
"cupcake",
|
||||
"bumblebee",
|
||||
"emerald",
|
||||
"corporate",
|
||||
"synthwave",
|
||||
"retro",
|
||||
"cyberpunk",
|
||||
"valentine",
|
||||
"halloween",
|
||||
"garden",
|
||||
"forest",
|
||||
"aqua",
|
||||
"lofi",
|
||||
"pastel",
|
||||
"fantasy",
|
||||
"wireframe",
|
||||
"black",
|
||||
"luxury",
|
||||
"dracula",
|
||||
"cmyk",
|
||||
"autumn",
|
||||
"business",
|
||||
"acid",
|
||||
"lemonade",
|
||||
"night",
|
||||
"coffee",
|
||||
"winter"
|
||||
],
|
||||
]
|
||||
],
|
||||
|
||||
show_trending_tags: [
|
||||
disabled: false,
|
||||
for_last_x_days: 30,
|
||||
limit: 8,
|
||||
],
|
||||
sidebar_components: [
|
||||
{Bonfire.UI.Social.SidebarNavigationLive, []},
|
||||
],
|
||||
smart_input: [
|
||||
post: true,
|
||||
cw: true,
|
||||
summary: true
|
||||
],
|
||||
profile: [
|
||||
sections: [
|
||||
timeline: Bonfire.UI.Social.ProfileTimelineLive,
|
||||
# private: Bonfire.UI.Social.MessageThreadsLive,
|
||||
posts: Bonfire.UI.Social.ProfilePostsLive,
|
||||
boosts: Bonfire.UI.Social.ProfileBoostsLive,
|
||||
followers: Bonfire.UI.Social.ProfileFollowsLive,
|
||||
followed: Bonfire.UI.Social.ProfileFollowsLive,
|
||||
follow: Bonfire.UI.Me.RemoteInteractionFormLive,
|
||||
],
|
||||
navigation: [
|
||||
timeline: "Timeline",
|
||||
posts: "Posts",
|
||||
boosts: "Boosts",
|
||||
# private: "Messages",
|
||||
],
|
||||
widgets: [
|
||||
],
|
||||
],
|
||||
category: [
|
||||
navigation: [
|
||||
timeline: "Published",
|
||||
submitted: "Submitted"
|
||||
],
|
||||
sections: [
|
||||
timeline: Bonfire.UI.Social.ProfileTimelineLive,
|
||||
posts: Bonfire.UI.Social.ProfilePostsLive,
|
||||
boosts: Bonfire.UI.Social.ProfileBoostsLive,
|
||||
followers: Bonfire.UI.Social.ProfileFollowsLive,
|
||||
follow: Bonfire.UI.Me.RemoteInteractionFormLive,
|
||||
new: Bonfire.Classify.Web.NewCategoryLive,
|
||||
settings: Bonfire.Classify.Web.SettingsLive
|
||||
],
|
||||
],
|
||||
smart_input_activities: [
|
||||
post: "Compose a post",
|
||||
category: "Create a topic",
|
||||
# offer: "Publish an offer",
|
||||
# need: "Publish a need",
|
||||
# transfer_resource: "Transfer a resource",
|
||||
# produce_resource: "Add a resource",
|
||||
# intent: "Indicate an itent",
|
||||
# economic_event: "Record an economic event",
|
||||
# process: "Define a process"
|
||||
],
|
||||
smart_input_components: [
|
||||
post: Bonfire.UI.Social.WritePostContentLive,
|
||||
message: Bonfire.UI.Social.WritePostContentLive,
|
||||
category: Bonfire.Classify.Web.NewCategoryLive,
|
||||
],
|
||||
# end theme
|
||||
# rich_text_editor_disabled: true,
|
||||
rich_text_editor: Bonfire.Editor.Quill,
|
||||
# rich_text_editor: Bonfire.Editor.Ck,
|
||||
# default
|
||||
font_family: "Inter (Latin Languages)",
|
||||
font_families: [
|
||||
"Inter (Latin Languages)",
|
||||
"Inter (More Languages)",
|
||||
"Noto Sans (Latin Languages)",
|
||||
"Noto Sans (More Languages)",
|
||||
"OpenDyslexic"
|
||||
],
|
||||
theme: "bonfire",
|
||||
themes: [
|
||||
"bonfire",
|
||||
"light",
|
||||
"dark",
|
||||
"cupcake",
|
||||
"bumblebee",
|
||||
"emerald",
|
||||
"corporate",
|
||||
"synthwave",
|
||||
"retro",
|
||||
"cyberpunk",
|
||||
"valentine",
|
||||
"halloween",
|
||||
"garden",
|
||||
"forest",
|
||||
"aqua",
|
||||
"lofi",
|
||||
"pastel",
|
||||
"fantasy",
|
||||
"wireframe",
|
||||
"black",
|
||||
"luxury",
|
||||
"dracula",
|
||||
"cmyk",
|
||||
"autumn",
|
||||
"business",
|
||||
"acid",
|
||||
"lemonade",
|
||||
"night",
|
||||
"coffee",
|
||||
"winter"
|
||||
],
|
||||
show_trending_tags: [
|
||||
disabled: false,
|
||||
for_last_x_days: 30,
|
||||
limit: 8
|
||||
],
|
||||
sidebar_components: [
|
||||
{Bonfire.UI.Social.SidebarNavigationLive, []}
|
||||
],
|
||||
smart_input: [
|
||||
post: true,
|
||||
cw: true,
|
||||
summary: true
|
||||
],
|
||||
profile: [
|
||||
sections: [
|
||||
timeline: Bonfire.UI.Social.ProfileTimelineLive,
|
||||
# private: Bonfire.UI.Social.MessageThreadsLive,
|
||||
posts: Bonfire.UI.Social.ProfilePostsLive,
|
||||
boosts: Bonfire.UI.Social.ProfileBoostsLive,
|
||||
followers: Bonfire.UI.Social.ProfileFollowsLive,
|
||||
followed: Bonfire.UI.Social.ProfileFollowsLive,
|
||||
follow: Bonfire.UI.Me.RemoteInteractionFormLive
|
||||
],
|
||||
navigation: [
|
||||
timeline: "Timeline",
|
||||
posts: "Posts",
|
||||
boosts: "Boosts"
|
||||
# private: "Messages",
|
||||
],
|
||||
widgets: []
|
||||
],
|
||||
category: [
|
||||
navigation: [
|
||||
timeline: "Published",
|
||||
submitted: "Submitted"
|
||||
],
|
||||
sections: [
|
||||
timeline: Bonfire.UI.Social.ProfileTimelineLive,
|
||||
posts: Bonfire.UI.Social.ProfilePostsLive,
|
||||
boosts: Bonfire.UI.Social.ProfileBoostsLive,
|
||||
followers: Bonfire.UI.Social.ProfileFollowsLive,
|
||||
follow: Bonfire.UI.Me.RemoteInteractionFormLive,
|
||||
new: Bonfire.Classify.Web.NewCategoryLive,
|
||||
settings: Bonfire.Classify.Web.SettingsLive
|
||||
]
|
||||
],
|
||||
smart_input_activities: [
|
||||
post: "Compose a post",
|
||||
category: "Create a topic"
|
||||
# offer: "Publish an offer",
|
||||
# need: "Publish a need",
|
||||
# transfer_resource: "Transfer a resource",
|
||||
# produce_resource: "Add a resource",
|
||||
# intent: "Indicate an itent",
|
||||
# economic_event: "Record an economic event",
|
||||
# process: "Define a process"
|
||||
],
|
||||
smart_input_components: [
|
||||
post: Bonfire.UI.Social.WritePostContentLive,
|
||||
message: Bonfire.UI.Social.WritePostContentLive,
|
||||
category: Bonfire.Classify.Web.NewCategoryLive
|
||||
],
|
||||
invites_component: Bonfire.Invite.Links.Web.InvitesLive
|
||||
|
||||
# config :surface_boxicon,
|
||||
|
|
|
@ -2,7 +2,7 @@ import Config
|
|||
|
||||
default_flavour = "classic"
|
||||
flavour = System.get_env("FLAVOUR", default_flavour)
|
||||
flavour_path = System.get_env("FLAVOUR_PATH", "flavours/"<>flavour)
|
||||
flavour_path = System.get_env("FLAVOUR_PATH", "flavours/" <> flavour)
|
||||
|
||||
#### Basic configuration
|
||||
|
||||
|
@ -26,9 +26,12 @@ config :bonfire,
|
|||
org_schema: Bonfire.Data.Identity.User,
|
||||
home_page: Bonfire.Web.HomeLive,
|
||||
user_home_page: Bonfire.UI.Social.FeedsLive,
|
||||
default_pagination_limit: 15, # limit for prod
|
||||
thread_default_pagination_limit: 500, # very high limit for prod
|
||||
thread_default_max_depth: 3, # how many nested replies to show
|
||||
# limit for prod
|
||||
default_pagination_limit: 15,
|
||||
# very high limit for prod
|
||||
thread_default_pagination_limit: 500,
|
||||
# how many nested replies to show
|
||||
thread_default_max_depth: 3,
|
||||
localisation_path: "priv/localisation",
|
||||
ap_base_path: System.get_env("AP_BASE_PATH", "/pub"),
|
||||
signing_salt: "this-will-be-overriden-by-a-secure-string-in-runtime.exs",
|
||||
|
@ -37,10 +40,15 @@ config :bonfire,
|
|||
config :bonfire, Bonfire.Web.Endpoint,
|
||||
url: [host: "localhost"],
|
||||
http: [
|
||||
port: String.to_integer(System.get_env("SERVER_PORT", "4000")), # this gets overriden in runtime.exs
|
||||
# this gets overriden in runtime.exs
|
||||
port: String.to_integer(System.get_env("SERVER_PORT", "4000")),
|
||||
transport_options: [socket_opts: [:inet6]]
|
||||
],
|
||||
render_errors: [view: Bonfire.UI.Common.ErrorView, accepts: ~w(html json), layout: false],
|
||||
render_errors: [
|
||||
view: Bonfire.UI.Common.ErrorView,
|
||||
accepts: ~w(html json),
|
||||
layout: false
|
||||
],
|
||||
pubsub_server: Bonfire.PubSub
|
||||
|
||||
config :phoenix, :json_library, Jason
|
||||
|
@ -48,11 +56,17 @@ config :phoenix_gon, :json_library, Jason
|
|||
|
||||
config :ecto_sparkles, :otp_app, :bonfire
|
||||
config :bonfire, :ecto_repos, [Bonfire.Common.Repo]
|
||||
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
types: Bonfire.Geolocate.PostgresTypes # point to the appropriate definition to support any Postgres extensions used by your Bonfire flavour or extensions
|
||||
# priv: flavour_path <> "/repo",
|
||||
# point to the appropriate definition to support any Postgres extensions used by your Bonfire flavour or extensions
|
||||
types: Bonfire.Geolocate.PostgresTypes
|
||||
|
||||
# priv: flavour_path <> "/repo",
|
||||
config :ecto_sparkles, :otp_app, :bonfire
|
||||
config :ecto_shorts, repo: Bonfire.Common.Repo, error_module: EctoShorts.Actions.Error
|
||||
|
||||
config :ecto_shorts,
|
||||
repo: Bonfire.Common.Repo,
|
||||
error_module: EctoShorts.Actions.Error
|
||||
|
||||
# ecto query filtering
|
||||
# config :query_elf, :id_types, [:id, :binary_id, Pointers.ULID]
|
||||
|
@ -63,8 +77,7 @@ config :logger, :console,
|
|||
|
||||
config :elixir, :dbg_callback, {Untangle, :custom_dbg, []}
|
||||
|
||||
config :surface, :compiler,
|
||||
warn_on_undefined_props: false
|
||||
config :surface, :compiler, warn_on_undefined_props: false
|
||||
|
||||
config :bonfire, Oban,
|
||||
repo: Bonfire.Common.Repo,
|
||||
|
@ -85,13 +98,12 @@ config :mime, :types, %{
|
|||
|
||||
config :sentry,
|
||||
dsn: "this-will-be-overriden-by-a-secure-string-in-runtime.exs",
|
||||
environment_name: Mix.env,
|
||||
environment_name: Mix.env(),
|
||||
# enable_source_code_context: true,
|
||||
root_source_code_path: File.cwd!(),
|
||||
included_environments: [:prod, :dev],
|
||||
tags: %{app_version: Mix.Project.config()[:version]}
|
||||
|
||||
|
||||
# include config for all used Bonfire extensions
|
||||
for config <- "bonfire_*.exs" |> Path.expand(__DIR__) |> Path.wildcard() do
|
||||
# IO.inspect(include_config: config)
|
||||
|
@ -100,6 +112,5 @@ end
|
|||
|
||||
import_config "activity_pub.exs"
|
||||
|
||||
|
||||
# finally, append/override config based on env, which will override any config set above (including from imported files)
|
||||
import_config "#{config_env()}.exs"
|
||||
|
|
|
@ -4,8 +4,10 @@ import Config
|
|||
changelog_issues_closed_after = "2022-08-30"
|
||||
|
||||
config :bonfire,
|
||||
experimental_features_enabled: true, # Note: you can run `Bonfire.Common.Config.put(:experimental_features_enabled, true)` to enable these in prod too
|
||||
default_pagination_limit: 10 # low limit so it is easier to test
|
||||
# Note: you can run `Bonfire.Common.Config.put(:experimental_features_enabled, true)` to enable these in prod too
|
||||
experimental_features_enabled: true,
|
||||
# low limit so it is easier to test
|
||||
default_pagination_limit: 10
|
||||
|
||||
# config :pseudo_gettext, :locale, "en-pseudo_text" # uncomment to use https://en.wikipedia.org/wiki/Pseudolocalization and check that the app is properly localisable
|
||||
|
||||
|
@ -20,15 +22,22 @@ path_dep_dirs =
|
|||
|> Enum.map(&(Keyword.fetch!(elem(&1, 1), :path) <> "/lib"))
|
||||
|
||||
config :phoenix_live_reload,
|
||||
dirs: path_dep_dirs ++ ["lib/"] # watch the app's lib/ dir + the dep/lib/ dir of every locally-cloned dep
|
||||
# watch the app's lib/ dir + the dep/lib/ dir of every locally-cloned dep
|
||||
dirs: path_dep_dirs ++ ["lib/"]
|
||||
|
||||
path_dep_patterns = path_dep_dirs |> Enum.map(&(String.slice(&1, 2..1000) <>".*ex")) # to include cloned code in patterns
|
||||
path_dep_patterns = path_dep_patterns ++ path_dep_dirs |> Enum.map(&(String.slice(&1, 2..1000) <>".*sface")) # Surface views
|
||||
# to include cloned code in patterns
|
||||
path_dep_patterns = Enum.map(path_dep_dirs, &(String.slice(&1, 2..1000) <> ".*ex"))
|
||||
|
||||
# Surface views
|
||||
path_dep_patterns =
|
||||
(path_dep_patterns ++ path_dep_dirs)
|
||||
|> Enum.map(&(String.slice(&1, 2..1000) <> ".*sface"))
|
||||
|
||||
# Watch static and templates for browser reloading.
|
||||
config :bonfire, Bonfire.Web.Endpoint,
|
||||
server: true,
|
||||
debug_errors: true, # In the development environment, Phoenix will debug errors by default, showing us a very informative debugging page. If we want to see what the application would serve in production, set to false
|
||||
# In the development environment, Phoenix will debug errors by default, showing us a very informative debugging page. If we want to see what the application would serve in production, set to false
|
||||
debug_errors: true,
|
||||
check_origin: false,
|
||||
code_reloader: true,
|
||||
watchers: [
|
||||
|
@ -50,49 +59,51 @@ config :bonfire, Bonfire.Web.Endpoint,
|
|||
]
|
||||
],
|
||||
live_reload: [
|
||||
patterns: [
|
||||
# ~r"^priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$",
|
||||
# ~r"^priv/gettext/.*(po)$",
|
||||
# ~r"^web/(live|views)/.*ex$",
|
||||
# ~r"^lib/.*_live\.ex$",
|
||||
# ~r".*leex$",
|
||||
~r"lib/.*(ex|sface)$",
|
||||
~r"priv/catalogue/.*(ex)$",
|
||||
] ++ path_dep_patterns
|
||||
]
|
||||
patterns:
|
||||
[
|
||||
# ~r"^priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$",
|
||||
# ~r"^priv/gettext/.*(po)$",
|
||||
# ~r"^web/(live|views)/.*ex$",
|
||||
# ~r"^lib/.*_live\.ex$",
|
||||
# ~r".*leex$",
|
||||
# defp elixirc_paths(:dev), do: ["lib"] ++ catalogues()
|
||||
|
||||
# defp elixirc_paths(:dev), do: ["lib"] ++ catalogues()
|
||||
~r"lib/.*(ex|sface)$",
|
||||
~r"priv/catalogue/.*(ex)$"
|
||||
] ++ path_dep_patterns
|
||||
]
|
||||
|
||||
config :logger, :console,
|
||||
level: :debug,
|
||||
truncate: :infinity,
|
||||
format: "[$level] $message\n" # Do not include metadata or timestamps
|
||||
# Do not include metadata or timestamps
|
||||
format: "[$level] $message\n"
|
||||
|
||||
config :phoenix, :stacktrace_depth, 30
|
||||
|
||||
config :phoenix, :plug_init_mode, :runtime
|
||||
|
||||
config :surface, :compiler,
|
||||
warn_on_undefined_props: true
|
||||
config :surface, :compiler, warn_on_undefined_props: true
|
||||
|
||||
config :exsync,
|
||||
src_monitor: true,
|
||||
extra_extensions: [".leex", ".js", ".css", ".sface"]
|
||||
|
||||
config :versioce, :changelog,
|
||||
datagrabber: Versioce.Changelog.DataGrabber.Git, # Or your own datagrabber module
|
||||
formatter: Versioce.Changelog.Formatter.Keepachangelog # Or your own formatter module
|
||||
# Or your own datagrabber module
|
||||
datagrabber: Versioce.Changelog.DataGrabber.Git,
|
||||
# Or your own formatter module
|
||||
formatter: Versioce.Changelog.Formatter.Keepachangelog
|
||||
|
||||
config :versioce, :changelog,
|
||||
closed_after: changelog_issues_closed_after,
|
||||
changelog_file: "docs/CHANGELOG-autogenerated.md",
|
||||
datagrabber: Bonfire.Common.Changelog.Github.DataGrabber,
|
||||
anchors:
|
||||
%{
|
||||
added: ["Feature"],
|
||||
changed: ["Improvement", "UI/UX", "Refactor"],
|
||||
deprecated: ["[DEP]"],
|
||||
removed: ["[REM]"],
|
||||
fixed: ["Bug"],
|
||||
security: ["Security", "Safety"]
|
||||
}
|
||||
anchors: %{
|
||||
added: ["Feature"],
|
||||
changed: ["Improvement", "UI/UX", "Refactor"],
|
||||
deprecated: ["[DEP]"],
|
||||
removed: ["[REM]"],
|
||||
fixed: ["Bug"],
|
||||
security: ["Security", "Safety"]
|
||||
}
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
import Config
|
||||
|
||||
|
||||
# We include the path to a cache manifest
|
||||
# containing the digested version of static files. This
|
||||
# manifest is generated by the `mix phx.digest` task,
|
||||
# which you should run after static files are built and
|
||||
# before starting your production server.
|
||||
config :bonfire, Bonfire.Web.Endpoint,
|
||||
cache_static_manifest: "priv/static/cache_manifest.json"
|
||||
config :bonfire, Bonfire.Web.Endpoint, cache_static_manifest: "priv/static/cache_manifest.json"
|
||||
|
||||
config :logger,
|
||||
backends: [:console, Sentry.LoggerBackend]
|
||||
|
@ -18,4 +16,5 @@ config :logger, level: :info
|
|||
config :bonfire, Bonfire.Web.Endpoint, server: true
|
||||
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
priv: "priv/repo" # in releases migrations are not in a flavour-specific directory
|
||||
# in releases migrations are not in a flavour-specific directory
|
||||
priv: "priv/repo"
|
||||
|
|
|
@ -12,17 +12,17 @@ public_port = String.to_integer(System.get_env("PUBLIC_PORT", "4000"))
|
|||
Bonfire.Common.Config.LoadExtensionsConfig.load_configs()
|
||||
##
|
||||
|
||||
System.get_env("DATABASE_URL") || System.get_env("POSTGRES_PASSWORD") || System.get_env("CI") ||
|
||||
raise """
|
||||
Environment variables for database are missing.
|
||||
For example: DATABASE_URL=ecto://USER:PASS@HOST/DATABASE
|
||||
You can also set POSTGRES_PASSWORD (required),
|
||||
and POSTGRES_USER (default: postgres) and POSTGRES_HOST (default: localhost)
|
||||
"""
|
||||
System.get_env("DATABASE_URL") || System.get_env("POSTGRES_PASSWORD") ||
|
||||
System.get_env("CI") ||
|
||||
raise """
|
||||
Environment variables for database are missing.
|
||||
For example: DATABASE_URL=ecto://USER:PASS@HOST/DATABASE
|
||||
You can also set POSTGRES_PASSWORD (required),
|
||||
and POSTGRES_USER (default: postgres) and POSTGRES_HOST (default: localhost)
|
||||
"""
|
||||
|
||||
if System.get_env("DATABASE_URL") do
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
url: System.get_env("DATABASE_URL")
|
||||
config :bonfire, Bonfire.Common.Repo, url: System.get_env("DATABASE_URL")
|
||||
else
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
# ssl: true,
|
||||
|
@ -38,12 +38,14 @@ secret_key_base =
|
|||
You can generate one by calling: mix phx.gen.secret
|
||||
"""
|
||||
|
||||
signing_salt = System.get_env("SIGNING_SALT") || System.get_env("CI") ||
|
||||
signing_salt =
|
||||
System.get_env("SIGNING_SALT") || System.get_env("CI") ||
|
||||
raise """
|
||||
environment variable SIGNING_SALT is missing.
|
||||
"""
|
||||
|
||||
encryption_salt = System.get_env("ENCRYPTION_SALT") || System.get_env("CI") ||
|
||||
encryption_salt =
|
||||
System.get_env("ENCRYPTION_SALT") || System.get_env("CI") ||
|
||||
raise """
|
||||
environment variable ENCRYPTION_SALT is missing.
|
||||
"""
|
||||
|
@ -58,7 +60,10 @@ config :bonfire,
|
|||
signing_salt: signing_salt,
|
||||
root_path: File.cwd!()
|
||||
|
||||
start_server? = if config_env() == :test, do: System.get_env("START_SERVER", "true"), else: System.get_env("START_SERVER", "true")
|
||||
start_server? =
|
||||
if config_env() == :test,
|
||||
do: System.get_env("START_SERVER", "true"),
|
||||
else: System.get_env("START_SERVER", "true")
|
||||
|
||||
config :bonfire, Bonfire.Web.Endpoint,
|
||||
server: String.to_existing_atom(start_server?),
|
||||
|
@ -73,9 +78,7 @@ config :bonfire, Bonfire.Web.Endpoint,
|
|||
live_view: [signing_salt: signing_salt]
|
||||
|
||||
if System.get_env("SENTRY_DSN") do
|
||||
IO.puts(
|
||||
"Note: errors will be reported to Sentry."
|
||||
)
|
||||
IO.puts("Note: errors will be reported to Sentry.")
|
||||
|
||||
config :sentry,
|
||||
dsn: System.get_env("SENTRY_DSN")
|
||||
|
@ -87,22 +90,20 @@ end
|
|||
|
||||
# start prod-only config
|
||||
if config_env() == :prod do
|
||||
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
# ssl: true,
|
||||
database: System.get_env("POSTGRES_DB", "bonfire"),
|
||||
pool_size: String.to_integer(System.get_env("POOL_SIZE", "10")),
|
||||
log: String.to_atom(System.get_env("DB_QUERIES_LOG_LEVEL", "false")) # Note: keep this disabled if using ecto_dev_logger or EctoSparkles.Log instead #
|
||||
|
||||
end # prod only config
|
||||
# Note: keep this disabled if using ecto_dev_logger or EctoSparkles.Log instead #
|
||||
log: String.to_atom(System.get_env("DB_QUERIES_LOG_LEVEL", "false"))
|
||||
end
|
||||
|
||||
# prod only config
|
||||
|
||||
# start prod and dev only config
|
||||
if config_env() != :test do
|
||||
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
slow_query_ms: String.to_integer(System.get_env("SLOW_QUERY_MS", "100"))
|
||||
|
||||
end
|
||||
|
||||
## bonfire_livebook
|
||||
|
@ -110,6 +111,4 @@ if Code.ensure_loaded?(Livebook) do
|
|||
Livebook.config_runtime()
|
||||
end
|
||||
|
||||
IO.puts(
|
||||
"Welcome to Bonfire!"
|
||||
)
|
||||
IO.puts("Welcome to Bonfire!")
|
||||
|
|
|
@ -5,8 +5,10 @@ import Config
|
|||
import_config "activity_pub_test.exs"
|
||||
|
||||
config :bonfire,
|
||||
default_pagination_limit: 10, # should match limit hardcoded in tests
|
||||
thread_default_pagination_limit: 10, # should match limit hardcoded in tests
|
||||
# should match limit hardcoded in tests
|
||||
default_pagination_limit: 10,
|
||||
# should match limit hardcoded in tests
|
||||
thread_default_pagination_limit: 10,
|
||||
skip_all_boundary_checks: false
|
||||
|
||||
config :bonfire, Bonfire.Mailer, adapter: Bamboo.TestAdapter
|
||||
|
@ -40,8 +42,7 @@ config :bonfire, Bonfire.Common.Repo,
|
|||
timeout: 10_000,
|
||||
connect_timeout: 10_000
|
||||
|
||||
config :bonfire, Bonfire.Web.Endpoint,
|
||||
http: [port: 4001]
|
||||
config :bonfire, Bonfire.Web.Endpoint, http: [port: 4001]
|
||||
|
||||
config :bonfire, Oban,
|
||||
crontab: false,
|
||||
|
@ -54,6 +55,7 @@ config :mix_test_interactive,
|
|||
clear: true
|
||||
|
||||
config :paginator, ecto_repos: [Bonfire.Common.Repo]
|
||||
|
||||
config :paginator, Paginator.Repo,
|
||||
pool: Ecto.Adapters.SQL.Sandbox,
|
||||
username: System.get_env("POSTGRES_USER", "postgres"),
|
||||
|
@ -65,15 +67,17 @@ config :exsync,
|
|||
src_monitor: false,
|
||||
extra_extensions: [".leex", ".js", ".css", ".sface"]
|
||||
|
||||
|
||||
# for headless browser testing:
|
||||
config :bonfire, sql_sandbox: true
|
||||
|
||||
config :wallaby,
|
||||
otp_app: :bonfire,
|
||||
# base_url: Bonfire.Web.Endpoint.url(),
|
||||
max_wait_time: 6_000,
|
||||
screenshot_on_failure: true,
|
||||
chromedriver: [
|
||||
path: "assets/node_modules/chromedriver/bin/chromedriver", # point to your chromedriver path
|
||||
headless: true # change to false if you want to see the browser in action
|
||||
# point to your chromedriver path
|
||||
path: "assets/node_modules/chromedriver/bin/chromedriver",
|
||||
# change to false if you want to see the browser in action
|
||||
headless: true
|
||||
]
|
||||
|
|
|
@ -2,11 +2,10 @@ defmodule Bonfire.Repo.Migrations.HelloWorld do
|
|||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
execute "CREATE EXTENSION IF NOT EXISTS \"citext\""
|
||||
execute("CREATE EXTENSION IF NOT EXISTS \"citext\"")
|
||||
end
|
||||
|
||||
def down do
|
||||
execute "DROP EXTENSION IF EXISTS \"citext\""
|
||||
execute("DROP EXTENSION IF EXISTS \"citext\"")
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -6,9 +6,9 @@ defmodule Bonfire.Repo.Migrations.InitPointers do
|
|||
init_pointers_ulid_extra()
|
||||
init_pointers()
|
||||
end
|
||||
|
||||
def down do
|
||||
init_pointers_ulid_extra()
|
||||
init_pointers()
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -2,7 +2,6 @@ defmodule Bonfire.Repo.Migrations.InitEdges do
|
|||
use Ecto.Migration
|
||||
alias Bonfire.Data.Edges.Migration
|
||||
|
||||
|
||||
def up do
|
||||
Migration.up()
|
||||
end
|
||||
|
@ -10,5 +9,4 @@ defmodule Bonfire.Repo.Migrations.InitEdges do
|
|||
def down do
|
||||
Migration.down()
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -6,5 +6,4 @@ defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportMe do
|
|||
|
||||
def up, do: migrate_activity_pub
|
||||
def down, do: migrate_activity_pub
|
||||
|
||||
end
|
||||
|
|
|
@ -5,5 +5,4 @@ defmodule Bonfire.Boundaries.Repo.Migrations.ImportBoundaries do
|
|||
|
||||
def up, do: migrate_boundaries()
|
||||
def down, do: migrate_boundaries()
|
||||
|
||||
end
|
||||
|
|
|
@ -9,5 +9,4 @@ defmodule Bonfire.Repo.Migrations.ImportMe do
|
|||
end
|
||||
|
||||
def down, do: migrate_me()
|
||||
|
||||
end
|
||||
|
|
|
@ -5,10 +5,8 @@ defmodule Bonfire.Social.Repo.Migrations.ImportSocial do
|
|||
import Pointers.Migration
|
||||
|
||||
def up do
|
||||
|
||||
migrate_social()
|
||||
|
||||
end
|
||||
def down, do: migrate_social()
|
||||
|
||||
def down, do: migrate_social()
|
||||
end
|
||||
|
|
|
@ -5,5 +5,4 @@ defmodule Bonfire.Boundaries.Repo.Migrations.BoundariesFixtures do
|
|||
|
||||
def up, do: Bonfire.Boundaries.Fixtures.insert()
|
||||
def down, do: nil
|
||||
|
||||
end
|
||||
|
|
|
@ -2,12 +2,12 @@ defmodule Bonfire.Repo.Migrations.ImportQuantify do
|
|||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
Bonfire.Quantify.Migrations.change
|
||||
Bonfire.Quantify.Migrations.change_measure
|
||||
Bonfire.Quantify.Migrations.change()
|
||||
Bonfire.Quantify.Migrations.change_measure()
|
||||
end
|
||||
|
||||
def down do
|
||||
Bonfire.Quantify.Migrations.change
|
||||
Bonfire.Quantify.Migrations.change_measure
|
||||
Bonfire.Quantify.Migrations.change()
|
||||
Bonfire.Quantify.Migrations.change_measure()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,10 +2,10 @@ defmodule Bonfire.Repo.Migrations.ImportGeolocation do
|
|||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
Bonfire.Geolocate.Migrations.change
|
||||
Bonfire.Geolocate.Migrations.change()
|
||||
end
|
||||
|
||||
def down do
|
||||
Bonfire.Geolocate.Migrations.change
|
||||
Bonfire.Geolocate.Migrations.change()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,5 +6,4 @@ defmodule Bonfire.Repo.Migrations.ImportSharedUser do
|
|||
|
||||
def up, do: migrate_shared_user()
|
||||
def down, do: migrate_shared_user()
|
||||
|
||||
end
|
||||
|
|
|
@ -4,12 +4,12 @@ defmodule ActivityPub.Repo.Migrations.APTestTable do
|
|||
def change do
|
||||
# This table only exists for test purposes
|
||||
create table("local_actor", primary_key: false) do
|
||||
add :id, :uuid, primary_key: true
|
||||
add :username, :citext
|
||||
add :data, :map
|
||||
add :local, :boolean
|
||||
add :keys, :text
|
||||
add :followers, {:array, :string}
|
||||
add(:id, :uuid, primary_key: true)
|
||||
add(:username, :citext)
|
||||
add(:data, :map)
|
||||
add(:local, :boolean)
|
||||
add(:keys, :text)
|
||||
add(:followers, {:array, :string})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,15 +4,19 @@ defmodule Bonfire.Social.Repo.Migrations.ProfileImages do
|
|||
import Pointers.Migration
|
||||
|
||||
def up do
|
||||
drop_if_exists(
|
||||
constraint("bonfire_data_social_profile", "bonfire_data_social_profile_icon_id_fkey")
|
||||
)
|
||||
|
||||
drop_if_exists constraint "bonfire_data_social_profile", "bonfire_data_social_profile_icon_id_fkey"
|
||||
drop_if_exists constraint "bonfire_data_social_profile", "bonfire_data_social_profile_image_id_fkey"
|
||||
drop_if_exists(
|
||||
constraint("bonfire_data_social_profile", "bonfire_data_social_profile_image_id_fkey")
|
||||
)
|
||||
|
||||
alter table("bonfire_data_social_profile") do
|
||||
Ecto.Migration.add_if_not_exists :icon_id, strong_pointer(Bonfire.Files.Media)
|
||||
Ecto.Migration.add_if_not_exists :image_id, strong_pointer(Bonfire.Files.Media)
|
||||
Ecto.Migration.add_if_not_exists(:icon_id, strong_pointer(Bonfire.Files.Media))
|
||||
Ecto.Migration.add_if_not_exists(:image_id, strong_pointer(Bonfire.Files.Media))
|
||||
end
|
||||
end
|
||||
def down, do: nil
|
||||
|
||||
def down, do: nil
|
||||
end
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
defmodule Bonfire.Repo.Migrations.FP do
|
||||
use Ecto.Migration
|
||||
|
||||
|
||||
def up do
|
||||
execute("create or replace function
|
||||
column_exists(ptable text, pcolumn text, pschema text default 'public')
|
||||
|
@ -18,7 +17,8 @@ defmodule Bonfire.Repo.Migrations.FP do
|
|||
);
|
||||
$body$;")
|
||||
|
||||
execute("CREATE OR REPLACE FUNCTION rename_column_if_exists(ptable TEXT, pcolumn TEXT, new_name TEXT)
|
||||
execute(
|
||||
"CREATE OR REPLACE FUNCTION rename_column_if_exists(ptable TEXT, pcolumn TEXT, new_name TEXT)
|
||||
RETURNS VOID AS $BODY$
|
||||
BEGIN
|
||||
-- Rename the column if it exists.
|
||||
|
@ -27,14 +27,15 @@ defmodule Bonfire.Repo.Migrations.FP do
|
|||
ptable, pcolumn, new_name);
|
||||
END IF;
|
||||
END$BODY$
|
||||
LANGUAGE plpgsql VOLATILE;")
|
||||
LANGUAGE plpgsql VOLATILE;"
|
||||
)
|
||||
|
||||
flush()
|
||||
|
||||
execute("SELECT rename_column_if_exists('bonfire_data_social_feed_publish', 'object_id', 'activity_id') ")
|
||||
|
||||
execute(
|
||||
"SELECT rename_column_if_exists('bonfire_data_social_feed_publish', 'object_id', 'activity_id') "
|
||||
)
|
||||
end
|
||||
|
||||
def down, do: nil
|
||||
|
||||
end
|
||||
|
|
|
@ -5,9 +5,9 @@ defmodule Bonfire.Social.Repo.Migrations.PeeredURI do
|
|||
|
||||
def up do
|
||||
alter table("bonfire_data_activity_pub_peered") do
|
||||
Ecto.Migration.add_if_not_exists :canonical_uri, :text, null: true
|
||||
Ecto.Migration.add_if_not_exists(:canonical_uri, :text, null: true)
|
||||
end
|
||||
end
|
||||
def down, do: nil
|
||||
|
||||
def down, do: nil
|
||||
end
|
||||
|
|
|
@ -2,10 +2,10 @@ defmodule Bonfire.Repo.Migrations.ImportClassify do
|
|||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
Bonfire.Classify.Migrations.up
|
||||
Bonfire.Classify.Migrations.up()
|
||||
end
|
||||
|
||||
def down do
|
||||
Bonfire.Classify.Migrations.down
|
||||
Bonfire.Classify.Migrations.down()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,10 +2,10 @@ defmodule Bonfire.Repo.Migrations.ImportInviteLink do
|
|||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
Bonfire.Invites.Link.Migration.up
|
||||
Bonfire.Invites.Link.Migration.up()
|
||||
end
|
||||
|
||||
def down do
|
||||
Bonfire.Invites.Link.Migration.down
|
||||
Bonfire.Invites.Link.Migration.down()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,5 +4,4 @@ defmodule Bonfire.Data.Identity.Repo.Migrations.CareClosure do
|
|||
alias Bonfire.Data.Identity.CareClosure.Migration
|
||||
|
||||
def change, do: Migration.migrate_care_closure_view()
|
||||
|
||||
end
|
||||
|
|
|
@ -5,9 +5,10 @@ defmodule Bonfire.Repo.Migrations.AddFilesMixin do
|
|||
import Pointers.Migration
|
||||
|
||||
def up do
|
||||
alter table("bonfire_files_media") do # cleanup old stuff
|
||||
remove_if_exists :created_at, :utc_datetime_usec
|
||||
remove_if_exists :updated_at, :utc_datetime_usec
|
||||
# cleanup old stuff
|
||||
alter table("bonfire_files_media") do
|
||||
remove_if_exists(:created_at, :utc_datetime_usec)
|
||||
remove_if_exists(:updated_at, :utc_datetime_usec)
|
||||
end
|
||||
|
||||
Bonfire.Files.Migrations.migrate_files()
|
||||
|
|
|
@ -5,5 +5,4 @@ defmodule Bonfire.Boundaries.Repo.Migrations.BoundariesFixturesUp do
|
|||
|
||||
def up, do: Bonfire.Boundaries.Fixtures.insert()
|
||||
def down, do: nil
|
||||
|
||||
end
|
||||
|
|
|
@ -8,11 +8,13 @@ System.put_env("SEARCH_INDEXING_DISABLED", "true")
|
|||
|
||||
# if the user has configured an admin user for the seeds, insert it.
|
||||
case {System.get_env("ADMIN_USER", "root"), System.get_env("ADMIN_PASSWORD", "")} do
|
||||
{u,p} when p != "" ->
|
||||
{u, p} when p != "" ->
|
||||
fake_account!(%{credential: %{password: p}})
|
||||
|> fake_user!(%{character: %{username: u}, profile: %{name: u}})
|
||||
|> Bonfire.Me.Users.make_admin()
|
||||
_ -> nil
|
||||
|
||||
_ ->
|
||||
nil
|
||||
end
|
||||
|
||||
# create some users
|
||||
|
@ -20,7 +22,7 @@ users = for _ <- 1..3, do: fake_user!()
|
|||
random_user = fn -> Faker.Util.pick(users) end
|
||||
|
||||
# start fake threads
|
||||
#for _ <- 1..3 do
|
||||
# for _ <- 1..3 do
|
||||
# user = random_user.()
|
||||
# thread = fake_thread!(user)
|
||||
# comment = fake_comment!(user, thread)
|
||||
|
@ -28,15 +30,14 @@ random_user = fn -> Faker.Util.pick(users) end
|
|||
# reply = fake_comment!(random_user.(), thread, %{in_reply_to_id: comment.id})
|
||||
# subreply = fake_comment!(random_user.(), thread, %{in_reply_to_id: reply.id})
|
||||
# subreply2 = fake_comment!(random_user.(), thread, %{in_reply_to_id: subreply.id})
|
||||
#end
|
||||
# end
|
||||
#
|
||||
## more fake threads
|
||||
#for _ <- 1..2 do
|
||||
# for _ <- 1..2 do
|
||||
# user = random_user.()
|
||||
# thread = fake_thread!(user)
|
||||
# comment = fake_comment!(user, thread)
|
||||
#end
|
||||
|
||||
# end
|
||||
|
||||
# define some tags/categories
|
||||
if(Bonfire.Common.Extend.extension_enabled?(Bonfire.Classify.Simulate)) do
|
||||
|
@ -82,18 +83,22 @@ if(Bonfire.Common.Extend.extension_enabled?(ValueFlows.Simulate)) do
|
|||
|
||||
# some proposed intents
|
||||
action_id = ValueFlows.Simulate.action_id()
|
||||
intent = ValueFlows.Simulate.fake_intent!(user, %{resource_conforms_to: res_spec, action_id: action_id})
|
||||
|
||||
intent =
|
||||
ValueFlows.Simulate.fake_intent!(user, %{
|
||||
resource_conforms_to: res_spec,
|
||||
action_id: action_id
|
||||
})
|
||||
|
||||
proposal = ValueFlows.Simulate.fake_proposal!(user)
|
||||
ValueFlows.Simulate.fake_proposed_to!(random_user.(), proposal)
|
||||
ValueFlows.Simulate.fake_proposed_intent!(proposal, intent)
|
||||
|
||||
# define some geolocations
|
||||
if(Bonfire.Common.Extend.extension_enabled?(Bonfire.Geolocate.Simulate)) do
|
||||
|
||||
places = for _ <- 1..2, do: Bonfire.Geolocate.Simulate.fake_geolocation!(random_user.())
|
||||
random_place = fn -> Faker.Util.pick(places) end
|
||||
|
||||
|
||||
for _ <- 1..2 do
|
||||
# define some intents with geolocation
|
||||
_intent =
|
||||
|
@ -103,7 +108,8 @@ if(Bonfire.Common.Extend.extension_enabled?(ValueFlows.Simulate)) do
|
|||
)
|
||||
|
||||
# define some proposals with geolocation
|
||||
_proposal = ValueFlows.Simulate.fake_proposal!(user, %{eligible_location: random_place.()})
|
||||
_proposal =
|
||||
ValueFlows.Simulate.fake_proposal!(user, %{eligible_location: random_place.()})
|
||||
|
||||
# both with geo
|
||||
intent =
|
||||
|
@ -118,8 +124,13 @@ if(Bonfire.Common.Extend.extension_enabled?(ValueFlows.Simulate)) do
|
|||
# some economic events
|
||||
user = random_user.()
|
||||
|
||||
resource_inventoried_as = ValueFlows.Simulate.fake_economic_resource!(user, %{current_location: random_place.()})
|
||||
to_resource_inventoried_as = ValueFlows.Simulate.fake_economic_resource!(random_user.(), %{current_location: random_place.()})
|
||||
resource_inventoried_as =
|
||||
ValueFlows.Simulate.fake_economic_resource!(user, %{current_location: random_place.()})
|
||||
|
||||
to_resource_inventoried_as =
|
||||
ValueFlows.Simulate.fake_economic_resource!(random_user.(), %{
|
||||
current_location: random_place.()
|
||||
})
|
||||
|
||||
ValueFlows.Simulate.fake_economic_event!(
|
||||
user,
|
||||
|
@ -155,7 +166,9 @@ if(Bonfire.Common.Extend.extension_enabled?(ValueFlows.Simulate)) do
|
|||
unit = Faker.Util.pick([unit1, unit2])
|
||||
|
||||
resource_inventoried_as = ValueFlows.Simulate.fake_economic_resource!(user, %{}, unit)
|
||||
to_resource_inventoried_as = ValueFlows.Simulate.fake_economic_resource!(random_user.(), %{}, unit)
|
||||
|
||||
to_resource_inventoried_as =
|
||||
ValueFlows.Simulate.fake_economic_resource!(random_user.(), %{}, unit)
|
||||
|
||||
ValueFlows.Simulate.fake_economic_event!(
|
||||
user,
|
||||
|
|
|
@ -37,7 +37,7 @@ config :activity_pub, ActivityPubWeb.Endpoint,
|
|||
render_errors: [view: ActivityPubWeb.ErrorView, accepts: ~w(json), layout: false]
|
||||
|
||||
config :activity_pub, :json_contexts, %{
|
||||
"Hashtag"=> "as:Hashtag",
|
||||
"ValueFlows" => "https://w3id.org/valueflows#",
|
||||
"om2" => "http://www.ontology-of-units-of-measure.org/resource/om-2/"
|
||||
}
|
||||
"Hashtag" => "as:Hashtag",
|
||||
"ValueFlows" => "https://w3id.org/valueflows#",
|
||||
"om2" => "http://www.ontology-of-units-of-measure.org/resource/om-2/"
|
||||
}
|
||||
|
|
|
@ -12,9 +12,8 @@ config :activity_pub, Oban,
|
|||
repo: Bonfire.Common.Repo,
|
||||
queues: false
|
||||
|
||||
config :activity_pub, :instance,
|
||||
federating: false
|
||||
# rewrite_policy: [ActivityPub.MRF.SimplePolicy]
|
||||
config :activity_pub, :instance, federating: false
|
||||
# rewrite_policy: [ActivityPub.MRF.SimplePolicy]
|
||||
|
||||
config :tesla, adapter: Tesla.Mock
|
||||
|
||||
|
|
|
@ -8,7 +8,8 @@ config :bonfire_common,
|
|||
# internationalisation
|
||||
config :bonfire_common, Bonfire.Common.Localise.Cldr,
|
||||
default_locale: default_locale,
|
||||
locales: ["fr", "en", "es"], # locales that will be made available on top of those for which gettext localisation files are available
|
||||
# locales that will be made available on top of those for which gettext localisation files are available
|
||||
locales: ["fr", "en", "es"],
|
||||
providers: [Cldr.Language],
|
||||
gettext: Bonfire.Common.Localise.Gettext,
|
||||
data_dir: "./priv/cldr",
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -11,9 +11,11 @@ config :bonfire_fail,
|
|||
bad_header: {400, "Bad request: malformed header."},
|
||||
no_access: {403, "This site is by invitation only."},
|
||||
token_expired: {403, "This link or token has expired, please request a fresh one."},
|
||||
already_claimed: {403, "This link or token was already used, please request a fresh one if necessary."},
|
||||
already_claimed:
|
||||
{403, "This link or token was already used, please request a fresh one if necessary."},
|
||||
token_not_found: {403, "This token was not found, please request a fresh one."},
|
||||
user_disabled: {403, "This user account is disabled. Please contact the instance administrator."},
|
||||
user_disabled:
|
||||
{403, "This user account is disabled. Please contact the instance administrator."},
|
||||
email_not_confirmed: {403, "Please confirm your email address first."},
|
||||
unknown_resource: {400, "Unknown resource."},
|
||||
invalid_argument: {400, "Invalid arguments passed."},
|
||||
|
|
|
@ -13,12 +13,13 @@ config :bonfire,
|
|||
:bonfire_classify,
|
||||
:bonfire_geolocate,
|
||||
:bonfire_quantify
|
||||
],
|
||||
log_federation: true, # enable/disable logging of federation logic
|
||||
],
|
||||
# enable/disable logging of federation logic
|
||||
log_federation: true,
|
||||
federation_fallback_module: Bonfire.Social.APActivities
|
||||
|
||||
config :bonfire, actor_AP_types: actor_types
|
||||
|
||||
# config :bonfire, Bonfire.Instance,
|
||||
# hostname: hostname,
|
||||
# description: desc
|
||||
# hostname: hostname,
|
||||
# description: desc
|
||||
|
|
|
@ -4,48 +4,53 @@ import Config
|
|||
# see https://hexdocs.pm/waffle/Waffle.html#module-setup-a-storage-provider
|
||||
config :waffle,
|
||||
storage: Waffle.Storage.Local,
|
||||
asset_host: "/" # or {:system, "ASSET_HOST"}
|
||||
# or {:system, "ASSET_HOST"}
|
||||
asset_host: "/"
|
||||
|
||||
image_media_types = ["image/png", "image/jpeg", "image/gif", "image/svg+xml", "image/tiff"]
|
||||
|
||||
all_allowed_media_types = image_media_types ++ [
|
||||
"text/plain",
|
||||
# doc
|
||||
"text/csv",
|
||||
"application/pdf",
|
||||
"application/rtf",
|
||||
"application/msword",
|
||||
"application/vnd.ms-excel",
|
||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
"application/vnd.oasis.opendocument.presentation",
|
||||
"application/vnd.oasis.opendocument.spreadsheet",
|
||||
"application/vnd.oasis.opendocument.text",
|
||||
"application/epub+zip",
|
||||
# archives
|
||||
"application/x-tar",
|
||||
"application/x-bzip",
|
||||
"application/x-bzip2",
|
||||
"application/gzip",
|
||||
"application/zip",
|
||||
"application/rar",
|
||||
"application/x-7z-compressed",
|
||||
# audio
|
||||
"audio/mpeg",
|
||||
"audio/ogg",
|
||||
"audio/wav",
|
||||
"audio/webm",
|
||||
"audio/opus",
|
||||
# video
|
||||
"video/mp4",
|
||||
"video/mpeg",
|
||||
"video/ogg",
|
||||
"video/webm",
|
||||
]
|
||||
all_allowed_media_types =
|
||||
image_media_types ++
|
||||
[
|
||||
"text/plain",
|
||||
# doc
|
||||
"text/csv",
|
||||
"application/pdf",
|
||||
"application/rtf",
|
||||
"application/msword",
|
||||
"application/vnd.ms-excel",
|
||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
"application/vnd.oasis.opendocument.presentation",
|
||||
"application/vnd.oasis.opendocument.spreadsheet",
|
||||
"application/vnd.oasis.opendocument.text",
|
||||
"application/epub+zip",
|
||||
# archives
|
||||
"application/x-tar",
|
||||
"application/x-bzip",
|
||||
"application/x-bzip2",
|
||||
"application/gzip",
|
||||
"application/zip",
|
||||
"application/rar",
|
||||
"application/x-7z-compressed",
|
||||
# audio
|
||||
"audio/mpeg",
|
||||
"audio/ogg",
|
||||
"audio/wav",
|
||||
"audio/webm",
|
||||
"audio/opus",
|
||||
# video
|
||||
"video/mp4",
|
||||
"video/mpeg",
|
||||
"video/ogg",
|
||||
"video/webm"
|
||||
]
|
||||
|
||||
config :bonfire_files, image_media_types: image_media_types
|
||||
config :bonfire_files, all_allowed_media_types: all_allowed_media_types
|
||||
|
||||
config :bonfire_files, Bonfire.Files.IconUploader, allowed_media_types: image_media_types
|
||||
config :bonfire_files, Bonfire.Files.ImageUploader, allowed_media_types: image_media_types
|
||||
config :bonfire_files, Bonfire.Files.DocumentUploader, allowed_media_types: all_allowed_media_types
|
||||
|
||||
config :bonfire_files, Bonfire.Files.DocumentUploader,
|
||||
allowed_media_types: all_allowed_media_types
|
||||
|
|
|
@ -3,5 +3,4 @@ import Config
|
|||
config :bonfire_geolocate,
|
||||
templates_path: "lib"
|
||||
|
||||
config :bonfire, :js_config,
|
||||
mapbox_api_key: System.get_env("MAPBOX_API_KEY")
|
||||
config :bonfire, :js_config, mapbox_api_key: System.get_env("MAPBOX_API_KEY")
|
||||
|
|
|
@ -3,4 +3,5 @@ import Config
|
|||
config :bonfire_quantify,
|
||||
templates_path: "lib"
|
||||
|
||||
config :bonfire_quantify, Bonfire.Quantify.Units, valid_contexts: [Bonfire.Quantify.Units, Bonfire.Data.Identity.User]
|
||||
config :bonfire_quantify, Bonfire.Quantify.Units,
|
||||
valid_contexts: [Bonfire.Quantify.Units, Bonfire.Data.Identity.User]
|
||||
|
|
|
@ -3,8 +3,10 @@ import Config
|
|||
config :bonfire_search,
|
||||
disable_indexing: System.get_env("SEARCH_INDEXING_DISABLED", "false"),
|
||||
adapter: Bonfire.Search.Meili,
|
||||
instance: System.get_env("SEARCH_MEILI_INSTANCE", "http://search:7700"), # protocol, hostname and port
|
||||
api_key: System.get_env("MEILI_MASTER_KEY", "make-sure-to-change-me") # secret key
|
||||
# protocol, hostname and port
|
||||
instance: System.get_env("SEARCH_MEILI_INSTANCE", "http://search:7700"),
|
||||
# secret key
|
||||
api_key: System.get_env("MEILI_MASTER_KEY", "make-sure-to-change-me")
|
||||
|
||||
# for use by API client
|
||||
config :tesla, adapter: Tesla.Adapter.Hackney
|
||||
|
|
|
@ -1,113 +1,117 @@
|
|||
import Config
|
||||
|
||||
|
||||
config :bonfire, :ui,
|
||||
theme: [
|
||||
instance_name: "Bonfire",
|
||||
instance_icon: "/images/bonfire-icon.png",
|
||||
instance_image: "/images/bonfires.png",
|
||||
instance_description: "This is a bonfire demo instance for testing purposes",
|
||||
instance_welcome: [
|
||||
title: "👋 Welcome",
|
||||
description: "Bonfire is a federated social networking toolkit to customise and host your own online space and control your experience at the most granular level.
|
||||
theme: [
|
||||
instance_name: "Bonfire",
|
||||
instance_icon: "/images/bonfire-icon.png",
|
||||
instance_image: "/images/bonfires.png",
|
||||
instance_description: "This is a bonfire demo instance for testing purposes",
|
||||
instance_welcome: [
|
||||
title: "👋 Welcome",
|
||||
description:
|
||||
"Bonfire is a federated social networking toolkit to customise and host your own online space and control your experience at the most granular level.
|
||||
|
||||
More details at https://bonfirenetworks.org",
|
||||
links: [
|
||||
"About Bonfire": "https://bonfirenetworks.org/",
|
||||
"About ValueFlows": "https://valueflo.ws/",
|
||||
"Forum": "https://socialhub.activitypub.rocks/g/bonfire/activity/posts",
|
||||
"Community Chat": "https://matrix.to/#/%23bonfire-networks:matrix.org",
|
||||
"Contribute": "https://bonfirenetworks.org/contribute/"
|
||||
]
|
||||
]],
|
||||
app_menu_extension_paths: %{ # TODO: make dynamic based on active extensions
|
||||
"Social" => Bonfire.UI.Social.FeedsLive,
|
||||
"Breadpub" => Bonfire.Breadpub.Web.HomeLive,
|
||||
"Kanban" => Bonfire.UI.Kanban.HomeLive,
|
||||
# "Coordination" => Bonfire.UI.Coordination.ProcessesLive
|
||||
},
|
||||
sidebar_components: [ # TODO: make dynamic based on active extensions
|
||||
{Bonfire.UI.Social.SidebarNavigationLive, []},
|
||||
# {Bonfire.UI.Coordination.SidebarNavigationLive, []},
|
||||
#{Bonfire.Breadpub.SidebarNavigationLive, []},
|
||||
# {Bonfire.UI.ValueFlows.ProcessesListLive, [title: "Processes", process_url: "/process/"]},
|
||||
# {Bonfire.UI.ValueFlows.ProcessesListLive, [title: "Lists", process_url: "/breadpub/list/"]}
|
||||
],
|
||||
rich_text_editor: Bonfire.Editor.Quill,
|
||||
smart_input: [
|
||||
post: true,
|
||||
cw: true,
|
||||
summary: true
|
||||
],
|
||||
profile: [
|
||||
sections: [ # TODO: make dynamic based on active extensions
|
||||
timeline: Bonfire.UI.Social.ProfileTimelineLive,
|
||||
# private: Bonfire.UI.Social.MessageThreadsLive,
|
||||
posts: Bonfire.UI.Social.ProfilePostsLive,
|
||||
boosts: Bonfire.UI.Social.ProfileBoostsLive,
|
||||
followers: Bonfire.UI.Social.ProfileFollowsLive,
|
||||
followed: Bonfire.UI.Social.ProfileFollowsLive,
|
||||
# inventory: Bonfire.UI.Reflow.ProfileInventoryLive,
|
||||
],
|
||||
navigation: [
|
||||
timeline: "timeline",
|
||||
# inventory: "inventory",
|
||||
posts: "posts",
|
||||
boosts: "boosts",
|
||||
# private: "private",
|
||||
],
|
||||
widgets: [
|
||||
],
|
||||
],
|
||||
smart_input_activities: [
|
||||
post: "Compose a post",
|
||||
task: "Add a task",
|
||||
offer: "Publish an offer",
|
||||
need: "Publish a need",
|
||||
# transfer_resource: "Transfer a resource",
|
||||
# produce_resource: "Add a resource",
|
||||
# intent: "Indicate an itent",
|
||||
economic_event: "Record an economic event",
|
||||
process: "Define a process"
|
||||
],
|
||||
smart_input_components: [
|
||||
post: Bonfire.UI.Social.WritePostContentLive,
|
||||
message: Bonfire.UI.Social.WritePostContentLive,
|
||||
category: Bonfire.Classify.Web.NewCategoryLive,
|
||||
economic_event: Bonfire.UI.ValueFlows.SelectEconomicEventLive,
|
||||
process: Bonfire.UI.ValueFlows.CreateProcessSmartInputLive,
|
||||
offer: Bonfire.UI.ValueFlows.CreateIntentLive,
|
||||
need: Bonfire.UI.ValueFlows.CreateIntentLive,
|
||||
task: Bonfire.UI.Coordination.CreateTaskLive,
|
||||
],
|
||||
resource: [
|
||||
navigation: [
|
||||
timeline: "timeline",
|
||||
material_passport: "material passport",
|
||||
],
|
||||
widgets: [
|
||||
# Bonfire.UI.Social.SubscribeWidgetLive,
|
||||
Bonfire.UI.ValueFlows.LocationWidgetLive,
|
||||
Bonfire.UI.Social.HashtagsWidgetLive,
|
||||
],
|
||||
]
|
||||
# process: [
|
||||
# navigation: [
|
||||
# events: "Economic events",
|
||||
# intents: "Intents",
|
||||
# # material_passport: "material passport",
|
||||
# ],
|
||||
# sections: [
|
||||
# events: Bonfire.UI.ValueFlows.EconomicEventsLive,
|
||||
# intents: Bonfire.UI.ValueFlows.IntentsLive,
|
||||
# ],
|
||||
# widgets: [
|
||||
# # Bonfire.UI.Social.SubscribeWidgetLive,
|
||||
# # Bonfire.UI.ValueFlows.LocationWidgetLive,
|
||||
# # Bonfire.UI.Social.HashtagsWidgetLive,
|
||||
# ],
|
||||
# ]
|
||||
links: [
|
||||
"About Bonfire": "https://bonfirenetworks.org/",
|
||||
"About ValueFlows": "https://valueflo.ws/",
|
||||
Forum: "https://socialhub.activitypub.rocks/g/bonfire/activity/posts",
|
||||
"Community Chat": "https://matrix.to/#/%23bonfire-networks:matrix.org",
|
||||
Contribute: "https://bonfirenetworks.org/contribute/"
|
||||
]
|
||||
]
|
||||
],
|
||||
# TODO: make dynamic based on active extensions
|
||||
app_menu_extension_paths: %{
|
||||
"Social" => Bonfire.UI.Social.FeedsLive,
|
||||
"Breadpub" => Bonfire.Breadpub.Web.HomeLive,
|
||||
"Kanban" => Bonfire.UI.Kanban.HomeLive
|
||||
# "Coordination" => Bonfire.UI.Coordination.ProcessesLive
|
||||
},
|
||||
# TODO: make dynamic based on active extensions
|
||||
sidebar_components: [
|
||||
{Bonfire.UI.Social.SidebarNavigationLive, []}
|
||||
# {Bonfire.UI.Coordination.SidebarNavigationLive, []},
|
||||
# {Bonfire.Breadpub.SidebarNavigationLive, []},
|
||||
# {Bonfire.UI.ValueFlows.ProcessesListLive, [title: "Processes", process_url: "/process/"]},
|
||||
# {Bonfire.UI.ValueFlows.ProcessesListLive, [title: "Lists", process_url: "/breadpub/list/"]}
|
||||
],
|
||||
rich_text_editor: Bonfire.Editor.Quill,
|
||||
smart_input: [
|
||||
post: true,
|
||||
cw: true,
|
||||
summary: true
|
||||
],
|
||||
profile: [
|
||||
# TODO: make dynamic based on active extensions
|
||||
sections: [
|
||||
timeline: Bonfire.UI.Social.ProfileTimelineLive,
|
||||
# private: Bonfire.UI.Social.MessageThreadsLive,
|
||||
posts: Bonfire.UI.Social.ProfilePostsLive,
|
||||
boosts: Bonfire.UI.Social.ProfileBoostsLive,
|
||||
followers: Bonfire.UI.Social.ProfileFollowsLive,
|
||||
followed: Bonfire.UI.Social.ProfileFollowsLive
|
||||
# inventory: Bonfire.UI.Reflow.ProfileInventoryLive,
|
||||
],
|
||||
navigation: [
|
||||
timeline: "timeline",
|
||||
# inventory: "inventory",
|
||||
posts: "posts",
|
||||
boosts: "boosts"
|
||||
# private: "private",
|
||||
],
|
||||
widgets: []
|
||||
],
|
||||
smart_input_activities: [
|
||||
post: "Compose a post",
|
||||
task: "Add a task",
|
||||
offer: "Publish an offer",
|
||||
need: "Publish a need",
|
||||
# transfer_resource: "Transfer a resource",
|
||||
# produce_resource: "Add a resource",
|
||||
# intent: "Indicate an itent",
|
||||
economic_event: "Record an economic event",
|
||||
process: "Define a process"
|
||||
],
|
||||
smart_input_components: [
|
||||
post: Bonfire.UI.Social.WritePostContentLive,
|
||||
message: Bonfire.UI.Social.WritePostContentLive,
|
||||
category: Bonfire.Classify.Web.NewCategoryLive,
|
||||
economic_event: Bonfire.UI.ValueFlows.SelectEconomicEventLive,
|
||||
process: Bonfire.UI.ValueFlows.CreateProcessSmartInputLive,
|
||||
offer: Bonfire.UI.ValueFlows.CreateIntentLive,
|
||||
need: Bonfire.UI.ValueFlows.CreateIntentLive,
|
||||
task: Bonfire.UI.Coordination.CreateTaskLive
|
||||
],
|
||||
resource: [
|
||||
navigation: [
|
||||
timeline: "timeline",
|
||||
material_passport: "material passport"
|
||||
],
|
||||
widgets: [
|
||||
# Bonfire.UI.Social.SubscribeWidgetLive,
|
||||
Bonfire.UI.ValueFlows.LocationWidgetLive,
|
||||
Bonfire.UI.Social.HashtagsWidgetLive
|
||||
]
|
||||
]
|
||||
|
||||
# process: [
|
||||
# navigation: [
|
||||
# events: "Economic events",
|
||||
# intents: "Intents",
|
||||
# # material_passport: "material passport",
|
||||
# ],
|
||||
# sections: [
|
||||
# events: Bonfire.UI.ValueFlows.EconomicEventsLive,
|
||||
# intents: Bonfire.UI.ValueFlows.IntentsLive,
|
||||
# ],
|
||||
# widgets: [
|
||||
# # Bonfire.UI.Social.SubscribeWidgetLive,
|
||||
# # Bonfire.UI.ValueFlows.LocationWidgetLive,
|
||||
# # Bonfire.UI.Social.HashtagsWidgetLive,
|
||||
# ],
|
||||
# ]
|
||||
|
||||
config :surface_catalogue,
|
||||
title: "Bonfire UI",
|
||||
subtitle: "Surface Components Documentation & Examples"
|
||||
title: "Bonfire UI",
|
||||
subtitle: "Surface Components Documentation & Examples"
|
||||
|
|
|
@ -2,7 +2,7 @@ import Config
|
|||
|
||||
default_flavour = "classic"
|
||||
flavour = System.get_env("FLAVOUR", default_flavour)
|
||||
flavour_path = System.get_env("FLAVOUR_PATH", "flavours/"<>flavour)
|
||||
flavour_path = System.get_env("FLAVOUR_PATH", "flavours/" <> flavour)
|
||||
|
||||
#### Basic configuration
|
||||
|
||||
|
@ -33,7 +33,8 @@ config :bonfire,
|
|||
config :bonfire, Bonfire.Web.Endpoint,
|
||||
url: [host: "localhost"],
|
||||
http: [
|
||||
port: String.to_integer(System.get_env("SERVER_PORT", "4000")), # this gets overriden in runtime.exs
|
||||
# this gets overriden in runtime.exs
|
||||
port: String.to_integer(System.get_env("SERVER_PORT", "4000")),
|
||||
transport_options: [socket_opts: [:inet6]]
|
||||
],
|
||||
render_errors: [view: Bonfire.UI.Common.ErrorView, accepts: ~w(html json), layout: false],
|
||||
|
@ -44,6 +45,7 @@ config :phoenix_gon, :json_library, Jason
|
|||
|
||||
config :ecto_sparkles, :otp_app, :bonfire
|
||||
config :bonfire, :ecto_repos, [Bonfire.Common.Repo]
|
||||
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
types: Bonfire.Geolocate.PostgresTypes,
|
||||
priv: flavour_path <> "/repo"
|
||||
|
@ -74,10 +76,9 @@ config :mime, :types, %{
|
|||
|
||||
config :sentry,
|
||||
dsn: "this-will-be-overriden-by-a-secure-string-in-runtime.exs",
|
||||
environment_name: Mix.env,
|
||||
environment_name: Mix.env(),
|
||||
included_environments: [:prod]
|
||||
|
||||
|
||||
# include config for all used Bonfire extensions
|
||||
for config <- "bonfire_*.exs" |> Path.expand(__DIR__) |> Path.wildcard() do
|
||||
# IO.inspect(include_config: config)
|
||||
|
@ -86,6 +87,5 @@ end
|
|||
|
||||
import_config "activity_pub.exs"
|
||||
|
||||
|
||||
# finally, append/override config based on env, which will override any config set above (including from imported files)
|
||||
import_config "#{config_env()}.exs"
|
||||
|
|
|
@ -1,21 +1,27 @@
|
|||
import Config
|
||||
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
experimental_features_enabled: true, # Note: you can run `Bonfire.Common.Config.put(:experimental_features_enabled, true)` to enable these in prod too
|
||||
# Note: you can run `Bonfire.Common.Config.put(:experimental_features_enabled, true)` to enable these in prod too
|
||||
experimental_features_enabled: true,
|
||||
database: System.get_env("POSTGRES_DB", "bonfire_dev"),
|
||||
# show_sensitive_data_on_connection_error: true,
|
||||
pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"),
|
||||
log: false # EctoSparkles does the logging instead
|
||||
# EctoSparkles does the logging instead
|
||||
log: false
|
||||
|
||||
path_dep_dirs =
|
||||
Mess.deps([path: "deps.path"], [])
|
||||
|> Enum.map(&(Keyword.fetch!(elem(&1, 1), :path) <> "/lib"))
|
||||
|
||||
config :phoenix_live_reload,
|
||||
dirs: path_dep_dirs ++ ["lib/"] # watch the app's lib/ dir + the dep/lib/ dir of every locally-cloned dep
|
||||
# watch the app's lib/ dir + the dep/lib/ dir of every locally-cloned dep
|
||||
dirs: path_dep_dirs ++ ["lib/"]
|
||||
|
||||
path_dep_patterns = path_dep_dirs |> Enum.map(&(String.slice(&1, 2..1000) <>".*ex")) # to include cloned code in patterns
|
||||
path_dep_patterns = path_dep_patterns ++ path_dep_dirs |> Enum.map(&(String.slice(&1, 2..1000) <>".*sface")) # Surface views
|
||||
# to include cloned code in patterns
|
||||
path_dep_patterns = Enum.map(path_dep_dirs, &(String.slice(&1, 2..1000) <> ".*ex"))
|
||||
# Surface views
|
||||
path_dep_patterns =
|
||||
(path_dep_patterns ++ path_dep_dirs) |> Enum.map(&(String.slice(&1, 2..1000) <> ".*sface"))
|
||||
|
||||
# Watch static and templates for browser reloading.
|
||||
config :bonfire, Bonfire.Web.Endpoint,
|
||||
|
@ -38,24 +44,26 @@ config :bonfire, Bonfire.Web.Endpoint,
|
|||
]
|
||||
],
|
||||
live_reload: [
|
||||
patterns: [
|
||||
# ~r"^priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$",
|
||||
# ~r"^priv/gettext/.*(po)$",
|
||||
# ~r"^web/(live|views)/.*ex$",
|
||||
# ~r"^lib/.*_live\.ex$",
|
||||
# ~r".*leex$",
|
||||
~r"lib/.*ex$",
|
||||
~r".*sface$",
|
||||
~r"priv/catalogue/.*(ex)$",
|
||||
] ++ path_dep_patterns
|
||||
]
|
||||
patterns:
|
||||
[
|
||||
# ~r"^priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$",
|
||||
# ~r"^priv/gettext/.*(po)$",
|
||||
# ~r"^web/(live|views)/.*ex$",
|
||||
# ~r"^lib/.*_live\.ex$",
|
||||
# ~r".*leex$",
|
||||
# defp elixirc_paths(:dev), do: ["lib"] ++ catalogues()
|
||||
|
||||
# defp elixirc_paths(:dev), do: ["lib"] ++ catalogues()
|
||||
~r"lib/.*ex$",
|
||||
~r".*sface$",
|
||||
~r"priv/catalogue/.*(ex)$"
|
||||
] ++ path_dep_patterns
|
||||
]
|
||||
|
||||
config :logger, :console,
|
||||
level: :debug,
|
||||
# truncate: :infinity,
|
||||
format: "[$level] $message\n" # Do not include metadata or timestamps
|
||||
# Do not include metadata or timestamps
|
||||
format: "[$level] $message\n"
|
||||
|
||||
config :phoenix, :stacktrace_depth, 30
|
||||
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
import Config
|
||||
|
||||
|
||||
# We include the path to a cache manifest
|
||||
# containing the digested version of static files. This
|
||||
# manifest is generated by the `mix phx.digest` task,
|
||||
# which you should run after static files are built and
|
||||
# before starting your production server.
|
||||
config :bonfire, Bonfire.Web.Endpoint,
|
||||
cache_static_manifest: "priv/static/cache_manifest.json"
|
||||
config :bonfire, Bonfire.Web.Endpoint, cache_static_manifest: "priv/static/cache_manifest.json"
|
||||
|
||||
config :logger,
|
||||
backends: [:console, Sentry.LoggerBackend]
|
||||
|
@ -18,4 +16,5 @@ config :logger, level: :info
|
|||
config :bonfire, Bonfire.Web.Endpoint, server: true
|
||||
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
priv: "priv/repo" # in releases migrations are not in a flavour-specific directory
|
||||
# in releases migrations are not in a flavour-specific directory
|
||||
priv: "priv/repo"
|
||||
|
|
|
@ -13,16 +13,15 @@ Bonfire.Common.Config.LoadExtensionsConfig.load_configs()
|
|||
##
|
||||
|
||||
System.get_env("DATABASE_URL") || System.get_env("POSTGRES_PASSWORD") || System.get_env("CI") ||
|
||||
raise """
|
||||
Environment variables for database are missing.
|
||||
For example: DATABASE_URL=ecto://USER:PASS@HOST/DATABASE
|
||||
You can also set POSTGRES_PASSWORD (required),
|
||||
and POSTGRES_USER (default: postgres) and POSTGRES_HOST (default: localhost)
|
||||
"""
|
||||
raise """
|
||||
Environment variables for database are missing.
|
||||
For example: DATABASE_URL=ecto://USER:PASS@HOST/DATABASE
|
||||
You can also set POSTGRES_PASSWORD (required),
|
||||
and POSTGRES_USER (default: postgres) and POSTGRES_HOST (default: localhost)
|
||||
"""
|
||||
|
||||
if System.get_env("DATABASE_URL") do
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
url: System.get_env("DATABASE_URL")
|
||||
config :bonfire, Bonfire.Common.Repo, url: System.get_env("DATABASE_URL")
|
||||
else
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
# ssl: true,
|
||||
|
@ -38,12 +37,14 @@ secret_key_base =
|
|||
You can generate one by calling: mix phx.gen.secret
|
||||
"""
|
||||
|
||||
signing_salt = System.get_env("SIGNING_SALT") || System.get_env("CI") ||
|
||||
signing_salt =
|
||||
System.get_env("SIGNING_SALT") || System.get_env("CI") ||
|
||||
raise """
|
||||
environment variable SIGNING_SALT is missing.
|
||||
"""
|
||||
|
||||
encryption_salt = System.get_env("ENCRYPTION_SALT") || System.get_env("CI") ||
|
||||
encryption_salt =
|
||||
System.get_env("ENCRYPTION_SALT") || System.get_env("CI") ||
|
||||
raise """
|
||||
environment variable ENCRYPTION_SALT is missing.
|
||||
"""
|
||||
|
@ -57,7 +58,10 @@ config :bonfire,
|
|||
encryption_salt: encryption_salt,
|
||||
signing_salt: signing_salt
|
||||
|
||||
start_server? = if config_env() == :test, do: System.get_env("START_SERVER", "true"), else: System.get_env("START_SERVER", "true")
|
||||
start_server? =
|
||||
if config_env() == :test,
|
||||
do: System.get_env("START_SERVER", "true"),
|
||||
else: System.get_env("START_SERVER", "true")
|
||||
|
||||
config :bonfire, Bonfire.Web.Endpoint,
|
||||
server: String.to_existing_atom(start_server?),
|
||||
|
@ -72,9 +76,7 @@ config :bonfire, Bonfire.Web.Endpoint,
|
|||
live_view: [signing_salt: signing_salt]
|
||||
|
||||
if System.get_env("SENTRY_DSN") do
|
||||
IO.puts(
|
||||
"Note: errors will be reported to Sentry."
|
||||
)
|
||||
IO.puts("Note: errors will be reported to Sentry.")
|
||||
|
||||
config :sentry,
|
||||
dsn: System.get_env("SENTRY_DSN")
|
||||
|
@ -86,22 +88,20 @@ end
|
|||
|
||||
# start prod-only config
|
||||
if config_env() == :prod do
|
||||
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
# ssl: true,
|
||||
database: System.get_env("POSTGRES_DB", "bonfire"),
|
||||
pool_size: String.to_integer(System.get_env("POOL_SIZE", "10")),
|
||||
log: String.to_atom(System.get_env("DB_QUERIES_LOG_LEVEL", "false")) # Note: keep this disabled if using ecto_dev_logger or EctoSparkles.Log instead #
|
||||
|
||||
end # prod only config
|
||||
# Note: keep this disabled if using ecto_dev_logger or EctoSparkles.Log instead #
|
||||
log: String.to_atom(System.get_env("DB_QUERIES_LOG_LEVEL", "false"))
|
||||
end
|
||||
|
||||
# prod only config
|
||||
|
||||
# start prod and dev only config
|
||||
if config_env() != :test do
|
||||
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
slow_query_ms: String.to_integer(System.get_env("SLOW_QUERY_MS", "100"))
|
||||
|
||||
end
|
||||
|
||||
## bonfire_livebook
|
||||
|
|
|
@ -15,7 +15,6 @@ config :bonfire_search,
|
|||
config :logger, level: :info
|
||||
# config :logger, level: :notice
|
||||
|
||||
|
||||
# Configure your database
|
||||
db = "bonfire_test#{System.get_env("MIX_TEST_PARTITION")}"
|
||||
#
|
||||
|
@ -46,6 +45,7 @@ config :mix_test_interactive,
|
|||
clear: true
|
||||
|
||||
config :paginator, ecto_repos: [Bonfire.Common.Repo]
|
||||
|
||||
config :paginator, Paginator.Repo,
|
||||
pool: Ecto.Adapters.SQL.Sandbox,
|
||||
username: System.get_env("POSTGRES_USER", "postgres"),
|
||||
|
|
|
@ -2,11 +2,10 @@ defmodule Bonfire.Repo.Migrations.HelloWorld do
|
|||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
execute "CREATE EXTENSION IF NOT EXISTS \"citext\""
|
||||
execute("CREATE EXTENSION IF NOT EXISTS \"citext\"")
|
||||
end
|
||||
|
||||
def down do
|
||||
execute "DROP EXTENSION IF EXISTS \"citext\""
|
||||
execute("DROP EXTENSION IF EXISTS \"citext\"")
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -6,9 +6,9 @@ defmodule Bonfire.Repo.Migrations.InitPointers do
|
|||
init_pointers_ulid_extra()
|
||||
init_pointers()
|
||||
end
|
||||
|
||||
def down do
|
||||
init_pointers_ulid_extra()
|
||||
init_pointers()
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -2,7 +2,6 @@ defmodule Bonfire.Repo.Migrations.InitEdges do
|
|||
use Ecto.Migration
|
||||
alias Bonfire.Data.Edges.Migration
|
||||
|
||||
|
||||
def up do
|
||||
Migration.up()
|
||||
end
|
||||
|
@ -10,5 +9,4 @@ defmodule Bonfire.Repo.Migrations.InitEdges do
|
|||
def down do
|
||||
Migration.down()
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -6,5 +6,4 @@ defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportMe do
|
|||
|
||||
def up, do: migrate_activity_pub
|
||||
def down, do: migrate_activity_pub
|
||||
|
||||
end
|
||||
|
|
|
@ -5,5 +5,4 @@ defmodule Bonfire.Boundaries.Repo.Migrations.ImportBoundaries do
|
|||
|
||||
def up, do: migrate_boundaries
|
||||
def down, do: migrate_boundaries
|
||||
|
||||
end
|
||||
|
|
|
@ -9,5 +9,4 @@ defmodule Bonfire.Repo.Migrations.ImportMe do
|
|||
end
|
||||
|
||||
def down, do: migrate_me()
|
||||
|
||||
end
|
||||
|
|
|
@ -5,10 +5,8 @@ defmodule Bonfire.Social.Repo.Migrations.ImportSocial do
|
|||
import Pointers.Migration
|
||||
|
||||
def up do
|
||||
|
||||
migrate_social()
|
||||
|
||||
end
|
||||
def down, do: migrate_social()
|
||||
|
||||
def down, do: migrate_social()
|
||||
end
|
||||
|
|
|
@ -5,5 +5,4 @@ defmodule Bonfire.Boundaries.Repo.Migrations.BoundariesFixtures do
|
|||
|
||||
def up, do: Bonfire.Boundaries.Fixtures.insert()
|
||||
def down, do: nil
|
||||
|
||||
end
|
||||
|
|
|
@ -2,12 +2,12 @@ defmodule Bonfire.Repo.Migrations.ImportQuantify do
|
|||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
Bonfire.Quantify.Migrations.change
|
||||
Bonfire.Quantify.Migrations.change_measure
|
||||
Bonfire.Quantify.Migrations.change()
|
||||
Bonfire.Quantify.Migrations.change_measure()
|
||||
end
|
||||
|
||||
def down do
|
||||
Bonfire.Quantify.Migrations.change
|
||||
Bonfire.Quantify.Migrations.change_measure
|
||||
Bonfire.Quantify.Migrations.change()
|
||||
Bonfire.Quantify.Migrations.change_measure()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,10 +2,10 @@ defmodule Bonfire.Repo.Migrations.ImportGeolocation do
|
|||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
Bonfire.Geolocate.Migrations.change
|
||||
Bonfire.Geolocate.Migrations.change()
|
||||
end
|
||||
|
||||
def down do
|
||||
Bonfire.Geolocate.Migrations.change
|
||||
Bonfire.Geolocate.Migrations.change()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,10 +2,10 @@ defmodule Bonfire.Repo.Migrations.ImportValueFlows do
|
|||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
ValueFlows.AllMigrations.up
|
||||
ValueFlows.AllMigrations.up()
|
||||
end
|
||||
|
||||
def down do
|
||||
ValueFlows.AllMigrations.down
|
||||
ValueFlows.AllMigrations.down()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,5 +6,4 @@ defmodule Bonfire.Repo.Migrations.ImportSharedUser do
|
|||
|
||||
def up, do: migrate_shared_user()
|
||||
def down, do: migrate_shared_user()
|
||||
|
||||
end
|
||||
|
|
|
@ -4,10 +4,10 @@ defmodule Bonfire.Repo.Migrations.ImportValueFlowsObserve do
|
|||
alias ValueFlows.Observe.Migrations
|
||||
|
||||
def up do
|
||||
Migrations.up
|
||||
Migrations.up()
|
||||
end
|
||||
|
||||
def down do
|
||||
Migrations.down
|
||||
Migrations.down()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,12 +4,12 @@ defmodule ActivityPub.Repo.Migrations.APTestTable do
|
|||
def change do
|
||||
# This table only exists for test purposes
|
||||
create table("local_actor", primary_key: false) do
|
||||
add :id, :uuid, primary_key: true
|
||||
add :username, :citext
|
||||
add :data, :map
|
||||
add :local, :boolean
|
||||
add :keys, :text
|
||||
add :followers, {:array, :string}
|
||||
add(:id, :uuid, primary_key: true)
|
||||
add(:username, :citext)
|
||||
add(:data, :map)
|
||||
add(:local, :boolean)
|
||||
add(:keys, :text)
|
||||
add(:followers, {:array, :string})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,5 +5,4 @@ defmodule Bonfire.Repo.Migrations.Message do
|
|||
|
||||
def up, do: migrate_message()
|
||||
def down, do: migrate_message()
|
||||
|
||||
end
|
||||
|
|
|
@ -4,15 +4,19 @@ defmodule Bonfire.Social.Repo.Migrations.ProfileImages do
|
|||
import Pointers.Migration
|
||||
|
||||
def up do
|
||||
drop_if_exists(
|
||||
constraint("bonfire_data_social_profile", "bonfire_data_social_profile_icon_id_fkey")
|
||||
)
|
||||
|
||||
drop_if_exists constraint "bonfire_data_social_profile", "bonfire_data_social_profile_icon_id_fkey"
|
||||
drop_if_exists constraint "bonfire_data_social_profile", "bonfire_data_social_profile_image_id_fkey"
|
||||
drop_if_exists(
|
||||
constraint("bonfire_data_social_profile", "bonfire_data_social_profile_image_id_fkey")
|
||||
)
|
||||
|
||||
alter table("bonfire_data_social_profile") do
|
||||
Ecto.Migration.add_if_not_exists :icon_id, strong_pointer(Bonfire.Files.Media)
|
||||
Ecto.Migration.add_if_not_exists :image_id, strong_pointer(Bonfire.Files.Media)
|
||||
Ecto.Migration.add_if_not_exists(:icon_id, strong_pointer(Bonfire.Files.Media))
|
||||
Ecto.Migration.add_if_not_exists(:image_id, strong_pointer(Bonfire.Files.Media))
|
||||
end
|
||||
end
|
||||
def down, do: nil
|
||||
|
||||
def down, do: nil
|
||||
end
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
defmodule Bonfire.Repo.Migrations.FP do
|
||||
use Ecto.Migration
|
||||
|
||||
|
||||
def up do
|
||||
execute("create or replace function
|
||||
column_exists(ptable text, pcolumn text, pschema text default 'public')
|
||||
|
@ -18,7 +17,8 @@ defmodule Bonfire.Repo.Migrations.FP do
|
|||
);
|
||||
$body$;")
|
||||
|
||||
execute("CREATE OR REPLACE FUNCTION rename_column_if_exists(ptable TEXT, pcolumn TEXT, new_name TEXT)
|
||||
execute(
|
||||
"CREATE OR REPLACE FUNCTION rename_column_if_exists(ptable TEXT, pcolumn TEXT, new_name TEXT)
|
||||
RETURNS VOID AS $BODY$
|
||||
BEGIN
|
||||
-- Rename the column if it exists.
|
||||
|
@ -27,14 +27,15 @@ defmodule Bonfire.Repo.Migrations.FP do
|
|||
ptable, pcolumn, new_name);
|
||||
END IF;
|
||||
END$BODY$
|
||||
LANGUAGE plpgsql VOLATILE;")
|
||||
LANGUAGE plpgsql VOLATILE;"
|
||||
)
|
||||
|
||||
flush()
|
||||
|
||||
execute("SELECT rename_column_if_exists('bonfire_data_social_feed_publish', 'object_id', 'activity_id') ")
|
||||
|
||||
execute(
|
||||
"SELECT rename_column_if_exists('bonfire_data_social_feed_publish', 'object_id', 'activity_id') "
|
||||
)
|
||||
end
|
||||
|
||||
def down, do: nil
|
||||
|
||||
end
|
||||
|
|
|
@ -5,9 +5,9 @@ defmodule Bonfire.Social.Repo.Migrations.PeeredURI do
|
|||
|
||||
def up do
|
||||
alter table("bonfire_data_activity_pub_peered") do
|
||||
Ecto.Migration.add_if_not_exists :canonical_uri, :text, null: true
|
||||
Ecto.Migration.add_if_not_exists(:canonical_uri, :text, null: true)
|
||||
end
|
||||
end
|
||||
def down, do: nil
|
||||
|
||||
def down, do: nil
|
||||
end
|
||||
|
|
|
@ -2,10 +2,10 @@ defmodule Bonfire.Repo.Migrations.ImportClassify do
|
|||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
Bonfire.Classify.Migrations.up
|
||||
Bonfire.Classify.Migrations.up()
|
||||
end
|
||||
|
||||
def down do
|
||||
Bonfire.Classify.Migrations.down
|
||||
Bonfire.Classify.Migrations.down()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,7 +2,6 @@ defmodule Bonfire.Repo.Migrations.ImportRanked do
|
|||
use Ecto.Migration
|
||||
require Bonfire.Data.Assort.Ranked.Migration
|
||||
|
||||
def up, do: Bonfire.Data.Assort.Ranked.Migration.migrate_ranked
|
||||
def down, do: Bonfire.Data.Assort.Ranked.Migration.migrate_ranked
|
||||
|
||||
def up, do: Bonfire.Data.Assort.Ranked.Migration.migrate_ranked()
|
||||
def down, do: Bonfire.Data.Assort.Ranked.Migration.migrate_ranked()
|
||||
end
|
||||
|
|
|
@ -3,7 +3,7 @@ defmodule Bonfire.Repo.Migrations.ImportCommitmentSatisfaction do
|
|||
|
||||
def up do
|
||||
ValueFlows.Planning.Commitment.Migrations.up()
|
||||
ValueFlows.Planning.Satisfaction.Migrations.up()
|
||||
ValueFlows.Planning.Satisfaction.Migrations.up()
|
||||
end
|
||||
|
||||
def down do
|
||||
|
|
|
@ -2,10 +2,10 @@ defmodule Bonfire.Repo.Migrations.ImportInviteLink do
|
|||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
Bonfire.Invites.Link.Migration.up
|
||||
Bonfire.Invites.Link.Migration.up()
|
||||
end
|
||||
|
||||
def down do
|
||||
Bonfire.Invites.Link.Migration.down
|
||||
Bonfire.Invites.Link.Migration.down()
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,5 +4,4 @@ defmodule Bonfire.Data.Identity.Repo.Migrations.CareClosure do
|
|||
alias Bonfire.Data.Identity.CareClosure.Migration
|
||||
|
||||
def change, do: Migration.migrate_care_closure_view()
|
||||
|
||||
end
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Bonfire.Repo.Migrations.ImportSettings do
|
|||
use Ecto.Migration
|
||||
require Bonfire.Data.Identity.Settings.Migration
|
||||
|
||||
def up do
|
||||
def up do
|
||||
Bonfire.Data.Identity.Settings.Migration.migrate_settings(:up)
|
||||
end
|
||||
|
||||
|
|
|
@ -5,9 +5,10 @@ defmodule Bonfire.Repo.Migrations.AddFilesMixin do
|
|||
import Pointers.Migration
|
||||
|
||||
def up do
|
||||
alter table("bonfire_files_media") do # cleanup old stuff
|
||||
remove_if_exists :created_at, :utc_datetime_usec
|
||||
remove_if_exists :updated_at, :utc_datetime_usec
|
||||
# cleanup old stuff
|
||||
alter table("bonfire_files_media") do
|
||||
remove_if_exists(:created_at, :utc_datetime_usec)
|
||||
remove_if_exists(:updated_at, :utc_datetime_usec)
|
||||
end
|
||||
|
||||
Bonfire.Files.Migrations.migrate_files()
|
||||
|
|
|
@ -5,5 +5,4 @@ defmodule Bonfire.Boundaries.Repo.Migrations.BoundariesUpFixtures do
|
|||
|
||||
def up, do: Bonfire.Boundaries.Fixtures.insert()
|
||||
def down, do: nil
|
||||
|
||||
end
|
||||
|
|
|
@ -3,28 +3,30 @@ import Bonfire.Me.Fake
|
|||
System.put_env("INVITE_ONLY", "false")
|
||||
System.put_env("SEARCH_INDEXING_DISABLED", "true")
|
||||
|
||||
%{
|
||||
preferred_username: System.get_env("SEEDS_USER", "root"),
|
||||
name: System.get_env("SEEDS_USER", "Seed User")
|
||||
}
|
||||
|> fake_user!(%{confirm_email: true})
|
||||
fake_user!(
|
||||
%{
|
||||
preferred_username: System.get_env("SEEDS_USER", "root"),
|
||||
name: System.get_env("SEEDS_USER", "Seed User")
|
||||
},
|
||||
%{confirm_email: true}
|
||||
)
|
||||
|
||||
# create some users
|
||||
users = for _ <- 1..2, do: fake_user!()
|
||||
random_user = fn -> Faker.Util.pick(users) end
|
||||
|
||||
# start some communities
|
||||
#communities = for _ <- 1..2, do: fake_community!(random_user.())
|
||||
#subcommunities = for _ <- 1..2, do: fake_community!(random_user.(), Faker.Util.pick(communities))
|
||||
#maybe_random_community = fn -> maybe_one_of(communities ++ subcommunities) end
|
||||
# communities = for _ <- 1..2, do: fake_community!(random_user.())
|
||||
# subcommunities = for _ <- 1..2, do: fake_community!(random_user.(), Faker.Util.pick(communities))
|
||||
# maybe_random_community = fn -> maybe_one_of(communities ++ subcommunities) end
|
||||
|
||||
# create fake collections
|
||||
#collections = for _ <- 1..4, do: fake_collection!(random_user.(), maybe_random_community.())
|
||||
#subcollections = for _ <- 1..2, do: fake_collection!(random_user.(), Faker.Util.pick(collections))
|
||||
#maybe_random_collection = fn -> maybe_one_of(collections ++ subcollections) end
|
||||
# collections = for _ <- 1..4, do: fake_collection!(random_user.(), maybe_random_community.())
|
||||
# subcollections = for _ <- 1..2, do: fake_collection!(random_user.(), Faker.Util.pick(collections))
|
||||
# maybe_random_collection = fn -> maybe_one_of(collections ++ subcollections) end
|
||||
|
||||
# start fake threads
|
||||
#for _ <- 1..3 do
|
||||
# for _ <- 1..3 do
|
||||
# user = random_user.()
|
||||
# thread = fake_thread!(user, maybe_random_community.())
|
||||
# comment = fake_comment!(user, thread)
|
||||
|
@ -32,18 +34,18 @@ random_user = fn -> Faker.Util.pick(users) end
|
|||
# reply = fake_comment!(random_user.(), thread, %{in_reply_to_id: comment.id})
|
||||
# subreply = fake_comment!(random_user.(), thread, %{in_reply_to_id: reply.id})
|
||||
# subreply2 = fake_comment!(random_user.(), thread, %{in_reply_to_id: subreply.id})
|
||||
#end
|
||||
# end
|
||||
#
|
||||
## more fake threads
|
||||
#for _ <- 1..2 do
|
||||
# for _ <- 1..2 do
|
||||
# user = random_user.()
|
||||
# thread = fake_thread!(user, maybe_random_collection.())
|
||||
# comment = fake_comment!(user, thread)
|
||||
#end
|
||||
# end
|
||||
|
||||
# post some links/resources
|
||||
#for _ <- 1..2, do: fake_resource!(random_user.(), maybe_random_community.())
|
||||
#for _ <- 1..2, do: fake_resource!(random_user.(), maybe_random_collection.())
|
||||
# for _ <- 1..2, do: fake_resource!(random_user.(), maybe_random_community.())
|
||||
# for _ <- 1..2, do: fake_resource!(random_user.(), maybe_random_collection.())
|
||||
|
||||
# define some tags/categories
|
||||
if(Bonfire.Common.Extend.extension_enabled?(Bonfire.Classify.Simulate)) do
|
||||
|
@ -89,18 +91,22 @@ if(Bonfire.Common.Extend.extension_enabled?(ValueFlows.Simulate)) do
|
|||
|
||||
# some proposed intents
|
||||
action_id = ValueFlows.Simulate.action_id()
|
||||
intent = ValueFlows.Simulate.fake_intent!(user, %{resource_conforms_to: res_spec, action_id: action_id})
|
||||
|
||||
intent =
|
||||
ValueFlows.Simulate.fake_intent!(user, %{
|
||||
resource_conforms_to: res_spec,
|
||||
action_id: action_id
|
||||
})
|
||||
|
||||
proposal = ValueFlows.Simulate.fake_proposal!(user)
|
||||
ValueFlows.Simulate.fake_proposed_to!(random_user.(), proposal)
|
||||
ValueFlows.Simulate.fake_proposed_intent!(proposal, intent)
|
||||
|
||||
# define some geolocations
|
||||
if(Bonfire.Common.Extend.extension_enabled?(Bonfire.Geolocate.Simulate)) do
|
||||
|
||||
places = for _ <- 1..2, do: Bonfire.Geolocate.Simulate.fake_geolocation!(random_user.())
|
||||
random_place = fn -> Faker.Util.pick(places) end
|
||||
|
||||
|
||||
for _ <- 1..2 do
|
||||
# define some intents with geolocation
|
||||
_intent =
|
||||
|
@ -110,7 +116,8 @@ if(Bonfire.Common.Extend.extension_enabled?(ValueFlows.Simulate)) do
|
|||
)
|
||||
|
||||
# define some proposals with geolocation
|
||||
_proposal = ValueFlows.Simulate.fake_proposal!(user, %{eligible_location: random_place.()})
|
||||
_proposal =
|
||||
ValueFlows.Simulate.fake_proposal!(user, %{eligible_location: random_place.()})
|
||||
|
||||
# both with geo
|
||||
intent =
|
||||
|
@ -125,8 +132,13 @@ if(Bonfire.Common.Extend.extension_enabled?(ValueFlows.Simulate)) do
|
|||
# some economic events
|
||||
user = random_user.()
|
||||
|
||||
resource_inventoried_as = ValueFlows.Simulate.fake_economic_resource!(user, %{current_location: random_place.()})
|
||||
to_resource_inventoried_as = ValueFlows.Simulate.fake_economic_resource!(random_user.(), %{current_location: random_place.()})
|
||||
resource_inventoried_as =
|
||||
ValueFlows.Simulate.fake_economic_resource!(user, %{current_location: random_place.()})
|
||||
|
||||
to_resource_inventoried_as =
|
||||
ValueFlows.Simulate.fake_economic_resource!(random_user.(), %{
|
||||
current_location: random_place.()
|
||||
})
|
||||
|
||||
ValueFlows.Simulate.fake_economic_event!(
|
||||
user,
|
||||
|
@ -162,7 +174,9 @@ if(Bonfire.Common.Extend.extension_enabled?(ValueFlows.Simulate)) do
|
|||
unit = Faker.Util.pick([unit1, unit2])
|
||||
|
||||
resource_inventoried_as = ValueFlows.Simulate.fake_economic_resource!(user, %{}, unit)
|
||||
to_resource_inventoried_as = ValueFlows.Simulate.fake_economic_resource!(random_user.(), %{}, unit)
|
||||
|
||||
to_resource_inventoried_as =
|
||||
ValueFlows.Simulate.fake_economic_resource!(random_user.(), %{}, unit)
|
||||
|
||||
ValueFlows.Simulate.fake_economic_event!(
|
||||
user,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
defmodule Bonfire.Repo.Seeds.ObserveClassifications do
|
||||
use Bonfire.Seeder
|
||||
|
||||
envs [:dev, :prod, :test]
|
||||
envs([:dev, :prod, :test])
|
||||
|
||||
def up(repo), do: ValueFlows.Observe.Seeds.up(repo)
|
||||
end
|
||||
|
|
|
@ -12,9 +12,8 @@ config :activity_pub, Oban,
|
|||
repo: Bonfire.Common.Repo,
|
||||
queues: false
|
||||
|
||||
config :activity_pub, :instance,
|
||||
federating: false
|
||||
# rewrite_policy: [ActivityPub.MRF.SimplePolicy]
|
||||
config :activity_pub, :instance, federating: false
|
||||
# rewrite_policy: [ActivityPub.MRF.SimplePolicy]
|
||||
|
||||
config :tesla, adapter: Tesla.Mock
|
||||
|
||||
|
|
|
@ -8,7 +8,8 @@ config :bonfire_common,
|
|||
# internationalisation
|
||||
config :bonfire_common, Bonfire.Common.Localise.Cldr,
|
||||
default_locale: default_locale,
|
||||
locales: ["fr", "en", "es"], # locales that will be made available on top of those for which gettext localisation files are available
|
||||
# locales that will be made available on top of those for which gettext localisation files are available
|
||||
locales: ["fr", "en", "es"],
|
||||
providers: [Cldr.Language],
|
||||
gettext: Bonfire.Common.Localise.Gettext,
|
||||
data_dir: "./priv/cldr",
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -11,9 +11,11 @@ config :bonfire_fail,
|
|||
bad_header: {400, "Bad request: malformed header."},
|
||||
no_access: {403, "This site is by invitation only."},
|
||||
token_expired: {403, "This link or token has expired, please request a fresh one."},
|
||||
already_claimed: {403, "This link or token was already used, please request a fresh one if necessary."},
|
||||
already_claimed:
|
||||
{403, "This link or token was already used, please request a fresh one if necessary."},
|
||||
token_not_found: {403, "This token was not found, please request a fresh one."},
|
||||
user_disabled: {403, "This user account is disabled. Please contact the instance administrator."},
|
||||
user_disabled:
|
||||
{403, "This user account is disabled. Please contact the instance administrator."},
|
||||
email_not_confirmed: {403, "Please confirm your email address first."},
|
||||
unknown_resource: {400, "Unknown resource."},
|
||||
invalid_argument: {400, "Invalid arguments passed."},
|
||||
|
|
|
@ -10,12 +10,13 @@ config :bonfire,
|
|||
:bonfire_me,
|
||||
:bonfire_social,
|
||||
:bonfire_valueflows
|
||||
],
|
||||
log_federation: true, # enable/disable logging of federation logic
|
||||
],
|
||||
# enable/disable logging of federation logic
|
||||
log_federation: true,
|
||||
federation_fallback_module: Bonfire.Social.APActivities
|
||||
|
||||
config :bonfire, actor_AP_types: actor_types
|
||||
|
||||
# config :bonfire, Bonfire.Instance,
|
||||
# hostname: hostname,
|
||||
# description: desc
|
||||
# hostname: hostname,
|
||||
# description: desc
|
||||
|
|
|
@ -4,48 +4,53 @@ import Config
|
|||
# see https://hexdocs.pm/waffle/Waffle.html#module-setup-a-storage-provider
|
||||
config :waffle,
|
||||
storage: Waffle.Storage.Local,
|
||||
asset_host: "/" # or {:system, "ASSET_HOST"}
|
||||
# or {:system, "ASSET_HOST"}
|
||||
asset_host: "/"
|
||||
|
||||
image_media_types = ["image/png", "image/jpeg", "image/gif", "image/svg+xml", "image/tiff"]
|
||||
|
||||
all_allowed_media_types = image_media_types ++ [
|
||||
"text/plain",
|
||||
# doc
|
||||
"text/csv",
|
||||
"application/pdf",
|
||||
"application/rtf",
|
||||
"application/msword",
|
||||
"application/vnd.ms-excel",
|
||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
"application/vnd.oasis.opendocument.presentation",
|
||||
"application/vnd.oasis.opendocument.spreadsheet",
|
||||
"application/vnd.oasis.opendocument.text",
|
||||
"application/epub+zip",
|
||||
# archives
|
||||
"application/x-tar",
|
||||
"application/x-bzip",
|
||||
"application/x-bzip2",
|
||||
"application/gzip",
|
||||
"application/zip",
|
||||
"application/rar",
|
||||
"application/x-7z-compressed",
|
||||
# audio
|
||||
"audio/mpeg",
|
||||
"audio/ogg",
|
||||
"audio/wav",
|
||||
"audio/webm",
|
||||
"audio/opus",
|
||||
# video
|
||||
"video/mp4",
|
||||
"video/mpeg",
|
||||
"video/ogg",
|
||||
"video/webm",
|
||||
]
|
||||
all_allowed_media_types =
|
||||
image_media_types ++
|
||||
[
|
||||
"text/plain",
|
||||
# doc
|
||||
"text/csv",
|
||||
"application/pdf",
|
||||
"application/rtf",
|
||||
"application/msword",
|
||||
"application/vnd.ms-excel",
|
||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
"application/vnd.oasis.opendocument.presentation",
|
||||
"application/vnd.oasis.opendocument.spreadsheet",
|
||||
"application/vnd.oasis.opendocument.text",
|
||||
"application/epub+zip",
|
||||
# archives
|
||||
"application/x-tar",
|
||||
"application/x-bzip",
|
||||
"application/x-bzip2",
|
||||
"application/gzip",
|
||||
"application/zip",
|
||||
"application/rar",
|
||||
"application/x-7z-compressed",
|
||||
# audio
|
||||
"audio/mpeg",
|
||||
"audio/ogg",
|
||||
"audio/wav",
|
||||
"audio/webm",
|
||||
"audio/opus",
|
||||
# video
|
||||
"video/mp4",
|
||||
"video/mpeg",
|
||||
"video/ogg",
|
||||
"video/webm"
|
||||
]
|
||||
|
||||
config :bonfire_files, image_media_types: image_media_types
|
||||
config :bonfire_files, all_allowed_media_types: all_allowed_media_types
|
||||
|
||||
config :bonfire_files, Bonfire.Files.IconUploader, allowed_media_types: image_media_types
|
||||
config :bonfire_files, Bonfire.Files.ImageUploader, allowed_media_types: image_media_types
|
||||
config :bonfire_files, Bonfire.Files.DocumentUploader, allowed_media_types: all_allowed_media_types
|
||||
|
||||
config :bonfire_files, Bonfire.Files.DocumentUploader,
|
||||
allowed_media_types: all_allowed_media_types
|
||||
|
|
|
@ -2,4 +2,5 @@ import Config
|
|||
|
||||
config :bonfire_me,
|
||||
validate_name_min: 1,
|
||||
validate_name_max: 250 # needed for taxonomy
|
||||
# needed for taxonomy
|
||||
validate_name_max: 250
|
||||
|
|
|
@ -3,8 +3,10 @@ import Config
|
|||
config :bonfire_search,
|
||||
disable_indexing: System.get_env("SEARCH_INDEXING_DISABLED", "false"),
|
||||
adapter: Bonfire.Search.Meili,
|
||||
instance: System.get_env("SEARCH_MEILI_INSTANCE", "http://search:7700"), # protocol, hostname and port
|
||||
api_key: System.get_env("MEILI_MASTER_KEY", "make-sure-to-change-me") # secret key
|
||||
# protocol, hostname and port
|
||||
instance: System.get_env("SEARCH_MEILI_INSTANCE", "http://search:7700"),
|
||||
# secret key
|
||||
api_key: System.get_env("MEILI_MASTER_KEY", "make-sure-to-change-me")
|
||||
|
||||
# for use by API client
|
||||
config :tesla, adapter: Tesla.Adapter.Hackney
|
||||
|
|
|
@ -1,49 +1,47 @@
|
|||
import Config
|
||||
|
||||
|
||||
config :bonfire, :ui,
|
||||
theme: [
|
||||
instance_name: "HAHA Academy",
|
||||
instance_icon: "/images/bonfire-icon.png",
|
||||
instance_image: "https://haha.academy/images/wheel.png",
|
||||
instance_description: "Community roadmaps for learning every branch of human knowledge"
|
||||
],
|
||||
sidebar_components: [
|
||||
{Bonfire.UI.Social.SidebarNavigationLive, []},
|
||||
],
|
||||
rich_text_editor: Bonfire.Editor.Quill,
|
||||
smart_input: [
|
||||
post: true,
|
||||
cw: true,
|
||||
summary: true
|
||||
],
|
||||
profile: [
|
||||
sections: [
|
||||
timeline: Bonfire.UI.Social.ProfileTimelineLive,
|
||||
# private: Bonfire.UI.Social.MessageThreadsLive,
|
||||
posts: Bonfire.UI.Social.ProfilePostsLive,
|
||||
boosts: Bonfire.UI.Social.ProfileBoostsLive,
|
||||
followers: Bonfire.UI.Social.ProfileFollowsLive,
|
||||
followed: Bonfire.UI.Social.ProfileFollowsLive,
|
||||
],
|
||||
navigation: [
|
||||
timeline: "timeline",
|
||||
posts: "posts",
|
||||
boosts: "boosts",
|
||||
# private: "private",
|
||||
],
|
||||
widgets: [
|
||||
],
|
||||
],
|
||||
smart_input_activities: [
|
||||
# offer: "Publish an offer",
|
||||
# need: "Publish a need",
|
||||
# transfer_resource: "Transfer a resource",
|
||||
# produce_resource: "Add a resource",
|
||||
# intent: "Indicate an itent",
|
||||
# economic_event: "Record an economic event",
|
||||
# process: "Define a process"
|
||||
],
|
||||
smart_input_components: [
|
||||
post: Bonfire.UI.Social.WritePostContentLive,
|
||||
]
|
||||
theme: [
|
||||
instance_name: "HAHA Academy",
|
||||
instance_icon: "/images/bonfire-icon.png",
|
||||
instance_image: "https://haha.academy/images/wheel.png",
|
||||
instance_description: "Community roadmaps for learning every branch of human knowledge"
|
||||
],
|
||||
sidebar_components: [
|
||||
{Bonfire.UI.Social.SidebarNavigationLive, []}
|
||||
],
|
||||
rich_text_editor: Bonfire.Editor.Quill,
|
||||
smart_input: [
|
||||
post: true,
|
||||
cw: true,
|
||||
summary: true
|
||||
],
|
||||
profile: [
|
||||
sections: [
|
||||
timeline: Bonfire.UI.Social.ProfileTimelineLive,
|
||||
# private: Bonfire.UI.Social.MessageThreadsLive,
|
||||
posts: Bonfire.UI.Social.ProfilePostsLive,
|
||||
boosts: Bonfire.UI.Social.ProfileBoostsLive,
|
||||
followers: Bonfire.UI.Social.ProfileFollowsLive,
|
||||
followed: Bonfire.UI.Social.ProfileFollowsLive
|
||||
],
|
||||
navigation: [
|
||||
timeline: "timeline",
|
||||
posts: "posts",
|
||||
boosts: "boosts"
|
||||
# private: "private",
|
||||
],
|
||||
widgets: []
|
||||
],
|
||||
smart_input_activities: [
|
||||
# offer: "Publish an offer",
|
||||
# need: "Publish a need",
|
||||
# transfer_resource: "Transfer a resource",
|
||||
# produce_resource: "Add a resource",
|
||||
# intent: "Indicate an itent",
|
||||
# economic_event: "Record an economic event",
|
||||
# process: "Define a process"
|
||||
],
|
||||
smart_input_components: [
|
||||
post: Bonfire.UI.Social.WritePostContentLive
|
||||
]
|
||||
|
|
|
@ -2,7 +2,7 @@ import Config
|
|||
|
||||
default_flavour = "classic"
|
||||
flavour = System.get_env("FLAVOUR", default_flavour)
|
||||
flavour_path = System.get_env("FLAVOUR_PATH", "flavours/"<>flavour)
|
||||
flavour_path = System.get_env("FLAVOUR_PATH", "flavours/" <> flavour)
|
||||
|
||||
#### Basic configuration
|
||||
|
||||
|
@ -33,7 +33,8 @@ config :bonfire,
|
|||
config :bonfire, Bonfire.Web.Endpoint,
|
||||
url: [host: "localhost"],
|
||||
http: [
|
||||
port: String.to_integer(System.get_env("SERVER_PORT", "4000")), # this gets overriden in runtime.exs
|
||||
# this gets overriden in runtime.exs
|
||||
port: String.to_integer(System.get_env("SERVER_PORT", "4000")),
|
||||
transport_options: [socket_opts: [:inet6]]
|
||||
],
|
||||
render_errors: [view: Bonfire.UI.Common.ErrorView, accepts: ~w(html json), layout: false],
|
||||
|
@ -43,6 +44,7 @@ config :phoenix, :json_library, Jason
|
|||
config :phoenix_gon, :json_library, Jason
|
||||
|
||||
config :bonfire, :ecto_repos, [Bonfire.Common.Repo]
|
||||
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
types: Bonfire.Geolocate.PostgresTypes,
|
||||
priv: flavour_path <> "/repo"
|
||||
|
@ -73,10 +75,9 @@ config :mime, :types, %{
|
|||
|
||||
config :sentry,
|
||||
dsn: "this-will-be-overriden-by-a-secure-string-in-runtime.exs",
|
||||
environment_name: Mix.env,
|
||||
environment_name: Mix.env(),
|
||||
included_environments: [:prod]
|
||||
|
||||
|
||||
# include config for all used Bonfire extensions
|
||||
for config <- "bonfire_*.exs" |> Path.expand(__DIR__) |> Path.wildcard() do
|
||||
# IO.inspect(include_config: config)
|
||||
|
@ -85,6 +86,5 @@ end
|
|||
|
||||
import_config "activity_pub.exs"
|
||||
|
||||
|
||||
# finally, append/override config based on env, which will override any config set above (including from imported files)
|
||||
import_config "#{config_env()}.exs"
|
||||
|
|
|
@ -10,10 +10,14 @@ path_dep_dirs =
|
|||
|> Enum.map(&(Keyword.fetch!(elem(&1, 1), :path) <> "/lib"))
|
||||
|
||||
config :phoenix_live_reload,
|
||||
dirs: path_dep_dirs ++ ["lib/"] # watch the app's lib/ dir + the dep/lib/ dir of every locally-cloned dep
|
||||
# watch the app's lib/ dir + the dep/lib/ dir of every locally-cloned dep
|
||||
dirs: path_dep_dirs ++ ["lib/"]
|
||||
|
||||
path_dep_patterns = path_dep_dirs |> Enum.map(&(String.slice(&1, 2..1000) <>".*ex")) # to include cloned code in patterns
|
||||
path_dep_patterns = path_dep_patterns ++ path_dep_dirs |> Enum.map(&(String.slice(&1, 2..1000) <>".*sface")) # Surface views
|
||||
# to include cloned code in patterns
|
||||
path_dep_patterns = Enum.map(path_dep_dirs, &(String.slice(&1, 2..1000) <> ".*ex"))
|
||||
# Surface views
|
||||
path_dep_patterns =
|
||||
(path_dep_patterns ++ path_dep_dirs) |> Enum.map(&(String.slice(&1, 2..1000) <> ".*sface"))
|
||||
|
||||
# Watch static and templates for browser reloading.
|
||||
config :bonfire, Bonfire.Web.Endpoint,
|
||||
|
@ -29,31 +33,34 @@ config :bonfire, Bonfire.Web.Endpoint,
|
|||
yarn: [
|
||||
"watch.css",
|
||||
cd: Path.expand("assets", File.cwd!())
|
||||
],
|
||||
]
|
||||
|
||||
# yarn: [
|
||||
# "watch.assets",
|
||||
# cd: Path.expand("assets", File.cwd!())
|
||||
# ]
|
||||
],
|
||||
live_reload: [
|
||||
patterns: [
|
||||
# ~r"^priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$",
|
||||
# ~r"^priv/gettext/.*(po)$",
|
||||
# ~r"^web/(live|views)/.*ex$",
|
||||
# ~r"^lib/.*_live\.ex$",
|
||||
# ~r".*leex$",
|
||||
~r"lib/.*ex$",
|
||||
~r".*sface$",
|
||||
~r"priv/catalogue/.*(ex)$",
|
||||
] ++ path_dep_patterns
|
||||
]
|
||||
patterns:
|
||||
[
|
||||
# ~r"^priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$",
|
||||
# ~r"^priv/gettext/.*(po)$",
|
||||
# ~r"^web/(live|views)/.*ex$",
|
||||
# ~r"^lib/.*_live\.ex$",
|
||||
# ~r".*leex$",
|
||||
# defp elixirc_paths(:dev), do: ["lib"] ++ catalogues()
|
||||
|
||||
# defp elixirc_paths(:dev), do: ["lib"] ++ catalogues()
|
||||
~r"lib/.*ex$",
|
||||
~r".*sface$",
|
||||
~r"priv/catalogue/.*(ex)$"
|
||||
] ++ path_dep_patterns
|
||||
]
|
||||
|
||||
config :logger, :console,
|
||||
level: :debug,
|
||||
# truncate: :infinity,
|
||||
format: "[$level] $message\n" # Do not include metadata or timestamps
|
||||
# Do not include metadata or timestamps
|
||||
format: "[$level] $message\n"
|
||||
|
||||
config :phoenix, :stacktrace_depth, 30
|
||||
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
import Config
|
||||
|
||||
|
||||
# We include the path to a cache manifest
|
||||
# containing the digested version of static files. This
|
||||
# manifest is generated by the `mix phx.digest` task,
|
||||
# which you should run after static files are built and
|
||||
# before starting your production server.
|
||||
config :bonfire, Bonfire.Web.Endpoint,
|
||||
cache_static_manifest: "priv/static/cache_manifest.json"
|
||||
config :bonfire, Bonfire.Web.Endpoint, cache_static_manifest: "priv/static/cache_manifest.json"
|
||||
|
||||
config :logger,
|
||||
backends: [:console, Sentry.LoggerBackend]
|
||||
|
@ -18,4 +16,5 @@ config :logger, level: :info
|
|||
config :bonfire, Bonfire.Web.Endpoint, server: true
|
||||
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
priv: "priv/repo" # in releases migrations are not in a flavour-specific directory
|
||||
# in releases migrations are not in a flavour-specific directory
|
||||
priv: "priv/repo"
|
||||
|
|
|
@ -13,16 +13,15 @@ Bonfire.Common.Config.LoadExtensionsConfig.load_configs()
|
|||
##
|
||||
|
||||
System.get_env("DATABASE_URL") || System.get_env("POSTGRES_PASSWORD") || System.get_env("CI") ||
|
||||
raise """
|
||||
Environment variables for database are missing.
|
||||
For example: DATABASE_URL=ecto://USER:PASS@HOST/DATABASE
|
||||
You can also set POSTGRES_PASSWORD (required),
|
||||
and POSTGRES_USER (default: postgres) and POSTGRES_HOST (default: localhost)
|
||||
"""
|
||||
raise """
|
||||
Environment variables for database are missing.
|
||||
For example: DATABASE_URL=ecto://USER:PASS@HOST/DATABASE
|
||||
You can also set POSTGRES_PASSWORD (required),
|
||||
and POSTGRES_USER (default: postgres) and POSTGRES_HOST (default: localhost)
|
||||
"""
|
||||
|
||||
if System.get_env("DATABASE_URL") do
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
url: System.get_env("DATABASE_URL")
|
||||
config :bonfire, Bonfire.Common.Repo, url: System.get_env("DATABASE_URL")
|
||||
else
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
# ssl: true,
|
||||
|
@ -38,12 +37,14 @@ secret_key_base =
|
|||
You can generate one by calling: mix phx.gen.secret
|
||||
"""
|
||||
|
||||
signing_salt = System.get_env("SIGNING_SALT") || System.get_env("CI") ||
|
||||
signing_salt =
|
||||
System.get_env("SIGNING_SALT") || System.get_env("CI") ||
|
||||
raise """
|
||||
environment variable SIGNING_SALT is missing.
|
||||
"""
|
||||
|
||||
encryption_salt = System.get_env("ENCRYPTION_SALT") || System.get_env("CI") ||
|
||||
encryption_salt =
|
||||
System.get_env("ENCRYPTION_SALT") || System.get_env("CI") ||
|
||||
raise """
|
||||
environment variable ENCRYPTION_SALT is missing.
|
||||
"""
|
||||
|
@ -57,7 +58,10 @@ config :bonfire,
|
|||
encryption_salt: encryption_salt,
|
||||
signing_salt: signing_salt
|
||||
|
||||
start_server? = if config_env() == :test, do: System.get_env("START_SERVER", "true"), else: System.get_env("START_SERVER", "true")
|
||||
start_server? =
|
||||
if config_env() == :test,
|
||||
do: System.get_env("START_SERVER", "true"),
|
||||
else: System.get_env("START_SERVER", "true")
|
||||
|
||||
config :bonfire, Bonfire.Web.Endpoint,
|
||||
server: String.to_existing_atom(start_server?),
|
||||
|
@ -72,9 +76,7 @@ config :bonfire, Bonfire.Web.Endpoint,
|
|||
live_view: [signing_salt: signing_salt]
|
||||
|
||||
if System.get_env("SENTRY_DSN") do
|
||||
IO.puts(
|
||||
"Note: errors will be reported to Sentry."
|
||||
)
|
||||
IO.puts("Note: errors will be reported to Sentry.")
|
||||
|
||||
config :sentry,
|
||||
dsn: System.get_env("SENTRY_DSN")
|
||||
|
@ -86,22 +88,20 @@ end
|
|||
|
||||
# start prod-only config
|
||||
if config_env() == :prod do
|
||||
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
# ssl: true,
|
||||
database: System.get_env("POSTGRES_DB", "bonfire"),
|
||||
pool_size: String.to_integer(System.get_env("POOL_SIZE", "10")),
|
||||
log: String.to_atom(System.get_env("DB_QUERIES_LOG_LEVEL", "false")) # Note: keep this disabled if using ecto_dev_logger or EctoSparkles.Log instead #
|
||||
|
||||
end # prod only config
|
||||
# Note: keep this disabled if using ecto_dev_logger or EctoSparkles.Log instead #
|
||||
log: String.to_atom(System.get_env("DB_QUERIES_LOG_LEVEL", "false"))
|
||||
end
|
||||
|
||||
# prod only config
|
||||
|
||||
# start prod and dev only config
|
||||
if config_env() != :test do
|
||||
|
||||
config :bonfire, Bonfire.Common.Repo,
|
||||
slow_query_ms: String.to_integer(System.get_env("SLOW_QUERY_MS", "100"))
|
||||
|
||||
end
|
||||
|
||||
## bonfire_livebook
|
||||
|
|
|
@ -15,7 +15,6 @@ config :bonfire_search,
|
|||
config :logger, level: :warn
|
||||
# config :logger, level: :notice
|
||||
|
||||
|
||||
# Configure your database
|
||||
db = "bonfire_test#{System.get_env("MIX_TEST_PARTITION")}"
|
||||
#
|
||||
|
@ -46,6 +45,7 @@ config :mix_test_interactive,
|
|||
clear: true
|
||||
|
||||
config :paginator, ecto_repos: [Bonfire.Common.Repo]
|
||||
|
||||
config :paginator, Paginator.Repo,
|
||||
pool: Ecto.Adapters.SQL.Sandbox,
|
||||
username: System.get_env("POSTGRES_USER", "postgres"),
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue