220 |
221 | ```js
222 | let options = {
223 | path: "",
224 |
225 | file_name: "",
226 |
227 | record_ok: true,
228 |
229 | record_hangup: false,
230 |
231 | record_attach: false,
232 |
233 | lenght_min: "",
234 |
235 | lenght_max: "",
236 | };
237 | ```
238 |
239 |
240 |
241 | ### `go_to_folder(folder: string): void`
242 |
243 | מתודה להעברת השיחה לשלוחה מסוימת במערכת הנוכחית.
244 | ניתן לכתוב נתיב יחסי לשלוחה הנוכחית או לשלוחה הראשית. פירוט על האופציות ניתן לקרוא [כאן](https://f2.freeivr.co.il/post/58).
245 | ניתן להעביר בפרמטר folder את הסטרינג `hangup`, וכך לנתק את השיחה.
246 |
247 | ### `restart_ext()`
248 |
249 | מתודה פשוטה ללא ארגומנטים להפעלה מחדש של השלוחה הנוכחית.
250 | זהה לכתיבה הבאה:
251 |
252 | ```js
253 | go_to_folder(`/${call.ApiExtension}`);
254 | ```
255 |
256 | ### `id_list_message(massages: array, wait_to_more_action: Boolean)`
257 |
258 | במתודה זו ניתן להשמיע למשתמש הודעה אחת, או מספר הודעות ברצף.
259 |
260 | ---
261 |
262 |
263 | באם מעוניינים לשרשר פעולה נוספת, לדוגמה להשמיע הודעה ואז לבצע read
(קבלת נתונים נוספים), יש להעביר לארגומנט השני true
.
264 | באם אחרי השמעת ההודעה מעוניינים שהמאזין ייצא מהשלוחה, ניתן להשאיר את הפרמטר השני ריק.
265 |
266 |
267 | ---
268 |
269 |
270 | הפונקציה מקבלת כארגומנט ראשון מערך של אובייקטי הודעה. כל אובייקט במערך צריך להיות במבנה הבא:
271 |
272 | ```js
273 | { type: string, data: string }
274 | ```
275 |
276 | ואם ה`type` הוא `zmanim`:
277 |
278 | ```js
279 | { type: string, data: object }
280 | ```
281 |
282 | ראה פירוט נוסף להלן.
283 |
284 | #### הפרמטר `type`
285 |
286 | הערך `type` מקבל סטרינג של סוג ההשמעה.
287 | האפשרויות הקיימות עבור type הן:
288 |
289 | - `file` - השמעת קובץ מתוך המערכת או מהמאגר הגלובלי
290 | - `digits` - השמעת ספרות (לדוגמה 111 המערכת תשמיע "אחת אחת אחת")
291 | - `number` - השמעת מספר (לדוגמה 111 המערכת תשמיע "מאה ואחת עשרה")
292 | - `alpha` - השמעת אותיות (לדוגמה abc המערכת תשמיע "איי בי סי")
293 | - `text` - הקראת טקסט
294 | - `speech` - הקראת טקסט מתוך קובץ במערכת
295 | - `zmanim` - השמעה שעה לפי משתנה
296 | - `go_to_folder` - מעבר לשלוחה אחרת (לא ניתן לשרשר הודעות/פקודות נוספות לאחר פקודה זו)
297 | - `system_message` - השמעת הודעת מערכת (מקבל ב`data` את מספר ההודעה, עם או בלי `M` בהתחלה.)
298 | - `music_on_hold` - מוזיקה בהמתנה
299 | - `date` - השמעת תאריך לועזי (יש לכתוב את התאריך בפורמט dd/mm/yyyy)
300 | - `dateH` - השמעת תאריך עברי (יש לכתוב את התאריך הלועזי בפורמט dd/mm/yyyy)
301 |
302 | #### הפרמטר `data`
303 |
304 | הערך `data` מקבל את תוכן ההודעה להשמעה - עבור השמעת ספרות/אותיות/טקסט, או את נתיב הקובץ/התקיה עבור file/go_to_folder (בהתאמה).
305 |
306 | חריג הוא הטייפ **zmanim**:
307 |
308 | עבור השמעת זמנים (כלומר אם הערך של type הוא `zmanim`), הערך השני (`data`) יהיה **אובייקט**, ולא סטרינג, במבנה הבא:
309 |
310 | ```js
311 | {
312 | time: string, // optional, default: "T" (current time)
313 | zone: string,
314 | difference: string // optional, default: "IL/Jerusalem"
315 | }
316 | ```
317 |
318 | #### הערך `time`:
319 |
320 | סוג הזמן שרוצים להשמיע.
321 |
322 | ברירת מחדל: "`T`" = השעה הנוכחית.
323 |
324 | #### הערך `zone`:
325 |
326 | אזור הזמן שעבורו יש לחשב את הזמנים.
327 |
328 | ברירת מחדל: `IL/Jerusalem`.
329 |
330 | ניתן לראות [כאן](https://f2.freeivr.co.il/post/82868) את רשימת אזורי הזמן הקיימים במערכת.
331 |
332 | ניתן לראות [כאן](https://f2.freeivr.co.il/post/82875) את רשימת הזמנים האפשריים.
333 |
334 | #### הערך `difference`:
335 |
336 | ערך זה משמש להוספה/הסרה מלאכותית של זמן על הזמן שמשמיעים.
337 | באם לא יועבר פרמטר זה, יושמע הזמן ללא שינוי.
338 |
339 | הערך **`difference`** מכיל קודם את סוג הפעולה - פלוס (+) להוספת זמן, או מינוס (-) להפחתת זמן, ואז את הזמן על פי הצורה הבאה: Y - שנה M - חודש D - יום H - שעה m - דקה S - שניה s - אלפית שניה למשל, עבור 20 דקות אחורה יש להגדיר `m20-`, עבור 3 שעות קדימה יש לרשום `H3+`. עבור יומיים אחורה יש לרשום `D1-`.
340 |
341 | לדוגמה, עבור השמעת זמן שקיעת החמה מחר בעיר בני ברק:
342 |
343 | ```js
344 | let massage = [
345 | {
346 | type: "zmanim",
347 | data: {
348 | time: "sunset",
349 | zone: "IL/Bney_Brak",
350 | difference: "+1D",
351 | },
352 | },
353 | ];
354 | ```
355 |
356 |
357 |
358 | ### `routing_yemot(phone: string)`
359 |
360 | מתודה להעברת השיחה למערכת אחרת בימות המשיח ללא עלות יחידות, באמצעות "ראוטינג ימות".
361 |
362 | הפונקציה מקבלת ארגומנט יחיד - סטרינג של מספר מערכת בימות להעברת השיחה.
363 | ניתן גם לנתב את השיחה ממערכת בשרת הפריווט לשרת הרגיל ולהיפך.
364 |
365 | ### `send(data: string)`
366 |
367 | ניתן להשתמש במתודה זו כדי לשלוח סטרינג חופשי לחלוטין, לדוגמה עבור פונקציונליות שעדיין לא נתמכת בספרייה.
368 |
369 | באופציה זו יש להעביר את הסטרינג בדיוק כפי שמעוניינים שהשרת של ימות יקבל אותו.
370 |
--------------------------------------------------------------------------------
/board.excalidraw:
--------------------------------------------------------------------------------
1 | {
2 | "type": "excalidraw",
3 | "version": 2,
4 | "source": "https://excalidraw.com",
5 | "elements": [
6 | {
7 | "type": "rectangle",
8 | "version": 885,
9 | "versionNonce": 1175259528,
10 | "isDeleted": false,
11 | "id": "1pSFt0tc_3yfHR5NZB4U2",
12 | "fillStyle": "solid",
13 | "strokeWidth": 1,
14 | "strokeStyle": "solid",
15 | "roughness": 2,
16 | "opacity": 100,
17 | "angle": 0,
18 | "x": 917.7765114573806,
19 | "y": -150.80908566194051,
20 | "strokeColor": "#000000",
21 | "backgroundColor": "#868e96",
22 | "width": 1022.0000076293941,
23 | "height": 619.9999999999997,
24 | "seed": 2059103624,
25 | "groupIds": [],
26 | "roundness": {
27 | "type": 3
28 | },
29 | "boundElements": [],
30 | "updated": 1676227160260,
31 | "link": null,
32 | "locked": false
33 | },
34 | {
35 | "type": "rectangle",
36 | "version": 140,
37 | "versionNonce": 950502536,
38 | "isDeleted": false,
39 | "id": "Jo_Jk1D3cNuqk6-h06UIP",
40 | "fillStyle": "hachure",
41 | "strokeWidth": 1,
42 | "strokeStyle": "solid",
43 | "roughness": 2,
44 | "opacity": 100,
45 | "angle": 0,
46 | "x": 1995.349555974488,
47 | "y": 778.3781728401995,
48 | "strokeColor": "#000000",
49 | "backgroundColor": "#ced4da",
50 | "width": 263.9999389648435,
51 | "height": 167.9999542236328,
52 | "seed": 458674568,
53 | "groupIds": [],
54 | "roundness": {
55 | "type": 3
56 | },
57 | "boundElements": [
58 | {
59 | "id": "ugKJ2K1bCEZowBzz78IPS",
60 | "type": "arrow"
61 | },
62 | {
63 | "id": "TsG-vUkgCEAFv1dz6V37U",
64 | "type": "arrow"
65 | }
66 | ],
67 | "updated": 1676226323633,
68 | "link": null,
69 | "locked": false
70 | },
71 | {
72 | "type": "rectangle",
73 | "version": 406,
74 | "versionNonce": 719775736,
75 | "isDeleted": false,
76 | "id": "tRI2FrkSmdHl9d6vqpMcI",
77 | "fillStyle": "hachure",
78 | "strokeWidth": 1,
79 | "strokeStyle": "solid",
80 | "roughness": 2,
81 | "opacity": 100,
82 | "angle": 0,
83 | "x": 1495.5660760150433,
84 | "y": -422.3059159894616,
85 | "strokeColor": "#000000",
86 | "backgroundColor": "#ced4da",
87 | "width": 335.64029193819766,
88 | "height": 143.85122034446914,
89 | "seed": 1365921416,
90 | "groupIds": [
91 | "p0Y2UK7gfvBjDneo9jctM"
92 | ],
93 | "roundness": {
94 | "type": 3
95 | },
96 | "boundElements": [
97 | {
98 | "id": "7klonIrmi9WBi7n7gR9k9",
99 | "type": "arrow"
100 | }
101 | ],
102 | "updated": 1676226323633,
103 | "link": null,
104 | "locked": false
105 | },
106 | {
107 | "type": "text",
108 | "version": 362,
109 | "versionNonce": 156611464,
110 | "isDeleted": false,
111 | "id": "ErwSY1ddXAtWqofBDn32-",
112 | "fillStyle": "hachure",
113 | "strokeWidth": 1,
114 | "strokeStyle": "solid",
115 | "roughness": 2,
116 | "opacity": 100,
117 | "angle": 0,
118 | "x": 1580.9467254147573,
119 | "y": -378.820111947627,
120 | "strokeColor": "#000000",
121 | "backgroundColor": "#ced4da",
122 | "width": 162,
123 | "height": 41,
124 | "seed": 1680553608,
125 | "groupIds": [
126 | "p0Y2UK7gfvBjDneo9jctM"
127 | ],
128 | "roundness": null,
129 | "boundElements": [],
130 | "updated": 1676226323633,
131 | "link": null,
132 | "locked": false,
133 | "fontSize": 36,
134 | "fontFamily": 2,
135 | "text": "קריאה נכנסת",
136 | "baseline": 33,
137 | "textAlign": "center",
138 | "verticalAlign": "top",
139 | "containerId": null,
140 | "originalText": "קריאה נכנסת"
141 | },
142 | {
143 | "type": "arrow",
144 | "version": 867,
145 | "versionNonce": 649537784,
146 | "isDeleted": false,
147 | "id": "62BlH_ugCoE0diGBlv4Y6",
148 | "fillStyle": "hachure",
149 | "strokeWidth": 1,
150 | "strokeStyle": "solid",
151 | "roughness": 2,
152 | "opacity": 100,
153 | "angle": 0,
154 | "x": 1611.5490470992345,
155 | "y": 493.1786102137102,
156 | "strokeColor": "#000000",
157 | "backgroundColor": "#ced4da",
158 | "width": 4.718075758442865,
159 | "height": 88.85373775626528,
160 | "seed": 729363704,
161 | "groupIds": [],
162 | "roundness": {
163 | "type": 2
164 | },
165 | "boundElements": [],
166 | "updated": 1676226323633,
167 | "link": null,
168 | "locked": false,
169 | "startBinding": {
170 | "elementId": "1pSFt0tc_3yfHR5NZB4U2",
171 | "gap": 23.987695875651013,
172 | "focus": 0.026238843058075955
173 | },
174 | "endBinding": {
175 | "elementId": "He6kIm3nH_NR-CWitxDTV",
176 | "gap": 11.642594819549743,
177 | "focus": -0.07928990634669592
178 | },
179 | "lastCommittedPoint": null,
180 | "startArrowhead": null,
181 | "endArrowhead": "arrow",
182 | "points": [
183 | [
184 | 0,
185 | 0
186 | ],
187 | [
188 | 4.718075758442865,
189 | 88.85373775626528
190 | ]
191 | ]
192 | },
193 | {
194 | "type": "arrow",
195 | "version": 332,
196 | "versionNonce": 577110664,
197 | "isDeleted": false,
198 | "id": "ugKJ2K1bCEZowBzz78IPS",
199 | "fillStyle": "hachure",
200 | "strokeWidth": 1,
201 | "strokeStyle": "solid",
202 | "roughness": 2,
203 | "opacity": 100,
204 | "angle": 0,
205 | "x": 2038.4838516489754,
206 | "y": 689.87590982697,
207 | "strokeColor": "#000000",
208 | "backgroundColor": "#ced4da",
209 | "width": 113.19680490950122,
210 | "height": 60.7115189058062,
211 | "seed": 1293040632,
212 | "groupIds": [],
213 | "roundness": {
214 | "type": 2
215 | },
216 | "boundElements": [],
217 | "updated": 1676226323633,
218 | "link": null,
219 | "locked": false,
220 | "startBinding": {
221 | "elementId": "He6kIm3nH_NR-CWitxDTV",
222 | "gap": 13.94328556645985,
223 | "focus": 0.3318080389973693
224 | },
225 | "endBinding": {
226 | "elementId": "Jo_Jk1D3cNuqk6-h06UIP",
227 | "focus": 0.7759191099881262,
228 | "gap": 27.79074410742328
229 | },
230 | "lastCommittedPoint": null,
231 | "startArrowhead": null,
232 | "endArrowhead": "arrow",
233 | "points": [
234 | [
235 | 0,
236 | 0
237 | ],
238 | [
239 | -10,
240 | 0.8126309779545409
241 | ],
242 | [
243 | 103.19680490950122,
244 | 60.7115189058062
245 | ]
246 | ]
247 | },
248 | {
249 | "type": "arrow",
250 | "version": 1040,
251 | "versionNonce": 550980088,
252 | "isDeleted": false,
253 | "id": "u0jGpcinh5vDTULYIcPIQ",
254 | "fillStyle": "hachure",
255 | "strokeWidth": 1,
256 | "strokeStyle": "solid",
257 | "roughness": 2,
258 | "opacity": 100,
259 | "angle": 0,
260 | "x": 1264.7824171016334,
261 | "y": 709.4282098825298,
262 | "strokeColor": "#000000",
263 | "backgroundColor": "#ced4da",
264 | "width": 56.209366211022555,
265 | "height": 65.45520288384127,
266 | "seed": 1436090104,
267 | "groupIds": [],
268 | "roundness": {
269 | "type": 2
270 | },
271 | "boundElements": [],
272 | "updated": 1676226323633,
273 | "link": null,
274 | "locked": false,
275 | "startBinding": {
276 | "elementId": "He6kIm3nH_NR-CWitxDTV",
277 | "gap": 13.72093073226472,
278 | "focus": 0.5352251749331828
279 | },
280 | "endBinding": {
281 | "elementId": "WFEerQsYGecqK1Kh_alKT",
282 | "focus": -0.3623980411792582,
283 | "gap": 28.989489630078765
284 | },
285 | "lastCommittedPoint": null,
286 | "startArrowhead": null,
287 | "endArrowhead": "arrow",
288 | "points": [
289 | [
290 | 0,
291 | 0
292 | ],
293 | [
294 | -20.890141949454303,
295 | 8.342756463669886
296 | ],
297 | [
298 | -56.209366211022555,
299 | 65.45520288384127
300 | ]
301 | ]
302 | },
303 | {
304 | "type": "rectangle",
305 | "version": 631,
306 | "versionNonce": 1922331016,
307 | "isDeleted": false,
308 | "id": "He6kIm3nH_NR-CWitxDTV",
309 | "fillStyle": "hachure",
310 | "strokeWidth": 1,
311 | "strokeStyle": "solid",
312 | "roughness": 2,
313 | "opacity": 100,
314 | "angle": 0,
315 | "x": 1278.503347833898,
316 | "y": 593.6749427895253,
317 | "strokeColor": "#000000",
318 | "backgroundColor": "#ced4da",
319 | "width": 748.0373403189299,
320 | "height": 176.5850718590636,
321 | "seed": 507502728,
322 | "groupIds": [],
323 | "roundness": {
324 | "type": 3
325 | },
326 | "boundElements": [
327 | {
328 | "id": "62BlH_ugCoE0diGBlv4Y6",
329 | "type": "arrow"
330 | },
331 | {
332 | "id": "u0jGpcinh5vDTULYIcPIQ",
333 | "type": "arrow"
334 | },
335 | {
336 | "id": "ugKJ2K1bCEZowBzz78IPS",
337 | "type": "arrow"
338 | }
339 | ],
340 | "updated": 1676226323633,
341 | "link": null,
342 | "locked": false
343 | },
344 | {
345 | "type": "text",
346 | "version": 292,
347 | "versionNonce": 2035193848,
348 | "isDeleted": false,
349 | "id": "DS-TIzz6iaWm2pBls9fDm",
350 | "fillStyle": "hachure",
351 | "strokeWidth": 1,
352 | "strokeStyle": "solid",
353 | "roughness": 2,
354 | "opacity": 100,
355 | "angle": 0,
356 | "x": 1312.400459198067,
357 | "y": 626.885635584583,
358 | "strokeColor": "#000000",
359 | "backgroundColor": "#ced4da",
360 | "width": 696,
361 | "height": 40,
362 | "seed": 537978360,
363 | "groupIds": [],
364 | "roundness": null,
365 | "boundElements": [],
366 | "updated": 1676226359328,
367 | "link": null,
368 | "locked": false,
369 | "fontSize": 35.08652769127926,
370 | "fontFamily": 2,
371 | "text": "בדיקה לפי מזהה שיחה האם יש כבר פונקציה שרצה",
372 | "baseline": 32,
373 | "textAlign": "center",
374 | "verticalAlign": "top",
375 | "containerId": null,
376 | "originalText": "בדיקה לפי מזהה שיחה האם יש כבר פונקציה שרצה"
377 | },
378 | {
379 | "type": "text",
380 | "version": 250,
381 | "versionNonce": 823984264,
382 | "isDeleted": false,
383 | "id": "cvG0ee4P1DI78p-gh6KCE",
384 | "fillStyle": "hachure",
385 | "strokeWidth": 1,
386 | "strokeStyle": "solid",
387 | "roughness": 2,
388 | "opacity": 100,
389 | "angle": 0,
390 | "x": 2039.6549034685559,
391 | "y": 821.5802901729727,
392 | "strokeColor": "#000000",
393 | "backgroundColor": "#ced4da",
394 | "width": 185,
395 | "height": 89,
396 | "seed": 1385390216,
397 | "groupIds": [],
398 | "roundness": null,
399 | "boundElements": [],
400 | "updated": 1676226323633,
401 | "link": null,
402 | "locked": false,
403 | "fontSize": 70.43473484205167,
404 | "fontFamily": 1,
405 | "text": "False",
406 | "baseline": 63,
407 | "textAlign": "center",
408 | "verticalAlign": "top",
409 | "containerId": null,
410 | "originalText": "False"
411 | },
412 | {
413 | "type": "rectangle",
414 | "version": 291,
415 | "versionNonce": 999762936,
416 | "isDeleted": false,
417 | "id": "WFEerQsYGecqK1Kh_alKT",
418 | "fillStyle": "hachure",
419 | "strokeWidth": 1,
420 | "strokeStyle": "solid",
421 | "roughness": 2,
422 | "opacity": 100,
423 | "angle": 0,
424 | "x": 1073.3606215040056,
425 | "y": 803.8729023964498,
426 | "strokeColor": "#000000",
427 | "backgroundColor": "#ced4da",
428 | "width": 263.9999389648435,
429 | "height": 167.9999542236328,
430 | "seed": 404319992,
431 | "groupIds": [],
432 | "roundness": {
433 | "type": 3
434 | },
435 | "boundElements": [
436 | {
437 | "id": "u0jGpcinh5vDTULYIcPIQ",
438 | "type": "arrow"
439 | }
440 | ],
441 | "updated": 1676226323633,
442 | "link": null,
443 | "locked": false
444 | },
445 | {
446 | "type": "text",
447 | "version": 322,
448 | "versionNonce": 1304145800,
449 | "isDeleted": false,
450 | "id": "TR_LqrPiAOFH9Ku0DIFkU",
451 | "fillStyle": "hachure",
452 | "strokeWidth": 1,
453 | "strokeStyle": "solid",
454 | "roughness": 2,
455 | "opacity": 100,
456 | "angle": 0,
457 | "x": 1120.969167885417,
458 | "y": 837.580351208129,
459 | "strokeColor": "#000000",
460 | "backgroundColor": "#ced4da",
461 | "width": 167,
462 | "height": 89,
463 | "seed": 53362056,
464 | "groupIds": [],
465 | "roundness": null,
466 | "boundElements": [],
467 | "updated": 1676226323633,
468 | "link": null,
469 | "locked": false,
470 | "fontSize": 70.43473484205167,
471 | "fontFamily": 1,
472 | "text": "True",
473 | "baseline": 63,
474 | "textAlign": "center",
475 | "verticalAlign": "top",
476 | "containerId": null,
477 | "originalText": "True"
478 | },
479 | {
480 | "type": "text",
481 | "version": 111,
482 | "versionNonce": 1086254328,
483 | "isDeleted": false,
484 | "id": "Mlx7RrVL9HfVF_gt063UZ",
485 | "fillStyle": "hachure",
486 | "strokeWidth": 1,
487 | "strokeStyle": "solid",
488 | "roughness": 2,
489 | "opacity": 100,
490 | "angle": 0,
491 | "x": 1982.8494949393316,
492 | "y": 1070.8989786759234,
493 | "strokeColor": "#000000",
494 | "backgroundColor": "#ced4da",
495 | "width": 323,
496 | "height": 41,
497 | "seed": 118795144,
498 | "groupIds": [],
499 | "roundness": null,
500 | "boundElements": [
501 | {
502 | "id": "hxKjAy8JSYMVwsiaT1f2H",
503 | "type": "arrow"
504 | },
505 | {
506 | "id": "TsG-vUkgCEAFv1dz6V37U",
507 | "type": "arrow"
508 | }
509 | ],
510 | "updated": 1676226323633,
511 | "link": null,
512 | "locked": false,
513 | "fontSize": 36,
514 | "fontFamily": 2,
515 | "text": "הרצה של מופע Call חדש",
516 | "baseline": 33,
517 | "textAlign": "center",
518 | "verticalAlign": "top",
519 | "containerId": null,
520 | "originalText": "הרצה של מופע Call חדש"
521 | },
522 | {
523 | "type": "arrow",
524 | "version": 351,
525 | "versionNonce": 1621917320,
526 | "isDeleted": false,
527 | "id": "TsG-vUkgCEAFv1dz6V37U",
528 | "fillStyle": "hachure",
529 | "strokeWidth": 1,
530 | "strokeStyle": "solid",
531 | "roughness": 2,
532 | "opacity": 100,
533 | "angle": 0,
534 | "x": 2174.8940883363844,
535 | "y": 968.1011112674856,
536 | "strokeColor": "#000000",
537 | "backgroundColor": "#ced4da",
538 | "width": 3.964900412557654,
539 | "height": 92.00004577636719,
540 | "seed": 2105932424,
541 | "groupIds": [],
542 | "roundness": {
543 | "type": 2
544 | },
545 | "boundElements": [],
546 | "updated": 1676226323633,
547 | "link": null,
548 | "locked": false,
549 | "startBinding": {
550 | "elementId": "Jo_Jk1D3cNuqk6-h06UIP",
551 | "focus": -0.31697552174915,
552 | "gap": 21.72298420365337
553 | },
554 | "endBinding": {
555 | "elementId": "Mlx7RrVL9HfVF_gt063UZ",
556 | "focus": 0.22082496762444406,
557 | "gap": 10.797821632070736
558 | },
559 | "lastCommittedPoint": null,
560 | "startArrowhead": null,
561 | "endArrowhead": "arrow",
562 | "points": [
563 | [
564 | 0,
565 | 0
566 | ],
567 | [
568 | 3.964900412557654,
569 | 92.00004577636719
570 | ]
571 | ]
572 | },
573 | {
574 | "type": "arrow",
575 | "version": 430,
576 | "versionNonce": 759598584,
577 | "isDeleted": false,
578 | "id": "hxKjAy8JSYMVwsiaT1f2H",
579 | "fillStyle": "hachure",
580 | "strokeWidth": 1,
581 | "strokeStyle": "solid",
582 | "roughness": 2,
583 | "opacity": 100,
584 | "angle": 0,
585 | "x": 2172.0249908678,
586 | "y": 1127.1010960086965,
587 | "strokeColor": "#000000",
588 | "backgroundColor": "#ced4da",
589 | "width": 6.642653359316682,
590 | "height": 89.00004577636719,
591 | "seed": 254110968,
592 | "groupIds": [],
593 | "roundness": {
594 | "type": 2
595 | },
596 | "boundElements": [],
597 | "updated": 1676226323633,
598 | "link": null,
599 | "locked": false,
600 | "startBinding": {
601 | "elementId": "Mlx7RrVL9HfVF_gt063UZ",
602 | "focus": -0.15341229722314945,
603 | "gap": 15.202117332773014
604 | },
605 | "endBinding": null,
606 | "lastCommittedPoint": null,
607 | "startArrowhead": null,
608 | "endArrowhead": "arrow",
609 | "points": [
610 | [
611 | 0,
612 | 0
613 | ],
614 | [
615 | 6.642653359316682,
616 | 89.00004577636719
617 | ]
618 | ]
619 | },
620 | {
621 | "type": "text",
622 | "version": 482,
623 | "versionNonce": 447442312,
624 | "isDeleted": false,
625 | "id": "i4w7WYudIfDOazdfA1akz",
626 | "fillStyle": "hachure",
627 | "strokeWidth": 1,
628 | "strokeStyle": "solid",
629 | "roughness": 1,
630 | "opacity": 100,
631 | "angle": 0,
632 | "x": 1964.6789995947388,
633 | "y": 1260.124503561533,
634 | "strokeColor": "#000000",
635 | "backgroundColor": "transparent",
636 | "width": 426.2913234192786,
637 | "height": 41.511514640079575,
638 | "seed": 1137913813,
639 | "groupIds": [],
640 | "roundness": null,
641 | "boundElements": [],
642 | "updated": 1676226323633,
643 | "link": null,
644 | "locked": false,
645 | "fontSize": 31.93193433852275,
646 | "fontFamily": 1,
647 | "text": "מפעיל את הפונקציה שסופקה כמטפל",
648 | "baseline": 29.511514640079575,
649 | "textAlign": "left",
650 | "verticalAlign": "top",
651 | "containerId": null,
652 | "originalText": "מפעיל את הפונקציה שסופקה כמטפל"
653 | },
654 | {
655 | "type": "text",
656 | "version": 284,
657 | "versionNonce": 1244794616,
658 | "isDeleted": false,
659 | "id": "myH-8uuWzlMwsbbm0Nn0p",
660 | "fillStyle": "hachure",
661 | "strokeWidth": 1,
662 | "strokeStyle": "solid",
663 | "roughness": 1,
664 | "opacity": 100,
665 | "angle": 0,
666 | "x": 1925.9699663933538,
667 | "y": 1448.0391998990385,
668 | "strokeColor": "#000000",
669 | "backgroundColor": "transparent",
670 | "width": 539,
671 | "height": 32,
672 | "seed": 2048402427,
673 | "groupIds": [],
674 | "roundness": null,
675 | "boundElements": [],
676 | "updated": 1676226323633,
677 | "link": null,
678 | "locked": false,
679 | "fontSize": 24.382154702043422,
680 | "fontFamily": 1,
681 | "text": "הפונקציה מחזירה תשובה HTTP עם הוראות לביצוע לימות",
682 | "baseline": 22,
683 | "textAlign": "left",
684 | "verticalAlign": "top",
685 | "containerId": null,
686 | "originalText": "הפונקציה מחזירה תשובה HTTP עם הוראות לביצוע לימות"
687 | },
688 | {
689 | "type": "text",
690 | "version": 1792,
691 | "versionNonce": 888437896,
692 | "isDeleted": false,
693 | "id": "lHCZ8nwlxuNsxxTPeKF-Y",
694 | "fillStyle": "hachure",
695 | "strokeWidth": 1,
696 | "strokeStyle": "solid",
697 | "roughness": 1,
698 | "opacity": 100,
699 | "angle": 6.267253443278458,
700 | "x": 1729.2621965555745,
701 | "y": 1643.2991988444503,
702 | "strokeColor": "#000000",
703 | "backgroundColor": "transparent",
704 | "width": 1178,
705 | "height": 36,
706 | "seed": 1843948853,
707 | "groupIds": [],
708 | "roundness": null,
709 | "boundElements": [],
710 | "updated": 1676226323633,
711 | "link": null,
712 | "locked": false,
713 | "fontSize": 28,
714 | "fontFamily": 1,
715 | "text": "נכנס להקפאה ע\"י קריאה לפונקציה שמחזירה פרומיס, הפרומיס נפתר רק כאשר נורה אוונט עם המזהה של השיחה.",
716 | "baseline": 25,
717 | "textAlign": "center",
718 | "verticalAlign": "top",
719 | "containerId": null,
720 | "originalText": "נכנס להקפאה ע\"י קריאה לפונקציה שמחזירה פרומיס, הפרומיס נפתר רק כאשר נורה אוונט עם המזהה של השיחה."
721 | },
722 | {
723 | "type": "arrow",
724 | "version": 352,
725 | "versionNonce": 1631824776,
726 | "isDeleted": false,
727 | "id": "VM7ingYxTkc5WXob4mioD",
728 | "fillStyle": "hachure",
729 | "strokeWidth": 1,
730 | "strokeStyle": "solid",
731 | "roughness": 2,
732 | "opacity": 100,
733 | "angle": 0,
734 | "x": 2190.4585666482003,
735 | "y": 1334.134434641212,
736 | "strokeColor": "#000000",
737 | "backgroundColor": "#ced4da",
738 | "width": 6.642653359316682,
739 | "height": 89.00004577636719,
740 | "seed": 920187579,
741 | "groupIds": [],
742 | "roundness": {
743 | "type": 2
744 | },
745 | "boundElements": [],
746 | "updated": 1676226323633,
747 | "link": null,
748 | "locked": false,
749 | "startBinding": null,
750 | "endBinding": null,
751 | "lastCommittedPoint": null,
752 | "startArrowhead": null,
753 | "endArrowhead": "arrow",
754 | "points": [
755 | [
756 | 0,
757 | 0
758 | ],
759 | [
760 | 6.642653359316682,
761 | 89.00004577636719
762 | ]
763 | ]
764 | },
765 | {
766 | "type": "arrow",
767 | "version": 423,
768 | "versionNonce": 113553656,
769 | "isDeleted": false,
770 | "id": "QinTpcVXUBcJNWs8VwugH",
771 | "fillStyle": "hachure",
772 | "strokeWidth": 1,
773 | "strokeStyle": "solid",
774 | "roughness": 2,
775 | "opacity": 100,
776 | "angle": 0,
777 | "x": 2201.9548976178116,
778 | "y": 1500.4029606997078,
779 | "strokeColor": "#000000",
780 | "backgroundColor": "#ced4da",
781 | "width": 6.642653359316682,
782 | "height": 89.00004577636719,
783 | "seed": 1770113845,
784 | "groupIds": [],
785 | "roundness": {
786 | "type": 2
787 | },
788 | "boundElements": [],
789 | "updated": 1676226323633,
790 | "link": null,
791 | "locked": false,
792 | "startBinding": null,
793 | "endBinding": {
794 | "elementId": "lHCZ8nwlxuNsxxTPeKF-Y",
795 | "focus": -0.5050290786828647,
796 | "gap": 24.98392988687101
797 | },
798 | "lastCommittedPoint": null,
799 | "startArrowhead": null,
800 | "endArrowhead": "arrow",
801 | "points": [
802 | [
803 | 0,
804 | 0
805 | ],
806 | [
807 | 6.642653359316682,
808 | 89.00004577636719
809 | ]
810 | ]
811 | },
812 | {
813 | "type": "rectangle",
814 | "version": 605,
815 | "versionNonce": 286199800,
816 | "isDeleted": false,
817 | "id": "Vxha-fMBkOAgNrkBXjiDG",
818 | "fillStyle": "solid",
819 | "strokeWidth": 1,
820 | "strokeStyle": "solid",
821 | "roughness": 2,
822 | "opacity": 100,
823 | "angle": 0,
824 | "x": 1444.7657264292557,
825 | "y": 59.19091433805971,
826 | "strokeColor": "#000000",
827 | "backgroundColor": "#ced4da",
828 | "width": 400.0001907348633,
829 | "height": 149.99999999999986,
830 | "seed": 2080937720,
831 | "groupIds": [],
832 | "roundness": {
833 | "type": 3
834 | },
835 | "boundElements": [],
836 | "updated": 1676227171844,
837 | "link": null,
838 | "locked": false
839 | },
840 | {
841 | "type": "rectangle",
842 | "version": 732,
843 | "versionNonce": 388238216,
844 | "isDeleted": false,
845 | "id": "P5Hw5YFwnRJff7rFtjT30",
846 | "fillStyle": "solid",
847 | "strokeWidth": 1,
848 | "strokeStyle": "solid",
849 | "roughness": 2,
850 | "opacity": 100,
851 | "angle": 0,
852 | "x": 1048.7658179819903,
853 | "y": -116.80907040315111,
854 | "strokeColor": "#000000",
855 | "backgroundColor": "#ced4da",
856 | "width": 378.0000686645508,
857 | "height": 149.99999999999986,
858 | "seed": 1902706168,
859 | "groupIds": [],
860 | "roundness": {
861 | "type": 3
862 | },
863 | "boundElements": [],
864 | "updated": 1676227171844,
865 | "link": null,
866 | "locked": false
867 | },
868 | {
869 | "type": "text",
870 | "version": 78,
871 | "versionNonce": 1704612088,
872 | "isDeleted": false,
873 | "id": "TO_9hgImtdRviiixsEFfX",
874 | "fillStyle": "solid",
875 | "strokeWidth": 1,
876 | "strokeStyle": "solid",
877 | "roughness": 2,
878 | "opacity": 100,
879 | "angle": 0,
880 | "x": 1058.2658942759356,
881 | "y": -62.871584231428926,
882 | "strokeColor": "#000000",
883 | "backgroundColor": "#ced4da",
884 | "width": 318,
885 | "height": 43,
886 | "seed": 634661512,
887 | "groupIds": [],
888 | "roundness": null,
889 | "boundElements": [],
890 | "updated": 1676227171844,
891 | "link": null,
892 | "locked": false,
893 | "fontSize": 36,
894 | "fontFamily": 3,
895 | "text": "check_request()",
896 | "baseline": 34,
897 | "textAlign": "right",
898 | "verticalAlign": "top",
899 | "containerId": null,
900 | "originalText": "check_request()"
901 | },
902 | {
903 | "type": "rectangle",
904 | "version": 665,
905 | "versionNonce": 346643080,
906 | "isDeleted": false,
907 | "id": "0ZJjozCuL7YE7B_g52XIF",
908 | "fillStyle": "solid",
909 | "strokeWidth": 1,
910 | "strokeStyle": "solid",
911 | "roughness": 2,
912 | "opacity": 100,
913 | "angle": 0,
914 | "x": 1018.7658179819903,
915 | "y": 61.19088382048159,
916 | "strokeColor": "#000000",
917 | "backgroundColor": "#ced4da",
918 | "width": 400.0001907348633,
919 | "height": 149.99999999999986,
920 | "seed": 1185439368,
921 | "groupIds": [],
922 | "roundness": {
923 | "type": 3
924 | },
925 | "boundElements": [],
926 | "updated": 1676227171844,
927 | "link": null,
928 | "locked": false
929 | },
930 | {
931 | "type": "rectangle",
932 | "version": 640,
933 | "versionNonce": 1763013112,
934 | "isDeleted": false,
935 | "id": "_m1ineNdDBmf_cxX5f8dP",
936 | "fillStyle": "solid",
937 | "strokeWidth": 1,
938 | "strokeStyle": "solid",
939 | "roughness": 2,
940 | "opacity": 100,
941 | "angle": 0,
942 | "x": 1420.765787464412,
943 | "y": 243.1910821847394,
944 | "strokeColor": "#000000",
945 | "backgroundColor": "#ced4da",
946 | "width": 424.00012969970703,
947 | "height": 149.99999999999986,
948 | "seed": 883873928,
949 | "groupIds": [],
950 | "roundness": {
951 | "type": 3
952 | },
953 | "boundElements": [],
954 | "updated": 1676227171844,
955 | "link": null,
956 | "locked": false
957 | },
958 | {
959 | "type": "text",
960 | "version": 178,
961 | "versionNonce": 1923926408,
962 | "isDeleted": false,
963 | "id": "pCXc9Y190CiwcyqeShC_3",
964 | "fillStyle": "solid",
965 | "strokeWidth": 1,
966 | "strokeStyle": "solid",
967 | "roughness": 2,
968 | "opacity": 100,
969 | "angle": 0,
970 | "x": 1039.6611874008222,
971 | "y": 275.62839288038754,
972 | "strokeColor": "#000000",
973 | "backgroundColor": "#ced4da",
974 | "width": 289,
975 | "height": 78,
976 | "seed": 1644912120,
977 | "groupIds": [],
978 | "roundness": null,
979 | "boundElements": [],
980 | "updated": 1676227171844,
981 | "link": null,
982 | "locked": false,
983 | "fontSize": 32.65115001589754,
984 | "fontFamily": 3,
985 | "text": "current_call\n.get_req_vals()",
986 | "baseline": 70,
987 | "textAlign": "left",
988 | "verticalAlign": "top",
989 | "containerId": null,
990 | "originalText": "current_call\n.get_req_vals()"
991 | },
992 | {
993 | "type": "rectangle",
994 | "version": 748,
995 | "versionNonce": 1921282808,
996 | "isDeleted": false,
997 | "id": "jY1THsQQLmYrnPdpp6fpT",
998 | "fillStyle": "solid",
999 | "strokeWidth": 1,
1000 | "strokeStyle": "solid",
1001 | "roughness": 2,
1002 | "opacity": 100,
1003 | "angle": 0,
1004 | "x": 984.7657264292559,
1005 | "y": 239.1909143380596,
1006 | "strokeColor": "#000000",
1007 | "backgroundColor": "#ced4da",
1008 | "width": 400.0001907348633,
1009 | "height": 149.99999999999986,
1010 | "seed": 1967174024,
1011 | "groupIds": [],
1012 | "roundness": {
1013 | "type": 3
1014 | },
1015 | "boundElements": [],
1016 | "updated": 1676227171844,
1017 | "link": null,
1018 | "locked": false
1019 | },
1020 | {
1021 | "type": "arrow",
1022 | "version": 100,
1023 | "versionNonce": 546330248,
1024 | "isDeleted": false,
1025 | "id": "6yTsCAFbqQUndi7MRLErS",
1026 | "fillStyle": "hachure",
1027 | "strokeWidth": 1,
1028 | "strokeStyle": "solid",
1029 | "roughness": 1,
1030 | "opacity": 100,
1031 | "angle": 0,
1032 | "x": 1210.0719599028587,
1033 | "y": 1020.8588568299629,
1034 | "strokeColor": "#000000",
1035 | "backgroundColor": "transparent",
1036 | "width": 2.0445882652047658,
1037 | "height": 108.26057757367448,
1038 | "seed": 596565525,
1039 | "groupIds": [],
1040 | "roundness": {
1041 | "type": 2
1042 | },
1043 | "boundElements": [],
1044 | "updated": 1676227661401,
1045 | "link": null,
1046 | "locked": false,
1047 | "startBinding": null,
1048 | "endBinding": {
1049 | "elementId": "t9fEHtID0V7jFL-2v5Bux",
1050 | "focus": 0.027482882361899705,
1051 | "gap": 31.8215402543226
1052 | },
1053 | "lastCommittedPoint": null,
1054 | "startArrowhead": null,
1055 | "endArrowhead": "arrow",
1056 | "points": [
1057 | [
1058 | 0,
1059 | 0
1060 | ],
1061 | [
1062 | -2.0445882652047658,
1063 | 108.26057757367448
1064 | ]
1065 | ]
1066 | },
1067 | {
1068 | "type": "rectangle",
1069 | "version": 673,
1070 | "versionNonce": 1013602440,
1071 | "isDeleted": false,
1072 | "id": "GnkcHfBXK6bkjLcYuS2t9",
1073 | "fillStyle": "solid",
1074 | "strokeWidth": 1,
1075 | "strokeStyle": "solid",
1076 | "roughness": 2,
1077 | "opacity": 100,
1078 | "angle": 0,
1079 | "x": 1466.7658484995682,
1080 | "y": -122.80913143830736,
1081 | "strokeColor": "#000000",
1082 | "backgroundColor": "#ced4da",
1083 | "width": 378.0000686645508,
1084 | "height": 149.99999999999986,
1085 | "seed": 631529720,
1086 | "groupIds": [],
1087 | "roundness": {
1088 | "type": 3
1089 | },
1090 | "boundElements": [],
1091 | "updated": 1676227171844,
1092 | "link": null,
1093 | "locked": false
1094 | },
1095 | {
1096 | "type": "arrow",
1097 | "version": 495,
1098 | "versionNonce": 751588232,
1099 | "isDeleted": false,
1100 | "id": "7klonIrmi9WBi7n7gR9k9",
1101 | "fillStyle": "hachure",
1102 | "strokeWidth": 1,
1103 | "strokeStyle": "solid",
1104 | "roughness": 1,
1105 | "opacity": 100,
1106 | "angle": 0,
1107 | "x": 1647.2137862506434,
1108 | "y": -262.0284218528687,
1109 | "strokeColor": "#000000",
1110 | "backgroundColor": "transparent",
1111 | "width": 34.61104800959811,
1112 | "height": 88.28185771293079,
1113 | "seed": 920705237,
1114 | "groupIds": [],
1115 | "roundness": {
1116 | "type": 2
1117 | },
1118 | "boundElements": [],
1119 | "updated": 1676226456273,
1120 | "link": null,
1121 | "locked": false,
1122 | "startBinding": {
1123 | "elementId": "tRI2FrkSmdHl9d6vqpMcI",
1124 | "gap": 16.426273792123794,
1125 | "focus": -0.09412973800307045
1126 | },
1127 | "endBinding": {
1128 | "elementId": "1pSFt0tc_3yfHR5NZB4U2",
1129 | "gap": 22.937478477997274,
1130 | "focus": 0.08426007971057035
1131 | },
1132 | "lastCommittedPoint": null,
1133 | "startArrowhead": null,
1134 | "endArrowhead": "arrow",
1135 | "points": [
1136 | [
1137 | 0,
1138 | 0
1139 | ],
1140 | [
1141 | -34.61104800959811,
1142 | 88.28185771293079
1143 | ]
1144 | ]
1145 | },
1146 | {
1147 | "type": "text",
1148 | "version": 625,
1149 | "versionNonce": 1483428856,
1150 | "isDeleted": false,
1151 | "id": "CtEEwvAv_aOECMokikRi_",
1152 | "fillStyle": "solid",
1153 | "strokeWidth": 1,
1154 | "strokeStyle": "solid",
1155 | "roughness": 2,
1156 | "opacity": 100,
1157 | "angle": 0,
1158 | "x": 1462.599219979874,
1159 | "y": 74.69088382048147,
1160 | "strokeColor": "#000000",
1161 | "backgroundColor": "#ced4da",
1162 | "width": 362,
1163 | "height": 102,
1164 | "seed": 362431112,
1165 | "groupIds": [],
1166 | "roundness": null,
1167 | "boundElements": [],
1168 | "updated": 1676227171844,
1169 | "link": null,
1170 | "locked": false,
1171 | "fontSize": 44.57142857142857,
1172 | "fontFamily": 2,
1173 | "text": "חיפוש מזהה השיחה \nבמערך השיחות",
1174 | "baseline": 92,
1175 | "textAlign": "right",
1176 | "verticalAlign": "top",
1177 | "containerId": null,
1178 | "originalText": "חיפוש מזהה השיחה \nבמערך השיחות"
1179 | },
1180 | {
1181 | "type": "text",
1182 | "version": 706,
1183 | "versionNonce": 899549064,
1184 | "isDeleted": false,
1185 | "id": "SF2Ah56chI-bu28Ah0sHe",
1186 | "fillStyle": "solid",
1187 | "strokeWidth": 1,
1188 | "strokeStyle": "solid",
1189 | "roughness": 2,
1190 | "opacity": 100,
1191 | "angle": 0,
1192 | "x": 1416.599219979874,
1193 | "y": 258.6910516671613,
1194 | "strokeColor": "#000000",
1195 | "backgroundColor": "#ced4da",
1196 | "width": 408,
1197 | "height": 102,
1198 | "seed": 964774280,
1199 | "groupIds": [],
1200 | "roundness": null,
1201 | "boundElements": [],
1202 | "updated": 1676227171844,
1203 | "link": null,
1204 | "locked": false,
1205 | "fontSize": 44.57142857142857,
1206 | "fontFamily": 2,
1207 | "text": "שמירת משתני הקריאה \nהספציפית באובייקט",
1208 | "baseline": 92,
1209 | "textAlign": "right",
1210 | "verticalAlign": "top",
1211 | "containerId": null,
1212 | "originalText": "שמירת משתני הקריאה \nהספציפית באובייקט"
1213 | },
1214 | {
1215 | "type": "line",
1216 | "version": 267,
1217 | "versionNonce": 749182856,
1218 | "isDeleted": false,
1219 | "id": "cwNCp4fDxIy1rT5P0e4wP",
1220 | "fillStyle": "hachure",
1221 | "strokeWidth": 1,
1222 | "strokeStyle": "solid",
1223 | "roughness": 1,
1224 | "opacity": 100,
1225 | "angle": 0,
1226 | "x": 1662.0181815069377,
1227 | "y": 810.0772156616728,
1228 | "strokeColor": "#000000",
1229 | "backgroundColor": "transparent",
1230 | "width": 7.595734816875392,
1231 | "height": 824.1372276309688,
1232 | "seed": 194858011,
1233 | "groupIds": [],
1234 | "roundness": {
1235 | "type": 2
1236 | },
1237 | "boundElements": [],
1238 | "updated": 1676226323634,
1239 | "link": null,
1240 | "locked": false,
1241 | "startBinding": null,
1242 | "endBinding": null,
1243 | "lastCommittedPoint": null,
1244 | "startArrowhead": null,
1245 | "endArrowhead": null,
1246 | "points": [
1247 | [
1248 | 0,
1249 | 0
1250 | ],
1251 | [
1252 | 7.595734816875392,
1253 | 434.8558182661103
1254 | ],
1255 | [
1256 | 7.595734816875392,
1257 | 824.1372276309688
1258 | ]
1259 | ]
1260 | },
1261 | {
1262 | "type": "text",
1263 | "version": 719,
1264 | "versionNonce": 13505784,
1265 | "isDeleted": false,
1266 | "id": "Qo2kNxI8Nmo-eU-ggTWGq",
1267 | "fillStyle": "solid",
1268 | "strokeWidth": 1,
1269 | "strokeStyle": "solid",
1270 | "roughness": 2,
1271 | "opacity": 100,
1272 | "angle": 0,
1273 | "x": 1485.599219979874,
1274 | "y": -107.3091619558856,
1275 | "strokeColor": "#000000",
1276 | "backgroundColor": "#ced4da",
1277 | "width": 339,
1278 | "height": 102,
1279 | "seed": 240624632,
1280 | "groupIds": [],
1281 | "roundness": null,
1282 | "boundElements": [],
1283 | "updated": 1676227171844,
1284 | "link": null,
1285 | "locked": false,
1286 | "fontSize": 44.57142857142857,
1287 | "fontFamily": 2,
1288 | "text": "בדיקה האם משתני \nהשיחה תקינים",
1289 | "baseline": 92,
1290 | "textAlign": "right",
1291 | "verticalAlign": "top",
1292 | "containerId": null,
1293 | "originalText": "בדיקה האם משתני \nהשיחה תקינים"
1294 | },
1295 | {
1296 | "type": "text",
1297 | "version": 133,
1298 | "versionNonce": 1250154120,
1299 | "isDeleted": false,
1300 | "id": "LCLF5nyZgw0odNxUEE7U9",
1301 | "fillStyle": "solid",
1302 | "strokeWidth": 1,
1303 | "strokeStyle": "solid",
1304 | "roughness": 2,
1305 | "opacity": 100,
1306 | "angle": 0,
1307 | "x": 1035.766077381404,
1308 | "y": 91.62845391554367,
1309 | "strokeColor": "#000000",
1310 | "backgroundColor": "#ced4da",
1311 | "width": 381,
1312 | "height": 86,
1313 | "seed": 2094446328,
1314 | "groupIds": [],
1315 | "roundness": null,
1316 | "boundElements": [],
1317 | "updated": 1676227171844,
1318 | "link": null,
1319 | "locked": false,
1320 | "fontSize": 36,
1321 | "fontFamily": 3,
1322 | "text": "get_current_call()\ncurrent_call",
1323 | "baseline": 78,
1324 | "textAlign": "center",
1325 | "verticalAlign": "top",
1326 | "containerId": null,
1327 | "originalText": "get_current_call()\ncurrent_call"
1328 | },
1329 | {
1330 | "type": "text",
1331 | "version": 74,
1332 | "versionNonce": 1296948984,
1333 | "isDeleted": false,
1334 | "id": "nNsTceu9v3l6LJDHZuvmZ",
1335 | "fillStyle": "hachure",
1336 | "strokeWidth": 1,
1337 | "strokeStyle": "solid",
1338 | "roughness": 2,
1339 | "opacity": 100,
1340 | "angle": 0,
1341 | "x": 1504.2658484995682,
1342 | "y": 699.628331845231,
1343 | "strokeColor": "#000000",
1344 | "backgroundColor": "#ced4da",
1345 | "width": 340,
1346 | "height": 43,
1347 | "seed": 1906791048,
1348 | "groupIds": [],
1349 | "roundness": null,
1350 | "boundElements": [],
1351 | "updated": 1676226371874,
1352 | "link": null,
1353 | "locked": false,
1354 | "fontSize": 36,
1355 | "fontFamily": 3,
1356 | "text": "if (is_new_call)",
1357 | "baseline": 34,
1358 | "textAlign": "left",
1359 | "verticalAlign": "top",
1360 | "containerId": null,
1361 | "originalText": "if (is_new_call)"
1362 | },
1363 | {
1364 | "type": "rectangle",
1365 | "version": 211,
1366 | "versionNonce": 1521127416,
1367 | "isDeleted": false,
1368 | "id": "t9fEHtID0V7jFL-2v5Bux",
1369 | "fillStyle": "solid",
1370 | "strokeWidth": 1,
1371 | "strokeStyle": "solid",
1372 | "roughness": 2,
1373 | "opacity": 100,
1374 | "angle": 0,
1375 | "x": 814.7658790171465,
1376 | "y": 1160.94097465796,
1377 | "strokeColor": "#000000",
1378 | "backgroundColor": "#868e96",
1379 | "width": 749.9999999999998,
1380 | "height": 758.0001068115234,
1381 | "seed": 1310019064,
1382 | "groupIds": [
1383 | "paJ_pgySwRRj15Oz1GUMR"
1384 | ],
1385 | "roundness": {
1386 | "type": 3
1387 | },
1388 | "boundElements": [
1389 | {
1390 | "id": "6yTsCAFbqQUndi7MRLErS",
1391 | "type": "arrow"
1392 | }
1393 | ],
1394 | "updated": 1676227655540,
1395 | "link": null,
1396 | "locked": false
1397 | },
1398 | {
1399 | "type": "rectangle",
1400 | "version": 210,
1401 | "versionNonce": 1728088968,
1402 | "isDeleted": false,
1403 | "id": "q-NX08oq226w3aCEZaCdy",
1404 | "fillStyle": "solid",
1405 | "strokeWidth": 1,
1406 | "strokeStyle": "solid",
1407 | "roughness": 2,
1408 | "opacity": 100,
1409 | "angle": 0,
1410 | "x": 904.7658790171465,
1411 | "y": 1194.940989916749,
1412 | "strokeColor": "#000000",
1413 | "backgroundColor": "#ced4da",
1414 | "width": 598.0000305175779,
1415 | "height": 162.0000457763672,
1416 | "seed": 568210424,
1417 | "groupIds": [
1418 | "paJ_pgySwRRj15Oz1GUMR"
1419 | ],
1420 | "roundness": {
1421 | "type": 3
1422 | },
1423 | "boundElements": [],
1424 | "updated": 1676227655540,
1425 | "link": null,
1426 | "locked": false
1427 | },
1428 | {
1429 | "type": "rectangle",
1430 | "version": 299,
1431 | "versionNonce": 1875235064,
1432 | "isDeleted": false,
1433 | "id": "GaXFjVIGBjEsi1vgON1T2",
1434 | "fillStyle": "solid",
1435 | "strokeWidth": 1,
1436 | "strokeStyle": "solid",
1437 | "roughness": 2,
1438 | "opacity": 100,
1439 | "angle": 0,
1440 | "x": 908.7658942759356,
1441 | "y": 1380.94097465796,
1442 | "strokeColor": "#000000",
1443 | "backgroundColor": "#ced4da",
1444 | "width": 598.0000305175779,
1445 | "height": 78.00003051757812,
1446 | "seed": 448090872,
1447 | "groupIds": [
1448 | "paJ_pgySwRRj15Oz1GUMR"
1449 | ],
1450 | "roundness": {
1451 | "type": 3
1452 | },
1453 | "boundElements": [],
1454 | "updated": 1676227655540,
1455 | "link": null,
1456 | "locked": false
1457 | },
1458 | {
1459 | "type": "text",
1460 | "version": 473,
1461 | "versionNonce": 888527496,
1462 | "isDeleted": false,
1463 | "id": "-Z-Y4I0Gu0ZwlhnrrRO1Z",
1464 | "fillStyle": "cross-hatch",
1465 | "strokeWidth": 1,
1466 | "strokeStyle": "solid",
1467 | "roughness": 2,
1468 | "opacity": 100,
1469 | "angle": 0,
1470 | "x": 1035.2657874644121,
1471 | "y": 1397.5242354325724,
1472 | "strokeColor": "#000000",
1473 | "backgroundColor": "#ced4da",
1474 | "width": 349,
1475 | "height": 43,
1476 | "seed": 653592824,
1477 | "groupIds": [
1478 | "paJ_pgySwRRj15Oz1GUMR"
1479 | ],
1480 | "roundness": null,
1481 | "boundElements": [],
1482 | "updated": 1676227655540,
1483 | "link": null,
1484 | "locked": false,
1485 | "fontSize": 36,
1486 | "fontFamily": 3,
1487 | "text": "בדיקה האם השיחה נותקה",
1488 | "baseline": 34,
1489 | "textAlign": "center",
1490 | "verticalAlign": "top",
1491 | "containerId": null,
1492 | "originalText": "בדיקה האם השיחה נותקה"
1493 | },
1494 | {
1495 | "type": "text",
1496 | "version": 366,
1497 | "versionNonce": 567341560,
1498 | "isDeleted": false,
1499 | "id": "-zSL6LStJwtmnvA0l1Swz",
1500 | "fillStyle": "solid",
1501 | "strokeWidth": 1,
1502 | "strokeStyle": "solid",
1503 | "roughness": 2,
1504 | "opacity": 100,
1505 | "angle": 0,
1506 | "x": 1021.265741688045,
1507 | "y": 1205.5242659501505,
1508 | "strokeColor": "#000000",
1509 | "backgroundColor": "#ced4da",
1510 | "width": 373,
1511 | "height": 130,
1512 | "seed": 684937976,
1513 | "groupIds": [
1514 | "paJ_pgySwRRj15Oz1GUMR"
1515 | ],
1516 | "roundness": null,
1517 | "boundElements": [],
1518 | "updated": 1676227655540,
1519 | "link": null,
1520 | "locked": false,
1521 | "fontSize": 36,
1522 | "fontFamily": 3,
1523 | "text": "הפעלת אירוע, המוציא את\nהפונקציה מהקפאה, וממשיך\nאת ההרצה",
1524 | "baseline": 121,
1525 | "textAlign": "center",
1526 | "verticalAlign": "top",
1527 | "containerId": null,
1528 | "originalText": "הפעלת אירוע, המוציא את\nהפונקציה מהקפאה, וממשיך\nאת ההרצה"
1529 | },
1530 | {
1531 | "type": "rectangle",
1532 | "version": 375,
1533 | "versionNonce": 1432963464,
1534 | "isDeleted": false,
1535 | "id": "PNQ2VJBe5WUpYKaQC7-Ts",
1536 | "fillStyle": "solid",
1537 | "strokeWidth": 1,
1538 | "strokeStyle": "solid",
1539 | "roughness": 2,
1540 | "opacity": 100,
1541 | "angle": 0,
1542 | "x": 904.7658027232012,
1543 | "y": 1486.9411119870615,
1544 | "strokeColor": "#000000",
1545 | "backgroundColor": "#ced4da",
1546 | "width": 598.0000305175779,
1547 | "height": 138.0000305175781,
1548 | "seed": 509159928,
1549 | "groupIds": [
1550 | "paJ_pgySwRRj15Oz1GUMR"
1551 | ],
1552 | "roundness": {
1553 | "type": 3
1554 | },
1555 | "boundElements": [],
1556 | "updated": 1676227655540,
1557 | "link": null,
1558 | "locked": false
1559 | },
1560 | {
1561 | "type": "rectangle",
1562 | "version": 221,
1563 | "versionNonce": 850011784,
1564 | "isDeleted": false,
1565 | "id": "W4MVtTwZeFStVfj1doS3p",
1566 | "fillStyle": "solid",
1567 | "strokeWidth": 1,
1568 | "strokeStyle": "solid",
1569 | "roughness": 2,
1570 | "opacity": 100,
1571 | "angle": 0,
1572 | "x": -769.2339836537512,
1573 | "y": 1094.3784275702913,
1574 | "strokeColor": "#000000",
1575 | "backgroundColor": "#868e96",
1576 | "width": 1335.9999847412105,
1577 | "height": 1624.000091552734,
1578 | "seed": 1083879048,
1579 | "groupIds": [
1580 | "HMGr2bQpjsucaBD5ai8xR"
1581 | ],
1582 | "roundness": {
1583 | "type": 3
1584 | },
1585 | "boundElements": [],
1586 | "updated": 1676227729313,
1587 | "link": null,
1588 | "locked": false
1589 | },
1590 | {
1591 | "type": "rectangle",
1592 | "version": 73,
1593 | "versionNonce": 450213256,
1594 | "isDeleted": false,
1595 | "id": "gVT0UXHGX88deJibDAhDg",
1596 | "fillStyle": "solid",
1597 | "strokeWidth": 1,
1598 | "strokeStyle": "solid",
1599 | "roughness": 2,
1600 | "opacity": 100,
1601 | "angle": 0,
1602 | "x": -506.98402037021265,
1603 | "y": 1146.3785114936306,
1604 | "strokeColor": "#000000",
1605 | "backgroundColor": "#ced4da",
1606 | "width": 819.9999999999998,
1607 | "height": 210.00003814697266,
1608 | "seed": 330893304,
1609 | "groupIds": [
1610 | "HMGr2bQpjsucaBD5ai8xR"
1611 | ],
1612 | "roundness": {
1613 | "type": 3
1614 | },
1615 | "boundElements": [],
1616 | "updated": 1676227521978,
1617 | "link": null,
1618 | "locked": false
1619 | },
1620 | {
1621 | "type": "text",
1622 | "version": 156,
1623 | "versionNonce": 1857046264,
1624 | "isDeleted": false,
1625 | "id": "VUPWAazMSmds7jqJ4UMqi",
1626 | "fillStyle": "solid",
1627 | "strokeWidth": 1,
1628 | "strokeStyle": "solid",
1629 | "roughness": 2,
1630 | "opacity": 100,
1631 | "angle": 0,
1632 | "x": -332.4839593350566,
1633 | "y": 1202.7739840902248,
1634 | "strokeColor": "#000000",
1635 | "backgroundColor": "#ced4da",
1636 | "width": 437.13040542602505,
1637 | "height": 113.60451214461678,
1638 | "seed": 349157112,
1639 | "groupIds": [
1640 | "HMGr2bQpjsucaBD5ai8xR"
1641 | ],
1642 | "roundness": null,
1643 | "boundElements": [],
1644 | "updated": 1676227521978,
1645 | "link": null,
1646 | "locked": false,
1647 | "fontSize": 88.9078790697001,
1648 | "fontFamily": 1,
1649 | "text": "Call class",
1650 | "baseline": 78.60451214461678,
1651 | "textAlign": "center",
1652 | "verticalAlign": "top",
1653 | "containerId": null,
1654 | "originalText": "Call class"
1655 | },
1656 | {
1657 | "type": "rectangle",
1658 | "version": 252,
1659 | "versionNonce": 828672248,
1660 | "isDeleted": false,
1661 | "id": "-HlwDOilHDHO0PzakVjuL",
1662 | "fillStyle": "solid",
1663 | "strokeWidth": 1,
1664 | "strokeStyle": "solid",
1665 | "roughness": 2,
1666 | "opacity": 100,
1667 | "angle": 0,
1668 | "x": -684.9840127408181,
1669 | "y": 1436.3785496406033,
1670 | "strokeColor": "#000000",
1671 | "backgroundColor": "#ced4da",
1672 | "width": 622.0000076293943,
1673 | "height": 524.0002441406242,
1674 | "seed": 960648072,
1675 | "groupIds": [
1676 | "HMGr2bQpjsucaBD5ai8xR"
1677 | ],
1678 | "roundness": {
1679 | "type": 3
1680 | },
1681 | "boundElements": [],
1682 | "updated": 1676227737037,
1683 | "link": null,
1684 | "locked": false
1685 | },
1686 | {
1687 | "type": "rectangle",
1688 | "version": 340,
1689 | "versionNonce": 65271432,
1690 | "isDeleted": false,
1691 | "id": "SG03zi7EyE2Ux7wK-Sr3F",
1692 | "fillStyle": "solid",
1693 | "strokeWidth": 1,
1694 | "strokeStyle": "solid",
1695 | "roughness": 2,
1696 | "opacity": 100,
1697 | "angle": 0,
1698 | "x": -690.983997482029,
1699 | "y": 1998.3786717109153,
1700 | "strokeColor": "#000000",
1701 | "backgroundColor": "#ced4da",
1702 | "width": 622.0000076293943,
1703 | "height": 524.0002441406242,
1704 | "seed": 24156808,
1705 | "groupIds": [
1706 | "HMGr2bQpjsucaBD5ai8xR"
1707 | ],
1708 | "roundness": {
1709 | "type": 3
1710 | },
1711 | "boundElements": [],
1712 | "updated": 1676227740119,
1713 | "link": null,
1714 | "locked": false
1715 | },
1716 | {
1717 | "type": "text",
1718 | "version": 227,
1719 | "versionNonce": 513895816,
1720 | "isDeleted": false,
1721 | "id": "iXEakxFB5AeZpQmpsChG4",
1722 | "fillStyle": "solid",
1723 | "strokeWidth": 1,
1724 | "strokeStyle": "solid",
1725 | "roughness": 2,
1726 | "opacity": 100,
1727 | "angle": 0,
1728 | "x": -648.9840508877907,
1729 | "y": 1565.8785229377227,
1730 | "strokeColor": "#000000",
1731 | "backgroundColor": "#ced4da",
1732 | "width": 360,
1733 | "height": 346,
1734 | "seed": 1576457608,
1735 | "groupIds": [
1736 | "HMGr2bQpjsucaBD5ai8xR"
1737 | ],
1738 | "roundness": null,
1739 | "boundElements": [],
1740 | "updated": 1676227555465,
1741 | "link": null,
1742 | "locked": false,
1743 | "fontSize": 36,
1744 | "fontFamily": 3,
1745 | "text": "block_running() {\n if timeout\n\n if hangup\n\n else \n continue()\n}",
1746 | "baseline": 337,
1747 | "textAlign": "left",
1748 | "verticalAlign": "top",
1749 | "containerId": null,
1750 | "originalText": "block_running() {\n if timeout\n\n if hangup\n\n else \n continue()\n}"
1751 | },
1752 | {
1753 | "type": "text",
1754 | "version": 118,
1755 | "versionNonce": 1116784776,
1756 | "isDeleted": false,
1757 | "id": "f70u8W5j3AgfclP6ClK3Y",
1758 | "fillStyle": "solid",
1759 | "strokeWidth": 1,
1760 | "strokeStyle": "solid",
1761 | "roughness": 2,
1762 | "opacity": 100,
1763 | "angle": 0,
1764 | "x": 997.0158423006851,
1765 | "y": 1557.8992976598215,
1766 | "strokeColor": "#000000",
1767 | "backgroundColor": "#ced4da",
1768 | "width": 318,
1769 | "height": 43,
1770 | "seed": 938164360,
1771 | "groupIds": [
1772 | "paJ_pgySwRRj15Oz1GUMR"
1773 | ],
1774 | "roundness": null,
1775 | "boundElements": [],
1776 | "updated": 1676227665195,
1777 | "link": null,
1778 | "locked": false,
1779 | "fontSize": 36,
1780 | "fontFamily": 3,
1781 | "text": "block_running()",
1782 | "baseline": 34,
1783 | "textAlign": "left",
1784 | "verticalAlign": "top",
1785 | "containerId": null,
1786 | "originalText": "block_running()"
1787 | },
1788 | {
1789 | "type": "text",
1790 | "version": 123,
1791 | "versionNonce": 867318920,
1792 | "isDeleted": false,
1793 | "id": "FGuYgTTbOKAfI9Y9VD0mY",
1794 | "fillStyle": "solid",
1795 | "strokeWidth": 1,
1796 | "strokeStyle": "solid",
1797 | "roughness": 2,
1798 | "opacity": 100,
1799 | "angle": 0,
1800 | "x": -397.984081405369,
1801 | "y": 1477.8992976598215,
1802 | "strokeColor": "#000000",
1803 | "backgroundColor": "#ced4da",
1804 | "width": 256,
1805 | "height": 42,
1806 | "seed": 1606003592,
1807 | "groupIds": [],
1808 | "roundness": null,
1809 | "boundElements": [],
1810 | "updated": 1676227579036,
1811 | "link": null,
1812 | "locked": false,
1813 | "fontSize": 36,
1814 | "fontFamily": 2,
1815 | "text": "פונקציית ההקפאה",
1816 | "baseline": 33,
1817 | "textAlign": "left",
1818 | "verticalAlign": "top",
1819 | "containerId": null,
1820 | "originalText": "פונקציית ההקפאה"
1821 | },
1822 | {
1823 | "type": "text",
1824 | "version": 210,
1825 | "versionNonce": 632897160,
1826 | "isDeleted": false,
1827 | "id": "aJ6j5Dx0Lj_178YejyskH",
1828 | "fillStyle": "solid",
1829 | "strokeWidth": 1,
1830 | "strokeStyle": "solid",
1831 | "roughness": 2,
1832 | "opacity": 100,
1833 | "angle": 0,
1834 | "x": 1146.5159185946304,
1835 | "y": 1510.2326583318186,
1836 | "strokeColor": "#000000",
1837 | "backgroundColor": "#ced4da",
1838 | "width": 256,
1839 | "height": 42,
1840 | "seed": 640588424,
1841 | "groupIds": [
1842 | "paJ_pgySwRRj15Oz1GUMR"
1843 | ],
1844 | "roundness": null,
1845 | "boundElements": [],
1846 | "updated": 1676227668932,
1847 | "link": null,
1848 | "locked": false,
1849 | "fontSize": 36,
1850 | "fontFamily": 2,
1851 | "text": "פונקציית ההקפאה",
1852 | "baseline": 33,
1853 | "textAlign": "left",
1854 | "verticalAlign": "top",
1855 | "containerId": null,
1856 | "originalText": "פונקציית ההקפאה"
1857 | },
1858 | {
1859 | "type": "text",
1860 | "version": 69,
1861 | "versionNonce": 1872806280,
1862 | "isDeleted": false,
1863 | "id": "ZMH2RBf9nhhZ25_hC62c4",
1864 | "fillStyle": "solid",
1865 | "strokeWidth": 1,
1866 | "strokeStyle": "solid",
1867 | "roughness": 2,
1868 | "opacity": 100,
1869 | "angle": 0,
1870 | "x": -642.9840814053689,
1871 | "y": 2038.6910361699533,
1872 | "strokeColor": "#000000",
1873 | "backgroundColor": "#ced4da",
1874 | "width": 129,
1875 | "height": 43,
1876 | "seed": 447607944,
1877 | "groupIds": [],
1878 | "roundness": null,
1879 | "boundElements": [],
1880 | "updated": 1676227763957,
1881 | "link": null,
1882 | "locked": false,
1883 | "fontSize": 36,
1884 | "fontFamily": 3,
1885 | "text": "read()",
1886 | "baseline": 34,
1887 | "textAlign": "left",
1888 | "verticalAlign": "top",
1889 | "containerId": null,
1890 | "originalText": "read()"
1891 | },
1892 | {
1893 | "type": "rectangle",
1894 | "version": 69,
1895 | "versionNonce": 1612099208,
1896 | "isDeleted": false,
1897 | "id": "V_dHwicNADrhJ1MOBhgwQ",
1898 | "fillStyle": "solid",
1899 | "strokeWidth": 1,
1900 | "strokeStyle": "solid",
1901 | "roughness": 2,
1902 | "opacity": 100,
1903 | "angle": 0,
1904 | "x": -526.984096664158,
1905 | "y": 2099.1910514287424,
1906 | "strokeColor": "#000000",
1907 | "backgroundColor": "#ced4ff",
1908 | "width": 405.9999847412107,
1909 | "height": 88.00003051757812,
1910 | "seed": 1746882696,
1911 | "groupIds": [],
1912 | "roundness": {
1913 | "type": 3
1914 | },
1915 | "boundElements": [],
1916 | "updated": 1676227815108,
1917 | "link": null,
1918 | "locked": false
1919 | },
1920 | {
1921 | "type": "text",
1922 | "version": 78,
1923 | "versionNonce": 791578360,
1924 | "isDeleted": false,
1925 | "id": "CvrsXRW4wXbK9qBiJ0D42",
1926 | "fillStyle": "solid",
1927 | "strokeWidth": 1,
1928 | "strokeStyle": "solid",
1929 | "roughness": 2,
1930 | "opacity": 100,
1931 | "angle": 0,
1932 | "x": -408.98414244052526,
1933 | "y": 2124.1908683232737,
1934 | "strokeColor": "#000000",
1935 | "backgroundColor": "#ced4ff",
1936 | "width": 206,
1937 | "height": 42,
1938 | "seed": 596814984,
1939 | "groupIds": [],
1940 | "roundness": null,
1941 | "boundElements": [],
1942 | "updated": 1676227861084,
1943 | "link": null,
1944 | "locked": false,
1945 | "fontSize": 36,
1946 | "fontFamily": 2,
1947 | "text": "הכנת התשובה",
1948 | "baseline": 33,
1949 | "textAlign": "left",
1950 | "verticalAlign": "top",
1951 | "containerId": null,
1952 | "originalText": "הכנת התשובה"
1953 | }
1954 | ],
1955 | "appState": {
1956 | "gridSize": null,
1957 | "viewBackgroundColor": "#ffffff"
1958 | },
1959 | "files": {}
1960 | }
--------------------------------------------------------------------------------
/exemple.js:
--------------------------------------------------------------------------------
1 | const express = require("express");
2 | const app = express();
3 | const { Yemot_router } = require("./");
4 |
5 | const y = Yemot_router();
6 |
7 | y.add_fn("/", async (call) => {
8 |
9 | let massage = [{ type: "text", data: "היי, תקיש 10" }];
10 | let r = await call.read(massage)
11 | .catch(error => {
12 | if (error.name === "Hangup_error")
13 | console.log(error.call.phone, "hangup");
14 | throw error;
15 | });
16 |
17 | massage = [{ type: "text", data: "שלום, אנא הקש את שמך המלא" }];
18 | r = await call.read(massage, "tap", { play_ok_mode: "HebrewKeyboard" })
19 | .catch(error => {
20 | if (error.name === "Hangup_error")
21 | console.log(error.call.phone, "hangup");
22 | throw error;
23 | });
24 |
25 | console.log(r);
26 |
27 | massage = [
28 | { type: "text", data: "שלום " + r },
29 | { type: "text", data: "אנא הקלט את הרחוב בו אתה גר" }
30 | ];
31 | r = await call.read(massage, "record");
32 |
33 | console.log(r);
34 |
35 | massage = [{ type: "text", data: "אנא אמור את שם הרחוב בו אתה גר" }];
36 | r = await call.read(massage, "stt");
37 |
38 | console.log(r);
39 |
40 | massage = [{ type: "text", data: "אמרת" }];
41 | r = await call.id_list_message(massage, true);
42 |
43 | console.log(r);
44 |
45 | call.go_to_folder("/1");
46 | });
47 |
48 | app.use("/", y);
49 |
50 | const port = 3000;
51 | app.listen(port, () => {
52 | console.log("listen in port", port);
53 | });
54 |
--------------------------------------------------------------------------------
/index.d.ts:
--------------------------------------------------------------------------------
1 | export declare function Yemot_router(opt?: { timeout: number }): YemotRouter;
2 |
3 | interface YemotRouter {
4 | add_fn: (path: string, handler: Handler) => void;
5 | }
6 | export type Call = {
7 | did: string;
8 |
9 | phone: string;
10 |
11 | real_did: string;
12 |
13 | call_id: string;
14 |
15 | extension: string;
16 |
17 | query: object;
18 |
19 | read(
20 | massage: msg_data,
21 | mode?: mode,
22 | options?: read_options
23 | ): Promise
;
24 |
25 | go_to_folder(folder: string): void;
26 |
27 | id_list_message(data: msg_data, wait_to_more_action: boolean): void;
28 |
29 | routing_yemot(phone: string): void;
30 |
31 | restart_ext(): void;
32 | };
33 |
34 | type Handler = (p: Call) => void;
35 |
36 | type msg_data = [{ type: msg_data_type; data: string }];
37 |
38 | type msg_data_type =
39 | | "file"
40 | | "text"
41 | | "speech"
42 | | "digits"
43 | | "number"
44 | | "alpha"
45 | | "zmanim"
46 | | "go_to_folder"
47 | | "system_message"
48 | | "music_on_hold"
49 | | "date"
50 | | "dateH";
51 |
52 | type mode = "tap" | "stt" | "record";
53 |
54 | type read_options = {
55 | val_name: string;
56 | re_enter_if_exists: boolean;
57 | max: number;
58 | min: number;
59 | sec_wait: number;
60 | play_ok_mode: play_ok_mode;
61 | block_asterisk: boolean;
62 | block_zero: boolean;
63 | replace_char: string;
64 | digits_allowed: (number | string)[];
65 | amount_attempts: number;
66 | read_none: boolean;
67 | read_none_var: string;
68 | block_change_type_lang: boolean;
69 |
70 | lang: string;
71 | allow_typing: boolean;
72 |
73 | path: string;
74 | file_name: string;
75 | record_ok: boolean;
76 | record_hangup: boolean;
77 | record_attach: boolean;
78 | };
79 |
80 | type play_ok_mode =
81 | | "Number"
82 | | "Digits"
83 | | "File"
84 | | "TTS"
85 | | "Alpha"
86 | | "No"
87 | | "HebrewKeyboard"
88 | | "EmailKeyboard"
89 | | "EnglishKeyboard"
90 | | "DigitsKeyboard"
91 | | "TeudatZehut"
92 | | "Price"
93 | | "Time"
94 | | "Phone"
95 | | "No";
96 |
97 | export const errors = {
98 | Exit_error,
99 | };
100 |
101 | class Exit_error extends Error {
102 | constructor(call, ...params) {
103 | // Pass remaining arguments (including vendor specific ones) to parent constructor
104 | super(...params);
105 |
106 | this.call = new Call();
107 |
108 | this.name = "Exit_error";
109 | this.date = new Date();
110 | }
111 | }
112 | class Hangup_error extends Exit_error {
113 | constructor(...params) {
114 | this.name = "Hangup_error";
115 | }
116 | }
117 |
118 | class Timeout_error extends Exit_error {
119 | constructor(...params) {
120 | this.name = "Timeout_error";
121 | }
122 | }
123 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | module.exports = require("./lib/yemot_router");
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "exclude": [
3 | "node_modules"
4 | ],
5 | "compilerOptions": {
6 | "moduleResolution": "node",
7 | "target": "ES6",
8 | "module": "commonjs",
9 | "baseUrl": ".",
10 | "paths": {
11 | "*": [
12 | "*",
13 | //"lib/*",
14 | "lib/*"
15 | ]
16 | }
17 | },
18 | "include": [
19 | "*",
20 | "lib",
21 | "misc",
22 | "test/*"
23 | ]
24 | }
--------------------------------------------------------------------------------
/lib/call.js:
--------------------------------------------------------------------------------
1 | const Response_Functions = new (require("./response_functions"));
2 | const { Hangup_error, Timeout_error, Exit_error } = require("./errors.js");
3 |
4 | function Call(call_id, events, timeout) {
5 | this.did = "";
6 | this.phone = "";
7 | this.call_id = "";
8 | this.real_did = "";
9 | this.extension = "";
10 |
11 | let url_value_num = 0;
12 |
13 | let request;
14 | let global_response_txt = "";
15 |
16 | const _this = this;
17 |
18 | this.read = async function read(massage, mode = "tap", options = {}) {
19 | if (!Array.isArray(massage)) {
20 | throw new Error("data is not array!!");
21 | }
22 |
23 | let response_txt, val_return;
24 |
25 | const send = async () => {
26 |
27 | if (!options.val_name) url_value_num++;
28 |
29 | [response_txt, val_return] = Response_Functions.make_read_response(massage, mode, options, url_value_num);
30 |
31 | if (global_response_txt) {
32 | response_txt = global_response_txt + response_txt;
33 | global_response_txt = "";
34 | }
35 |
36 | await wait_to_request();
37 |
38 | this.send(response_txt);
39 |
40 | await block_running(val_return);
41 |
42 | if (!request.req.query[val_return]) {
43 | await send();
44 | }
45 | };
46 |
47 | await send();
48 |
49 | if (request.req.query[val_return]) {
50 | return request.req.query[val_return];
51 | } else {
52 | return false;
53 | }
54 | };
55 |
56 | this.go_to_folder = function go_to_folder(folder) {
57 | let response_txt = `go_to_folder=${folder}`;
58 |
59 | if (global_response_txt) {
60 | response_txt = global_response_txt + response_txt;
61 | global_response_txt = "";
62 | }
63 |
64 | this.send(response_txt);
65 |
66 | throw new Exit_error(_this);
67 | };
68 |
69 | this.restart_ext = function restart_ext() {
70 | const folder = this.extension;
71 | let response_txt = `go_to_folder=/${folder}`;
72 |
73 | if (global_response_txt) {
74 | response_txt = global_response_txt + response_txt;
75 | global_response_txt = "";
76 | }
77 |
78 | this.send(response_txt);
79 | };
80 |
81 | /**
82 | * @param {[data]} massage
83 | */
84 | this.id_list_message = async function id_list_message(massage, wait_to_more_action = false) {
85 | if (!Array.isArray(massage)) {
86 | throw new Error("data is not array!!");
87 | }
88 |
89 | let response_txt = Response_Functions.make_id_list_message_response(massage);
90 |
91 | if (/(\.|=)g-.+/.test(response_txt)) {
92 | console.log("No further actions can be threaded after go_to_folder!");
93 | wait_to_more_action = false;
94 | }
95 |
96 | if (!wait_to_more_action) {
97 | // אם הפונקציה נקראה, לפני שהמשתמש ביקש תגובה
98 | // סימן שזוהי הפעולה האחרונה
99 | await wait_to_request();
100 |
101 | this.send(response_txt);
102 |
103 | throw new Hangup_error(_this);
104 | } else {
105 | global_response_txt = response_txt;
106 | }
107 | };
108 |
109 | this.credit_card = () => {
110 | // ...
111 | };
112 |
113 | this.routing_yemot = function routing_yemot(phone) {
114 | let response_txt = "routing_yemot=" + phone;
115 |
116 | if (global_response_txt) {
117 | response_txt = global_response_txt + response_txt;
118 | global_response_txt = "";
119 | }
120 |
121 | this.send(response_txt);
122 | };
123 |
124 | this.routing = function () {
125 | //...
126 | };
127 |
128 | this.get_req_vals = function get_req_vals(req, res, next) {
129 |
130 | request = {
131 | req,
132 | res,
133 | next
134 | };
135 |
136 | Object.assign(this, request.req.query);
137 |
138 | this.did = this.ApiDID;
139 | this.phone = this.ApiPhone;
140 | this.call_id = this.ApiCallId;
141 | this.real_did = this.ApiRealDID;
142 | this.extension = this.ApiExtension;
143 |
144 | this.query = request.req.query;
145 | this.params = request.req.params;
146 | };
147 |
148 | this.send = function send(data) {
149 | request.res.send(data);
150 | request.res.is_sending = true;
151 | };
152 |
153 | const block_running = async function(val_return) {
154 | return new Promise((resolve, reject) => {
155 | events.once(call_id, (is_hangup) => {
156 | console.log(val_return, "free");
157 | if (timeout) {
158 | setTimeout(() => {
159 | on_timeout(reject);
160 | }, timeout);
161 | }
162 | if (is_hangup) {
163 | on_hangup(reject);
164 | } else {
165 | resolve(is_hangup);
166 | }
167 | });
168 | console.log(val_return, "create block");
169 | });
170 | };
171 |
172 | async function wait_to_request() {
173 | if (request.res._headerSent) {
174 | await block_running();
175 | }
176 | }
177 |
178 | function on_hangup(reject) {
179 | request.res.json({ message: "hangup" });
180 | reject(new Hangup_error(_this));
181 | }
182 |
183 | function on_timeout(reject) {
184 | request.res.json({ message: "timeout" });
185 | reject(new Timeout_error(_this));
186 | }
187 |
188 | return this;
189 | }
190 |
191 | module.exports = Call;
192 |
--------------------------------------------------------------------------------
/lib/check_request.js:
--------------------------------------------------------------------------------
1 |
2 | module.exports = function check_request(query) {
3 |
4 | if (
5 | (query.ApiPhone || query.ApiPhone === "") &&
6 | (query.ApiDID || query.ApiDID === "") &&
7 | (query.ApiExtension || query.ApiExtension === "") &&
8 | (query.ApiCallId || query.ApiCallId === "")
9 | ) {
10 | return true;
11 | } return false;
12 |
13 | };
--------------------------------------------------------------------------------
/lib/errors.js:
--------------------------------------------------------------------------------
1 |
2 | class Exit_error extends Error {
3 | constructor(call, ...params) {
4 | // Pass remaining arguments (including vendor specific ones) to parent constructor
5 | super(...params);
6 |
7 | this.call = call;
8 |
9 | this.name = "Exit_error";
10 | // Custom debugging information
11 | this.date = new Date();
12 | }
13 | }
14 |
15 | class Hangup_error extends Exit_error {
16 | constructor(...params) {
17 | super(...params);
18 | this.name = "Hangup_error";
19 | }
20 | }
21 |
22 | class Timeout_error extends Exit_error {
23 | constructor(...params) {
24 | // Pass remaining arguments (including vendor specific ones) to parent constructor
25 | super(...params);
26 | this.name = "Timeout_error";
27 | }
28 | }
29 |
30 | module.exports = {
31 | Hangup_error,
32 | Timeout_error,
33 | Exit_error
34 | };
--------------------------------------------------------------------------------
/lib/response_functions.js:
--------------------------------------------------------------------------------
1 | const data_type = {
2 |
3 | "file": "f",
4 | "text": "t",
5 | "speech": "s",
6 | "digits": "d",
7 | "number": "n",
8 | "alpha": "a",
9 | "zmanim": "z",
10 | "go_to_folder": "g",
11 | "system_message": "m",
12 | "music_on_hold": "h",
13 | "date": "date",
14 | "dateH": "dateH"
15 | };
16 |
17 | const Response_Functions = function () {
18 | this.make_read_response = function (massage, mode, options, value_num = 1) {
19 | if (typeof massage != "object") {
20 | throw new Error("Data is undefined");
21 | }
22 |
23 | if (!options.val_name) {
24 | options.val_name = "val_" + value_num;
25 | }
26 |
27 | let data_str = make_read_data(massage);
28 | let res;
29 |
30 | switch (mode) {
31 | case "tap":
32 | res = make_tap_mode_request(data_str, options);
33 | break;
34 | case "stt":
35 | res = make_stt_mode_request(data_str, options);
36 | break;
37 | case "record":
38 | res = make_record_mode_request(data_str, options);
39 | break;
40 | default:
41 | throw new Error("mode parameter is Invalid");
42 | }
43 |
44 | return [res, options.val_name];
45 | };
46 |
47 | this.make_id_list_message_response = function (data) {
48 | return "id_list_message=" + make_read_data(data) + "&";
49 | };
50 |
51 | function check_text(data) {
52 | const rgx = /[.\-"'&|]/g;
53 | for (const msg of data) {
54 | if (rgx.test(msg.data)) {
55 | throw new Error(`'${msg.data}' has invalid characters for yemot`);
56 | }
57 | }
58 | }
59 |
60 | const make_read_data = function (data) {
61 | check_text(data);
62 | let res = "";
63 | let i = 1;
64 | for (const value of data) {
65 | res += i > 1 ? "." : "";
66 | if (!value.type) {
67 | throw new Error(`in ${JSON.stringify(value)} type is missing!`);
68 | } else if (!data_type[value.type]) {
69 | throw new Error(`${value.type} is not a valid type!`);
70 | } else {
71 | res += data_type[value.type] + "-";
72 | }
73 |
74 | if (value.type === "zmanim") {
75 | if (typeof value.data !== "object") throw new Error("in \"zmanim\" type, data should be an object");
76 | let difference_splitted;
77 | if (value.data.difference) {
78 | if (!/(-|\+)[YMDHmSs]\d+/.test(value.data.difference)) throw new Error("difference is invalid");
79 | difference_splitted = value.data.difference.match(/(-|\+)(.+)/);
80 | }
81 | res += [
82 | value.data.time || "T",
83 | value.data.zone || "IL/Jerusalem",
84 | difference_splitted ? difference_splitted[1] : "",
85 | difference_splitted ? difference_splitted[2] : ""
86 | ].join(",");
87 | } else if (value.type === "system_message") {
88 | const msgId = String(value.data).replace("M", "");
89 | if (!Number.isInteger(parseInt(msgId))) {
90 | throw new Error(`${value.data} is not a valid system message id!`);
91 | }
92 | res += msgId;
93 | } else {
94 | res += value.data;
95 | }
96 | i++;
97 | if (value.type === "go_to_folder") break;
98 | }
99 | return res;
100 | };
101 |
102 | const make_tap_mode_request = function (data_str, options) {
103 | const values = [
104 | options.val_name,
105 | (options.re_enter_if_exists || false) ? "yes" : "no",
106 | (options.max || "*"),
107 | (options.min || "1"),
108 | (options.sec_wait || 7),
109 | (options.play_ok_mode || "No"),
110 | (options.block_asterisk || false) ? "yes" : "no",
111 | (options.block_zero || false) ? "yes" : "no",
112 | (options.replace_char || ""),
113 | options.digits_allowed ? options.digits_allowed.join(".") : "", // [1, 14]
114 | (options.amount_attempts || ""),
115 | (options.read_none || false) ? "Ok" : "no",
116 | (options.read_none_var || ""),
117 | (options.block_change_type_lang ? "InsertLettersTypeChangeNo" : "")
118 | ];
119 | return `read=${data_str}=${values.join(",")}`;
120 | };
121 |
122 | const make_stt_mode_request = function (data_str, options) {
123 | const values = [
124 | options.val_name,
125 | (options.re_enter_if_exists || false) ? "yes" : "no",
126 | "voice",
127 | (options.lang || ""),
128 | (options.allow_typing || false) ? "yes" : "no"
129 | ];
130 | return `read=${data_str}=${values.join(",")}`;
131 | };
132 |
133 | const make_record_mode_request = function (data_str, options) {
134 | const values = [
135 | options.val_name,
136 | (options.re_enter_if_exists || false) ? "yes" : "no",
137 | "record",
138 | (options.path || ""),
139 | (options.file_name || ""),
140 | (options.record_ok === false) ? "no" : "yes",
141 | (options.record_hangup || false) ? "yes" : "no",
142 | (options.record_attach || false) ? "yes" : "no",
143 | (options.lenght_min || ""),
144 | (options.lenght_max || "")
145 | ];
146 | return `read=${data_str}=${values.join(",")}`;
147 | };
148 | };
149 |
150 | module.exports = Response_Functions;
--------------------------------------------------------------------------------
/lib/yemot_router.js:
--------------------------------------------------------------------------------
1 | const { Hangup_error, Timeout_error, Exit_error } = require("./errors.js");
2 | const check_request = require("./check_request");
3 | const Call = require("./call");
4 |
5 | const Router = require("express").Router;
6 | const EventEmitter = require("events");
7 |
8 |
9 | function Yemot_router(opt = { timeout: 0 }) {
10 | const router = Router();
11 | const events = new EventEmitter();
12 | const active_calls = {};
13 |
14 | Object.setPrototypeOf(Router, Yemot_router);
15 |
16 | router.add_fn = function (path, fn) {
17 | this.all(path, (req, res, next) => {
18 | if (!check_request(req.query)) {
19 | return res.json({ message: "request not valid" });
20 | }
21 |
22 | req.query = check_query(req.query);
23 |
24 | const call_id = req.query.ApiCallId;
25 |
26 | const [current_call, is_new_call] = get_current_call(call_id);
27 |
28 | current_call.get_req_vals(req, res, next);
29 |
30 | if (is_new_call) {
31 | new_call(fn, call_id, current_call);
32 | } else {
33 | events.emit(call_id, is_hangup(current_call.query));
34 | }
35 | });
36 | };
37 |
38 | async function new_call(fn, call_id, call) {
39 | try {
40 | const r = await fn(call);
41 | on_call_end(call_id, r);
42 | } catch (error) {
43 |
44 | if (error instanceof Hangup_error) {
45 | on_hangup(call_id);
46 |
47 | } else if (error instanceof Timeout_error) {
48 | on_timeout(call_id);
49 |
50 | } else if (error instanceof Exit_error) {
51 | on_exit(call_id);
52 |
53 | } else {
54 | throw error;
55 | }
56 | }
57 | }
58 |
59 | function on_call_end(call_id, r) {
60 | delete active_calls[call_id];
61 | console.log(call_id, "deleted", r);
62 | }
63 |
64 | function on_exit(call_id) {
65 | delete active_calls[call_id];
66 | console.log(call_id, "exit");
67 | }
68 |
69 | function on_hangup(call_id) {
70 | delete active_calls[call_id];
71 | console.log(call_id, "hangup");
72 | }
73 |
74 | function on_timeout(call_id) {
75 | delete active_calls[call_id];
76 | console.error(call_id, "is timeout!");
77 | }
78 |
79 | function is_hangup(query) {
80 | if (query.hangup && query.hangup === "yes") {
81 | return true;
82 | }
83 | return false;
84 | }
85 |
86 | function get_current_call(call_id) {
87 | function make_new_call() {
88 | const call = new Call(call_id, events, opt.timeout);
89 | active_calls[call_id] = call;
90 | console.log(call_id + " is new");
91 | return call;
92 | }
93 |
94 | let is_new_call = false;
95 | let current_call = active_calls[call_id];
96 | if (!current_call) {
97 | is_new_call = true;
98 | current_call = make_new_call();
99 | }
100 | return [current_call, is_new_call];
101 |
102 | }
103 |
104 | /** אם ערך מסויים יש כמה פעמים, שייקבע רק האחרון **/
105 | function check_query(query) {
106 | if (typeof query === "object") {
107 | let iterator;
108 | for (const key of Object.keys(query)) {
109 | iterator = query[key];
110 | if (typeof iterator === "object") {
111 | query[key] = iterator[(iterator.length - 1)];
112 | }
113 | }
114 | }
115 | return query;
116 | }
117 |
118 | return router;
119 | }
120 |
121 | Yemot_router.Yemot_router = Yemot_router;
122 | Yemot_router.errors = { Hangup_error, Timeout_error, Exit_error };
123 |
124 | module.exports = Yemot_router;
125 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "yemot-router",
3 | "version": "4.4.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@babel/code-frame": {
8 | "version": "7.10.4",
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
10 | "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
11 | "requires": {
12 | "@babel/highlight": "^7.10.4"
13 | }
14 | },
15 | "@babel/helper-validator-identifier": {
16 | "version": "7.10.4",
17 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
18 | "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
19 | },
20 | "@babel/highlight": {
21 | "version": "7.10.4",
22 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
23 | "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
24 | "requires": {
25 | "@babel/helper-validator-identifier": "^7.10.4",
26 | "chalk": "^2.0.0",
27 | "js-tokens": "^4.0.0"
28 | }
29 | },
30 | "@types/color-name": {
31 | "version": "1.1.1",
32 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
33 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="
34 | },
35 | "acorn": {
36 | "version": "7.3.1",
37 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz",
38 | "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA=="
39 | },
40 | "acorn-jsx": {
41 | "version": "5.2.0",
42 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
43 | "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ=="
44 | },
45 | "ajv": {
46 | "version": "6.12.3",
47 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
48 | "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
49 | "requires": {
50 | "fast-deep-equal": "^3.1.1",
51 | "fast-json-stable-stringify": "^2.0.0",
52 | "json-schema-traverse": "^0.4.1",
53 | "uri-js": "^4.2.2"
54 | }
55 | },
56 | "ansi-escapes": {
57 | "version": "4.3.1",
58 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
59 | "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
60 | "requires": {
61 | "type-fest": "^0.11.0"
62 | },
63 | "dependencies": {
64 | "type-fest": {
65 | "version": "0.11.0",
66 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
67 | "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ=="
68 | }
69 | }
70 | },
71 | "ansi-regex": {
72 | "version": "5.0.1",
73 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
74 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
75 | },
76 | "ansi-styles": {
77 | "version": "3.2.1",
78 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
79 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
80 | "requires": {
81 | "color-convert": "^1.9.0"
82 | }
83 | },
84 | "argparse": {
85 | "version": "1.0.10",
86 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
87 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
88 | "requires": {
89 | "sprintf-js": "~1.0.2"
90 | }
91 | },
92 | "astral-regex": {
93 | "version": "1.0.0",
94 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
95 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg=="
96 | },
97 | "balanced-match": {
98 | "version": "1.0.0",
99 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
100 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
101 | },
102 | "brace-expansion": {
103 | "version": "1.1.11",
104 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
105 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
106 | "requires": {
107 | "balanced-match": "^1.0.0",
108 | "concat-map": "0.0.1"
109 | }
110 | },
111 | "callsites": {
112 | "version": "3.1.0",
113 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
114 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
115 | },
116 | "chalk": {
117 | "version": "2.4.2",
118 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
119 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
120 | "requires": {
121 | "ansi-styles": "^3.2.1",
122 | "escape-string-regexp": "^1.0.5",
123 | "supports-color": "^5.3.0"
124 | }
125 | },
126 | "chardet": {
127 | "version": "0.7.0",
128 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
129 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
130 | },
131 | "cli-cursor": {
132 | "version": "3.1.0",
133 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
134 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
135 | "requires": {
136 | "restore-cursor": "^3.1.0"
137 | }
138 | },
139 | "cli-width": {
140 | "version": "3.0.0",
141 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
142 | "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw=="
143 | },
144 | "color-convert": {
145 | "version": "1.9.3",
146 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
147 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
148 | "requires": {
149 | "color-name": "1.1.3"
150 | }
151 | },
152 | "color-name": {
153 | "version": "1.1.3",
154 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
155 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
156 | },
157 | "concat-map": {
158 | "version": "0.0.1",
159 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
160 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
161 | },
162 | "cross-spawn": {
163 | "version": "6.0.5",
164 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
165 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
166 | "requires": {
167 | "nice-try": "^1.0.4",
168 | "path-key": "^2.0.1",
169 | "semver": "^5.5.0",
170 | "shebang-command": "^1.2.0",
171 | "which": "^1.2.9"
172 | },
173 | "dependencies": {
174 | "semver": {
175 | "version": "5.7.1",
176 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
177 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
178 | }
179 | }
180 | },
181 | "debug": {
182 | "version": "4.1.1",
183 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
184 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
185 | "requires": {
186 | "ms": "^2.1.1"
187 | }
188 | },
189 | "deep-is": {
190 | "version": "0.1.3",
191 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
192 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
193 | },
194 | "doctrine": {
195 | "version": "3.0.0",
196 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
197 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
198 | "requires": {
199 | "esutils": "^2.0.2"
200 | }
201 | },
202 | "emoji-regex": {
203 | "version": "8.0.0",
204 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
205 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
206 | },
207 | "escape-string-regexp": {
208 | "version": "1.0.5",
209 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
210 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
211 | },
212 | "eslint": {
213 | "version": "6.8.0",
214 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
215 | "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
216 | "requires": {
217 | "@babel/code-frame": "^7.0.0",
218 | "ajv": "^6.10.0",
219 | "chalk": "^2.1.0",
220 | "cross-spawn": "^6.0.5",
221 | "debug": "^4.0.1",
222 | "doctrine": "^3.0.0",
223 | "eslint-scope": "^5.0.0",
224 | "eslint-utils": "^1.4.3",
225 | "eslint-visitor-keys": "^1.1.0",
226 | "espree": "^6.1.2",
227 | "esquery": "^1.0.1",
228 | "esutils": "^2.0.2",
229 | "file-entry-cache": "^5.0.1",
230 | "functional-red-black-tree": "^1.0.1",
231 | "glob-parent": "^5.0.0",
232 | "globals": "^12.1.0",
233 | "ignore": "^4.0.6",
234 | "import-fresh": "^3.0.0",
235 | "imurmurhash": "^0.1.4",
236 | "inquirer": "^7.0.0",
237 | "is-glob": "^4.0.0",
238 | "js-yaml": "^3.13.1",
239 | "json-stable-stringify-without-jsonify": "^1.0.1",
240 | "levn": "^0.3.0",
241 | "lodash": "^4.17.14",
242 | "minimatch": "^3.0.4",
243 | "mkdirp": "^0.5.1",
244 | "natural-compare": "^1.4.0",
245 | "optionator": "^0.8.3",
246 | "progress": "^2.0.0",
247 | "regexpp": "^2.0.1",
248 | "semver": "^6.1.2",
249 | "strip-ansi": "^5.2.0",
250 | "strip-json-comments": "^3.0.1",
251 | "table": "^5.2.3",
252 | "text-table": "^0.2.0",
253 | "v8-compile-cache": "^2.0.3"
254 | }
255 | },
256 | "eslint-scope": {
257 | "version": "5.1.0",
258 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz",
259 | "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==",
260 | "requires": {
261 | "esrecurse": "^4.1.0",
262 | "estraverse": "^4.1.1"
263 | }
264 | },
265 | "eslint-utils": {
266 | "version": "1.4.3",
267 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
268 | "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
269 | "requires": {
270 | "eslint-visitor-keys": "^1.1.0"
271 | }
272 | },
273 | "eslint-visitor-keys": {
274 | "version": "1.3.0",
275 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
276 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ=="
277 | },
278 | "espree": {
279 | "version": "6.2.1",
280 | "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
281 | "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
282 | "requires": {
283 | "acorn": "^7.1.1",
284 | "acorn-jsx": "^5.2.0",
285 | "eslint-visitor-keys": "^1.1.0"
286 | }
287 | },
288 | "esprima": {
289 | "version": "4.0.1",
290 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
291 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
292 | },
293 | "esquery": {
294 | "version": "1.3.1",
295 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz",
296 | "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==",
297 | "requires": {
298 | "estraverse": "^5.1.0"
299 | },
300 | "dependencies": {
301 | "estraverse": {
302 | "version": "5.1.0",
303 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz",
304 | "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw=="
305 | }
306 | }
307 | },
308 | "esrecurse": {
309 | "version": "4.2.1",
310 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
311 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
312 | "requires": {
313 | "estraverse": "^4.1.0"
314 | }
315 | },
316 | "estraverse": {
317 | "version": "4.3.0",
318 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
319 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
320 | },
321 | "esutils": {
322 | "version": "2.0.3",
323 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
324 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
325 | },
326 | "express": {
327 | "version": "4.17.1",
328 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
329 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
330 | "requires": {
331 | "accepts": "~1.3.7",
332 | "array-flatten": "1.1.1",
333 | "body-parser": "1.19.0",
334 | "content-disposition": "0.5.3",
335 | "content-type": "~1.0.4",
336 | "cookie": "0.4.0",
337 | "cookie-signature": "1.0.6",
338 | "debug": "2.6.9",
339 | "depd": "~1.1.2",
340 | "encodeurl": "~1.0.2",
341 | "escape-html": "~1.0.3",
342 | "etag": "~1.8.1",
343 | "finalhandler": "~1.1.2",
344 | "fresh": "0.5.2",
345 | "merge-descriptors": "1.0.1",
346 | "methods": "~1.1.2",
347 | "on-finished": "~2.3.0",
348 | "parseurl": "~1.3.3",
349 | "path-to-regexp": "0.1.7",
350 | "proxy-addr": "~2.0.5",
351 | "qs": "6.7.0",
352 | "range-parser": "~1.2.1",
353 | "safe-buffer": "5.1.2",
354 | "send": "0.17.1",
355 | "serve-static": "1.14.1",
356 | "setprototypeof": "1.1.1",
357 | "statuses": "~1.5.0",
358 | "type-is": "~1.6.18",
359 | "utils-merge": "1.0.1",
360 | "vary": "~1.1.2"
361 | },
362 | "dependencies": {
363 | "accepts": {
364 | "version": "1.3.7",
365 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
366 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
367 | "requires": {
368 | "mime-types": "~2.1.24",
369 | "negotiator": "0.6.2"
370 | }
371 | },
372 | "array-flatten": {
373 | "version": "1.1.1",
374 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
375 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
376 | },
377 | "body-parser": {
378 | "version": "1.19.0",
379 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
380 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
381 | "requires": {
382 | "bytes": "3.1.0",
383 | "content-type": "~1.0.4",
384 | "debug": "2.6.9",
385 | "depd": "~1.1.2",
386 | "http-errors": "1.7.2",
387 | "iconv-lite": "0.4.24",
388 | "on-finished": "~2.3.0",
389 | "qs": "6.7.0",
390 | "raw-body": "2.4.0",
391 | "type-is": "~1.6.17"
392 | }
393 | },
394 | "bytes": {
395 | "version": "3.1.0",
396 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
397 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
398 | },
399 | "content-disposition": {
400 | "version": "0.5.3",
401 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
402 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
403 | "requires": {
404 | "safe-buffer": "5.1.2"
405 | }
406 | },
407 | "content-type": {
408 | "version": "1.0.4",
409 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
410 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
411 | },
412 | "cookie": {
413 | "version": "0.4.0",
414 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
415 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
416 | },
417 | "cookie-signature": {
418 | "version": "1.0.6",
419 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
420 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
421 | },
422 | "debug": {
423 | "version": "2.6.9",
424 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
425 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
426 | "requires": {
427 | "ms": "2.0.0"
428 | }
429 | },
430 | "depd": {
431 | "version": "1.1.2",
432 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
433 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
434 | },
435 | "destroy": {
436 | "version": "1.0.4",
437 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
438 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
439 | },
440 | "ee-first": {
441 | "version": "1.1.1",
442 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
443 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
444 | },
445 | "encodeurl": {
446 | "version": "1.0.2",
447 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
448 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
449 | },
450 | "escape-html": {
451 | "version": "1.0.3",
452 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
453 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
454 | },
455 | "etag": {
456 | "version": "1.8.1",
457 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
458 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
459 | },
460 | "finalhandler": {
461 | "version": "1.1.2",
462 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
463 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
464 | "requires": {
465 | "debug": "2.6.9",
466 | "encodeurl": "~1.0.2",
467 | "escape-html": "~1.0.3",
468 | "on-finished": "~2.3.0",
469 | "parseurl": "~1.3.3",
470 | "statuses": "~1.5.0",
471 | "unpipe": "~1.0.0"
472 | }
473 | },
474 | "forwarded": {
475 | "version": "0.1.2",
476 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
477 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
478 | },
479 | "fresh": {
480 | "version": "0.5.2",
481 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
482 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
483 | },
484 | "http-errors": {
485 | "version": "1.7.2",
486 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
487 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
488 | "requires": {
489 | "depd": "~1.1.2",
490 | "inherits": "2.0.3",
491 | "setprototypeof": "1.1.1",
492 | "statuses": ">= 1.5.0 < 2",
493 | "toidentifier": "1.0.0"
494 | }
495 | },
496 | "iconv-lite": {
497 | "version": "0.4.24",
498 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
499 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
500 | "requires": {
501 | "safer-buffer": ">= 2.1.2 < 3"
502 | }
503 | },
504 | "inherits": {
505 | "version": "2.0.3",
506 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
507 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
508 | },
509 | "ipaddr.js": {
510 | "version": "1.9.0",
511 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
512 | "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
513 | },
514 | "media-typer": {
515 | "version": "0.3.0",
516 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
517 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
518 | },
519 | "merge-descriptors": {
520 | "version": "1.0.1",
521 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
522 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
523 | },
524 | "methods": {
525 | "version": "1.1.2",
526 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
527 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
528 | },
529 | "mime": {
530 | "version": "1.6.0",
531 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
532 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
533 | },
534 | "mime-db": {
535 | "version": "1.40.0",
536 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
537 | "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
538 | },
539 | "mime-types": {
540 | "version": "2.1.24",
541 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
542 | "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
543 | "requires": {
544 | "mime-db": "1.40.0"
545 | }
546 | },
547 | "ms": {
548 | "version": "2.0.0",
549 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
550 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
551 | },
552 | "negotiator": {
553 | "version": "0.6.2",
554 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
555 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
556 | },
557 | "on-finished": {
558 | "version": "2.3.0",
559 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
560 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
561 | "requires": {
562 | "ee-first": "1.1.1"
563 | }
564 | },
565 | "parseurl": {
566 | "version": "1.3.3",
567 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
568 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
569 | },
570 | "path-to-regexp": {
571 | "version": "0.1.7",
572 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
573 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
574 | },
575 | "proxy-addr": {
576 | "version": "2.0.5",
577 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
578 | "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
579 | "requires": {
580 | "forwarded": "~0.1.2",
581 | "ipaddr.js": "1.9.0"
582 | }
583 | },
584 | "qs": {
585 | "version": "6.7.0",
586 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
587 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
588 | },
589 | "range-parser": {
590 | "version": "1.2.1",
591 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
592 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
593 | },
594 | "raw-body": {
595 | "version": "2.4.0",
596 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
597 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
598 | "requires": {
599 | "bytes": "3.1.0",
600 | "http-errors": "1.7.2",
601 | "iconv-lite": "0.4.24",
602 | "unpipe": "1.0.0"
603 | }
604 | },
605 | "safe-buffer": {
606 | "version": "5.1.2",
607 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
608 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
609 | },
610 | "safer-buffer": {
611 | "version": "2.1.2",
612 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
613 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
614 | },
615 | "send": {
616 | "version": "0.17.1",
617 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
618 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
619 | "requires": {
620 | "debug": "2.6.9",
621 | "depd": "~1.1.2",
622 | "destroy": "~1.0.4",
623 | "encodeurl": "~1.0.2",
624 | "escape-html": "~1.0.3",
625 | "etag": "~1.8.1",
626 | "fresh": "0.5.2",
627 | "http-errors": "~1.7.2",
628 | "mime": "1.6.0",
629 | "ms": "2.1.1",
630 | "on-finished": "~2.3.0",
631 | "range-parser": "~1.2.1",
632 | "statuses": "~1.5.0"
633 | },
634 | "dependencies": {
635 | "ms": {
636 | "version": "2.1.1",
637 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
638 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
639 | }
640 | }
641 | },
642 | "serve-static": {
643 | "version": "1.14.1",
644 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
645 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
646 | "requires": {
647 | "encodeurl": "~1.0.2",
648 | "escape-html": "~1.0.3",
649 | "parseurl": "~1.3.3",
650 | "send": "0.17.1"
651 | }
652 | },
653 | "setprototypeof": {
654 | "version": "1.1.1",
655 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
656 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
657 | },
658 | "statuses": {
659 | "version": "1.5.0",
660 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
661 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
662 | },
663 | "toidentifier": {
664 | "version": "1.0.0",
665 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
666 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
667 | },
668 | "type-is": {
669 | "version": "1.6.18",
670 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
671 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
672 | "requires": {
673 | "media-typer": "0.3.0",
674 | "mime-types": "~2.1.24"
675 | }
676 | },
677 | "unpipe": {
678 | "version": "1.0.0",
679 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
680 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
681 | },
682 | "utils-merge": {
683 | "version": "1.0.1",
684 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
685 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
686 | },
687 | "vary": {
688 | "version": "1.1.2",
689 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
690 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
691 | }
692 | }
693 | },
694 | "external-editor": {
695 | "version": "3.1.0",
696 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
697 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
698 | "requires": {
699 | "chardet": "^0.7.0",
700 | "iconv-lite": "^0.4.24",
701 | "tmp": "^0.0.33"
702 | }
703 | },
704 | "fast-deep-equal": {
705 | "version": "3.1.3",
706 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
707 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
708 | },
709 | "fast-json-stable-stringify": {
710 | "version": "2.1.0",
711 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
712 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
713 | },
714 | "fast-levenshtein": {
715 | "version": "2.0.6",
716 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
717 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
718 | },
719 | "figures": {
720 | "version": "3.2.0",
721 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
722 | "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
723 | "requires": {
724 | "escape-string-regexp": "^1.0.5"
725 | }
726 | },
727 | "file-entry-cache": {
728 | "version": "5.0.1",
729 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
730 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
731 | "requires": {
732 | "flat-cache": "^2.0.1"
733 | }
734 | },
735 | "flat-cache": {
736 | "version": "2.0.1",
737 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
738 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
739 | "requires": {
740 | "flatted": "^2.0.0",
741 | "rimraf": "2.6.3",
742 | "write": "1.0.3"
743 | }
744 | },
745 | "flatted": {
746 | "version": "2.0.2",
747 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
748 | "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA=="
749 | },
750 | "fs.realpath": {
751 | "version": "1.0.0",
752 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
753 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
754 | },
755 | "functional-red-black-tree": {
756 | "version": "1.0.1",
757 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
758 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
759 | },
760 | "glob": {
761 | "version": "7.1.6",
762 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
763 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
764 | "requires": {
765 | "fs.realpath": "^1.0.0",
766 | "inflight": "^1.0.4",
767 | "inherits": "2",
768 | "minimatch": "^3.0.4",
769 | "once": "^1.3.0",
770 | "path-is-absolute": "^1.0.0"
771 | }
772 | },
773 | "glob-parent": {
774 | "version": "5.1.2",
775 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
776 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
777 | "requires": {
778 | "is-glob": "^4.0.1"
779 | }
780 | },
781 | "globals": {
782 | "version": "12.4.0",
783 | "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
784 | "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
785 | "requires": {
786 | "type-fest": "^0.8.1"
787 | }
788 | },
789 | "has-flag": {
790 | "version": "3.0.0",
791 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
792 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
793 | },
794 | "iconv-lite": {
795 | "version": "0.4.24",
796 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
797 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
798 | "requires": {
799 | "safer-buffer": ">= 2.1.2 < 3"
800 | }
801 | },
802 | "ignore": {
803 | "version": "4.0.6",
804 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
805 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg=="
806 | },
807 | "import-fresh": {
808 | "version": "3.2.1",
809 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
810 | "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
811 | "requires": {
812 | "parent-module": "^1.0.0",
813 | "resolve-from": "^4.0.0"
814 | }
815 | },
816 | "imurmurhash": {
817 | "version": "0.1.4",
818 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
819 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
820 | },
821 | "inflight": {
822 | "version": "1.0.6",
823 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
824 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
825 | "requires": {
826 | "once": "^1.3.0",
827 | "wrappy": "1"
828 | }
829 | },
830 | "inherits": {
831 | "version": "2.0.4",
832 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
833 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
834 | },
835 | "inquirer": {
836 | "version": "7.3.3",
837 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
838 | "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
839 | "requires": {
840 | "ansi-escapes": "^4.2.1",
841 | "chalk": "^4.1.0",
842 | "cli-cursor": "^3.1.0",
843 | "cli-width": "^3.0.0",
844 | "external-editor": "^3.0.3",
845 | "figures": "^3.0.0",
846 | "lodash": "^4.17.19",
847 | "mute-stream": "0.0.8",
848 | "run-async": "^2.4.0",
849 | "rxjs": "^6.6.0",
850 | "string-width": "^4.1.0",
851 | "strip-ansi": "^6.0.0",
852 | "through": "^2.3.6"
853 | },
854 | "dependencies": {
855 | "ansi-styles": {
856 | "version": "4.2.1",
857 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
858 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
859 | "requires": {
860 | "@types/color-name": "^1.1.1",
861 | "color-convert": "^2.0.1"
862 | }
863 | },
864 | "chalk": {
865 | "version": "4.1.0",
866 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
867 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
868 | "requires": {
869 | "ansi-styles": "^4.1.0",
870 | "supports-color": "^7.1.0"
871 | }
872 | },
873 | "color-convert": {
874 | "version": "2.0.1",
875 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
876 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
877 | "requires": {
878 | "color-name": "~1.1.4"
879 | }
880 | },
881 | "color-name": {
882 | "version": "1.1.4",
883 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
884 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
885 | },
886 | "has-flag": {
887 | "version": "4.0.0",
888 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
889 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
890 | },
891 | "strip-ansi": {
892 | "version": "6.0.0",
893 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
894 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
895 | "requires": {
896 | "ansi-regex": "^5.0.0"
897 | }
898 | },
899 | "supports-color": {
900 | "version": "7.1.0",
901 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
902 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
903 | "requires": {
904 | "has-flag": "^4.0.0"
905 | }
906 | }
907 | }
908 | },
909 | "is-extglob": {
910 | "version": "2.1.1",
911 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
912 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
913 | },
914 | "is-fullwidth-code-point": {
915 | "version": "3.0.0",
916 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
917 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
918 | },
919 | "is-glob": {
920 | "version": "4.0.1",
921 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
922 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
923 | "requires": {
924 | "is-extglob": "^2.1.1"
925 | }
926 | },
927 | "isexe": {
928 | "version": "2.0.0",
929 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
930 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
931 | },
932 | "js-tokens": {
933 | "version": "4.0.0",
934 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
935 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
936 | },
937 | "js-yaml": {
938 | "version": "3.14.0",
939 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
940 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
941 | "requires": {
942 | "argparse": "^1.0.7",
943 | "esprima": "^4.0.0"
944 | }
945 | },
946 | "json-schema-traverse": {
947 | "version": "0.4.1",
948 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
949 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
950 | },
951 | "json-stable-stringify-without-jsonify": {
952 | "version": "1.0.1",
953 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
954 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
955 | },
956 | "levn": {
957 | "version": "0.3.0",
958 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
959 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
960 | "requires": {
961 | "prelude-ls": "~1.1.2",
962 | "type-check": "~0.3.2"
963 | }
964 | },
965 | "lodash": {
966 | "version": "4.17.21",
967 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
968 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
969 | },
970 | "mimic-fn": {
971 | "version": "2.1.0",
972 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
973 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
974 | },
975 | "minimatch": {
976 | "version": "3.0.4",
977 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
978 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
979 | "requires": {
980 | "brace-expansion": "^1.1.7"
981 | }
982 | },
983 | "minimist": {
984 | "version": "1.2.6",
985 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
986 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
987 | },
988 | "mkdirp": {
989 | "version": "0.5.5",
990 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
991 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
992 | "requires": {
993 | "minimist": "^1.2.5"
994 | }
995 | },
996 | "ms": {
997 | "version": "2.1.2",
998 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
999 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1000 | },
1001 | "mute-stream": {
1002 | "version": "0.0.8",
1003 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
1004 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
1005 | },
1006 | "natural-compare": {
1007 | "version": "1.4.0",
1008 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
1009 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
1010 | },
1011 | "nice-try": {
1012 | "version": "1.0.5",
1013 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
1014 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
1015 | },
1016 | "once": {
1017 | "version": "1.4.0",
1018 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1019 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1020 | "requires": {
1021 | "wrappy": "1"
1022 | }
1023 | },
1024 | "onetime": {
1025 | "version": "5.1.0",
1026 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
1027 | "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
1028 | "requires": {
1029 | "mimic-fn": "^2.1.0"
1030 | }
1031 | },
1032 | "optionator": {
1033 | "version": "0.8.3",
1034 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
1035 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
1036 | "requires": {
1037 | "deep-is": "~0.1.3",
1038 | "fast-levenshtein": "~2.0.6",
1039 | "levn": "~0.3.0",
1040 | "prelude-ls": "~1.1.2",
1041 | "type-check": "~0.3.2",
1042 | "word-wrap": "~1.2.3"
1043 | }
1044 | },
1045 | "os-tmpdir": {
1046 | "version": "1.0.2",
1047 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1048 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
1049 | },
1050 | "parent-module": {
1051 | "version": "1.0.1",
1052 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1053 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1054 | "requires": {
1055 | "callsites": "^3.0.0"
1056 | }
1057 | },
1058 | "path-is-absolute": {
1059 | "version": "1.0.1",
1060 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1061 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
1062 | },
1063 | "path-key": {
1064 | "version": "2.0.1",
1065 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
1066 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
1067 | },
1068 | "prelude-ls": {
1069 | "version": "1.1.2",
1070 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
1071 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
1072 | },
1073 | "progress": {
1074 | "version": "2.0.3",
1075 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
1076 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
1077 | },
1078 | "punycode": {
1079 | "version": "2.1.1",
1080 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1081 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
1082 | },
1083 | "regexpp": {
1084 | "version": "2.0.1",
1085 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
1086 | "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw=="
1087 | },
1088 | "resolve-from": {
1089 | "version": "4.0.0",
1090 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1091 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
1092 | },
1093 | "restore-cursor": {
1094 | "version": "3.1.0",
1095 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
1096 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
1097 | "requires": {
1098 | "onetime": "^5.1.0",
1099 | "signal-exit": "^3.0.2"
1100 | }
1101 | },
1102 | "rimraf": {
1103 | "version": "2.6.3",
1104 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
1105 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
1106 | "requires": {
1107 | "glob": "^7.1.3"
1108 | }
1109 | },
1110 | "run-async": {
1111 | "version": "2.4.1",
1112 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
1113 | "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ=="
1114 | },
1115 | "rxjs": {
1116 | "version": "6.6.0",
1117 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz",
1118 | "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==",
1119 | "requires": {
1120 | "tslib": "^1.9.0"
1121 | }
1122 | },
1123 | "safer-buffer": {
1124 | "version": "2.1.2",
1125 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1126 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1127 | },
1128 | "semver": {
1129 | "version": "6.3.0",
1130 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1131 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
1132 | },
1133 | "shebang-command": {
1134 | "version": "1.2.0",
1135 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
1136 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
1137 | "requires": {
1138 | "shebang-regex": "^1.0.0"
1139 | }
1140 | },
1141 | "shebang-regex": {
1142 | "version": "1.0.0",
1143 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
1144 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
1145 | },
1146 | "signal-exit": {
1147 | "version": "3.0.3",
1148 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
1149 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
1150 | },
1151 | "slice-ansi": {
1152 | "version": "2.1.0",
1153 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
1154 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
1155 | "requires": {
1156 | "ansi-styles": "^3.2.0",
1157 | "astral-regex": "^1.0.0",
1158 | "is-fullwidth-code-point": "^2.0.0"
1159 | },
1160 | "dependencies": {
1161 | "is-fullwidth-code-point": {
1162 | "version": "2.0.0",
1163 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1164 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
1165 | }
1166 | }
1167 | },
1168 | "sprintf-js": {
1169 | "version": "1.0.3",
1170 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1171 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
1172 | },
1173 | "string-width": {
1174 | "version": "4.2.0",
1175 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
1176 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
1177 | "requires": {
1178 | "emoji-regex": "^8.0.0",
1179 | "is-fullwidth-code-point": "^3.0.0",
1180 | "strip-ansi": "^6.0.0"
1181 | },
1182 | "dependencies": {
1183 | "strip-ansi": {
1184 | "version": "6.0.0",
1185 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
1186 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
1187 | "requires": {
1188 | "ansi-regex": "^5.0.0"
1189 | }
1190 | }
1191 | }
1192 | },
1193 | "strip-ansi": {
1194 | "version": "5.2.0",
1195 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1196 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1197 | "requires": {
1198 | "ansi-regex": "^4.1.0"
1199 | },
1200 | "dependencies": {
1201 | "ansi-regex": {
1202 | "version": "4.1.1",
1203 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
1204 | "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="
1205 | }
1206 | }
1207 | },
1208 | "strip-json-comments": {
1209 | "version": "3.1.1",
1210 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
1211 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
1212 | },
1213 | "supports-color": {
1214 | "version": "5.5.0",
1215 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1216 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1217 | "requires": {
1218 | "has-flag": "^3.0.0"
1219 | }
1220 | },
1221 | "table": {
1222 | "version": "5.4.6",
1223 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
1224 | "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
1225 | "requires": {
1226 | "ajv": "^6.10.2",
1227 | "lodash": "^4.17.14",
1228 | "slice-ansi": "^2.1.0",
1229 | "string-width": "^3.0.0"
1230 | },
1231 | "dependencies": {
1232 | "emoji-regex": {
1233 | "version": "7.0.3",
1234 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
1235 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
1236 | },
1237 | "is-fullwidth-code-point": {
1238 | "version": "2.0.0",
1239 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1240 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
1241 | },
1242 | "string-width": {
1243 | "version": "3.1.0",
1244 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1245 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1246 | "requires": {
1247 | "emoji-regex": "^7.0.1",
1248 | "is-fullwidth-code-point": "^2.0.0",
1249 | "strip-ansi": "^5.1.0"
1250 | }
1251 | }
1252 | }
1253 | },
1254 | "text-table": {
1255 | "version": "0.2.0",
1256 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
1257 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
1258 | },
1259 | "through": {
1260 | "version": "2.3.8",
1261 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
1262 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
1263 | },
1264 | "tmp": {
1265 | "version": "0.0.33",
1266 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
1267 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
1268 | "requires": {
1269 | "os-tmpdir": "~1.0.2"
1270 | }
1271 | },
1272 | "tslib": {
1273 | "version": "1.13.0",
1274 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
1275 | "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
1276 | },
1277 | "type-check": {
1278 | "version": "0.3.2",
1279 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
1280 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
1281 | "requires": {
1282 | "prelude-ls": "~1.1.2"
1283 | }
1284 | },
1285 | "type-fest": {
1286 | "version": "0.8.1",
1287 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
1288 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
1289 | },
1290 | "uri-js": {
1291 | "version": "4.2.2",
1292 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
1293 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
1294 | "requires": {
1295 | "punycode": "^2.1.0"
1296 | }
1297 | },
1298 | "v8-compile-cache": {
1299 | "version": "2.1.1",
1300 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz",
1301 | "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ=="
1302 | },
1303 | "which": {
1304 | "version": "1.3.1",
1305 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1306 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1307 | "requires": {
1308 | "isexe": "^2.0.0"
1309 | }
1310 | },
1311 | "word-wrap": {
1312 | "version": "1.2.3",
1313 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
1314 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
1315 | },
1316 | "wrappy": {
1317 | "version": "1.0.2",
1318 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1319 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
1320 | },
1321 | "write": {
1322 | "version": "1.0.3",
1323 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
1324 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
1325 | "requires": {
1326 | "mkdirp": "^0.5.1"
1327 | }
1328 | }
1329 | }
1330 | }
1331 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "yemot-router",
3 | "version": "4.4.0",
4 | "description": "",
5 | "main": "index.js",
6 | "dependencies": {
7 | "eslint": "^6.8.0",
8 | "express": "^4.17.1"
9 | },
10 | "devDependencies": {},
11 | "scripts": {
12 | "test": "mocha"
13 | },
14 | "repository": {
15 | "type": "git",
16 | "url": "git+https://github.com/MusiCode1/yemot-router.git"
17 | },
18 | "author": "musicode1",
19 | "license": "ISC",
20 | "keywords": [
21 | "extends express-router",
22 | "yemot",
23 | "yemot-api"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/test/test.js:
--------------------------------------------------------------------------------
1 | const assert = require("assert");
2 |
3 | describe("testeing in yemot-router", () => {
4 |
5 | describe("testing response_functions", () => {
6 |
7 | const response_functions = new (require("../lib/response_functions"));
8 |
9 | describe("testeing make_read_response function", () => {
10 |
11 | const make_read_response = response_functions.make_read_response;
12 |
13 | let massage = [];
14 | let options = {};
15 | let r = "";
16 |
17 | it("", () => {
18 |
19 | massage = [{ type: "text", data: "hay, is text!" }];
20 |
21 | r = make_read_response(massage, "tap", options);
22 |
23 | assert.equal(r[0], "read=t-hay, is text!=,val_1,no,*,1,7,Number,false,true,,,,");
24 | assert.equal(r[1], "val_1");
25 | });
26 |
27 | });
28 | });
29 |
30 | });
--------------------------------------------------------------------------------