@directus/app 9.20.3 → 9.21.0
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.7480601b.entry.js +1 -0
- package/dist/assets/{accounts.8d02a534.js → accounts.6f69dc83.js} +1 -1
- package/dist/assets/active-line.f3bab3a5.js +1 -0
- package/dist/assets/{activity-log.957853bb.js → activity-log.2e944bfa.js} +1 -1
- package/dist/assets/{activity.58bbe1c2.js → activity.dda3417f.js} +1 -1
- package/dist/assets/apl.1805b26f.js +1 -0
- package/dist/assets/{ar-SA.3a51ad1e.js → ar-SA.c5ee16de.js} +1 -1
- package/dist/assets/{architecture.0ded5b28.js → architecture.e66cc597.js} +1 -1
- package/dist/assets/asciiarmor.ffaf0f62.js +1 -0
- package/dist/assets/asn.1.cd62dee4.js +1 -0
- package/dist/assets/asterisk.07d1e4af.js +1 -0
- package/dist/assets/{authentication.5b7d5fa7.js → authentication.8a718856.js} +5 -5
- package/dist/assets/autorefresh.e63fec5a.js +1 -0
- package/dist/assets/{aws.890dfda5.js → aws.99d49c74.js} +1 -1
- package/dist/assets/{backing-directus.7f54a4af.js → backing-directus.23aeddff.js} +1 -1
- package/dist/assets/brainfuck.587235ad.js +1 -0
- package/dist/assets/{cli.4e995657.js → cli.8e7d9b17.js} +4 -4
- package/dist/assets/{cli.bf0b2442.js → cli.ce3a6393.js} +2 -2
- package/dist/assets/clike.8df07672.js +1 -0
- package/dist/assets/clojure.7ed940f7.js +1 -0
- package/dist/assets/{cloudron.0a16f34b.js → cloudron.0cf18005.js} +1 -1
- package/dist/assets/cmake.8058664d.js +1 -0
- package/dist/assets/cobol.7925af76.js +1 -0
- package/dist/assets/{codebase-overview.2ba91a80.js → codebase-overview.4707b17a.js} +1 -1
- package/dist/assets/coffeescript.36666708.js +1 -0
- package/dist/assets/{collections.7fa07fe7.js → collections.30500b8b.js} +2 -2
- package/dist/assets/{collections.2a61805a.js → collections.88058903.js} +2 -2
- package/dist/assets/{collections.ea858bf6.js → collections.b74ab838.js} +3 -3
- package/dist/assets/commonlisp.ce672eb5.js +1 -0
- package/dist/assets/{conditions.32339903.js → conditions.db9bebfc.js} +1 -1
- package/dist/assets/{config-options.53449c2c.js → config-options.48260929.js} +12 -12
- package/dist/assets/{content.18716bf7.js → content.647b054c.js} +1 -1
- package/dist/assets/{creating-extensions.0a6d6d3b.js → creating-extensions.e032c2f0.js} +3 -3
- package/dist/assets/crystal.3c7c09cc.js +1 -0
- package/dist/assets/css.b68c041b.js +1 -0
- package/dist/assets/cypher.3b38874c.js +4 -0
- package/dist/assets/d.0460be39.js +1 -0
- package/dist/assets/dart.680bdb1d.js +1 -0
- package/dist/assets/{data-model.b5eb7565.js → data-model.63af932c.js} +3 -3
- package/dist/assets/de-DE.590d3c70.js +1 -0
- package/dist/assets/diff.11dadb16.js +1 -0
- package/dist/assets/{digitalocean-app-platform.4063d6cc.js → digitalocean-app-platform.adb9fc63.js} +2 -2
- package/dist/assets/{display-templates.65a9b519.js → display-templates.7c1dae6d.js} +1 -1
- package/dist/assets/display.87df21d6.js +1 -0
- package/dist/assets/{displays.b72d546c.js → displays.c0024804.js} +5 -5
- package/dist/assets/django.c5c2bb33.js +1 -0
- package/dist/assets/{docker.ae6227ab.js → docker.a790e063.js} +1 -1
- package/dist/assets/dockerfile.cb57c90a.js +1 -0
- package/dist/assets/{documentation.6628aaac.js → documentation.1783cd53.js} +1 -1
- package/dist/assets/dtd.4bdd906a.js +1 -0
- package/dist/assets/dylan.af09e3f8.js +1 -0
- package/dist/assets/ebnf.0ec983c0.js +1 -0
- package/dist/assets/ecl.eeba0610.js +1 -0
- package/dist/assets/eiffel.d9fec659.js +1 -0
- package/dist/assets/elm.c3ce2b54.js +1 -0
- package/dist/assets/{email-templates.5e1b5472.js → email-templates.ed708d89.js} +1 -1
- package/dist/assets/{endpoints.44874916.js → endpoints.10a1484a.js} +1 -1
- package/dist/assets/erlang.d00fab30.js +1 -0
- package/dist/assets/es-419.37d0e1bd.js +1 -0
- package/dist/assets/{extensions.9790f6ff.js → extensions.d542042f.js} +1 -1
- package/dist/assets/factor.a6dddf2c.js +1 -0
- package/dist/assets/{faq.0fd5ca6e.js → faq.8904941c.js} +2 -2
- package/dist/assets/fcl.0c78a020.js +1 -0
- package/dist/assets/{field-types.e5bd5900.js → field-types.e3e041fc.js} +1 -1
- package/dist/assets/{field.b9b55fc2.js → field.64c29e0b.js} +1 -1
- package/dist/assets/{fields.fc8af154.js → fields.1597bfad.js} +1 -1
- package/dist/assets/{fields.7df6f624.js → fields.c76c2d8b.js} +1 -1
- package/dist/assets/{file-library.7a11d866.js → file-library.8fb3da43.js} +1 -1
- package/dist/assets/{files.84b41f2f.js → files.d8e3acf4.js} +2 -2
- package/dist/assets/{filter-rules.099e9689.js → filter-rules.edb18765.js} +4 -4
- package/dist/assets/{filters.98d31bd5.js → filters.26e88a50.js} +1 -1
- package/dist/assets/{flows.b6ebb4b6.js → flows.8c6f69bb.js} +6 -6
- package/dist/assets/{flows.2646c3ae.js → flows.f014b9cc.js} +2 -2
- package/dist/assets/{folders.35cfde90.js → folders.8aec87f5.js} +5 -5
- package/dist/assets/forth.fbb63d06.js +1 -0
- package/dist/assets/fortran.cbc14824.js +1 -0
- package/dist/assets/fr-FR.d8dbf5de.js +1 -0
- package/dist/assets/gas.3e3eaaa0.js +1 -0
- package/dist/assets/{gcp.ce76381f.js → gcp.97542e88.js} +5 -5
- package/dist/assets/gfm.a5597fec.js +1 -0
- package/dist/assets/gherkin.9cfc1ed7.js +1 -0
- package/dist/assets/{github-ci.b4dde47f.js → github-ci.e7d15770.js} +2 -2
- package/dist/assets/{glossary.3b14c64d.js → glossary.beaf358c.js} +1 -1
- package/dist/assets/{glossary.930fe38e.js → glossary.c972e836.js} +1 -1
- package/dist/assets/go.f180871e.js +1 -0
- package/dist/assets/groovy.4db995a9.js +1 -0
- package/dist/assets/haml.ed77ce51.js +1 -0
- package/dist/assets/handlebars.81504d91.js +1 -0
- package/dist/assets/haskell-literate.d54dc9c7.js +1 -0
- package/dist/assets/haskell.f21c4399.js +1 -0
- package/dist/assets/haxe.50f0db0c.js +1 -0
- package/dist/assets/{hooks.b9909639.js → hooks.feaad058.js} +1 -1
- package/dist/assets/htmlembedded.5ff69a18.js +1 -0
- package/dist/assets/htmlmixed.5efed62b.js +1 -0
- package/dist/assets/{htmlmixed.bca09a1b.js → htmlmixed.f69cc072.js} +1 -1
- package/dist/assets/http.6b260d22.js +1 -0
- package/dist/assets/hu-HU.b086156a.js +1 -0
- package/dist/assets/idl.617214c8.js +1 -0
- package/dist/assets/{iis.63d75601.js → iis.0358929d.js} +1 -1
- package/dist/assets/{import-export.fe680598.js → import-export.391b74e0.js} +2 -2
- package/dist/assets/{index.ffcfdc79.js → index.04b73e2f.js} +1 -1
- package/dist/assets/{index.3ccb1a62.js → index.09845961.js} +1 -1
- package/dist/assets/{index.671547c3.js → index.130287f6.js} +1 -1
- package/dist/assets/{index.3d4f0091.css → index.19e6c20c.css} +1 -1
- package/dist/assets/{index.20179e31.js → index.1ba23fe5.js} +1 -1
- package/dist/assets/{index.f19e5b18.js → index.1f330fc3.js} +1 -1
- package/dist/assets/{index.7f210d25.js → index.24999c03.js} +1 -1
- package/dist/assets/{index.06aaef91.entry.js → index.312f2c91.entry.js} +2693 -2687
- package/dist/assets/{index.b242e4b8.js → index.31f6e6f2.js} +3 -3
- package/dist/assets/{index.7c5199ad.js → index.330c3aee.js} +1 -1
- package/dist/assets/{index.549a82a6.js → index.3470f134.js} +1 -1
- package/dist/assets/index.38d152bf.js +1 -0
- package/dist/assets/{index.a6c65314.js → index.4044e5c7.js} +1 -1
- package/dist/assets/{index.764b9d6e.js → index.4706b3f5.js} +1 -1
- package/dist/assets/{index.875a771b.js → index.4b24f075.js} +1 -1
- package/dist/assets/{index.6949d989.js → index.4c6e76b7.js} +1 -1
- package/dist/assets/{index.0d7f4d79.js → index.522f44b0.js} +1 -1
- package/dist/assets/{index.1c9cfeb8.js → index.525d8fd8.js} +1 -1
- package/dist/assets/{index.d8e4727e.js → index.528e4b54.js} +1 -1
- package/dist/assets/{index.d9e48160.js → index.52a4297c.js} +1 -1
- package/dist/assets/{index.34c47fcf.js → index.530fd584.js} +1 -1
- package/dist/assets/{index.91e98759.js → index.546018df.js} +1 -1
- package/dist/assets/{index.d557b36c.js → index.57542755.js} +1 -1
- package/dist/assets/{index.425c965c.js → index.5a8952da.js} +1 -1
- package/dist/assets/{index.9b6db0de.js → index.5cf97c2b.js} +1 -1
- package/dist/assets/index.65e5d28f.css +1 -0
- package/dist/assets/{index.08c5d5a2.js → index.6b77e807.js} +1 -1
- package/dist/assets/{index.393b7fd6.js → index.6bf3a163.js} +1 -1
- package/dist/assets/{index.fe4bc374.js → index.6c07a132.js} +1 -1
- package/dist/assets/{index.1f99dc82.js → index.6c4fabf1.js} +1 -1
- package/dist/assets/{index.7468a23c.js → index.6fa71870.js} +1 -1
- package/dist/assets/{index.8fb3c07f.js → index.7045dfad.js} +1 -1
- package/dist/assets/{index.aa66a39f.js → index.75ef0473.js} +1 -1
- package/dist/assets/{index.c3959367.js → index.77b8f02e.js} +1 -1
- package/dist/assets/{index.62e48e8e.js → index.7943fd38.js} +1 -1
- package/dist/assets/{index.ac96f5b3.js → index.7c5b74dc.js} +1 -1
- package/dist/assets/{index.f32d0fbe.js → index.7de5db57.js} +1 -1
- package/dist/assets/{index.8aa50b59.js → index.7e90d361.js} +1 -1
- package/dist/assets/{index.2399ffb8.js → index.7edb8b15.js} +1 -1
- package/dist/assets/{index.d370fafd.js → index.7fcf2b86.js} +1 -1
- package/dist/assets/{index.5c5acddc.js → index.80106d2d.js} +1 -1
- package/dist/assets/{index.8b8e6073.js → index.804b3c9b.js} +1 -1
- package/dist/assets/{index.5264aa26.js → index.8063dc25.js} +1 -1
- package/dist/assets/{index.eb772cab.js → index.81a02f8c.js} +1 -1
- package/dist/assets/{index.38e5dfc6.js → index.81d5b763.js} +1 -1
- package/dist/assets/{index.7269b9b7.js → index.8200528c.js} +1 -1
- package/dist/assets/{index.00acb7aa.js → index.82939b3a.js} +1 -1
- package/dist/assets/{index.d024a491.js → index.8446e18c.js} +1 -1
- package/dist/assets/index.87afb869.js +1 -0
- package/dist/assets/{index.7e37814b.js → index.92f59a75.js} +1 -1
- package/dist/assets/{index.3abfd687.js → index.98cb4ee1.js} +1 -1
- package/dist/assets/{index.486669b9.js → index.9d2fbf00.js} +1 -1
- package/dist/assets/{index.ec87e7f6.js → index.9dfe292c.js} +1 -1
- package/dist/assets/{index.4ce96101.js → index.a1b7be9b.js} +1 -1
- package/dist/assets/{index.1b594a21.js → index.a5356d91.js} +1 -1
- package/dist/assets/{index.b67fb5fc.js → index.ab4e5ca3.js} +1 -1
- package/dist/assets/{index.f511aff3.js → index.ab7b6cba.js} +1 -1
- package/dist/assets/{index.578c30ec.js → index.ac6c3fe9.js} +1 -1
- package/dist/assets/{index.5062f951.js → index.adc560cb.js} +1 -1
- package/dist/assets/{index.045e97f0.js → index.ae4bf6ea.js} +1 -1
- package/dist/assets/{index.9f69b190.js → index.aeaa0aa9.js} +1 -1
- package/dist/assets/{index.8b9e43f4.js → index.afc6b30e.js} +1 -1
- package/dist/assets/{index.23def130.js → index.b02dbd39.js} +1 -1
- package/dist/assets/{index.3cb24d7f.js → index.b391672d.js} +1 -1
- package/dist/assets/{index.19a506a0.js → index.b503f187.js} +1 -1
- package/dist/assets/{index.a88d2d0b.js → index.b7113e87.js} +1 -1
- package/dist/assets/{index.7bb84aa5.js → index.c156c46e.js} +1 -1
- package/dist/assets/{index.68337c85.js → index.c5e16ef6.js} +1 -1
- package/dist/assets/{index.45686201.js → index.c85c3f77.js} +1 -1
- package/dist/assets/{index.03886e4a.js → index.cb7799d1.js} +1 -1
- package/dist/assets/{index.eb4d5cbc.js → index.cb93c1e8.js} +1 -1
- package/dist/assets/{index.dc4d9b6a.js → index.d0d998a0.js} +1 -1
- package/dist/assets/{index.c2858d95.js → index.d790d684.js} +1 -1
- package/dist/assets/{index.a264494d.js → index.dc9006a1.js} +1 -1
- package/dist/assets/{index.8130aabc.js → index.e3619b04.js} +1 -1
- package/dist/assets/{index.ab5ebdc3.js → index.e4224764.js} +1 -1
- package/dist/assets/{index.426d219b.js → index.e5079c3a.js} +1 -1
- package/dist/assets/{index.90ecf353.js → index.e6971ab1.js} +1 -1
- package/dist/assets/{index.b2e447e3.js → index.e85bc569.js} +1 -1
- package/dist/assets/{index.42614221.js → index.e95b7e4b.js} +1 -1
- package/dist/assets/{index.0608a502.js → index.ec8cfaac.js} +1 -1
- package/dist/assets/{index.b0e3c55c.js → index.f2e26d1f.js} +1 -1
- package/dist/assets/{index.eecb0d4b.js → index.f60d22d0.js} +1 -1
- package/dist/assets/{index.a8b94b31.js → index.f828781f.js} +1 -1
- package/dist/assets/{index.2b61f9fb.js → index.fb6b1657.js} +1 -1
- package/dist/assets/{index.9c4a7f65.js → index.fb8023b0.js} +1 -1
- package/dist/assets/{index.79264a03.js → index.fe536421.js} +1 -1
- package/dist/assets/{input-rich-text-html.9a04a626.js → input-rich-text-html.b1656039.js} +30 -30
- package/dist/assets/{insights.bb6e6dd9.js → insights.8a1beae6.js} +2 -2
- package/dist/assets/{installation.a80b7bdd.js → installation.2db8d0e1.js} +1 -1
- package/dist/assets/{interface.6b3d318d.js → interface.8e4a64f0.js} +1 -1
- package/dist/assets/{interfaces.9c9cb203.js → interfaces.8e88b01f.js} +4 -4
- package/dist/assets/{introduction.17ce0958.js → introduction.2a0882fe.js} +4 -4
- package/dist/assets/{introduction.74d5f276.js → introduction.42a2136e.js} +1 -1
- package/dist/assets/{introduction.2b473cdb.js → introduction.4f0ccbaf.js} +1 -1
- package/dist/assets/{introduction.23bcca02.js → introduction.dbd85d4e.js} +1 -1
- package/dist/assets/it-IT.53711e9b.js +1 -0
- package/dist/assets/{items.a200a734.js → items.9f358fa7.js} +5 -5
- package/dist/assets/{items.d9558b12.js → items.abb8d314.js} +1 -1
- package/dist/assets/javascript-hint.bd3c0fcf.js +1 -0
- package/dist/assets/javascript.7eff1543.js +1 -0
- package/dist/assets/jinja2.eec1b998.js +1 -0
- package/dist/assets/jsx.8808ecb1.js +1 -0
- package/dist/assets/julia.56479fbf.js +1 -0
- package/dist/assets/{layouts.71139077.js → layouts.9c64beac.js} +3 -3
- package/dist/assets/{layouts.67e010c3.js → layouts.b4771384.js} +1 -1
- package/dist/assets/livescript.37040ed1.js +1 -0
- package/dist/assets/lua.7730f9fd.js +1 -0
- package/dist/assets/{manual.be26c257.js → manual.4a53ccfe.js} +4 -4
- package/dist/assets/mark-selection.c1a5d4e1.js +1 -0
- package/dist/assets/match-highlighter.ed7a2467.js +1 -0
- package/dist/assets/{matchbrackets.9e20b864.js → matchbrackets.ebc48bf8.js} +1 -1
- package/dist/assets/mathematica.1dbfb6f4.js +1 -0
- package/dist/assets/mbox.0ac8a216.js +1 -0
- package/dist/assets/{migrations.58c8fd96.js → migrations.2969a369.js} +1 -1
- package/dist/assets/mirc.1cc06f67.js +1 -0
- package/dist/assets/mllike.cee4eaf7.js +1 -0
- package/dist/assets/modelica.2292d0b8.js +1 -0
- package/dist/assets/{modules.0cfbe882.js → modules.f057fcd0.js} +3 -3
- package/dist/assets/mscgen.38b6bb11.js +1 -0
- package/dist/assets/multiplex.1d92e024.js +3 -0
- package/dist/assets/mumps.f37c25cb.js +1 -0
- package/dist/assets/nginx.39e016a3.js +1 -0
- package/dist/assets/{notifications.7b442623.js → notifications.ca876814.js} +11 -11
- package/dist/assets/nsis.1cf932c7.js +1 -0
- package/dist/assets/ntriples.e6c37d71.js +1 -0
- package/dist/assets/octave.2bec4045.js +1 -0
- package/dist/assets/{operations.bd173669.js → operations.246298bc.js} +11 -11
- package/dist/assets/{operations.6fcceb98.js → operations.64af444f.js} +3 -3
- package/dist/assets/{operations.30bbad94.js → operations.b4042de2.js} +2 -2
- package/dist/assets/overlay.16f98fb6.js +1 -0
- package/dist/assets/{overview.cb1196c4.js → overview.0b4ab371.js} +1 -1
- package/dist/assets/{overview.4c1683c3.js → overview.359f9713.js} +1 -1
- package/dist/assets/{overview.23ad824a.js → overview.40893677.js} +1 -1
- package/dist/assets/oz.8955a131.js +1 -0
- package/dist/assets/{panels.187b8f0d.js → panels.3969b423.js} +2 -2
- package/dist/assets/pascal.7213d964.js +1 -0
- package/dist/assets/pegjs.6877c220.js +1 -0
- package/dist/assets/perl.7f37e0c4.js +1 -0
- package/dist/assets/{permissions.2ad2e118.js → permissions.0712320e.js} +4 -4
- package/dist/assets/php.b63c0c50.js +1 -0
- package/dist/assets/pig.1cddd148.js +1 -0
- package/dist/assets/{pinia.24c7b35a.entry.js → pinia.0d44ec62.entry.js} +2 -2
- package/dist/assets/{plesk.279941fc.js → plesk.e3ea514c.js} +5 -5
- package/dist/assets/powershell.3aecbe91.js +1 -0
- package/dist/assets/{presets-bookmarks.62ac9314.js → presets-bookmarks.0baf10eb.js} +1 -1
- package/dist/assets/{presets.0390ff92.js → presets.0de7849a.js} +8 -8
- package/dist/assets/{project-settings.8b91aa04.js → project-settings.6e5956c8.js} +1 -1
- package/dist/assets/{projects.97bc15fa.js → projects.12d7a177.js} +1 -1
- package/dist/assets/properties.db539b03.js +1 -0
- package/dist/assets/protobuf.0fa0e9b4.js +1 -0
- package/dist/assets/pt-BR.2c2e8c4f.js +1 -0
- package/dist/assets/pug.e6d33f3a.js +1 -0
- package/dist/assets/puppet.18346b43.js +1 -0
- package/dist/assets/python.065d28e0.js +1 -0
- package/dist/assets/q.ed3c142c.js +1 -0
- package/dist/assets/{query.19ee7756.js → query.6dcece55.js} +1 -1
- package/dist/assets/{quickstart.96d7fa17.js → quickstart.f1c431cf.js} +3 -3
- package/dist/assets/{quickstart.7f55e26e.js → quickstart.fd328631.js} +2 -2
- package/dist/assets/r.f2ad8682.js +1 -0
- package/dist/assets/{readme.abb2691e.js → readme.c063616b.js} +1 -1
- package/dist/assets/{relations.1409faa0.js → relations.c92ebc4e.js} +6 -6
- package/dist/assets/{relationship.8e3bc45d.js → relationship.0344c790.js} +1 -1
- package/dist/assets/{relationships.2449eed5.js → relationships.ad2ee267.js} +7 -7
- package/dist/assets/{resources.f9b64d6f.js → resources.84b84252.js} +1 -1
- package/dist/assets/{revisions.7ffa76fe.js → revisions.39f423d0.js} +4 -4
- package/dist/assets/ro-RO.4c33f715.js +1 -0
- package/dist/assets/{roles.ce6518a4.js → roles.89c51107.js} +7 -7
- package/dist/assets/rpm.1674f668.js +1 -0
- package/dist/assets/rst.0a69f626.js +1 -0
- package/dist/assets/ruby.02498746.js +1 -0
- package/dist/assets/{ruby.514cda97.js → ruby.d805273a.js} +1 -1
- package/dist/assets/{running-locally.8b135453.js → running-locally.24e1b4bf.js} +6 -6
- package/dist/assets/runtime-core.esm-bundler.22ec0346.js +1 -0
- package/dist/assets/rust.90ce6688.js +1 -0
- package/dist/assets/sas.3b045c8d.js +1 -0
- package/dist/assets/sass.4fcb9b12.js +1 -0
- package/dist/assets/{schema.6649576e.js → schema.c326d911.js} +1 -1
- package/dist/assets/scheme.eb7abc5c.js +1 -0
- package/dist/assets/{sdk.33dcc072.js → sdk.2fdc3788.js} +17 -17
- package/dist/assets/{security.acb2be94.js → security.a0326c54.js} +1 -1
- package/dist/assets/{server.60bfa539.js → server.5b19042c.js} +1 -1
- package/dist/assets/{settings.6ac3895b.js → settings.2195b191.js} +1 -1
- package/dist/assets/{settings.a00aa4fa.js → settings.2553780f.js} +1 -1
- package/dist/assets/{shares.9a7ea736.js → shares.a17e644c.js} +1 -1
- package/dist/assets/shell.09d717f3.js +1 -0
- package/dist/assets/show-hint.4fc17cec.js +1 -0
- package/dist/assets/sieve.fe87517f.js +1 -0
- package/dist/assets/slim.76f6114d.js +1 -0
- package/dist/assets/smalltalk.eaf13594.js +1 -0
- package/dist/assets/smarty.abf4421d.js +1 -0
- package/dist/assets/solr.62208f30.js +1 -0
- package/dist/assets/soy.b2db807b.js +1 -0
- package/dist/assets/sparql.7042a2b3.js +1 -0
- package/dist/assets/spreadsheet.ca1422ad.js +1 -0
- package/dist/assets/sql.fcb976c5.js +1 -0
- package/dist/assets/{sso-examples.eb3ba478.js → sso-examples.8a36c968.js} +2 -2
- package/dist/assets/{sso.29d67116.js → sso.92e5b5f1.js} +4 -4
- package/dist/assets/stex.30c4dc01.js +1 -0
- package/dist/assets/{stex.dd8072e9.js → stex.a5fe2e4a.js} +1 -1
- package/dist/assets/stylus.f7fcee76.js +1 -0
- package/dist/assets/{support.e9e535b3.js → support.f153d4ae.js} +1 -1
- package/dist/assets/swift.116cdb17.js +1 -0
- package/dist/assets/tcl.42613799.js +1 -0
- package/dist/assets/{teams.347f0563.js → teams.c564c81f.js} +1 -1
- package/dist/assets/textile.4285b886.js +1 -0
- package/dist/assets/{themes.32a50b86.js → themes.6c5c943f.js} +2 -2
- package/dist/assets/tiddlywiki.eb66e0c7.js +1 -0
- package/dist/assets/tiki.c796e616.js +1 -0
- package/dist/assets/toml.3b8b1e04.js +1 -0
- package/dist/assets/tornado.89f4bce8.js +1 -0
- package/dist/assets/tr-TR.328a2546.js +1 -0
- package/dist/assets/{translation-strings.285d6bb2.js → translation-strings.326a2741.js} +1 -1
- package/dist/assets/translations.4c0efc6a.js +1 -0
- package/dist/assets/{translations.f87a601e.js → translations.645f8c9c.js} +1 -1
- package/dist/assets/{triggers.325e50d8.js → triggers.44703cf0.js} +1 -1
- package/dist/assets/troff.51ba9964.js +1 -0
- package/dist/assets/ttcn-cfg.62ff9e40.js +1 -0
- package/dist/assets/ttcn.08f34f21.js +1 -0
- package/dist/assets/turtle.2efc3e1b.js +1 -0
- package/dist/assets/twig.bd0ee3cd.js +1 -0
- package/dist/assets/{ubuntu.3ba252fe.js → ubuntu.47e06de3.js} +2 -2
- package/dist/assets/uk-UA.fe247137.js +1 -0
- package/dist/assets/{upgrades-migrations.a091b8af.js → upgrades-migrations.a23cace7.js} +1 -1
- package/dist/assets/{use-sync.d9160f34.js → use-sync.e83d9ab3.js} +3 -3
- package/dist/assets/{user-directory.9ca05985.js → user-directory.e1f15d1a.js} +1 -1
- package/dist/assets/{users-roles-permissions.bb71f6c9.js → users-roles-permissions.14757490.js} +1 -1
- package/dist/assets/{users.a44125e3.js → users.0ea4e372.js} +1 -1
- package/dist/assets/{utilities.0380c496.js → utilities.c76e17ac.js} +7 -7
- package/dist/assets/validation.99c6fcd4.js +1 -0
- package/dist/assets/vb.e77c04f4.js +1 -0
- package/dist/assets/vbscript.b1155c12.js +1 -0
- package/dist/assets/velocity.5f33a92c.js +1 -0
- package/dist/assets/verilog.064306e8.js +1 -0
- package/dist/assets/vhdl.c71b4d0c.js +1 -0
- package/dist/assets/{vue-i18n.df8d89e7.entry.js → vue-i18n.fbc77449.entry.js} +1 -1
- package/dist/assets/vue-router.3a828e63.entry.js +5 -0
- package/dist/assets/vue.1a8f18be.js +1 -0
- package/dist/assets/vue.486f3e62.entry.js +1 -0
- package/dist/assets/vue.runtime.esm-bundler.f6138180.js +1 -0
- package/dist/assets/wast.7970d24f.js +1 -0
- package/dist/assets/{webhooks.2d23be4c.js → webhooks.105c0454.js} +1 -1
- package/dist/assets/{webhooks.40d9a7a3.js → webhooks.d7f419fe.js} +4 -4
- package/dist/assets/webidl.f56d782e.js +1 -0
- package/dist/assets/{xml.6c641966.js → xml.c9106c48.js} +1 -1
- package/dist/assets/xquery.d326f7d2.js +1 -0
- package/dist/assets/yacas.aab21d14.js +1 -0
- package/dist/assets/yaml-frontmatter.c4684bee.js +1 -0
- package/dist/assets/yaml.02beca9a.js +1 -0
- package/dist/assets/z80.2c343a72.js +1 -0
- package/dist/assets/{zh-CN.a9e8d795.js → zh-CN.a8f9e881.js} +1 -1
- package/dist/index.html +8 -8
- package/package.json +61 -61
- package/dist/assets/@directus_extensions-sdk.fd0e4213.entry.js +0 -1
- package/dist/assets/active-line.6ad3cc1b.js +0 -1
- package/dist/assets/apl.c686918c.js +0 -1
- package/dist/assets/asciiarmor.461dfa97.js +0 -1
- package/dist/assets/asn.1.edf36206.js +0 -1
- package/dist/assets/asterisk.ec604180.js +0 -1
- package/dist/assets/autorefresh.12942f0a.js +0 -1
- package/dist/assets/brainfuck.f0a9ac27.js +0 -1
- package/dist/assets/clike.6813c8af.js +0 -1
- package/dist/assets/clojure.282c98e9.js +0 -1
- package/dist/assets/cmake.3a19ac2e.js +0 -1
- package/dist/assets/cobol.1a968dc2.js +0 -1
- package/dist/assets/coffeescript.f4d04eff.js +0 -1
- package/dist/assets/commonlisp.b6ce4697.js +0 -1
- package/dist/assets/crystal.c82fbe0e.js +0 -1
- package/dist/assets/css.f5233cc9.js +0 -1
- package/dist/assets/cypher.039d2c7c.js +0 -4
- package/dist/assets/d.9a180f99.js +0 -1
- package/dist/assets/dart.6eb5ddde.js +0 -1
- package/dist/assets/de-DE.ae6e5ffb.js +0 -1
- package/dist/assets/diff.5b316696.js +0 -1
- package/dist/assets/display.4a967445.js +0 -1
- package/dist/assets/django.6c78c8f8.js +0 -1
- package/dist/assets/dockerfile.99dfeb4b.js +0 -1
- package/dist/assets/dtd.0634c33c.js +0 -1
- package/dist/assets/dylan.8694ba80.js +0 -1
- package/dist/assets/ebnf.462b292d.js +0 -1
- package/dist/assets/ecl.3dbd76a1.js +0 -1
- package/dist/assets/eiffel.4ec3277b.js +0 -1
- package/dist/assets/elm.04561af7.js +0 -1
- package/dist/assets/erlang.4826206d.js +0 -1
- package/dist/assets/es-419.582d398a.js +0 -1
- package/dist/assets/factor.bc3247f5.js +0 -1
- package/dist/assets/fcl.9f2d1e59.js +0 -1
- package/dist/assets/forth.bd08c7e3.js +0 -1
- package/dist/assets/fortran.2ae538b0.js +0 -1
- package/dist/assets/fr-FR.fa3f9dfa.js +0 -1
- package/dist/assets/gas.01960520.js +0 -1
- package/dist/assets/gfm.8e7c0694.js +0 -1
- package/dist/assets/gherkin.c6599791.js +0 -1
- package/dist/assets/go.f623c1d3.js +0 -1
- package/dist/assets/groovy.b5a3df5c.js +0 -1
- package/dist/assets/haml.6302e530.js +0 -1
- package/dist/assets/handlebars.698c31d7.js +0 -1
- package/dist/assets/haskell-literate.d3ee41f3.js +0 -1
- package/dist/assets/haskell.e4bd92a1.js +0 -1
- package/dist/assets/haxe.db74ea0a.js +0 -1
- package/dist/assets/htmlembedded.67d9d54e.js +0 -1
- package/dist/assets/htmlmixed.f95449b1.js +0 -1
- package/dist/assets/http.16e0eb29.js +0 -1
- package/dist/assets/hu-HU.ff4d97e1.js +0 -1
- package/dist/assets/idl.fb34fd03.js +0 -1
- package/dist/assets/index.4ce1e26c.js +0 -1
- package/dist/assets/index.90515a60.css +0 -1
- package/dist/assets/index.a36c94c4.js +0 -1
- package/dist/assets/it-IT.5db21711.js +0 -1
- package/dist/assets/javascript-hint.835011a8.js +0 -1
- package/dist/assets/javascript.098ad3f4.js +0 -1
- package/dist/assets/jinja2.5d6e4ebc.js +0 -1
- package/dist/assets/jsx.9e86f9c1.js +0 -1
- package/dist/assets/julia.3d7819b8.js +0 -1
- package/dist/assets/livescript.d3e3ffd7.js +0 -1
- package/dist/assets/lua.dcc90e1a.js +0 -1
- package/dist/assets/mark-selection.555804b8.js +0 -1
- package/dist/assets/match-highlighter.d280d567.js +0 -1
- package/dist/assets/mathematica.a4cf7905.js +0 -1
- package/dist/assets/mbox.0118ba5e.js +0 -1
- package/dist/assets/mirc.f16a416b.js +0 -1
- package/dist/assets/mllike.8af83228.js +0 -1
- package/dist/assets/modelica.fff0e69c.js +0 -1
- package/dist/assets/mscgen.4f351ed7.js +0 -1
- package/dist/assets/multiplex.24637d75.js +0 -3
- package/dist/assets/mumps.b29547a0.js +0 -1
- package/dist/assets/nginx.0b30c51b.js +0 -1
- package/dist/assets/nsis.931674c1.js +0 -1
- package/dist/assets/ntriples.b3ee92f7.js +0 -1
- package/dist/assets/octave.9fa134a4.js +0 -1
- package/dist/assets/overlay.7325085f.js +0 -1
- package/dist/assets/oz.418a19b3.js +0 -1
- package/dist/assets/pascal.abc2efea.js +0 -1
- package/dist/assets/pegjs.533a8931.js +0 -1
- package/dist/assets/perl.b0843cce.js +0 -1
- package/dist/assets/php.c4294507.js +0 -1
- package/dist/assets/pig.9e076d83.js +0 -1
- package/dist/assets/powershell.9163521a.js +0 -1
- package/dist/assets/properties.7389537c.js +0 -1
- package/dist/assets/protobuf.3ba8f801.js +0 -1
- package/dist/assets/pt-BR.c51763f3.js +0 -1
- package/dist/assets/pug.b98726b9.js +0 -1
- package/dist/assets/puppet.c2c7aecb.js +0 -1
- package/dist/assets/python.672ad786.js +0 -1
- package/dist/assets/q.58e35d92.js +0 -1
- package/dist/assets/r.86a12cf3.js +0 -1
- package/dist/assets/ro-RO.52802a17.js +0 -1
- package/dist/assets/rpm.057276c6.js +0 -1
- package/dist/assets/rst.3911d824.js +0 -1
- package/dist/assets/ruby.4ca30934.js +0 -1
- package/dist/assets/runtime-core.esm-bundler.fe249c5c.js +0 -4
- package/dist/assets/rust.f8f204a0.js +0 -1
- package/dist/assets/sas.b027b508.js +0 -1
- package/dist/assets/sass.6778645c.js +0 -1
- package/dist/assets/scheme.7d2fc5ef.js +0 -1
- package/dist/assets/shell.586a365e.js +0 -1
- package/dist/assets/show-hint.294aed89.js +0 -1
- package/dist/assets/sieve.76492164.js +0 -1
- package/dist/assets/slim.b75d75fc.js +0 -1
- package/dist/assets/smalltalk.c3811c1d.js +0 -1
- package/dist/assets/smarty.7ad51fee.js +0 -1
- package/dist/assets/solr.bc858702.js +0 -1
- package/dist/assets/soy.3523b082.js +0 -1
- package/dist/assets/sparql.23f67405.js +0 -1
- package/dist/assets/spreadsheet.fa0c4509.js +0 -1
- package/dist/assets/sql.e5dcae4e.js +0 -1
- package/dist/assets/stex.9edbeb3d.js +0 -1
- package/dist/assets/stylus.71868f10.js +0 -1
- package/dist/assets/swift.141c772a.js +0 -1
- package/dist/assets/tcl.e5b16da9.js +0 -1
- package/dist/assets/textile.0ba58239.js +0 -1
- package/dist/assets/tiddlywiki.cd3e074b.js +0 -1
- package/dist/assets/tiki.8884b81d.js +0 -1
- package/dist/assets/toml.0b104a38.js +0 -1
- package/dist/assets/tornado.ca0dd624.js +0 -1
- package/dist/assets/tr-TR.1dcfd6d4.js +0 -1
- package/dist/assets/translations.074feb87.js +0 -1
- package/dist/assets/troff.ceff2948.js +0 -1
- package/dist/assets/ttcn-cfg.20ce326a.js +0 -1
- package/dist/assets/ttcn.348a5af1.js +0 -1
- package/dist/assets/turtle.a74dd24d.js +0 -1
- package/dist/assets/twig.103f6c63.js +0 -1
- package/dist/assets/uk-UA.99a7a7a6.js +0 -1
- package/dist/assets/validation.cb080608.js +0 -1
- package/dist/assets/vb.9bd07f67.js +0 -1
- package/dist/assets/vbscript.f266487f.js +0 -1
- package/dist/assets/velocity.b63b2da2.js +0 -1
- package/dist/assets/verilog.94262bc9.js +0 -1
- package/dist/assets/vhdl.89bc6c80.js +0 -1
- package/dist/assets/vue-router.805cb517.entry.js +0 -5
- package/dist/assets/vue.c7dd8317.entry.js +0 -1
- package/dist/assets/vue.e839556b.js +0 -1
- package/dist/assets/vue.runtime.esm-bundler.eb605ed6.js +0 -1
- package/dist/assets/wast.077750a6.js +0 -1
- package/dist/assets/webidl.4f90cc6b.js +0 -1
- package/dist/assets/xquery.1f517ebf.js +0 -1
- package/dist/assets/yacas.5d349152.js +0 -1
- package/dist/assets/yaml-frontmatter.744c0030.js +0 -1
- package/dist/assets/yaml.41d6e7e9.js +0 -1
- package/dist/assets/z80.7e67c12c.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as l,o as h,
|
|
1
|
+
import{a as l,o as h,e as c,y as t,u as s,q as e,z as o}from"./runtime-core.esm-bundler.22ec0346.js";const u={class:"markdown-body"},d=s("hr",null,null,-1),p=s("h2",{id:"access-tokens",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#access-tokens"},"#"),e(" Access Tokens")],-1),_=s("p",null,"There are two types of tokens that can be used to authenticate within Directus.",-1),g=s("p",null,[s("strong",null,"Temporary Token (JWT)"),e(" are returned by the "),s("a",{href:"#login"},"login"),e(" endpoint/mutation. These tokens have a relatively short expiration time, and are thus the most secure option to use. The tokens are returned with a "),s("code",null,"refresh_token"),e(" that can be used to retrieve a new access token via the "),s("a",{href:"#refresh"},"refresh"),e(" endpoint/mutation.")],-1),f=s("p",null,[s("strong",null,"Static Tokens"),e(" can be set for each platform user, and never expire. They are less secure, but quite useful for server-to-server communication. They are saved as plain-text within "),s("code",null,"directus_users.token"),e(".")],-1),j=s("p",null,[e("Once you have your access token, there are two ways to pass it to the API, via the "),s("code",null,"access_token"),e(" query parameter, or in the request\u2019s Authorization Header.")],-1),b=s("h3",{id:"query-parameter",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#query-parameter"},"#"),e(" Query Parameter")],-1),m=s("pre",null,[s("code",null,`?access_token=<token>
|
|
2
2
|
`)],-1),k=s("h3",{id:"authorization-header",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#authorization-header"},"#"),e(" Authorization Header")],-1),w=s("pre",null,[s("code",null,`Authorization: Bearer <token>
|
|
3
3
|
`)],-1),y=s("hr",null,null,-1),q=s("h2",{id:"login",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#login"},"#"),e(" Login")],-1),v=s("p",null,"Retrieve a temporary access token and refresh token.",-1),x=s("h3",{id:"request-body",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#request-body"},"#"),e(" Request Body")],-1),T=s("p",null,[s("code",null,"email"),e(),s("strong",null,"Required"),s("br"),e(" Email address of the user you\u2019re retrieving the access token for.")],-1),P=s("p",null,[s("code",null,"password"),e(),s("strong",null,"Required"),s("br"),e(" Password of the user.")],-1),S=s("p",null,[s("code",null,"otp"),s("br"),e(" The user\u2019s one-time-password (if MFA is enabled).")],-1),R=s("p",null,[s("code",null,"mode"),s("br"),e(" Whether to retrieve the refresh token in the JSON response, or in a "),s("code",null,"httpOnly"),e(),s("code",null,"secure"),e(" cookie. One of "),s("code",null,"json"),e(", "),s("code",null,"cookie"),e(". Defaults to "),s("code",null,"json"),e(".")],-1),A=s("h3",{id:"response-attributes",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#response-attributes"},"#"),e(" Response Attributes")],-1),O=s("p",null,[s("code",null,"access_token"),e(),s("strong",null,"string"),s("br"),e(" Temporary access token to be used in follow-up requests.")],-1),E=s("p",null,[s("code",null,"expires"),e(),s("strong",null,"integer"),s("br"),e(" How long before the access token will expire. Value is in milliseconds.")],-1),L=s("p",null,[s("code",null,"refresh_token"),e(),s("strong",null,"string"),s("br"),e(" The token that can be used to retrieve a new access token through "),s("a",{href:"#refresh"},[s("code",null,"/auth/refresh")]),e(". Note: if you used "),s("code",null,"cookie"),e(" as the mode in the request, the refresh token won\u2019t be returned in the JSON.")],-1),I={class:"tip hint"},B=s("div",{class:"hint-title"},"Expiry time",-1),N=s("code",null,"ACCESS_TOKEN_TTL",-1),G=s("h3",{id:"rest-api",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#rest-api"},"#"),e(" REST API")],-1),C=s("pre",null,[s("code",null,`POST /auth/login
|
|
4
4
|
`)],-1),D=s("pre",null,[s("code",null,`POST /auth/login/:provider
|
|
@@ -6,8 +6,8 @@ import{a as l,o as h,b as c,w as t,l as s,E as e,e as o}from"./runtime-core.esm-
|
|
|
6
6
|
`),s("span",{class:"hljs-attr"},'"email"'),s("span",{class:"hljs-punctuation"},":"),e(),s("span",{class:"hljs-string"},'"admin@example.com"'),s("span",{class:"hljs-punctuation"},","),e(`
|
|
7
7
|
`),s("span",{class:"hljs-attr"},'"password"'),s("span",{class:"hljs-punctuation"},":"),e(),s("span",{class:"hljs-string"},'"d1r3ct5us"'),e(`
|
|
8
8
|
`),s("span",{class:"hljs-punctuation"},"}"),e(`
|
|
9
|
-
`)])],-1),W=s("h3",{id:"graphql",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#graphql"},"#"),e(" GraphQL")],-1),
|
|
10
|
-
`)],-1),
|
|
9
|
+
`)])],-1),W=s("h3",{id:"graphql",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#graphql"},"#"),e(" GraphQL")],-1),z=s("pre",null,[s("code",null,`POST /graphql/system
|
|
10
|
+
`)],-1),Q=s("pre",null,[s("code",{class:"language-graphql"},[s("span",{class:"hljs-keyword"},"mutation"),e(` {
|
|
11
11
|
auth_login(email: `),s("span",{class:"hljs-string"},'"admin@example.com"'),e(", password: "),s("span",{class:"hljs-string"},'"d1r3ctu5"'),e(`) {
|
|
12
12
|
access_token
|
|
13
13
|
refresh_token
|
|
@@ -46,7 +46,7 @@ import{a as l,o as h,b as c,w as t,l as s,E as e,e as o}from"./runtime-core.esm-
|
|
|
46
46
|
`),s("span",{class:"hljs-attr"},'"token"'),s("span",{class:"hljs-punctuation"},":"),e(),s("span",{class:"hljs-string"},'"eyJh...KmUk"'),s("span",{class:"hljs-punctuation"},","),e(`
|
|
47
47
|
`),s("span",{class:"hljs-attr"},'"password"'),s("span",{class:"hljs-punctuation"},":"),e(),s("span",{class:"hljs-string"},'"d1r3ctu5"'),e(`
|
|
48
48
|
`),s("span",{class:"hljs-punctuation"},"}"),e(`
|
|
49
|
-
`)])],-1),
|
|
49
|
+
`)])],-1),zs=s("h3",{id:"graphql-4",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#graphql-4"},"#"),e(" GraphQL")],-1),Qs=s("pre",null,[s("code",null,`POST /graphql/system
|
|
50
50
|
`)],-1),Hs=s("pre",null,[s("code",{class:"language-graphql"},[s("span",{class:"hljs-keyword"},"mutation"),e(` {
|
|
51
51
|
auth_password_reset(token: `),s("span",{class:"hljs-string"},'"eyJh...KmUk"'),e(", password: "),s("span",{class:"hljs-string"},'"d1r3ctu5"'),e(`)
|
|
52
52
|
}
|
|
@@ -71,4 +71,4 @@ import{a as l,o as h,b as c,w as t,l as s,E as e,e as o}from"./runtime-core.esm-
|
|
|
71
71
|
`),s("span",{class:"hljs-attr"},'"disableDefault"'),s("span",{class:"hljs-punctuation"},":"),e(),s("span",{class:"hljs-literal"},[s("span",{class:"hljs-keyword"},"false")]),e(`
|
|
72
72
|
`),s("span",{class:"hljs-punctuation"},"}"),e(`
|
|
73
73
|
`)])],-1),ee=s("hr",null,null,-1),te=s("h2",{id:"login-using-sso-providers",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#login-using-sso-providers"},"#"),e(" Login Using SSO Providers")],-1),ne=s("p",null,"Will redirect to the configured SSO provider for the user to login.",-1),oe=s("pre",null,[s("code",null,`GET /auth/login/:provider
|
|
74
|
-
`)],-1),ae=s("hr",null,null,-1),ce="Authentication",ue=!1,de="API documentation on authentication in Directus.",pe="5 min read",_e="page-reference",ge={__name:"authentication",setup(le,{expose:r}){const a={title:"Authentication",modularExtension:!1,description:"API documentation on authentication in Directus.",readTime:"5 min read",pageClass:"page-reference"};return r({frontmatter:a}),(re,ie)=>{const n=l("router-link"),i=l("docs-wrapper");return h(),c(i,{frontmatter:a},{default:t(()=>[s("div",u,[s("blockquote",null,[s("p",null,[e("All data within the platform is private by default. The "),o(n,{to:"/docs/configuration/users-roles-permissions#configure-permissions"},{default:t(()=>[e("public role")]),_:1}),e(" can be configured to expose data without authentication, or you can pass an access token to the API to access private data.")])]),d,p,_,g,f,j,b,m,k,w,y,q,v,x,T,P,S,R,A,O,E,L,s("div",I,[B,s("p",null,[e("The token\u2019s expiration time can be configured through "),o(n,{to:"/docs/self-hosted/config-options#general"},{default:t(()=>[e("the "),N,e(" environment variable")]),_:1}),e(".")])]),G,C,D,J,W,Q,
|
|
74
|
+
`)],-1),ae=s("hr",null,null,-1),ce="Authentication",ue=!1,de="API documentation on authentication in Directus.",pe="5 min read",_e="page-reference",ge={__name:"authentication",setup(le,{expose:r}){const a={title:"Authentication",modularExtension:!1,description:"API documentation on authentication in Directus.",readTime:"5 min read",pageClass:"page-reference"};return r({frontmatter:a}),(re,ie)=>{const n=l("router-link"),i=l("docs-wrapper");return h(),c(i,{frontmatter:a},{default:t(()=>[s("div",u,[s("blockquote",null,[s("p",null,[e("All data within the platform is private by default. The "),o(n,{to:"/docs/configuration/users-roles-permissions#configure-permissions"},{default:t(()=>[e("public role")]),_:1}),e(" can be configured to expose data without authentication, or you can pass an access token to the API to access private data.")])]),d,p,_,g,f,j,b,m,k,w,y,q,v,x,T,P,S,R,A,O,E,L,s("div",I,[B,s("p",null,[e("The token\u2019s expiration time can be configured through "),o(n,{to:"/docs/self-hosted/config-options#general"},{default:t(()=>[e("the "),N,e(" environment variable")]),_:1}),e(".")])]),G,C,D,J,W,z,Q,H,V,U,K,F,M,Y,X,Z,$,ss,es,ts,ns,os,as,ls,rs,is,hs,cs,us,ds,ps,_s,gs,fs,js,bs,ms,ks,ws,s("p",null,[ys,qs,e(" Provide a custom reset url which the link in the email will lead to. The reset token will be passed as a parameter."),vs,xs,e(": You need to configure the "),o(n,{to:"/docs/self-hosted/config-options#security"},{default:t(()=>[Ts,e(" environment variable")]),_:1}),e(" to enable this feature.")]),Ps,Ss,Rs,As,Os,Es,Ls,Is,Bs,Ns,Gs,Cs,Ds,Js,Ws,zs,Qs,Hs,Vs,Us,Ks,s("div",Fs,[Ms,s("p",null,[e("To learn more about setting up auth providers, see "),o(n,{to:"/docs/self-hosted/config-options#authentication"},{default:t(()=>[e("Configuring auth providers")]),_:1}),e(".")])]),Ys,Xs,Zs,$s,se,ee,te,ne,oe,ae])]),_:1})}}};export{ge as default,de as description,ue as modularExtension,_e as pageClass,pe as readTime,ce as title};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{y as a}from"./index.312f2c91.entry.js";function p(u,n){for(var o=0;o<n.length;o++){const i=n[o];if(typeof i!="string"&&!Array.isArray(i)){for(const r in i)if(r!=="default"&&!(r in u)){const e=Object.getOwnPropertyDescriptor(i,r);e&&Object.defineProperty(u,r,e.get?e:{enumerable:!0,get:()=>i[r]})}}}return Object.freeze(Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}))}var s={exports:{}};(function(u,n){(function(o){o(a.exports)})(function(o){o.defineOption("autoRefresh",!1,function(e,t){e.state.autoRefresh&&(r(e,e.state.autoRefresh),e.state.autoRefresh=null),t&&e.display.wrapper.offsetHeight==0&&i(e,e.state.autoRefresh={delay:t.delay||250})});function i(e,t){function f(){e.display.wrapper.offsetHeight?(r(e,t),e.display.lastWrapHeight!=e.display.wrapper.clientHeight&&e.refresh()):t.timeout=setTimeout(f,t.delay)}t.timeout=setTimeout(f,t.delay),t.hurry=function(){clearTimeout(t.timeout),t.timeout=setTimeout(f,50)},o.on(window,"mouseup",t.hurry),o.on(window,"keyup",t.hurry)}function r(e,t){clearTimeout(t.timeout),o.off(window,"mouseup",t.hurry),o.off(window,"keyup",t.hurry)}})})();const l=s.exports,h=p({__proto__:null,default:l},[s.exports]);export{h as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as s,o as c,
|
|
1
|
+
import{a as s,o as c,e as d,y as t,u as e,q as o,z as l}from"./runtime-core.esm-bundler.22ec0346.js";const u={class:"markdown-body"},h=e("p",null,"While there are many different ways to run Directus on AWS, from single EC2 instances to a full ELB load-balanced configuration, we like the following combination of services:",-1),p=e("ul",null,[e("li",null,[o("Elastic Beanstalk (EB) "),e("ul",null,[e("li",null,"Elastic Load Balancer (ELB)"),e("li",null,"Elastic Compute Cloud (EC2)")])]),e("li",null,"CodeDeploy"),e("li",null,"Simple Storage Service (S3)"),e("li",null,"Relational Database Service (RDS) (Aurora)"),e("li",null,"CloudFront"),e("li",null,"Route 53")],-1),f=e("h2",{id:"elastic-beanstalk",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#elastic-beanstalk"},"#"),o(" Elastic Beanstalk")],-1),m=e("p",null,"Will run Directus in an autoscaling environment with a load balancer. Makes sure the instances stay alive, and will replace individual instances in case of unexpected crashes.",-1),_=e("p",null,[o("See "),e("a",{href:"https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.html",target:"_blank",rel:"noopener noreferrer"},"Deploying Node.js applications to Elastic Beanstalk"),o(" for more information.")],-1),b=e("h2",{id:"codedeploy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#codedeploy"},"#"),o(" CodeDeploy")],-1),g=e("p",null,"Allows you to automatically deploy updates to your Directus instance or extensions to Elastic Beanstalk.",-1),y=e("p",null,[o("See "),e("a",{href:"https://aws.amazon.com/blogs/devops/automatically-deploy-from-github-using-aws-codedeploy",target:"_blank",rel:"noopener noreferrer"},"Automatically Deploy from GitHub Using AWS CodeDeploy"),o(" for more information.")],-1),w=e("h2",{id:"simple-storage-service-(s3)",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#simple-storage-service-(s3)"},"#"),o(" Simple Storage Service (S3)")],-1),k=e("p",null,"Ideal place to store files uploaded to Directus. Your bucket doesn\u2019t have to be publicly accessible to the web; Directus will stream files from and to the bucket in its /asset endpoint.",-1),v=e("p",null,[o("See "),e("a",{href:"https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html",target:"_blank",rel:"noopener noreferrer"},"Creating a bucket"),o(" for more information.")],-1),S=e("h2",{id:"relational-database-service-(rds)-(aurora)",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#relational-database-service-(rds)-(aurora)"},"#"),o(" Relational Database Service (RDS) (Aurora)")],-1),D=e("p",null,"While you can technically use any of the SQL based databases offered in AWS, we like to use Aurora. It\u2019s auto-scaling and use-based costs have worked out pretty well for us in the past.",-1),C=e("h2",{id:"cloudfront",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#cloudfront"},"#"),o(" CloudFront")],-1),A=e("p",null,"While it\u2019s not a technical requirement, it\u2019s not a bad idea to configure a CloudFront instance in front of your EB environment. This protects you from DDoS attacks and allows you to cache repeated calls to assets in its CDN.",-1),E=e("p",null,[o("See "),e("a",{href:"https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.cloudfront.html",target:"_blank",rel:"noopener noreferrer"},"Using Elastic Beanstalk with Amazon CloudFront"),o(" for more information.")],-1),B=e("h2",{id:"route-53",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#route-53"},"#"),o(" Route 53")],-1),x=e("p",null,"The last piece of this puzzle is to assign a domain name to your CloudFront instance. You can use Route 53 for this purpose.",-1),W=e("p",null,[o("See "),e("a",{href:"https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html",target:"_blank",rel:"noopener noreferrer"},"Routing traffic to an Amazon CloudFront web distribution by using your domain name"),o(" for more information.")],-1),H="AWS",N=!1,G="How to host Directus on AWS.",L="2 min read",V={__name:"aws",setup(z,{expose:r}){const a={title:"AWS",modularExtension:!1,description:"How to host Directus on AWS.",readTime:"2 min read"};return r({frontmatter:a}),(R,F)=>{const n=s("router-link"),i=s("docs-wrapper");return c(),d(i,{frontmatter:a},{default:t(()=>[e("div",u,[h,p,f,m,e("p",null,[o("We recommend setting up a repo in GitHub (or another Git provider) and configuring it using "),l(n,{to:"/docs/self-hosted/installation/manual"},{default:t(()=>[o("our manual installation flow")]),_:1}),o(". This allows you to later hook up the repo to your Elastic Beanstalk instance through CodeDeploy.")]),_,e("p",null,[o("Directus\u2019 configuration is all set through environment variables. For a full overview of all available environment variables, see "),l(n,{to:"/docs/self-hosted/config-options"},{default:t(()=>[o("Environment Variables")]),_:1})]),b,g,y,w,k,v,S,D,C,A,E,B,x,W])]),_:1})}}};export{V as default,G as description,N as modularExtension,L as readTime,H as title};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,o as u,
|
|
1
|
+
import{a,o as u,e as c,y as o,u as e,q as t,z as n}from"./runtime-core.esm-bundler.22ec0346.js";const d={class:"markdown-body"},p=e("blockquote",null,[e("p",null,[t("Directus is both "),e("em",null,"premium"),t(" and "),e("em",null,"free"),t(" \u2014 two things that don\u2019t often go together. It takes significant resources to maintain the platform. If you\u2019d like to help keep development active, please consider supporting Directus through one of the methods below.")])],-1),h=e("h2",{id:"brand-advocacy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#brand-advocacy"},"#"),t(" Brand Advocacy")],-1),m=e("p",null,[e("strong",null,"You can create perfect software, but if no one knows about it, it\u2019s all for naught. Marketing and advertising are expensive. You can help us cut these costs with the following quick options.")],-1),f=e("p",null,[e("strong",null,"GitHub Stars"),e("br"),t(" As an open-source project, stars are a primary metric by which we measure our success. It only takes a few seconds to head to the "),e("a",{href:"https://github.com/directus/directus",target:"_blank",rel:"noopener noreferrer"},"Directus GitHub Repo"),t(" and click the star. With enough activity in a short period of time, we get "),e("em",null,"even more exposure"),t(" on GitHub\u2019s trending page!")],-1),g=e("p",null,[e("strong",null,"Social Posts"),e("br"),t(" Engage with us on social media. Follow us! A quick post mentioning "),e("a",{href:"https://twitter.com/directus",target:"_blank",rel:"noopener noreferrer"},"@directus"),t(" goes a long way! "),e("em",null,"Plus, we re-tweet the team\u2019s favorite shout-outs to our 45K+ followers.")],-1),_=e("strong",null,"Testimonials",-1),b=e("br",null,null,-1),w=e("em",null,"One sentence.",-1),y=e("em",null,"need to hear your testimonial",-1),k=e("a",{href:"https://twitter.com/directus",target:"_blank",rel:"noopener noreferrer"},"Tweet",-1),v=e("a",{href:"https://directus.chat",target:"_blank",rel:"noopener noreferrer"},"Discord",-1),x=e("p",null,[e("strong",null,"Reviews"),e("br"),t(" The following popular rating platforms allow you to post your rating and testimonial publicly, which automatically gives it more exposure.")],-1),C=e("ul",null,[e("li",null,[e("a",{href:"https://www.g2.com/products/directus/reviews",target:"_blank",rel:"noopener noreferrer"},"G2")]),e("li",null,[e("a",{href:"https://www.capterra.com/p/156619/Directus",target:"_blank",rel:"noopener noreferrer"},"Capterra")]),e("li",null,[e("a",{href:"https://www.trustradius.com/products/directus/reviews",target:"_blank",rel:"noopener noreferrer"},"TrustRadius")]),e("li",null,[e("a",{href:"https://www.producthunt.com/posts/directus-9",target:"_blank",rel:"noopener noreferrer"},"Product Hunt")])],-1),D=e("h2",{id:"community-engagement",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#community-engagement"},"#"),t(" Community Engagement")],-1),T=e("p",null,[e("strong",null,"While the Directus Core Team spearheads development, community engagement is an essential part of the Directus mission. We need your help in order to make Directus all it can be.")],-1),G=e("p",null,[e("strong",null,"GitHub Sponsors"),e("br"),t(" The core team is funded. All monthly donations via "),e("a",{href:"https://github.com/sponsors/directus",target:"_blank",rel:"noopener noreferrer"},"GitHub Sponsors"),t(" form a budget to compensate the top community contributors. Donate to sponsor more "),e("a",{href:"https://github.com/orgs/directus/people",target:"_blank",rel:"noopener noreferrer"},"community developers")],-1),S=e("p",null,[e("strong",null,"Code Pull Requests"),e("br"),t(" Squashing bugs, optimizing the codebase, increasing test coverage, and adding new features, are all extremely valuable. Obviously, you\u2019re making the platform better for yourself as well. "),e("em",null,"That\u2019s a double whammy!"),t(),e("a",{href:"https://github.com/directus",target:"_blank",rel:"noopener noreferrer"},"Go make your PR on GitHub!")],-1),E=e("p",null,[e("strong",null,"Bug Reporting"),e("br"),t(" If you find an issue in Directus, no matter how small, we\u2019d love to hear about it. Proper bug reporting helps our team improve platform stability. "),e("a",{href:"https://github.com/directus/directus/issues/new",target:"_blank",rel:"noopener noreferrer"},"Report a bug on GitHub")],-1),q=e("strong",null,"App Translations",-1),H=e("br",null,null,-1),P=e("a",{href:"https://locales.directus.io",target:"_blank",rel:"noopener noreferrer"},"Crowdin integration",-1),R=e("h2",{id:"financial-support",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#financial-support"},"#"),t(" Financial Support")],-1),W=e("p",null,[e("strong",null,"Talented full-time and part-time staff, infrastructure, and third-party services are just some of our organization\u2019s many expenses. Here are a few support avenues that help us keep the lights on.")],-1),z=e("p",null,[e("strong",null,"Premium Support"),e("br"),e("em",null,"Software engineering is hard!"),t(" Let our Core Team help you better manage your Directus project with a dedicated Premium Support agreement so your devs can focus on your app\u2019s core business logic. "),e("a",{href:"https://directus.io/contact",target:"_blank",rel:"noopener noreferrer"},"Contact the Team"),t(" for more info.")],-1),B=e("strong",null,"Sponsored Work",-1),j=e("br",null,null,-1),A=e("em",null,"and for your project!",-1),I=e("strong",null,"Directus Cloud",-1),N=e("br",null,null,-1),F={class:"tip hint"},O=e("div",{class:"hint-title"},"Ready to try out Cloud?",-1),V=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Enterprise Cloud"),e("p",null,[t("Need total customization, unlimited scalability, and dedicated support? "),e("a",{href:"https://directus.io/contact",target:"_blank",rel:"noopener noreferrer"},"Contact us")])],-1),Q="Backing Directus",J=!1,U="What you can do to support Directus.",X="4 min read",Z={__name:"backing-directus",setup(Y,{expose:i}){const s={title:"Backing Directus",modularExtension:!1,description:"What you can do to support Directus.",readTime:"4 min read"};return i({frontmatter:s}),(L,M)=>{const r=a("router-link"),l=a("docs-wrapper");return u(),c(l,{frontmatter:s},{default:o(()=>[e("div",d,[p,h,m,f,g,e("p",null,[_,b,w,t(" Even that was a sentence and it was only two words! If you\u2019re a fan of Directus, we\u2019d love to hear why with a short endorsement\u2026 More importantly, potential new users "),y,t(" to see if the product is right for them! Shoot us an "),n(r,{to:"/docsmailto:info@directus.io"},{default:o(()=>[t("email")]),_:1}),t(", "),k,t(", or "),v,t(" message with your name, title, and company.")]),x,C,D,T,G,S,e("p",null,[t("Not quite a software engineer yet? We have plenty of documentation that can always use some extra attention. Learn more in our "),n(r,{to:"/docs/contributing/introduction"},{default:o(()=>[t("Contributors Guide")]),_:1}),t(".")]),E,e("p",null,[q,H,t(" Every button, element, or other line of text in the app is "),n(r,{to:"/docs/contributing/translations"},{default:o(()=>[t("fully translatable")]),_:1}),t(". These translations make our app an international platform. Our "),P,t(" makes polishing existing translations or creating new ones a breeze.")]),R,W,z,e("p",null,[B,j,n(r,{to:"/docs/getting-started/support#commissioned-features"},{default:o(()=>[t("Commissioned Features")]),_:1}),t(" and "),n(r,{to:"/docs/getting-started/support#expedited-fixes"},{default:o(()=>[t("Expedited Fixes")]),_:1}),t(" are great ways to financially support the development of Directus and improve the codebase for the community "),A]),e("p",null,[I,N,t(" Cloud architecture, software updates, and configuration optimizations require fully dedicated effort. Cut through all that digital red-tape and run your projects on "),n(r,{to:"/docs/cloud/overview"},{default:o(()=>[t("Directus Cloud")]),_:1}),t(". You get production-ready projects with zero vendor lock-in, 90 second average build times, incredibly fair pricing, scaling at the click of a button, automatic updates with no downtime and a constant stream of new "),n(r,{to:"/docs/cloud/glossary#extensions"},{default:o(()=>[t("Cloud Exclusive Extensions")]),_:1}),t(".")]),e("p",null,[t("We do everything we can to make hosting on "),n(r,{to:"/docs/cloud/overview"},{default:o(()=>[t("Directus Cloud")]),_:1}),t(" a no-brainer.")]),e("div",F,[O,e("p",null,[t("Test out Directus Cloud now for free with the "),n(r,{to:"/docs/getting-started/quickstart"},{default:o(()=>[t("Quickstart Guide")]),_:1}),t(".")])]),V])]),_:1})}}};export{Z as default,U as description,J as modularExtension,X as readTime,Q as title};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{y as u}from"./index.312f2c91.entry.js";function l(f,i){for(var t=0;t<i.length;t++){const o=i[t];if(typeof o!="string"&&!Array.isArray(o)){for(const e in o)if(e!=="default"&&!(e in f)){const n=Object.getOwnPropertyDescriptor(o,e);n&&Object.defineProperty(f,e,n.get?n:{enumerable:!0,get:()=>o[e]})}}}return Object.freeze(Object.defineProperty(f,Symbol.toStringTag,{value:"Module"}))}var c={exports:{}};(function(f,i){(function(t){t(u.exports)})(function(t){var o="><+-.,[]".split("");t.defineMode("brainfuck",function(){return{startState:function(){return{commentLine:!1,left:0,right:0,commentLoop:!1}},token:function(e,n){if(e.eatSpace())return null;e.sol()&&(n.commentLine=!1);var r=e.next().toString();if(o.indexOf(r)!==-1){if(n.commentLine===!0)return e.eol()&&(n.commentLine=!1),"comment";if(r==="]"||r==="[")return r==="["?n.left++:n.right++,"bracket";if(r==="+"||r==="-")return"keyword";if(r==="<"||r===">")return"atom";if(r==="."||r===",")return"def"}else return n.commentLine=!0,e.eol()&&(n.commentLine=!1),"comment";e.eol()&&(n.commentLine=!1)}}}),t.defineMIME("text/x-brainfuck","brainfuck")})})();const m=c.exports,s=l({__proto__:null,default:m},[c.exports]);export{s as b};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{a as i,o as r,
|
|
1
|
+
import{a as i,o as r,e as d,y as n,u as e,q as t,z as s}from"./runtime-core.esm-bundler.22ec0346.js";const h={class:"markdown-body"},u=e("blockquote",null,[e("p",null,"Directus has two command line interfaces (CLI) that you can use for various actions. One is used for server-side actions that relate to your on-prem instance, like migrating the database or resetting a user, while the other allows you to interact with a Directus instance as you would with an SDK.")],-1),p=e("h2",{id:"server",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#server"},"#"),t(" Server")],-1),m=e("p",null,[t("For server-side CLI, all functionality can be accessed by running "),e("code",null,"npx directus <command>"),t(" in your project folder.")],-1),_=e("h3",{id:"initialize-a-new-project",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#initialize-a-new-project"},"#"),t(" Initialize a New Project")],-1),g=e("pre",null,[e("code",{class:"language-bash"},`npx directus init
|
|
2
2
|
`)],-1),f=e("p",null,[t("Will install the required database driver, and create a "),e("code",null,".env"),t(" file based on the inputted values.")],-1),y=e("h3",{id:"bootstrap-a-project",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#bootstrap-a-project"},"#"),t(" Bootstrap a Project")],-1),b=e("pre",null,[e("code",{class:"language-bash"},`npx directus bootstrap
|
|
3
3
|
`)],-1),w=e("p",null,[t("Will use an existing "),e("code",null,".env"),t(" file (or existing environment variables) to either install the database (if it\u2019s empty) or migrate it to the latest version (if it already exists and has missing migrations).")],-1),x={class:"tip hint"},v=e("div",{class:"hint-title"},"First User",-1),T=e("code",null,"ADMIN_EMAIL",-1),k=e("code",null,"ADMIN_PASSWORD",-1),j=e("code",null,"bootstrap",-1),D=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Skip Admin User/Role"),e("p",null,[t("You can pass the "),e("code",null,"--skipAdminInit"),t(" option to "),e("code",null,"bootstrap"),t(", if you\u2019re creating your Admin role/user in another way (with a custom migration or an external service, for example).")])],-1),I=e("h3",{id:"install-the-database",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#install-the-database"},"#"),t(" Install the Database")],-1),C=e("pre",null,[e("code",{class:"language-bash"},`npx directus database install
|
|
4
4
|
`)],-1),L=e("p",null,[t("Installs the initial Directus system tables on an empty database. Used internally by "),e("code",null,"bootstrap"),t(".")],-1),S=e("p",null,[t("It should be used only in specific cases, e.g. when you want to run something between "),e("code",null,"install"),t(" and "),e("code",null,"migrate"),t(". You probably should call "),e("code",null,"directus database migrate:latest"),t(" afterwards manually.")],-1),Y=e("p",null,[t("You may want to use "),e("code",null,"directus bootstrap"),t(" instead.")],-1),A=e("h3",{id:"upgrade-the-database",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#upgrade-the-database"},"#"),t(" Upgrade the Database")],-1),M=e("pre",null,[e("code",{class:"language-bash"},`npx directus database migrate:latest
|
|
5
5
|
npx directus database migrate:up
|
|
6
6
|
npx directus database migrate:down
|
|
7
|
-
`)],-1),
|
|
8
|
-
`)],-1),
|
|
7
|
+
`)],-1),q=e("p",null,[t("Migrate the database up/down to match the versions of Directus. Once you update Directus itself, make sure to run "),e("code",null,"npx directus database migrate:latest"),t(" (or "),e("code",null,"npx directus bootstrap"),t(") to update your database.")],-1),N=e("h3",{id:"migrate-schema-to-a-different-environment",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#migrate-schema-to-a-different-environment"},"#"),t(" Migrate Schema to a different Environment")],-1),B=e("p",null,"This allows you to do things like migrate a schema from development to production. To move your configured data model between Directus instances, you can use the schema \u201Csnapshot\u201D and \u201Capply\u201D commands.",-1),U=e("h4",{id:"snapshot-the-data-model",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#snapshot-the-data-model"},"#"),t(" Snapshot the Data Model")],-1),O=e("p",null,"Directus can automatically generate a snapshot of your current data model in YAML or JSON format. This includes all collections, fields, and relations, and their configuration. This snapshot can be checked in version control and shared with your team. To generate the snapshot, run",-1),F=e("pre",null,[e("code",{class:"language-bash"},`npx directus schema snapshot ./snapshot.yaml
|
|
8
|
+
`)],-1),E=e("p",null,"To run non-interactively (e.g. when running in a CI/CD workflow), run",-1),P=e("pre",null,[e("code",{class:"language-bash"},[t("npx directus schema snapshot --"),e("span",{class:"hljs-built_in"},"yes"),t(` ./snapshot.yaml
|
|
9
9
|
`)])],-1),W=e("p",null,"Note, that this will force overwrite existing snapshot files.",-1),z=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Date-based snapshots"),e("p",null,[t("To keep multiple snapshot organized by date, create a folder "),e("code",null,"snapshots"),t(" in your project root directory add the following custom script to your "),e("code",null,"package.json"),t(":")]),e("pre",null,[e("code",{class:"language-bash"},[e("span",{class:"hljs-string"},'"create-snapshot"'),t(": "),e("span",{class:"hljs-string"},[t('"npx directus schema snapshot ./snapshots/\\"'),e("span",{class:"hljs-subst"},'$(date \\"+%F\\")'),t('\\"-snapshot-\\"'),e("span",{class:"hljs-subst"},'$(date \\"+%s\\")'),t('\\".yaml"')]),t(`
|
|
10
10
|
`)])]),e("p",null,[t("When you run the command via "),e("code",null,"npm run create-snapshot"),t(" it will create a new snapshot with the following naming schema: "),e("code",null,"[YYYY-MM-DD]-snapshot-[timestamp].yaml"),t(". This command can be run e.g by your deployment pipeline before each deploy on your server to keep a schema backup.")])],-1),K=e("h4",{id:"applying-a-snapshot",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#applying-a-snapshot"},"#"),t(" Applying a Snapshot")],-1),V=e("p",null,"To make a different instance up to date with the latest changes in your data model, you can apply the snapshot. By applying the snapshot, Directus will auto-detect the changes required to make the current instance up to date with the proposed data model in the snapshot file, and will run the required migrations to the database to make it match the snapshot.",-1),J=e("p",null,"To apply the generated snapshot, run",-1),R=e("pre",null,[e("code",{class:"language-bash"},`npx directus schema apply ./path/to/snapshot.yaml
|
|
11
11
|
`)],-1),$=e("p",null,"To run non-interactively (e.g. when running in a CI/CD workflow), run",-1),G=e("pre",null,[e("code",{class:"language-bash"},[t("npx directus schema apply --"),e("span",{class:"hljs-built_in"},"yes"),t(` ./path/to/snapshot.yaml
|
|
@@ -16,4 +16,4 @@ npx directus database migrate:down
|
|
|
16
16
|
`)],-1),le=e("p",null,[t("To create a new role with admin access, set the "),e("code",null,"--admin"),t(" flag to "),e("code",null,"true"),t(", such as")],-1),ce=e("pre",null,[e("code",{class:"language-bash"},[t("npx directus roles create --role <role-name> --admin "),e("span",{class:"hljs-literal"},"true"),t(`
|
|
17
17
|
`)])],-1),re=e("h3",{id:"count-items-in-a-collection",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#count-items-in-a-collection"},"#"),t(" Count Items in a Collection")],-1),de=e("p",null,"To count the amount of items in a given collection, run",-1),he=e("pre",null,[e("code",{class:"language-bash"},`npx directus count <collection-name>
|
|
18
18
|
`)],-1),ue=e("hr",null,null,-1),pe=e("h2",{id:"client",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#client"},"#"),t(" Client")],-1),me=e("p",null,[t("For the client-side CLI, all functionality can be accessed by running "),e("code",null,"npx directusctl <command>"),t(". You can also install "),e("code",null,"@directus/cli"),t(" on your project dependencies or globally on your machine. Note that if you run "),e("code",null,"directusctl"),t(" (installed globally) in a folder containing a project that has a version of "),e("code",null,"@directus/cli"),t(" installed, the running global CLI will forward it\u2019s execution to the local installed version instead.")],-1),_e=e("h3",{id:"help-%26-documentation",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#help-%26-documentation"},"#"),t(" Help & Documentation")],-1),ge=e("p",null,[t("The documentation for all commands can be accessed through the CLI itself. You can list all the available commands through "),e("code",null,"directusctl --help"),t(" command. If you want help for a specific command you can use "),e("code",null,"directusctl <command> --help"),t(" instead.")],-1),fe=e("h3",{id:"instances",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#instances"},"#"),t(" Instances")],-1),ye=e("p",null,[t("Most client-side CLI commands needs a running Directus instance in order to work. To connect the CLI to an instance, you can use "),e("code",null,"directusctl instance connect"),t(" command. These instance\u2019s configs are going to be saved on "),e("code",null,"~/.directus"),t(" folder.")],-1),be=e("p",null,[t("To manage the connected instances, you can use "),e("code",null,"directusctl instance <command>"),t(" commands.")],-1),we=e("h4",{id:"selecting-instances",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#selecting-instances"},"#"),t(" Selecting instances")],-1),xe=e("p",null,[t("By default, commands will try using an instance named "),e("code",null,"default"),t(" when executing commands.")],-1),ve=e("p",null,[t("If you want to change which instance you want to use, either pass "),e("code",null,"--instance <name>"),t(" to the command, or configure "),e("code",null,"instance"),t(" variable on your project\u2019s Directus config file.")],-1),Te=e("p",null,"For example:",-1),ke=e("blockquote",null,[e("p",null,".directus.yml")],-1),je=e("pre",null,[e("code",{class:"language-yaml"},[e("span",{class:"hljs-attr"},"instance:"),t(),e("span",{class:"hljs-string"},"my-project"),t(`
|
|
19
|
-
`)])],-1),De=e("h3",{id:"i%2Fo",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#i%2Fo"},"#"),t(" I/O")],-1),Ie=e("p",null,[t("The CLI is designed with ease of use and automation in mind, this means that you can change the way the output is made by setting how you want the data to be written to the terminal. We currently support three formats, "),e("code",null,"table"),t(" (the default one), "),e("code",null,"json"),t(" and "),e("code",null,"yaml"),t(".")],-1),Ce=e("p",null,[t("This makes it easier to parse and use data from Directus with other tools like "),e("code",null,"jq"),t(", "),e("code",null,"yq"),t(", "),e("code",null,"grep"),t(" or any other tools that accepts data from "),e("code",null,"stdin")],-1),Le=e("p",null,[t("It\u2019s also worth mentioning that everything is data. Try for example running "),e("code",null,"directusctl --help --format=json"),t(".")],-1),Se=e("h4",{id:"table",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#table"},"#"),t(" Table")],-1),Ye=e("p",null,"The default output format. This is the \u201Cpretty\u201D output, you\u2019ll most likely want to use this if you\u2019re not dealing with data in a way you need to pipe it to another command and/or store it for parsing.",-1),Ae=e("p",null,"This output will output colors and highlight content if it detects you\u2019re running in TTL.",-1),Me=e("h4",{id:"json",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#json"},"#"),t(" JSON")],-1),
|
|
19
|
+
`)])],-1),De=e("h3",{id:"i%2Fo",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#i%2Fo"},"#"),t(" I/O")],-1),Ie=e("p",null,[t("The CLI is designed with ease of use and automation in mind, this means that you can change the way the output is made by setting how you want the data to be written to the terminal. We currently support three formats, "),e("code",null,"table"),t(" (the default one), "),e("code",null,"json"),t(" and "),e("code",null,"yaml"),t(".")],-1),Ce=e("p",null,[t("This makes it easier to parse and use data from Directus with other tools like "),e("code",null,"jq"),t(", "),e("code",null,"yq"),t(", "),e("code",null,"grep"),t(" or any other tools that accepts data from "),e("code",null,"stdin")],-1),Le=e("p",null,[t("It\u2019s also worth mentioning that everything is data. Try for example running "),e("code",null,"directusctl --help --format=json"),t(".")],-1),Se=e("h4",{id:"table",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#table"},"#"),t(" Table")],-1),Ye=e("p",null,"The default output format. This is the \u201Cpretty\u201D output, you\u2019ll most likely want to use this if you\u2019re not dealing with data in a way you need to pipe it to another command and/or store it for parsing.",-1),Ae=e("p",null,"This output will output colors and highlight content if it detects you\u2019re running in TTL.",-1),Me=e("h4",{id:"json",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#json"},"#"),t(" JSON")],-1),qe=e("p",null,"This format will output JSON notation strings to your terminal. By default if TTY is detected, it will highlight (can be turned off with special flags) and prettify the output to make it easier to read.",-1),Ne=e("p",null,[t("Useful when you need to parse data using tools like "),e("code",null,"jq"),t(" for example.")],-1),Be=e("h4",{id:"yaml",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#yaml"},"#"),t(" YAML")],-1),Ue=e("p",null,"This format will output YAML strings to your terminal. By default if TTY is detected, it will highlight (can be turned off with special flags) and prettify the output to make it easier to read.",-1),Oe=e("p",null,[t("Useful when you need to parse data using tools like "),e("code",null,"jq"),t(" for example.")],-1),ze="Command Line Interface",Ke=!1,Ve="Directus has two command line interfaces (CLI) that you can use for various actions, one for server-side actions and another to interact with a Directus instance as you would with an SDK",Je="7 min read",Re={__name:"cli",setup(Fe,{expose:l}){const o={title:"Command Line Interface",modularExtension:!1,description:"Directus has two command line interfaces (CLI) that you can use for various actions, one for server-side actions and another to interact with a Directus instance as you would with an SDK",readTime:"7 min read"};return l({frontmatter:o}),(Ee,Pe)=>{const a=i("router-link"),c=i("docs-wrapper");return r(),d(c,{frontmatter:o},{default:n(()=>[e("div",h,[u,p,m,_,g,f,y,b,w,e("p",null,[t("This is very useful to use in environments where you\u2019re doing standalone automatic deployments, like a multi-container Kubernetes configuration, or a similar approach on "),s(a,{to:"/docs/self-hosted/installation/digitalocean-app-platform"},{default:n(()=>[t("DigitalOcean App Platform")]),_:1}),t(", "),s(a,{to:"/docs/self-hosted/installation/gcp"},{default:n(()=>[t("Google Cloud Platform")]),_:1}),t(" or "),s(a,{to:"/docs/self-hosted/installation/aws"},{default:n(()=>[t("AWS Elastic Beanstalk")]),_:1})]),e("div",x,[v,e("p",null,[t("You can use the "),T,t(" and "),k,t(" environment variables to automatically provision the first user on first creation using the "),j,t(" command. See "),s(a,{to:"/docs/self-hosted/config-options#general"},{default:n(()=>[t("Environment Variables")]),_:1}),t(" for more information.")])]),D,I,C,L,S,Y,A,M,q,N,B,U,O,F,E,P,W,z,K,V,J,R,$,G,H,Q,X,Z,ee,te,ne,ae,se,oe,ie,e("p",null,[t("These roles are created with the "),s(a,{to:"/docs/configuration/users-roles-permissions#configure-system-permissions"},{default:n(()=>[t("minimum permissions required")]),_:1}),t(" to properly access the App by default.")]),le,ce,re,de,he,ue,pe,me,_e,ge,fe,ye,be,we,xe,ve,Te,ke,je,De,Ie,Ce,Le,Se,Ye,Ae,Me,qe,Ne,Be,Ue,Oe])]),_:1})}}};export{Re as default,Ve as description,Ke as modularExtension,Je as readTime,ze as title};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as s,o as c,
|
|
1
|
+
import{a as s,o as c,e as u,y as n,u as e,q as t,z as l}from"./runtime-core.esm-bundler.22ec0346.js";const d={class:"markdown-body"},p=e("h2",{id:"1.-confirm-minimum-requirements",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#1.-confirm-minimum-requirements"},"#"),t(" 1. Confirm Minimum Requirements")],-1),h=e("p",null,[t("Directus requires two things to run: "),e("a",{href:"https://nodejs.dev",target:"_blank",rel:"noopener noreferrer"},"Node.js"),t(" and a Database. For both these system requirements, we aim to support the current LTS release (and newer).")],-1),_=e("p",null,"To run Directus, you currently need Node 12.20 or newer, and one of the following databases:",-1),m=e("table",null,[e("thead",null,[e("tr",null,[e("th",null,"Database"),e("th",null,"Version")])]),e("tbody",null,[e("tr",null,[e("td",null,"PostgreSQL"),e("td",null,"10+")]),e("tr",null,[e("td",null,[t("MySQL "),e("sup",null,"[1]")]),e("td",null,"5.7.8+ / 8+")]),e("tr",null,[e("td",null,"SQLite"),e("td",null,"3+")]),e("tr",null,[e("td",null,"MS SQL Server"),e("td",null,"13+")]),e("tr",null,[e("td",null,[t("MariaDB "),e("sup",null,"[2]")]),e("td",null,"10.2.7+")]),e("tr",null,[e("td",null,[t("CockroachDB "),e("sup",null,"[2]")]),e("td",null,"21.1.13+")]),e("tr",null,[e("td",null,[t("OracleDB"),e("sup",null,"[2]"),t(),e("sup",null,"[3]")]),e("td",null,"19+")])])],-1),f=e("p",null,[e("sup",null,"[1]"),t(" MySQL 8+ requires "),e("a",{href:"https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password-compatible-connectors",target:"_blank",rel:"noopener noreferrer"},"mysql_native_password"),t(" to be enabled"),e("br"),e("sup",null,"[2]"),t(" Older versions may work, but aren\u2019t officially supported. Use at your own risk. "),e("br"),e("sup",null,"[3]"),t(" Make sure to install "),e("code",null,"node-oracledb"),t(" and it\u2019s system dependencies when using OracleDB")],-1),g=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Variants"),e("p",null,[t("In addition to the databases above, other variants are also supported, including "),e("strong",null,"AWS Aurora"),t(" (MySQL), "),e("strong",null,"AWS Redshift"),t(" (PostgreSQL), "),e("strong",null,"Azure SQL"),t(" (MS SQL).")])],-1),y=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Apple Silicon"),e("p",null,[t("When installing Directus on an Apple-made ARM CPU, make sure you have "),e("code",null,"libvips"),t(" installed. See "),e("a",{href:"https://sharp.pixelplumbing.com/install#apple-m1",target:"_blank",rel:"noopener noreferrer"},"Apple M1"),t(".")])],-1),b=e("h2",{id:"2.-create-a-project",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#2.-create-a-project"},"#"),t(" 2. Create a Project")],-1),w=e("p",null,"Navigate to the directory where you wish to create a new Directus project. The new project and directory will be created inside the current directory. Create a new Directus project by running the following npm command.",-1),v=e("pre",null,[e("code",{class:"language-bash"},`npm init directus-project my-project
|
|
2
2
|
`)],-1),j=e("div",{class:"warning hint"},[e("p",null,"Except for SQLite, the database must already be running before creating your Directus project.")],-1),S=e("h2",{id:"3.-start-your-project",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#3.-start-your-project"},"#"),t(" 3. Start your Project")],-1),D=e("p",null,[t("To start Directus, navigate to the project directory, "),e("em",null,"my-project"),t(".")],-1),L=e("pre",null,[e("code",{class:"language-bash"},[e("span",{class:"hljs-built_in"},"cd"),t(` my-project
|
|
3
3
|
`)])],-1),k=e("p",null,"Run the following command in your project directory.",-1),x=e("pre",null,[e("code",{class:"language-bash"},`npx directus start
|
|
4
|
-
`)],-1),C=e("h2",{id:"4.-view-your-project",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#4.-view-your-project"},"#"),t(" 4. View your Project")],-1),M=e("p",null,[t("The default port used by Directus is 8055. To view your project locally, go to "),e("code",null,"http://localhost:8055"),t(" in your browser.")],-1),P={class:"tip hint"},Q=e("div",{class:"hint-title"},"Changing Port",-1),T=e("code",null,"PORT",-1),
|
|
4
|
+
`)],-1),C=e("h2",{id:"4.-view-your-project",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#4.-view-your-project"},"#"),t(" 4. View your Project")],-1),M=e("p",null,[t("The default port used by Directus is 8055. To view your project locally, go to "),e("code",null,"http://localhost:8055"),t(" in your browser.")],-1),P={class:"tip hint"},Q=e("div",{class:"hint-title"},"Changing Port",-1),T=e("code",null,"PORT",-1),q=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},".env Permissions"),e("p",null,[t("By default, the "),e("code",null,"create-directus-project"),t(" tool will set the file permissions of the generated "),e("code",null,".env"),t(" to "),e("code",null,"-rw-r-----"),t(" (0640). If you run Directus from a separate user on your machine, make sure these permissions are correct.")])],-1),I=e("h2",{id:"configure-%2F-update-%2F-upgrade-your-project",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#configure-%2F-update-%2F-upgrade-your-project"},"#"),t(" Configure / Update / Upgrade your Project")],-1),F="Installing from CLI",R=!1,U="How to install Directus via CLI",O="2 min read",E={__name:"cli",setup(A,{expose:a}){const o={title:"Installing from CLI",modularExtension:!1,description:"How to install Directus via CLI",readTime:"2 min read"};return a({frontmatter:o}),(B,N)=>{const r=s("router-link"),i=s("docs-wrapper");return c(),u(i,{frontmatter:o},{default:n(()=>[e("div",d,[p,h,_,m,f,g,y,b,w,v,j,S,D,L,k,x,C,M,e("div",P,[Q,e("p",null,[t("If you want to use a different port, use "),l(r,{to:"/docs/self-hosted/config-options#general"},{default:n(()=>[t("the "),T,t(" environment variable")]),_:1}),t(".")])]),q,I,e("p",null,[t("See the "),l(r,{to:"/docs/self-hosted/upgrades-migrations"},{default:n(()=>[t("Updates & Migrations")]),_:1}),t(" to learn how to maintain your project moving forward.")])])]),_:1})}}};export{E as default,U as description,R as modularExtension,O as readTime,F as title};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{y as me}from"./index.312f2c91.entry.js";function ge(N,z){for(var y=0;y<z.length;y++){const g=z[y];if(typeof g!="string"&&!Array.isArray(g)){for(const m in g)if(m!=="default"&&!(m in N)){const k=Object.getOwnPropertyDescriptor(g,m);k&&Object.defineProperty(N,m,k.get?k:{enumerable:!0,get:()=>g[m]})}}}return Object.freeze(Object.defineProperty(N,Symbol.toStringTag,{value:"Module"}))}var ee={exports:{}};(function(N,z){(function(y){y(me.exports)})(function(y){function g(e,t,n,l,u,d){this.indented=e,this.column=t,this.type=n,this.info=l,this.align=u,this.prev=d}function m(e,t,n,l){var u=e.indented;return e.context&&e.context.type=="statement"&&n!="statement"&&(u=e.context.indented),e.context=new g(u,t,n,l,null,e.context)}function k(e){var t=e.context.type;return(t==")"||t=="]"||t=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}function R(e,t,n){if(t.prevToken=="variable"||t.prevToken=="type"||/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,n))||t.typeAtEndOfLine&&e.column()==e.indentation())return!0}function F(e){for(;;){if(!e||e.type=="top")return!0;if(e.type=="}"&&e.prev.info!="namespace")return!1;e=e.prev}}y.defineMode("clike",function(e,t){var n=e.indentUnit,l=t.statementIndentUnit||n,u=t.dontAlignCalls,d=t.keywords||{},E=t.types||{},oe=t.builtin||{},W=t.blockKeywords||{},ae=t.defKeywords||{},le=t.atoms||{},v=t.hooks||{},ce=t.multiLineStrings,se=t.indentStatements!==!1,ue=t.indentSwitch!==!1,G=t.namespaceSeparator,fe=t.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,de=t.numberStart||/[\d\.]/,pe=t.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,H=t.isOperatorChar||/[+\-*&%=<>!?|\/]/,Q=t.isIdentifierChar||/[\w\$_\xa1-\uffff]/,X=t.isReservedIdentifier||!1,p,O;function Y(o,a){var i=o.next();if(v[i]){var c=v[i](o,a);if(c!==!1)return c}if(i=='"'||i=="'")return a.tokenize=he(i),a.tokenize(o,a);if(de.test(i)){if(o.backUp(1),o.match(pe))return"number";o.next()}if(fe.test(i))return p=i,null;if(i=="/"){if(o.eat("*"))return a.tokenize=Z,Z(o,a);if(o.eat("/"))return o.skipToEnd(),"comment"}if(H.test(i)){for(;!o.match(/^\/[\/*]/,!1)&&o.eat(H););return"operator"}if(o.eatWhile(Q),G)for(;o.match(G);)o.eatWhile(Q);var f=o.current();return b(d,f)?(b(W,f)&&(p="newstatement"),b(ae,f)&&(O=!0),"keyword"):b(E,f)?"type":b(oe,f)||X&&X(f)?(b(W,f)&&(p="newstatement"),"builtin"):b(le,f)?"atom":"variable"}function he(o){return function(a,i){for(var c=!1,f,I=!1;(f=a.next())!=null;){if(f==o&&!c){I=!0;break}c=!c&&f=="\\"}return(I||!(c||ce))&&(i.tokenize=null),"string"}}function Z(o,a){for(var i=!1,c;c=o.next();){if(c=="/"&&i){a.tokenize=null;break}i=c=="*"}return"comment"}function J(o,a){t.typeFirstDefinitions&&o.eol()&&F(a.context)&&(a.typeAtEndOfLine=R(o,a,o.pos))}return{startState:function(o){return{tokenize:null,context:new g((o||0)-n,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(o,a){var i=a.context;if(o.sol()&&(i.align==null&&(i.align=!1),a.indented=o.indentation(),a.startOfLine=!0),o.eatSpace())return J(o,a),null;p=O=null;var c=(a.tokenize||Y)(o,a);if(c=="comment"||c=="meta")return c;if(i.align==null&&(i.align=!0),p==";"||p==":"||p==","&&o.match(/^\s*(?:\/\/.*)?$/,!1))for(;a.context.type=="statement";)k(a);else if(p=="{")m(a,o.column(),"}");else if(p=="[")m(a,o.column(),"]");else if(p=="(")m(a,o.column(),")");else if(p=="}"){for(;i.type=="statement";)i=k(a);for(i.type=="}"&&(i=k(a));i.type=="statement";)i=k(a)}else p==i.type?k(a):se&&((i.type=="}"||i.type=="top")&&p!=";"||i.type=="statement"&&p=="newstatement")&&m(a,o.column(),"statement",o.current());if(c=="variable"&&(a.prevToken=="def"||t.typeFirstDefinitions&&R(o,a,o.start)&&F(a.context)&&o.match(/^\s*\(/,!1))&&(c="def"),v.token){var f=v.token(o,a,c);f!==void 0&&(c=f)}return c=="def"&&t.styleDefs===!1&&(c="variable"),a.startOfLine=!1,a.prevToken=O?"def":c||p,J(o,a),c},indent:function(o,a){if(o.tokenize!=Y&&o.tokenize!=null||o.typeAtEndOfLine)return y.Pass;var i=o.context,c=a&&a.charAt(0),f=c==i.type;if(i.type=="statement"&&c=="}"&&(i=i.prev),t.dontIndentStatements)for(;i.type=="statement"&&t.dontIndentStatements.test(i.info);)i=i.prev;if(v.indent){var I=v.indent(o,i,a,n);if(typeof I=="number")return I}var ye=i.prev&&i.prev.info=="switch";if(t.allmanIndentation&&/[{(]/.test(c)){for(;i.type!="top"&&i.type!="}";)i=i.prev;return i.indented}return i.type=="statement"?i.indented+(c=="{"?0:l):i.align&&(!u||i.type!=")")?i.column+(f?0:1):i.type==")"&&!f?i.indented+l:i.indented+(f?0:n)+(!f&&ye&&!/^(?:case|default)\b/.test(a)?n:0)},electricInput:ue?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:"//",fold:"brace"}});function r(e){for(var t={},n=e.split(" "),l=0;l<n.length;++l)t[n[l]]=!0;return t}function b(e,t){return typeof e=="function"?e(t):e.propertyIsEnumerable(t)}var _="auto if break case register continue return default do sizeof static else struct switch extern typedef union for goto while enum const volatile inline restrict asm fortran",j="alignas alignof and and_eq audit axiom bitand bitor catch class compl concept constexpr const_cast decltype delete dynamic_cast explicit export final friend import module mutable namespace new noexcept not not_eq operator or or_eq override private protected public reinterpret_cast requires static_assert static_cast template this thread_local throw try typeid typename using virtual xor xor_eq",U="bycopy byref in inout oneway out self super atomic nonatomic retain copy readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd @interface @implementation @end @protocol @encode @property @synthesize @dynamic @class @public @package @private @protected @required @optional @try @catch @finally @import @selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available",B="FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT",te=r("int long char short double float unsigned signed void bool"),ne=r("SEL instancetype id Class Protocol BOOL");function S(e){return b(te,e)||/.+_t$/.test(e)}function A(e){return S(e)||b(ne,e)}var T="case do else for if switch while struct enum union",L="struct enum union";function w(e,t){if(!t.startOfLine)return!1;for(var n,l=null;n=e.peek();){if(n=="\\"&&e.match(/^.$/)){l=w;break}else if(n=="/"&&e.match(/^\/[\/\*]/,!1))break;e.next()}return t.tokenize=l,"meta"}function D(e,t){return t.prevToken=="type"?"type":!1}function P(e){return!e||e.length<2||e[0]!="_"?!1:e[1]=="_"||e[1]!==e[1].toLowerCase()}function s(e){return e.eatWhile(/[\w\.']/),"number"}function x(e,t){if(e.backUp(1),e.match(/^(?:R|u8R|uR|UR|LR)/)){var n=e.match(/^"([^\s\\()]{0,16})\(/);return n?(t.cpp11RawStringDelim=n[1],t.tokenize=q,q(e,t)):!1}return e.match(/^(?:u8|u|U|L)/)?e.match(/^["']/,!1)?"string":!1:(e.next(),!1)}function K(e){var t=/(\w+)::~?(\w+)$/.exec(e);return t&&t[1]==t[2]}function $(e,t){for(var n;(n=e.next())!=null;)if(n=='"'&&!e.eat('"')){t.tokenize=null;break}return"string"}function q(e,t){var n=t.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&"),l=e.match(new RegExp(".*?\\)"+n+'"'));return l?t.tokenize=null:e.skipToEnd(),"string"}function h(e,t){typeof e=="string"&&(e=[e]);var n=[];function l(d){if(d)for(var E in d)d.hasOwnProperty(E)&&n.push(E)}l(t.keywords),l(t.types),l(t.builtin),l(t.atoms),n.length&&(t.helperType=e[0],y.registerHelper("hintWords",e[0],n));for(var u=0;u<e.length;++u)y.defineMIME(e[u],t)}h(["text/x-csrc","text/x-c","text/x-chdr"],{name:"clike",keywords:r(_),types:S,blockKeywords:r(T),defKeywords:r(L),typeFirstDefinitions:!0,atoms:r("NULL true false"),isReservedIdentifier:P,hooks:{"#":w,"*":D},modeProps:{fold:["brace","include"]}}),h(["text/x-c++src","text/x-c++hdr"],{name:"clike",keywords:r(_+" "+j),types:S,blockKeywords:r(T+" class try catch"),defKeywords:r(L+" class namespace"),typeFirstDefinitions:!0,atoms:r("true false NULL nullptr"),dontIndentStatements:/^template$/,isIdentifierChar:/[\w\$_~\xa1-\uffff]/,isReservedIdentifier:P,hooks:{"#":w,"*":D,u:x,U:x,L:x,R:x,0:s,1:s,2:s,3:s,4:s,5:s,6:s,7:s,8:s,9:s,token:function(e,t,n){if(n=="variable"&&e.peek()=="("&&(t.prevToken==";"||t.prevToken==null||t.prevToken=="}")&&K(e.current()))return"def"}},namespaceSeparator:"::",modeProps:{fold:["brace","include"]}}),h("text/x-java",{name:"clike",keywords:r("abstract assert break case catch class const continue default do else enum extends final finally for goto if implements import instanceof interface native new package private protected public return static strictfp super switch synchronized this throw throws transient try volatile while @interface"),types:r("var byte short int long float double boolean char void Boolean Byte Character Double Float Integer Long Number Object Short String StringBuffer StringBuilder Void"),blockKeywords:r("catch class do else finally for if switch try while"),defKeywords:r("class interface enum @interface"),typeFirstDefinitions:!0,atoms:r("true false null"),number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,hooks:{"@":function(e){return e.match("interface",!1)?!1:(e.eatWhile(/[\w\$_]/),"meta")}},modeProps:{fold:["brace","import"]}}),h("text/x-csharp",{name:"clike",keywords:r("abstract as async await base break case catch checked class const continue default delegate do else enum event explicit extern finally fixed for foreach goto if implicit in interface internal is lock namespace new operator out override params private protected public readonly ref return sealed sizeof stackalloc static struct switch this throw try typeof unchecked unsafe using virtual void volatile while add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var yield"),types:r("Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32 UInt64 bool byte char decimal double short int long object sbyte float string ushort uint ulong"),blockKeywords:r("catch class do else finally for foreach if struct switch try while"),defKeywords:r("class interface namespace struct var"),typeFirstDefinitions:!0,atoms:r("true false null"),hooks:{"@":function(e,t){return e.eat('"')?(t.tokenize=$,$(e,t)):(e.eatWhile(/[\w\$_]/),"meta")}}});function re(e,t){for(var n=!1;!e.eol();){if(!n&&e.match('"""')){t.tokenize=null;break}n=e.next()=="\\"&&!n}return"string"}function M(e){return function(t,n){for(var l;l=t.next();)if(l=="*"&&t.eat("/"))if(e==1){n.tokenize=null;break}else return n.tokenize=M(e-1),n.tokenize(t,n);else if(l=="/"&&t.eat("*"))return n.tokenize=M(e+1),n.tokenize(t,n);return"comment"}}h("text/x-scala",{name:"clike",keywords:r("abstract case catch class def do else extends final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try type val var while with yield _ assert assume require print println printf readLine readBoolean readByte readShort readChar readInt readLong readFloat readDouble"),types:r("AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),multiLineStrings:!0,blockKeywords:r("catch class enum do else finally for forSome if match switch try while"),defKeywords:r("class enum def object package trait type val var"),atoms:r("true false null"),indentStatements:!1,indentSwitch:!1,isOperatorChar:/[+\-*&%=<>!?|\/#:@]/,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return e.match('""')?(t.tokenize=re,t.tokenize(e,t)):!1},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},"=":function(e,t){var n=t.context;return n.type=="}"&&n.align&&e.eat(">")?(t.context=new g(n.indented,n.column,n.type,n.info,null,n.prev),"operator"):!1},"/":function(e,t){return e.eat("*")?(t.tokenize=M(1),t.tokenize(e,t)):!1}},modeProps:{closeBrackets:{pairs:'()[]{}""',triples:'"'}}});function ie(e){return function(t,n){for(var l=!1,u,d=!1;!t.eol();){if(!e&&!l&&t.match('"')){d=!0;break}if(e&&t.match('"""')){d=!0;break}u=t.next(),!l&&u=="$"&&t.match("{")&&t.skipTo("}"),l=!l&&u=="\\"&&!e}return(d||!e)&&(n.tokenize=null),"string"}}h("text/x-kotlin",{name:"clike",keywords:r("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam value"),types:r("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:r("catch class do else finally for if where try while enum"),defKeywords:r("class val var object interface fun"),atoms:r("true false null this"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},"*":function(e,t){return t.prevToken=="."?"variable":"operator"},'"':function(e,t){return t.tokenize=ie(e.match('""')),t.tokenize(e,t)},"/":function(e,t){return e.eat("*")?(t.tokenize=M(1),t.tokenize(e,t)):!1},indent:function(e,t,n,l){var u=n&&n.charAt(0);if((e.prevToken=="}"||e.prevToken==")")&&n=="")return e.indented;if(e.prevToken=="operator"&&n!="}"&&e.context.type!="}"||e.prevToken=="variable"&&u=="."||(e.prevToken=="}"||e.prevToken==")")&&u==".")return l*2+t.indented;if(t.align&&t.type=="}")return t.indented+(e.context.type==(n||"").charAt(0)?0:l)}},modeProps:{closeBrackets:{triples:'"'}}}),h(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:r("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:r("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:r("for while do if else struct"),builtin:r("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:r("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":w},modeProps:{fold:["brace","include"]}}),h("text/x-nesc",{name:"clike",keywords:r(_+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:S,blockKeywords:r(T),atoms:r("null true false"),hooks:{"#":w},modeProps:{fold:["brace","include"]}}),h("text/x-objectivec",{name:"clike",keywords:r(_+" "+U),types:A,builtin:r(B),blockKeywords:r(T+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:r(L+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:r("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:P,hooks:{"#":w,"*":D},modeProps:{fold:["brace","include"]}}),h("text/x-objectivec++",{name:"clike",keywords:r(_+" "+U+" "+j),types:A,builtin:r(B),blockKeywords:r(T+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:r(L+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:r("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:P,hooks:{"#":w,"*":D,u:x,U:x,L:x,R:x,0:s,1:s,2:s,3:s,4:s,5:s,6:s,7:s,8:s,9:s,token:function(e,t,n){if(n=="variable"&&e.peek()=="("&&(t.prevToken==";"||t.prevToken==null||t.prevToken=="}")&&K(e.current()))return"def"}},namespaceSeparator:"::",modeProps:{fold:["brace","include"]}}),h("text/x-squirrel",{name:"clike",keywords:r("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:S,blockKeywords:r("case catch class else for foreach if switch try while"),defKeywords:r("function local class"),typeFirstDefinitions:!0,atoms:r("true false null"),hooks:{"#":w},modeProps:{fold:["brace","include"]}});var C=null;function V(e){return function(t,n){for(var l=!1,u,d=!1;!t.eol();){if(!l&&t.match('"')&&(e=="single"||t.match('""'))){d=!0;break}if(!l&&t.match("``")){C=V(e),d=!0;break}u=t.next(),l=e=="single"&&!l&&u=="\\"}return d&&(n.tokenize=null),"string"}}h("text/x-ceylon",{name:"clike",keywords:r("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(e){var t=e.charAt(0);return t===t.toUpperCase()&&t!==t.toLowerCase()},blockKeywords:r("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:r("class dynamic function interface module object package value"),builtin:r("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:r("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return t.tokenize=V(e.match('""')?"triple":"single"),t.tokenize(e,t)},"`":function(e,t){return!C||!e.match("`")?!1:(t.tokenize=C,C=null,t.tokenize(e,t))},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},token:function(e,t,n){if((n=="variable"||n=="type")&&t.prevToken==".")return"variable-2"}},modeProps:{fold:["brace","import"],closeBrackets:{triples:'"'}}})})})();const ke=ee.exports,we=ge({__proto__:null,default:ke},[ee.exports]);export{ee as a,we as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{y as S}from"./index.312f2c91.entry.js";function A(d,u){for(var o=0;o<u.length;o++){const i=u[o];if(typeof i!="string"&&!Array.isArray(i)){for(const a in i)if(a!=="default"&&!(a in d)){const s=Object.getOwnPropertyDescriptor(i,a);s&&Object.defineProperty(d,a,s.get?s:{enumerable:!0,get:()=>i[a]})}}}return Object.freeze(Object.defineProperty(d,Symbol.toStringTag,{value:"Module"}))}var y={exports:{}};(function(d,u){(function(o){o(S.exports)})(function(o){o.defineMode("clojure",function(i){var a=["false","nil","true"],s=[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],m=["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],b=["->","->>","as->","binding","bound-fn","case","catch","comment","cond","cond->","cond->>","condp","def","definterface","defmethod","defn","defmacro","defprotocol","defrecord","defstruct","deftype","do","doseq","dotimes","doto","extend","extend-protocol","extend-type","fn","for","future","if","if-let","if-not","if-some","let","letfn","locking","loop","ns","proxy","reify","struct-map","some->","some->>","try","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn"];o.registerHelper("hintWords","clojure",[].concat(a,s,m));var v=l(a),g=l(s),x=l(m),k=l(b),w=/^(?:[\\\[\]\s"(),;@^`{}~]|$)/,q=/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,j=/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,T=/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/;function p(t,e){if(t.eatSpace()||t.eat(","))return["space",null];if(t.match(q))return[null,"number"];if(t.match(j))return[null,"string-2"];if(t.eat(/^"/))return(e.tokenize=z)(t,e);if(t.eat(/^[(\[{]/))return["open","bracket"];if(t.eat(/^[)\]}]/))return["close","bracket"];if(t.eat(/^;/))return t.skipToEnd(),["space","comment"];if(t.eat(/^[#'@^`~]/))return[null,"meta"];var r=t.match(T),n=r&&r[0];return n?n==="comment"&&e.lastToken==="("?(e.tokenize=E)(t,e):c(n,v)||n.charAt(0)===":"?["symbol","atom"]:c(n,g)||c(n,x)?["symbol","keyword"]:e.lastToken==="("?["symbol","builtin"]:["symbol","variable"]:(t.next(),t.eatWhile(function(f){return!c(f,w)}),[null,"error"])}function z(t,e){for(var r=!1,n;n=t.next();){if(n==='"'&&!r){e.tokenize=p;break}r=!r&&n==="\\"}return[null,"string"]}function E(t,e){for(var r=1,n;n=t.next();)if(n===")"&&r--,n==="("&&r++,r===0){t.backUp(1),e.tokenize=p;break}return["space","comment"]}function l(t){for(var e={},r=0;r<t.length;++r)e[t[r]]=!0;return e}function c(t,e){if(e instanceof RegExp)return e.test(t);if(e instanceof Object)return e.propertyIsEnumerable(t)}return{startState:function(){return{ctx:{prev:null,start:0,indentTo:0},lastToken:null,tokenize:p}},token:function(t,e){t.sol()&&typeof e.ctx.indentTo!="number"&&(e.ctx.indentTo=e.ctx.start+1);var r=e.tokenize(t,e),n=r[0],f=r[1],h=t.current();return n!=="space"&&(e.lastToken==="("&&e.ctx.indentTo===null?n==="symbol"&&c(h,k)?e.ctx.indentTo=e.ctx.start+i.indentUnit:e.ctx.indentTo="next":e.ctx.indentTo==="next"&&(e.ctx.indentTo=t.column()),e.lastToken=h),n==="open"?e.ctx={prev:e.ctx,start:t.column(),indentTo:null}:n==="close"&&(e.ctx=e.ctx.prev||e.ctx),f},indent:function(t){var e=t.ctx.indentTo;return typeof e=="number"?e:t.ctx.start+1},closeBrackets:{pairs:'()[]{}""'},lineComment:";;"}}),o.defineMIME("text/x-clojure","clojure"),o.defineMIME("text/x-clojurescript","clojure"),o.defineMIME("application/edn","clojure")})})();const M=y.exports,P=A({__proto__:null,default:M},[y.exports]);export{P as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as l,o as a,
|
|
1
|
+
import{a as l,o as a,e as s,y as c,u as o,q as e}from"./runtime-core.esm-bundler.22ec0346.js";const d=o("div",{class:"markdown-body"},[o("p",null,"Directus is available as a 1-click install on the Cloudron Store."),o("p",null,[o("a",{href:"https://cloudron.io/button.html?app=io.directus9.cloudronapp",target:"_blank",rel:"noopener noreferrer"},[o("img",{src:"https://cloudron.io/img/button.svg",alt:"Install"})])]),o("p",null,[e("The source code for the package can be found "),o("a",{href:"https://git.cloudron.io/cloudron/directus-app",target:"_blank",rel:"noopener noreferrer"},"here"),e(".")]),o("p",null,[e("You can also test the directus installation on the demo Cloudron instance - "),o("a",{href:"https://my.demo.cloudron.io",target:"_blank",rel:"noopener noreferrer"},"https://my.demo.cloudron.io"),e(" (username: "),o("code",null,"cloudron"),e(" password: "),o("code",null,"cloudron"),e(").")])],-1),h="Cloudron One-Click Install",_=!1,f="How to host Directus on Cloudron",k="1 min read",C={__name:"cloudron",setup(u,{expose:n}){const t={title:"Cloudron One-Click Install",modularExtension:!1,description:"How to host Directus on Cloudron",readTime:"1 min read"};return n({frontmatter:t}),(i,p)=>{const r=l("docs-wrapper");return a(),s(r,{frontmatter:t},{default:c(()=>[d]),_:1})}}};export{C as default,f as description,_ as modularExtension,k as readTime,h as title};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{y as g}from"./index.312f2c91.entry.js";function d(f,u){for(var t=0;t<u.length;t++){const o=u[t];if(typeof o!="string"&&!Array.isArray(o)){for(const i in o)if(i!=="default"&&!(i in f)){const c=Object.getOwnPropertyDescriptor(o,i);c&&Object.defineProperty(f,i,c.get?c:{enumerable:!0,get:()=>o[i]})}}}return Object.freeze(Object.defineProperty(f,Symbol.toStringTag,{value:"Module"}))}var p={exports:{}};(function(f,u){(function(t){t(g.exports)})(function(t){t.defineMode("cmake",function(){var o=/({)?[a-zA-Z0-9_]+(})?/;function i(e,r){for(var n,a,l=!1;!e.eol()&&(n=e.next())!=r.pending;){if(n==="$"&&a!="\\"&&r.pending=='"'){l=!0;break}a=n}return l&&e.backUp(1),n==r.pending?r.continueString=!1:r.continueString=!0,"string"}function c(e,r){var n=e.next();return n==="$"?e.match(o)?"variable-2":"variable":r.continueString?(e.backUp(1),i(e,r)):e.match(/(\s+)?\w+\(/)||e.match(/(\s+)?\w+\ \(/)?(e.backUp(1),"def"):n=="#"?(e.skipToEnd(),"comment"):n=="'"||n=='"'?(r.pending=n,i(e,r)):n=="("||n==")"?"bracket":n.match(/[0-9]/)?"number":(e.eatWhile(/[\w-]/),null)}return{startState:function(){var e={};return e.inDefinition=!1,e.inInclude=!1,e.continueString=!1,e.pending=!1,e},token:function(e,r){return e.eatSpace()?null:c(e,r)}}}),t.defineMIME("text/x-cmake","cmake")})})();const k=p.exports,v=d({__proto__:null,default:k},[p.exports]);export{v as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{y as u}from"./index.312f2c91.entry.js";function Y(U,e){for(var R=0;R<e.length;R++){const O=e[R];if(typeof O!="string"&&!Array.isArray(O)){for(const A in O)if(A!=="default"&&!(A in U)){const D=Object.getOwnPropertyDescriptor(O,A);D&&Object.defineProperty(U,A,D.get?D:{enumerable:!0,get:()=>O[A]})}}}return Object.freeze(Object.defineProperty(U,Symbol.toStringTag,{value:"Module"}))}var G={exports:{}};(function(U,e){(function(R){R(u.exports)})(function(R){R.defineMode("cobol",function(){var O="builtin",A="comment",D="string",M="atom",o="number",r="keyword",B="header",l="def",F="link";function P(E){for(var T={},I=E.split(" "),L=0;L<I.length;++L)T[I[L]]=!0;return T}var n=P("TRUE FALSE ZEROES ZEROS ZERO SPACES SPACE LOW-VALUE LOW-VALUES "),t=P("ACCEPT ACCESS ACQUIRE ADD ADDRESS ADVANCING AFTER ALIAS ALL ALPHABET ALPHABETIC ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED ALSO ALTER ALTERNATE AND ANY ARE AREA AREAS ARITHMETIC ASCENDING ASSIGN AT ATTRIBUTE AUTHOR AUTO AUTO-SKIP AUTOMATIC B-AND B-EXOR B-LESS B-NOT B-OR BACKGROUND-COLOR BACKGROUND-COLOUR BEEP BEFORE BELL BINARY BIT BITS BLANK BLINK BLOCK BOOLEAN BOTTOM BY CALL CANCEL CD CF CH CHARACTER CHARACTERS CLASS CLOCK-UNITS CLOSE COBOL CODE CODE-SET COL COLLATING COLUMN COMMA COMMIT COMMITMENT COMMON COMMUNICATION COMP COMP-0 COMP-1 COMP-2 COMP-3 COMP-4 COMP-5 COMP-6 COMP-7 COMP-8 COMP-9 COMPUTATIONAL COMPUTATIONAL-0 COMPUTATIONAL-1 COMPUTATIONAL-2 COMPUTATIONAL-3 COMPUTATIONAL-4 COMPUTATIONAL-5 COMPUTATIONAL-6 COMPUTATIONAL-7 COMPUTATIONAL-8 COMPUTATIONAL-9 COMPUTE CONFIGURATION CONNECT CONSOLE CONTAINED CONTAINS CONTENT CONTINUE CONTROL CONTROL-AREA CONTROLS CONVERTING COPY CORR CORRESPONDING COUNT CRT CRT-UNDER CURRENCY CURRENT CURSOR DATA DATE DATE-COMPILED DATE-WRITTEN DAY DAY-OF-WEEK DB DB-ACCESS-CONTROL-KEY DB-DATA-NAME DB-EXCEPTION DB-FORMAT-NAME DB-RECORD-NAME DB-SET-NAME DB-STATUS DBCS DBCS-EDITED DE DEBUG-CONTENTS DEBUG-ITEM DEBUG-LINE DEBUG-NAME DEBUG-SUB-1 DEBUG-SUB-2 DEBUG-SUB-3 DEBUGGING DECIMAL-POINT DECLARATIVES DEFAULT DELETE DELIMITED DELIMITER DEPENDING DESCENDING DESCRIBED DESTINATION DETAIL DISABLE DISCONNECT DISPLAY DISPLAY-1 DISPLAY-2 DISPLAY-3 DISPLAY-4 DISPLAY-5 DISPLAY-6 DISPLAY-7 DISPLAY-8 DISPLAY-9 DIVIDE DIVISION DOWN DROP DUPLICATE DUPLICATES DYNAMIC EBCDIC EGI EJECT ELSE EMI EMPTY EMPTY-CHECK ENABLE END END. END-ACCEPT END-ACCEPT. END-ADD END-CALL END-COMPUTE END-DELETE END-DISPLAY END-DIVIDE END-EVALUATE END-IF END-INVOKE END-MULTIPLY END-OF-PAGE END-PERFORM END-READ END-RECEIVE END-RETURN END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT END-UNSTRING END-WRITE END-XML ENTER ENTRY ENVIRONMENT EOP EQUAL EQUALS ERASE ERROR ESI EVALUATE EVERY EXCEEDS EXCEPTION EXCLUSIVE EXIT EXTEND EXTERNAL EXTERNALLY-DESCRIBED-KEY FD FETCH FILE FILE-CONTROL FILE-STREAM FILES FILLER FINAL FIND FINISH FIRST FOOTING FOR FOREGROUND-COLOR FOREGROUND-COLOUR FORMAT FREE FROM FULL FUNCTION GENERATE GET GIVING GLOBAL GO GOBACK GREATER GROUP HEADING HIGH-VALUE HIGH-VALUES HIGHLIGHT I-O I-O-CONTROL ID IDENTIFICATION IF IN INDEX INDEX-1 INDEX-2 INDEX-3 INDEX-4 INDEX-5 INDEX-6 INDEX-7 INDEX-8 INDEX-9 INDEXED INDIC INDICATE INDICATOR INDICATORS INITIAL INITIALIZE INITIATE INPUT INPUT-OUTPUT INSPECT INSTALLATION INTO INVALID INVOKE IS JUST JUSTIFIED KANJI KEEP KEY LABEL LAST LD LEADING LEFT LEFT-JUSTIFY LENGTH LENGTH-CHECK LESS LIBRARY LIKE LIMIT LIMITS LINAGE LINAGE-COUNTER LINE LINE-COUNTER LINES LINKAGE LOCAL-STORAGE LOCALE LOCALLY LOCK MEMBER MEMORY MERGE MESSAGE METACLASS MODE MODIFIED MODIFY MODULES MOVE MULTIPLE MULTIPLY NATIONAL NATIVE NEGATIVE NEXT NO NO-ECHO NONE NOT NULL NULL-KEY-MAP NULL-MAP NULLS NUMBER NUMERIC NUMERIC-EDITED OBJECT OBJECT-COMPUTER OCCURS OF OFF OMITTED ON ONLY OPEN OPTIONAL OR ORDER ORGANIZATION OTHER OUTPUT OVERFLOW OWNER PACKED-DECIMAL PADDING PAGE PAGE-COUNTER PARSE PERFORM PF PH PIC PICTURE PLUS POINTER POSITION POSITIVE PREFIX PRESENT PRINTING PRIOR PROCEDURE PROCEDURE-POINTER PROCEDURES PROCEED PROCESS PROCESSING PROGRAM PROGRAM-ID PROMPT PROTECTED PURGE QUEUE QUOTE QUOTES RANDOM RD READ READY REALM RECEIVE RECONNECT RECORD RECORD-NAME RECORDS RECURSIVE REDEFINES REEL REFERENCE REFERENCE-MONITOR REFERENCES RELATION RELATIVE RELEASE REMAINDER REMOVAL RENAMES REPEATED REPLACE REPLACING REPORT REPORTING REPORTS REPOSITORY REQUIRED RERUN RESERVE RESET RETAINING RETRIEVAL RETURN RETURN-CODE RETURNING REVERSE-VIDEO REVERSED REWIND REWRITE RF RH RIGHT RIGHT-JUSTIFY ROLLBACK ROLLING ROUNDED RUN SAME SCREEN SD SEARCH SECTION SECURE SECURITY SEGMENT SEGMENT-LIMIT SELECT SEND SENTENCE SEPARATE SEQUENCE SEQUENTIAL SET SHARED SIGN SIZE SKIP1 SKIP2 SKIP3 SORT SORT-MERGE SORT-RETURN SOURCE SOURCE-COMPUTER SPACE-FILL SPECIAL-NAMES STANDARD STANDARD-1 STANDARD-2 START STARTING STATUS STOP STORE STRING SUB-QUEUE-1 SUB-QUEUE-2 SUB-QUEUE-3 SUB-SCHEMA SUBFILE SUBSTITUTE SUBTRACT SUM SUPPRESS SYMBOLIC SYNC SYNCHRONIZED SYSIN SYSOUT TABLE TALLYING TAPE TENANT TERMINAL TERMINATE TEST TEXT THAN THEN THROUGH THRU TIME TIMES TITLE TO TOP TRAILING TRAILING-SIGN TRANSACTION TYPE TYPEDEF UNDERLINE UNEQUAL UNIT UNSTRING UNTIL UP UPDATE UPON USAGE USAGE-MODE USE USING VALID VALIDATE VALUE VALUES VARYING VLR WAIT WHEN WHEN-COMPILED WITH WITHIN WORDS WORKING-STORAGE WRITE XML XML-CODE XML-EVENT XML-NTEXT XML-TEXT ZERO ZERO-FILL "),i=P("- * ** / + < <= = > >= "),N={digit:/\d/,digit_or_colon:/[\d:]/,hex:/[0-9a-f]/i,sign:/[+-]/,exponent:/e/i,keyword_char:/[^\s\(\[\;\)\]]/,symbol:/[\w*+\-]/};function f(E,T){return E==="0"&&T.eat(/x/i)?(T.eatWhile(N.hex),!0):((E=="+"||E=="-")&&N.digit.test(T.peek())&&(T.eat(N.sign),E=T.next()),N.digit.test(E)?(T.eat(E),T.eatWhile(N.digit),T.peek()=="."&&(T.eat("."),T.eatWhile(N.digit)),T.eat(N.exponent)&&(T.eat(N.sign),T.eatWhile(N.digit)),!0):!1)}return{startState:function(){return{indentStack:null,indentation:0,mode:!1}},token:function(E,T){if(T.indentStack==null&&E.sol()&&(T.indentation=6),E.eatSpace())return null;var I=null;switch(T.mode){case"string":for(var L=!1;(L=E.next())!=null;)if((L=='"'||L=="'")&&!E.match(/['"]/,!1)){T.mode=!1;break}I=D;break;default:var S=E.next(),C=E.column();if(C>=0&&C<=5)I=l;else if(C>=72&&C<=79)E.skipToEnd(),I=B;else if(S=="*"&&C==6)E.skipToEnd(),I=A;else if(S=='"'||S=="'")T.mode="string",I=D;else if(S=="'"&&!N.digit_or_colon.test(E.peek()))I=M;else if(S==".")I=F;else if(f(S,E))I=o;else{if(E.current().match(N.symbol))for(;C<71&&E.eat(N.symbol)!==void 0;)C++;t&&t.propertyIsEnumerable(E.current().toUpperCase())?I=r:i&&i.propertyIsEnumerable(E.current().toUpperCase())?I=O:n&&n.propertyIsEnumerable(E.current().toUpperCase())?I=M:I=null}}return I},indent:function(E){return E.indentStack==null?E.indentation:E.indentStack.indent}}}),R.defineMIME("text/x-cobol","cobol")})})();const d=G.exports,V=Y({__proto__:null,default:d},[G.exports]);export{V as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as n,o,
|
|
1
|
+
import{a as n,o,e as i,y as l,u as e,q as a}from"./runtime-core.esm-bundler.22ec0346.js";const c=e("div",{class:"markdown-body"},[e("blockquote",null,[e("p",null,[e("strong",null,"The core concepts behind Directus are simple, however the problems that must be solved to honor them can be remarkably complex."),a(" We strive to design and engineer the most elegant solutions possible, so that our codebase remains accessible.")])]),e("h2",{id:"monorepo",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#monorepo"},"#"),a(" Monorepo")]),e("p",null,[a("The primary Directus repository is located at "),e("a",{href:"https://github.com/directus/directus",target:"_blank",rel:"noopener noreferrer"},[e("code",null,"directus/directus")]),a(" and houses the Admin App (Vue.js 3 w/ Composition API), API (Node.js), API Specification (OpenAPI), and other smaller packages used internally. Directus follows a monorepo design similar to React or Babel \u2014 this page will outline our monorepo\u2019s design and structure.")]),e("h2",{id:"%2Fapi",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapi"},"#"),a(),e("code",null,"/api")]),e("p",null,"Contains the Directus API (REST+GraphQL), written in Node.js."),e("h4",{id:"%2Fapi%2Fsrc%2Fcli",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Fcli"},"#"),a(),e("code",null,"/api/src/cli")]),e("p",null,[a("The CLI commands and matching functions that the "),e("code",null,"directus"),a(" package ships with.")]),e("h4",{id:"%2Fapi%2Fsrc%2Fcontrollers",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Fcontrollers"},"#"),a(),e("code",null,"/api/src/controllers")]),e("p",null,"Route handler controllers for the endpoints in the API."),e("h4",{id:"%2Fapi%2Fsrc%2Fdatabase",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Fdatabase"},"#"),a(),e("code",null,"/api/src/database")]),e("p",null,"Database manipulation abstraction, system migrations, and system data. Also where you\u2019d find the main query runner."),e("h4",{id:"%2Fapi%2Fsrc%2Fexceptions",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Fexceptions"},"#"),a(),e("code",null,"/api/src/exceptions")]),e("p",null,"Classes for the different errors the API is expected to throw. Used to set the HTTP status and error codes."),e("h4",{id:"%2Fapi%2Fsrc%2Fmiddleware",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Fmiddleware"},"#"),a(),e("code",null,"/api/src/middleware")]),e("p",null,"Various (express) routing middleware. Includes things like cache-checker, authenticator, etc."),e("h4",{id:"%2Fapi%2Fsrc%2Fservices",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Fservices"},"#"),a(),e("code",null,"/api/src/services")]),e("p",null,"Internal services. The main abstraction for interfacing with the data in the database. Both GraphQL and REST requests are \u201Ctranslated\u201D to use these services as the main logic in the platform."),e("h4",{id:"%2Fapi%2Fsrc%2Ftypes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Ftypes"},"#"),a(),e("code",null,"/api/src/types")]),e("p",null,"TypeScript types that are shared between the different parts of the API."),e("h4",{id:"%2Fapi%2Fsrc%2Futils",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapi%2Fsrc%2Futils"},"#"),a(),e("code",null,"/api/src/utils")]),e("p",null,"Various utility functions."),e("h2",{id:"%2Fapp",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp"},"#"),a(),e("code",null,"/app")]),e("p",null,"Contains the Directus Admin App, written in Vue.js 3 w/ the Composition API."),e("h4",{id:"%2Fapp%2Fpublic",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fpublic"},"#"),a(),e("code",null,"/app/public")]),e("p",null,"Assets that are included with the app, but not bundled."),e("h4",{id:"%2Fapp%2Fsrc%2Fassets",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fassets"},"#"),a(),e("code",null,"/app/src/assets")]),e("p",null,"Files that are included within the app. Are bundled / optimized in the build step."),e("h4",{id:"%2Fapp%2Fsrc%2Fcomponents",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fcomponents"},"#"),a(),e("code",null,"/app/src/components")]),e("p",null,"(Base) components that are used across the platform. Contains \u201Cbasic building blocks\u201D like button, input, etc."),e("h4",{id:"%2Fapp%2Fsrc%2Fcomposables",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fcomposables"},"#"),a(),e("code",null,"/app/src/composables")]),e("p",null,"Reusable parts of reactive logic that can be used between Vue components. Includes things reactively calculating time from now, fetching a single item, etc."),e("h4",{id:"%2Fapp%2Fsrc%2Fdirectives",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fdirectives"},"#"),a(),e("code",null,"/app/src/directives")]),e("p",null,[a("Custom Vue directives (e.g. "),e("code",null,"v-tooltip"),a(").")]),e("h4",{id:"%2Fapp%2Fsrc%2Fdisplays",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fdisplays"},"#"),a(),e("code",null,"/app/src/displays")]),e("p",null,"Components to display of data within the app."),e("h4",{id:"%2Fapp%2Fsrc%2Finterfaces",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Finterfaces"},"#"),a(),e("code",null,"/app/src/interfaces")]),e("p",null,"The core-included interfaces."),e("h4",{id:"%2Fapp%2Fsrc%2Flang",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Flang"},"#"),a(),e("code",null,"/app/src/lang")]),e("p",null,[a("Translations abstraction, and language files. The language yaml files are maintained through "),e("a",{href:"https://locales.directus.io",target:"_blank",rel:"noopener noreferrer"},"Crowdin"),a(".")]),e("h4",{id:"%2Fapp%2Fsrc%2Flayouts",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Flayouts"},"#"),a(),e("code",null,"/app/src/layouts")]),e("p",null,"The core-included layouts."),e("h4",{id:"%2Fapp%2Fsrc%2Fmodules",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fmodules"},"#"),a(),e("code",null,"/app/src/modules")]),e("p",null,"The core-included modules."),e("h4",{id:"%2Fapp%2Fsrc%2Froutes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Froutes"},"#"),a(),e("code",null,"/app/src/routes")]),e("p",null,"The routes in the app. Modules define their own routes, so this only includes the \u201Csystem\u201D things that don\u2019t belong to module, like login."),e("h4",{id:"%2Fapp%2Fsrc%2Fstores",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fstores"},"#"),a(),e("code",null,"/app/src/stores")]),e("p",null,[e("a",{href:"https://pinia.esm.dev",target:"_blank",rel:"noopener noreferrer"},"Pinia"),a(" based stores used for global state tracking.")]),e("h4",{id:"%2Fapp%2Fsrc%2Fstyles",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fstyles"},"#"),a(),e("code",null,"/app/src/styles")]),e("p",null,"Global styles in the app. Every component has their own component styles, these are just the global styles."),e("h4",{id:"%2Fapp%2Fsrc%2Ftypes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Ftypes"},"#"),a(),e("code",null,"/app/src/types")]),e("p",null,"TypeScript types that are shared between the different parts of the API."),e("h4",{id:"%2Fapp%2Fsrc%2Futils",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Futils"},"#"),a(),e("code",null,"/app/src/utils")]),e("p",null,"Utility functions used in various parts of the app."),e("h4",{id:"%2Fapp%2Fsrc%2Fviews",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fapp%2Fsrc%2Fviews"},"#"),a(),e("code",null,"/app/src/views")]),e("p",null,"The (two) main views used in the app: public / private. Also contains \u201Cinternal\u201D coupled components for those two views."),e("h2",{id:"%2Fpackages",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Fpackages"},"#"),a(),e("code",null,"/packages")]),e("p",null,"The various sub-packages of the platform. Including the file-storage adapters, schema, specs, etc."),e("h2",{id:"%2Ftests",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#%2Ftests"},"#"),a(),e("code",null,"/tests")]),e("p",null,"Tests are maintained on a per-package base. This folder contains the platform-wide (end-to-end) tests.")],-1),F="Codebase Overview",b=!1,m="The core concepts behind Directus are simple, however the problems that must be solved to honor them can be remarkably complex. We strive to design and engineer the most elegant solutions possible, so that our codebase remains accessible.",f="3 min read",g={__name:"codebase-overview",setup(p,{expose:t}){const s={title:"Codebase Overview",modularExtension:!1,description:"The core concepts behind Directus are simple, however the problems that must be solved to honor them can be remarkably complex. We strive to design and engineer the most elegant solutions possible, so that our codebase remains accessible.",readTime:"3 min read"};return t({frontmatter:s}),(d,h)=>{const r=n("docs-wrapper");return o(),i(r,{frontmatter:s},{default:l(()=>[c]),_:1})}}};export{g as default,m as description,b as modularExtension,f as readTime,F as title};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{y as Z}from"./index.312f2c91.entry.js";function N(v,y){for(var c=0;c<y.length;c++){const p=y[c];if(typeof p!="string"&&!Array.isArray(p)){for(const u in p)if(u!=="default"&&!(u in v)){const l=Object.getOwnPropertyDescriptor(p,u);l&&Object.defineProperty(v,u,l.get?l:{enumerable:!0,get:()=>p[u]})}}}return Object.freeze(Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}))}var w={exports:{}};(function(v,y){(function(c){c(Z.exports)})(function(c){c.defineMode("coffeescript",function(p,u){var l="error";function h(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var z=/^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/,s=/^(?:[()\[\]{},:`=;]|\.\.?\.?)/,x=/^[_A-Za-z$][_A-Za-z$0-9]*/,A=/^@[_A-Za-z$][_A-Za-z$0-9]*/,O=h(["and","or","not","is","isnt","in","instanceof","typeof"]),g=["for","while","loop","if","unless","else","switch","try","catch","finally","class"],_=["break","by","continue","debugger","delete","do","in","of","new","return","then","this","@","throw","when","until","extends"],E=h(g.concat(_));g=h(g);var S=/^('{3}|\"{3}|['\"])/,P=/^(\/{3}|\/)/,$=["Infinity","NaN","undefined","null","true","false","on","off","yes","no"],j=h($);function d(e,n){if(e.sol()){n.scope.align===null&&(n.scope.align=!1);var r=n.scope.offset;if(e.eatSpace()){var f=e.indentation();return f>r&&n.scope.type=="coffee"?"indent":f<r?"dedent":null}else r>0&&a(e,n)}if(e.eatSpace())return null;var i=e.peek();if(e.match("####"))return e.skipToEnd(),"comment";if(e.match("###"))return n.tokenize=M,n.tokenize(e,n);if(i==="#")return e.skipToEnd(),"comment";if(e.match(/^-?[0-9\.]/,!1)){var t=!1;if(e.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)&&(t=!0),e.match(/^-?\d+\.\d*/)&&(t=!0),e.match(/^-?\.\d+/)&&(t=!0),t)return e.peek()=="."&&e.backUp(1),"number";var o=!1;if(e.match(/^-?0x[0-9a-f]+/i)&&(o=!0),e.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)&&(o=!0),e.match(/^-?0(?![\dx])/i)&&(o=!0),o)return"number"}if(e.match(S))return n.tokenize=b(e.current(),!1,"string"),n.tokenize(e,n);if(e.match(P)){if(e.current()!="/"||e.match(/^.*\//,!1))return n.tokenize=b(e.current(),!0,"string-2"),n.tokenize(e,n);e.backUp(1)}return e.match(z)||e.match(O)?"operator":e.match(s)?"punctuation":e.match(j)?"atom":e.match(A)||n.prop&&e.match(x)?"property":e.match(E)?"keyword":e.match(x)?"variable":(e.next(),l)}function b(e,n,r){return function(f,i){for(;!f.eol();)if(f.eatWhile(/[^'"\/\\]/),f.eat("\\")){if(f.next(),n&&f.eol())return r}else{if(f.match(e))return i.tokenize=d,r;f.eat(/['"\/]/)}return n&&(u.singleLineStringErrors?r=l:i.tokenize=d),r}}function M(e,n){for(;!e.eol();){if(e.eatWhile(/[^#]/),e.match("###")){n.tokenize=d;break}e.eatWhile("#")}return"comment"}function k(e,n,r){r=r||"coffee";for(var f=0,i=!1,t=null,o=n.scope;o;o=o.prev)if(o.type==="coffee"||o.type=="}"){f=o.offset+p.indentUnit;break}r!=="coffee"?(i=null,t=e.column()+e.current().length):n.scope.align&&(n.scope.align=!1),n.scope={offset:f,type:r,prev:n.scope,align:i,alignOffset:t}}function a(e,n){if(!!n.scope.prev)if(n.scope.type==="coffee"){for(var r=e.indentation(),f=!1,i=n.scope;i;i=i.prev)if(r===i.offset){f=!0;break}if(!f)return!0;for(;n.scope.prev&&n.scope.offset!==r;)n.scope=n.scope.prev;return!1}else return n.scope=n.scope.prev,!1}function R(e,n){var r=n.tokenize(e,n),f=e.current();f==="return"&&(n.dedent=!0),((f==="->"||f==="=>")&&e.eol()||r==="indent")&&k(e,n);var i="[({".indexOf(f);if(i!==-1&&k(e,n,"])}".slice(i,i+1)),g.exec(f)&&k(e,n),f=="then"&&a(e,n),r==="dedent"&&a(e,n))return l;if(i="])}".indexOf(f),i!==-1){for(;n.scope.type=="coffee"&&n.scope.prev;)n.scope=n.scope.prev;n.scope.type==f&&(n.scope=n.scope.prev)}return n.dedent&&e.eol()&&(n.scope.type=="coffee"&&n.scope.prev&&(n.scope=n.scope.prev),n.dedent=!1),r}var I={startState:function(e){return{tokenize:d,scope:{offset:e||0,type:"coffee",prev:null,align:!1},prop:!1,dedent:0}},token:function(e,n){var r=n.scope.align===null&&n.scope;r&&e.sol()&&(r.align=!1);var f=R(e,n);return f&&f!="comment"&&(r&&(r.align=!0),n.prop=f=="punctuation"&&e.current()=="."),f},indent:function(e,n){if(e.tokenize!=d)return 0;var r=e.scope,f=n&&"])}".indexOf(n.charAt(0))>-1;if(f)for(;r.type=="coffee"&&r.prev;)r=r.prev;var i=f&&r.type===n.charAt(0);return r.align?r.alignOffset-(i?1:0):(i?r.prev:r).offset},lineComment:"#",fold:"indent"};return I}),c.defineMIME("application/vnd.coffeescript","coffeescript"),c.defineMIME("text/x-coffeescript","coffeescript"),c.defineMIME("text/coffeescript","coffeescript")})})();const T=w.exports,W=N({__proto__:null,default:T},[w.exports]);export{w as a,W as c};
|