@directus/app 9.14.1 → 9.14.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/@directus_extensions-sdk.118c3166.entry.js +1 -0
- package/dist/assets/{accounts.40ab36c1.js → accounts.d4221901.js} +1 -1
- package/dist/assets/{active-line.b531d8e7.js → active-line.5b9f7d21.js} +1 -1
- package/dist/assets/{activity-log.9449feec.js → activity-log.0479877c.js} +1 -1
- package/dist/assets/activity.941cbf2b.js +80 -0
- package/dist/assets/{af.b15e3fdc.js → af.ffe603d7.js} +0 -0
- package/dist/assets/{apl.091e05c0.js → apl.38b1f117.js} +1 -1
- package/dist/assets/ar-SA.52ee85f9.js +1 -0
- package/dist/assets/{ar-dz.5481d0db.js → ar-dz.923ce4b9.js} +0 -0
- package/dist/assets/{ar-kw.77cb7412.js → ar-kw.7f81a6f6.js} +0 -0
- package/dist/assets/{ar-ly.d2852686.js → ar-ly.eeb6eb8f.js} +0 -0
- package/dist/assets/{ar-ma.6b2052c4.js → ar-ma.edaad637.js} +0 -0
- package/dist/assets/{ar-sa.0ce4896b.js → ar-sa.a955cf78.js} +0 -0
- package/dist/assets/{ar-tn.0075ee1e.js → ar-tn.0bd79035.js} +0 -0
- package/dist/assets/{ar.01c8813a.js → ar.dfbee566.js} +0 -0
- package/dist/assets/{architecture.9e90b6f3.js → architecture.ddda2484.js} +1 -1
- package/dist/assets/{asciiarmor.72b1d474.js → asciiarmor.de2f91d3.js} +1 -1
- package/dist/assets/{asn.1.64b438d1.js → asn.1.2671e5d6.js} +1 -1
- package/dist/assets/{asterisk.2d23826f.js → asterisk.265fd20b.js} +1 -1
- package/dist/assets/authentication.d5cd539e.js +73 -0
- package/dist/assets/{autorefresh.65071be2.js → autorefresh.d7b5f888.js} +1 -1
- package/dist/assets/{aws.6652a1fd.js → aws.65b39fe1.js} +1 -1
- package/dist/assets/{az.839e5437.js → az.ac368cbb.js} +0 -0
- package/dist/assets/{backing-directus.02c28d29.js → backing-directus.2809dd5a.js} +1 -1
- package/dist/assets/{bg.71bbc37d.js → bg.63a91564.js} +0 -0
- package/dist/assets/{bn.28eb3677.js → bn.a1d9b410.js} +0 -0
- package/dist/assets/{brainfuck.cb084ebc.js → brainfuck.b5c5b4d3.js} +1 -1
- package/dist/assets/{bs.b0570362.js → bs.92a16737.js} +0 -0
- package/dist/assets/{ca.d17b0b48.js → ca.31d0764d.js} +0 -0
- package/dist/assets/{cli.863ef0d2.js → cli.6ee7cfc0.js} +1 -1
- package/dist/assets/{cli.6e61515e.js → cli.fce4fcbe.js} +2 -2
- package/dist/assets/{clike.c67024f2.js → clike.f961e135.js} +1 -1
- package/dist/assets/{clojure.4409f83f.js → clojure.4dd0505f.js} +1 -1
- package/dist/assets/{cloudron.a348537b.js → cloudron.735aeaf5.js} +1 -1
- package/dist/assets/{cmake.2f7d66e8.js → cmake.ed515b1b.js} +1 -1
- package/dist/assets/{cobol.1d3d945c.js → cobol.fc02ebc2.js} +1 -1
- package/dist/assets/codebase-overview.3de1bbdc.js +1 -0
- package/dist/assets/{coffeescript.7dbfeb38.js → coffeescript.4cf3e4f3.js} +1 -1
- package/dist/assets/collections.11aae4a8.js +106 -0
- package/dist/assets/{collections.60e4b448.js → collections.e06a8b1f.js} +1 -1
- package/dist/assets/{commonlisp.79d346a3.js → commonlisp.725a0889.js} +1 -1
- package/dist/assets/{config-options.8e2d8e17.js → config-options.9b79feaf.js} +15 -15
- package/dist/assets/{content.003d7d7c.js → content.07b42fc5.js} +1 -1
- package/dist/assets/creating-extensions.054f4231.js +13 -0
- package/dist/assets/{crystal.6f97295f.js → crystal.de3725fb.js} +1 -1
- package/dist/assets/cs-CZ.5045b098.js +1 -0
- package/dist/assets/{cs.23d06f43.js → cs.021e612f.js} +0 -0
- package/dist/assets/{css.87d5fc8d.js → css.98183349.js} +1 -1
- package/dist/assets/{cy.3b5a8132.js → cy.abf1b7d8.js} +0 -0
- package/dist/assets/{cypher.b46e268d.js → cypher.c571b7dd.js} +1 -1
- package/dist/assets/{d.0277a0cc.js → d.0053cf91.js} +1 -1
- package/dist/assets/{da.18bc0ec4.js → da.230eee14.js} +0 -0
- package/dist/assets/{dart.fd756766.js → dart.62f7758b.js} +1 -1
- package/dist/assets/{data-model.086edd1e.js → data-model.eb5f7e27.js} +1 -1
- package/dist/assets/{data-sharing.27afa5ee.js → data-sharing.8b80b0f4.js} +1 -1
- package/dist/assets/de-DE.5535b278.js +1 -0
- package/dist/assets/{de-at.a1f7dd1d.js → de-at.9a82fa84.js} +0 -0
- package/dist/assets/{de.a8c4aad1.js → de.1f4f2676.js} +0 -0
- package/dist/assets/{diff.1ed63843.js → diff.6acd273a.js} +1 -1
- package/dist/assets/{digitalocean-app-platform.aff2a50b.js → digitalocean-app-platform.62c81303.js} +1 -1
- package/dist/assets/{display-templates.d8e93a19.js → display-templates.2bbee0eb.js} +1 -1
- package/dist/assets/{displays.e528abde.js → displays.037994a0.js} +9 -9
- package/dist/assets/{django.afa30018.js → django.98a7f8f7.js} +1 -1
- package/dist/assets/{docker.6f265c46.js → docker.1f4e694b.js} +1 -1
- package/dist/assets/{dockerfile.91c6378e.js → dockerfile.4721ec68.js} +1 -1
- package/dist/assets/{documentation.ad1fdaf2.js → documentation.60e724e3.js} +1 -1
- package/dist/assets/{dtd.8b391952.js → dtd.1a26b16b.js} +1 -1
- package/dist/assets/{dylan.5532ec69.js → dylan.27c31fbb.js} +1 -1
- package/dist/assets/{ebnf.f179e348.js → ebnf.5a331186.js} +1 -1
- package/dist/assets/{ecl.a37bdc2f.js → ecl.5288ac09.js} +1 -1
- package/dist/assets/{eiffel.883e1bfb.js → eiffel.d48a1fb6.js} +1 -1
- package/dist/assets/el-GR.60ea8245.js +1 -0
- package/dist/assets/{el.fd48dbad.js → el.d2f58204.js} +0 -0
- package/dist/assets/{elm.c40484aa.js → elm.5525d8fa.js} +1 -1
- package/dist/assets/{email-templates.2bdb87a6.js → email-templates.062d08d1.js} +1 -1
- package/dist/assets/{en-au.1268cbf1.js → en-au.c1303a25.js} +0 -0
- package/dist/assets/{en-gb.0165e0db.js → en-gb.e85a2393.js} +0 -0
- package/dist/assets/{en-nz.01361cd3.js → en-nz.e8e12a64.js} +0 -0
- package/dist/assets/endpoints.b6214ea4.js +27 -0
- package/dist/assets/{eo.7ba085ab.js → eo.af51bcc8.js} +0 -0
- package/dist/assets/{erlang.60963eb0.js → erlang.acb354b6.js} +1 -1
- package/dist/assets/es-419.ca94d216.js +1 -0
- package/dist/assets/es-CL.ae584c00.js +1 -0
- package/dist/assets/es-MX.059cc750.js +1 -0
- package/dist/assets/{es-us.8d0a5dcc.js → es-us.2395a850.js} +0 -0
- package/dist/assets/{es.33209895.js → es.90080285.js} +0 -0
- package/dist/assets/{et.d879b698.js → et.b4d59d2c.js} +0 -0
- package/dist/assets/{eu.bfb2c22e.js → eu.85a86bfb.js} +0 -0
- package/dist/assets/{extensions.8d3df212.js → extensions.0f9a4545.js} +1 -1
- package/dist/assets/{fa.d9f705ee.js → fa.b477e584.js} +0 -0
- package/dist/assets/{factor.6c5ee333.js → factor.74747951.js} +1 -1
- package/dist/assets/faq.c134fb00.js +2 -0
- package/dist/assets/{fcl.8e18cfdc.js → fcl.76ae408d.js} +1 -1
- package/dist/assets/{fi.5a2e9662.js → fi.7a66a1a3.js} +0 -0
- package/dist/assets/fields.2c2cc037.js +135 -0
- package/dist/assets/{file-library.a4de4015.js → file-library.92f387e2.js} +1 -1
- package/dist/assets/files.1d250203.js +189 -0
- package/dist/assets/filter-rules.6cc70dd4.js +76 -0
- package/dist/assets/{filters.2cb82fd9.js → filters.0ef5a5ed.js} +1 -1
- package/dist/assets/{flows.f378a262.js → flows.03ed1b32.js} +15 -15
- package/dist/assets/flows.19c6599f.js +172 -0
- package/dist/assets/{folders.fa66a5ce.js → folders.e417fd8b.js} +33 -33
- package/dist/assets/forth.7ddbc993.js +1 -0
- package/dist/assets/{fortran.ac24d46b.js → fortran.d23e51d4.js} +1 -1
- package/dist/assets/fr-CA.6b485ca2.js +1 -0
- package/dist/assets/{fr-ca.cd8c81b9.js → fr-ca.d550f5bd.js} +0 -0
- package/dist/assets/{fr-ch.d9522a23.js → fr-ch.96feab2f.js} +0 -0
- package/dist/assets/{fr.56b3c7ac.js → fr.cc2f5568.js} +0 -0
- package/dist/assets/{gas.f99de41f.js → gas.b4331512.js} +1 -1
- package/dist/assets/{gcp.6c61b39e.js → gcp.293edb91.js} +1 -1
- package/dist/assets/{gfm.c3250bc4.js → gfm.9d7d842c.js} +1 -1
- package/dist/assets/{gherkin.dd3614b2.js → gherkin.a2d07b4b.js} +1 -1
- package/dist/assets/{github-ci.04483301.js → github-ci.20236bca.js} +1 -1
- package/dist/assets/{gl.addde635.js → gl.1bee5350.js} +0 -0
- package/dist/assets/{glossary.6efd77ad.js → glossary.26a7ec6d.js} +1 -1
- package/dist/assets/{glossary.485603d9.js → glossary.c947165b.js} +1 -1
- package/dist/assets/go.6ecfe8d8.js +1 -0
- package/dist/assets/{groovy.d1f3a61a.js → groovy.494f3e93.js} +1 -1
- package/dist/assets/{haml.a346df44.js → haml.1f9900d3.js} +1 -1
- package/dist/assets/{handlebars.a4eff81f.js → handlebars.9bc2d0c9.js} +1 -1
- package/dist/assets/{haskell-literate.57a5243e.js → haskell-literate.5435a3e9.js} +1 -1
- package/dist/assets/{haskell.3acf2710.js → haskell.fc63f26c.js} +1 -1
- package/dist/assets/{haxe.bdf5968b.js → haxe.94355408.js} +1 -1
- package/dist/assets/{he.343cc1d8.js → he.6f56199f.js} +0 -0
- package/dist/assets/{hi.b7726273.js → hi.1ebe75fb.js} +0 -0
- package/dist/assets/hooks.619f1e3f.js +60 -0
- package/dist/assets/{hr.2709fc3c.js → hr.d0e09cc1.js} +0 -0
- package/dist/assets/{htmlembedded.03cf45db.js → htmlembedded.6ebc575e.js} +1 -1
- package/dist/assets/{htmlmixed.987f61e9.js → htmlmixed.fddfb235.js} +1 -1
- package/dist/assets/{http.a4c95466.js → http.de052b25.js} +1 -1
- package/dist/assets/{hu.ec48b74d.js → hu.971007ac.js} +0 -0
- package/dist/assets/{hy-am.30c58054.js → hy-am.b000430d.js} +0 -0
- package/dist/assets/{id.08bda718.js → id.1d3fb755.js} +0 -0
- package/dist/assets/{idl.2fcbfa33.js → idl.87aed386.js} +1 -1
- package/dist/assets/{iis.e068f41a.js → iis.28211ce4.js} +3 -3
- package/dist/assets/{import-export.d334c127.js → import-export.34657c23.js} +1 -1
- package/dist/assets/{index.fa57ca3f.js → index.01a3b92d.js} +1 -1
- package/dist/assets/index.04f4681f.js +1 -0
- package/dist/assets/{index.bce5f50d.js → index.062b5c4e.js} +1 -1
- package/dist/assets/{index.55a12dfb.js → index.0659d17a.js} +1 -1
- package/dist/assets/{index.b67f8116.js → index.0b930698.js} +1 -1
- package/dist/assets/{index.c35b11e6.js → index.107979f6.js} +1 -1
- package/dist/assets/{index.627523d7.js → index.172f9ed4.js} +1 -1
- package/dist/assets/{index.b43832c6.js → index.19099a8f.js} +1 -1
- package/dist/assets/{index.456ff0bd.js → index.201cdc9c.js} +1 -1
- package/dist/assets/{index.cc6496a8.js → index.243aba72.js} +1 -1
- package/dist/assets/{index.a5d15d7f.js → index.2451efbb.js} +1 -1
- package/dist/assets/{index.5f5bf5b9.js → index.2598162d.js} +1 -1
- package/dist/assets/{index.ebb444cf.js → index.2799a3fe.js} +1 -1
- package/dist/assets/{index.28aa754b.js → index.28d160f6.js} +1 -1
- package/dist/assets/{index.e3dcc63c.js → index.2aaac8bd.js} +1 -1
- package/dist/assets/{index.ef3faba8.js → index.2e81f792.js} +1 -1
- package/dist/assets/{index.2598f40b.js → index.2ef6ea17.js} +1 -1
- package/dist/assets/{index.ffc6c203.js → index.2f10fad2.js} +1 -1
- package/dist/assets/{index.56188e3b.js → index.3fc8253a.js} +1 -1
- package/dist/assets/{index.98713a56.js → index.46f1f69a.js} +1 -1
- package/dist/assets/{index.663b73a9.js → index.476a4006.js} +1 -1
- package/dist/assets/{index.d0fe3776.js → index.4d7f8516.js} +1 -1
- package/dist/assets/{index.2926879f.js → index.51da8268.js} +1 -1
- package/dist/assets/{index.4ef25ded.js → index.552cd104.js} +1 -1
- package/dist/assets/{index.5c54c17f.js → index.55a57945.js} +1 -1
- package/dist/assets/{index.16acfb90.js → index.55f95a2f.js} +1 -1
- package/dist/assets/{index.e6715953.js → index.5cee23da.js} +1 -1
- package/dist/assets/{index.cef58c9b.js → index.60e074b9.js} +1 -1
- package/dist/assets/{index.4fbaebb7.js → index.61092ae0.js} +1 -1
- package/dist/assets/{index.c9fb33ab.js → index.610f817e.js} +1 -1
- package/dist/assets/{index.a71fa74c.js → index.632970d8.js} +1 -1
- package/dist/assets/{index.14c720ba.js → index.640cb361.js} +1 -1
- package/dist/assets/{index.0e101049.js → index.64d37708.js} +1 -1
- package/dist/assets/{index.0295bc4b.js → index.65c58270.js} +1 -1
- package/dist/assets/{index.4100d6f0.js → index.6a44e176.js} +1 -1
- package/dist/assets/{index.55d799e2.js → index.6ff4b32e.js} +0 -0
- package/dist/assets/{index.bfd23a9c.js → index.70c01091.js} +1 -1
- package/dist/assets/{index.a8aa4628.js → index.733f5f4d.js} +1 -1
- package/dist/assets/{index.402d83c0.js → index.74e00be8.js} +1 -1
- package/dist/assets/{index.7fd5e2a0.js → index.76fb5db6.js} +1 -1
- package/dist/assets/{index.2ec06d14.js → index.777553ca.js} +1 -1
- package/dist/assets/{index.7b2f54b1.js → index.7993990d.js} +1 -1
- package/dist/assets/{index.af021d8a.js → index.7aa33ef4.js} +1 -1
- package/dist/assets/{index.6bebaca7.js → index.7b1ae0e3.js} +1 -1
- package/dist/assets/{index.1b3cf886.js → index.7c229bc2.js} +1 -1
- package/dist/assets/{index.b5ed5076.js → index.7c8f7bca.js} +1 -1
- package/dist/assets/{index.9b60cfa4.js → index.7fee55e4.js} +1 -1
- package/dist/assets/{index.d653bbf2.js → index.84179c87.js} +1 -1
- package/dist/assets/{index.4e2109fe.js → index.8849b22a.js} +1 -1
- package/dist/assets/{index.07257d01.js → index.888b390d.js} +1 -1
- package/dist/assets/{index.10f90411.js → index.899d7ee6.js} +1 -1
- package/dist/assets/{index.20b34242.js → index.903dc700.js} +1 -1
- package/dist/assets/{index.175a81f8.js → index.90f3c017.js} +1 -1
- package/dist/assets/index.917a76e9.entry.js +3403 -0
- package/dist/assets/{index.98ee194a.js → index.91fbefea.js} +1 -1
- package/dist/assets/index.9335a1f8.css +1 -0
- package/dist/assets/{index.94cf6fb4.js → index.998500ca.js} +1 -1
- package/dist/assets/{index.8493b2e7.js → index.9ac7a0ad.js} +1 -1
- package/dist/assets/{index.3d4cd218.js → index.9c1c3dcb.js} +1 -1
- package/dist/assets/{index.1b44d300.js → index.9f57589f.js} +1 -1
- package/dist/assets/{index.a9faa4e8.js → index.a0faf01e.js} +1 -1
- package/dist/assets/{index.60d33aa1.js → index.a2d2ff92.js} +1 -1
- package/dist/assets/{index.77260d1d.js → index.a3a6d636.js} +1 -1
- package/dist/assets/{index.1a65b37a.js → index.a8265354.js} +1 -1
- package/dist/assets/{index.93059741.js → index.a968c50b.js} +1 -1
- package/dist/assets/{index.7fe984e4.js → index.a977949d.js} +1 -1
- package/dist/assets/{index.ee22568a.js → index.ad338b08.js} +1 -1
- package/dist/assets/{index.c5266851.js → index.ad869bd2.js} +1 -1
- package/dist/assets/{index.c2e6211e.js → index.b22c6489.js} +1 -1
- package/dist/assets/{index.399c0d62.js → index.b62592c3.js} +1 -1
- package/dist/assets/{index.d8fe2ade.js → index.ba2729bd.js} +1 -1
- package/dist/assets/{index.d9285c22.js → index.c1fc17bc.js} +1 -1
- package/dist/assets/{index.85b9f847.js → index.c62ebcc5.js} +1 -1
- package/dist/assets/{index.cda6c2d6.js → index.c859516b.js} +1 -1
- package/dist/assets/{index.a40592f5.js → index.ca7fad51.js} +1 -1
- package/dist/assets/index.d3abd983.js +1 -0
- package/dist/assets/index.d87c135a.js +26 -0
- package/dist/assets/{index.6f497914.css → index.dbec7bd8.css} +1 -1
- package/dist/assets/{index.8a9f2874.js → index.df853543.js} +1 -1
- package/dist/assets/{index.3eda79ec.js → index.dff2a130.js} +1 -1
- package/dist/assets/{index.dc71b91a.js → index.e000ab7f.js} +0 -0
- package/dist/assets/{index.b702042e.js → index.e003b179.js} +1 -1
- package/dist/assets/{index.a3e085ea.js → index.e0295cb0.js} +1 -1
- package/dist/assets/{index.43fa9898.js → index.e282364f.js} +1 -1
- package/dist/assets/{index.a9b73f2c.js → index.e95f45d7.js} +1 -1
- package/dist/assets/{index.6f0b7179.js → index.e975fc43.js} +1 -1
- package/dist/assets/{index.7f906cfe.js → index.f1e5bfe4.js} +1 -1
- package/dist/assets/{index.7249f524.js → index.f3a47a7c.js} +1 -1
- package/dist/assets/{index.d060d5f6.js → index.f6326954.js} +1 -1
- package/dist/assets/{index.eedadecd.js → index.fc01b28f.js} +1 -1
- package/dist/assets/{index.c6e501ec.js → index.fe5f6362.js} +1 -1
- package/dist/assets/{input-rich-text-html.172a38cb.css → input-rich-text-html.0cdbc326.css} +1 -1
- package/dist/assets/{input-rich-text-html.75413785.js → input-rich-text-html.e69dfa94.js} +33 -33
- package/dist/assets/{insights.b3ba896c.js → insights.9f2c43c6.js} +1 -1
- package/dist/assets/{installation.2025f88b.js → installation.76fec85e.js} +1 -1
- package/dist/assets/{interfaces.606c790c.js → interfaces.a65a79df.js} +8 -8
- package/dist/assets/{introduction.527c3465.js → introduction.32669a19.js} +1 -1
- package/dist/assets/{introduction.41a72fb0.js → introduction.e626ca8d.js} +1 -1
- package/dist/assets/{introduction.ecd17b88.js → introduction.e73b1c6c.js} +1 -1
- package/dist/assets/introduction.eda1c2c4.js +90 -0
- package/dist/assets/{is.b36ebc71.js → is.655c0831.js} +0 -0
- package/dist/assets/it-IT.c08c5546.js +1 -0
- package/dist/assets/{it.3cadf6ad.js → it.fca4d703.js} +0 -0
- package/dist/assets/{items.d1f658a9.js → items.ee26fa45.js} +1 -1
- package/dist/assets/items.f5cdbca8.js +136 -0
- package/dist/assets/{ja.df6f4b08.js → ja.0d51d279.js} +0 -0
- package/dist/assets/{javascript-hint.db799360.js → javascript-hint.d74b2cdb.js} +1 -1
- package/dist/assets/{javascript.46c46918.js → javascript.b2307aa3.js} +1 -1
- package/dist/assets/{jinja2.71e29364.js → jinja2.4886bfd6.js} +1 -1
- package/dist/assets/{jsonlint.e8823cb8.js → jsonlint.aae0c1e4.js} +0 -0
- package/dist/assets/{jsx.9ae3ca09.js → jsx.8937d19d.js} +1 -1
- package/dist/assets/{julia.8b46f23e.js → julia.a7a31ee0.js} +1 -1
- package/dist/assets/{ka.805bf11c.js → ka.b19061bf.js} +0 -0
- package/dist/assets/{kk.a6e57d44.js → kk.f9f646d6.js} +0 -0
- package/dist/assets/{ko.08fe68a9.js → ko.bb48e2f9.js} +0 -0
- package/dist/assets/{layouts.0aa8d645.js → layouts.e590b93d.js} +9 -9
- package/dist/assets/{layouts.14b157dc.js → layouts.fc5fee9f.js} +1 -1
- package/dist/assets/{lb.e01f5df5.js → lb.7e51ca06.js} +0 -0
- package/dist/assets/{livescript.1c767a4c.js → livescript.9a710f73.js} +1 -1
- package/dist/assets/{localization.c89061c7.js → localization.998790e9.js} +1 -1
- package/dist/assets/{lt.0d291ae5.js → lt.90e26dcd.js} +0 -0
- package/dist/assets/{lua.42e69aa3.js → lua.d236c940.js} +1 -1
- package/dist/assets/{lv.00399f94.js → lv.c48afa11.js} +0 -0
- package/dist/assets/manual.363297f0.js +12 -0
- package/dist/assets/{mark-selection.16acf9dc.js → mark-selection.cb7787e2.js} +1 -1
- package/dist/assets/{match-highlighter.8f0791ef.js → match-highlighter.450b65c5.js} +1 -1
- package/dist/assets/{mathematica.6d38a8bc.js → mathematica.f8910884.js} +1 -1
- package/dist/assets/{mbox.04641caf.js → mbox.18380965.js} +1 -1
- package/dist/assets/migrations.5af99cef.js +19 -0
- package/dist/assets/{mirc.a748cdbe.js → mirc.31870a2d.js} +1 -1
- package/dist/assets/{mk.5d734698.js → mk.f9301845.js} +0 -0
- package/dist/assets/{mllike.78996bae.js → mllike.0e1e0100.js} +1 -1
- package/dist/assets/{modelica.e521b192.js → modelica.7ecb8aeb.js} +1 -1
- package/dist/assets/{modules.9b5ee510.js → modules.2403c678.js} +8 -8
- package/dist/assets/{ms.d459f765.js → ms.bea4163e.js} +0 -0
- package/dist/assets/{mscgen.4b8f9009.js → mscgen.c34e85a5.js} +1 -1
- package/dist/assets/{multiplex.c8ef0fcd.js → multiplex.225aced9.js} +1 -1
- package/dist/assets/{mumps.44c6f7dd.js → mumps.7a0dbb45.js} +1 -1
- package/dist/assets/{nb.a3febc82.js → nb.2f4ab1ed.js} +0 -0
- package/dist/assets/{ne.afdfe3bf.js → ne.62693259.js} +0 -0
- package/dist/assets/{nginx.0aef90d9.js → nginx.1bc410b6.js} +1 -1
- package/dist/assets/{nl.12cdd5b8.js → nl.a58ee8a1.js} +0 -0
- package/dist/assets/{nn.535723b4.js → nn.97ead2b5.js} +0 -0
- package/dist/assets/notifications.152d86b7.js +153 -0
- package/dist/assets/{nsis.21597a35.js → nsis.04a63636.js} +1 -1
- package/dist/assets/{ntriples.a9ce3eee.js → ntriples.0d5ceb8c.js} +1 -1
- package/dist/assets/{octave.e4e6969c.js → octave.ce59fab4.js} +1 -1
- package/dist/assets/operations.9b3b2514.js +169 -0
- package/dist/assets/{operations.46679bea.js → operations.f00b8c11.js} +1 -1
- package/dist/assets/{overlay.725bd47b.js → overlay.7f8598fd.js} +1 -1
- package/dist/assets/{overview.3616b560.js → overview.288d5f54.js} +1 -1
- package/dist/assets/{overview.6438dc44.js → overview.c3e64ee1.js} +1 -1
- package/dist/assets/{overview.3c9f8f3d.js → overview.d2dd9f17.js} +1 -1
- package/dist/assets/{oz.439981ca.js → oz.7763d971.js} +1 -1
- package/dist/assets/{panels.570ee526.js → panels.f1f6334b.js} +7 -7
- package/dist/assets/{pascal.e63a97cf.js → pascal.fa5fc379.js} +1 -1
- package/dist/assets/{pegjs.9b76593b.js → pegjs.5286f797.js} +1 -1
- package/dist/assets/{perl.e5aa6f87.js → perl.7bceb7a2.js} +1 -1
- package/dist/assets/permissions.de41ff3d.js +178 -0
- package/dist/assets/{php.d553fa6c.js → php.fc781bce.js} +1 -1
- package/dist/assets/{pig.657ad6df.js → pig.a02372ee.js} +1 -1
- package/dist/assets/{pinia.256cc3da.entry.js → pinia.b8e2dbe3.entry.js} +1 -1
- package/dist/assets/pl-PL.6e87b518.js +1 -0
- package/dist/assets/{pl.86440e6e.js → pl.0bbdb5d7.js} +0 -0
- package/dist/assets/plesk.0ef5ab4c.js +27 -0
- package/dist/assets/{powershell.d67ba3f4.js → powershell.5a697151.js} +1 -1
- package/dist/assets/{presets-bookmarks.522baf53.js → presets-bookmarks.5ef79225.js} +1 -1
- package/dist/assets/presets.db317f9f.js +164 -0
- package/dist/assets/project-settings.e940a11b.js +1 -0
- package/dist/assets/{projects.1ea6a392.js → projects.5cc2ad0c.js} +1 -1
- package/dist/assets/{properties.da88b13f.js → properties.7b2f128a.js} +1 -1
- package/dist/assets/{protobuf.4d5afee3.js → protobuf.4e0b6dfc.js} +1 -1
- package/dist/assets/pt-BR.02851ce6.js +1 -0
- package/dist/assets/{pt-PT.fae0fcc3.js → pt-PT.f5bc9b8e.js} +1 -1
- package/dist/assets/{pt-br.cc4b694f.js → pt-br.ce7dbf21.js} +0 -0
- package/dist/assets/{pt.73886c02.js → pt.0d25d212.js} +0 -0
- package/dist/assets/{pug.3f42b721.js → pug.4829baa5.js} +1 -1
- package/dist/assets/{puppet.c79d85fc.js → puppet.0cc3dfc6.js} +1 -1
- package/dist/assets/{python.d6ada07e.js → python.97758a3a.js} +1 -1
- package/dist/assets/{q.1a68bd88.js → q.f7c0a7a0.js} +1 -1
- package/dist/assets/{query.8abea6de.js → query.f187b00c.js} +40 -40
- package/dist/assets/{quickstart.75164dd7.js → quickstart.62cbd1cd.js} +8 -8
- package/dist/assets/quickstart.8d5c02c2.js +20 -0
- package/dist/assets/{r.0c2eb3c2.js → r.65bf4228.js} +1 -1
- package/dist/assets/relations.a37c187d.js +115 -0
- package/dist/assets/{relationships.cbc9b1c5.js → relationships.5cda18e3.js} +1 -1
- package/dist/assets/{resources.25cb1e34.js → resources.540de098.js} +1 -1
- package/dist/assets/revisions.e044726e.js +40 -0
- package/dist/assets/{ro.c45ba3d9.js → ro.b6bf02de.js} +0 -0
- package/dist/assets/roles.83da9d9c.js +171 -0
- package/dist/assets/{rpm.bf07aaab.js → rpm.4485b248.js} +1 -1
- package/dist/assets/{rst.00e6f3ec.js → rst.9bf2ecf3.js} +1 -1
- package/dist/assets/ru-RU.1807a64c.js +1 -0
- package/dist/assets/{ru.638f4fa4.js → ru.ff0e24aa.js} +0 -0
- package/dist/assets/{ruby.a058e7d1.js → ruby.3f0bf45a.js} +1 -1
- package/dist/assets/running-locally.31538f1b.js +27 -0
- package/dist/assets/{runtime-core.esm-bundler.b1f35d24.js → runtime-core.esm-bundler.e3d5f5b7.js} +1 -1
- package/dist/assets/{rust.f7ca883b.js → rust.4520397b.js} +1 -1
- package/dist/assets/{sas.f9db0ec1.js → sas.94641767.js} +1 -1
- package/dist/assets/{sass.6c26d08e.js → sass.ebdaaefc.js} +1 -1
- package/dist/assets/scheme.9d08c24e.js +1 -0
- package/dist/assets/sdk.297840b0.js +393 -0
- package/dist/assets/{security.1963da73.js → security.c18b2f34.js} +1 -1
- package/dist/assets/server.d8bb0f4c.js +114 -0
- package/dist/assets/settings.65d8a9b5.js +51 -0
- package/dist/assets/{settings.a02abd85.js → settings.6c879748.js} +1 -1
- package/dist/assets/{shell.b593f3c7.js → shell.9d77a8b4.js} +1 -1
- package/dist/assets/{show-hint.252396d2.js → show-hint.0e85091b.js} +1 -1
- package/dist/assets/{sieve.b20bbc45.js → sieve.0bb4a673.js} +1 -1
- package/dist/assets/simple.1606e663.js +1 -0
- package/dist/assets/{sk.883343ad.js → sk.ff92f7ac.js} +0 -0
- package/dist/assets/{sl.9c1d7271.js → sl.29a98aa1.js} +0 -0
- package/dist/assets/{slim.2a6f8eee.js → slim.87008de5.js} +1 -1
- package/dist/assets/{smalltalk.9bee6f9b.js → smalltalk.fe7d0a09.js} +1 -1
- package/dist/assets/{smarty.be5c58b8.js → smarty.fefb4633.js} +1 -1
- package/dist/assets/solr.3d0019cc.js +1 -0
- package/dist/assets/{soy.0ff77af9.js → soy.ca07f4e2.js} +1 -1
- package/dist/assets/{sparql.9f5e3d7d.js → sparql.5d956528.js} +1 -1
- package/dist/assets/{spreadsheet.062b3700.js → spreadsheet.5beb51ed.js} +1 -1
- package/dist/assets/{sq.94f802c2.js → sq.74e96d5e.js} +0 -0
- package/dist/assets/{sql.a5128e43.js → sql.6d3b3091.js} +1 -1
- package/dist/assets/{sr-cyrl.cf2bde33.js → sr-cyrl.02689042.js} +0 -0
- package/dist/assets/{sr.ae9ed7f6.js → sr.d758ce65.js} +0 -0
- package/dist/assets/{sso-examples.048b39c5.js → sso-examples.a785e77c.js} +1 -1
- package/dist/assets/{sso.70be105f.js → sso.36061e28.js} +6 -6
- package/dist/assets/{stex.0331c80e.js → stex.0fe2ac60.js} +1 -1
- package/dist/assets/{stylus.6423d65d.js → stylus.e000276e.js} +1 -1
- package/dist/assets/{support.fce2dba5.js → support.a149b5a4.js} +1 -1
- package/dist/assets/{sv.4d9818be.js → sv.424581fc.js} +0 -0
- package/dist/assets/{swift.979a2826.js → swift.486a5a13.js} +1 -1
- package/dist/assets/{ta-in.58b9457c.js → ta-in.266b59a6.js} +0 -0
- package/dist/assets/{tcl.fa1b798c.js → tcl.b3e3538d.js} +1 -1
- package/dist/assets/{teams.44eb670e.js → teams.86e324d5.js} +1 -1
- package/dist/assets/{textile.9dbd9b93.js → textile.b258ec97.js} +1 -1
- package/dist/assets/{th.2e10ae87.js → th.503d2b5a.js} +0 -0
- package/dist/assets/{themes.e4a7762f.js → themes.3d8b2b78.js} +4 -4
- package/dist/assets/{tiddlywiki.fb030aa9.js → tiddlywiki.f7d8e471.js} +1 -1
- package/dist/assets/{tiki.2e2e82c0.js → tiki.70203351.js} +1 -1
- package/dist/assets/{toml.0c911c34.js → toml.86996664.js} +1 -1
- package/dist/assets/{tornado.466faa98.js → tornado.95569557.js} +1 -1
- package/dist/assets/{tr.56778c02.js → tr.5f7e8301.js} +0 -0
- package/dist/assets/{translation-strings.4ed25965.js → translation-strings.2d32b80f.js} +1 -1
- package/dist/assets/{translations.cf2353ca.js → translations.9a0e8cc4.js} +1 -1
- package/dist/assets/{triggers.05092cdf.js → triggers.49fa8cca.js} +1 -1
- package/dist/assets/{troff.398ba40d.js → troff.e305afe5.js} +1 -1
- package/dist/assets/{ttcn-cfg.7c37ebe0.js → ttcn-cfg.befad34e.js} +1 -1
- package/dist/assets/{ttcn.58e768c8.js → ttcn.3f026b3f.js} +1 -1
- package/dist/assets/{turtle.2b65ee77.js → turtle.0a719577.js} +1 -1
- package/dist/assets/{twig.0cf35761.js → twig.473996c3.js} +1 -1
- package/dist/assets/ubuntu.bd27c73d.js +11 -0
- package/dist/assets/{ug.6363a215.js → ug.b3647d71.js} +0 -0
- package/dist/assets/{uk.5a9060bd.js → uk.d81573f6.js} +0 -0
- package/dist/assets/{upgrades-migrations.9218bbe9.js → upgrades-migrations.e91a553b.js} +1 -1
- package/dist/assets/use-sync.138c50b0.js +28 -0
- package/dist/assets/{user-directory.3daaa818.js → user-directory.8d94737c.js} +1 -1
- package/dist/assets/{users-roles-permissions.6e18f7ca.js → users-roles-permissions.d63af527.js} +1 -1
- package/dist/assets/users.9e656e05.js +252 -0
- package/dist/assets/utilities.4a346b3b.js +74 -0
- package/dist/assets/{uz.687d7fbd.js → uz.d1d62588.js} +0 -0
- package/dist/assets/{vb.269200a5.js → vb.34ccd0bd.js} +1 -1
- package/dist/assets/{vbscript.b9c30330.js → vbscript.1e31724d.js} +1 -1
- package/dist/assets/{velocity.a54e5f76.js → velocity.3076e2d2.js} +1 -1
- package/dist/assets/{verilog.fd6a1be7.js → verilog.d290c732.js} +1 -1
- package/dist/assets/{vhdl.846afe81.js → vhdl.bc9a1438.js} +1 -1
- package/dist/assets/{vi.2bf54ce7.js → vi.7af054bb.js} +0 -0
- package/dist/assets/{vue-i18n.ecb0af35.entry.js → vue-i18n.3cc3a25f.entry.js} +1 -1
- package/dist/assets/{vue-router.8987d576.entry.js → vue-router.1ad5ff1f.entry.js} +2 -2
- package/dist/assets/{vue.74e2af44.js → vue.08b7467a.js} +1 -1
- package/dist/assets/{vue.1f4d921a.entry.js → vue.f73b7cd5.entry.js} +1 -1
- package/dist/assets/{vue.runtime.esm-bundler.ac4ff7af.js → vue.runtime.esm-bundler.ee2a778f.js} +1 -1
- package/dist/assets/{wast.38b3f34b.js → wast.96359ee5.js} +1 -1
- package/dist/assets/{webhooks.01ddb390.js → webhooks.235f76fb.js} +1 -1
- package/dist/assets/webhooks.256ac76b.js +147 -0
- package/dist/assets/{webidl.481665e3.js → webidl.9f8f6f0f.js} +1 -1
- package/dist/assets/{xquery.e254ba63.js → xquery.0ea30239.js} +1 -1
- package/dist/assets/{yacas.fc329640.js → yacas.6a86aa92.js} +1 -1
- package/dist/assets/{yaml-frontmatter.84cccda6.js → yaml-frontmatter.d4e317c1.js} +1 -1
- package/dist/assets/{yaml.3a95e8e9.js → yaml.3914e7da.js} +1 -1
- package/dist/assets/{z80.691a0cb9.js → z80.f974aea9.js} +1 -1
- package/dist/assets/zh-CN.5f89875e.js +1 -0
- package/dist/assets/{zh-cn.aac76920.js → zh-cn.fea96989.js} +0 -0
- package/dist/assets/{zh-tw.d89266cf.js → zh-tw.31f5361f.js} +0 -0
- package/dist/index.html +8 -8
- package/package.json +133 -119
- package/dist/assets/@directus_extensions-sdk.016f1070.entry.js +0 -1
- package/dist/assets/activity.fbd319d5.js +0 -80
- package/dist/assets/ar-SA.215069dc.js +0 -1
- package/dist/assets/authentication.bc20bce5.js +0 -73
- package/dist/assets/avatar-placeholder.446bf113.svg +0 -6
- package/dist/assets/codebase-overview.b46635f9.js +0 -1
- package/dist/assets/collections.80e4a52c.js +0 -106
- package/dist/assets/creating-extensions.9a98925a.js +0 -11
- package/dist/assets/cs-CZ.a3c83b73.js +0 -1
- package/dist/assets/de-DE.350023db.js +0 -1
- package/dist/assets/el-GR.103ebf8d.js +0 -1
- package/dist/assets/endpoints.2c9172db.js +0 -27
- package/dist/assets/es-419.10094709.js +0 -1
- package/dist/assets/es-CL.7f44ec7c.js +0 -1
- package/dist/assets/es-MX.17370b17.js +0 -1
- package/dist/assets/faq.63c79c18.js +0 -2
- package/dist/assets/fields.715d4591.js +0 -135
- package/dist/assets/files.7c2ccfe2.js +0 -189
- package/dist/assets/filter-rules.056b97be.js +0 -76
- package/dist/assets/flows.38f60cc8.js +0 -172
- package/dist/assets/forth.5d8db187.js +0 -1
- package/dist/assets/fr-CA.0e824ae4.js +0 -1
- package/dist/assets/go.18ea1afe.js +0 -1
- package/dist/assets/hooks.f7efe9af.js +0 -60
- package/dist/assets/index.02dcddad.entry.js +0 -3402
- package/dist/assets/index.087465cd.css +0 -1
- package/dist/assets/index.4254793b.js +0 -26
- package/dist/assets/index.63d1f569.js +0 -1
- package/dist/assets/introduction.5566b96e.js +0 -90
- package/dist/assets/it-IT.58422a56.js +0 -1
- package/dist/assets/items.d9c6a0b4.js +0 -136
- package/dist/assets/manual.20d730b3.js +0 -12
- package/dist/assets/migrations.f13ec64d.js +0 -19
- package/dist/assets/notifications.674ee6f9.js +0 -153
- package/dist/assets/operations.9995851b.js +0 -169
- package/dist/assets/permissions.768d1878.js +0 -178
- package/dist/assets/pl-PL.80cfbed6.js +0 -1
- package/dist/assets/plesk.b0ee9a9a.js +0 -27
- package/dist/assets/presets.d902ebfa.js +0 -164
- package/dist/assets/project-settings.1f95b799.js +0 -1
- package/dist/assets/pt-BR.40750500.js +0 -1
- package/dist/assets/quickstart.9985cb15.js +0 -20
- package/dist/assets/relations.9011b2b5.js +0 -115
- package/dist/assets/revisions.c90ecb76.js +0 -40
- package/dist/assets/roles.22f7aa37.js +0 -171
- package/dist/assets/ru-RU.35703ea4.js +0 -1
- package/dist/assets/running-locally.ce0a8200.js +0 -26
- package/dist/assets/scheme.b19aee0d.js +0 -1
- package/dist/assets/sdk.916109ed.js +0 -393
- package/dist/assets/server.afec52fc.js +0 -114
- package/dist/assets/settings.835be62f.js +0 -51
- package/dist/assets/simple.8b298831.js +0 -1
- package/dist/assets/solr.49b61be0.js +0 -1
- package/dist/assets/ubuntu.35dc97df.js +0 -11
- package/dist/assets/use-sync.c0f4dfab.js +0 -28
- package/dist/assets/users.4f11a7c5.js +0 -252
- package/dist/assets/utilities.0e0d0ace.js +0 -74
- package/dist/assets/webhooks.00ee297b.js +0 -147
- package/dist/assets/zh-CN.432cf71e.js +0 -1
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import{a as o,o as a,b as c,w as u,g as e,B as l}from"./runtime-core.esm-bundler.b1f35d24.js";const r=e("div",{class:"markdown-body"},[e("blockquote",null,[e("p",null,"Custom API Hooks allow running custom logic when a specified event occurs within your project. There are different types of events to choose from.")]),e("h2",{id:"extension-entrypoint",tabindex:"-1"},[l("Extension Entrypoint "),e("a",{class:"header-anchor",href:"#extension-entrypoint"},"#")]),e("p",null,[l("The entrypoint of your hook is the "),e("code",null,"index"),l(" file inside the "),e("code",null,"src/"),l(" folder of your extension package. It exports a register function to register one or more event listeners.")]),e("p",null,"Example of an entrypoint:"),e("pre",null,[e("code",{class:"language-js"},[e("span",{class:"hljs-keyword"},"export"),l(),e("span",{class:"hljs-keyword"},"default"),l(` ({ filter, action }) => {
|
|
2
|
-
filter(`),e("span",{class:"hljs-string"},"'items.create'"),l(", "),e("span",{class:"hljs-function"},"() =>"),l(` {
|
|
3
|
-
`),e("span",{class:"hljs-built_in"},"console"),l(".log("),e("span",{class:"hljs-string"},"'Creating Item!'"),l(`);
|
|
4
|
-
});
|
|
5
|
-
|
|
6
|
-
action(`),e("span",{class:"hljs-string"},"'items.create'"),l(", "),e("span",{class:"hljs-function"},"() =>"),l(` {
|
|
7
|
-
`),e("span",{class:"hljs-built_in"},"console"),l(".log("),e("span",{class:"hljs-string"},"'Item created!'"),l(`);
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
`)])]),e("h2",{id:"events",tabindex:"-1"},[l("Events "),e("a",{class:"header-anchor",href:"#events"},"#")]),e("p",null,"Your hook can trigger on a variety of different events. An event is defined by its type and its name."),e("p",null,"There are four event types to choose from:"),e("ul",null,[e("li",null,[e("a",{href:"#filter"},"Filter")]),e("li",null,[e("a",{href:"#action"},"Action")]),e("li",null,[e("a",{href:"#init"},"Init")]),e("li",null,[e("a",{href:"#schedule"},"Schedule")])]),e("p",null,"Use filter hooks when you want the hook to fire before the event. Use action hooks when you want the hook to fire after the event."),e("h3",{id:"filter",tabindex:"-1"},[l("Filter "),e("a",{class:"header-anchor",href:"#filter"},"#")]),e("p",null,"Filter hooks act on the event\u2019s payload before the event is fired. They allow you to check, modify, or cancel an event."),e("p",null,[l("Below is an example of canceling a "),e("code",null,"create"),l(" event by throwing a standard Directus exception.")]),e("pre",null,[e("code",{class:"language-js"},[e("span",{class:"hljs-keyword"},"export"),l(),e("span",{class:"hljs-keyword"},"default"),l(` ({ filter }, { exceptions }) => {
|
|
11
|
-
`),e("span",{class:"hljs-keyword"},"const"),l(` { InvalidPayloadException } = exceptions;
|
|
12
|
-
|
|
13
|
-
filter(`),e("span",{class:"hljs-string"},"'items.create'"),l(", "),e("span",{class:"hljs-keyword"},"async"),l(` (input) => {
|
|
14
|
-
`),e("span",{class:"hljs-keyword"},"if"),l(` (LOGIC_TO_CANCEL_EVENT) {
|
|
15
|
-
`),e("span",{class:"hljs-keyword"},"throw"),l(),e("span",{class:"hljs-keyword"},"new"),l(` InvalidPayloadException(WHAT_IS_WRONG);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
`),e("span",{class:"hljs-keyword"},"return"),l(` input;
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
`)])]),e("p",null,"The filter register function receives two parameters:"),e("ul",null,[e("li",null,"The event name"),e("li",null,"A callback function that is executed whenever the event fires.")]),e("p",null,"The callback function itself receives three parameters:"),e("ul",null,[e("li",null,"The modifiable payload"),e("li",null,"An event-specific meta object"),e("li",null,"A context object")]),e("p",null,"The context object has the following properties:"),e("ul",null,[e("li",null,[e("code",null,"database"),l(" \u2014 The current database transaction")]),e("li",null,[e("code",null,"schema"),l(" \u2014 The current API schema in use")]),e("li",null,[e("code",null,"accountability"),l(" \u2014 Information about the current user")])]),e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Performance"),e("p",null,[l("Filters can impact performance when not carefully implemented, as they are executed in a blocking manner. This applies in particular to filters firing on "),e("code",null,"read"),l(" events, where a single request can result in a large amount of database reads.")])]),e("h3",{id:"action",tabindex:"-1"},[l("Action "),e("a",{class:"header-anchor",href:"#action"},"#")]),e("p",null,"Action hooks execute after a defined event and receive data related to the event. Use action hooks when you need to automate responses to CRUD events on items or server actions."),e("p",null,"The action register function receives two parameters:"),e("ul",null,[e("li",null,"The event name"),e("li",null,"A callback function that is executed whenever the event fires.")]),e("p",null,"The callback function itself receives two parameters:"),e("ul",null,[e("li",null,"An event-specific meta object"),e("li",null,"A context object")]),e("p",null,"The context object has the following properties:"),e("ul",null,[e("li",null,[e("code",null,"database"),l(" \u2014 The current database transaction")]),e("li",null,[e("code",null,"schema"),l(" \u2014 The current API schema in use")]),e("li",null,[e("code",null,"accountability"),l(" \u2014 Information about the current user")])]),e("h3",{id:"init",tabindex:"-1"},[l("Init "),e("a",{class:"header-anchor",href:"#init"},"#")]),e("p",null,"Init hooks execute at a defined point within the lifecycle of Directus. Use init hook objects to inject logic into internal services."),e("p",null,"The init register function receives two parameters:"),e("ul",null,[e("li",null,"The event name"),e("li",null,"A callback function that is executed whenever the event fires.")]),e("p",null,"The callback function itself receives one parameter:"),e("ul",null,[e("li",null,"An event-specific meta object")]),e("h3",{id:"schedule",tabindex:"-1"},[l("Schedule "),e("a",{class:"header-anchor",href:"#schedule"},"#")]),e("p",null,[l("Schedule hooks execute at certain points in time rather than when Directus performs a specific action. This is supported through "),e("a",{href:"https://www.npmjs.com/package/node-cron",target:"_blank",rel:"noopener noreferrer"},[e("code",null,"node-cron")]),l(".")]),e("p",null,[l("To set up a scheduled event, provide a cron statement as the first parameter to the "),e("code",null,"schedule()"),l(" function. For example "),e("code",null,"schedule('15 14 1 * *', <...>)"),l(" (at 14:15 on day-of-month 1) or "),e("code",null,"schedule('5 4 * * sun', <...>)"),l(" (at 04:05 on Sunday).")]),e("p",null,"Below is an example of registering a schedule hook."),e("pre",null,[e("code",{class:"language-js"},[e("span",{class:"hljs-keyword"},"import"),l(" axios "),e("span",{class:"hljs-keyword"},"from"),l(),e("span",{class:"hljs-string"},"'axios'"),l(`;
|
|
22
|
-
|
|
23
|
-
`),e("span",{class:"hljs-keyword"},"export"),l(),e("span",{class:"hljs-keyword"},"default"),l(` ({ schedule }) => {
|
|
24
|
-
schedule(`),e("span",{class:"hljs-string"},"'*/15 * * * *'"),l(", "),e("span",{class:"hljs-keyword"},"async"),l(` () => {
|
|
25
|
-
`),e("span",{class:"hljs-keyword"},"await"),l(" axios.post("),e("span",{class:"hljs-string"},"'http://example.com/webhook'"),l(", { "),e("span",{class:"hljs-attr"},"message"),l(": "),e("span",{class:"hljs-string"},"'Another 15 minutes passed...'"),l(` });
|
|
26
|
-
});
|
|
27
|
-
};
|
|
28
|
-
`)])]),e("h2",{id:"available-events",tabindex:"-1"},[l("Available Events "),e("a",{class:"header-anchor",href:"#available-events"},"#")]),e("h3",{id:"filter-events",tabindex:"-1"},[l("Filter Events "),e("a",{class:"header-anchor",href:"#filter-events"},"#")]),e("table",null,[e("thead",null,[e("tr",null,[e("th",null,"Name"),e("th",null,"Payload"),e("th",null,"Meta")])]),e("tbody",null,[e("tr",null,[e("td",null,[e("code",null,"request.not_found")]),e("td",null,[e("code",null,"false")]),e("td",null,[e("code",null,"request"),l(", "),e("code",null,"response")])]),e("tr",null,[e("td",null,[e("code",null,"request.error")]),e("td",null,"The request errors"),e("td",null,"\u2013")]),e("tr",null,[e("td",null,[e("code",null,"database.error")]),e("td",null,"The database error"),e("td",null,[e("code",null,"client")])]),e("tr",null,[e("td",null,[e("code",null,"auth.login")]),e("td",null,"The login payload"),e("td",null,[e("code",null,"status"),l(", "),e("code",null,"user"),l(", "),e("code",null,"provider")])]),e("tr",null,[e("td",null,[e("code",null,"auth.jwt")]),e("td",null,"The auth token"),e("td",null,[e("code",null,"status"),l(", "),e("code",null,"user"),l(", "),e("code",null,"provider"),l(", "),e("code",null,"type")])]),e("tr",null,[e("td",null,[e("code",null,"authenticate")]),e("td",null,"The empty accountability object"),e("td",null,[e("code",null,"req")])]),e("tr",null,[e("td",null,[e("code",null,"(<collection>.)items.read")]),e("td",null,"The read item"),e("td",null,[e("code",null,"query"),l(", "),e("code",null,"collection")])]),e("tr",null,[e("td",null,[e("code",null,"(<collection>.)items.create")]),e("td",null,"The new item"),e("td",null,[e("code",null,"collection")])]),e("tr",null,[e("td",null,[e("code",null,"(<collection>.)items.update")]),e("td",null,"The updated item"),e("td",null,[e("code",null,"keys"),l(", "),e("code",null,"collection")])]),e("tr",null,[e("td",null,[e("code",null,"(<collection>.)items.delete")]),e("td",null,"The keys of the item"),e("td",null,[e("code",null,"collection")])]),e("tr",null,[e("td",null,[e("code",null,"<system-collection>.create")]),e("td",null,"The new item"),e("td",null,[e("code",null,"collection")])]),e("tr",null,[e("td",null,[e("code",null,"<system-collection>.update")]),e("td",null,"The updated item"),e("td",null,[e("code",null,"keys"),l(", "),e("code",null,"collection")])]),e("tr",null,[e("td",null,[e("code",null,"<system-collection>.delete")]),e("td",null,"The keys of the item"),e("td",null,[e("code",null,"collection")])])])]),e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"System Collections"),e("p",null,[e("code",null,"<system-collection>"),l(" should be replaced with one of the system collection names "),e("code",null,"activity"),l(", "),e("code",null,"collections"),l(", "),e("code",null,"fields"),l(", "),e("code",null,"files"),l(" (except create/update), "),e("code",null,"folders"),l(", "),e("code",null,"permissions"),l(", "),e("code",null,"presets"),l(", "),e("code",null,"relations"),l(", "),e("code",null,"revisions"),l(", "),e("code",null,"roles"),l(", "),e("code",null,"settings"),l(", "),e("code",null,"users"),l(" or "),e("code",null,"webhooks"),l(".")])]),e("h3",{id:"action-events",tabindex:"-1"},[l("Action Events "),e("a",{class:"header-anchor",href:"#action-events"},"#")]),e("table",null,[e("thead",null,[e("tr",null,[e("th",null,"Name"),e("th",null,"Meta")])]),e("tbody",null,[e("tr",null,[e("td",null,[e("code",null,"server.start")]),e("td",null,[e("code",null,"server")])]),e("tr",null,[e("td",null,[e("code",null,"server.stop")]),e("td",null,[e("code",null,"server")])]),e("tr",null,[e("td",null,[e("code",null,"response")]),e("td",null,[e("code",null,"request"),l(", "),e("code",null,"response"),l(", "),e("code",null,"ip"),l(", "),e("code",null,"duration"),l(", "),e("code",null,"finished")])]),e("tr",null,[e("td",null,[e("code",null,"auth.login")]),e("td",null,[e("code",null,"payload"),l(", "),e("code",null,"status"),l(", "),e("code",null,"user"),l(", "),e("code",null,"provider")])]),e("tr",null,[e("td",null,[e("code",null,"files.upload")]),e("td",null,[e("code",null,"payload"),l(", "),e("code",null,"key"),l(", "),e("code",null,"collection")])]),e("tr",null,[e("td",null,[e("code",null,"(<collection>.)items.read")]),e("td",null,[e("code",null,"payload"),l(", "),e("code",null,"query"),l(", "),e("code",null,"collection")])]),e("tr",null,[e("td",null,[e("code",null,"(<collection>.)items.create")]),e("td",null,[e("code",null,"payload"),l(", "),e("code",null,"key"),l(", "),e("code",null,"collection")])]),e("tr",null,[e("td",null,[e("code",null,"(<collection>.)items.update")]),e("td",null,[e("code",null,"payload"),l(", "),e("code",null,"keys"),l(", "),e("code",null,"collection")])]),e("tr",null,[e("td",null,[e("code",null,"(<collection>.)items.delete")]),e("td",null,[e("code",null,"keys"),l(", "),e("code",null,"collection")])]),e("tr",null,[e("td",null,[e("code",null,"(<collection>.)items.sort")]),e("td",null,[e("code",null,"collection"),l(", "),e("code",null,"item"),l(", "),e("code",null,"to")])]),e("tr",null,[e("td",null,[e("code",null,"<system-collection>.create")]),e("td",null,[e("code",null,"payload"),l(", "),e("code",null,"key"),l(", "),e("code",null,"collection")])]),e("tr",null,[e("td",null,[e("code",null,"<system-collection>.update")]),e("td",null,[e("code",null,"payload"),l(", "),e("code",null,"keys"),l(", "),e("code",null,"collection")])]),e("tr",null,[e("td",null,[e("code",null,"<system-collection>.delete")]),e("td",null,[e("code",null,"keys"),l(", "),e("code",null,"collection")])])])]),e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"System Collections"),e("p",null,[e("code",null,"<system-collection>"),l(" should be replaced with one of the system collection names "),e("code",null,"activity"),l(", "),e("code",null,"collections"),l(", "),e("code",null,"fields"),l(", "),e("code",null,"files"),l(" (except create/update), "),e("code",null,"folders"),l(", "),e("code",null,"permissions"),l(", "),e("code",null,"presets"),l(", "),e("code",null,"relations"),l(", "),e("code",null,"revisions"),l(", "),e("code",null,"roles"),l(", "),e("code",null,"settings"),l(", "),e("code",null,"users"),l(" or "),e("code",null,"webhooks"),l(".")])]),e("h3",{id:"init-events",tabindex:"-1"},[l("Init Events "),e("a",{class:"header-anchor",href:"#init-events"},"#")]),e("table",null,[e("thead",null,[e("tr",null,[e("th",null,"Name"),e("th",null,"Meta")])]),e("tbody",null,[e("tr",null,[e("td",null,[e("code",null,"cli.before")]),e("td",null,[e("code",null,"program")])]),e("tr",null,[e("td",null,[e("code",null,"cli.after")]),e("td",null,[e("code",null,"program")])]),e("tr",null,[e("td",null,[e("code",null,"app.before")]),e("td",null,[e("code",null,"app")])]),e("tr",null,[e("td",null,[e("code",null,"app.after")]),e("td",null,[e("code",null,"app")])]),e("tr",null,[e("td",null,[e("code",null,"routes.before")]),e("td",null,[e("code",null,"app")])]),e("tr",null,[e("td",null,[e("code",null,"routes.after")]),e("td",null,[e("code",null,"app")])]),e("tr",null,[e("td",null,[e("code",null,"routes.custom.before")]),e("td",null,[e("code",null,"app")])]),e("tr",null,[e("td",null,[e("code",null,"routes.custom.after")]),e("td",null,[e("code",null,"app")])]),e("tr",null,[e("td",null,[e("code",null,"middlewares.before")]),e("td",null,[e("code",null,"app")])]),e("tr",null,[e("td",null,[e("code",null,"middlewares.after")]),e("td",null,[e("code",null,"app")])])])]),e("h2",{id:"register-function",tabindex:"-1"},[l("Register Function "),e("a",{class:"header-anchor",href:"#register-function"},"#")]),e("p",null,"The register function receives an object containing the type-specific register functions as the first parameter:"),e("ul",null,[e("li",null,[e("code",null,"filter"),l(" \u2014 Listen for a filter event")]),e("li",null,[e("code",null,"action"),l(" \u2014 Listen for an action event")]),e("li",null,[e("code",null,"init"),l(" \u2014 Listen for an init event")]),e("li",null,[e("code",null,"schedule"),l(" \u2014 Execute a function at certain points in time")])]),e("p",null,"The second parameter is a context object with the following properties:"),e("ul",null,[e("li",null,[e("code",null,"services"),l(" \u2014 All API internal services")]),e("li",null,[e("code",null,"exceptions"),l(" \u2014 API exception objects that can be used for throwing \u201Cproper\u201D errors")]),e("li",null,[e("code",null,"database"),l(" \u2014 Knex instance that is connected to the current database")]),e("li",null,[e("code",null,"getSchema"),l(" \u2014 Async function that reads the full available schema for use in services")]),e("li",null,[e("code",null,"env"),l(" \u2014 Parsed environment variables")]),e("li",null,[e("code",null,"logger"),l(" \u2014 "),e("a",{href:"https://github.com/pinojs/pino",target:"_blank",rel:"noopener noreferrer"},"Pino"),l(" instance.")]),e("li",null,[e("code",null,"emitter"),l(" \u2014 "),e("a",{href:"https://github.com/directus/directus/blob/main/api/src/emitter.ts",target:"_blank",rel:"noopener noreferrer"},"Event emitter"),l(" instance that can be used to trigger custom events for other extensions.")])]),e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Event loop"),e("p",null,"When implementing custom events using the emitter make sure you never directly or indirectly emit the same event your hook is currently handling as that would result in an infinite loop!")]),e("h2",{id:"example%3A-sync-with-external",tabindex:"-1"},[l("Example: Sync with External "),e("a",{class:"header-anchor",href:"#example%3A-sync-with-external"},"#")]),e("pre",null,[e("code",{class:"language-js"},[e("span",{class:"hljs-keyword"},"import"),l(" axios "),e("span",{class:"hljs-keyword"},"from"),l(),e("span",{class:"hljs-string"},"'axios'"),l(`;
|
|
29
|
-
|
|
30
|
-
`),e("span",{class:"hljs-keyword"},"export"),l(),e("span",{class:"hljs-keyword"},"default"),l(` ({ filter }, { services, exceptions }) => {
|
|
31
|
-
`),e("span",{class:"hljs-keyword"},"const"),l(` { MailService } = services;
|
|
32
|
-
`),e("span",{class:"hljs-keyword"},"const"),l(` { ServiceUnavailableException, ForbiddenException } = exceptions;
|
|
33
|
-
|
|
34
|
-
`),e("span",{class:"hljs-comment"},"// Sync with external recipes service, cancel creation on failure"),l(`
|
|
35
|
-
filter(`),e("span",{class:"hljs-string"},"'items.create'"),l(", "),e("span",{class:"hljs-keyword"},"async"),l(` (input, { collection }, { schema }) => {
|
|
36
|
-
`),e("span",{class:"hljs-keyword"},"if"),l(" (collection !== "),e("span",{class:"hljs-string"},"'recipes'"),l(") "),e("span",{class:"hljs-keyword"},"return"),l(` input;
|
|
37
|
-
|
|
38
|
-
`),e("span",{class:"hljs-keyword"},"const"),l(" mailService = "),e("span",{class:"hljs-keyword"},"new"),l(` MailService({ schema });
|
|
39
|
-
|
|
40
|
-
`),e("span",{class:"hljs-keyword"},"try"),l(` {
|
|
41
|
-
`),e("span",{class:"hljs-keyword"},"await"),l(" axios.post("),e("span",{class:"hljs-string"},"'https://example.com/recipes'"),l(`, input);
|
|
42
|
-
`),e("span",{class:"hljs-keyword"},"await"),l(` mailService.send({
|
|
43
|
-
`),e("span",{class:"hljs-attr"},"to"),l(": "),e("span",{class:"hljs-string"},"'person@example.com'"),l(`,
|
|
44
|
-
`),e("span",{class:"hljs-attr"},"template"),l(`: {
|
|
45
|
-
`),e("span",{class:"hljs-attr"},"name"),l(": "),e("span",{class:"hljs-string"},"'item-created'"),l(`,
|
|
46
|
-
`),e("span",{class:"hljs-attr"},"data"),l(`: {
|
|
47
|
-
`),e("span",{class:"hljs-attr"},"collection"),l(`: collection,
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
} `),e("span",{class:"hljs-keyword"},"catch"),l(` (error) {
|
|
52
|
-
`),e("span",{class:"hljs-keyword"},"throw"),l(),e("span",{class:"hljs-keyword"},"new"),l(` ServiceUnavailableException(error);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
input.syncedWithExample = `),e("span",{class:"hljs-literal"},"true"),l(`;
|
|
56
|
-
|
|
57
|
-
`),e("span",{class:"hljs-keyword"},"return"),l(` input;
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
`)])])],-1),f="Custom API Hooks",m=!0,y={name:"hooks",setup(i,{expose:t}){const n={title:"Custom API Hooks",modularExtension:!0};return t({frontmatter:n}),(d,h)=>{const s=o("docs-wrapper");return a(),c(s,{frontmatter:n},{default:u(()=>[r]),_:1})}}};export{y as default,m as modularExtension,f as title};
|