Ovide is an editor built with the Peritext ecosystem.
It is provided both as a web and desktop application.
You can test Ovide online or go the releases page in order to download Ovide desktop version for your Operating System.
As a prerequisite you will need git and nodejs softwares installed.
Then:
- Get a google api key in google dev console -> https://console.developers.google.com then enable youtube api (for automatic metadata retrieval for video resources)
- Get a maptiler key (for glossary geolocalization server) - https://cloud.maptiler.com/geocoding/
- Open a terminal/bash and type the following lines :
git clone https://github.com/peritext/ovide
cd ovide
npm install
cp app/config/sample.json app/config/default.json
- Fill
app/config/default.json
with your credentials.
# run in electron/dev mode with hot reloading
npm run dev:electron
# run in web/dev mode with hot reloading
npm run dev:web
# pack electron application for all platforms
npm run pack
# build web version for production
npm run build:web
# diagnose and fix js code style and inconsistencies
npm run lint:fix
Ovide is designed to allow an easy forking and customization in order to change the types of resources, contextualizers and edition templates available in the app.
Everything about this happens in app/src/peritextConfig.render.js
: just modify the JS object exposed by this module to require
specific schemas or components that you would want to use instead of the default config.
Note: more doc may be written about ovide customization at some point in the future if the tool proves useful for an extended community.
The source code of Ovide is published under free license AGPL-3.0.
This software is currently in alpha stage (which means: lots of bugs and performance issues), and contributions/PR to improve it are more than welcome.
Besides, please do not hesitate to submit new issues to the project's repository in order to signal bugs or missing features.
Ovide is a technology that was developped as a generic spinoff of several projects, notably funded by MESR/Université Rennes 2 and médialab Sciences Po.
See the peritext project website for more information about Ovide history.
Besides, it relies on numerous npm
packages and libraries for which here are some acknowledgements :
- Sindre Sorhus [email protected] (176 packages)
- Jon Schlinkert [email protected] (82 packages)
- Graham Fairweather [email protected] (37 packages)
- Isaac Z. Schlueter [email protected] (35 packages)
- Kevin Mårtensson [email protected] (34 packages)
- Mike Bostock [email protected] (34 packages)
- Unknown (31 packages)
- Titus Wormer [email protected] (29 packages)
- James Halliday [email protected] (28 packages)
- John-David Dalton [email protected] (28 packages)
- Jordan Harband [email protected] (28 packages)
- Sebastian McKenzie [email protected] (26 packages)
- Ben Briggs [email protected] (24 packages)
- TJ Holowaychuk [email protected] (23 packages)
- Jeffrey Heer (21 packages)
- Tobias Koppers @sokra (21 packages)
- Robin de Mourat (20 packages)
- Unknown (19 packages)
- Mathias Buus [email protected] (19 packages)
- Jake Verbaten [email protected] (18 packages)
- Fedor Indutny [email protected] (18 packages)
- Rebecca Turner [email protected] (15 packages)
- Forbes Lindesay [email protected] (15 packages)
- Shinnosuke Watanabe [email protected] (15 packages)
- Sven Sauleau (14 packages)
- Shane Osbourne [email protected] (13 packages)
- Domenic Denicola [email protected] (11 packages)
- Jonathan Ong [email protected] (11 packages)
- Douglas Wilson [email protected] (11 packages)
- Felix Böhm [email protected] (10 packages)
- Vladimir Krivosheev (10 packages)
- Benjamin Lupton [email protected] (9 packages)
- Vsevolod Strukchinsky [email protected] (9 packages)
- Joshua Appelman [email protected] (8 packages)
- Calvin Metcalf [email protected] (8 packages)
- Arnout Kazemier [email protected] (8 packages)
- Mathias Bynens [email protected] (8 packages)
- 2012+ Bevry Pty Ltd [email protected] (8 packages)
- Dominic Tarr [email protected] (8 packages)
- Matt DesLauriers [email protected] (7 packages)
- JD Ballard [email protected] (7 packages)
- Benjamin Coe [email protected] (7 packages)
- Joel Kemp [email protected] (7 packages)
- Feross Aboukhadijeh [email protected] (7 packages)
- JP Richardson [email protected] (6 packages)
- Simon Lydell (6 packages)
- Thomas Watson Steen [email protected] (6 packages)
- Mikeal Rogers [email protected] (6 packages)
- Jake Luer [email protected] (6 packages)
- Nathan Rajlich [email protected] (6 packages)
- Ben Newman [email protected] (5 packages)
- Max Ogden [email protected] (5 packages)
- Yusuke SUZUKI [email protected] (5 packages)
- Mariusz Nowak [email protected] (5 packages)
- Chris Talkington (5 packages)
- Paul Betts [email protected] (5 packages)
- Julian Gruber [email protected] (5 packages)
- Glen Maddern (5 packages)
- Charlie Robbins [email protected] (5 packages)
- Evan You (5 packages)
- Bogdan Chadkin [email protected] (5 packages)
- Evgeny Poberezkin (4 packages)
- George Zahariev [email protected] (4 packages)
- Tim Voronov [email protected] (4 packages)
- James Talmage [email protected] (4 packages)
- Dave Gandy [email protected] (4 packages)
- Jed Watson [email protected] (4 packages)
- Phil Booth (4 packages)
- Dan Abramov [email protected] (4 packages)
- Toru Nagashima (4 packages)
- Andrew Clark [email protected] (4 packages)
- Espen Hovlandsdal [email protected] (4 packages)
- Kat Marchaán [email protected] (4 packages)
- Sebastian Mayr [email protected] (4 packages)
- Andrey Popp [email protected] (3 packages)
- Luke Childs [email protected] (3 packages)
- Sergey Slipchenko [email protected] (3 packages)
- James Coglan [email protected] (3 packages)
- Irakli Gozalishvili [email protected] (3 packages)
- Roman Dvornov [email protected] (3 packages)
- Andres Suarez [email protected] (3 packages)
- Rod Vagg [email protected] (3 packages)
- Mihai Bazon [email protected] (3 packages)
- Robert Kieffer [email protected] (3 packages)
- Timothy Gu [email protected] (3 packages)
- Heather Arthur [email protected] (3 packages)
- Felix Geisendörfer [email protected] (3 packages)
- Maxime Thirouin (3 packages)
- Joshua Boy Nicolai Appelman [email protected] (3 packages)
- Andrey Sitnik [email protected] (3 packages)
- Michael Jackson [email protected] (3 packages)
- Nicolai Kamenzky (3 packages)
- Cloud Programmability Team (3 packages)
- Nicholas C. Zakas [email protected] (3 packages)
- Paul Miller [email protected] (3 packages)
- Rich Harris (3 packages)
- Thorsten Lorenz [email protected] (3 packages)
- Roman Shtylman [email protected] (3 packages)
- Elan Shanker [email protected] (3 packages)
- Kyle E. Mitchell [email protected] (3 packages)
- Alex Lam [email protected] (3 packages)
- Ingvar Stepanyan [email protected] (3 packages)
- Marijn Haverbeke [email protected] (3 packages)
- case [email protected] (3 packages)
- Dmitry Filatov [email protected] (3 packages)
- James Kyle [email protected] (3 packages)
- Michael Hart [email protected] (2 packages)
- Dom Christie (2 packages)
- Joyent, Inc (2 packages)
- Daniel Cousens (2 packages)
- freeall [email protected] (2 packages)
- Blake Embrey [email protected] (2 packages)
- Eran Hammer [email protected] (2 packages)
- Tyler Kellen [email protected] (2 packages)
- michael mifsud [email protected] (2 packages)
- Jeffrey Heer, Dominik Moritz, Kanit "Ham" Wongsuphasawat (2 packages)
- Kirill Fomichev [email protected] (2 packages)
- Ahmad Nassri [email protected] (2 packages)
- Diego Perini [email protected] (2 packages)
- Alex Reardon [email protected] (2 packages)
- Benjamin Tan [email protected] (2 packages)
- Hugh Kennedy [email protected] (2 packages)
- Roy Riojas (2 packages)
- Adrian Heine http://adrianheine.de (2 packages)
- David Björklund [email protected] (2 packages)
- Microsoft Corp. (2 packages)
- Joyent (2 packages)
- Carl Xiong [email protected] (2 packages)
- John Hiesey (2 packages)
- Meryn Stol [email protected] (2 packages)
- Andris Reinman [email protected] (2 packages)
- Gulp Team [email protected] (2 packages)
- James Messinger (2 packages)
- Jaret Burkett [email protected] (2 packages)
- Joris van der Wel [email protected] (2 packages)
- Jeremy Ashkenas [email protected] (2 packages)
- Gajus Kuizinas [email protected] (2 packages)
- [email protected] (2 packages)
- sugarshin (2 packages)
- Andrew Goode [email protected] (2 packages)
- Lee Byron (2 packages)
- Michael Mclaughlin [email protected] (2 packages)
- "Cowboy" Ben Alman (2 packages)
- Krist Wongsuphasawat [email protected] (2 packages)
- André Cruz [email protected] (2 packages)
- Joss Mackison (2 packages)
- [email protected] (2 packages)
- Brian Woodward (2 packages)
- AJ ONeal [email protected] (2 packages)
- Steven Vachon [email protected] (2 packages)
- Petka Antonov [email protected] (2 packages)
- UW Interactive Data Lab (2 packages)
- Parsha Pourkhomami (2 packages)
- Andrew Kelley [email protected] (2 packages)
- sudodoki [email protected] (2 packages)
- Sam Verschueren [email protected] (2 packages)
- Roly Fentanes (2 packages)
- IndigoUnited [email protected] (2 packages)
- Dustin Diaz [email protected] (2 packages)
- kumavis (2 packages)
- Ben Lesh [email protected] (2 packages)
- webpack Contrib Team (2 packages)
- Mauro Bringolf (2 packages)
- Simon Boudrias [email protected] (2 packages)
- Mikola Lysenko (2 packages)
- Tony Ganch [email protected] (2 packages)
- Fred Chasen (1 package - the awesome pagedjs)
- Julie Blanc (1 package - the awesome pagedjs)
- Julien Tacquet (1 package - the awesome pagedjs)
- John Hurliman [email protected] (1 package)
- Mikhail Troshev [email protected] (1 package)
- Nikita Vasilyev [email protected] (1 package)
- Chad Walker [email protected] (1 package)
- John Otander [email protected] (1 package)
- 1000ch [email protected] (1 package)
- Nik Coughlin [email protected] (1 package)
- Dave Eddy [email protected] (1 package)
- Trent Mick [email protected] (1 package)
- Groupon [email protected] (1 package)
- Kent C. Dodds [email protected] (1 package)
- Alex Gorbatchev (1 package)
- bradleymeck (1 package)
- Josh Wolfe [email protected] (1 package)
- Viacheslav Lotsmanov [email protected] (1 package)
- Nick Fisher (1 package)
- silverwind [email protected] (1 package)
- Lovell Fuller [email protected] (1 package)
- Ilya Kantor (1 package)
- Joe Lencioni [email protected] (1 package)
- Kevin Decker [email protected] (1 package)
- David Tudury [email protected] (1 package)
- Supasate Choochaisri (1 package)
- Ben Ripkens [email protected] (1 package)
- Loren West [email protected] (1 package)
- John MacFarlane (1 package)
- Jason Quense [email protected] (1 package)
- motdotla (1 package)
- Matthew Conlen (1 package)
- [email protected] (1 package)
- Marak Squires (1 package)
- DY [email protected] (1 package)
- Soreine [email protected] (1 package)
- Jyoti Puri (1 package)
- Conrad Pankoff [email protected] (1 package)
- Jeremie Miller [email protected] (1 package)
- Ryan Bennett (1 package)
- Matthew Eernisse [email protected] (1 package)
- Sergey Belov [email protected] (1 package)
- Samuel Attard [email protected] (1 package)
- Sergey Berezhnoy [email protected] (1 package)
- Paul Vorbach [email protected] (1 package)
- Manuel Alabor [email protected] (1 package)
- sethlu (1 package)
- Yan Foto [email protected] (1 package)
- Kilian Valkhof (1 package)
- Electron Community (1 package)
- Kiko Beats [email protected] (1 package)
- Ilya Radchenko [email protected] (1 package)
- Einar Otto Stangvik [email protected] (1 package)
- Guillermo Rauch [email protected] (1 package)
- Ivan Nikulin [email protected] (1 package)
- Leland Richardson [email protected] (1 package)
- Valérian Galliat (1 package)
- Yehuda Katz, Tom Dale, Stefan Penner and contributors (1 package)
- Matt Dolan [email protected] (1 package)
- Ariya Hidayat [email protected] (1 package)
- Scott Sauyet [email protected] (1 package)
- Mathias Schreck [email protected] (1 package)
- Yannick Croissant [email protected] (1 package)
- Jakub Pawlowicz [email protected] (1 package)
- Joel Feenstra [email protected] (1 package)
- Nick Fitzgerald [email protected] (1 package)
- Michael McMillan [email protected] (1 package)
- Aslak Hellesøy [email protected] (1 package)
- Jacob Seidelin (1 package)
- Roald de Vries (1 package)
- Bruno Windels [email protected] (1 package)
- LM [email protected] (1 package)
- Stefan Thomas [email protected] (1 package)
- Kevin Gravier [email protected] (1 package)
- Lars Willighagen (1 package)
- Ramesh Nair [email protected] (1 package)
- Andrea Giammarchi (1 package)
- Trent Mick, Sam Saccone (1 package)
- Eli Grey [email protected] (1 package)
- Jason Mulligan [email protected] (1 package)
- Joshua Holbrook [email protected] (1 package)
- Ruben Verborgh [email protected] (1 package)
- Dave Gandy [email protected] (1 package)
- muji [email protected] (1 package)
- Matthew Mueller [email protected] (1 package)
- Tomás Pollak [email protected] (1 package)
- Dane Springmeyer [email protected] (1 package)
- Nikita Skovoroda [email protected] (1 package)
- Philipp Dunkel [email protected] (1 package)
- Dmitry Shirokov [email protected] (1 package)
- Kirollos Risk [email protected] (1 package)
- Kyle Robinson Young [email protected] (1 package)
- Stefan Penner [email protected] (1 package)
- Alex Wilson [email protected] (1 package)
- Telerik [email protected] (1 package)
- istarkov https://github.com/istarkov (1 package)
- Zhiye Li [email protected] (1 package)
- Joshua Boy Nicolai Appelman [email protected] (1 package)
- Timo Sand [email protected] (1 package)
- Yehuda Katz [email protected] (1 package)
- Alexis Deveria [email protected] (1 package)
- Kevin Roark (1 package)
- Thiago de Arruda [email protected] (1 package)
- Eric McCarthy [email protected] (1 package)
- Jeremy Thomas [email protected] (1 package)
- İsmail Demirbilek [email protected] (1 package)
- Michael Ridgway [email protected] (1 package)
- Steve Mao [email protected] (1 package)
- Marat Dulin [email protected] (1 package)
- Arve Knudsen, Mike Nikles (1 package)
- Kornel Lesiński [email protected] (1 package)
- Tim Caswell [email protected] (1 package)
- Ben Drucker [email protected] (1 package)
- Jarrett Cruger [email protected] (1 package)
- Steven Chim (1 package)
- Ryan Day [email protected] (1 package)
- Brian J. Brennan [email protected] (1 package)
- akabeko (1 package)
- Shane Osbourne and John Lindquist (1 package)
- Nadav Ivgi (1 package)
- kael (1 package)
- netroy [email protected] (1 package)
- Thomas Coopman @tcoopman (1 package)
- Kir Belevich [email protected] (1 package)
- Jens Taylor [email protected] (1 package)
- Robin Frischmann (1 package)
- Devon Govett [email protected] (1 package)
- Faisal Salman [email protected] (1 package)
- whitequark [email protected] (1 package)
- Qix (1 package)
- Stephen Sugden [email protected] (1 package)
- Alexander Shtuchkin [email protected] (1 package)
- bubkoo [email protected] (1 package)
- Vigour.io [email protected] (1 package)
- Tomek Wiszniewski [email protected] (1 package)
- wayfind (1 package)
- Garen J. Torikian [email protected] (1 package)
- Matt Andrews [email protected] (1 package)
- shaozilee [email protected] (1 package)
- Krishnan Anantheswaran [email protected] (1 package)
- Algus Dark [email protected] (1 package)
- Alexander Tesfamichael [email protected] (1 package)
- Alex Ford [email protected] (1 package)
- Matthias Le Brun [email protected] (1 package)
- Alex Kocharin [email protected] (1 package)
- Hemanth [email protected] (1 package)
- Lucas Wiener (1 package)
- Andreas Lubbe [email protected] (1 package)
- Oliver Moran [email protected] (1 package)
- Eugene Ware [email protected] (1 package)
- Dan Kogai (1 package)
- Jo Liss [email protected] (1 package)
- Vladimir Zapparov [email protected] (1 package)
- Tom Wu (1 package)
- Elijah Insua [email protected] (1 package)
- Kristian Faeldt [email protected] (1 package)
- Chute [email protected] (1 package)
- T. Jameson Little [email protected] (1 package)
- Kris Zyp (1 package)
- Lasse Brudeskar Vikås (1 package)
- Kit Cambridge [email protected] (1 package)
- Douglas Crockford (1 package)
- Tom de Grunt [email protected] (1 package)
- Ethan Cohen (1 package)
- Angus Croll (1 package)
- Marten de Vries (1 package)
- Jonas Pommerening [email protected] (1 package)
- azer (1 package)
- Cameron Westland [email protected] (1 package)
- Niklas von Hertzen [email protected] (1 package)
- Alexis Sellier [email protected] (1 package)
- Henry Zhu [email protected] (1 package)
- Sergey Kryzhanovsky [email protected] (1 package)
- 'Julian Viereck' [email protected] (1 package)
- Tim Perry [email protected] (1 package)
- Shuhei Kagawa [email protected] (1 package)
- Ankit [email protected] (1 package)
- Michael Rhodes (1 package)
- staltz.com (1 package)
- Mozilla Developer Network (1 package)
- Logan Smyth [email protected] (1 package)
- Dmitry Nizovtsev (1 package)
- Iskren Ivov Chernev [email protected] (1 package)
- Tim Radvan [email protected] (1 package)
- Craig Campbell (1 package)
- Lauri Rooden (1 package)
- Hardmath123 (1 package)
- Lukas Geiger (1 package)
- David Frank (1 package)
- Digital Bazaar, Inc. [email protected] (1 package)
- Jeremy Stashewsky [email protected] (1 package)
- Andrew Nesbitt [email protected] (1 package)
- yisi [email protected] (1 package)
- Christoph Hermann [email protected] (1 package)
- Mario Casciaro (1 package)
- Axel Rauschmayer [email protected] (1 package)
- CoderPuppy [email protected] (1 package)
- Luis Rodrigues (1 package)
- Gal Koren (1 package)
- Javier Blanco http://jbgutierrez.info (1 package)
- Veselin Todorov [email protected] (1 package)
- Braveg1rl [email protected] (1 package)
- Luis Couto [email protected] (1 package)
- Dan Pupius [email protected] (1 package)
- Dan Pupius [email protected] (1 package)
- Nick Santos [email protected] (1 package)
- Ethan Davis (1 package)
- Simone Primarosa [email protected] (1 package)
- Vladimir Agafonkin (1 package)
- C. Scott Ananian (1 package)
- Joshua I. Miller [email protected] (1 package)
- Federico Zivolo [email protected] (1 package)
- Aseem Kishore [email protected] (1 package)
- Justineo [email protected] (1 package)
- Mark Dalgleish (1 package)
- Dale Harvey [email protected] (1 package)
- Matt Zabriskie (1 package)
- Lupo Montero (1 package)
- Kris Kowal [email protected] (1 package)
- Chris Dickinson [email protected] (1 package)
- Tab Atkins Jr. (1 package)
- Andrey Okonetchnikov @okonetchnikov (1 package)
- Alberto Leal [email protected] (1 package)
- Alex Reardon [email protected] (1 package)
- scniro (1 package)
- Malte Wessel (1 package)
- Daniel Caldas (1 package)
- HackerOne (1 package)
- Maja Wichrowska [email protected] (1 package)
- Alex Indigo [email protected] (1 package)
- Param Aggarwal (1 package)
- Joshua Comeau [email protected] (1 package)
- NFL [email protected] (1 package)
- Chris Pearce [email protected] (1 package)
- Caolan McMahon [email protected] (1 package)
- Ayrton De Craene [email protected] (1 package)
- Paul Collett (1 package)
- Caleb Morris [email protected] (1 package)
- Ken Hibino [email protected] (1 package)
- Pete Cook [email protected] (1 package)
- Berkeley Martinez [email protected] (1 package)
- Travis Arnold [email protected] (1 package)
- Vojtech Miksu [email protected] (1 package)
- Diego Oliveira (1 package)
- maisano (1 package)
- Sean Matheson [email protected] (1 package)
- Clauderic Demers [email protected] (1 package)
- wwayne (1 package)
- Samuel Reed (1 package)
- Brian Vaughn [email protected] (1 package)
- Yaniv Zimet [email protected] (1 package)
- Felipe Vargas [email protected] (1 package)
- Joe Lencioni [email protected] (1 package)
- Facebook (1 package)
- MoOx (1 package)
- Apsl [email protected] (1 package)
- Elger Lambert [email protected] (1 package)
- Arnaud Benard [email protected] (1 package)
- Vicente de Alencar (1 package)
- Edward Stone [email protected] (1 package)
- Glen Mailer [email protected] (1 package)
- Daniel Brockman @dbrock (1 package)
- darsain (1 package)
- Tapani Moilanen [email protected] (1 package)
- Troy Goode [email protected] (1 package)
- lukechilds (1 package)
- jb55 (1 package)
- Mark Cavage [email protected] (1 package)
- leo (1 package)
- Dan VerWeire (1 package)
- P'unk Avenue LLC, Zachary Stenger [email protected] (1 package)
- Pascal Duez (1 package)
- Jamie Wong (1 package)
- J. Tangelder (1 package)
- Rodney Rehm http://rodneyrehm.de (1 package)
- webpack Contrib (1 package)
- Richard Feldman (1 package)
- José F. Romaniello [email protected] (1 package)
- Eric Ferraiuolo [email protected] (1 package)
- YuzuJS (1 package)
- Wes Todd (1 package)
- DC [email protected] (1 package)
- Simeon Velichkov [email protected] (1 package)
- Bryce Kahle (1 package)
- Marek Majkowski (1 package)
- Tjatse (1 package)
- The Linux Foundation (1 package)
- Alexandru Marasteanu [email protected] (1 package)
- Angry Bytes [email protected] (1 package)
- gdi2290 [email protected] (1 package)
- James Burke [email protected] (1 package)
- Tiago Quelhas [email protected] (1 package)
- Akash Kurdekar [email protected] (1 package)
- Eric Norris (1 package)
- Mark Lee (1 package)
- Davyd McColl [email protected] (1 package)
- Mikko Haapoja [email protected] (1 package)
- Fábio Santos [email protected] (1 package)
- Jordan Gensler [email protected] (1 package)
- J. Ryan Stinnett [email protected] (1 package)
- Brian Grinstead [email protected] (1 package)
- KARASZI István [email protected] (1 package)
- Jeremy Stashewsky [email protected] (1 package)
- barsh (1 package)
- Jeff Carpenter [email protected] (1 package)
- Daniel Wirtz [email protected] (1 package)
- Jon Sakas [email protected] (1 package)
- Zirro [email protected] (1 package)
- TweetNaCl-js contributors (1 package)
- lttb [email protected] (1 package)
- Jan Bölsche [email protected] (1 package)
- Ville Lautanala [email protected] (1 package)
- Felix Gnass [email protected] (1 package)
- Ryan Zimmerman [email protected] (1 package)
- Cameron Lakenen [email protected] (1 package)
- Angelos Pikoulas [email protected] (1 package)
- Gary Court [email protected] (1 package)
- Jared Hanson [email protected] (1 package)
- Athan Reines [email protected] (1 package)
- Chris O'Hara [email protected] (1 package)
- Kieran Simpson https://github.com/kierans/DefinitelyTyped (1 package)
- Tom MacWright (1 package)
- Dominik Moritz [email protected] (1 package)
- hemanth.hm (1 package)
- suchipi [email protected] (1 package)
- Nolan Lawson [email protected] (1 package)
- Berkeley Martinez [email protected] (1 package)
- Yury Grunin [email protected] (1 package)
- Andrew Powell [email protected] (1 package)
- Dmitrii Karpich [email protected] (1 package)
- Zoltan Kochan (1 package)
- maxlath (1 package)
- Ryan McGrath [email protected] (1 package)
- Matt-Esch [email protected] (1 package)
- Marek Kubica [email protected] (1 package)
- Ozgur Ozcitak [email protected] (1 package)
- jindw [email protected] (1 package)
- Michael de Wit (1 package)
- Steven Levithan [email protected] (1 package)
- Adonis Fung [email protected] (1 package)
- [email protected] (1 package)