הספריה עוקבת אחרי Semantic Versioning (עברית).
- תיקון לטייפ של
asExpressRouter
- הוספת ולידציה למבנה ההודעה ב
id_list_message
(כמו בread
)
- תיקון טייפ עבור
typing_playback_mode
מסוגNumber
- עדכון הדוגמה (
example.js
) עם הדגמה לJSDoc שגורם ל-IDE להציג IntelliSense כראוי
תיקון טייפ עבור הודעה מסוג music_on_hold
- נוסף JSDoc לקובץ הטייפים עבור כל השיטות והאפשרויות, כולל הטמעת התיעוד של ימות המשיח
- תיקון הגדרת
removeInvalidChars
כברירת מחדל ברמת ראוטר/שיחה - שיפור התיעוד
- ברירת המחדל של ההגדרה
save_on_hangup
(record
) היתהtrue
, למרות שעל פי התיעוד היא אמורה להיותfalse
. כעת ברירת המחדל תוקנה והיאfalse
. - נוספה ההגדרה
use_records_recognition_engine
(stt
) שהופיע בתיעוד אך היתה חסרה בפועל - תיקון:
router.asExpressRouter
(TypeScript בלבד)
- תיקון באג עבור פרויקטים שכתובים ב-CommonJS
- מעבר לESM; עדיין נשלח לnpm קובץ cjs, כך שקוד CommonJS קיים לא אמור להישבר
-
- עדכון: בגרסה 6.1.2 תוקן באג עבור פרויקטים שכתובים ב-CommonJS
- שימוש בספריית stack-trace לצורך חילוץ מקור השגיאה, מה שמתקן מקרים מסוימים שהמקור לא זוהה כראוי
- נוספה החזרת בוליאני מ
deleteCall
האם השיחה היתה קיימת או לא - תוקנו הטייפים (DTS) עבור שימוש בספרייה עם טייפסקריפט - ראה README.md#TypeScript לבעיות ידועות
תיקון שינוי ברירות מחדל ברמת ראוטר (לאחר אתחול הראוטר).
- תיקון טעות בlogger שגרמה להדפסה מיותרת של לוגים מסוימים כאשר מוגדר timeout, גם כאשר
printLog
הוגדר לfalse
תיקונים במנגנון הטיפול בשגיאות:
- מניעת קריסה מתחת Node.js v18
- מניעת קריסה בשגיאות ללא stack
תוקנה בעיה בשרשור פעולות (prependToNextAction
) שבה רק הפעולה האחרונה בוצעה.
לפני שדרוג פרויקט קיים לגרסה זו יש לוודא שעדכנתם את הקוד הקיים לשינויים השוברים המפורטים להלן:
- הוסרו המשתנים
call.query
ו-call.body
, במקומם נוסף המשתנהcall.values
שמכיל את הquery/body בהתאמה, לפי שיטת הפניה מימות - GET או POST. - הוסרה האפשרות להוסיף פונקציית שיחה ע"י
add_fn
שסומנה כמיושנת בגרסה 5.0.0 ניתן להשתמש במקום בget
/post
/all
, כמו באקספרס רגיל. - הוסר המשתנה
call.params
, ניתן להשתמש בcall.req.params
במקום. - האפשרות
uncaughtErrorsHandler
שונתה לכתיב הנכון -uncaughtErrorHandler
(בלי ה-s). - הפרמטר הבוליאני של
id_list_message
שהגדיר האם לחבר את ההודעות לפעולה הבאה לצורך שרשור פעולות הוסר, ובמקומו יש להעביר אובייקט, עםprependToNextAction: true
, פרטים נוספים בתיעוד. - ההגדרות בכתיב השגוי
lenght_max
ו-lenght_max
שהוצאו משימוש בגרסה 5.0.0, הוסרו סופית ולא יעבדו יותר. - הסרת סוג השגיאה
InputValidationError
(בעת הצורך תיזרק שגיאה חדשה -CallError
). - שמות של אופציות רבות בread שלא היו מספיק ברורות שונו, וב2 מהן אף שונתה ברירת המחדל כדי להתאים לברירת המחדל של ימות המשיח.
להלן פירוט השינויים בשמות האופציות:
שם ההגדרה הישן | שם ההגדרה החדש | סוג | הערות |
---|---|---|---|
play_ok_mode |
typing_playback_mode |
*️⃣ הקשות | |
read_none |
allow_empty |
*️⃣ הקשות | |
read_none_var |
empty_val |
*️⃣ הקשות | |
block_change_type_lang |
block_change_keyboard |
*️⃣ הקשות | |
min |
min_digits |
*️⃣ הקשות | |
max |
max_digits |
*️⃣ הקשות | |
block_zero |
block_zero_key |
*️⃣ הקשות | |
block_asterisk |
block_asterisk_key |
*️⃣ הקשות | |
record_ok |
no_confirm_menu |
🎙️ הקלטה | ברירת מחדל משמיע תפריט אישור, הפוך מההגדרה הישנה, כלומר false בהגדרה הישנה שקול לברירת מחדל של החדשה - true |
record_hangup |
save_on_hangup |
🎙️ הקלטה | |
record_attach |
append_to_existing_file |
🎙️ הקלטה | |
length_min |
length_min |
🎙️ הקלטה | |
length_max |
max_length |
🎙️ הקלטה | |
allow_typing |
block_typing |
🗣️ זיהוי דיבור | ברירת מחדל מאפשר הקשות, הפוך מההגדרה הישנה |
use_records_engine |
use_records_recognition_engine |
🗣️ זיהוי דיבור | |
length_max |
max_length |
🗣️ זיהוי דיבור |
טיפ - ניתן להשתמש בביטוי הרגולרי הבא כדי לבצע חיפוש בכל הפרויקט בתוכנת VSCode, וכך למצוא בקלות הגדרות בשמות הישנים הדורשים טיפול:
play_ok_mode:| read_none:| read_none_var:| block_change_type_lang:| min:| max:| block_zero:| block_asterisk:| length_min:| length_max:
- מנגנון ברירות מחדל, ראה בפירוט בתיעוד.
- נוסף דגל להסרה שקטה של תווים לא חוקיים מהקראת טקסט -
removeInvalidChars
. ראו פירוט בתיעוד. - נוספה תמיכה להגדרות חסרות באפשרות זיהוי דיבור (stt)
- נוספה מתודת
call.hangup()
(קיצור לcall.go_to_folder('hangup')
) - ניתן להעביר לאתחול הראוטר אופציות עבור אקספרס ראוטר עצמו - ראה פירוט בתיעוד express.js על האופציות הזמינות.
- תמיכה בכל הפורמטים הקבילים של ספריית ms בהגדרת timeout
- ניתן להעביר בערך
empty_val
גם ערכים פרימיטיביים אחרים - לדוגמהnull
,false
או""
והערך שיתקבל מהread במקרה של חוסר תגובה יהיה הערך הפרימיטיבי שהוגדר. - מערכת אוונטים - כרגע האוונטים:
new_call
,call_hangup
,call_continue
. מקבל כארגומנט את מופע השיחה, ראה דוגמה.
- שיפורים פנימיים משמעותיים המונעים באגים והתנהגויות לא צפויות
- התיעוד עודכן ושופר משמעותית
תוקנה התמיכה בבקשות POST (ההגדרה api_url_post=yes
בשלוחה), שבהן הפרמטרים נשלחים בbody
ולא בquery
נוסף פרוקסי שמיירט נסיון גישה לreq.query בבקשות POST או לreq.body בבקשות GET, ומציג הסבר מפורט לתיקון.
תוקן באג בid_list_message ללא שרשור לפעולה.
תוקנה האופציה timeout באתחול הראוטר.
תוקן באג שבו ניתוק מחוץ לפונקציה (לדוגמה השמעת id_list_message, יציאה מהשלוחה ואז ניתוק) היה מפעיל את הפונקציה.
כל הפרמטרים בURL (query params) שמתחילים במילה Api
(פרמטרים אוטומטיים של ימות), לדוגמה ApiExtension
, ApiPhone
, כן מוזרקים אוטומטית לאובייקט הCall.
גרסה 5 כוללת שינויים רבים, כולל שינויים שוברים, ושכתוב משמעותי של הAPI הפנימי.
שינויים שוברים עיקריים:
-
שם המחלקה
Yemot_router
הוחלף לYemotRouter
-
הפרמטרים מהurl לא מוזרקים אוטומטית לאובייקט הcall, אלא זמינים תחת call.req -
call.req.params
/call.req.query
, בהתאמה, או בקיצור -call.params
/call.query
. -
סוג שגיאה חדש:
InputValidationError
- נפלט כאשר הועבר קלט לא חוקי, למשל השמעת הודעת טקסט המכילה תו נקודה (הוסר בגרסה 6). -
ניתן להשתמש במתודות get/post/all כמו באקספרס רגיל. כרגע מתודת
add_fn
נשמרת לצורך תאימות, אבל מומלץ לעדכן (עדכון: הוסר בגרסה 6). -
lenght_min
בread מסוג הקלטה תוקן לlength_min
, כנ"לlenght_max
תוקן לlength_max
. כרגע הכתיב השגוי עדיין נתמך, אבל יוסר בהמשך (שונה לmin_length
/max_length
בגרסה 6). -
שליטה באתחול הראוטר האם יודפסו לוגים פנימיים של הספריה (ברירת מחדל לא - בשונה מבגרסאות הקודמות)
-
שמות משתנים הומרו לCamelCase כמקובל, לדוגמה
call_id
הומר לcallId
וכן הלאה.
בנוסף שיפורים ושינויים רבים לא שוברים, לדוגמה:
-
לוג מפורט בהעברת תווים לא חוקיים
-
אפשרות העברת מטפל לשגיאות כלליות שלא נתפסו - לא שגיאות פנימיות של הספריה כמו
HangupError
, אלא שגיאה לא צפויה. מאפשר לדוגמה לשלוח מייל למפתח עם לוג מפורט, ולהשמיע למשתמש הודעת שגיאה כללית במקום שהתהליך יקרוס. -
שינויים ושיפורים רבים נוספים מאחורי הקלעים.
בגרסה 4.0.0 שינוי משמעותי:
במקום לבדוק בכל פעם את הפרמטר hangup
כעת בעת ניתוק תיזרק שגיאה פנימית - HangupError
,
ניתן לתפוס אותה להתנהגות מותאמת אישית, כלומר שאם מבקשים נתון על ידי read והמשתמש מנתק, תתבצע פעולה, לדוגמה למחוק רשומות שכבר נוצרו בשיחה.
אם לא תופסים את השגיאת ניתוק, היא תגרום לעצירה של ריצת הפונקציה (ללא עצירה של התהליך כולו, כיוון שהשגיאה נתפסת ברמה יותר גבוהה - ע"י הספריה).