booru 2.5.1 → 2.5.3

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.
Files changed (37) hide show
  1. package/dist/Constants.d.ts +45 -0
  2. package/dist/Constants.js +1 -0
  3. package/dist/Constants.js.map +1 -0
  4. package/dist/Utils.d.ts +56 -0
  5. package/dist/Utils.js +1 -0
  6. package/dist/Utils.js.map +1 -0
  7. package/dist/boorus/Booru.d.ts +69 -1
  8. package/dist/boorus/Booru.js +1 -1
  9. package/dist/boorus/Booru.js.map +1 -1
  10. package/dist/boorus/Derpibooru.d.ts +18 -1
  11. package/dist/boorus/Derpibooru.js.map +1 -1
  12. package/dist/boorus/XmlBooru.d.ts +16 -1
  13. package/dist/boorus/XmlBooru.js.map +1 -1
  14. package/dist/index.d.ts +37 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/sites.json +1 -0
  17. package/dist/structures/InternalSearchParameters.d.ts +11 -1
  18. package/dist/structures/InternalSearchParameters.js.map +1 -1
  19. package/dist/structures/Post.d.ts +104 -1
  20. package/dist/structures/Post.js.map +1 -1
  21. package/dist/structures/SearchParameters.d.ts +13 -1
  22. package/dist/structures/SearchParameters.js.map +1 -1
  23. package/dist/structures/SearchResults.d.ts +56 -1
  24. package/dist/structures/SearchResults.js.map +1 -1
  25. package/dist/structures/Site.d.ts +35 -0
  26. package/dist/structures/Site.js +1 -0
  27. package/dist/structures/Site.js.map +1 -0
  28. package/dist/structures/SiteApi.d.ts +14 -0
  29. package/dist/structures/SiteApi.js +1 -0
  30. package/dist/structures/SiteApi.js.map +1 -0
  31. package/dist/structures/SiteInfo.d.ts +32 -0
  32. package/dist/structures/SiteInfo.js +1 -0
  33. package/dist/structures/SiteInfo.js.map +1 -0
  34. package/package.json +6 -9
  35. package/dist/test.d.ts +0 -1
  36. package/dist/test.js +0 -1
  37. package/dist/test.js.map +0 -1
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * @module Constants
4
+ */
5
+ import { RequestInit } from 'node-fetch';
6
+ import Site from './structures/Site';
7
+ import SiteInfo from './structures/SiteInfo';
8
+ export interface SMap<V> {
9
+ [key: string]: V;
10
+ }
11
+ /**
12
+ * A map of site url/{@link SiteInfo}
13
+ */
14
+ export declare const sites: SMap<SiteInfo>;
15
+ /**
16
+ * Custom error type for when the boorus error or for user-side error, not my code (probably)
17
+ * <p>The name of the error is 'BooruError'
18
+ * @type {Error}
19
+ */
20
+ export declare class BooruError extends Error {
21
+ constructor(message: string | Error);
22
+ }
23
+ /**
24
+ * The user-agent to use for searches
25
+ * @private
26
+ */
27
+ export declare const USER_AGENT = "booru (https://github.com/AtoraSuunva/booru)";
28
+ /**
29
+ * Create a full uri to search with
30
+ *
31
+ * @private
32
+ * @param {string} domain The domain to search
33
+ * @param {Site} site The site to search
34
+ * @param {string[]} [tags=[]] The tags to search for
35
+ * @param {number} [limit=100] The limit for images to return
36
+ * @param {number} [page=0] The page to get
37
+ */
38
+ export declare function searchURI(site: Site, tags: string[] | undefined, limit: number | undefined, page: number): string;
39
+ /**
40
+ * The default options to use for requests
41
+ * <p>I could document this better but meh
42
+ *
43
+ * @private
44
+ */
45
+ export declare const defaultOptions: RequestInit;
@@ -0,0 +1 @@
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.defaultOptions=exports.searchURI=exports.USER_AGENT=exports.BooruError=exports.sites=void 0;const sites_json_1=__importDefault(require("./sites.json")),expandedTags={"rating:e":"rating:explicit","rating:q":"rating:questionable","rating:s":"rating:safe"};exports.sites=sites_json_1.default;class BooruError extends Error{constructor(r){super(r instanceof Error?r.message:r),r instanceof Error?this.stack=r.stack:Error.captureStackTrace(this,BooruError),this.name="BooruError"}}function expandTags(r){return r.map((r=>{const e=expandedTags[r.toLowerCase()];return encodeURIComponent(e||r)}))}function searchURI(r,e=[],t=100,o){return`http${r.insecure?"":"s"}://${r.domain}${r.api.search}${r.tagQuery}=${expandTags(e).join("+")}&limit=${t}&${r.paginate}=${o}`}exports.BooruError=BooruError,exports.USER_AGENT="booru (https://github.com/AtoraSuunva/booru)",exports.searchURI=searchURI,exports.defaultOptions={headers:{Accept:"application/json, application/xml;q=0.9, */*;q=0.8","User-Agent":exports.USER_AGENT}};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../src/Constants.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAGH,8DAAmC;AAgBnC,MAAM,YAAY,GAAY;IAC5B,UAAU,EAAE,iBAAiB;IAC7B,UAAU,EAAE,qBAAqB;IACjC,UAAU,EAAE,aAAa;CAC1B,CAAA;AAED;;GAEG;AACU,QAAA,KAAK,GAAG,oBAAqC,CAAA;AAE1D;;;;GAIG;AACH,MAAa,UAAW,SAAQ,KAAK;IACnC,YAAY,OAAuB;QACjC,KAAK,CAAC,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAE3D,IAAI,OAAO,YAAY,KAAK,EAAE;YAC5B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;SAC3B;aAAM;YACL,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;SAC1C;QAED,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;IAC1B,CAAC;CACF;AAZD,gCAYC;AAED;;;GAGG;AACU,QAAA,UAAU,GAAG,8CAA8C,CAAA;AAExE;;;;;GAKG;AACH,SAAS,UAAU,CAAC,IAAc;IAChC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACpB,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;QACxC,OAAO,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,SAAS,CACvB,IAAU,EACV,OAAiB,EAAE,EACnB,KAAK,GAAG,GAAG,EACX,IAAY;IAEZ,OAAO,CACL,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK;QACpC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;QAClC,GAAG,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAChD,UAAU,KAAK,EAAE;QACjB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAC5B,CAAA;AACH,CAAC;AAbD,8BAaC;AAED;;;;;GAKG;AACU,QAAA,cAAc,GAAgB;IACzC,OAAO,EAAE;QACP,MAAM,EAAE,oDAAoD;QAC5D,YAAY,EAAE,kBAAU;KACzB;CACF,CAAA"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * @module Utils
4
+ */
5
+ /**
6
+ * Check if `site` is a supported site (and check if it's an alias and return the sites's true name)
7
+ *
8
+ * @param {String} domain The site to resolveSite
9
+ * @return {String?} null if site is not supported, the site otherwise
10
+ */
11
+ export declare function resolveSite(domain: string): string | null;
12
+ /**
13
+ * Parses xml to json, which can be used with js
14
+ *
15
+ * @private
16
+ * @param {String} xml The xml to convert to json
17
+ * @return {Object[]} A Promise with an array of objects created from the xml
18
+ */
19
+ export declare function jsonfy(xml: string): object[];
20
+ /**
21
+ * Yay fisher-bates
22
+ * Taken from http://stackoverflow.com/a/2450976
23
+ *
24
+ * @private
25
+ * @param {Array} array Array of something
26
+ * @return {Array} Shuffled array of something
27
+ */
28
+ export declare function shuffle<T>(array: T[]): T[];
29
+ /**
30
+ * Generate a random int between [min, max]
31
+ *
32
+ * @private
33
+ * @param {Number} min The minimum (inclusive)
34
+ * @param {Number} max The maximum (inclusive)
35
+ */
36
+ export declare function randInt(min: number, max: number): number;
37
+ /**
38
+ * Performs some basic search validation
39
+ *
40
+ * @private
41
+ * @param {String} site The site to resolve
42
+ * @param {Number|String} limit The limit for the amount of images to fetch
43
+ */
44
+ export declare function validateSearchParams(site: string, limit: number | string): {
45
+ site: string;
46
+ limit: number;
47
+ };
48
+ /**
49
+ * Finds the matching strings between two arrays
50
+ *
51
+ * @private
52
+ * @param {String[]} arr1 The first array
53
+ * @param {String[]} arr2 The second array
54
+ * @return {String[]} The shared strings between the arrays
55
+ */
56
+ export declare function compareArrays(arr1: string[], arr2: string[]): string[];
package/dist/Utils.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.compareArrays=exports.validateSearchParams=exports.randInt=exports.shuffle=exports.jsonfy=exports.resolveSite=void 0;const Constants_1=require("./Constants"),fast_xml_parser_1=require("fast-xml-parser");function resolveSite(t){if("string"!=typeof t)return null;t=t.toLowerCase();for(const r in Constants_1.sites)if(r===t||Constants_1.sites[r].domain===t||Constants_1.sites[r].aliases.includes(t))return r;return null}function jsonfy(t){if("object"==typeof t)return t;const r=(0,fast_xml_parser_1.parse)(t,{ignoreAttributes:!1,attributeNamePrefix:""});if(r.html||r["!doctype"]){const t=r.html||r["!doctype"]?.html,e=[];throw t.body.h1&&e.push(t.body.h1),t.body.p&&e.push(t.body.p["#text"]),new Constants_1.BooruError(`The Booru sent back an error: '${e.join(": ")}'`)}return r.posts.post?r.posts.post:r.posts.tag?Array.isArray(r.posts.tag)?r.posts.tag:[r.posts.tag]:[]}function shuffle(t){let r,e,o=t.length;for(;0!==o;)e=Math.floor(Math.random()*o),o-=1,r=t[o],t[o]=t[e],t[e]=r;return t}function randInt(t,r){return t=Math.ceil(t),r=Math.floor(r),Math.floor(Math.random()*(r-t+1))+t}function validateSearchParams(t,r){const e=resolveSite(t);if("number"!=typeof r&&(r=parseInt(r,10)),null===e)throw new Constants_1.BooruError("Site not supported");if("number"!=typeof r||Number.isNaN(r))throw new Constants_1.BooruError("`limit` should be an int");return{site:e,limit:r}}function compareArrays(t,r){return t.filter((t=>r.some((r=>t.toLowerCase()===r.toLowerCase()))))}exports.resolveSite=resolveSite,exports.jsonfy=jsonfy,exports.shuffle=shuffle,exports.randInt=randInt,exports.validateSearchParams=validateSearchParams,exports.compareArrays=compareArrays;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../src/Utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
- import InternalSearchParameters from '../structures/InternalSearchParameters';
1
+ /**
2
+ * @packageDocumentation
3
+ * @module Boorus
4
+ */
5
+ import InternalSearchParameters from '../structures/InternalSearchParameters';
2
6
  import SearchParameters from '../structures/SearchParameters';
3
7
  import SearchResults from '../structures/SearchResults';
4
8
  import Site from '../structures/Site';
@@ -10,15 +14,79 @@ interface SearchUrlParams {
10
14
  limit: number;
11
15
  page: number;
12
16
  }
17
+ /**
18
+ * A basic, JSON booru
19
+ * @example
20
+ * ```
21
+ * const Booru = require('booru')
22
+ * // Aliases are supported
23
+ * const e9 = Booru('e9')
24
+ *
25
+ * // You can then search the site
26
+ * const imgs = await e9.search(['cat', 'cute'], {limit: 3})
27
+ *
28
+ * // And use the images
29
+ * imgs.forEach(i => console.log(i.fileUrl))
30
+ *
31
+ * // Or access other methods on the Booru
32
+ * e9.postView(imgs[0].id)
33
+ * ```
34
+ */
13
35
  export declare class Booru {
36
+ /** The domain of the booru */
14
37
  domain: string;
38
+ /** The site object representing this booru */
15
39
  site: Site;
40
+ /** The credentials to use for this booru */
16
41
  credentials?: BooruCredentials;
42
+ /**
43
+ * Create a new booru from a site
44
+ *
45
+ * @private
46
+ * @param site The site to use
47
+ * @param credentials Credentials for the API (Currently not used)
48
+ */
17
49
  constructor(site: Site, credentials?: BooruCredentials);
50
+ /**
51
+ * Search for images on this booru
52
+ * @param {String|String[]} tags The tag(s) to search for
53
+ * @param {SearchParameters} searchArgs The arguments for the search
54
+ * @return {Promise<SearchResults>} The results as an array of Posts
55
+ */
18
56
  search(tags: string | string[], { limit, random, page, showUnavailable, }?: SearchParameters): Promise<SearchResults>;
57
+ /**
58
+ * Gets the url you'd see in your browser from a post id for this booru
59
+ *
60
+ * @param {String} id The id to get the postView for
61
+ * @return {String} The url to the post
62
+ */
19
63
  postView(id: string | number): string;
64
+ /**
65
+ * The internal & common searching logic, pls dont use this use .search instead
66
+ *
67
+ * @protected
68
+ * @param {String[]|String} tags The tags to search with
69
+ * @param {InternalSearchParameters} searchArgs The arguments for the search
70
+ * @return {Promise<Object>}
71
+ */
20
72
  protected doSearchRequest(tags: string[] | string, { uri, limit, random, page, }?: InternalSearchParameters): Promise<any>;
73
+ /**
74
+ * Generates a URL to search the booru with, mostly for debugging purposes
75
+ * @param opt
76
+ * @param {string[]} [opt.tags] The tags to search for
77
+ * @param {number} [opt.limit] The limit of results to return
78
+ * @param {number} [opt.page] The page of results to return
79
+ * @returns A URL to search the booru
80
+ */
21
81
  getSearchUrl({ tags, limit, page, }: Partial<SearchUrlParams>): string;
82
+ /**
83
+ * Parse the response from the booru
84
+ *
85
+ * @protected
86
+ * @param {Object} result The response of the booru
87
+ * @param {InternalSearchParameters} searchArgs The arguments used for the search
88
+ * @return {SearchResults} The results of this search
89
+ */
22
90
  protected parseSearchResult(result: any, { fakeLimit, tags, limit, random, page, showUnavailable, }: InternalSearchParameters): SearchResults;
23
91
  }
24
92
  export default Booru;
@@ -1 +1 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Booru=void 0;const node_fetch_1=__importDefault(require("node-fetch")),Constants_1=require("../Constants"),Utils_1=require("../Utils"),Post_1=__importDefault(require("../structures/Post")),SearchResults_1=__importDefault(require("../structures/SearchResults")),resolvedFetch="undefined"!=typeof window?window.fetch.bind(window):node_fetch_1.default;class Booru{domain;site;credentials;constructor(t,e){const s=(0,Utils_1.resolveSite)(t.domain);if(null===s)throw new Error(`Invalid site passed: ${t}`);this.domain=s,this.site=t,this.credentials=e}async search(t,{limit:e=1,random:s=!1,page:r=0,showUnavailable:i=!1}={}){const o=s&&!this.site.random?100:0;try{const a=await this.doSearchRequest(t,{limit:e,random:s,page:r,showUnavailable:i});return this.parseSearchResult(a,{fakeLimit:o,tags:t,limit:e,random:s,page:r,showUnavailable:i})}catch(t){throw t instanceof Error?new Constants_1.BooruError(t):t}}postView(t){if("string"==typeof t&&Number.isNaN(parseInt(t,10)))throw new Constants_1.BooruError(`Not a valid id for postView: ${t}`);return`http${this.site.insecure?"":"s"}://${this.domain}${this.site.api.postView}${t}`}async doSearchRequest(t,{uri:e=null,limit:s=1,random:r=!1,page:i=0}={}){let o;Array.isArray(t)||(t=[t]),r&&(this.site.random?t.push("order:random"):o=100),this.site.defaultTags&&(t=t.concat(this.site.defaultTags.filter((e=>!t.includes(e)))));const a=e||this.getSearchUrl({tags:t,limit:o||s,page:i}),n=Constants_1.defaultOptions,l="xml"===this.site.type;try{const t=await resolvedFetch(a,n);if(503===t.status){if((await t.clone().text()).includes("cf-browser-verification"))throw new Constants_1.BooruError("Received a CloudFlare browser verification request. Can't proceed.")}const e=l?await t.text():await t.json(),s=l?(0,Utils_1.jsonfy)(e):e;if(t.ok)return s;throw new Constants_1.BooruError(`Received HTTP ${t.status} from booru: '${s.error||s.message||JSON.stringify(s)}'`)}catch(t){if("invalid-json"===t.type)return"";throw t}}getSearchUrl({tags:t=[],limit:e=100,page:s=1}){return(0,Constants_1.searchURI)(this.site,t,e,s)}parseSearchResult(t,{fakeLimit:e,tags:s,limit:r,random:i,page:o,showUnavailable:a}){if(!1===t.success)throw new Constants_1.BooruError(t.message||t.reason);if(t["@attributes"]){t="0"!==t["@attributes"].count&&t.post?Array.isArray(t.post)?t.post:[t.post]:[]}let n;t.posts&&(t=t.posts),t.images&&(t=t.images),""===t?n=[]:e?n=(0,Utils_1.shuffle)(t):t.constructor===Object&&(n=[t]);let l=(n||t).slice(0,r).map((t=>new Post_1.default(t,this)));const u={limit:r,random:i,page:o,showUnavailable:a};return void 0===s&&(s=[]),Array.isArray(s)||(s=[s]),a||(l=l.filter((t=>t.available))),new SearchResults_1.default(l,s,u,this)}}exports.Booru=Booru,exports.default=Booru;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Booru=void 0;const node_fetch_1=__importDefault(require("node-fetch")),Constants_1=require("../Constants"),Utils_1=require("../Utils"),Post_1=__importDefault(require("../structures/Post")),SearchResults_1=__importDefault(require("../structures/SearchResults")),resolvedFetch="undefined"!=typeof window?window.fetch.bind(window):node_fetch_1.default;class Booru{domain;site;credentials;constructor(t,e){const s=(0,Utils_1.resolveSite)(t.domain);if(null===s)throw new Error(`Invalid site passed: ${t}`);this.domain=s,this.site=t,this.credentials=e}async search(t,{limit:e=1,random:s=!1,page:r=0,showUnavailable:i=!1}={}){const o=s&&!this.site.random?100:0;try{const a=await this.doSearchRequest(t,{limit:e,random:s,page:r,showUnavailable:i});return this.parseSearchResult(a,{fakeLimit:o,tags:t,limit:e,random:s,page:r,showUnavailable:i})}catch(t){throw t instanceof Error?new Constants_1.BooruError(t):t}}postView(t){if("string"==typeof t&&Number.isNaN(parseInt(t,10)))throw new Constants_1.BooruError(`Not a valid id for postView: ${t}`);return`http${this.site.insecure?"":"s"}://${this.domain}${this.site.api.postView}${t}`}async doSearchRequest(t,{uri:e=null,limit:s=1,random:r=!1,page:i=0}={}){let o;Array.isArray(t)||(t=[t]),r&&(this.site.random?t.push("order:random"):o=100),this.site.defaultTags&&(t=t.concat(this.site.defaultTags.filter((e=>!t.includes(e)))));const a=e||this.getSearchUrl({tags:t,limit:o||s,page:i}),n=Constants_1.defaultOptions,l="xml"===this.site.type;try{const t=await resolvedFetch(a,n);if(503===t.status&&(await t.clone().text()).includes("cf-browser-verification"))throw new Constants_1.BooruError("Received a CloudFlare browser verification request. Can't proceed.");const e=l?await t.text():await t.json(),s=l?(0,Utils_1.jsonfy)(e):e;if(t.ok)return s;throw new Constants_1.BooruError(`Received HTTP ${t.status} from booru: '${s.error||s.message||JSON.stringify(s)}'`)}catch(t){if("invalid-json"===t.type)return"";throw t}}getSearchUrl({tags:t=[],limit:e=100,page:s=1}){return(0,Constants_1.searchURI)(this.site,t,e,s)}parseSearchResult(t,{fakeLimit:e,tags:s,limit:r,random:i,page:o,showUnavailable:a}){if(!1===t.success)throw new Constants_1.BooruError(t.message||t.reason);let n;t["@attributes"]&&(t="0"!==t["@attributes"].count&&t.post?Array.isArray(t.post)?t.post:[t.post]:[]),t.posts&&(t=t.posts),t.images&&(t=t.images),""===t?n=[]:e?n=(0,Utils_1.shuffle)(t):t.constructor===Object&&(n=[t]);let l=(n||t).slice(0,r).map((t=>new Post_1.default(t,this)));const u={limit:r,random:i,page:o,showUnavailable:a};return void 0===s&&(s=[]),Array.isArray(s)||(s=[s]),a||(l=l.filter((t=>t.available))),new SearchResults_1.default(l,s,u,this)}}exports.Booru=Booru,exports.default=Booru;
@@ -1 +1 @@
1
- {"version":3,"file":"Booru.js","sourceRoot":"","sources":["../../src/boorus/Booru.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Booru.js","sourceRoot":"","sources":["../../src/boorus/Booru.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,25 @@
1
- import SearchParameters from '../structures/SearchParameters';
1
+ /**
2
+ * @packageDocumentation
3
+ * @module Boorus
4
+ */
5
+ import SearchParameters from '../structures/SearchParameters';
2
6
  import SearchResults from '../structures/SearchResults';
3
7
  import Site from '../structures/Site';
4
8
  import Booru, { BooruCredentials } from './Booru';
9
+ /**
10
+ * A class designed for Derpibooru
11
+ * >:(
12
+ * @private
13
+ * @extends Booru
14
+ * @inheritDoc
15
+ */
5
16
  export default class Derpibooru extends Booru {
17
+ /**
18
+ * Create a new booru for Derpibooru from a site
19
+ * @param site The site to use
20
+ * @param credentials Credentials for the API (Currently not used)
21
+ */
6
22
  constructor(site: Site, credentials?: BooruCredentials);
23
+ /** @inheritDoc */
7
24
  search(tags: string[] | string, { limit, random, page }?: SearchParameters): Promise<SearchResults>;
8
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Derpibooru.js","sourceRoot":"","sources":["../../src/boorus/Derpibooru.ts"],"names":[],"mappings":";;;;;AAKA,4CAAyC;AAIzC,oDAAiD;AASjD,MAAqB,UAAW,SAAQ,eAAK;IAM3C,YAAY,IAAU,EAAE,WAA8B;QACpD,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC1B,CAAC;IAGM,MAAM,CACX,IAAuB,EACvB,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,KAAuB,EAAE;QAE9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;SACd;QAGD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YACzB,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;SACd;QAGD,IAAI,IAAI,CAAC,CAAA;QAET,MAAM,GAAG,GACP,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACxC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAE5D,OAAO,KAAK;aACT,eAAe,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;aACnD,IAAI,CAAC,CAAC,CAAC,EAAE,CACR,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CACxE;aACA,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,sBAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAClD,CAAC;CACF;AAvCD,6BAuCC"}
1
+ {"version":3,"file":"Derpibooru.js","sourceRoot":"","sources":["../../src/boorus/Derpibooru.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAEH,4CAAyC;AAIzC,oDAAiD;AAEjD;;;;;;GAMG;AACH,MAAqB,UAAW,SAAQ,eAAK;IAC3C;;;;OAIG;IACH,YAAY,IAAU,EAAE,WAA8B;QACpD,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC1B,CAAC;IAED,kBAAkB;IACF,MAAM,CACpB,IAAuB,EACvB,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,KAAuB,EAAE;QAE9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;SACd;QAED,mCAAmC;QACnC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YACzB,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;SACd;QAED,oCAAoC;QACpC,IAAI,IAAI,CAAC,CAAA;QAET,MAAM,GAAG,GACP,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACxC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAE5D,OAAO,KAAK;aACT,eAAe,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;aACnD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACV,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CACxE;aACA,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,sBAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,CAAC;CACF;AAvCD,6BAuCC"}
@@ -1,5 +1,20 @@
1
- import Site from '../structures/Site';
1
+ /**
2
+ * @packageDocumentation
3
+ * @module Boorus
4
+ */
5
+ import Site from '../structures/Site';
2
6
  import Booru, { BooruCredentials } from './Booru';
7
+ /**
8
+ * A class designed for Xml-returning boorus
9
+ *
10
+ * @extends Booru
11
+ * @inheritDoc
12
+ */
3
13
  export default class XmlBooru extends Booru {
14
+ /**
15
+ * Create a new booru using XML from a site
16
+ * @param {Site} site The site to use
17
+ * @param {Object?} credentials Credentials for the API (Currently not used)
18
+ */
4
19
  constructor(site: Site, credentials?: BooruCredentials);
5
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"XmlBooru.js","sourceRoot":"","sources":["../../src/boorus/XmlBooru.ts"],"names":[],"mappings":";;;;;AAMA,oDAAiD;AAQjD,MAAqB,QAAS,SAAQ,eAAK;IAMzC,YAAY,IAAU,EAAE,WAA8B;QACpD,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC1B,CAAC;CACF;AATD,2BASC"}
1
+ {"version":3,"file":"XmlBooru.js","sourceRoot":"","sources":["../../src/boorus/XmlBooru.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAGH,oDAAiD;AAEjD;;;;;GAKG;AACH,MAAqB,QAAS,SAAQ,eAAK;IACzC;;;;OAIG;IACH,YAAY,IAAU,EAAE,WAA8B;QACpD,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC1B,CAAC;CACF;AATD,2BASC"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,47 @@
1
- import Booru from './boorus/Booru';
1
+ /**
2
+ * @packageDocumentation
3
+ * @module Index
4
+ */
5
+ import Booru from './boorus/Booru';
2
6
  import Post from './structures/Post';
3
7
  import SearchParameters from './structures/SearchParameters';
4
8
  import SearchResults from './structures/SearchResults';
9
+ /**
10
+ * Create a new booru to search with
11
+ *
12
+ * @constructor
13
+ * @param {String} site The {@link Site} domain (or alias of it) to create a booru from
14
+ * @param {*} credentials The credentials to use on this booru
15
+ * @return {Booru} A booru to use
16
+ */
5
17
  declare function booruForSite(site: string, credentials?: any): Booru;
6
18
  export { booruForSite as forSite };
7
19
  export default booruForSite;
20
+ /**
21
+ * Searches a site for images with tags and returns the results
22
+ * @param {String} site The site to search
23
+ * @param {String[]|String} [tags=[]] Tags to search with
24
+ * @param {SearchParameters} [searchOptions={}] The options for searching
25
+ * if provided (Unused)
26
+ * @return {Promise<SearchResults>} A promise with the images as an array of objects
27
+ *
28
+ * @example
29
+ * ```
30
+ * const Booru = require('booru')
31
+ * // Returns a promise with the latest cute glace pic from e926
32
+ * Booru.search('e926', ['glaceon', 'cute'])
33
+ * ```
34
+ */
8
35
  export declare function search(site: string, tags?: string[] | string, { limit, random, page, credentials }?: SearchParameters): Promise<SearchResults>;
36
+ /**
37
+ * Deprecated, now a noop
38
+ * <p>This will be removed *soon* please stop using it</p>
39
+ * <p>Just access <code>&lt;{@link Post}&gt;.prop</code>, no need to commonfy anymore
40
+ *
41
+ * @deprecated Just use <code>&lt;{@link Post}&gt;.prop</code> instead
42
+ * @param {Post[]} images Array of {@link Post} objects
43
+ * @return {Promise<Post[]>} Array of {@link Post} objects
44
+ */
9
45
  export declare function commonfy(images: Post[]): Promise<Post[]>;
10
46
  export { Booru as BooruClass } from './boorus/Booru';
11
47
  export { sites } from './Constants';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAKA,2CAAqD;AAErD,+BAAgC;AAChC,2DAAwD;AACxD,qEAA4C;AAC5C,iEAAwC;AAIxC,6DAAoC;AACpC,mCAAqC;AAErC,MAAM,UAAU,GAAiC;IAC/C,KAAK,EAAE,oBAAU;IACjB,GAAG,EAAE,kBAAQ;CACd,CAAA;AAED,MAAM,UAAU,GAAgB,EAAE,CAAA;AASlC,SAAS,SAAS,CAAC,SAAe,EAAE,WAA8B;IAChE,OAAO,IAAI,CACT,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;QACxD,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,eAAK,CACV,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;AAC3B,CAAC;AAUD,SAAS,YAAY,CAAC,IAAY,EAAE,cAAmB,IAAI;IACzD,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAA;IAE/B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,sBAAU,CAAC,oBAAoB,CAAC,CAAA;IAEtD,MAAM,SAAS,GAAG,IAAI,cAAI,CAAC,iBAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAGxC,OAAO,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;AAC1C,CAAC;AAEwB,+BAAO;AAChC,kBAAe,YAAY,CAAA;AAiB3B,SAAgB,MAAM,CACpB,IAAY,EACZ,OAA0B,EAAE,EAC5B,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,WAAW,KAAuB,EAAE;IAE3E,MAAM,KAAK,GAAkB,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAA;IAE9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;KAC5B;IAED,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,MAAM,IAAI,sBAAU,CAAC,oBAAoB,CAAC,CAAA;KAC3C;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACpD,MAAM,IAAI,sBAAU,CAAC,qCAAqC,CAAC,CAAA;KAC5D;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACpD,MAAM,IAAI,sBAAU,CAAC,0BAA0B,CAAC,CAAA;KACjD;IAED,MAAM,SAAS,GAAG,IAAI,cAAI,CAAC,iBAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAExC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACtB,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;KACzC;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;AAC7E,CAAC;AA9BD,wBA8BC;AAGD,MAAM,kBAAkB,GAAG,IAAA,gBAAS,EAAC,GAAG,EAAE,GAAE,CAAC,EAC7C,+DAA+D,CAAC,CAAA;AAWhE,SAAgB,QAAQ,CAAC,MAAc;IACrC,kBAAkB,EAAE,CAAA;IACpB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC;AAHD,4BAGC;AAED,wCAAoD;AAA3C,mGAAA,KAAK,OAAc;AAC5B,yCAAmC;AAA1B,kGAAA,KAAK,OAAA;AACd,iCAAqC;AAA5B,oGAAA,WAAW,OAAA;AACpB,yCAAwC;AAA/B,uGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,2CAAqD;AAErD,+BAAgC;AAChC,2DAAwD;AACxD,qEAA4C;AAC5C,iEAAwC;AAIxC,6DAAoC;AACpC,mCAAqC;AAErC,MAAM,UAAU,GAAiC;IAC/C,KAAK,EAAE,oBAAU;IACjB,GAAG,EAAE,kBAAQ;CACd,CAAA;AAED,MAAM,UAAU,GAAgB,EAAE,CAAA;AAElC;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,SAAe,EAAE,WAA8B;IAChE,OAAO,IAAI,CACT,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;QACxD,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,eAAK,CACV,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;AAC3B,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,IAAY,EAAE,cAAmB,IAAI;IACzD,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAA;IAE/B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,sBAAU,CAAC,oBAAoB,CAAC,CAAA;IAEtD,MAAM,SAAS,GAAG,IAAI,cAAI,CAAC,iBAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAExC,0DAA0D;IAC1D,OAAO,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;AAC1C,CAAC;AAEwB,+BAAO;AAChC,kBAAe,YAAY,CAAA;AAE3B;;;;;;;;;;;;;;GAcG;AACH,SAAgB,MAAM,CACpB,IAAY,EACZ,OAA0B,EAAE,EAC5B,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,WAAW,KAAuB,EAAE;IAE3E,MAAM,KAAK,GAAkB,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAA;IAE9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;KAC5B;IAED,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,MAAM,IAAI,sBAAU,CAAC,oBAAoB,CAAC,CAAA;KAC3C;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACpD,MAAM,IAAI,sBAAU,CAAC,qCAAqC,CAAC,CAAA;KAC5D;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACpD,MAAM,IAAI,sBAAU,CAAC,0BAA0B,CAAC,CAAA;KACjD;IAED,MAAM,SAAS,GAAG,IAAI,cAAI,CAAC,iBAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAExC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACtB,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;KACzC;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;AAC7E,CAAC;AA9BD,wBA8BC;AAED,yEAAyE;AACzE,MAAM,kBAAkB,GAAG,IAAA,gBAAS,EAAC,GAAG,EAAE,GAAE,CAAC,EAC7C,+DAA+D,CAAC,CAAA;AAEhE;;;;;;;;GAQG;AACH,SAAgB,QAAQ,CAAC,MAAc;IACrC,kBAAkB,EAAE,CAAA;IACpB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC;AAHD,4BAGC;AAED,wCAAoD;AAA3C,mGAAA,KAAK,OAAc;AAC5B,yCAAmC;AAA1B,kGAAA,KAAK,OAAA;AACd,iCAAqC;AAA5B,oGAAA,WAAW,OAAA;AACpB,yCAAwC;AAA/B,uGAAA,UAAU,OAAA"}
@@ -0,0 +1 @@
1
+ {"e621.net":{"domain":"e621.net","aliases":["e6","e621"],"nsfw":true,"api":{"search":"/posts.json?","postView":"/post/show/"},"random":true},"e926.net":{"domain":"e926.net","aliases":["e9","e926"],"nsfw":false,"api":{"search":"/posts.json?","postView":"/post/show/"},"random":true,"defaultTags":["rating:safe"]},"hypnohub.net":{"domain":"hypnohub.net","aliases":["hh","hypno","hypnohub"],"nsfw":true,"api":{"search":"/post/index.json?","postView":"/post/show/"},"random":true},"danbooru.donmai.us":{"domain":"danbooru.donmai.us","aliases":["db","dan","danbooru"],"nsfw":true,"api":{"search":"/posts.json?","postView":"/posts/"},"random":true},"konachan.com":{"domain":"konachan.com","aliases":["kc","konac","kcom"],"nsfw":true,"api":{"search":"/post.json?","postView":"/post/show/"},"random":true},"konachan.net":{"domain":"konachan.net","aliases":["kn","konan","knet"],"nsfw":false,"api":{"search":"/post.json?","postView":"/post/show/"},"random":true},"yande.re":{"domain":"yande.re","aliases":["yd","yand","yandere"],"nsfw":true,"api":{"search":"/post.json?","postView":"/post/show/"},"random":true},"gelbooru.com":{"domain":"gelbooru.com","aliases":["gb","gel","gelbooru"],"nsfw":true,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"rule34.xxx":{"domain":"api.rule34.xxx","aliases":["r34","rule34"],"nsfw":true,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"safebooru.org":{"domain":"safebooru.org","aliases":["sb","safe","safebooru"],"nsfw":false,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"tbib.org":{"domain":"tbib.org","aliases":["tb","tbib","big"],"nsfw":false,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"xbooru.com":{"domain":"xbooru.com","aliases":["xb","xbooru"],"nsfw":true,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&json=1&id="},"paginate":"pid","random":false},"rule34.paheal.net":{"domain":"rule34.paheal.net","type":"xml","aliases":["pa","paheal"],"nsfw":true,"api":{"search":"/api/danbooru/find_posts/index.xml?","postView":"/post/view/"},"random":false},"derpibooru.org":{"domain":"derpibooru.org","type":"derpi","aliases":["dp","derp","derpi","derpibooru"],"nsfw":true,"api":{"search":"/api/v1/json/search/images?","postView":"/images/"},"tagQuery":"q","random":"sf=random"},"realbooru.com":{"domain":"realbooru.com","aliases":["rb","realbooru"],"nsfw":true,"api":{"search":"/index.php?page=dapi&s=post&q=index&json=1&","postView":"/index.php?page=post&s=view&id="},"paginate":"pid","random":false}}
@@ -1,6 +1,16 @@
1
- import SearchParameters from './SearchParameters';
1
+ /**
2
+ * @packageDocumentation
3
+ * @module Structures
4
+ */
5
+ import SearchParameters from './SearchParameters';
6
+ /**
7
+ * Interface for {@link Booru}'s **private internal** search params pls no use
8
+ */
2
9
  export default interface InternalSearchParameters extends SearchParameters {
10
+ /** The uri to override with, if provided */
3
11
  uri?: string | null;
12
+ /** If `order:random` should be faked */
4
13
  fakeLimit?: number;
14
+ /** The tags used in the search */
5
15
  tags?: string[] | string;
6
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InternalSearchParameters.js","sourceRoot":"","sources":["../../src/structures/InternalSearchParameters.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"InternalSearchParameters.js","sourceRoot":"","sources":["../../src/structures/InternalSearchParameters.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -1,31 +1,134 @@
1
- import Booru from '../boorus/Booru';
1
+ /**
2
+ * @packageDocumentation
3
+ * @module Structures
4
+ */
5
+ import Booru from '../boorus/Booru';
6
+ /**
7
+ * An image from a booru with a few common props
8
+ *
9
+ * @example
10
+ * ```
11
+ * Post {
12
+ * fileUrl: 'https://aaaa.com/image.jpg',
13
+ * id: '124125',
14
+ * tags: ['cat', 'cute'],
15
+ * score: 5,
16
+ * source: 'https://giraffeduck.com/aaaa.png',
17
+ * rating: 's'
18
+ * }
19
+ * ```
20
+ */
2
21
  export default class Post {
22
+ /** The {@link Booru} it came from */
3
23
  booru: Booru;
24
+ /** The direct link to the file */
4
25
  fileUrl: string | null;
26
+ /** The height of the file */
5
27
  height: number;
28
+ /** The width of the file */
6
29
  width: number;
30
+ /** The url to the medium-sized image (if available) */
7
31
  sampleUrl: string | null;
32
+ /** The height of the medium-sized image (if available) */
8
33
  sampleHeight: number | null;
34
+ /** The width of the medium-sized image (if available) */
9
35
  sampleWidth: number | null;
36
+ /** The url to the smallest image (if available) */
10
37
  previewUrl: string | null;
38
+ /** The height of the smallest image (if available) */
11
39
  previewHeight: number | null;
40
+ /** The width of the smallest image (if available) */
12
41
  previewWidth: number | null;
42
+ /** The id of this post */
13
43
  id: string;
44
+ /** If this post is available (ie. not deleted, not banned, has file url) */
14
45
  available: boolean;
46
+ /** The tags of this post */
15
47
  tags: string[];
48
+ /** The score of this post */
16
49
  score: number;
50
+ /** The source of this post, if available */
17
51
  source?: string | string[];
52
+ /**
53
+ * The rating of the image, as just the first letter
54
+ * (s/q/e/u) => safe/questionable/explicit/unrated
55
+ */
18
56
  rating: string;
57
+ /** The Date this post was created at */
19
58
  createdAt?: Date | null;
59
+ /** All the data given by the booru @private */
20
60
  protected data: any;
61
+ /**
62
+ * Create an image from a booru
63
+ *
64
+ * @param {Object} data The raw data from the Booru
65
+ * @param {Booru} booru The booru that created the image
66
+ */
21
67
  constructor(data: any, booru: Booru);
68
+ /**
69
+ * The direct link to the file
70
+ * <p>It's prefered to use `.fileUrl` instead because camelCase
71
+ */
22
72
  get file_url(): string | null;
73
+ /**
74
+ * The url to the medium-sized image (if available)
75
+ * <p>It's prefered to use `.sampleUrl` instead because camelCase
76
+ */
23
77
  get sample_url(): string | null;
78
+ /**
79
+ * The height of the medium-sized image (if available)
80
+ * <p>It's prefered to use `.sampleHeight` instead because camelCase
81
+ */
24
82
  get sample_height(): number | null;
83
+ /**
84
+ * The width of the medium-sized image (if available)
85
+ * <p>It's prefered to use `.sampleWidth` instead because camelCase
86
+ */
25
87
  get sample_width(): number | null;
88
+ /**
89
+ * The url to the smallest image (if available)
90
+ * <p>It's prefered to use `.previewUrl` instead because camelCase
91
+ */
26
92
  get preview_url(): string | null;
93
+ /**
94
+ * The height of the smallest image (if available)
95
+ * <p>It's prefered to use `.previewHeight` instead because camelCase
96
+ */
27
97
  get preview_height(): number | null;
98
+ /**
99
+ * The width of the smallest image (if available)
100
+ * <p>It's prefered to use `.previewWidth` instead because camelCase
101
+ */
28
102
  get preview_width(): number | null;
103
+ /**
104
+ * Get the post view (url to the post) of this image
105
+ *
106
+ * @type {String}
107
+ * @example
108
+ * ```
109
+ * const e9 = Booru('e9')
110
+ * const imgs = e9.search(['cat', 'dog'])
111
+ *
112
+ * // Log the post url of the first image
113
+ * console.log(imgs[0].postView)
114
+ * ```
115
+ */
29
116
  get postView(): string;
117
+ /**
118
+ * Get some common props on the image
119
+ *
120
+ * @deprecated All common props are now attached directly to the image
121
+ * @type {Object}
122
+ *
123
+ * @example
124
+ * ```
125
+ * image.id
126
+ * // deprecated, use this instead
127
+ * image.id
128
+ *
129
+ * // To access the post's raw data from the booru, do
130
+ * image._data.id
131
+ * ```
132
+ */
30
133
  get common(): this;
31
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Post.js","sourceRoot":"","sources":["../../src/structures/Post.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Post.js","sourceRoot":"","sources":["../../src/structures/Post.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,20 @@
1
- import { BooruCredentials } from '../boorus/Booru';
1
+ /**
2
+ * @packageDocumentation
3
+ * @module Structures
4
+ */
5
+ import { BooruCredentials } from '../boorus/Booru';
6
+ /**
7
+ * Just an interface for {@link Booru}'s search params :)
8
+ */
2
9
  export default interface SearchParameters {
10
+ /** The limit on *max* posts to show, you might get less posts than this */
3
11
  limit?: number;
12
+ /** Should posts be in random order, implementation differs per booru */
4
13
  random?: boolean;
14
+ /** Which page of results to fetch */
5
15
  page?: number;
16
+ /** The credentials to use to auth with the booru */
6
17
  credentials?: BooruCredentials;
18
+ /** Return unavailable posts (ie. banned/deleted posts) */
7
19
  showUnavailable?: boolean;
8
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SearchParameters.js","sourceRoot":"","sources":["../../src/structures/SearchParameters.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"SearchParameters.js","sourceRoot":"","sources":["../../src/structures/SearchParameters.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -1,18 +1,73 @@
1
- import Booru from '../boorus/Booru';
1
+ /**
2
+ * @packageDocumentation
3
+ * @module Structures
4
+ */
5
+ import Booru from '../boorus/Booru';
2
6
  import Post from '../structures/Post';
3
7
  import SearchParameters from './SearchParameters';
8
+ /**
9
+ * Represents a page of search results, works like an array of {@link Post}
10
+ * <p> Usable like an array and allows to easily get the next page
11
+ *
12
+ * @example
13
+ * ```
14
+ * const Booru = require('booru')
15
+ * // Safebooru
16
+ * const sb = new Booru('sb')
17
+ *
18
+ * const imgs = await sb.search('cat')
19
+ *
20
+ * // Log the images from the first page, then from the second
21
+ * imgs.forEach(i => console.log(i.postView))
22
+ * const imgs2 = await imgs.nextPage()
23
+ * imgs2.forEach(i => console.log(i.postView))
24
+ * ```
25
+ */
4
26
  export default class SearchResults extends Array<Post> {
27
+ /** The booru used for this search */
5
28
  booru: Booru;
29
+ /** The page of this search */
6
30
  page: number;
31
+ /** The tags used for this search */
7
32
  readonly tags: string[];
33
+ /** The options used for this search */
8
34
  readonly options: SearchParameters;
35
+ /** The posts from this search result */
9
36
  readonly posts: Post[];
37
+ /** @private */
10
38
  constructor(posts: Post[], tags: string[], options: SearchParameters, booru: Booru);
39
+ /**
40
+ * Get the first post in this result set
41
+ * @return {Post}
42
+ */
11
43
  get first(): Post;
44
+ /**
45
+ * Get the last post in this result set
46
+ * @return {Post}
47
+ */
12
48
  get last(): Post;
49
+ /**
50
+ * Get the next page
51
+ * <p>Works like <code>sb.search('cat', {page: 1}); sb.search('cat', {page: 2})</code>
52
+ * @return {Promise<SearchResults>}
53
+ */
13
54
  nextPage(): Promise<SearchResults>;
55
+ /**
56
+ * Create a new SearchResults with just images with the matching tags
57
+ *
58
+ * @param {String[]|String} tags The tags (or tag) to search for
59
+ * @param {Object} options The extra options for the search
60
+ * @param {Boolean} [options.invert=false] If the results should be inverted and
61
+ * return images *not* tagged
62
+ * @return {SearchResults}
63
+ */
14
64
  tagged(tags: string[] | string, { invert }?: {
15
65
  invert?: boolean | undefined;
16
66
  }): SearchResults;
67
+ /**
68
+ * Returns a SearchResults with images *not* tagged with any of the specified tags (or tag)
69
+ * @param {String[]|String} tags The tags (or tag) to blacklist
70
+ * @return {SearchResults} The results without any images with the specified tags
71
+ */
17
72
  blacklist(tags: string[] | string): SearchResults;
18
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SearchResults.js","sourceRoot":"","sources":["../../src/structures/SearchResults.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAOA,gDAAiC;AAqBjC,MAAqB,aAAc,SAAQ,KAAW;IAE7C,KAAK,CAAO;IAEZ,IAAI,CAAQ;IAEH,IAAI,CAAU;IAEd,OAAO,CAAkB;IAEzB,KAAK,CAAQ;IAG7B,YACE,KAAa,EACb,IAAc,EACd,OAAyB,EACzB,KAAY;QAEZ,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;SACnB;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7C,CAAC;IAMD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IAMD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC9B,CAAC;IAOM,QAAQ;QACb,MAAM,IAAI,GAAqB,IAAI,CAAC,OAAO,CAAA;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;QAEzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC;IAWM,MAAM,CACX,IAAuB,EACvB,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,EAAE;QAEvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;SACd;QAED,MAAM,KAAK,GAAW,EAAE,CAAA;QAExB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;YACpB,MAAM,CAAC,GAAW,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;YAC1D,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC7C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;aACd;SACF;QAED,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACtE,CAAC;IAOM,SAAS,CAAC,IAAuB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5C,CAAC;CACF;AAjGD,gCAiGC"}
1
+ {"version":3,"file":"SearchResults.js","sourceRoot":"","sources":["../../src/structures/SearchResults.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;AAIH,gDAAiC;AAGjC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAqB,aAAc,SAAQ,KAAW;IACpD,qCAAqC;IAC9B,KAAK,CAAO;IACnB,8BAA8B;IACvB,IAAI,CAAQ;IACnB,oCAAoC;IACpB,IAAI,CAAU;IAC9B,uCAAuC;IACvB,OAAO,CAAkB;IACzC,wCAAwC;IACxB,KAAK,CAAQ;IAE7B,eAAe;IACf,YACE,KAAa,EACb,IAAc,EACd,OAAyB,EACzB,KAAY;QAEZ,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;SACnB;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IAED;;;OAGG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC9B,CAAC;IAED;;;;OAIG;IACI,QAAQ;QACb,MAAM,IAAI,GAAqB,IAAI,CAAC,OAAO,CAAA;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;QAEzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CACX,IAAuB,EACvB,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,EAAE;QAEvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;SACd;QAED,MAAM,KAAK,GAAW,EAAE,CAAA;QAExB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;YACpB,MAAM,CAAC,GAAW,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;YAC1D,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC7C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;aACd;SACF;QAED,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACtE,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,IAAuB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5C,CAAC;CACF;AAjGD,gCAiGC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * @module Structures
4
+ */
5
+ import SiteApi from './SiteApi';
6
+ import SiteInfo from './SiteInfo';
7
+ /**
8
+ * Represents a site, mostly used for JSDoc
9
+ */
10
+ export default class Site {
11
+ /** The domain of the Site (the "google.com" part of "https://google.com/foo") */
12
+ domain: string;
13
+ /** The type of this site (json/xml/derpi) */
14
+ type: string;
15
+ /** The aliases of this site */
16
+ aliases: string[];
17
+ /** If this site serves NSFW posts or not */
18
+ nsfw: boolean;
19
+ /** An object representing the api of this site */
20
+ api: SiteApi;
21
+ /** The url query param to paginate on the site */
22
+ paginate: string;
23
+ /**
24
+ * If the site supports `order:random`.
25
+ * If a string, this means a custom random system is used :/
26
+ */
27
+ random: boolean | string;
28
+ /** The url query param for tags */
29
+ tagQuery: string;
30
+ /** If this site supports only http:// */
31
+ insecure: boolean;
32
+ /** Tags to add to every request, if not included */
33
+ defaultTags: string[];
34
+ constructor(data: SiteInfo);
35
+ }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});class Site{domain;type;aliases;nsfw;api;paginate;random;tagQuery;insecure;defaultTags;constructor(a){this.domain=a.domain,this.type=a.type||"json",this.aliases=a.aliases||[],this.nsfw=a.nsfw,this.api=a.api||{},this.paginate=a.paginate||"page",this.random=a.random||!1,this.tagQuery=a.tagQuery||"tags",this.insecure=a.insecure||!1,this.defaultTags=a.defaultTags||[]}}exports.default=Site;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Site.js","sourceRoot":"","sources":["../../src/structures/Site.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAKH;;GAEG;AACH,MAAqB,IAAI;IACvB,iFAAiF;IAC1E,MAAM,CAAQ;IACrB,6CAA6C;IACtC,IAAI,CAAQ;IACnB,+BAA+B;IACxB,OAAO,CAAU;IACxB,4CAA4C;IACrC,IAAI,CAAS;IACpB,kDAAkD;IAC3C,GAAG,CAAS;IACnB,kDAAkD;IAC3C,QAAQ,CAAQ;IACvB;;;OAGG;IACI,MAAM,CAAkB;IAC/B,mCAAmC;IAC5B,QAAQ,CAAQ;IACvB,yCAAyC;IAClC,QAAQ,CAAS;IACxB,oDAAoD;IAC7C,WAAW,CAAU;IAE5B,YAAY,IAAc;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAA;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAA;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAA;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAA;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAA;IAC3C,CAAC;CACF;AArCD,uBAqCC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * @module Structures
4
+ */
5
+ /**
6
+ * Represents the api of a {@link Site}
7
+ * <p>Each property is a path on the {@link Site}
8
+ */
9
+ export default interface SiteApi {
10
+ /** The path to search for posts */
11
+ search: string;
12
+ /** The path to view a post by ID */
13
+ postView: string;
14
+ }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SiteApi.js","sourceRoot":"","sources":["../../src/structures/SiteApi.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * @module Structures
4
+ */
5
+ import SiteApi from './SiteApi';
6
+ /**
7
+ * Represents the info needed to create a new {@link Site}
8
+ * <p>Same properties as {@link Site}, but some optional</p>
9
+ * <p>Mostly just here to reflect what sites.json should look like
10
+ */
11
+ export default interface SiteInfo {
12
+ /** The domain of the Site (the "google.com" part of "https://google.com/foo") */
13
+ domain: string;
14
+ /** The type of this site (json/xml/derpi) */
15
+ type: string;
16
+ /** The aliases of this site */
17
+ aliases: string[];
18
+ /** If this site serves NSFW posts or not */
19
+ nsfw: boolean;
20
+ /** An object representing the api of this site */
21
+ api: SiteApi;
22
+ /** The url query param to paginate on the site */
23
+ paginate?: string;
24
+ /** If the site supports `order:random` */
25
+ random: boolean | string;
26
+ /** The url query param for tags */
27
+ tagQuery?: string;
28
+ /** If this site supports only http:// */
29
+ insecure?: boolean;
30
+ /** Tags to add to every request, if not included */
31
+ defaultTags?: string[];
32
+ }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SiteInfo.js","sourceRoot":"","sources":["../../src/structures/SiteInfo.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
package/package.json CHANGED
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "name": "booru",
3
- "version": "2.5.1",
3
+ "version": "2.5.3",
4
4
  "description": "Search (and do other things) on a bunch of different boorus!",
5
5
  "author": "AtoraSuunva (https://github.com/AtoraSuunva/)",
6
6
  "license": "MIT",
7
7
  "main": "./dist/index.js",
8
8
  "typings": "./dist/index.d.ts",
9
- "runkitExampleFilename": "./dist/example.js",
10
9
  "homepage": "https://github.com/AtoraSuunva/booru#readme",
11
10
  "repository": {
12
11
  "type": "git",
@@ -16,12 +15,11 @@
16
15
  "url": "https://github.com/AtoraSuunva/booru/issues"
17
16
  },
18
17
  "scripts": {
18
+ "file": "node --loader ts-node/esm",
19
19
  "test": "jest",
20
20
  "lint": "eslint -c .eslintrc.js --ext .ts ./src",
21
- "clean": "rimraf ./dist",
22
- "prebuild": "npm run clean && npm run lint",
23
- "build": "tsc --sourceMap",
24
- "build-dev": "tsc --sourceMap",
21
+ "prebuild": "npm run lint",
22
+ "build": "tsc",
25
23
  "postbuild": "node ./minify.js",
26
24
  "prepublishOnly": "npm run build"
27
25
  },
@@ -52,6 +50,7 @@
52
50
  "@babel/polyfill": "^7.12.1",
53
51
  "@babel/preset-env": "^7.15.4",
54
52
  "@babel/preset-typescript": "^7.15.0",
53
+ "@swc/core": "^1.2.128",
55
54
  "@types/jest": "^27.0.1",
56
55
  "@types/node": "^16.9.0",
57
56
  "@types/node-fetch": "^2.5.12",
@@ -61,12 +60,10 @@
61
60
  "eslint-config-prettier": "^8.3.0",
62
61
  "eslint-plugin-import": "^2.24.2",
63
62
  "eslint-plugin-jsdoc": "^36.1.0",
64
- "eslint-plugin-no-null": "^1.0.2",
65
- "eslint-plugin-prefer-arrow": "^1.2.3",
66
63
  "jest": "^27.1.1",
67
64
  "prettier": "^2.3.2",
68
- "rimraf": "^3.0.2",
69
65
  "terser": "^5.7.2",
66
+ "ts-node": "^10.4.0",
70
67
  "typescript": "^4.4.2"
71
68
  },
72
69
  "files": [
package/dist/test.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/dist/test.js DELETED
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const index_1=require("./index");(0,index_1.search)("gb",["rating:s"],{limit:1}).then((e=>{console.log("Got post",e)})).catch((e=>{console.error(e)}));
package/dist/test.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;AAAA,mCAAgC;AAEhC,IAAA,cAAM,EAAC,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACrC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;IACd,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;AAChC,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACpB,CAAC,CAAC,CAAA"}