diff --git a/chapters/chapter-01.md b/chapters/chapter-01.md index 7ebeaf7..05fb0b1 100644 --- a/chapters/chapter-01.md +++ b/chapters/chapter-01.md @@ -1,6 +1,8 @@ --- title: Always Moving age: 5 years +summary: > + While Linsan waits for her mother to come home, she bounces around on the furniture and talks to her father. She announces that she has named a violin her father is making Palisis and learns that the violin is for her father's first wife who got married to her mother's best friend. --- > For eight generations, the Sterlig Family crafted some of the most treasured string instruments throughout Kormar. --- *History of Traditional Music* diff --git a/chapters/chapter-02.md b/chapters/chapter-02.md index 511de42..56f98b2 100644 --- a/chapters/chapter-02.md +++ b/chapters/chapter-02.md @@ -1,6 +1,8 @@ --- title: Early Lessons age: 9 (or 6) +summary: > + Years later, Linsan is learning how to play the violin from her father. The lesson is interrupted when Dukan, her father's best friend and manager for the business, visits in a panic to tell him that the family's workshop in the valley is on fire. --- > Much of the the Sterlig fame comes from the distinctive wood harvested from the family-owned valley near the city of Penesol. --- *History of Traditional Music* diff --git a/chapters/chapter-03.md b/chapters/chapter-03.md index bdab03a..8f5fe62 100644 --- a/chapters/chapter-03.md +++ b/chapters/chapter-03.md @@ -1,6 +1,8 @@ --- title: Home Early age: 14 years +summary: > + Unable to visit the burnt remains of the family's workshop, Linsan comes home to find her father work in depression. He had given up working on instruments and switched to writing articles about music. She goes into the attic to put some books away and finds Palisis in a corner, returned after Marin's death. She plays it, but then finds out that no one had ever played it before. --- > No one understands the mystical connection formed during that first note played by a musician on a new instrument. --- *Tears of the Broken Harp* (Act 2, Scene 8) diff --git a/chapters/chapter-04.md b/chapters/chapter-04.md index 097af3d..10a45ac 100644 --- a/chapters/chapter-04.md +++ b/chapters/chapter-04.md @@ -1,6 +1,8 @@ --- title: Solace in Memories age: 14 years +summary: > + As Linsan frequently did, she visited the family's ruins after school. The spot gave her peace despite everything they had lost. However, a bully from school, Dukan's daughter Brook, follows after her and they fight. During the brawl, they both manifest their powers: Linsan with music and Brook with concussion powers. --- > Time is the only determination when stress ignites the first manifestations of power. Is the degree of emotion and the threat of life that determines the nature and measure of the power that comes forth. --- Jakor Habir-Nos, *Threats of the Children of Power* diff --git a/chapters/chapter-05.md b/chapters/chapter-05.md index 830b76f..cb9e0a9 100644 --- a/chapters/chapter-05.md +++ b/chapters/chapter-05.md @@ -3,6 +3,8 @@ title: Bitter Partings teaser: > Bruised and aching from her fight, the last thing Linsan wanted to do was meet up was Brook and her father, but they were waiting by the time she limped home. age: 14 years +summary: > + Linsan comes limping home after her fight with Brook. Her parents are surprised she is there, but then Dukan and Brook show up. Dukan has his daughter apologizes and then offers to send money to the Sterlig's. Linsan's father tries to refuse it, but Dukan phrases it as helping Linsan and they accept. --- > The rise of the affluent middle class was a surprise to almost everyone. No one expected that workers would ever have the wealth and power of High Society. --- Wastor da Joknig, *After the Destruction of Natural Order* diff --git a/chapters/chapter-06.md b/chapters/chapter-06.md index b1e7848..a5351bf 100644 --- a/chapters/chapter-06.md +++ b/chapters/chapter-06.md @@ -3,6 +3,8 @@ title: Revelations teaser: > Years later, Linsan is enjoying a picnic with her mother in the family's valley. However things aren't going as well as she thought and Linsan is left with some uncomfortable questions. age: 17 years +summary: > + Linsan and her mother are having a picnic the family's valley. They dance and play music. After that, Linsan finds out that her family is struggling with money because her father's new jobs don't pay well and her mother can't get roles for plays. --- > Most creative talents find themselves unable to perform magic while being distracted. --- Wagium de Pun, *Fallacies of the Crystal Spheres* diff --git a/chapters/chapter-07.md b/chapters/chapter-07.md index f44775a..741f3d9 100644 --- a/chapters/chapter-07.md +++ b/chapters/chapter-07.md @@ -1,6 +1,6 @@ --- title: Decisions -teaser: > +summary: > On the day after her eighteenth birthday, Linsan realizes that her parents were losing money every day. She comes to the decision to ask for money from Dukan, though she wasn't going to tell either her mother or father about her choice. age: 18 years --- diff --git a/chapters/chapter-08.md b/chapters/chapter-08.md index d4edbf4..c4a941b 100644 --- a/chapters/chapter-08.md +++ b/chapters/chapter-08.md @@ -3,6 +3,8 @@ title: Questions teaser: > After hours of walking across town, Linsan finally has her chance to ask Dukan for more money or a job. She doesn't know what he is going to say or demand, but she's willing to pay almost any price. age: 18 years +summary: > + Linsan sneaks out of the house early on her eighteenth birthday to ask Dunkan for more money. But before she can talk to him, Brook stops her and they argue. Three men pass them two women as they are fighting, then later the bank explodes. Brook rushes into the burning building to fight the three men. --- > The most common talents that manifest are elemental and reactional: earth, water, air, fire, and lightning. --- *Talents: The Weaker Powers* diff --git a/chapters/chapter-09.md b/chapters/chapter-09.md index 2056464..43fa4e1 100644 --- a/chapters/chapter-09.md +++ b/chapters/chapter-09.md @@ -2,6 +2,8 @@ title: Burn Damage teaser: > After the bank burned down, there is one macabre task left for Linsan and Brook, to identify the body the guards found in the vault. +summary: > + After the fight, Brook and Linsan are asked by the investigating guards to identify a body found. Linsan identifies the corpse as her father based on a few pieces of evidence, but otherwise she can't. Linsan finds out that Palisis was missing and appears to have been stolen. --- > The field of arson investigation has been one of the more successful specializations of guard forces. There are now entire branches of magic dedicated to legally identifying the cause and source of such blazes. --- *When the Fire Burns Blue* diff --git a/chapters/chapter-10.md b/chapters/chapter-10.md index c5f8490..ebb2334 100644 --- a/chapters/chapter-10.md +++ b/chapters/chapter-10.md @@ -2,6 +2,8 @@ title: Hard Questions teaser: > Kamel, the fire investigator, visits Linsan and her family with some hard questions about Duncan's death. But the questions continue further, into more intimate question that would expose hidden secrets. +summary: > + Kamel, the fire investigator, goes with Linsan to ask questions about Palisis. Sian and Tisin reveal a lot more about their relationship with Dukan and Marin. They also show how dire their finances and why. --- > Never underestimate the techniques of controlling a conversation. Criminals always slip up, you just have to get them to throw out enough lies they can't remember the truth. --- *Flaws of the Criminal Mind* diff --git a/chapters/chapter-11.md b/chapters/chapter-11.md index 0bb2324..fd4f9ab 100644 --- a/chapters/chapter-11.md +++ b/chapters/chapter-11.md @@ -2,6 +2,8 @@ title: Do Anything teaser: > Devastated by grief and sorrow, Linsan felt helpless. However, a simple comment gives her a path forward, one that would help assay her guilt and find Palisis. +summary: > + Linsan is struggling with depression and despair with her inability to join the fight at the bank. Her mother talks to her, giving lessons from her plays. As they do, Linsan decides to follow after the murderers to find them and then report them to guards. --- > The greatly anticipated auction for Gaminel's Kornalis resulted in a record-breaking 3.4 million crown bid for the previously long-lost instrument. Bidding went on for nearly an hour before the cello was sold to... diff --git a/chapters/chapter-12.md b/chapters/chapter-12.md index c45b06c..1d75189 100644 --- a/chapters/chapter-12.md +++ b/chapters/chapter-12.md @@ -2,6 +2,8 @@ title: Sneaking Out teaser: > Linsan is ready to start her hunt for Duncan's murderers and the thieves who stole Palisis from her family. The only thing left is to sneak out of her house and get on the road. Just a few steps and she'll be gone. +summary: > + Linsan tries to sneak out of the house but her parents catch her. They reveal that they realized what she was doing and had gotten her supplies for her trip, including an old Sterlig violin and a modified violin case. --- > Can stone call to blood? Can resonance be found in the lifeless stone that answers to the pulse inside one's heart? --- Gabirl na Hason, *Land and Magic, The Unnatural Powers of the Northern Tribes* diff --git a/chapters/chapter-13.md b/chapters/chapter-13.md index c1c6813..b41ed14 100644 --- a/chapters/chapter-13.md +++ b/chapters/chapter-13.md @@ -2,6 +2,8 @@ title: The Next Step teaser: > Linsan is on an adventure or is she on a mission? Either way, she is about to do something terrifying and she isn't sure she is entirely ready. +summary: > + Linsan is out on her own for the first time. The initial excitement fades quickly as she reaches the furthest she had walked from the house. But then she realizes she had to keep going and pushes herself to taking another step. --- > A journey that starts in tears can end in laughter. --- *Fox of the Gossamer Nights* diff --git a/chapters/chapter-18.md b/chapters/chapter-18.md index ff79abc..5ce3e3e 100644 --- a/chapters/chapter-18.md +++ b/chapters/chapter-18.md @@ -1,9 +1,13 @@ --- title: Whispers in the Night -summary: > +teaser: > Forced to wait through the night, Linsan struggles with her fears and frustration of being unable to catch up with the murderers. +summary: > + Because she can't drive the wagon or travel at night, Linsan is forced to wait for Maril sleep before they can get going in the morning. --- +> Only a fool rides a horse into the night. For this woman, I am that fool. --- Kadem Gasinar-Mordan + Linsan tried to find a comfortable position on a heavy canvas bag. The fragrant perfume from the contents rose up around her with every shift of her body. She wasn't entirely sure what was inside the bag, only that Maril said it was a dried vegetables medley used for soups. Occasionally, when she found a new position, she got hints of onions and garlic. She squirmed for a moment and then tried to convince herself to sleep. Every time she closed her eyes, though, her thoughts began to spiral into despair as she thought about how far ahead her quarry was. diff --git a/chapters/chapter-19.md b/chapters/chapter-19.md index ffe7e2d..459ce12 100644 --- a/chapters/chapter-19.md +++ b/chapters/chapter-19.md @@ -1,7 +1,13 @@ --- title: Prayer +teaser: > + Unable to sleep, Linsan continues to get anxious. Maril suggests praying. +summary: > + Unable to sleep, Linsan continues to get anxious. Maril suggests praying. It has never worked with Linsan, but the effort helps. --- +> The worship of the Divine Couple, or Matrimonism, is practiced by about seventy percent of Kormar. The degree of belief varies greatly, however, so one couldn't say Kormar itself was religious. --- *Survey of Religions Across the Lands* + After two nights of being unable to sleep, Linsan's days had become a hellish mixture of dozing and anxiety attacks. More than once she caught herself considering jumping off the wagon and running the opposite direction. She had also found herself praying that she wouldn't wake up when she began to doze. "Have you tried prayer?" diff --git a/chapters/chapter-20.md b/chapters/chapter-20.md index ba382b3..f4730ba 100644 --- a/chapters/chapter-20.md +++ b/chapters/chapter-20.md @@ -1,7 +1,13 @@ --- title: New Brunil +teaser: > + Linsan finally reaches a New Brunil, a town large enough to have mechanics. All she has to do is go through a list of possible mechanics and find one that may have serviced the murderer's cars. +summary: > + Linsan investigates New Brunil after getting a list of mechanics. At the first one she visits, she encounters a group of men trying to rob Brook. Together, they fight the robbers and run away. --- +> Money lubricates the gears of the world. Until it doesn't. --- Stalor Gimbol, *The Adventures of Ramus Kain* + Linsan walked along the street of New Brunil with a sense of dread and hope. She also was completely overwhelmed by the crowds that streamed along both sides of the road. There were people wearing work clothes, suits, and fancier wear that looked more like her mother's outfits for the stage than something to be worn in the middle of the day. No one was looking at each other as the chaos swirled around her. She kept bumping into people. Every time she found herself pressed against one of the many painted brick walls of the city, she wondered how everyone else could move without touching others. diff --git a/package-lock.json b/package-lock.json index 752e725..31d06a6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -253,6 +253,197 @@ "find-up": "^2.1.0" } }, + "@fedran/lint": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@fedran/lint/-/lint-0.0.3.tgz", + "integrity": "sha512-RhUz/+xpalQfIwyCWkp7fQaQx/S9+jEYZ369giPVToj6chto5vrJAWuYiYGfjGYCPkjQ9L50Q3z7MwDNsMVfNA==", + "requires": { + "debug": "^4.1.1", + "globby": "^11.0.0", + "gray-matter": "^4.0.2", + "yargs": "^15.3.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "globby": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz", + "integrity": "sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, "@fedran/writing-hyphen": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@fedran/writing-hyphen/-/writing-hyphen-1.0.0.tgz", @@ -938,7 +1129,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", - "dev": true, "requires": { "@nodelib/fs.stat": "2.0.3", "run-parallel": "^1.1.9" @@ -947,14 +1137,12 @@ "@nodelib/fs.stat": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", - "dev": true + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" }, "@nodelib/fs.walk": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", - "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.3", "fastq": "^1.6.0" @@ -1424,8 +1612,7 @@ "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, "@types/events": { "version": "3.0.0", @@ -1626,8 +1813,7 @@ "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, "array-unique": { "version": "0.2.1", @@ -1771,7 +1957,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -2593,7 +2778,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -2677,7 +2861,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, "requires": { "path-type": "^4.0.0" }, @@ -2685,8 +2868,7 @@ "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" } } }, @@ -2729,8 +2911,7 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "encoding": { "version": "0.1.12", @@ -2980,7 +3161,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.1.1.tgz", "integrity": "sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g==", - "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2998,7 +3178,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz", "integrity": "sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==", - "dev": true, "requires": { "reusify": "^1.0.0" } @@ -3028,7 +3207,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -3392,7 +3570,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", - "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -3737,8 +3914,7 @@ "ignore": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", - "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", - "dev": true + "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==" }, "immediate": { "version": "3.0.6", @@ -3913,8 +4089,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-finite": { "version": "1.0.2", @@ -3941,7 +4116,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -3949,8 +4123,7 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-obj": { "version": "1.0.1", @@ -4453,14 +4626,12 @@ "merge2": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", - "dev": true + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==" }, "micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.0.5" @@ -4554,8 +4725,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "mute-stream": { "version": "0.0.6", @@ -8930,8 +9100,7 @@ "picomatch": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.1.1.tgz", - "integrity": "sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA==", - "dev": true + "integrity": "sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA==" }, "pify": { "version": "3.0.0", @@ -9343,8 +9512,7 @@ "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, "right-pad": { "version": "1.0.1", @@ -9372,8 +9540,7 @@ "run-parallel": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", - "dev": true + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" }, "rx": { "version": "4.1.0", @@ -9856,8 +10023,7 @@ "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, "source-map": { "version": "0.4.4", @@ -10169,7 +10335,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } diff --git a/package.json b/package.json index 5943728..cf11ca3 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "preupload": "npm run bundle" }, "dependencies": { + "@fedran/lint": "0.0.3", "@fedran/writing-hyphen": "^1.0.0", "@fedran/writing-theme": "^3.0.5", "@mfgames-writing/epub2": "^1.1.8", @@ -81,6 +82,7 @@ }, "husky": { "hooks": { + "pre-commit": "fedran-lint -q", "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } }