alicezetion 1.9.7 → 1.9.8
Sign up to get free protection for your applications and to get access to all the features.
- package/.cache/replit/modules/nodejs-20.res +1 -0
- package/.cache/replit/modules/replit.res +1 -0
- package/.cache/typescript/5.4/node_modules/.package-lock.json +137 -0
- package/.cache/typescript/5.4/node_modules/@types/bluebird/LICENSE +21 -0
- package/.cache/typescript/5.4/node_modules/@types/bluebird/README.md +15 -0
- package/.cache/typescript/5.4/node_modules/@types/bluebird/index.d.ts +1365 -0
- package/.cache/typescript/5.4/node_modules/@types/bluebird/package.json +25 -0
- package/.cache/typescript/5.4/node_modules/@types/caseless/LICENSE +21 -0
- package/.cache/typescript/5.4/node_modules/@types/caseless/README.md +48 -0
- package/.cache/typescript/5.4/node_modules/@types/caseless/index.d.ts +29 -0
- package/.cache/typescript/5.4/node_modules/@types/caseless/package.json +35 -0
- package/.cache/typescript/5.4/node_modules/@types/cheerio/LICENSE +21 -0
- package/.cache/typescript/5.4/node_modules/@types/cheerio/README.md +15 -0
- package/.cache/typescript/5.4/node_modules/@types/cheerio/index.d.ts +318 -0
- package/.cache/typescript/5.4/node_modules/@types/cheerio/package.json +71 -0
- package/.cache/typescript/5.4/node_modules/@types/node/LICENSE +21 -0
- package/.cache/typescript/5.4/node_modules/@types/node/README.md +15 -0
- package/.cache/typescript/5.4/node_modules/@types/node/assert/strict.d.ts +8 -0
- package/.cache/typescript/5.4/node_modules/@types/node/assert.d.ts +1040 -0
- package/.cache/typescript/5.4/node_modules/@types/node/async_hooks.d.ts +541 -0
- package/.cache/typescript/5.4/node_modules/@types/node/buffer.d.ts +2363 -0
- package/.cache/typescript/5.4/node_modules/@types/node/child_process.d.ts +1544 -0
- package/.cache/typescript/5.4/node_modules/@types/node/cluster.d.ts +578 -0
- package/.cache/typescript/5.4/node_modules/@types/node/console.d.ts +452 -0
- package/.cache/typescript/5.4/node_modules/@types/node/constants.d.ts +19 -0
- package/.cache/typescript/5.4/node_modules/@types/node/crypto.d.ts +4523 -0
- package/.cache/typescript/5.4/node_modules/@types/node/dgram.d.ts +596 -0
- package/.cache/typescript/5.4/node_modules/@types/node/diagnostics_channel.d.ts +554 -0
- package/.cache/typescript/5.4/node_modules/@types/node/dns/promises.d.ts +476 -0
- package/.cache/typescript/5.4/node_modules/@types/node/dns.d.ts +864 -0
- package/.cache/typescript/5.4/node_modules/@types/node/dom-events.d.ts +124 -0
- package/.cache/typescript/5.4/node_modules/@types/node/domain.d.ts +170 -0
- package/.cache/typescript/5.4/node_modules/@types/node/events.d.ts +931 -0
- package/.cache/typescript/5.4/node_modules/@types/node/fs/promises.d.ts +1245 -0
- package/.cache/typescript/5.4/node_modules/@types/node/fs.d.ts +4317 -0
- package/.cache/typescript/5.4/node_modules/@types/node/globals.d.ts +412 -0
- package/.cache/typescript/5.4/node_modules/@types/node/globals.global.d.ts +1 -0
- package/.cache/typescript/5.4/node_modules/@types/node/http.d.ts +1908 -0
- package/.cache/typescript/5.4/node_modules/@types/node/http2.d.ts +2418 -0
- package/.cache/typescript/5.4/node_modules/@types/node/https.d.ts +550 -0
- package/.cache/typescript/5.4/node_modules/@types/node/index.d.ts +89 -0
- package/.cache/typescript/5.4/node_modules/@types/node/inspector.d.ts +2746 -0
- package/.cache/typescript/5.4/node_modules/@types/node/module.d.ts +315 -0
- package/.cache/typescript/5.4/node_modules/@types/node/net.d.ts +999 -0
- package/.cache/typescript/5.4/node_modules/@types/node/os.d.ts +495 -0
- package/.cache/typescript/5.4/node_modules/@types/node/package.json +217 -0
- package/.cache/typescript/5.4/node_modules/@types/node/path.d.ts +191 -0
- package/.cache/typescript/5.4/node_modules/@types/node/perf_hooks.d.ts +905 -0
- package/.cache/typescript/5.4/node_modules/@types/node/process.d.ts +1754 -0
- package/.cache/typescript/5.4/node_modules/@types/node/punycode.d.ts +117 -0
- package/.cache/typescript/5.4/node_modules/@types/node/querystring.d.ts +153 -0
- package/.cache/typescript/5.4/node_modules/@types/node/readline/promises.d.ts +150 -0
- package/.cache/typescript/5.4/node_modules/@types/node/readline.d.ts +540 -0
- package/.cache/typescript/5.4/node_modules/@types/node/repl.d.ts +430 -0
- package/.cache/typescript/5.4/node_modules/@types/node/sea.d.ts +153 -0
- package/.cache/typescript/5.4/node_modules/@types/node/stream/consumers.d.ts +12 -0
- package/.cache/typescript/5.4/node_modules/@types/node/stream/promises.d.ts +83 -0
- package/.cache/typescript/5.4/node_modules/@types/node/stream/web.d.ts +367 -0
- package/.cache/typescript/5.4/node_modules/@types/node/stream.d.ts +1707 -0
- package/.cache/typescript/5.4/node_modules/@types/node/string_decoder.d.ts +67 -0
- package/.cache/typescript/5.4/node_modules/@types/node/test.d.ts +1718 -0
- package/.cache/typescript/5.4/node_modules/@types/node/timers/promises.d.ts +97 -0
- package/.cache/typescript/5.4/node_modules/@types/node/timers.d.ts +240 -0
- package/.cache/typescript/5.4/node_modules/@types/node/tls.d.ts +1217 -0
- package/.cache/typescript/5.4/node_modules/@types/node/trace_events.d.ts +197 -0
- package/.cache/typescript/5.4/node_modules/@types/node/tty.d.ts +208 -0
- package/.cache/typescript/5.4/node_modules/@types/node/url.d.ts +952 -0
- package/.cache/typescript/5.4/node_modules/@types/node/util.d.ts +2292 -0
- package/.cache/typescript/5.4/node_modules/@types/node/v8.d.ts +808 -0
- package/.cache/typescript/5.4/node_modules/@types/node/vm.d.ts +924 -0
- package/.cache/typescript/5.4/node_modules/@types/node/wasi.d.ts +181 -0
- package/.cache/typescript/5.4/node_modules/@types/node/worker_threads.d.ts +694 -0
- package/.cache/typescript/5.4/node_modules/@types/node/zlib.d.ts +530 -0
- package/.cache/typescript/5.4/node_modules/@types/npmlog/LICENSE +21 -0
- package/.cache/typescript/5.4/node_modules/@types/npmlog/README.md +15 -0
- package/.cache/typescript/5.4/node_modules/@types/npmlog/index.d.ts +84 -0
- package/.cache/typescript/5.4/node_modules/@types/npmlog/package.json +32 -0
- package/.cache/typescript/5.4/node_modules/@types/request/LICENSE +21 -0
- package/.cache/typescript/5.4/node_modules/@types/request/README.md +15 -0
- package/.cache/typescript/5.4/node_modules/@types/request/index.d.ts +395 -0
- package/.cache/typescript/5.4/node_modules/@types/request/package.json +70 -0
- package/.cache/typescript/5.4/node_modules/@types/tough-cookie/LICENSE +21 -0
- package/.cache/typescript/5.4/node_modules/@types/tough-cookie/README.md +15 -0
- package/.cache/typescript/5.4/node_modules/@types/tough-cookie/index.d.ts +321 -0
- package/.cache/typescript/5.4/node_modules/@types/tough-cookie/package.json +35 -0
- package/.cache/typescript/5.4/node_modules/asynckit/LICENSE +21 -0
- package/.cache/typescript/5.4/node_modules/asynckit/README.md +233 -0
- package/.cache/typescript/5.4/node_modules/asynckit/bench.js +76 -0
- package/.cache/typescript/5.4/node_modules/asynckit/index.js +6 -0
- package/.cache/typescript/5.4/node_modules/asynckit/lib/abort.js +29 -0
- package/.cache/typescript/5.4/node_modules/asynckit/lib/async.js +34 -0
- package/.cache/typescript/5.4/node_modules/asynckit/lib/defer.js +26 -0
- package/.cache/typescript/5.4/node_modules/asynckit/lib/iterate.js +75 -0
- package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_asynckit.js +91 -0
- package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_parallel.js +25 -0
- package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial.js +25 -0
- package/.cache/typescript/5.4/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
- package/.cache/typescript/5.4/node_modules/asynckit/lib/state.js +37 -0
- package/.cache/typescript/5.4/node_modules/asynckit/lib/streamify.js +141 -0
- package/.cache/typescript/5.4/node_modules/asynckit/lib/terminator.js +29 -0
- package/.cache/typescript/5.4/node_modules/asynckit/package.json +63 -0
- package/.cache/typescript/5.4/node_modules/asynckit/parallel.js +43 -0
- package/.cache/typescript/5.4/node_modules/asynckit/serial.js +17 -0
- package/.cache/typescript/5.4/node_modules/asynckit/serialOrdered.js +75 -0
- package/.cache/typescript/5.4/node_modules/asynckit/stream.js +21 -0
- package/.cache/typescript/5.4/node_modules/combined-stream/License +19 -0
- package/.cache/typescript/5.4/node_modules/combined-stream/Readme.md +138 -0
- package/.cache/typescript/5.4/node_modules/combined-stream/lib/combined_stream.js +208 -0
- package/.cache/typescript/5.4/node_modules/combined-stream/package.json +25 -0
- package/.cache/typescript/5.4/node_modules/combined-stream/yarn.lock +17 -0
- package/.cache/typescript/5.4/node_modules/delayed-stream/License +19 -0
- package/.cache/typescript/5.4/node_modules/delayed-stream/Makefile +7 -0
- package/.cache/typescript/5.4/node_modules/delayed-stream/Readme.md +141 -0
- package/.cache/typescript/5.4/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
- package/.cache/typescript/5.4/node_modules/delayed-stream/package.json +27 -0
- package/.cache/typescript/5.4/node_modules/form-data/License +19 -0
- package/.cache/typescript/5.4/node_modules/form-data/README.md +350 -0
- package/.cache/typescript/5.4/node_modules/form-data/README.md.bak +350 -0
- package/.cache/typescript/5.4/node_modules/form-data/index.d.ts +51 -0
- package/.cache/typescript/5.4/node_modules/form-data/lib/browser.js +2 -0
- package/.cache/typescript/5.4/node_modules/form-data/lib/form_data.js +483 -0
- package/.cache/typescript/5.4/node_modules/form-data/lib/populate.js +10 -0
- package/.cache/typescript/5.4/node_modules/form-data/package.json +68 -0
- package/.cache/typescript/5.4/node_modules/mime-db/HISTORY.md +507 -0
- package/.cache/typescript/5.4/node_modules/mime-db/LICENSE +23 -0
- package/.cache/typescript/5.4/node_modules/mime-db/README.md +100 -0
- package/.cache/typescript/5.4/node_modules/mime-db/db.json +8519 -0
- package/.cache/typescript/5.4/node_modules/mime-db/index.js +12 -0
- package/.cache/typescript/5.4/node_modules/mime-db/package.json +60 -0
- package/.cache/typescript/5.4/node_modules/mime-types/HISTORY.md +397 -0
- package/.cache/typescript/5.4/node_modules/mime-types/LICENSE +23 -0
- package/.cache/typescript/5.4/node_modules/mime-types/README.md +113 -0
- package/.cache/typescript/5.4/node_modules/mime-types/index.js +188 -0
- package/.cache/typescript/5.4/node_modules/mime-types/package.json +44 -0
- package/.cache/typescript/5.4/node_modules/types-registry/README.md +2 -0
- package/.cache/typescript/5.4/node_modules/types-registry/index.json +1 -0
- package/.cache/typescript/5.4/node_modules/types-registry/package.json +20 -0
- package/.cache/typescript/5.4/node_modules/undici-types/README.md +6 -0
- package/.cache/typescript/5.4/node_modules/undici-types/agent.d.ts +31 -0
- package/.cache/typescript/5.4/node_modules/undici-types/api.d.ts +43 -0
- package/.cache/typescript/5.4/node_modules/undici-types/balanced-pool.d.ts +18 -0
- package/.cache/typescript/5.4/node_modules/undici-types/cache.d.ts +36 -0
- package/.cache/typescript/5.4/node_modules/undici-types/client.d.ts +97 -0
- package/.cache/typescript/5.4/node_modules/undici-types/connector.d.ts +34 -0
- package/.cache/typescript/5.4/node_modules/undici-types/content-type.d.ts +21 -0
- package/.cache/typescript/5.4/node_modules/undici-types/cookies.d.ts +28 -0
- package/.cache/typescript/5.4/node_modules/undici-types/diagnostics-channel.d.ts +67 -0
- package/.cache/typescript/5.4/node_modules/undici-types/dispatcher.d.ts +241 -0
- package/.cache/typescript/5.4/node_modules/undici-types/errors.d.ts +128 -0
- package/.cache/typescript/5.4/node_modules/undici-types/fetch.d.ts +209 -0
- package/.cache/typescript/5.4/node_modules/undici-types/file.d.ts +39 -0
- package/.cache/typescript/5.4/node_modules/undici-types/filereader.d.ts +54 -0
- package/.cache/typescript/5.4/node_modules/undici-types/formdata.d.ts +108 -0
- package/.cache/typescript/5.4/node_modules/undici-types/global-dispatcher.d.ts +9 -0
- package/.cache/typescript/5.4/node_modules/undici-types/global-origin.d.ts +7 -0
- package/.cache/typescript/5.4/node_modules/undici-types/handlers.d.ts +9 -0
- package/.cache/typescript/5.4/node_modules/undici-types/header.d.ts +4 -0
- package/.cache/typescript/5.4/node_modules/undici-types/index.d.ts +63 -0
- package/.cache/typescript/5.4/node_modules/undici-types/interceptors.d.ts +5 -0
- package/.cache/typescript/5.4/node_modules/undici-types/mock-agent.d.ts +50 -0
- package/.cache/typescript/5.4/node_modules/undici-types/mock-client.d.ts +25 -0
- package/.cache/typescript/5.4/node_modules/undici-types/mock-errors.d.ts +12 -0
- package/.cache/typescript/5.4/node_modules/undici-types/mock-interceptor.d.ts +93 -0
- package/.cache/typescript/5.4/node_modules/undici-types/mock-pool.d.ts +25 -0
- package/.cache/typescript/5.4/node_modules/undici-types/package.json +55 -0
- package/.cache/typescript/5.4/node_modules/undici-types/patch.d.ts +71 -0
- package/.cache/typescript/5.4/node_modules/undici-types/pool-stats.d.ts +19 -0
- package/.cache/typescript/5.4/node_modules/undici-types/pool.d.ts +28 -0
- package/.cache/typescript/5.4/node_modules/undici-types/proxy-agent.d.ts +30 -0
- package/.cache/typescript/5.4/node_modules/undici-types/readable.d.ts +61 -0
- package/.cache/typescript/5.4/node_modules/undici-types/webidl.d.ts +220 -0
- package/.cache/typescript/5.4/node_modules/undici-types/websocket.d.ts +131 -0
- package/.cache/typescript/5.4/package-lock.json +149 -0
- package/.cache/typescript/5.4/package.json +1 -0
- package/index.js +291 -71
- package/leiamnash/addExternalModule.js +15 -0
- package/leiamnash/addUserToGroup.js +77 -0
- package/leiamnash/changeAdminStatus.js +47 -0
- package/leiamnash/changeArchivedStatus.js +41 -0
- package/{src → leiamnash}/changeAvatar.js +3 -2
- package/leiamnash/changeBio.js +64 -0
- package/leiamnash/changeBlockedStatus.js +36 -0
- package/leiamnash/changeGroupImage.js +105 -0
- package/leiamnash/changeNickname.js +43 -0
- package/leiamnash/changeThreadColor.js +61 -0
- package/leiamnash/changeThreadEmoji.js +41 -0
- package/{src → leiamnash}/chat.js +4 -29
- package/leiamnash/createNewGroup.js +70 -0
- package/leiamnash/createPoll.js +59 -0
- package/leiamnash/deleteMessage.js +44 -0
- package/leiamnash/deleteThread.js +42 -0
- package/leiamnash/editMessage.js +62 -0
- package/leiamnash/forwardAttachment.js +47 -0
- package/leiamnash/forwardMessage.js +0 -0
- package/leiamnash/getCurrentUserID.js +7 -0
- package/leiamnash/getEmojiUrl.js +27 -0
- package/leiamnash/getFriendsList.js +73 -0
- package/leiamnash/getInfoVideo.js +134 -0
- package/leiamnash/getThreadHistory.js +537 -0
- package/leiamnash/getThreadHistoryDeprecated.js +71 -0
- package/leiamnash/getThreadInfo.js +171 -0
- package/leiamnash/getThreadInfoDeprecated.js +56 -0
- package/leiamnash/getThreadList.js +213 -0
- package/leiamnash/getThreadListDeprecated.js +46 -0
- package/leiamnash/getThreadPictures.js +59 -0
- package/leiamnash/getUserID.js +61 -0
- package/leiamnash/getUserInfo.js +66 -0
- package/leiamnash/handleFriendRequest.js +46 -0
- package/leiamnash/handleMessageRequest.js +47 -0
- package/leiamnash/httpGet.js +47 -0
- package/leiamnash/httpPost.js +47 -0
- package/leiamnash/httpPostFormData.js +42 -0
- package/leiamnash/listenMqtt.js +843 -0
- package/leiamnash/logout.js +68 -0
- package/leiamnash/markAsDelivered.js +47 -0
- package/leiamnash/markAsRead.js +70 -0
- package/leiamnash/markAsReadAll.js +40 -0
- package/leiamnash/markAsSeen.js +48 -0
- package/leiamnash/muteThread.js +45 -0
- package/leiamnash/pinMessage.js +58 -0
- package/leiamnash/react.js +109 -0
- package/{src → leiamnash}/refreshFb_dtsg.js +1 -1
- package/leiamnash/removeUserFromGroup.js +45 -0
- package/leiamnash/resolvePhotoUrl.js +36 -0
- package/leiamnash/searchForThread.js +42 -0
- package/leiamnash/seen.js +40 -0
- package/leiamnash/sendMessage.js +315 -0
- package/leiamnash/sendTypingIndicator.js +70 -0
- package/leiamnash/setMessageReaction.js +103 -0
- package/leiamnash/setPostReaction.js +63 -0
- package/leiamnash/setTitle.js +70 -0
- package/leiamnash/threadColors.js +41 -0
- package/leiamnash/token.js +112 -0
- package/leiamnash/unfriend.js +42 -0
- package/leiamnash/unsendMessage.js +39 -0
- package/{src → leiamnash}/uploadAttachment.js +2 -1
- package/package.json +3 -2
- package/utils.js +1345 -1382
- package/.cache/replit/modules/nodejs-20:v32-20240401-269b323.res +0 -1
- package/.cache/replit/modules/replit:v8-20240329-787bc7d.res +0 -1
- package/.replit +0 -1
- package/src/addExternalModule.js +0 -19
- package/src/addUserToGroup.js +0 -113
- package/src/changeAdminStatus.js +0 -79
- package/src/changeArchivedStatus.js +0 -55
- package/src/changeBio.js +0 -77
- package/src/changeBlockedStatus.js +0 -47
- package/src/changeGroupImage.js +0 -132
- package/src/changeNickname.js +0 -59
- package/src/changeThreadColor.js +0 -65
- package/src/changeThreadEmoji.js +0 -55
- package/src/createNewGroup.js +0 -86
- package/src/createPoll.js +0 -71
- package/src/deleteMessage.js +0 -56
- package/src/deleteThread.js +0 -56
- package/src/edit.js +0 -66
- package/src/forwardAttachment.js +0 -60
- package/src/getCurrentUserID.js +0 -7
- package/src/getEmojiUrl.js +0 -29
- package/src/getFriendsList.js +0 -83
- package/src/getThreadHistory.js +0 -666
- package/src/getThreadInfo.js +0 -232
- package/src/getThreadList.js +0 -241
- package/src/getThreadPictures.js +0 -79
- package/src/getUserID.js +0 -66
- package/src/getUserInfo.js +0 -74
- package/src/handleFriendRequest.js +0 -61
- package/src/handleMessageRequest.js +0 -65
- package/src/httpGet.js +0 -57
- package/src/httpPost.js +0 -57
- package/src/httpPostFormData.js +0 -63
- package/src/listenMqtt.js +0 -854
- package/src/logout.js +0 -75
- package/src/markAsDelivered.js +0 -58
- package/src/markAsRead.js +0 -80
- package/src/markAsReadAll.js +0 -50
- package/src/markAsSeen.js +0 -59
- package/src/muteThread.js +0 -52
- package/src/react.js +0 -121
- package/src/removeUserFromGroup.js +0 -79
- package/src/resolvePhotoUrl.js +0 -45
- package/src/searchForThread.js +0 -53
- package/src/seen.js +0 -50
- package/src/sendMessage.js +0 -477
- package/src/sendTypingIndicator.js +0 -103
- package/src/setMessageReaction.js +0 -121
- package/src/setPostReaction.js +0 -109
- package/src/setTitle.js +0 -86
- package/src/threadColors.js +0 -131
- package/src/unfriend.js +0 -52
- package/src/unsendMessage.js +0 -49
- /package/{src → leiamnash}/getMessage.js +0 -0
@@ -0,0 +1,321 @@
|
|
1
|
+
export const version: string;
|
2
|
+
|
3
|
+
export const PrefixSecurityEnum: Readonly<{
|
4
|
+
DISABLED: string;
|
5
|
+
SILENT: string;
|
6
|
+
STRICT: string;
|
7
|
+
}>;
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Parse a cookie date string into a Date.
|
11
|
+
* Parses according to RFC6265 Section 5.1.1, not Date.parse().
|
12
|
+
*/
|
13
|
+
export function parseDate(string: string): Date;
|
14
|
+
|
15
|
+
/**
|
16
|
+
* Format a Date into a RFC1123 string (the RFC6265-recommended format).
|
17
|
+
*/
|
18
|
+
export function formatDate(date: Date): string;
|
19
|
+
|
20
|
+
/**
|
21
|
+
* Transforms a domain-name into a canonical domain-name.
|
22
|
+
* The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot
|
23
|
+
* and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265).
|
24
|
+
* For the most part, this function is idempotent (can be run again on its output without ill effects).
|
25
|
+
*/
|
26
|
+
export function canonicalDomain(str: string): string;
|
27
|
+
|
28
|
+
/**
|
29
|
+
* Answers "does this real domain match the domain in a cookie?".
|
30
|
+
* The str is the "current" domain-name and the domStr is the "cookie" domain-name.
|
31
|
+
* Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a "suffix match".
|
32
|
+
*
|
33
|
+
* The canonicalize parameter will run the other two parameters through canonicalDomain or not.
|
34
|
+
*/
|
35
|
+
export function domainMatch(str: string, domStr: string, canonicalize?: boolean): boolean;
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Given a current request/response path, gives the Path apropriate for storing in a cookie.
|
39
|
+
* This is basically the "directory" of a "file" in the path, but is specified by Section 5.1.4 of the RFC.
|
40
|
+
*
|
41
|
+
* The path parameter MUST be only the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.).
|
42
|
+
* This is the .pathname property of node's uri.parse() output.
|
43
|
+
*/
|
44
|
+
export function defaultPath(path: string): string;
|
45
|
+
|
46
|
+
/**
|
47
|
+
* Answers "does the request-path path-match a given cookie-path?" as per RFC6265 Section 5.1.4.
|
48
|
+
* Returns a boolean.
|
49
|
+
*
|
50
|
+
* This is essentially a prefix-match where cookiePath is a prefix of reqPath.
|
51
|
+
*/
|
52
|
+
export function pathMatch(reqPath: string, cookiePath: string): boolean;
|
53
|
+
|
54
|
+
/**
|
55
|
+
* alias for Cookie.parse(cookieString[, options])
|
56
|
+
*/
|
57
|
+
export function parse(cookieString: string, options?: Cookie.ParseOptions): Cookie | undefined;
|
58
|
+
|
59
|
+
/**
|
60
|
+
* alias for Cookie.fromJSON(string)
|
61
|
+
*/
|
62
|
+
export function fromJSON(string: string): Cookie;
|
63
|
+
|
64
|
+
export function getPublicSuffix(hostname: string): string | null;
|
65
|
+
|
66
|
+
export function cookieCompare(a: Cookie, b: Cookie): number;
|
67
|
+
|
68
|
+
export function permuteDomain(domain: string, allowSpecialUseDomain?: boolean): string[];
|
69
|
+
|
70
|
+
export function permutePath(path: string): string[];
|
71
|
+
|
72
|
+
export class Cookie {
|
73
|
+
static parse(cookieString: string, options?: Cookie.ParseOptions): Cookie | undefined;
|
74
|
+
|
75
|
+
static fromJSON(strOrObj: string | object): Cookie | null;
|
76
|
+
|
77
|
+
constructor(properties?: Cookie.Properties);
|
78
|
+
|
79
|
+
key: string;
|
80
|
+
value: string;
|
81
|
+
expires: Date | "Infinity";
|
82
|
+
maxAge: number | "Infinity" | "-Infinity";
|
83
|
+
domain: string | null;
|
84
|
+
path: string | null;
|
85
|
+
secure: boolean;
|
86
|
+
httpOnly: boolean;
|
87
|
+
extensions: string[] | null;
|
88
|
+
creation: Date | null;
|
89
|
+
creationIndex: number;
|
90
|
+
|
91
|
+
hostOnly: boolean | null;
|
92
|
+
pathIsDefault: boolean | null;
|
93
|
+
lastAccessed: Date | null;
|
94
|
+
sameSite: string;
|
95
|
+
|
96
|
+
toString(): string;
|
97
|
+
|
98
|
+
cookieString(): string;
|
99
|
+
|
100
|
+
setExpires(exp: Date | string): void;
|
101
|
+
|
102
|
+
setMaxAge(number: number): void;
|
103
|
+
|
104
|
+
expiryTime(now?: number): number;
|
105
|
+
|
106
|
+
expiryDate(now?: number): Date;
|
107
|
+
|
108
|
+
TTL(now?: Date): number | typeof Infinity;
|
109
|
+
|
110
|
+
isPersistent(): boolean;
|
111
|
+
|
112
|
+
canonicalizedDomain(): string | null;
|
113
|
+
|
114
|
+
cdomain(): string | null;
|
115
|
+
|
116
|
+
inspect(): string;
|
117
|
+
|
118
|
+
toJSON(): { [key: string]: any };
|
119
|
+
|
120
|
+
clone(): Cookie;
|
121
|
+
|
122
|
+
validate(): boolean | string;
|
123
|
+
}
|
124
|
+
|
125
|
+
export namespace Cookie {
|
126
|
+
interface ParseOptions {
|
127
|
+
loose?: boolean | undefined;
|
128
|
+
}
|
129
|
+
|
130
|
+
interface Properties {
|
131
|
+
key?: string | undefined;
|
132
|
+
value?: string | undefined;
|
133
|
+
expires?: Date | "Infinity" | undefined;
|
134
|
+
maxAge?: number | "Infinity" | "-Infinity" | undefined;
|
135
|
+
domain?: string | undefined;
|
136
|
+
path?: string | undefined;
|
137
|
+
secure?: boolean | undefined;
|
138
|
+
httpOnly?: boolean | undefined;
|
139
|
+
extensions?: string[] | undefined;
|
140
|
+
creation?: Date | undefined;
|
141
|
+
creationIndex?: number | undefined;
|
142
|
+
|
143
|
+
hostOnly?: boolean | undefined;
|
144
|
+
pathIsDefault?: boolean | undefined;
|
145
|
+
lastAccessed?: Date | undefined;
|
146
|
+
sameSite?: string | undefined;
|
147
|
+
}
|
148
|
+
|
149
|
+
interface Serialized {
|
150
|
+
[key: string]: any;
|
151
|
+
}
|
152
|
+
}
|
153
|
+
|
154
|
+
export class CookieJar {
|
155
|
+
static deserialize(serialized: CookieJar.Serialized | string, store?: Store): Promise<CookieJar>;
|
156
|
+
static deserialize(
|
157
|
+
serialized: CookieJar.Serialized | string,
|
158
|
+
store: Store,
|
159
|
+
cb: (err: Error | null, object: CookieJar) => void,
|
160
|
+
): void;
|
161
|
+
static deserialize(
|
162
|
+
serialized: CookieJar.Serialized | string,
|
163
|
+
cb: (err: Error | null, object: CookieJar) => void,
|
164
|
+
): void;
|
165
|
+
|
166
|
+
static deserializeSync(serialized: CookieJar.Serialized | string, store?: Store): CookieJar;
|
167
|
+
|
168
|
+
static fromJSON(string: string): CookieJar;
|
169
|
+
|
170
|
+
constructor(store?: Store, options?: CookieJar.Options);
|
171
|
+
|
172
|
+
setCookie(
|
173
|
+
cookieOrString: Cookie | string,
|
174
|
+
currentUrl: string,
|
175
|
+
options?: CookieJar.SetCookieOptions,
|
176
|
+
): Promise<Cookie>;
|
177
|
+
setCookie(
|
178
|
+
cookieOrString: Cookie | string,
|
179
|
+
currentUrl: string,
|
180
|
+
options: CookieJar.SetCookieOptions,
|
181
|
+
cb: (err: Error | null, cookie: Cookie) => void,
|
182
|
+
): void;
|
183
|
+
setCookie(
|
184
|
+
cookieOrString: Cookie | string,
|
185
|
+
currentUrl: string,
|
186
|
+
cb: (err: Error | null, cookie: Cookie) => void,
|
187
|
+
): void;
|
188
|
+
|
189
|
+
setCookieSync(cookieOrString: Cookie | string, currentUrl: string, options?: CookieJar.SetCookieOptions): Cookie;
|
190
|
+
|
191
|
+
getCookies(currentUrl: string, options?: CookieJar.GetCookiesOptions): Promise<Cookie[]>;
|
192
|
+
getCookies(
|
193
|
+
currentUrl: string,
|
194
|
+
options: CookieJar.GetCookiesOptions,
|
195
|
+
cb: (err: Error | null, cookies: Cookie[]) => void,
|
196
|
+
): void;
|
197
|
+
getCookies(currentUrl: string, cb: (err: Error | null, cookies: Cookie[]) => void): void;
|
198
|
+
|
199
|
+
getCookiesSync(currentUrl: string, options?: CookieJar.GetCookiesOptions): Cookie[];
|
200
|
+
|
201
|
+
getCookieString(currentUrl: string, options?: CookieJar.GetCookiesOptions): Promise<string>;
|
202
|
+
getCookieString(
|
203
|
+
currentUrl: string,
|
204
|
+
options: CookieJar.GetCookiesOptions,
|
205
|
+
cb: (err: Error | null, cookies: string) => void,
|
206
|
+
): void;
|
207
|
+
getCookieString(currentUrl: string, cb: (err: Error | null, cookies: string) => void): void;
|
208
|
+
|
209
|
+
getCookieStringSync(currentUrl: string, options?: CookieJar.GetCookiesOptions): string;
|
210
|
+
|
211
|
+
getSetCookieStrings(currentUrl: string, options?: CookieJar.GetCookiesOptions): Promise<string[]>;
|
212
|
+
getSetCookieStrings(
|
213
|
+
currentUrl: string,
|
214
|
+
options: CookieJar.GetCookiesOptions,
|
215
|
+
cb: (err: Error | null, cookies: string[]) => void,
|
216
|
+
): void;
|
217
|
+
getSetCookieStrings(currentUrl: string, cb: (err: Error | null, cookies: string[]) => void): void;
|
218
|
+
|
219
|
+
getSetCookieStringsSync(currentUrl: string, options?: CookieJar.GetCookiesOptions): string[];
|
220
|
+
|
221
|
+
serialize(): Promise<CookieJar.Serialized>;
|
222
|
+
serialize(cb: (err: Error | null, serializedObject: CookieJar.Serialized) => void): void;
|
223
|
+
|
224
|
+
serializeSync(): CookieJar.Serialized;
|
225
|
+
|
226
|
+
toJSON(): CookieJar.Serialized;
|
227
|
+
|
228
|
+
clone(store?: Store): Promise<CookieJar>;
|
229
|
+
clone(store: Store, cb: (err: Error | null, newJar: CookieJar) => void): void;
|
230
|
+
clone(cb: (err: Error | null, newJar: CookieJar) => void): void;
|
231
|
+
|
232
|
+
cloneSync(store?: Store): CookieJar;
|
233
|
+
|
234
|
+
removeAllCookies(): Promise<void>;
|
235
|
+
removeAllCookies(cb: (err: Error | null) => void): void;
|
236
|
+
|
237
|
+
removeAllCookiesSync(): void;
|
238
|
+
}
|
239
|
+
|
240
|
+
export namespace CookieJar {
|
241
|
+
interface Options {
|
242
|
+
allowSpecialUseDomain?: boolean | undefined;
|
243
|
+
looseMode?: boolean | undefined;
|
244
|
+
rejectPublicSuffixes?: boolean | undefined;
|
245
|
+
prefixSecurity?: string | undefined;
|
246
|
+
}
|
247
|
+
|
248
|
+
interface SetCookieOptions {
|
249
|
+
http?: boolean | undefined;
|
250
|
+
secure?: boolean | undefined;
|
251
|
+
now?: Date | undefined;
|
252
|
+
ignoreError?: boolean | undefined;
|
253
|
+
}
|
254
|
+
|
255
|
+
interface GetCookiesOptions {
|
256
|
+
http?: boolean | undefined;
|
257
|
+
secure?: boolean | undefined;
|
258
|
+
now?: Date | undefined;
|
259
|
+
expire?: boolean | undefined;
|
260
|
+
allPaths?: boolean | undefined;
|
261
|
+
}
|
262
|
+
|
263
|
+
interface Serialized {
|
264
|
+
version: string;
|
265
|
+
storeType: string;
|
266
|
+
rejectPublicSuffixes: boolean;
|
267
|
+
cookies: Cookie.Serialized[];
|
268
|
+
}
|
269
|
+
}
|
270
|
+
|
271
|
+
export abstract class Store {
|
272
|
+
synchronous: boolean;
|
273
|
+
|
274
|
+
findCookie(domain: string, path: string, key: string, cb: (err: Error | null, cookie: Cookie | null) => void): void;
|
275
|
+
|
276
|
+
findCookies(
|
277
|
+
domain: string,
|
278
|
+
path: string,
|
279
|
+
allowSpecialUseDomain: boolean,
|
280
|
+
cb: (err: Error | null, cookie: Cookie[]) => void,
|
281
|
+
): void;
|
282
|
+
|
283
|
+
putCookie(cookie: Cookie, cb: (err: Error | null) => void): void;
|
284
|
+
|
285
|
+
updateCookie(oldCookie: Cookie, newCookie: Cookie, cb: (err: Error | null) => void): void;
|
286
|
+
|
287
|
+
removeCookie(domain: string, path: string, key: string, cb: (err: Error | null) => void): void;
|
288
|
+
|
289
|
+
removeCookies(domain: string, path: string, cb: (err: Error | null) => void): void;
|
290
|
+
|
291
|
+
getAllCookies(cb: (err: Error | null, cookie: Cookie[]) => void): void;
|
292
|
+
}
|
293
|
+
|
294
|
+
export class MemoryCookieStore extends Store {
|
295
|
+
findCookie(domain: string, path: string, key: string, cb: (err: Error | null, cookie: Cookie | null) => void): void;
|
296
|
+
findCookie(domain: string, path: string, key: string): Promise<Cookie | null>;
|
297
|
+
|
298
|
+
findCookies(
|
299
|
+
domain: string,
|
300
|
+
path: string,
|
301
|
+
allowSpecialUseDomain: boolean,
|
302
|
+
cb: (err: Error | null, cookie: Cookie[]) => void,
|
303
|
+
): void;
|
304
|
+
findCookies(domain: string, path: string, cb: (err: Error | null, cookie: Cookie[]) => void): void;
|
305
|
+
findCookies(domain: string, path: string, allowSpecialUseDomain?: boolean): Promise<Cookie[]>;
|
306
|
+
|
307
|
+
putCookie(cookie: Cookie, cb: (err: Error | null) => void): void;
|
308
|
+
putCookie(cookie: Cookie): Promise<void>;
|
309
|
+
|
310
|
+
updateCookie(oldCookie: Cookie, newCookie: Cookie, cb: (err: Error | null) => void): void;
|
311
|
+
updateCookie(oldCookie: Cookie, newCookie: Cookie): Promise<void>;
|
312
|
+
|
313
|
+
removeCookie(domain: string, path: string, key: string, cb: (err: Error | null) => void): void;
|
314
|
+
removeCookie(domain: string, path: string, key: string): Promise<void>;
|
315
|
+
|
316
|
+
removeCookies(domain: string, path: string, cb: (err: Error | null) => void): void;
|
317
|
+
removeCookies(domain: string, path: string): Promise<void>;
|
318
|
+
|
319
|
+
getAllCookies(cb: (err: Error | null, cookie: Cookie[]) => void): void;
|
320
|
+
getAllCookies(): Promise<Cookie[]>;
|
321
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
{
|
2
|
+
"name": "@types/tough-cookie",
|
3
|
+
"version": "4.0.5",
|
4
|
+
"description": "TypeScript definitions for tough-cookie",
|
5
|
+
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/tough-cookie",
|
6
|
+
"license": "MIT",
|
7
|
+
"contributors": [
|
8
|
+
{
|
9
|
+
"name": "Leonard Thieu",
|
10
|
+
"githubUsername": "leonard-thieu",
|
11
|
+
"url": "https://github.com/leonard-thieu"
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"name": "LiJinyao",
|
15
|
+
"githubUsername": "LiJinyao",
|
16
|
+
"url": "https://github.com/LiJinyao"
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"name": "Michael Wei",
|
20
|
+
"githubUsername": "no2chem",
|
21
|
+
"url": "https://github.com/no2chem"
|
22
|
+
}
|
23
|
+
],
|
24
|
+
"main": "",
|
25
|
+
"types": "index.d.ts",
|
26
|
+
"repository": {
|
27
|
+
"type": "git",
|
28
|
+
"url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
|
29
|
+
"directory": "types/tough-cookie"
|
30
|
+
},
|
31
|
+
"scripts": {},
|
32
|
+
"dependencies": {},
|
33
|
+
"typesPublisherContentHash": "adafa53ff34d3665a708d3ab1af232a46d4efb906d46f48d7d0cd3206c987a58",
|
34
|
+
"typeScriptVersion": "4.5"
|
35
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2016 Alex Indigo
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
@@ -0,0 +1,233 @@
|
|
1
|
+
# asynckit [![NPM Module](https://img.shields.io/npm/v/asynckit.svg?style=flat)](https://www.npmjs.com/package/asynckit)
|
2
|
+
|
3
|
+
Minimal async jobs utility library, with streams support.
|
4
|
+
|
5
|
+
[![PhantomJS Build](https://img.shields.io/travis/alexindigo/asynckit/v0.4.0.svg?label=browser&style=flat)](https://travis-ci.org/alexindigo/asynckit)
|
6
|
+
[![Linux Build](https://img.shields.io/travis/alexindigo/asynckit/v0.4.0.svg?label=linux:0.12-6.x&style=flat)](https://travis-ci.org/alexindigo/asynckit)
|
7
|
+
[![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/asynckit/v0.4.0.svg?label=windows:0.12-6.x&style=flat)](https://ci.appveyor.com/project/alexindigo/asynckit)
|
8
|
+
|
9
|
+
[![Coverage Status](https://img.shields.io/coveralls/alexindigo/asynckit/v0.4.0.svg?label=code+coverage&style=flat)](https://coveralls.io/github/alexindigo/asynckit?branch=master)
|
10
|
+
[![Dependency Status](https://img.shields.io/david/alexindigo/asynckit/v0.4.0.svg?style=flat)](https://david-dm.org/alexindigo/asynckit)
|
11
|
+
[![bitHound Overall Score](https://www.bithound.io/github/alexindigo/asynckit/badges/score.svg)](https://www.bithound.io/github/alexindigo/asynckit)
|
12
|
+
|
13
|
+
<!-- [![Readme](https://img.shields.io/badge/readme-tested-brightgreen.svg?style=flat)](https://www.npmjs.com/package/reamde) -->
|
14
|
+
|
15
|
+
AsyncKit provides harness for `parallel` and `serial` iterators over list of items represented by arrays or objects.
|
16
|
+
Optionally it accepts abort function (should be synchronously return by iterator for each item), and terminates left over jobs upon an error event. For specific iteration order built-in (`ascending` and `descending`) and custom sort helpers also supported, via `asynckit.serialOrdered` method.
|
17
|
+
|
18
|
+
It ensures async operations to keep behavior more stable and prevent `Maximum call stack size exceeded` errors, from sync iterators.
|
19
|
+
|
20
|
+
| compression | size |
|
21
|
+
| :----------------- | -------: |
|
22
|
+
| asynckit.js | 12.34 kB |
|
23
|
+
| asynckit.min.js | 4.11 kB |
|
24
|
+
| asynckit.min.js.gz | 1.47 kB |
|
25
|
+
|
26
|
+
|
27
|
+
## Install
|
28
|
+
|
29
|
+
```sh
|
30
|
+
$ npm install --save asynckit
|
31
|
+
```
|
32
|
+
|
33
|
+
## Examples
|
34
|
+
|
35
|
+
### Parallel Jobs
|
36
|
+
|
37
|
+
Runs iterator over provided array in parallel. Stores output in the `result` array,
|
38
|
+
on the matching positions. In unlikely event of an error from one of the jobs,
|
39
|
+
will terminate rest of the active jobs (if abort function is provided)
|
40
|
+
and return error along with salvaged data to the main callback function.
|
41
|
+
|
42
|
+
#### Input Array
|
43
|
+
|
44
|
+
```javascript
|
45
|
+
var parallel = require('asynckit').parallel
|
46
|
+
, assert = require('assert')
|
47
|
+
;
|
48
|
+
|
49
|
+
var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ]
|
50
|
+
, expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ]
|
51
|
+
, expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ]
|
52
|
+
, target = []
|
53
|
+
;
|
54
|
+
|
55
|
+
parallel(source, asyncJob, function(err, result)
|
56
|
+
{
|
57
|
+
assert.deepEqual(result, expectedResult);
|
58
|
+
assert.deepEqual(target, expectedTarget);
|
59
|
+
});
|
60
|
+
|
61
|
+
// async job accepts one element from the array
|
62
|
+
// and a callback function
|
63
|
+
function asyncJob(item, cb)
|
64
|
+
{
|
65
|
+
// different delays (in ms) per item
|
66
|
+
var delay = item * 25;
|
67
|
+
|
68
|
+
// pretend different jobs take different time to finish
|
69
|
+
// and not in consequential order
|
70
|
+
var timeoutId = setTimeout(function() {
|
71
|
+
target.push(item);
|
72
|
+
cb(null, item * 2);
|
73
|
+
}, delay);
|
74
|
+
|
75
|
+
// allow to cancel "leftover" jobs upon error
|
76
|
+
// return function, invoking of which will abort this job
|
77
|
+
return clearTimeout.bind(null, timeoutId);
|
78
|
+
}
|
79
|
+
```
|
80
|
+
|
81
|
+
More examples could be found in [test/test-parallel-array.js](test/test-parallel-array.js).
|
82
|
+
|
83
|
+
#### Input Object
|
84
|
+
|
85
|
+
Also it supports named jobs, listed via object.
|
86
|
+
|
87
|
+
```javascript
|
88
|
+
var parallel = require('asynckit/parallel')
|
89
|
+
, assert = require('assert')
|
90
|
+
;
|
91
|
+
|
92
|
+
var source = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 }
|
93
|
+
, expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 }
|
94
|
+
, expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ]
|
95
|
+
, expectedKeys = [ 'first', 'one', 'two', 'four', 'eight', 'sixteen', 'thirtyTwo', 'sixtyFour' ]
|
96
|
+
, target = []
|
97
|
+
, keys = []
|
98
|
+
;
|
99
|
+
|
100
|
+
parallel(source, asyncJob, function(err, result)
|
101
|
+
{
|
102
|
+
assert.deepEqual(result, expectedResult);
|
103
|
+
assert.deepEqual(target, expectedTarget);
|
104
|
+
assert.deepEqual(keys, expectedKeys);
|
105
|
+
});
|
106
|
+
|
107
|
+
// supports full value, key, callback (shortcut) interface
|
108
|
+
function asyncJob(item, key, cb)
|
109
|
+
{
|
110
|
+
// different delays (in ms) per item
|
111
|
+
var delay = item * 25;
|
112
|
+
|
113
|
+
// pretend different jobs take different time to finish
|
114
|
+
// and not in consequential order
|
115
|
+
var timeoutId = setTimeout(function() {
|
116
|
+
keys.push(key);
|
117
|
+
target.push(item);
|
118
|
+
cb(null, item * 2);
|
119
|
+
}, delay);
|
120
|
+
|
121
|
+
// allow to cancel "leftover" jobs upon error
|
122
|
+
// return function, invoking of which will abort this job
|
123
|
+
return clearTimeout.bind(null, timeoutId);
|
124
|
+
}
|
125
|
+
```
|
126
|
+
|
127
|
+
More examples could be found in [test/test-parallel-object.js](test/test-parallel-object.js).
|
128
|
+
|
129
|
+
### Serial Jobs
|
130
|
+
|
131
|
+
Runs iterator over provided array sequentially. Stores output in the `result` array,
|
132
|
+
on the matching positions. In unlikely event of an error from one of the jobs,
|
133
|
+
will not proceed to the rest of the items in the list
|
134
|
+
and return error along with salvaged data to the main callback function.
|
135
|
+
|
136
|
+
#### Input Array
|
137
|
+
|
138
|
+
```javascript
|
139
|
+
var serial = require('asynckit/serial')
|
140
|
+
, assert = require('assert')
|
141
|
+
;
|
142
|
+
|
143
|
+
var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ]
|
144
|
+
, expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ]
|
145
|
+
, expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ]
|
146
|
+
, target = []
|
147
|
+
;
|
148
|
+
|
149
|
+
serial(source, asyncJob, function(err, result)
|
150
|
+
{
|
151
|
+
assert.deepEqual(result, expectedResult);
|
152
|
+
assert.deepEqual(target, expectedTarget);
|
153
|
+
});
|
154
|
+
|
155
|
+
// extended interface (item, key, callback)
|
156
|
+
// also supported for arrays
|
157
|
+
function asyncJob(item, key, cb)
|
158
|
+
{
|
159
|
+
target.push(key);
|
160
|
+
|
161
|
+
// it will be automatically made async
|
162
|
+
// even it iterator "returns" in the same event loop
|
163
|
+
cb(null, item * 2);
|
164
|
+
}
|
165
|
+
```
|
166
|
+
|
167
|
+
More examples could be found in [test/test-serial-array.js](test/test-serial-array.js).
|
168
|
+
|
169
|
+
#### Input Object
|
170
|
+
|
171
|
+
Also it supports named jobs, listed via object.
|
172
|
+
|
173
|
+
```javascript
|
174
|
+
var serial = require('asynckit').serial
|
175
|
+
, assert = require('assert')
|
176
|
+
;
|
177
|
+
|
178
|
+
var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ]
|
179
|
+
, expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ]
|
180
|
+
, expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ]
|
181
|
+
, target = []
|
182
|
+
;
|
183
|
+
|
184
|
+
var source = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 }
|
185
|
+
, expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 }
|
186
|
+
, expectedTarget = [ 1, 1, 4, 16, 64, 32, 8, 2 ]
|
187
|
+
, target = []
|
188
|
+
;
|
189
|
+
|
190
|
+
|
191
|
+
serial(source, asyncJob, function(err, result)
|
192
|
+
{
|
193
|
+
assert.deepEqual(result, expectedResult);
|
194
|
+
assert.deepEqual(target, expectedTarget);
|
195
|
+
});
|
196
|
+
|
197
|
+
// shortcut interface (item, callback)
|
198
|
+
// works for object as well as for the arrays
|
199
|
+
function asyncJob(item, cb)
|
200
|
+
{
|
201
|
+
target.push(item);
|
202
|
+
|
203
|
+
// it will be automatically made async
|
204
|
+
// even it iterator "returns" in the same event loop
|
205
|
+
cb(null, item * 2);
|
206
|
+
}
|
207
|
+
```
|
208
|
+
|
209
|
+
More examples could be found in [test/test-serial-object.js](test/test-serial-object.js).
|
210
|
+
|
211
|
+
_Note: Since _object_ is an _unordered_ collection of properties,
|
212
|
+
it may produce unexpected results with sequential iterations.
|
213
|
+
Whenever order of the jobs' execution is important please use `serialOrdered` method._
|
214
|
+
|
215
|
+
### Ordered Serial Iterations
|
216
|
+
|
217
|
+
TBD
|
218
|
+
|
219
|
+
For example [compare-property](compare-property) package.
|
220
|
+
|
221
|
+
### Streaming interface
|
222
|
+
|
223
|
+
TBD
|
224
|
+
|
225
|
+
## Want to Know More?
|
226
|
+
|
227
|
+
More examples can be found in [test folder](test/).
|
228
|
+
|
229
|
+
Or open an [issue](https://github.com/alexindigo/asynckit/issues) with questions and/or suggestions.
|
230
|
+
|
231
|
+
## License
|
232
|
+
|
233
|
+
AsyncKit is licensed under the MIT license.
|
@@ -0,0 +1,76 @@
|
|
1
|
+
/* eslint no-console: "off" */
|
2
|
+
|
3
|
+
var asynckit = require('./')
|
4
|
+
, async = require('async')
|
5
|
+
, assert = require('assert')
|
6
|
+
, expected = 0
|
7
|
+
;
|
8
|
+
|
9
|
+
var Benchmark = require('benchmark');
|
10
|
+
var suite = new Benchmark.Suite;
|
11
|
+
|
12
|
+
var source = [];
|
13
|
+
for (var z = 1; z < 100; z++)
|
14
|
+
{
|
15
|
+
source.push(z);
|
16
|
+
expected += z;
|
17
|
+
}
|
18
|
+
|
19
|
+
suite
|
20
|
+
// add tests
|
21
|
+
|
22
|
+
.add('async.map', function(deferred)
|
23
|
+
{
|
24
|
+
var total = 0;
|
25
|
+
|
26
|
+
async.map(source,
|
27
|
+
function(i, cb)
|
28
|
+
{
|
29
|
+
setImmediate(function()
|
30
|
+
{
|
31
|
+
total += i;
|
32
|
+
cb(null, total);
|
33
|
+
});
|
34
|
+
},
|
35
|
+
function(err, result)
|
36
|
+
{
|
37
|
+
assert.ifError(err);
|
38
|
+
assert.equal(result[result.length - 1], expected);
|
39
|
+
deferred.resolve();
|
40
|
+
});
|
41
|
+
}, {'defer': true})
|
42
|
+
|
43
|
+
|
44
|
+
.add('asynckit.parallel', function(deferred)
|
45
|
+
{
|
46
|
+
var total = 0;
|
47
|
+
|
48
|
+
asynckit.parallel(source,
|
49
|
+
function(i, cb)
|
50
|
+
{
|
51
|
+
setImmediate(function()
|
52
|
+
{
|
53
|
+
total += i;
|
54
|
+
cb(null, total);
|
55
|
+
});
|
56
|
+
},
|
57
|
+
function(err, result)
|
58
|
+
{
|
59
|
+
assert.ifError(err);
|
60
|
+
assert.equal(result[result.length - 1], expected);
|
61
|
+
deferred.resolve();
|
62
|
+
});
|
63
|
+
}, {'defer': true})
|
64
|
+
|
65
|
+
|
66
|
+
// add listeners
|
67
|
+
.on('cycle', function(ev)
|
68
|
+
{
|
69
|
+
console.log(String(ev.target));
|
70
|
+
})
|
71
|
+
.on('complete', function()
|
72
|
+
{
|
73
|
+
console.log('Fastest is ' + this.filter('fastest').map('name'));
|
74
|
+
})
|
75
|
+
// run async
|
76
|
+
.run({ 'async': true });
|