adding doc generation

This commit is contained in:
koudo 2022-01-08 00:46:01 +01:00
parent adbd632db0
commit e157d5848d
21 changed files with 644 additions and 54 deletions

View File

@ -1,2 +1,3 @@
dist dist
node_modules node_modules
coverage

View File

@ -1,11 +1,7 @@
{ {
"root": true, "root": true,
"parser": "@typescript-eslint/parser", "parser": "@typescript-eslint/parser",
"plugins": [ "plugins": ["@typescript-eslint", "import", "jest"],
"@typescript-eslint",
"import",
"jest"
],
"extends": [ "extends": [
"prettier", "prettier",
"plugin:prettier/recommended", "plugin:prettier/recommended",
@ -19,7 +15,7 @@
"jest/globals": true "jest/globals": true
}, },
"rules": { "rules": {
"@typescript-eslint/no-var-requires":0, "@typescript-eslint/no-var-requires": 0,
"import/no-default-export": "error", "import/no-default-export": "error",
"@typescript-eslint/no-unused-vars": [ "@typescript-eslint/no-unused-vars": [
"error", "error",

3
.prettierignore Normal file
View File

@ -0,0 +1,3 @@
dist
node_modules
coverage

View File

@ -1,13 +1,5 @@
# Marmiton Search # Marmiton Search
## What is it
this phantom aim to search in the [marmiton](https://www.marmiton.org) website this phantom aim to search in the [marmiton](https://www.marmiton.org) website
## Return want some [docs](./docs/modules.md) ?
```typescript
type Return = {
name: string;
url: string;
score: number;
commentCount: number;
}
```

1
docs/.nojekyll Normal file
View File

@ -0,0 +1 @@
TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false.

5
docs/README.md Normal file
View File

@ -0,0 +1,5 @@
phantom-exo / [Modules](modules.md)
# Marmiton Search
this phantom aim to search in the [marmiton](https://www.marmiton.org) website

14
docs/modules.md Normal file
View File

@ -0,0 +1,14 @@
[phantom-exo](README.md) / Modules
# phantom-exo
## Table of contents
### Modules
- [marmiton/parsing](modules/marmiton_parsing.md)
- [marmiton/phantom](modules/marmiton_phantom.md)
- [marmiton/search](modules/marmiton_search.md)
- [marmiton/types](modules/marmiton_types.md)
- [marmiton/validate](modules/marmiton_validate.md)
- [utils/browser](modules/utils_browser.md)

View File

@ -0,0 +1,34 @@
[phantom-exo](../README.md) / [Modules](../modules.md) / marmiton/parsing
# Module: marmiton/parsing
## Table of contents
### Functions
- [scrapResultFromLink](marmiton_parsing.md#scrapresultfromlink)
## Functions
### scrapResultFromLink
`Const` **scrapResultFromLink**(`links`, `urlStart`): { `commentCount`: `number` ; `name`: `string` ; `score`: `number` ; `url`: `string` }[]
function that extract content from DOM links into the marmiton search page
#### Parameters
| Name | Type | Description |
| :--------- | :---------- | :--------------------------------------------------------- |
| `links` | `Element`[] | scrapped <a> dom elements representing recipes in marmiton |
| `urlStart` | `string` | url to prefix recipes links |
#### Returns
{ `commentCount`: `number` ; `name`: `string` ; `score`: `number` ; `url`: `string` }[]
name, link, comments and score of recipes
#### Defined in
marmiton/parsing.ts:7

View File

@ -0,0 +1,25 @@
[phantom-exo](../README.md) / [Modules](../modules.md) / marmiton/phantom
# Module: marmiton/phantom
## Table of contents
### Functions
- [marmitonPhantom](marmiton_phantom.md#marmitonphantom)
## Functions
### marmitonPhantom
`Const` **marmitonPhantom**(): `Promise`<`never`\>
main function to launch from phantom
#### Returns
`Promise`<`never`\>
#### Defined in
marmiton/phantom.ts:8

View File

@ -0,0 +1,34 @@
[phantom-exo](../README.md) / [Modules](../modules.md) / marmiton/search
# Module: marmiton/search
## Table of contents
### Functions
- [search](marmiton_search.md#search)
## Functions
### search
`Const` **search**(`search`, `opts?`): `Promise`<{ `commentCount`: `number` ; `name`: `string` ; `score`: `number` ; `url`: `string` }[]\>
function to scrap in the search response on marmiton website
#### Parameters
| Name | Type | Description |
| :------- | :------------------------------------------------- | :----------------------------------- |
| `search` | `string` | words to search into marmiton search |
| `opts?` | [`SearchOptions`](marmiton_types.md#searchoptions) | option to filter results |
#### Returns
`Promise`<{ `commentCount`: `number` ; `name`: `string` ; `score`: `number` ; `url`: `string` }[]\>
marmiton search result
#### Defined in
marmiton/search.ts:32

View File

@ -0,0 +1,83 @@
[phantom-exo](../README.md) / [Modules](../modules.md) / marmiton/types
# Module: marmiton/types
## Table of contents
### Type aliases
- [MarmitonSearchInput](marmiton_types.md#marmitonsearchinput)
- [MarmitonSearchOutput](marmiton_types.md#marmitonsearchoutput)
- [MarmitonSearchResult](marmiton_types.md#marmitonsearchresult)
- [SearchDishType](marmiton_types.md#searchdishtype)
- [SearchOptions](marmiton_types.md#searchoptions)
- [SearchRecipeType](marmiton_types.md#searchrecipetype)
## Type aliases
### MarmitonSearchInput
Ƭ **MarmitonSearchInput**: `Object`
#### Type declaration
| Name | Type |
| :------ | :--------------------------------------------------------------------------------------------------------------------- |
| `dt?` | [`SearchDishType`](marmiton_types.md#searchdishtype) \| [`SearchDishType`](marmiton_types.md#searchdishtype)[] |
| `page?` | `number` |
| `query` | `string` |
| `type?` | [`SearchRecipeType`](marmiton_types.md#searchrecipetype) \| [`SearchRecipeType`](marmiton_types.md#searchrecipetype)[] |
#### Defined in
marmiton/types.d.ts:23
---
### MarmitonSearchOutput
Ƭ **MarmitonSearchOutput**: { `commentCount`: `number` ; `name`: `string` ; `score`: `number` ; `url`: `string` }[]
#### Defined in
marmiton/types.d.ts:1
---
### MarmitonSearchResult
Ƭ **MarmitonSearchResult**: [`MarmitonSearchOutput`](marmiton_types.md#marmitonsearchoutput)[`number`]
#### Defined in
marmiton/types.d.ts:8
---
### SearchDishType
Ƭ **SearchDishType**: `"entree"` \| `"platprincipal"` \| `"dessert"` \| `"amusegueule"` \| `"accompagnement"` \| `"sauce"` \| `"boisson"` \| `"confiserie"` \| `"conseil"`
#### Defined in
marmiton/types.d.ts:12
---
### SearchOptions
Ƭ **SearchOptions**: `Omit`<[`MarmitonSearchInput`](marmiton_types.md#marmitonsearchinput), `"query"`\>
#### Defined in
marmiton/types.d.ts:30
---
### SearchRecipeType
Ƭ **SearchRecipeType**: `"season"` \| `"recipe"`
#### Defined in
marmiton/types.d.ts:10

View File

@ -0,0 +1,47 @@
[phantom-exo](../README.md) / [Modules](../modules.md) / marmiton/validate
# Module: marmiton/validate
## Table of contents
### Variables
- [jsonSchema](marmiton_validate.md#jsonschema)
### Functions
- [validateMarmitonSearchInput](marmiton_validate.md#validatemarmitonsearchinput)
## Variables
### jsonSchema
**jsonSchema**: `any`
#### Defined in
marmiton/validate.ts:3
## Functions
### validateMarmitonSearchInput
**validateMarmitonSearchInput**(`value`): value is MarmitonSearchInput
validate value against json schema defined into input.json file
#### Parameters
| Name | Type | Description |
| :------ | :-------- | :------------- |
| `value` | `unknown` | value to check |
#### Returns
value is MarmitonSearchInput
true if value is valid false otherwise
#### Defined in
marmiton/validate.ts:12

View File

@ -0,0 +1,100 @@
[phantom-exo](../README.md) / [Modules](../modules.md) / utils/browser
# Module: utils/browser
## Table of contents
### Functions
- [optionsToUrlParams](utils_browser.md#optionstourlparams)
- [withBrowserOpened](utils_browser.md#withbrowseropened)
- [withPageOpened](utils_browser.md#withpageopened)
## Functions
### optionsToUrlParams
`Const` **optionsToUrlParams**<`T`, `V`\>(`opts`, `whitelist`): `string`
transform object to url parameters
array will write multiple time the same argument name
#### Type parameters
| Name | Type |
| :--- | :--------------------------------------- |
| `T` | `T` |
| `V` | extends `string` \| `number` \| `symbol` |
#### Parameters
| Name | Type | Description |
| :---------- | :---- | :----------------------- |
| `opts` | `T` | object to transform |
| `whitelist` | `V`[] | key to write from object |
#### Returns
`string`
#### Defined in
utils/browser.ts:50
---
### withBrowserOpened
`Const` **withBrowserOpened**<`T`\>(`func`): `Promise`<`T`\>
open a browser with puppeteer and call the parameter function within it
the browser will be closed after func execution
#### Type parameters
| Name |
| :--- |
| `T` |
#### Parameters
| Name | Type | Description |
| :----- | :---------------------------------------- | :------------------------------------------------------------------ |
| `func` | (`browser`: `Browser`) => `Promise`<`T`\> | function to execute after opening the browser and before closing it |
#### Returns
`Promise`<`T`\>
#### Defined in
utils/browser.ts:9
---
### withPageOpened
`Const` **withPageOpened**<`T`\>(`func`): `Promise`<`T`\>
open a page with puppeteer and call the parameter function within it
the page will be closed after func execution
#### Type parameters
| Name |
| :--- |
| `T` |
#### Parameters
| Name | Type | Description |
| :----- | :---------------------------------- | :------------------------------------------------------------- |
| `func` | (`page`: `Page`) => `Promise`<`T`\> | function to execute after opening a page and before closing it |
#### Returns
`Promise`<`T`\>
#### Defined in
utils/browser.ts:29

252
package-lock.json generated
View File

@ -1651,6 +1651,12 @@
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true "dev": true
}, },
"bluebird": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
"dev": true
},
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@ -1741,6 +1747,15 @@
"integrity": "sha512-WfrtPEoNSoeATDlf4y3QvkwiELl9GyPLISV5GejTbbQRtQx4LhsXmc9IQ6XCL2d7UxCyEzToEZNMeqR79OUw8Q==", "integrity": "sha512-WfrtPEoNSoeATDlf4y3QvkwiELl9GyPLISV5GejTbbQRtQx4LhsXmc9IQ6XCL2d7UxCyEzToEZNMeqR79OUw8Q==",
"dev": true "dev": true
}, },
"catharsis": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz",
"integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==",
"dev": true,
"requires": {
"lodash": "^4.17.15"
}
},
"center-align": { "center-align": {
"version": "0.1.3", "version": "0.1.3",
"resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
@ -2135,6 +2150,12 @@
"ansi-colors": "^4.1.1" "ansi-colors": "^4.1.1"
} }
}, },
"entities": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz",
"integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==",
"dev": true
},
"envinfo": { "envinfo": {
"version": "7.8.1", "version": "7.8.1",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
@ -2877,6 +2898,27 @@
"integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==",
"dev": true "dev": true
}, },
"handlebars": {
"version": "4.7.7",
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
"dev": true,
"requires": {
"minimist": "^1.2.5",
"neo-async": "^2.6.0",
"source-map": "^0.6.1",
"uglify-js": "^3.1.4",
"wordwrap": "^1.0.0"
},
"dependencies": {
"wordwrap": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
"dev": true
}
}
},
"has": { "has": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
@ -3832,6 +3874,45 @@
"argparse": "^2.0.1" "argparse": "^2.0.1"
} }
}, },
"js2xmlparser": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz",
"integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==",
"dev": true,
"requires": {
"xmlcreate": "^2.0.4"
}
},
"jsdoc": {
"version": "3.6.7",
"resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.7.tgz",
"integrity": "sha512-sxKt7h0vzCd+3Y81Ey2qinupL6DpRSZJclS04ugHDNmRUXGzqicMJ6iwayhSA0S0DwwX30c5ozyUthr1QKF6uw==",
"dev": true,
"requires": {
"@babel/parser": "^7.9.4",
"bluebird": "^3.7.2",
"catharsis": "^0.9.0",
"escape-string-regexp": "^2.0.0",
"js2xmlparser": "^4.0.1",
"klaw": "^3.0.0",
"markdown-it": "^10.0.0",
"markdown-it-anchor": "^5.2.7",
"marked": "^2.0.3",
"mkdirp": "^1.0.4",
"requizzle": "^0.2.3",
"strip-json-comments": "^3.1.0",
"taffydb": "2.6.2",
"underscore": "~1.13.1"
},
"dependencies": {
"escape-string-regexp": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
"dev": true
}
}
},
"jsdom": { "jsdom": {
"version": "16.7.0", "version": "16.7.0",
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz",
@ -3900,6 +3981,12 @@
"minimist": "^1.2.0" "minimist": "^1.2.0"
} }
}, },
"jsonc-parser": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz",
"integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==",
"dev": true
},
"jsonpointer": { "jsonpointer": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz",
@ -3912,6 +3999,15 @@
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true "dev": true
}, },
"klaw": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz",
"integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.9"
}
},
"kleur": { "kleur": {
"version": "3.0.3", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
@ -3949,6 +4045,15 @@
"type-check": "~0.4.0" "type-check": "~0.4.0"
} }
}, },
"linkify-it": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
"integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
"dev": true,
"requires": {
"uc.micro": "^1.0.1"
}
},
"loader-runner": { "loader-runner": {
"version": "4.2.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz",
@ -3998,6 +4103,12 @@
"yallist": "^4.0.0" "yallist": "^4.0.0"
} }
}, },
"lunr": {
"version": "2.3.9",
"resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz",
"integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==",
"dev": true
},
"make-dir": { "make-dir": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
@ -4030,6 +4141,48 @@
"tmpl": "1.0.5" "tmpl": "1.0.5"
} }
}, },
"markdown-it": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz",
"integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
"entities": "~2.0.0",
"linkify-it": "^2.0.0",
"mdurl": "^1.0.1",
"uc.micro": "^1.0.5"
},
"dependencies": {
"argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
"requires": {
"sprintf-js": "~1.0.2"
}
}
}
},
"markdown-it-anchor": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz",
"integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==",
"dev": true
},
"marked": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz",
"integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==",
"dev": true
},
"mdurl": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
"integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=",
"dev": true
},
"merge-stream": { "merge-stream": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@ -4088,6 +4241,12 @@
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true "dev": true
}, },
"mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true
},
"ms": { "ms": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@ -4569,6 +4728,15 @@
"editions": "^2.2.0" "editions": "^2.2.0"
} }
}, },
"requizzle": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz",
"integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==",
"dev": true,
"requires": {
"lodash": "^4.17.14"
}
},
"resolve": { "resolve": {
"version": "1.21.0", "version": "1.21.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz",
@ -4726,6 +4894,17 @@
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true "dev": true
}, },
"shiki": {
"version": "0.9.15",
"resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.15.tgz",
"integrity": "sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==",
"dev": true,
"requires": {
"jsonc-parser": "^3.0.0",
"vscode-oniguruma": "^1.6.1",
"vscode-textmate": "5.2.0"
}
},
"side-channel": { "side-channel": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
@ -4893,6 +5072,12 @@
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
"dev": true "dev": true
}, },
"taffydb": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz",
"integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=",
"dev": true
},
"tapable": { "tapable": {
"version": "2.2.1", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
@ -5130,12 +5315,55 @@
"is-typedarray": "^1.0.0" "is-typedarray": "^1.0.0"
} }
}, },
"typedoc": {
"version": "0.22.10",
"resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.10.tgz",
"integrity": "sha512-hQYZ4WtoMZ61wDC6w10kxA42+jclWngdmztNZsDvIz7BMJg7F2xnT+uYsUa7OluyKossdFj9E9Ye4QOZKTy8SA==",
"dev": true,
"requires": {
"glob": "^7.2.0",
"lunr": "^2.3.9",
"marked": "^3.0.8",
"minimatch": "^3.0.4",
"shiki": "^0.9.12"
},
"dependencies": {
"marked": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz",
"integrity": "sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==",
"dev": true
}
}
},
"typedoc-plugin-markdown": {
"version": "3.11.9",
"resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.11.9.tgz",
"integrity": "sha512-wgJWPfq2wXMktfeBBx1ZObQw2a02Qz0F67juYt6urCY9PYpAX38XcB2d2Nb4grymn95X/ThwtU5PaK2eWyq7AQ==",
"dev": true,
"requires": {
"handlebars": "^4.7.7"
}
},
"typescript": { "typescript": {
"version": "4.5.4", "version": "4.5.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz",
"integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==",
"dev": true "dev": true
}, },
"uc.micro": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
"integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
"dev": true
},
"uglify-js": {
"version": "3.14.5",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz",
"integrity": "sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==",
"dev": true,
"optional": true
},
"unbox-primitive": { "unbox-primitive": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
@ -5148,6 +5376,12 @@
"which-boxed-primitive": "^1.0.2" "which-boxed-primitive": "^1.0.2"
} }
}, },
"underscore": {
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz",
"integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==",
"dev": true
},
"universalify": { "universalify": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@ -5205,6 +5439,18 @@
} }
} }
}, },
"vscode-oniguruma": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz",
"integrity": "sha512-vc4WhSIaVpgJ0jJIejjYxPvURJavX6QG41vu0mGhqywMkQqulezEqEQ3cO3gc8GvcOpX6ycmKGqRoROEMBNXTQ==",
"dev": true
},
"vscode-textmate": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz",
"integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==",
"dev": true
},
"w3c-hr-time": { "w3c-hr-time": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
@ -5443,6 +5689,12 @@
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
"dev": true "dev": true
}, },
"xmlcreate": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz",
"integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==",
"dev": true
},
"xtend": { "xtend": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",

View File

@ -4,12 +4,13 @@
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"lint:fix": "eslint . --fix --quiet", "lint:fix": "prettier . --write && eslint . --fix --quiet",
"lint": "eslint . --max-warnings 0", "lint": "prettier . --check && eslint . --max-warnings 0",
"test": "jest", "test": "jest",
"watch": "webpack --watch", "watch": "webpack --watch",
"auto-deploy": "phantombuster", "auto-deploy": "phantombuster",
"online": "ts-node ./scripts/test_online.ts" "online": "ts-node ./scripts/test_online.ts",
"doc": "typedoc"
}, },
"engines": { "engines": {
"node": "14.x" "node": "14.x"
@ -34,6 +35,7 @@
"eslint-plugin-prettier": "^4.0.0", "eslint-plugin-prettier": "^4.0.0",
"fs": "0.0.1-security", "fs": "0.0.1-security",
"jest": "^27.4.7", "jest": "^27.4.7",
"jsdoc": "^3.6.7",
"path": "^0.12.7", "path": "^0.12.7",
"phantombuster-sdk": "^0.3.3", "phantombuster-sdk": "^0.3.3",
"prettier": "^2.5.1", "prettier": "^2.5.1",
@ -41,6 +43,8 @@
"ts-jest": "^27.1.2", "ts-jest": "^27.1.2",
"ts-loader": "^9.2.6", "ts-loader": "^9.2.6",
"ts-node": "^10.4.0", "ts-node": "^10.4.0",
"typedoc": "^0.22.10",
"typedoc-plugin-markdown": "^3.11.9",
"typescript": "^4.5.4", "typescript": "^4.5.4",
"webpack": "^5.65.0", "webpack": "^5.65.0",
"webpack-cli": "^4.9.1" "webpack-cli": "^4.9.1"

View File

@ -1,7 +1,7 @@
/* eslint-disable */ /* eslint-disable */
// Phantombuster configuration { // Phantombuster configuration {
"phantombuster command: nodejs" "phantombuster command: nodejs";
"phantombuster package: 5" "phantombuster package: 5";
// } // }
/* eslint-enable */ /* eslint-enable */

View File

@ -50,18 +50,12 @@
"type": { "type": {
"anyOf": [ "anyOf": [
{ {
"enum": [ "enum": ["season", "recipe"],
"season",
"recipe"
],
"type": "string" "type": "string"
}, },
{ {
"items": { "items": {
"enum": [ "enum": ["season", "recipe"],
"season",
"recipe"
],
"type": "string" "type": "string"
}, },
"type": "array" "type": "array"
@ -69,9 +63,7 @@
] ]
} }
}, },
"required": [ "required": ["query"],
"query"
],
"type": "object" "type": "object"
} }
} }

View File

@ -19,12 +19,7 @@
"type": "string" "type": "string"
} }
}, },
"required": [ "required": ["name", "url", "score", "commentCount"],
"name",
"url",
"score",
"commentCount"
],
"type": "object" "type": "object"
}, },
"type": "array" "type": "array"

View File

@ -10,7 +10,7 @@
"noImplicitAny": true, "noImplicitAny": true,
"strictNullChecks": true, "strictNullChecks": true,
"strictFunctionTypes": true, "strictFunctionTypes": true,
"alwaysStrict": true, "alwaysStrict": true
}, },
"include": ["./src"] "include": ["./src"]
} }

12
typedoc.json Normal file
View File

@ -0,0 +1,12 @@
{
"entryPoints": [
"src/marmiton/index.ts",
"src/marmiton/parsing.ts",
"src/marmiton/phantom.ts",
"src/marmiton/search.ts",
"src/marmiton/types.d.ts",
"src/marmiton/validate.ts",
"src/utils/browser.ts"
],
"out": "docs"
}