cloudstorm 0.1.4 → 0.3.0

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.
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ const events_1 = require("events");
6
+ const zlib_sync_1 = __importDefault(require("zlib-sync"));
7
+ let Erlpack;
8
+ try {
9
+ Erlpack = require("erlpack");
10
+ }
11
+ catch (e) {
12
+ Erlpack = null;
13
+ }
14
+ const Constants_1 = require("../Constants");
15
+ const ws_1 = __importDefault(require("ws"));
16
+ const RatelimitBucket_1 = __importDefault(require("./RatelimitBucket"));
17
+ /**
18
+ * Helper Class for simplifying the websocket connection to Discord.
19
+ */
20
+ class BetterWs extends events_1.EventEmitter {
21
+ /**
22
+ * Create a new BetterWs instance.
23
+ */
24
+ constructor(address, options = {}) {
25
+ super();
26
+ this.ws = new ws_1.default(address, options);
27
+ this.bindWs(this.ws);
28
+ this.wsBucket = new RatelimitBucket_1.default(120, 60000);
29
+ this.presenceBucket = new RatelimitBucket_1.default(5, 20000);
30
+ this.zlibInflate = new zlib_sync_1.default.Inflate({ chunkSize: 65535 });
31
+ }
32
+ /**
33
+ * Get the raw websocket connection currently used.
34
+ */
35
+ get rawWs() {
36
+ return this.ws;
37
+ }
38
+ /**
39
+ * Add eventlisteners to a passed websocket connection.
40
+ * @param ws Websocket.
41
+ */
42
+ bindWs(ws) {
43
+ ws.on("message", (msg) => {
44
+ this.onMessage(msg);
45
+ });
46
+ ws.on("close", (code, reason) => this.onClose(code, reason.toString()));
47
+ ws.on("error", (err) => {
48
+ this.emit("error", err);
49
+ });
50
+ ws.on("open", () => this.onOpen());
51
+ }
52
+ /**
53
+ * Create a new websocket connection if the old one was closed/destroyed.
54
+ * @param address Address to connect to.
55
+ * @param options Options used by the websocket connection.
56
+ */
57
+ recreateWs(address, options = {}) {
58
+ this.ws.removeAllListeners();
59
+ this.zlibInflate = new zlib_sync_1.default.Inflate({ chunkSize: 65535 });
60
+ this.ws = new ws_1.default(address, options);
61
+ this.options = options;
62
+ this.wsBucket.dropQueue();
63
+ this.wsBucket = new RatelimitBucket_1.default(120, 60000);
64
+ this.presenceBucket = new RatelimitBucket_1.default(5, 60000);
65
+ this.bindWs(this.ws);
66
+ }
67
+ /**
68
+ * Called upon opening of the websocket connection.
69
+ */
70
+ onOpen() {
71
+ this.emit("ws_open");
72
+ }
73
+ /**
74
+ * Called once a websocket message is received,
75
+ * uncompresses the message using zlib and parses it via Erlpack or JSON.parse.
76
+ * @param message Message received by websocket.
77
+ */
78
+ onMessage(message) {
79
+ let parsed;
80
+ try {
81
+ const length = message.length;
82
+ const flush = length >= 4 &&
83
+ message[length - 4] === 0x00 &&
84
+ message[length - 3] === 0x00 &&
85
+ message[length - 2] === 0xFF &&
86
+ message[length - 1] === 0xFF;
87
+ this.zlibInflate.push(message, flush ? zlib_sync_1.default.Z_SYNC_FLUSH : false);
88
+ if (!flush)
89
+ return;
90
+ if (Erlpack) {
91
+ parsed = Erlpack.unpack(this.zlibInflate.result);
92
+ }
93
+ else {
94
+ parsed = JSON.parse(String(this.zlibInflate.result));
95
+ }
96
+ }
97
+ catch (e) {
98
+ this.emit("error", `Message: ${message} was not parseable`);
99
+ return;
100
+ }
101
+ this.emit("ws_message", parsed);
102
+ }
103
+ /**
104
+ * Called when the websocket connection closes for some reason.
105
+ * @param code Websocket close code.
106
+ * @param reason Reason of the close if any.
107
+ */
108
+ onClose(code, reason) {
109
+ this.emit("ws_close", code, reason);
110
+ }
111
+ /**
112
+ * Send a message to the Discord gateway.
113
+ * @param data Data to send.
114
+ */
115
+ sendMessage(data) {
116
+ if (this.ws.readyState !== ws_1.default.OPEN)
117
+ return Promise.reject(new Error("WS is not open"));
118
+ this.emit("debug_send", data);
119
+ return new Promise((res, rej) => {
120
+ const presence = data.op === Constants_1.GATEWAY_OP_CODES.PRESENCE_UPDATE;
121
+ try {
122
+ if (Erlpack) {
123
+ data = Erlpack.pack(data);
124
+ }
125
+ else {
126
+ data = JSON.stringify(data);
127
+ }
128
+ }
129
+ catch (e) {
130
+ return rej(e);
131
+ }
132
+ const sendMsg = () => {
133
+ // The promise from wsBucket is ignored, since the method passed to it does not return a promise
134
+ this.wsBucket.queue(() => {
135
+ this.ws.send(data, {}, (e) => {
136
+ if (e) {
137
+ return rej(e);
138
+ }
139
+ res();
140
+ });
141
+ });
142
+ };
143
+ if (presence) {
144
+ // same here
145
+ this.presenceBucket.queue(sendMsg);
146
+ }
147
+ else {
148
+ sendMsg();
149
+ }
150
+ });
151
+ }
152
+ /**
153
+ * Close the current websocket connection.
154
+ * @param code Websocket close code to use.
155
+ * @param reason Reason of the disconnect.
156
+ */
157
+ close(code = 1000, reason = "Unknown") {
158
+ if (this.ws.readyState === ws_1.default.CLOSING || this.ws.readyState === ws_1.default.CLOSED)
159
+ return Promise.reject(new Error("WS is already closing or is closed"));
160
+ return new Promise((res, rej) => {
161
+ const timeout = setTimeout(() => {
162
+ return rej("Websocket not closed within 5 seconds");
163
+ }, 5 * 1000);
164
+ this.ws.once("close", () => {
165
+ clearTimeout(timeout);
166
+ return res();
167
+ });
168
+ this.ws.close(code, reason);
169
+ });
170
+ }
171
+ }
172
+ module.exports = BetterWs;
@@ -0,0 +1,39 @@
1
+ /// <reference types="node" />
2
+ /**
3
+ * RatelimitBucket, used for ratelimiting the execution of functions.
4
+ */
5
+ declare class RatelimitBucket {
6
+ fnQueue: Array<{
7
+ fn: (...args: Array<any>) => any;
8
+ callback: () => any;
9
+ }>;
10
+ limit: number;
11
+ remaining: number;
12
+ limitReset: number;
13
+ resetTimeout: NodeJS.Timeout | null;
14
+ /**
15
+ * Create a new Bucket.
16
+ * @param limit Number of functions that may be executed during the timeframe set in limitReset.
17
+ * @param limitReset Timeframe in milliseconds until the ratelimit resets.
18
+ */
19
+ constructor(limit?: number, limitReset?: number);
20
+ /**
21
+ * Queue a function to be executed.
22
+ * @param fn Function to be executed.
23
+ * @returns Result of the function if any.
24
+ */
25
+ queue(fn: (...args: Array<any>) => any): Promise<any>;
26
+ /**
27
+ * Check if there are any functions in the queue that haven't been executed yet.
28
+ */
29
+ private checkQueue;
30
+ /**
31
+ * Reset the remaining tokens to the base limit.
32
+ */
33
+ private resetRemaining;
34
+ /**
35
+ * Clear the current queue of events to be sent.
36
+ */
37
+ dropQueue(): void;
38
+ }
39
+ export = RatelimitBucket;
@@ -1,89 +1,76 @@
1
- 'use strict';
2
-
3
- /**
4
- * RatelimitBucket, used for ratelimiting the execution of functions
5
- * @property {Array} fnQueue - array of functions waiting to be executed
6
- * @property {Number} limit - Number of functions that may be executed during the timeframe set in limitReset
7
- * @property {Number} remaining - Remaining amount of executions during the current timeframe
8
- * @property {Number} limitReset - Timeframe in milliseconds until the ratelimit resets
9
- * @property {Object} resetTimeout - Timeout that calls the reset function once the timeframe passed
10
- * @private
11
- */
12
- class RatelimitBucket {
13
- /**
14
- * Create a new Bucket
15
- * @param {Number} [limit=5] - Number of functions that may be executed during the timeframe set in limitReset
16
- * @param {Number} [limitReset=5000] - Timeframe in milliseconds until the ratelimit resets
17
- * @private
18
- */
19
- constructor(limit = 5, limitReset = 5000) {
20
- this.fnQueue = [];
21
- this.limit = limit;
22
- this.remaining = limit;
23
- this.limitReset = limitReset;
24
- this.resetTimeout = null;
25
- }
26
-
27
- /**
28
- * Queue a function to be executed
29
- * @param {Function} fn - function to be executed
30
- * @returns {Promise.<void>} - Result of the function if any
31
- * @protected
32
- */
33
- queue(fn) {
34
- return new Promise((res, rej) => {
35
- let wrapFn = () => {
36
- this.remaining--;
37
- if (!this.resetTimeout) {
38
- this.resetTimeout = setTimeout(() => this.resetRemaining(), this.limitReset);
39
- }
40
- if (this.remaining !== 0) {
41
- this.checkQueue();
42
- }
43
- if (typeof fn.then === 'function') {
44
- return fn().then(res).catch(rej);
45
- }
46
- return res(fn());
47
- };
48
- if (this.remaining === 0) {
49
- this.fnQueue.push({
50
- fn, callback: wrapFn
51
- });
52
- this.checkQueue();
53
- } else {
54
- wrapFn();
55
- }
56
- });
57
- }
58
-
59
- /**
60
- * Check if there are any functions in the queue that haven't been executed yet
61
- * @protected
62
- */
63
- checkQueue() {
64
- if (this.fnQueue.length > 0 && this.remaining !== 0) {
65
- let queuedFunc = this.fnQueue.splice(0, 1)[0];
66
- queuedFunc.callback();
67
- }
68
- }
69
-
70
- /**
71
- * Reset the remaining tokens to the base limit
72
- * @protected
73
- */
74
- resetRemaining() {
75
- this.remaining = this.limit;
76
- clearTimeout(this.resetTimeout);
77
- this.checkQueue();
78
- }
79
-
80
- /**
81
- * Clear the current queue of events to be sent
82
- * @protected
83
- */
84
- dropQueue() {
85
- this.fnQueue = [];
86
- }
87
- }
88
-
89
- module.exports = RatelimitBucket;
1
+ "use strict";
2
+ /**
3
+ * RatelimitBucket, used for ratelimiting the execution of functions.
4
+ */
5
+ class RatelimitBucket {
6
+ /**
7
+ * Create a new Bucket.
8
+ * @param limit Number of functions that may be executed during the timeframe set in limitReset.
9
+ * @param limitReset Timeframe in milliseconds until the ratelimit resets.
10
+ */
11
+ constructor(limit = 5, limitReset = 5000) {
12
+ this.fnQueue = [];
13
+ this.limit = limit;
14
+ this.remaining = limit;
15
+ this.limitReset = limitReset;
16
+ this.resetTimeout = null;
17
+ }
18
+ /**
19
+ * Queue a function to be executed.
20
+ * @param fn Function to be executed.
21
+ * @returns Result of the function if any.
22
+ */
23
+ queue(fn) {
24
+ return new Promise((res, rej) => {
25
+ const wrapFn = () => {
26
+ this.remaining--;
27
+ if (!this.resetTimeout) {
28
+ this.resetTimeout = setTimeout(() => this.resetRemaining(), this.limitReset);
29
+ }
30
+ if (this.remaining !== 0) {
31
+ this.checkQueue();
32
+ }
33
+ if (fn instanceof Promise) {
34
+ return fn.then(res).catch(rej);
35
+ }
36
+ return res(fn());
37
+ };
38
+ if (this.remaining === 0) {
39
+ this.fnQueue.push({
40
+ fn, callback: wrapFn
41
+ });
42
+ this.checkQueue();
43
+ }
44
+ else {
45
+ wrapFn();
46
+ }
47
+ });
48
+ }
49
+ /**
50
+ * Check if there are any functions in the queue that haven't been executed yet.
51
+ */
52
+ checkQueue() {
53
+ if (this.fnQueue.length > 0 && this.remaining !== 0) {
54
+ const queuedFunc = this.fnQueue.splice(0, 1)[0];
55
+ queuedFunc.callback();
56
+ }
57
+ }
58
+ /**
59
+ * Reset the remaining tokens to the base limit.
60
+ */
61
+ resetRemaining() {
62
+ this.remaining = this.limit;
63
+ if (this.resetTimeout) {
64
+ clearTimeout(this.resetTimeout);
65
+ this.resetTimeout = null;
66
+ }
67
+ this.checkQueue();
68
+ }
69
+ /**
70
+ * Clear the current queue of events to be sent.
71
+ */
72
+ dropQueue() {
73
+ this.fnQueue = [];
74
+ }
75
+ }
76
+ module.exports = RatelimitBucket;
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es5.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2016.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2021.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.esnext.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.dom.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.esnext.intl.d.ts","../src/constants.ts","../node_modules/snowtransfer/dist/constants.d.ts","../node_modules/snowtransfer/dist/endpoints.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/ts3.6/base.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/base.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/snowtransfer/dist/ratelimitbuckets/localbucket.d.ts","../node_modules/snowtransfer/dist/ratelimiter.d.ts","../node_modules/snowtransfer/dist/requesthandler.d.ts","../node_modules/discord-typings/index.d.ts","../node_modules/snowtransfer/dist/methods/channels.d.ts","../node_modules/snowtransfer/dist/methods/users.d.ts","../node_modules/snowtransfer/dist/methods/guildassets.d.ts","../node_modules/snowtransfer/dist/methods/webhooks.d.ts","../node_modules/snowtransfer/dist/methods/guilds.d.ts","../node_modules/snowtransfer/dist/methods/guildtemplate.d.ts","../node_modules/snowtransfer/dist/methods/interactions.d.ts","../node_modules/snowtransfer/dist/methods/invites.d.ts","../node_modules/snowtransfer/dist/methods/voices.d.ts","../node_modules/snowtransfer/dist/methods/bots.d.ts","../node_modules/snowtransfer/dist/methods/auditlog.d.ts","../node_modules/snowtransfer/dist/methods/stageinstance.d.ts","../node_modules/snowtransfer/dist/snowtransfer.d.ts","../node_modules/snowtransfer/dist/index.d.ts","../node_modules/zlib-sync/index.d.ts","../node_modules/@types/ws/index.d.ts","../src/structures/ratelimitbucket.ts","../src/types.ts","../node_modules/erlpack/js/index.d.ts","../src/structures/betterws.ts","../src/intents.ts","../src/connector/discordconnector.ts","../src/shard.ts","../src/shardmanager.ts","../src/client.ts","../src/index.ts"],"fileInfos":[{"version":"aa9fb4c70f369237c2f45f9d969c9a59e0eae9a192962eb48581fe864aa609db","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","eb75e89d63b3b72dd9ca8b0cac801cecae5be352307c004adeaa60bc9d6df51f","2cc028cd0bdb35b1b5eb723d84666a255933fffbea607f72cbd0c7c7b4bee144",{"version":"e54c8715a4954cfdc66cd69489f2b725c09ebf37492dbd91cff0a1688b1159e8","affectsGlobalScope":true},{"version":"51b8b27c21c066bf877646e320bf6a722b80d1ade65e686923cd9d4494aef1ca","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"2c8c5ee58f30e7c944e04ab1fb5506fdbb4dd507c9efa6972cf4b91cec90c503","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"cd6efb9467a8b6338ece2e2855e37765700f2cd061ca54b01b33878cf5c7677e","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"4632665b87204bb1caa8b44d165bce0c50dfab177df5b561b345a567cabacf9a","affectsGlobalScope":true},"e523fcce6b0a78030a9402c4aefb6f5b4c2ec318801bd2fd6d52338f7e8d4c06","ca10b3e820204d994b0e0fbe9c82c4064b3c22ec33ca79716b7383f3a2185a10","6b0438137eb8b04c8a4672c943da738da72379bead79a3afb2a97dc0ed5f92f6","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"34f1d0e1f63dd8c0bdc1fd15ec2b7216fd709953781c4d1b1213d88e2d94db9e","affectsGlobalScope":true},"4be51d991034b331db6a518e5a9607cb136b6d3ab2a691191a7d481354836a5f",{"version":"fa56e5f529c26a31207fecafbfd88136936868a4c17f8a347f0e8e6ea18309ad","affectsGlobalScope":true},"2f3a95a0e681afcde084379ed3b404ee09971425cf4600c3dd8b6f4adf058896","3fe5750809a130a0c9ee5dbca9e262913a10d1deda3ddb1280a77b099197e937",{"version":"d7e32c36d30042b47cd8620b197d3e3381954cf8baa413dc4273796e4cf718a1","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","41a3a8f7ba70f6e10fad838a363157217163bd897416480d0ed516b5d63e727e","53cf527b7d4a7ee1c16eeadff678d6df9f2a98cd5ece18f0f9211d8080204734","0038ccd1c90bc523ee4f7eeabc3f4082a48a5775415855e46f142447b9ad1114","aacb7a1f78d635e42d1112144c83508f340722e5293f7f14091581193618dca3","87c064559d14068edb2861fc7d48c1a8196a63523e00cc29aadd57c0eefb24a5","226afbe8d2d18dc02d1aebb449af0a11a278acb98b42c763aeec6d5a8e654441",{"version":"c3a43212afe9781a304d8f5dd3895fd38a143ac46fb64b4d343122e38c83a9ab","affectsGlobalScope":true},"ee738c1274439255c484262d0c6f90359c0209d42518d827b3f0167e44f633b2","01862fc59b8c037ea9fe03c6f3dc1ffc95bfc16fb37d58d6e7603706b9041d97","2163cfbd3438e495c08fb59b29740b1f96c7aec8ebb4faf9c9156f4fe94cb501","644a9cb29158878e67199d04c06699575d03812c90ea40c69d5a075fb8ec6b79","1f66294c9e9c24e84552cfaa70a27422811649de5a2efc69d3cf2ef38e833308","a82a261dac2131e55347889de6846a3e84741283d93d6525550ab3976be85cf6",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"1207275e727d14356922953c0597c77acad13e9812a0109a756c0c59ff0e87f3","dce04e108fbcbe674bceeea757269b7775a8a07693d6a58f55b36e649541675a","c90911387c5e9e024c309e63a14946a9bc3c71293e8f9d09eece16e11f167974","066f0de5d2acf0be06eb29a5ada8107f93891d7a983e6ba095260406650d742d",{"version":"6ae884f4861da8949f2c466b2d44fb087b2f1de82fe3449c3c52bd1d8cf998e6","affectsGlobalScope":true},"cbe717c2735bf2a6ceb29c2131232e74f4f95878072873dfb263566035024f99","5fd00b0ad7ef4e7eb69341da6ec17400922860afbdbc2cc46a37eba833d8a0bd","bc0c9dbd2b273d9466a31143a5f0118e8902232d906b3987d19d1bd67b96ee5d","757fec48e36f86c8b791b770c31f510d0e53817a95f61130df26df57cb382113","70d49d3e9f77b70197adabe6c06130c6ea5362316ea72feb142205c327f0aaa2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","a279435e7813d1f061c0cab6ab77b1b9377e8d96851e5ed4a76a1ce6eb6e628f","28e6ac6505a2b6755ce0752cd4d2dbd880e0e4e9bbfeaa3c777821825db2711a",{"version":"8a4f510bad5e5f5312fd966d20675381a3467c0c8d1b528b7f8e5ebb732ba1c9","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","8ee0dfa79a0b3e43bd5c0554157051abd87ef47df49884eba3e6a10bba1ecdc1","dcbcf0056d7bcd4e716bd0cc9223913e58373095c4750250f525694d88f49962","715b8aedc97884235eac2346481e7f1cca0379f870a58a60d22f444f8b7c59a8","3dfbe800bece5d51c4a4abf726598bf4aa80b19ae4e8288ada7cf75efdc40930","2ac6c37c23dbb6a87d0657fbaa509bd077dd4ea066fecff1e94a01e19410d8c6","5d50d7b266824bd435c9696f71d64041db90667b6f95d5285adfa6946a73dde5","58250ab8b2768e6d713bb8271d4d1ed1029069bb94631764538a474fe1cb1eca","555122eabf41efe584457b407892ed4420c5dc5404004eafed8bc365459f1eef","56f3ed639ae070160aaa79a626e0f956374c7dcd2093216f48cc952981ea2e93",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b9d6227d9cf5e2aac16c149377136b01e8692c0f82f185f6192c78285236e71d","359745bfbc578a51b1143fc7c49159f6068acf121017982519b88b04f27ea66a","31c268bcfbbb3a89dd4019ff8001069024921c2c0fb73bccc6f8e6f2da7bff09","35549c9daefc577a6d80bac1c1543b3588804fdda82cb1cf7b5293ca65b4dce4","84af13c14cff9bee64db4d363a52763dd9d3c79c019470e8773617edb67bf270","e695c6f9b27284e40a17b493256eafc162e9627e18cd200e7b107a99b3b33484","6feef4cfd98b1ccdd6248a91008b5701a7a2fb0a61adbeb74ee7c8fac0f514da","ee37bab6f28b4662116eb0e013b5caf237f6f1b94cc29f685be975a6f2214c31","feb77ecbf930284f2e2482916f94278606e621b682857c14bd6267f60f1e951d","a04f7a3f2828dc6cc081dc08d4425c93c5d3c06f751602de91bef8c29f7295aa","ee797eee7429aea469926cca4ac8c7df816aed88d912230d1b3f78aa5a133347","b1bd6c1c34565b061fad01a3660008c8655c6f66583b79b9171dcded7430e417","5815e484d432dbc0b82d6ec99152dea31b70c8026d5a450ac063e7d70dbd8e4b","8d8a18d3cd05c5ec6b7d97507c6f56e07104a14e17e03e6d3b72e02649fcbe7d","90d36e6755eb2023c385e7d716b75d53ae441c53cc3bc5c07f34933f922c0bf8","1104070bb32b9f359099ccaff51679fb3c0c860bf47811e2778218b13ef69b14","e44645b5940c3bdbf6a28d52fe295a50c18eb20dc90dc67dc5a2b3d146f83e33","8dd99f0bb76772acbe947cfc815f1671cf4b9841cb84b386475823d1a811aba4","6b5b1e01bf4461bdab8c0badbafe4d77eedb536b9702fb721723d163c8e5b759","e18577e83ad116e121479af082739f60fb72cac2028be609d40d6abf390d51db","5354bace1e36ea121e21431cd63a9d72534faffeb0242f66eb396b18160da8f8","c8ab22f29054eeb8cb0db889345a2fbbdba5ec83f0066d1a8e5923669e6217f2","7fed7ecc1c740cc737643da5966801ff99b4643b7ac8dbf44bbf84c0be5a6d7d","30581e5f1d7f73271ddc5338cf25f5076a4b8083818322d99b9a3f62e6e1b595","d7a041dfebb4e5ab34e9a6771436bd96e9ad7c42728f89a87a0d77dcab766f56","b8fd77ebdb9cd8e90464d3ff4c7387a65bae8c9a57cf3e8a18be1793e9b2a22c","bded79d0e8fd49401d1ab577b07e34d7091737e8d8619fe929a97d8e40155496","9268041dca36b12662e17791e277a99b29f7697b79b0ef3b3a190c576c0b102d","2a7619e7d2b5d9739b58e29d81cd1eef119086d78bbb08c1a7c9bc2bd9629536","2625471bbd0b6beac2cf0907e50b9405038f22fec5f9fedb39ef35a16db359cb","2408027fa9f31af18b0575d8e22813f3c237762c389022fdd53a6215bbc247c7","e24cf07c4f700a2714a2eaedd25b94b6a115d403c3612f6d19f314c1a55638ed","81e46382a62453572770e8eadb9e4fd6a91b4a287cce4be9d3c7b2a7f90a94af","a5e3a876d210b4ebe275871717b29b1cb422c223e0ea9f43b495fb405c8a4d21","4310132cfeb323b1aa1dd3e64f66eb45f3ca117db6343c6a4c37247fab04ee2b"],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noUnusedLocals":false,"outDir":"./","removeComments":false,"sourceMap":false,"strictNullChecks":true,"target":6},"fileIdsList":[[89],[89,97],[50,89],[89,96,97],[51,56,89],[52,62,63,70,79,88,89],[52,53,62,70,89],[54,89],[55,56,63,71,89],[56,79,85,89],[57,59,62,70,89],[58,89],[59,60,89],[61,62,89],[62,89],[62,63,64,79,88,89],[62,63,64,79,89],[65,70,79,88,89],[62,63,65,66,70,79,85,88,89],[65,67,79,85,88,89],[89,98],[62,68,89],[69,88,89],[59,62,70,79,89],[71,89],[72,89],[50,73,89],[74,87,89,92],[75,89],[76,89],[62,77,89],[77,78,89,91],[62,79,80,89],[79,80,89],[81,89],[82,89],[62,83,84,89],[83,84,89],[56,70,85,89],[86,89],[48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],[70,87,89],[51,65,76,88,89],[56,89],[79,89,90],[89,91],[89,95],[51,56,62,64,73,79,88,89,91,92],[79,89,93],[62,65,67,70,79,85,88,89,93,99],[46,47,89,116],[89,102,103],[89,102],[89,99,102,103],[89,102,103,107],[89,101],[89,99,100],[62,89,99,101],[89,101,102,104,105,106,107,108,109,110,111,112,113,114,115],[45,62,89,117,121,122,127],[45,62,89,119,121,123,124,128],[45,89,121,124,128],[89,121],[45,62,89,121,125,128],[89,121,126,128],[45,62,89,118,119,120,121,122],[45,89,117]],"referencedMap":[[10,1],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[32,1],[33,1],[34,1],[35,1],[7,1],[40,1],[36,1],[37,1],[38,1],[39,1],[8,1],[41,1],[42,1],[43,1],[1,1],[9,1],[44,1],[97,2],[48,2],[50,3],[98,4],[51,5],[52,6],[53,7],[54,8],[55,9],[56,10],[57,11],[58,12],[59,13],[60,13],[61,14],[62,15],[63,16],[64,17],[49,1],[94,1],[65,18],[66,19],[67,20],[99,21],[68,22],[69,23],[70,24],[71,25],[72,26],[73,27],[74,28],[75,29],[76,30],[77,31],[78,32],[79,33],[80,34],[81,35],[82,36],[83,37],[84,38],[85,39],[86,40],[96,41],[87,42],[88,43],[89,44],[90,45],[91,46],[95,47],[92,48],[93,49],[119,50],[103,1],[122,1],[46,1],[47,1],[117,51],[114,52],[113,53],[104,54],[106,54],[108,52],[109,52],[110,55],[111,52],[115,52],[105,52],[112,52],[107,54],[100,56],[101,57],[102,58],[116,59],[118,1],[128,60],[125,61],[45,1],[129,62],[124,63],[126,64],[127,65],[123,66],[120,1],[121,67]],"exportedModulesMap":[[10,1],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[32,1],[33,1],[34,1],[35,1],[7,1],[40,1],[36,1],[37,1],[38,1],[39,1],[8,1],[41,1],[42,1],[43,1],[1,1],[9,1],[44,1],[97,2],[48,2],[50,3],[98,4],[51,5],[52,6],[53,7],[54,8],[55,9],[56,10],[57,11],[58,12],[59,13],[60,13],[61,14],[62,15],[63,16],[64,17],[49,1],[94,1],[65,18],[66,19],[67,20],[99,21],[68,22],[69,23],[70,24],[71,25],[72,26],[73,27],[74,28],[75,29],[76,30],[77,31],[78,32],[79,33],[80,34],[81,35],[82,36],[83,37],[84,38],[85,39],[86,40],[96,41],[87,42],[88,43],[89,44],[90,45],[91,46],[95,47],[92,48],[93,49],[119,50],[103,1],[122,1],[46,1],[47,1],[117,51],[114,52],[113,53],[104,54],[106,54],[108,52],[109,52],[110,55],[111,52],[115,52],[105,52],[112,52],[107,54],[100,56],[101,57],[102,58],[116,59],[118,1],[128,60],[125,61],[45,1],[129,62],[124,63],[126,64],[127,65],[123,66],[120,1],[121,67]],"semanticDiagnosticsPerFile":[10,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,40,36,37,38,39,8,41,42,43,1,9,44,97,48,50,98,51,52,53,54,55,56,57,58,59,60,61,62,63,64,49,94,65,66,67,99,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,96,87,88,89,90,91,95,92,93,119,103,122,46,47,117,114,113,104,106,108,109,110,111,115,105,112,107,100,101,102,116,118,128,125,45,129,124,126,127,123,120,121]},"version":"4.4.3"}
package/package.json CHANGED
@@ -1,30 +1,40 @@
1
- {
2
- "name": "cloudstorm",
3
- "version": "0.1.4",
4
- "description": "Minimalistic Discord Gateway library",
5
- "main": "index.js",
6
- "engines": {
7
- "node": ">=8.0.0"
8
- },
9
- "scripts": {
10
- "build:docs": "node_modules/.bin/docma -c docma.config.json"
11
- },
12
- "author": "wolke <wolke@weeb.sh>",
13
- "license": "MIT",
14
- "dependencies": {
15
- "snowtransfer": "^0.2.1",
16
- "ws": "^3.1.0",
17
- "zlib-sync": "^0.1.3"
18
- },
19
- "devDependencies": {
20
- "docma": "^1.5.1",
21
- "eslint": "^4.4.1"
22
- },
23
- "optionalDependencies": {
24
- "@types/node": "8.0.31",
25
- "@types/ws": "~3.0.2",
26
- "amqp": "0.2.6",
27
- "erlpack": "github:discordapp/erlpack",
28
- "eventemitter3": "~2.0.3"
29
- }
30
- }
1
+ {
2
+ "name": "cloudstorm",
3
+ "version": "0.3.0",
4
+ "description": "Minimalistic Discord Gateway library",
5
+ "main": "./dist/index.js",
6
+ "engines": {
7
+ "node": ">=12.0.0"
8
+ },
9
+ "types": "./dist/index.d.ts",
10
+ "scripts": {
11
+ "build:src": "tsc -p .",
12
+ "build:docs": "typedoc --name CloudStorm --excludeExternals --sort static-first --sort alphabetical"
13
+ },
14
+ "author": "wolke <wolke@weeb.sh>",
15
+ "license": "MIT",
16
+ "dependencies": {
17
+ "snowtransfer": "^0.3.x",
18
+ "ws": "^8.2.3",
19
+ "zlib-sync": "^0.1.7"
20
+ },
21
+ "devDependencies": {
22
+ "@types/node": "16.7.1",
23
+ "@types/ws": "^8.2.0",
24
+ "@typescript-eslint/eslint-plugin": "^4.32.0",
25
+ "@typescript-eslint/parser": "^4.32.0",
26
+ "eslint": "^7.32.0",
27
+ "typedoc": "^0.22.5",
28
+ "typedoc-plugin-mdn-links": "^1.0.4",
29
+ "typedoc-plugin-missing-exports": "^0.22.3",
30
+ "typescript": "^4.4.3"
31
+ },
32
+ "optionalDependencies": {
33
+ "erlpack": "github:discordapp/erlpack"
34
+ },
35
+ "files": [
36
+ "dist",
37
+ "README.md",
38
+ "LICENSE.md"
39
+ ]
40
+ }
package/.eslintrc.json DELETED
@@ -1,28 +0,0 @@
1
- {
2
- "env": {
3
- "es6": true,
4
- "node": true
5
- },
6
- "extends": "eslint:recommended",
7
- "parserOptions": {
8
- "sourceType": "module",
9
- "ecmaVersion": 2017
10
- },
11
- "rules": {
12
- "indent": [
13
- "error",
14
- 4,
15
- {
16
- "SwitchCase": 1
17
- }
18
- ],
19
- "quotes": [
20
- "error",
21
- "single"
22
- ],
23
- "semi": [
24
- "error",
25
- "always"
26
- ]
27
- }
28
- }
package/.jsdoc.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "source": {
3
- "include": [
4
- "src",
5
- "package.json",
6
- "README.md"
7
- ],
8
- "includePattern": ".js$",
9
- "excludePattern": "(node_modules/|docs)"
10
- },
11
- "plugins": [
12
- "plugins/markdown"
13
- ],
14
- "opts": {
15
- "template": "./node_modules/minami",
16
- "destination": "./docs/"
17
- }
18
- }
package/.travis.yml DELETED
@@ -1,17 +0,0 @@
1
- language: node_js
2
- node_js:
3
- - '8'
4
- install:
5
- - npm install
6
- script:
7
- - npm run build:docs
8
- deploy:
9
- - provider: pages
10
- skip_cleanup: true
11
- github_token: $github_token
12
- local_dir: CloudStorm
13
- on:
14
- branch: dev
15
- env:
16
- global:
17
- secure: jaKLbvVGQiudHDsRxKZW9GH8Z0HL0oHQaQNA4rWOsgR1lVucJ/iMCNwStG0guFWdHlJFzVnVNtkNYRfKOfrzirVlOx/WDo3Ulwo9fyAC+k2yDIAqOJex6s5dtMRtr75cVYa6xUNyPE+ndJVY5wgc0Ocmt00gbE6LfAGzxlGDFq3yhueqibxUqAdYUPaJx8ckMMY8BbjFVwq9fnsyWH8x5iRDJTUtefYWcgHGfB4AuaYkyYnfjhEird6StSkmf/uaDEj9qJ8dtjxcCnsD3xTtD1d7MSvgXszPhZ/9El9e6Xky2+BWV6VJ8zCcFawXbkMK9qkMb5RI+ckfwqipqg3vyiUTa1ZG4NPNS6IK5uyvSGkjgAJksEfoTaxfm3H9oirqK97pYzxZDCUig4jKDtC32OqW6F4Tsijvsw4UQRh3EwlkObB7PWUPyEyoPawX847+9CpfOt59chJuN5UyqZepvK44L9lOMgWL/ohu4RjyFYHgfjShh2skeHPYD5SPhygXJrY4RjnvOhFsXRB9fSJCRTvcHofBR3p51orwxwvK15Q2vGOgMa7nsMiwF2xhXC0F0ulqZSpIPXEz/0nACm3b00XgJ4xfwFlqbDX3S0ERvTj9p3wwOQz77nZf1rnMe3QZIKWWYKwZLXxHcbB43j/E/M25z0mKZzJ3xNBukB2sX7c=
package/docma.config.json DELETED
@@ -1,51 +0,0 @@
1
- {
2
- "src": [
3
- {
4
- "CloudStorm": [
5
- "./src/**/*.js"
6
- ]
7
- },
8
- {
9
- "index": "./README.md"
10
- }
11
- ],
12
- "dest": "./CloudStorm",
13
- "app": {
14
- "title": "CloudStorm",
15
- "base": "/CloudStorm",
16
- "entrance": "content:index",
17
- "routing": "query",
18
- "server": "github"
19
- },
20
- "jsdoc": {
21
- "access": "public",
22
- "plugins": [
23
- "plugins/markdown"
24
- ]
25
- },
26
- "markdown": {
27
- "gfm": true,
28
- "tables": true,
29
- "breaks": false,
30
- "pedantic": false,
31
- "sanitize": false,
32
- "smartLists": false,
33
- "smartypants": false,
34
- "tasks": false,
35
- "emoji": true
36
- },
37
- "template": {
38
- "options": {
39
- "navItems": [
40
- {
41
- "label": "Home",
42
- "href": "?content=index"
43
- },
44
- {
45
- "label": "Documentation",
46
- "href": "?api=CloudStorm#Client"
47
- }
48
- ]
49
- }
50
- }
51
- }