--- /srv/reproducible-results/rbuild-debian/r-b-build.cv4SfLmP/b1/jsjac_1.3.4+dfsg-3_arm64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.cv4SfLmP/b2/jsjac_1.3.4+dfsg-3_arm64.changes ├── Files │ @@ -1,2 +1,2 @@ │ │ - 04d0684c4919ee5be25f2d2206b86066 84872 javascript optional libjs-jac_1.3.4+dfsg-3_all.deb │ + 3b8469a71587256affc62b3d9ee07f71 92580 javascript optional libjs-jac_1.3.4+dfsg-3_all.deb ├── libjs-jac_1.3.4+dfsg-3_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2021-01-04 23:02:43.000000 debian-binary │ │ -rw-r--r-- 0 0 0 2688 2021-01-04 23:02:43.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 81992 2021-01-04 23:02:43.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 89700 2021-01-04 23:02:43.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: libjs-jac │ │ │ │ Source: jsjac │ │ │ │ Version: 1.3.4+dfsg-3 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Debian XMPP Maintainers │ │ │ │ -Installed-Size: 1035 │ │ │ │ +Installed-Size: 1053 │ │ │ │ Recommends: javascript-common │ │ │ │ Suggests: ejabberd │ │ │ │ Section: javascript │ │ │ │ Priority: optional │ │ │ │ Homepage: https://github.com/sstrigler/JSJaC │ │ │ │ Description: JavaScript Jabber Client Library │ │ │ │ JSJaC is a jabber client library written in JavaScript to ease implementation │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -76,11 +76,11 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6305 2021-01-04 23:02:43.000000 ./usr/share/doc/libjs-jac/doc/overview-tree.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 660 2021-01-04 23:02:43.000000 ./usr/share/doc/libjs-jac/doc/overview-xmlextras.js.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1583 2021-01-04 23:02:43.000000 ./usr/share/doc/libjs-jac/doc/stylesheet.css │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2011-03-14 00:20:43.000000 ./usr/share/doc/libjs-jac/examples/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9874 2011-03-14 00:20:43.000000 ./usr/share/doc/libjs-jac/examples/simpleclient.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-04 23:02:43.000000 ./usr/share/javascript/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21722 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.min.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 196576 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.uncompressed.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 68937 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.min.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 167523 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.uncompressed.js │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.js -> jsjac.uncompressed.js │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.packed.js -> jsjac.min.js │ │ │ ├── ./usr/share/doc/libjs-jac/doc/Date.html │ │ │ │ @@ -362,10 +362,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -52,8 +52,8 @@ │ │ │ │ │ o A javascript Date object corresponding to the jabber DateTime given │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  PPRREEVV CCLLAASSSS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/Document.html │ │ │ │ @@ -200,10 +200,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -14,8 +14,8 @@ │ │ │ │ │   │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/GLOBALS.html │ │ │ │ @@ -1609,10 +1609,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -228,8 +228,8 @@ │ │ │ │ │ Object uuttff88tt22dd(t) │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCConnection.html │ │ │ │ @@ -1054,10 +1054,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -257,8 +257,8 @@ │ │ │ │ │ void uunnrreeggiisstteerrHHaannddlleerr(event,handler) │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCConsoleLogger.html │ │ │ │ @@ -448,10 +448,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -75,8 +75,8 @@ │ │ │ │ │ * Empty function for API compatibility │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCCookie.html │ │ │ │ @@ -911,10 +911,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -181,8 +181,8 @@ │ │ │ │ │ o - CookieException when cookie with given name could not be found │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCCookieException.html │ │ │ │ @@ -308,10 +308,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -42,8 +42,8 @@ │ │ │ │ │ o msg - The message to pass to the exception │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCHttpBindingConnection.html │ │ │ │ @@ -416,10 +416,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -66,8 +66,8 @@ │ │ │ │ │ o timerval - the interval in seconds │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCHttpPollingConnection.html │ │ │ │ @@ -350,10 +350,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -59,8 +59,8 @@ │ │ │ │ │ o true if this is a polling connection, false otherwise. │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCIQ.html │ │ │ │ @@ -542,10 +542,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -98,8 +98,8 @@ │ │ │ │ │ o The query node │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCJID.html │ │ │ │ @@ -747,10 +747,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -133,8 +133,8 @@ │ │ │ │ │ o A string representing the jid │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCJIDInvalidException.html │ │ │ │ @@ -309,10 +309,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -46,8 +46,8 @@ │ │ │ │ │ o message - The message associated with this Exception │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCJSON.html │ │ │ │ @@ -330,10 +330,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -38,8 +38,8 @@ │ │ │ │ │ Object ttooSSttrriinngg(obj) │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCKeys.html │ │ │ │ @@ -444,10 +444,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -69,8 +69,8 @@ │ │ │ │ │ o Number of keys created │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCMessage.html │ │ │ │ @@ -579,10 +579,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -101,8 +101,8 @@ │ │ │ │ │ o this message │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCPacket.html │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ Direct Known Subclasses: │ │ │ │
│ │ │ │ - JSJaCPresence, JSJaCIQ, JSJaCMessage │ │ │ │ + JSJaCMessage, JSJaCPresence, JSJaCIQ │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ @@ -1332,10 +1332,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -5,15 +5,15 @@ │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ ********** CCllaassss JJSSJJaaCCPPaacckkeett ********** │ │ │ │ │ Object │ │ │ │ │ | │ │ │ │ │ +--JJSSJJaaCCPPaacckkeett │ │ │ │ │ DDiirreecctt KKnnoowwnn SSuubbccllaasssseess:: │ │ │ │ │ - _J_S_J_a_C_P_r_e_s_e_n_c_e, _J_S_J_a_C_I_Q, _J_S_J_a_C_M_e_s_s_a_g_e │ │ │ │ │ + _J_S_J_a_C_M_e_s_s_a_g_e, _J_S_J_a_C_P_r_e_s_e_n_c_e, _J_S_J_a_C_I_Q │ │ │ │ │ =============================================================================== │ │ │ │ │ class JJSSJJaaCCPPaacckkeett │ │ │ │ │ │ │ │ │ │ Somewhat abstract base class for all kinds of specialised packets │ │ │ │ │ Defined in _J_S_J_a_C_P_a_c_k_e_t_._j_s │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ @@ -269,8 +269,8 @@ │ │ │ │ │ returned. │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCPresence.html │ │ │ │ @@ -639,10 +639,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -119,8 +119,8 @@ │ │ │ │ │ o this │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/Node.html │ │ │ │ @@ -200,10 +200,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -14,8 +14,8 @@ │ │ │ │ │   │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/Number.html │ │ │ │ @@ -309,10 +309,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -34,8 +34,8 @@ │ │ │ │ │ Object mmiinn(A, B) │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/STANZA_ERROR.html │ │ │ │ @@ -314,10 +314,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -44,8 +44,8 @@ │ │ │ │ │ SSTTAANNZZAA__EERRRROORR(code, type, cond) │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/String.html │ │ │ │ @@ -265,10 +265,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -26,8 +26,8 @@ │ │ │ │ │ o The string with chars encoded for HTML │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/XMLDocument.html │ │ │ │ @@ -200,10 +200,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -14,8 +14,8 @@ │ │ │ │ │   │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  NNEEXXTT CCLLAASSSS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/help-doc.html │ │ │ │ @@ -151,10 +151,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -33,8 +33,8 @@ │ │ │ │ │ TThhiiss hheellpp ffiillee aapppplliieess ttoo AAPPII ddooccuummeennttaattiioonn ggeenneerraatteedd uussiinngg tthhee ssttaannddaarrdd │ │ │ │ │ ddoocclleett.. │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File  Class  _TT_rr_ee_ee  _II_nn_dd_ee_xx   HHeellpp  JJSSJJaaCC │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS     │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/index-all.html │ │ │ │ @@ -1379,10 +1379,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -436,8 +436,8 @@ │ │ │ │ │   │ │ │ │ │ =============================================================================== │ │ │ │ │  _A _B _C _D _E _G _H _I _J _L _M _N _O _P _R _S _T _U _V _W _X │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File  Class  _TT_rr_ee_ee   IInnddeexx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS     │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaC.js.html │ │ │ │ @@ -76,16 +76,16 @@ │ │ │ │ │ │ │ │ │ │ │ │

Summary

│ │ │ │

│ │ │ │ │ │ │ │ Magic dependency loading. Taken from script.aculo.us │ │ │ │ and modified to break it. │ │ │ │ -

Version: $Revision$

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ -
│ │ │ │ +

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ +
Version: $Revision$

│ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -200,10 +200,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -3,17 +3,17 @@ │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ ********** JJSSJJaaCC..jjss ********** │ │ │ │ │ ****** SSuummmmaarryy ****** │ │ │ │ │ Magic dependency loading. Taken from script.aculo.us and modified to break it. │ │ │ │ │ │ │ │ │ │ +AAuutthhoorr:: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ VVeerrssiioonn:: $Revision$ │ │ │ │ │ │ │ │ │ │ -AAuutthhoorr:: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ =============================================================================== │ │ │ │ │ /** │ │ │ │ │ * @fileoverview Magic dependency loading. Taken from script.aculo.us │ │ │ │ │ * and modified to break it. │ │ │ │ │ * @author Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ * @version $Revision$ │ │ │ │ │ */ │ │ │ │ │ @@ -66,8 +66,8 @@ │ │ │ │ │ JSJaC.load(); │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCBuilder.js.html │ │ │ │ @@ -277,10 +277,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -143,8 +143,8 @@ │ │ │ │ │ }; │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCConfig.js.html │ │ │ │ @@ -172,10 +172,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -36,8 +36,8 @@ │ │ │ │ │ /*** END CONFIG ***/ │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCConnection.js.html │ │ │ │ @@ -1454,10 +1454,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1338,8 +1338,8 @@ │ │ │ │ │ }; │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCConsoleLogger.js.html │ │ │ │ @@ -239,10 +239,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -90,8 +90,8 @@ │ │ │ │ │ } │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCConstants.js.html │ │ │ │ @@ -259,10 +259,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -110,8 +110,8 @@ │ │ │ │ │ STANZA_ERROR("400", "wait", "unexpected-request"); │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCCookie.js.html │ │ │ │ @@ -392,10 +392,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -238,8 +238,8 @@ │ │ │ │ │ } │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCError.js.html │ │ │ │ @@ -161,10 +161,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -25,8 +25,8 @@ │ │ │ │ │ } │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCHttpBindingConnection.js.html │ │ │ │ @@ -695,10 +695,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -567,8 +567,8 @@ │ │ │ │ │ }; │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCHttpPollingConnection.js.html │ │ │ │ @@ -75,16 +75,16 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

Summary

│ │ │ │

│ │ │ │ │ │ │ │ All stuff related to HTTP Polling │ │ │ │ -

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ -
Version: $Revision$

│ │ │ │ +

Version: $Revision$

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ +
│ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -498,10 +498,10 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -3,17 +3,17 @@ │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ ********** JJSSJJaaCCHHttttppPPoolllliinnggCCoonnnneeccttiioonn..jjss ********** │ │ │ │ │ ****** SSuummmmaarryy ****** │ │ │ │ │ All stuff related to HTTP Polling │ │ │ │ │ │ │ │ │ │ -AAuutthhoorr:: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ VVeerrssiioonn:: $Revision$ │ │ │ │ │ │ │ │ │ │ +AAuutthhoorr:: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ =============================================================================== │ │ │ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ │ │ │ │ │ |_CC_ll_aa_ss_ss_ _SS_uu_mm_mm_aa_rr_yy_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ |_JJ_SS_JJ_aa_CC_HH_tt_tt_pp_PP_oo_ll_ll_ii_nn_gg_CC_oo_nn_nn_ee_cc_tt_ii_oo_nn_|_I_m_p_l_e_m_e_n_t_a_t_i_o_n_ _o_f_ _H_T_T_P_ _P_o_l_l_i_n_g| │ │ │ │ │ =============================================================================== │ │ │ │ │ /** │ │ │ │ │ * @fileoverview All stuff related to HTTP Polling │ │ │ │ │ @@ -359,8 +359,8 @@ │ │ │ │ │ }; │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCJID.js.html │ │ │ │ @@ -76,16 +76,16 @@ │ │ │ │ │ │ │ │ │ │ │ │

Summary

│ │ │ │

│ │ │ │ │ │ │ │ This file contains all things that make life easier when │ │ │ │ dealing with JIDs │ │ │ │ -

Version: $Revision$

Author: Stefan Strigler │ │ │ │ -
│ │ │ │ +

Author: Stefan Strigler │ │ │ │ +
Version: $Revision$

│ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -370,10 +370,10 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -3,17 +3,17 @@ │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ ********** JJSSJJaaCCJJIIDD..jjss ********** │ │ │ │ │ ****** SSuummmmaarryy ****** │ │ │ │ │ This file contains all things that make life easier when dealing with JIDs │ │ │ │ │ │ │ │ │ │ +AAuutthhoorr:: Stefan Strigler │ │ │ │ │ VVeerrssiioonn:: $Revision$ │ │ │ │ │ │ │ │ │ │ -AAuutthhoorr:: Stefan Strigler │ │ │ │ │ =============================================================================== │ │ │ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ │ │ │ │ │ |_CC_ll_aa_ss_ss_ _SS_uu_mm_mm_aa_rr_yy_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ |_JJ_SS_JJ_aa_CC_JJ_II_DD_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_J_S_J_a_C_J_I_D_ _m_o_d_e_l_s_ _x_m_p_p_ _j_i_d_ _o_b_j_e_c_t_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ |_JJ_SS_JJ_aa_CC_JJ_II_DD_II_nn_vv_aa_ll_ii_dd_EE_xx_cc_ee_pp_tt_ii_oo_nn_|_E_x_c_e_p_t_i_o_n_ _t_o_ _i_n_d_i_c_a_t_e_ _i_n_v_a_l_i_d_ _v_a_l_u_e_s_ _f_o_r_ _a_ _j_i_d| │ │ │ │ │ =============================================================================== │ │ │ │ │ /** │ │ │ │ │ @@ -217,8 +217,8 @@ │ │ │ │ │ } │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCJSON.js.html │ │ │ │ @@ -295,10 +295,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -148,8 +148,8 @@ │ │ │ │ │ }; │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCKeys.js.html │ │ │ │ @@ -229,10 +229,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -80,8 +80,8 @@ │ │ │ │ │ } │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCPacket.js.html │ │ │ │ @@ -908,10 +908,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -767,8 +767,8 @@ │ │ │ │ │ }; │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-crypt.js.html │ │ │ │ @@ -1523,10 +1523,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -759,8 +759,8 @@ │ │ │ │ │ } │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-header.js.html │ │ │ │ @@ -155,10 +155,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -20,8 +20,8 @@ │ │ │ │ │ */ │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-jsextras.js.html │ │ │ │ @@ -75,16 +75,16 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

Summary

│ │ │ │

│ │ │ │ │ │ │ │ Collection of functions to make live easier │ │ │ │ -

Author: Stefan Strigler │ │ │ │ -
Version: $Revision$

│ │ │ │ +

Version: $Revision$

Author: Stefan Strigler │ │ │ │ +
│ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -239,10 +239,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -3,17 +3,17 @@ │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ ********** jjsseexxttrraass..jjss ********** │ │ │ │ │ ****** SSuummmmaarryy ****** │ │ │ │ │ Collection of functions to make live easier │ │ │ │ │ │ │ │ │ │ -AAuutthhoorr:: Stefan Strigler │ │ │ │ │ VVeerrssiioonn:: $Revision$ │ │ │ │ │ │ │ │ │ │ +AAuutthhoorr:: Stefan Strigler │ │ │ │ │ =============================================================================== │ │ │ │ │ /** │ │ │ │ │ * @fileoverview Collection of functions to make live easier │ │ │ │ │ * @author Stefan Strigler │ │ │ │ │ * @version $Revision$ │ │ │ │ │ */ │ │ │ │ │ │ │ │ │ │ @@ -107,8 +107,8 @@ │ │ │ │ │ }; │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-xmlextras.js.html │ │ │ │ @@ -383,10 +383,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -250,8 +250,8 @@ │ │ │ │ │ } │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary.html │ │ │ │ @@ -258,10 +258,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -37,8 +37,8 @@ │ │ │ │ │ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_c_o_m_p_l_i_a_n_c_e_)_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ =============================================================================== │ │ │ │ │  OOvveerrvviieeww  File  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-tree.html │ │ │ │ @@ -133,10 +133,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Fri Oct 10 03:43:40 2025
│ │ │ │ +
Documentation generated by JSDoc on Sat Sep 7 23:21:36 2024
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -28,8 +28,8 @@ │ │ │ │ │ o _XX_MM_LL_DD_oo_cc_uu_mm_ee_nn_tt │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww File  Class   TTrreeee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │     │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Fri Oct 10 03:43:40 2025 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Sat Sep 7 23:21:36 2024 │ │ │ ├── ./usr/share/javascript/jsjac/jsjac.min.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1027,8 +1027,2000 @@ │ │ │ │ │ JSJaCCookie._unescape = function(a) { │ │ │ │ │ return a.replace(/%3AB/g, ";") │ │ │ │ │ }; │ │ │ │ │ │ │ │ │ │ function JSJaCCookieException(a) { │ │ │ │ │ this.message = a; │ │ │ │ │ this.name = "CookieException" │ │ │ │ │ +} │ │ │ │ │ + │ │ │ │ │ +function JSJaCError(c, b, d) { │ │ │ │ │ + var a = XmlDocument.create("error", "jsjac"); │ │ │ │ │ + a.documentElement.setAttribute("code", c); │ │ │ │ │ + a.documentElement.setAttribute("type", b); │ │ │ │ │ + if (d) { │ │ │ │ │ + a.documentElement.appendChild(a.createElement(d)).setAttribute("xmlns", "urn:ietf:params:xml:ns:xmpp-stanzas") │ │ │ │ │ + } │ │ │ │ │ + return a.documentElement │ │ │ │ │ +} │ │ │ │ │ +var JSJACJID_FORBIDDEN = ['"', " ", "&", "'", "/", ":", "<", ">", "@"]; │ │ │ │ │ + │ │ │ │ │ +function JSJaCJID(a) { │ │ │ │ │ + this._node = ""; │ │ │ │ │ + this._domain = ""; │ │ │ │ │ + this._resource = ""; │ │ │ │ │ + if (typeof(a) == "string") { │ │ │ │ │ + if (a.indexOf("@") != -1) { │ │ │ │ │ + this.setNode(a.substring(0, a.indexOf("@"))); │ │ │ │ │ + a = a.substring(a.indexOf("@") + 1) │ │ │ │ │ + } │ │ │ │ │ + if (a.indexOf("/") != -1) { │ │ │ │ │ + this.setResource(a.substring(a.indexOf("/") + 1)); │ │ │ │ │ + a = a.substring(0, a.indexOf("/")) │ │ │ │ │ + } │ │ │ │ │ + this.setDomain(a) │ │ │ │ │ + } else { │ │ │ │ │ + this.setNode(a.node); │ │ │ │ │ + this.setDomain(a.domain); │ │ │ │ │ + this.setResource(a.resource) │ │ │ │ │ + } │ │ │ │ │ +} │ │ │ │ │ +JSJaCJID.prototype.getNode = function() { │ │ │ │ │ + return this._node │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.getDomain = function() { │ │ │ │ │ + return this._domain │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.getResource = function() { │ │ │ │ │ + return this._resource │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.setNode = function(a) { │ │ │ │ │ + JSJaCJID._checkNodeName(a); │ │ │ │ │ + this._node = a || ""; │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.setDomain = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + throw new JSJaCJIDInvalidException("domain name missing") │ │ │ │ │ + } │ │ │ │ │ + JSJaCJID._checkNodeName(a); │ │ │ │ │ + this._domain = a; │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.setResource = function(a) { │ │ │ │ │ + this._resource = a || ""; │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.toString = function() { │ │ │ │ │ + var a = ""; │ │ │ │ │ + if (this.getNode() && this.getNode() != "") { │ │ │ │ │ + a = this.getNode() + "@" │ │ │ │ │ + } │ │ │ │ │ + a += this.getDomain(); │ │ │ │ │ + if (this.getResource() && this.getResource() != "") { │ │ │ │ │ + a += "/" + this.getResource() │ │ │ │ │ + } │ │ │ │ │ + return a │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.removeResource = function() { │ │ │ │ │ + return this.setResource() │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.clone = function() { │ │ │ │ │ + return new JSJaCJID(this.toString()) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.isEntity = function(a) { │ │ │ │ │ + if (typeof a == "string") { │ │ │ │ │ + a = (new JSJaCJID(a)) │ │ │ │ │ + } │ │ │ │ │ + a.removeResource(); │ │ │ │ │ + return (this.clone().removeResource().toString() === a.toString()) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID._checkNodeName = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + for (var b = 0; b < JSJACJID_FORBIDDEN.length; b++) { │ │ │ │ │ + if (a.indexOf(JSJACJID_FORBIDDEN[b]) != -1) { │ │ │ │ │ + throw new JSJaCJIDInvalidException("forbidden char in nodename: " + JSJACJID_FORBIDDEN[b]) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ + │ │ │ │ │ +function JSJaCJIDInvalidException(a) { │ │ │ │ │ + this.message = a; │ │ │ │ │ + this.name = "JSJaCJIDInvalidException" │ │ │ │ │ +} │ │ │ │ │ + │ │ │ │ │ +function JSJaCKeys(d, c) { │ │ │ │ │ + var a = Math.random(); │ │ │ │ │ + this._k = new Array(); │ │ │ │ │ + this._k[0] = a.toString(); │ │ │ │ │ + if (c) { │ │ │ │ │ + this.oDbg = c │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg = {}; │ │ │ │ │ + this.oDbg.log = function() {} │ │ │ │ │ + } │ │ │ │ │ + if (d) { │ │ │ │ │ + for (var b = 1; b < JSJAC_NKEYS; b++) { │ │ │ │ │ + this._k[b] = d(this._k[b - 1]); │ │ │ │ │ + c.log(b + ": " + this._k[b], 4) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + this._indexAt = JSJAC_NKEYS - 1; │ │ │ │ │ + this.getKey = function() { │ │ │ │ │ + return this._k[this._indexAt--] │ │ │ │ │ + }; │ │ │ │ │ + this.lastKey = function() { │ │ │ │ │ + return (this._indexAt == 0) │ │ │ │ │ + }; │ │ │ │ │ + this.size = function() { │ │ │ │ │ + return this._k.length │ │ │ │ │ + }; │ │ │ │ │ + this._getSuspendVars = function() { │ │ │ │ │ + return ("_k,_indexAt").split(",") │ │ │ │ │ + } │ │ │ │ │ +} │ │ │ │ │ +var JSJACPACKET_USE_XMLNS = true; │ │ │ │ │ + │ │ │ │ │ +function JSJaCPacket(a) { │ │ │ │ │ + this.name = a; │ │ │ │ │ + if (typeof(JSJACPACKET_USE_XMLNS) != "undefined" && JSJACPACKET_USE_XMLNS) { │ │ │ │ │ + this.doc = XmlDocument.create(a, "jabber:client") │ │ │ │ │ + } else { │ │ │ │ │ + this.doc = XmlDocument.create(a, "") │ │ │ │ │ + } │ │ │ │ │ +} │ │ │ │ │ +JSJaCPacket.prototype.pType = function() { │ │ │ │ │ + return this.name │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getDoc = function() { │ │ │ │ │ + return this.doc │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getNode = function() { │ │ │ │ │ + if (this.getDoc() && this.getDoc().documentElement) { │ │ │ │ │ + return this.getDoc().documentElement │ │ │ │ │ + } else { │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.setTo = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + this.getNode().removeAttribute("to") │ │ │ │ │ + } else { │ │ │ │ │ + if (typeof(a) == "string") { │ │ │ │ │ + this.getNode().setAttribute("to", a) │ │ │ │ │ + } else { │ │ │ │ │ + this.getNode().setAttribute("to", a.toString()) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.setFrom = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + this.getNode().removeAttribute("from") │ │ │ │ │ + } else { │ │ │ │ │ + if (typeof(a) == "string") { │ │ │ │ │ + this.getNode().setAttribute("from", a) │ │ │ │ │ + } else { │ │ │ │ │ + this.getNode().setAttribute("from", a.toString()) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.setID = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + this.getNode().removeAttribute("id") │ │ │ │ │ + } else { │ │ │ │ │ + this.getNode().setAttribute("id", a) │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.setType = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + this.getNode().removeAttribute("type") │ │ │ │ │ + } else { │ │ │ │ │ + this.getNode().setAttribute("type", a) │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.setXMLLang = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + this.getNode().removeAttribute("xml:lang") │ │ │ │ │ + } else { │ │ │ │ │ + this.getNode().setAttribute("xml:lang", a) │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getTo = function() { │ │ │ │ │ + return this.getNode().getAttribute("to") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getFrom = function() { │ │ │ │ │ + return this.getNode().getAttribute("from") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getToJID = function() { │ │ │ │ │ + return new JSJaCJID(this.getTo()) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getFromJID = function() { │ │ │ │ │ + return new JSJaCJID(this.getFrom()) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getID = function() { │ │ │ │ │ + return this.getNode().getAttribute("id") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getType = function() { │ │ │ │ │ + return this.getNode().getAttribute("type") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getXMLLang = function() { │ │ │ │ │ + return this.getNode().getAttribute("xml:lang") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getXMLNS = function() { │ │ │ │ │ + return this.getNode().namespaceURI || this.getNode().getAttribute("xmlns") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getChild = function(b, d) { │ │ │ │ │ + if (!this.getNode()) { │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ + b = b || "*"; │ │ │ │ │ + d = d || "*"; │ │ │ │ │ + if (this.getNode().getElementsByTagNameNS) { │ │ │ │ │ + return this.getNode().getElementsByTagNameNS(d, b).item(0) │ │ │ │ │ + } │ │ │ │ │ + var a = this.getNode().getElementsByTagName(b); │ │ │ │ │ + if (d != "*") { │ │ │ │ │ + for (var c = 0; c < a.length; c++) { │ │ │ │ │ + if (a.item(c).namespaceURI == d || a.item(c).getAttribute("xmlns") == d) { │ │ │ │ │ + return a.item(c) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } else { │ │ │ │ │ + return a.item(0) │ │ │ │ │ + } │ │ │ │ │ + return null │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getChildVal = function(b, d) { │ │ │ │ │ + var e = this.getChild(b, d); │ │ │ │ │ + var a = ""; │ │ │ │ │ + if (e && e.hasChildNodes()) { │ │ │ │ │ + for (var c = 0; c < e.childNodes.length; c++) { │ │ │ │ │ + if (e.childNodes.item(c).nodeValue) { │ │ │ │ │ + a += e.childNodes.item(c).nodeValue │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return a │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.clone = function() { │ │ │ │ │ + return JSJaCPacket.wrapNode(this.getNode()) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.isError = function() { │ │ │ │ │ + return (this.getType() == "error") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.errorReply = function(a) { │ │ │ │ │ + var b = this.clone(); │ │ │ │ │ + b.setTo(this.getFrom()); │ │ │ │ │ + b.setFrom(); │ │ │ │ │ + b.setType("error"); │ │ │ │ │ + b.appendNode("error", { │ │ │ │ │ + code: a.code, │ │ │ │ │ + type: a.type │ │ │ │ │ + }, [ │ │ │ │ │ + [a.cond] │ │ │ │ │ + ]); │ │ │ │ │ + return b │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.xml = typeof XMLSerializer != "undefined" ? function() { │ │ │ │ │ + var a = (new XMLSerializer()).serializeToString(this.getNode()); │ │ │ │ │ + if (typeof(a) == "undefined") { │ │ │ │ │ + a = (new XMLSerializer()).serializeToString(this.doc) │ │ │ │ │ + } │ │ │ │ │ + return a │ │ │ │ │ +} : function() { │ │ │ │ │ + return this.getDoc().xml │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype._getAttribute = function(a) { │ │ │ │ │ + return this.getNode().getAttribute(a) │ │ │ │ │ +}; │ │ │ │ │ +if (document.ELEMENT_NODE == null) { │ │ │ │ │ + document.ELEMENT_NODE = 1; │ │ │ │ │ + document.ATTRIBUTE_NODE = 2; │ │ │ │ │ + document.TEXT_NODE = 3; │ │ │ │ │ + document.CDATA_SECTION_NODE = 4; │ │ │ │ │ + document.ENTITY_REFERENCE_NODE = 5; │ │ │ │ │ + document.ENTITY_NODE = 6; │ │ │ │ │ + document.PROCESSING_INSTRUCTION_NODE = 7; │ │ │ │ │ + document.COMMENT_NODE = 8; │ │ │ │ │ + document.DOCUMENT_NODE = 9; │ │ │ │ │ + document.DOCUMENT_TYPE_NODE = 10; │ │ │ │ │ + document.DOCUMENT_FRAGMENT_NODE = 11; │ │ │ │ │ + document.NOTATION_NODE = 12 │ │ │ │ │ +} │ │ │ │ │ +JSJaCPacket.prototype._importNode = function(f, b) { │ │ │ │ │ + switch (f.nodeType) { │ │ │ │ │ + case document.ELEMENT_NODE: │ │ │ │ │ + if (this.getDoc().createElementNS) { │ │ │ │ │ + var e = this.getDoc().createElementNS(f.namespaceURI, f.nodeName) │ │ │ │ │ + } else { │ │ │ │ │ + var e = this.getDoc().createElement(f.nodeName) │ │ │ │ │ + } │ │ │ │ │ + if (f.attributes && f.attributes.length > 0) { │ │ │ │ │ + for (var d = 0, c = f.attributes.length; d < c; d++) { │ │ │ │ │ + var a = f.attributes.item(d); │ │ │ │ │ + if (a.nodeName == "xmlns" && e.getAttribute("xmlns") != null) { │ │ │ │ │ + continue │ │ │ │ │ + } │ │ │ │ │ + if (e.setAttributeNS && a.namespaceURI) { │ │ │ │ │ + e.setAttributeNS(a.namespaceURI, a.nodeName, a.nodeValue) │ │ │ │ │ + } else { │ │ │ │ │ + e.setAttribute(a.nodeName, a.nodeValue) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (b && f.childNodes && f.childNodes.length > 0) { │ │ │ │ │ + for (var d = 0, c = f.childNodes.length; d < c; d++) { │ │ │ │ │ + e.appendChild(this._importNode(f.childNodes.item(d), b)) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return e; │ │ │ │ │ + break; │ │ │ │ │ + case document.TEXT_NODE: │ │ │ │ │ + case document.CDATA_SECTION_NODE: │ │ │ │ │ + case document.COMMENT_NODE: │ │ │ │ │ + return this.getDoc().createTextNode(f.nodeValue); │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype._setChildNode = function(g, b) { │ │ │ │ │ + var a = this.getChild(g); │ │ │ │ │ + var d = this.getDoc().createTextNode(b); │ │ │ │ │ + if (a) { │ │ │ │ │ + try { │ │ │ │ │ + a.replaceChild(d, a.firstChild) │ │ │ │ │ + } catch (f) {} │ │ │ │ │ + } else { │ │ │ │ │ + try { │ │ │ │ │ + a = this.getDoc().createElementNS(this.getNode().namespaceURI, g) │ │ │ │ │ + } catch (c) { │ │ │ │ │ + a = this.getDoc().createElement(g) │ │ │ │ │ + } │ │ │ │ │ + this.getNode().appendChild(a); │ │ │ │ │ + a.appendChild(d) │ │ │ │ │ + } │ │ │ │ │ + return a │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.buildNode = function(a) { │ │ │ │ │ + return JSJaCBuilder.buildNode(this.getDoc(), a, arguments[1], arguments[2]) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.appendNode = function(a) { │ │ │ │ │ + if (typeof a == "object") { │ │ │ │ │ + return this.getNode().appendChild(a) │ │ │ │ │ + } else { │ │ │ │ │ + return this.getNode().appendChild(this.buildNode(a, arguments[1], arguments[2], null, this.getNode().namespaceURI)) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ + │ │ │ │ │ +function JSJaCPresence() { │ │ │ │ │ + this.base = JSJaCPacket; │ │ │ │ │ + this.base("presence") │ │ │ │ │ +} │ │ │ │ │ +JSJaCPresence.prototype = new JSJaCPacket; │ │ │ │ │ +JSJaCPresence.prototype.setStatus = function(a) { │ │ │ │ │ + this._setChildNode("status", a); │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPresence.prototype.setShow = function(a) { │ │ │ │ │ + if (a == "chat" || a == "away" || a == "xa" || a == "dnd") { │ │ │ │ │ + this._setChildNode("show", a) │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPresence.prototype.setPriority = function(a) { │ │ │ │ │ + this._setChildNode("priority", a); │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPresence.prototype.setPresence = function(b, a, c) { │ │ │ │ │ + if (b) { │ │ │ │ │ + this.setShow(b) │ │ │ │ │ + } │ │ │ │ │ + if (a) { │ │ │ │ │ + this.setStatus(a) │ │ │ │ │ + } │ │ │ │ │ + if (c) { │ │ │ │ │ + this.setPriority(c) │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPresence.prototype.getStatus = function() { │ │ │ │ │ + return this.getChildVal("status") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPresence.prototype.getShow = function() { │ │ │ │ │ + return this.getChildVal("show") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPresence.prototype.getPriority = function() { │ │ │ │ │ + return this.getChildVal("priority") │ │ │ │ │ +}; │ │ │ │ │ + │ │ │ │ │ +function JSJaCIQ() { │ │ │ │ │ + this.base = JSJaCPacket; │ │ │ │ │ + this.base("iq") │ │ │ │ │ +} │ │ │ │ │ +JSJaCIQ.prototype = new JSJaCPacket; │ │ │ │ │ +JSJaCIQ.prototype.setIQ = function(c, a, b) { │ │ │ │ │ + if (c) { │ │ │ │ │ + this.setTo(c) │ │ │ │ │ + } │ │ │ │ │ + if (a) { │ │ │ │ │ + this.setType(a) │ │ │ │ │ + } │ │ │ │ │ + if (b) { │ │ │ │ │ + this.setID(b) │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCIQ.prototype.setQuery = function(c) { │ │ │ │ │ + var a; │ │ │ │ │ + try { │ │ │ │ │ + a = this.getDoc().createElementNS(c, "query") │ │ │ │ │ + } catch (b) { │ │ │ │ │ + a = this.getDoc().createElement("query"); │ │ │ │ │ + a.setAttribute("xmlns", c) │ │ │ │ │ + } │ │ │ │ │ + this.getNode().appendChild(a); │ │ │ │ │ + return a │ │ │ │ │ +}; │ │ │ │ │ +JSJaCIQ.prototype.getQuery = function() { │ │ │ │ │ + return this.getNode().getElementsByTagName("query").item(0) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCIQ.prototype.getQueryXMLNS = function() { │ │ │ │ │ + if (this.getQuery()) { │ │ │ │ │ + return this.getQuery().namespaceURI || this.getQuery().getAttribute("xmlns") │ │ │ │ │ + } else { │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCIQ.prototype.reply = function(d) { │ │ │ │ │ + var b = this.clone(); │ │ │ │ │ + b.setTo(this.getFrom()); │ │ │ │ │ + b.setFrom(); │ │ │ │ │ + b.setType("result"); │ │ │ │ │ + if (d) { │ │ │ │ │ + if (typeof d == "string") { │ │ │ │ │ + b.getChild().appendChild(b.getDoc().loadXML(d)) │ │ │ │ │ + } else { │ │ │ │ │ + if (d.constructor == Array) { │ │ │ │ │ + var c = b.getChild(); │ │ │ │ │ + for (var a = 0; a < d.length; a++) { │ │ │ │ │ + if (typeof d[a] == "string") { │ │ │ │ │ + c.appendChild(b.getDoc().loadXML(d[a])) │ │ │ │ │ + } else { │ │ │ │ │ + if (typeof d[a] == "object") { │ │ │ │ │ + c.appendChild(d[a]) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } else { │ │ │ │ │ + if (typeof d == "object") { │ │ │ │ │ + b.getChild().appendChild(d) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return b │ │ │ │ │ +}; │ │ │ │ │ + │ │ │ │ │ +function JSJaCMessage() { │ │ │ │ │ + this.base = JSJaCPacket; │ │ │ │ │ + this.base("message") │ │ │ │ │ +} │ │ │ │ │ +JSJaCMessage.prototype = new JSJaCPacket; │ │ │ │ │ +JSJaCMessage.prototype.setBody = function(a) { │ │ │ │ │ + this._setChildNode("body", a); │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCMessage.prototype.setSubject = function(a) { │ │ │ │ │ + this._setChildNode("subject", a); │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCMessage.prototype.setThread = function(a) { │ │ │ │ │ + this._setChildNode("thread", a); │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCMessage.prototype.getThread = function() { │ │ │ │ │ + return this.getChildVal("thread") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCMessage.prototype.getBody = function() { │ │ │ │ │ + return this.getChildVal("body") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCMessage.prototype.getSubject = function() { │ │ │ │ │ + return this.getChildVal("subject") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.wrapNode = function(b) { │ │ │ │ │ + var a = null; │ │ │ │ │ + switch (b.nodeName.toLowerCase()) { │ │ │ │ │ + case "presence": │ │ │ │ │ + a = new JSJaCPresence(); │ │ │ │ │ + break; │ │ │ │ │ + case "message": │ │ │ │ │ + a = new JSJaCMessage(); │ │ │ │ │ + break; │ │ │ │ │ + case "iq": │ │ │ │ │ + a = new JSJaCIQ(); │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ + if (a) { │ │ │ │ │ + a.getDoc().replaceChild(a._importNode(b, true), a.getNode()) │ │ │ │ │ + } │ │ │ │ │ + return a │ │ │ │ │ +}; │ │ │ │ │ + │ │ │ │ │ +function JSJaCConnection(a) { │ │ │ │ │ + if (a && a.oDbg && a.oDbg.log) { │ │ │ │ │ + this.oDbg = a.oDbg │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg = new Object(); │ │ │ │ │ + this.oDbg.log = function() {} │ │ │ │ │ + } │ │ │ │ │ + if (a && a.timerval) { │ │ │ │ │ + this.setPollInterval(a.timerval) │ │ │ │ │ + } else { │ │ │ │ │ + this.setPollInterval(JSJAC_TIMERVAL) │ │ │ │ │ + } │ │ │ │ │ + if (a && a.httpbase) { │ │ │ │ │ + this._httpbase = a.httpbase │ │ │ │ │ + } │ │ │ │ │ + if (a && a.allow_plain) { │ │ │ │ │ + this.allow_plain = a.allow_plain │ │ │ │ │ + } else { │ │ │ │ │ + this.allow_plain = JSJAC_ALLOW_PLAIN │ │ │ │ │ + } │ │ │ │ │ + if (a && a.cookie_prefix) { │ │ │ │ │ + this._cookie_prefix = a.cookie_prefix │ │ │ │ │ + } else { │ │ │ │ │ + this._cookie_prefix = "" │ │ │ │ │ + } │ │ │ │ │ + this._connected = false; │ │ │ │ │ + this._events = new Array(); │ │ │ │ │ + this._keys = null; │ │ │ │ │ + this._ID = 0; │ │ │ │ │ + this._inQ = new Array(); │ │ │ │ │ + this._pQueue = new Array(); │ │ │ │ │ + this._regIDs = new Array(); │ │ │ │ │ + this._req = new Array(); │ │ │ │ │ + this._status = "intialized"; │ │ │ │ │ + this._errcnt = 0; │ │ │ │ │ + this._inactivity = JSJAC_INACTIVITY; │ │ │ │ │ + this._sendRawCallbacks = new Array() │ │ │ │ │ +} │ │ │ │ │ +JSJaCConnection.prototype.connect = function(a) { │ │ │ │ │ + this._setStatus("connecting"); │ │ │ │ │ + this.domain = a.domain || "localhost"; │ │ │ │ │ + this.username = a.username; │ │ │ │ │ + this.resource = a.resource; │ │ │ │ │ + this.pass = a.pass; │ │ │ │ │ + this.register = a.register; │ │ │ │ │ + this.authhost = a.authhost || this.domain; │ │ │ │ │ + this.authtype = a.authtype || "sasl"; │ │ │ │ │ + if (a.xmllang && a.xmllang != "") { │ │ │ │ │ + this._xmllang = a.xmllang │ │ │ │ │ + } │ │ │ │ │ + this.host = a.host || this.domain; │ │ │ │ │ + this.port = a.port || 5222; │ │ │ │ │ + if (a.secure) { │ │ │ │ │ + this.secure = "true" │ │ │ │ │ + } else { │ │ │ │ │ + this.secure = "false" │ │ │ │ │ + } │ │ │ │ │ + if (a.wait) { │ │ │ │ │ + this._wait = a.wait │ │ │ │ │ + } │ │ │ │ │ + this.jid = this.username + "@" + this.domain; │ │ │ │ │ + this.fulljid = this.jid + "/" + this.resource; │ │ │ │ │ + this._rid = Math.round(100000.5 + (((900000.49999) - (100000.5)) * Math.random())); │ │ │ │ │ + var c = this._getFreeSlot(); │ │ │ │ │ + this._req[c] = this._setupRequest(true); │ │ │ │ │ + var b = this._getInitialRequestString(); │ │ │ │ │ + this.oDbg.log(b, 4); │ │ │ │ │ + this._req[c].r.onreadystatechange = JSJaC.bind(function() { │ │ │ │ │ + if (this._req[c].r.readyState == 4) { │ │ │ │ │ + this.oDbg.log("async recv: " + this._req[c].r.responseText, 4); │ │ │ │ │ + this._handleInitialResponse(c) │ │ │ │ │ + } │ │ │ │ │ + }, this); │ │ │ │ │ + if (typeof(this._req[c].r.onerror) != "undefined") { │ │ │ │ │ + this._req[c].r.onerror = JSJaC.bind(function(d) { │ │ │ │ │ + this.oDbg.log("XmlHttpRequest error", 1); │ │ │ │ │ + return false │ │ │ │ │ + }, this) │ │ │ │ │ + } │ │ │ │ │ + this._req[c].r.send(b) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.connected = function() { │ │ │ │ │ + return this._connected │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.disconnect = function() { │ │ │ │ │ + this._setStatus("disconnecting"); │ │ │ │ │ + if (!this.connected()) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this._connected = false; │ │ │ │ │ + clearInterval(this._interval); │ │ │ │ │ + clearInterval(this._inQto); │ │ │ │ │ + if (this._timeout) { │ │ │ │ │ + clearTimeout(this._timeout) │ │ │ │ │ + } │ │ │ │ │ + var b = this._getFreeSlot(); │ │ │ │ │ + this._req[b] = this._setupRequest(false); │ │ │ │ │ + request = this._getRequestString(false, true); │ │ │ │ │ + this.oDbg.log("Disconnecting: " + request, 4); │ │ │ │ │ + this._req[b].r.send(request); │ │ │ │ │ + try { │ │ │ │ │ + JSJaCCookie.read(this._cookie_prefix + "JSJaC_State").erase() │ │ │ │ │ + } catch (a) {} │ │ │ │ │ + this.oDbg.log("Disconnected: " + this._req[b].r.responseText, 2); │ │ │ │ │ + this._handleEvent("ondisconnect") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.getPollInterval = function() { │ │ │ │ │ + return this._timerval │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.registerHandler = function(event) { │ │ │ │ │ + event = event.toLowerCase(); │ │ │ │ │ + var eArg = { │ │ │ │ │ + handler: arguments[arguments.length - 1], │ │ │ │ │ + childName: "*", │ │ │ │ │ + childNS: "*", │ │ │ │ │ + type: "*" │ │ │ │ │ + }; │ │ │ │ │ + if (arguments.length > 2) { │ │ │ │ │ + eArg.childName = arguments[1] │ │ │ │ │ + } │ │ │ │ │ + if (arguments.length > 3) { │ │ │ │ │ + eArg.childNS = arguments[2] │ │ │ │ │ + } │ │ │ │ │ + if (arguments.length > 4) { │ │ │ │ │ + eArg.type = arguments[3] │ │ │ │ │ + } │ │ │ │ │ + if (!this._events[event]) { │ │ │ │ │ + this._events[event] = new Array(eArg) │ │ │ │ │ + } else { │ │ │ │ │ + this._events[event] = this._events[event].concat(eArg) │ │ │ │ │ + } │ │ │ │ │ + this._events[event] = this._events[event].sort(function(a, b) { │ │ │ │ │ + var aRank = 0; │ │ │ │ │ + var bRank = 0; │ │ │ │ │ + with(a) { │ │ │ │ │ + if (type == "*") { │ │ │ │ │ + aRank++ │ │ │ │ │ + } │ │ │ │ │ + if (childNS == "*") { │ │ │ │ │ + aRank++ │ │ │ │ │ + } │ │ │ │ │ + if (childName == "*") { │ │ │ │ │ + aRank++ │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + with(b) { │ │ │ │ │ + if (type == "*") { │ │ │ │ │ + bRank++ │ │ │ │ │ + } │ │ │ │ │ + if (childNS == "*") { │ │ │ │ │ + bRank++ │ │ │ │ │ + } │ │ │ │ │ + if (childName == "*") { │ │ │ │ │ + bRank++ │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (aRank > bRank) { │ │ │ │ │ + return 1 │ │ │ │ │ + } │ │ │ │ │ + if (aRank < bRank) { │ │ │ │ │ + return -1 │ │ │ │ │ + } │ │ │ │ │ + return 0 │ │ │ │ │ + }); │ │ │ │ │ + this.oDbg.log("registered handler for event '" + event + "'", 2) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.unregisterHandler = function(e, d) { │ │ │ │ │ + e = e.toLowerCase(); │ │ │ │ │ + if (!this._events[e]) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + var a = this._events[e], │ │ │ │ │ + c = new Array(); │ │ │ │ │ + for (var b = 0; b < a.length; b++) { │ │ │ │ │ + if (a[b].handler != d) { │ │ │ │ │ + c.push(a[b]) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (a.length != c.length) { │ │ │ │ │ + this._events[e] = c; │ │ │ │ │ + this.oDbg.log("unregistered handler for event '" + e + "'", 2) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.registerIQGet = function(a, b, c) { │ │ │ │ │ + this.registerHandler("iq", a, b, "get", c) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.registerIQSet = function(a, b, c) { │ │ │ │ │ + this.registerHandler("iq", a, b, "set", c) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.resume = function() { │ │ │ │ │ + try { │ │ │ │ │ + var a = JSJaCCookie.read(this._cookie_prefix + "JSJaC_State").getValue(); │ │ │ │ │ + this.oDbg.log("read cookie: " + a, 2); │ │ │ │ │ + JSJaCCookie.read(this._cookie_prefix + "JSJaC_State").erase(); │ │ │ │ │ + return this.resumeFromData(JSJaCJSON.parse(a)) │ │ │ │ │ + } catch (b) {} │ │ │ │ │ + return false │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.resumeFromData = function(c) { │ │ │ │ │ + try { │ │ │ │ │ + this._setStatus("resuming"); │ │ │ │ │ + for (var b in c) { │ │ │ │ │ + if (c.hasOwnProperty(b)) { │ │ │ │ │ + this[b] = c[b] │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (this._keys) { │ │ │ │ │ + this._keys2 = new JSJaCKeys(); │ │ │ │ │ + var a = this._keys2._getSuspendVars(); │ │ │ │ │ + for (var b = 0; b < a.length; b++) { │ │ │ │ │ + this._keys2[a[b]] = this._keys[a[b]] │ │ │ │ │ + } │ │ │ │ │ + this._keys = this._keys2 │ │ │ │ │ + } │ │ │ │ │ + if (this._connected) { │ │ │ │ │ + this._handleEvent("onresume"); │ │ │ │ │ + setTimeout(JSJaC.bind(this._resume, this), this.getPollInterval()); │ │ │ │ │ + this._interval = setInterval(JSJaC.bind(this._checkQueue, this), JSJAC_CHECKQUEUEINTERVAL); │ │ │ │ │ + this._inQto = setInterval(JSJaC.bind(this._checkInQ, this), JSJAC_CHECKINQUEUEINTERVAL) │ │ │ │ │ + } │ │ │ │ │ + return (this._connected === true) │ │ │ │ │ + } catch (d) { │ │ │ │ │ + if (d.message) { │ │ │ │ │ + this.oDbg.log("Resume failed: " + d.message, 1) │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg.log("Resume failed: " + d, 1) │ │ │ │ │ + } │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.send = function(d, b, a) { │ │ │ │ │ + if (!d || !d.pType) { │ │ │ │ │ + this.oDbg.log("no packet: " + d, 1); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + if (!this.connected()) { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + if (b) { │ │ │ │ │ + if (!d.getID()) { │ │ │ │ │ + d.setID("JSJaCID_" + this._ID++) │ │ │ │ │ + } │ │ │ │ │ + this._registerPID(d.getID(), b, a) │ │ │ │ │ + } │ │ │ │ │ + try { │ │ │ │ │ + this._handleEvent(d.pType() + "_out", d); │ │ │ │ │ + this._handleEvent("packet_out", d); │ │ │ │ │ + this._pQueue = this._pQueue.concat(d.xml()) │ │ │ │ │ + } catch (c) { │ │ │ │ │ + this.oDbg.log(c.toString(), 1); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.sendIQ = function(e, c, a) { │ │ │ │ │ + if (!e || e.pType() != "iq") { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + c = c || {}; │ │ │ │ │ + var b = c.error_handler || JSJaC.bind(function(g) { │ │ │ │ │ + this.oDbg.log(g.xml(), 1) │ │ │ │ │ + }, this); │ │ │ │ │ + var d = c.result_handler || JSJaC.bind(function(g) { │ │ │ │ │ + this.oDbg.log(g.xml(), 2) │ │ │ │ │ + }, this); │ │ │ │ │ + var f = function(h, g) { │ │ │ │ │ + switch (h.getType()) { │ │ │ │ │ + case "error": │ │ │ │ │ + b(h); │ │ │ │ │ + break; │ │ │ │ │ + case "result": │ │ │ │ │ + d(h, g); │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ + }; │ │ │ │ │ + return this.send(e, f, a) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.setPollInterval = function(a) { │ │ │ │ │ + if (a && !isNaN(a)) { │ │ │ │ │ + this._timerval = a │ │ │ │ │ + } │ │ │ │ │ + return this._timerval │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.status = function() { │ │ │ │ │ + return this._status │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.suspend = function() { │ │ │ │ │ + var b = this.suspendToData(); │ │ │ │ │ + try { │ │ │ │ │ + var f = new JSJaCCookie(this._cookie_prefix + "JSJaC_State", JSJaCJSON.toString(b)); │ │ │ │ │ + this.oDbg.log("writing cookie: " + f.getValue() + "\n(length:" + f.getValue().length + ")", 2); │ │ │ │ │ + f.write(); │ │ │ │ │ + var a = JSJaCCookie.get(this._cookie_prefix + "JSJaC_State"); │ │ │ │ │ + if (f.getValue() != a) { │ │ │ │ │ + this.oDbg.log("Suspend failed writing cookie.\nread: " + a, 1); │ │ │ │ │ + f.erase(); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + return true │ │ │ │ │ + } catch (d) { │ │ │ │ │ + this.oDbg.log("Failed creating cookie '" + this._cookie_prefix + "JSJaC_State': " + d.message, 1) │ │ │ │ │ + } │ │ │ │ │ + return false │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.suspendToData = function() { │ │ │ │ │ + clearTimeout(this._timeout); │ │ │ │ │ + clearInterval(this._interval); │ │ │ │ │ + clearInterval(this._inQto); │ │ │ │ │ + this._suspend(); │ │ │ │ │ + var c = ("_connected,_keys,_ID,_inQ,_pQueue,_regIDs,_errcnt,_inactivity,domain,username,resource,jid,fulljid,_sid,_httpbase,_timerval,_is_polling").split(","); │ │ │ │ │ + c = c.concat(this._getSuspendVars()); │ │ │ │ │ + var e = new Object(); │ │ │ │ │ + for (var d = 0; d < c.length; d++) { │ │ │ │ │ + if (!this[c[d]]) { │ │ │ │ │ + continue │ │ │ │ │ + } │ │ │ │ │ + if (this[c[d]]._getSuspendVars) { │ │ │ │ │ + var a = this[c[d]]._getSuspendVars(); │ │ │ │ │ + var f = new Object(); │ │ │ │ │ + for (var b = 0; b < a.length; b++) { │ │ │ │ │ + f[a[b]] = this[c[d]][a[b]] │ │ │ │ │ + } │ │ │ │ │ + } else { │ │ │ │ │ + var f = this[c[d]] │ │ │ │ │ + } │ │ │ │ │ + e[c[d]] = f │ │ │ │ │ + } │ │ │ │ │ + this._connected = false; │ │ │ │ │ + this._setStatus("suspending"); │ │ │ │ │ + return e │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._abort = function() { │ │ │ │ │ + clearTimeout(this._timeout); │ │ │ │ │ + clearInterval(this._inQto); │ │ │ │ │ + clearInterval(this._interval); │ │ │ │ │ + this._connected = false; │ │ │ │ │ + this._setStatus("aborted"); │ │ │ │ │ + this.oDbg.log("Disconnected.", 1); │ │ │ │ │ + this._handleEvent("ondisconnect"); │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("500", "cancel", "service-unavailable")) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._checkInQ = function() { │ │ │ │ │ + for (var a = 0; a < this._inQ.length && a < 10; a++) { │ │ │ │ │ + var b = this._inQ[0]; │ │ │ │ │ + this._inQ = this._inQ.slice(1, this._inQ.length); │ │ │ │ │ + var c = JSJaCPacket.wrapNode(b); │ │ │ │ │ + if (!c) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this._handleEvent("packet_in", c); │ │ │ │ │ + if (c.pType && !this._handlePID(c)) { │ │ │ │ │ + this._handleEvent(c.pType() + "_in", c); │ │ │ │ │ + this._handleEvent(c.pType(), c) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._checkQueue = function() { │ │ │ │ │ + if (this._pQueue.length != 0) { │ │ │ │ │ + this._process() │ │ │ │ │ + } │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doAuth = function() { │ │ │ │ │ + if (this.has_sasl && this.authtype == "nonsasl") { │ │ │ │ │ + this.oDbg.log("Warning: SASL present but not used", 1) │ │ │ │ │ + } │ │ │ │ │ + if (!this._doSASLAuth() && !this._doLegacyAuth()) { │ │ │ │ │ + this.oDbg.log("Auth failed for authtype " + this.authtype, 1); │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doInBandReg = function() { │ │ │ │ │ + if (this.authtype == "saslanon" || this.authtype == "anonymous") { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + var a = new JSJaCIQ(); │ │ │ │ │ + a.setType("set"); │ │ │ │ │ + a.setID("reg1"); │ │ │ │ │ + a.appendNode("query", { │ │ │ │ │ + xmlns: "jabber:iq:register" │ │ │ │ │ + }, [ │ │ │ │ │ + ["username", this.username], │ │ │ │ │ + ["password", this.pass] │ │ │ │ │ + ]); │ │ │ │ │ + this.send(a, this._doInBandRegDone) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doInBandRegDone = function(a) { │ │ │ │ │ + if (a && a.getType() == "error") { │ │ │ │ │ + this.oDbg.log("registration failed for " + this.username, 0); │ │ │ │ │ + this._handleEvent("onerror", a.getChild("error")); │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log(this.username + " registered succesfully", 0); │ │ │ │ │ + this._doAuth() │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doLegacyAuth = function() { │ │ │ │ │ + if (this.authtype != "nonsasl" && this.authtype != "anonymous") { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + var a = new JSJaCIQ(); │ │ │ │ │ + a.setIQ(this.server, "get", "auth1"); │ │ │ │ │ + a.appendNode("query", { │ │ │ │ │ + xmlns: "jabber:iq:auth" │ │ │ │ │ + }, [ │ │ │ │ │ + ["username", this.username] │ │ │ │ │ + ]); │ │ │ │ │ + this.send(a, this._doLegacyAuth2); │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doLegacyAuth2 = function(b) { │ │ │ │ │ + if (!b || b.getType() != "result") { │ │ │ │ │ + if (b && b.getType() == "error") { │ │ │ │ │ + this._handleEvent("onerror", b.getChild("error")) │ │ │ │ │ + } │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + var a = (b.getChild("digest") != null); │ │ │ │ │ + var b = new JSJaCIQ(); │ │ │ │ │ + b.setIQ(this.server, "set", "auth2"); │ │ │ │ │ + query = b.appendNode("query", { │ │ │ │ │ + xmlns: "jabber:iq:auth" │ │ │ │ │ + }, [ │ │ │ │ │ + ["username", this.username], │ │ │ │ │ + ["resource", this.resource] │ │ │ │ │ + ]); │ │ │ │ │ + if (a) { │ │ │ │ │ + query.appendChild(b.buildNode("digest", { │ │ │ │ │ + xmlns: "jabber:iq:auth" │ │ │ │ │ + }, hex_sha1(this.streamid + this.pass))) │ │ │ │ │ + } else { │ │ │ │ │ + if (this.allow_plain) { │ │ │ │ │ + query.appendChild(b.buildNode("password", { │ │ │ │ │ + xmlns: "jabber:iq:auth" │ │ │ │ │ + }, this.pass)) │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg.log("no valid login mechanism found", 1); │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + this.send(b, this._doLegacyAuthDone) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doLegacyAuthDone = function(a) { │ │ │ │ │ + if (a.getType() != "result") { │ │ │ │ │ + if (a.getType() == "error") { │ │ │ │ │ + this._handleEvent("onerror", a.getChild("error")) │ │ │ │ │ + } │ │ │ │ │ + this.disconnect() │ │ │ │ │ + } else { │ │ │ │ │ + this._handleEvent("onconnect") │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doSASLAuth = function() { │ │ │ │ │ + if (this.authtype == "nonsasl" || this.authtype == "anonymous") { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + if (this.authtype == "saslanon") { │ │ │ │ │ + if (this.mechs.ANONYMOUS) { │ │ │ │ │ + this.oDbg.log("SASL using mechanism 'ANONYMOUS'", 2); │ │ │ │ │ + return this._sendRaw("", this._doSASLAuthDone) │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log("SASL ANONYMOUS requested but not supported", 1) │ │ │ │ │ + } else { │ │ │ │ │ + if (this.mechs["DIGEST-MD5"]) { │ │ │ │ │ + this.oDbg.log("SASL using mechanism 'DIGEST-MD5'", 2); │ │ │ │ │ + return this._sendRaw("", this._doSASLAuthDigestMd5S1) │ │ │ │ │ + } else { │ │ │ │ │ + if (this.allow_plain && this.mechs.PLAIN) { │ │ │ │ │ + this.oDbg.log("SASL using mechanism 'PLAIN'", 2); │ │ │ │ │ + var a = this.username + "@" + this.domain + String.fromCharCode(0) + this.username + String.fromCharCode(0) + this.pass; │ │ │ │ │ + this.oDbg.log("authenticating with '" + a + "'", 2); │ │ │ │ │ + a = btoa(a); │ │ │ │ │ + return this._sendRaw("" + a + "", this._doSASLAuthDone) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log("No SASL mechanism applied", 1); │ │ │ │ │ + this.authtype = "nonsasl" │ │ │ │ │ + } │ │ │ │ │ + return false │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doSASLAuthDigestMd5S1 = function(e) { │ │ │ │ │ + if (e.nodeName != "challenge") { │ │ │ │ │ + this.oDbg.log("challenge missing", 1); │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("401", "auth", "not-authorized")); │ │ │ │ │ + this.disconnect() │ │ │ │ │ + } else { │ │ │ │ │ + var d = atob(e.firstChild.nodeValue); │ │ │ │ │ + this.oDbg.log("got challenge: " + d, 2); │ │ │ │ │ + this._nonce = d.substring(d.indexOf("nonce=") + 7); │ │ │ │ │ + this._nonce = this._nonce.substring(0, this._nonce.indexOf('"')); │ │ │ │ │ + this.oDbg.log("nonce: " + this._nonce, 2); │ │ │ │ │ + if (this._nonce == "" || this._nonce.indexOf('"') != -1) { │ │ │ │ │ + this.oDbg.log("nonce not valid, aborting", 1); │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this._digest_uri = "xmpp/"; │ │ │ │ │ + this._digest_uri += this.domain; │ │ │ │ │ + this._cnonce = cnonce(14); │ │ │ │ │ + this._nc = "00000001"; │ │ │ │ │ + var c = str_md5(this.username + ":" + this.domain + ":" + this.pass) + ":" + this._nonce + ":" + this._cnonce; │ │ │ │ │ + var b = "AUTHENTICATE:" + this._digest_uri; │ │ │ │ │ + var a = hex_md5(hex_md5(c) + ":" + this._nonce + ":" + this._nc + ":" + this._cnonce + ":auth:" + hex_md5(b)); │ │ │ │ │ + var f = 'username="' + this.username + '",realm="' + this.domain + '",nonce="' + this._nonce + '",cnonce="' + this._cnonce + '",nc="' + this._nc + '",qop=auth,digest-uri="' + this._digest_uri + '",response="' + a + '",charset="utf-8"'; │ │ │ │ │ + this.oDbg.log("response: " + f, 2); │ │ │ │ │ + this._sendRaw("" + binb2b64(str2binb(f)) + "", this._doSASLAuthDigestMd5S2) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doSASLAuthDigestMd5S2 = function(e) { │ │ │ │ │ + if (e.nodeName == "failure") { │ │ │ │ │ + if (e.xml) { │ │ │ │ │ + this.oDbg.log("auth error: " + e.xml, 1) │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg.log("auth error", 1) │ │ │ │ │ + } │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("401", "auth", "not-authorized")); │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + var c = atob(e.firstChild.nodeValue); │ │ │ │ │ + this.oDbg.log("response: " + c, 2); │ │ │ │ │ + var f = c.substring(c.indexOf("rspauth=") + 8); │ │ │ │ │ + this.oDbg.log("rspauth: " + f, 2); │ │ │ │ │ + var d = str_md5(this.username + ":" + this.domain + ":" + this.pass) + ":" + this._nonce + ":" + this._cnonce; │ │ │ │ │ + var b = ":" + this._digest_uri; │ │ │ │ │ + var a = hex_md5(hex_md5(d) + ":" + this._nonce + ":" + this._nc + ":" + this._cnonce + ":auth:" + hex_md5(b)); │ │ │ │ │ + this.oDbg.log("rsptest: " + a, 2); │ │ │ │ │ + if (a != f) { │ │ │ │ │ + this.oDbg.log("SASL Digest-MD5: server repsonse with wrong rspauth", 1); │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + if (e.nodeName == "success") { │ │ │ │ │ + this._reInitStream(this.domain, this._doStreamBind) │ │ │ │ │ + } else { │ │ │ │ │ + this._sendRaw("", this._doSASLAuthDone) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doSASLAuthDone = function(a) { │ │ │ │ │ + if (a.nodeName != "success") { │ │ │ │ │ + this.oDbg.log("auth failed", 1); │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("401", "auth", "not-authorized")); │ │ │ │ │ + this.disconnect() │ │ │ │ │ + } else { │ │ │ │ │ + this._reInitStream(this.domain, this._doStreamBind) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doStreamBind = function() { │ │ │ │ │ + var a = new JSJaCIQ(); │ │ │ │ │ + a.setIQ(null, "set", "bind_1"); │ │ │ │ │ + a.appendNode("bind", { │ │ │ │ │ + xmlns: "urn:ietf:params:xml:ns:xmpp-bind" │ │ │ │ │ + }, [ │ │ │ │ │ + ["resource", this.resource] │ │ │ │ │ + ]); │ │ │ │ │ + this.oDbg.log(a.xml()); │ │ │ │ │ + this.send(a, this._doXMPPSess) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doXMPPSess = function(a) { │ │ │ │ │ + if (a.getType() != "result" || a.getType() == "error") { │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + if (a.getType() == "error") { │ │ │ │ │ + this._handleEvent("onerror", a.getChild("error")) │ │ │ │ │ + } │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this.fulljid = a.getChildVal("jid"); │ │ │ │ │ + this.jid = this.fulljid.substring(0, this.fulljid.lastIndexOf("/")); │ │ │ │ │ + a = new JSJaCIQ(); │ │ │ │ │ + a.setIQ(this.domain, "set", "sess_1"); │ │ │ │ │ + a.appendNode("session", { │ │ │ │ │ + xmlns: "urn:ietf:params:xml:ns:xmpp-session" │ │ │ │ │ + }, []); │ │ │ │ │ + this.oDbg.log(a.xml()); │ │ │ │ │ + this.send(a, this._doXMPPSessDone) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doXMPPSessDone = function(a) { │ │ │ │ │ + if (a.getType() != "result" || a.getType() == "error") { │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + if (a.getType() == "error") { │ │ │ │ │ + this._handleEvent("onerror", a.getChild("error")) │ │ │ │ │ + } │ │ │ │ │ + return │ │ │ │ │ + } else { │ │ │ │ │ + this._handleEvent("onconnect") │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._handleEvent = function(d, a) { │ │ │ │ │ + d = d.toLowerCase(); │ │ │ │ │ + this.oDbg.log("incoming event '" + d + "'", 3); │ │ │ │ │ + if (!this._events[d]) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log("handling event '" + d + "'", 2); │ │ │ │ │ + for (var b = 0; b < this._events[d].length; b++) { │ │ │ │ │ + var c = this._events[d][b]; │ │ │ │ │ + if (typeof c.handler == "function") { │ │ │ │ │ + try { │ │ │ │ │ + if (a) { │ │ │ │ │ + if (a.pType) { │ │ │ │ │ + if ((!a.getNode().hasChildNodes() && c.childName != "*") || (a.getNode().hasChildNodes() && !a.getChild(c.childName, c.childNS))) { │ │ │ │ │ + continue │ │ │ │ │ + } │ │ │ │ │ + if (c.type != "*" && a.getType() != c.type) { │ │ │ │ │ + continue │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log(c.childName + "/" + c.childNS + "/" + c.type + " => match for handler " + c.handler, 3) │ │ │ │ │ + } │ │ │ │ │ + if (c.handler(a)) { │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ + } else { │ │ │ │ │ + if (c.handler()) { │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } catch (f) { │ │ │ │ │ + if (f.fileName && f.lineNumber) { │ │ │ │ │ + this.oDbg.log(c.handler + "\n>>>" + f.name + ": " + f.message + " in " + f.fileName + " line " + f.lineNumber, 1) │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg.log(c.handler + "\n>>>" + f.name + ": " + f.message, 1) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._handlePID = function(d) { │ │ │ │ │ + if (!d.getID()) { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + for (var b in this._regIDs) { │ │ │ │ │ + if (this._regIDs.hasOwnProperty(b) && this._regIDs[b] && b == d.getID()) { │ │ │ │ │ + var a = d.getID(); │ │ │ │ │ + this.oDbg.log("handling " + a, 3); │ │ │ │ │ + try { │ │ │ │ │ + if (this._regIDs[b].cb.call(this, d, this._regIDs[b].arg) === false) { │ │ │ │ │ + return false │ │ │ │ │ + } else { │ │ │ │ │ + this._unregisterPID(a); │ │ │ │ │ + return true │ │ │ │ │ + } │ │ │ │ │ + } catch (c) { │ │ │ │ │ + this.oDbg.log(c.name + ": " + c.message, 1); │ │ │ │ │ + this._unregisterPID(a); │ │ │ │ │ + return true │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return false │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._handleResponse = function(d) { │ │ │ │ │ + var c = this._parseResponse(d); │ │ │ │ │ + if (!c) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + for (var b = 0; b < c.childNodes.length; b++) { │ │ │ │ │ + if (this._sendRawCallbacks.length) { │ │ │ │ │ + var a = this._sendRawCallbacks[0]; │ │ │ │ │ + this._sendRawCallbacks = this._sendRawCallbacks.slice(1, this._sendRawCallbacks.length); │ │ │ │ │ + a.fn.call(this, c.childNodes.item(b), a.arg); │ │ │ │ │ + continue │ │ │ │ │ + } │ │ │ │ │ + this._inQ = this._inQ.concat(c.childNodes.item(b)) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._parseStreamFeatures = function(f) { │ │ │ │ │ + if (!f) { │ │ │ │ │ + this.oDbg.log("nothing to parse ... aborting", 1); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + var e; │ │ │ │ │ + if (f.getElementsByTagNameNS) { │ │ │ │ │ + e = f.getElementsByTagNameNS("http://etherx.jabber.org/streams", "error").item(0) │ │ │ │ │ + } else { │ │ │ │ │ + var g = f.getElementsByTagName("error"); │ │ │ │ │ + for (var b = 0; b < g.length; b++) { │ │ │ │ │ + if (g.item(b).namespaceURI == "http://etherx.jabber.org/streams") { │ │ │ │ │ + e = g.item(b); │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (e) { │ │ │ │ │ + this._setStatus("internal_server_error"); │ │ │ │ │ + clearTimeout(this._timeout); │ │ │ │ │ + clearInterval(this._interval); │ │ │ │ │ + clearInterval(this._inQto); │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("503", "cancel", "session-terminate")); │ │ │ │ │ + this._connected = false; │ │ │ │ │ + this.oDbg.log("Disconnected.", 1); │ │ │ │ │ + this._handleEvent("ondisconnect"); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + this.mechs = new Object(); │ │ │ │ │ + var d = f.getElementsByTagName("mechanisms"); │ │ │ │ │ + this.has_sasl = false; │ │ │ │ │ + for (var b = 0; b < d.length; b++) { │ │ │ │ │ + if (d.item(b).getAttribute("xmlns") == "urn:ietf:params:xml:ns:xmpp-sasl") { │ │ │ │ │ + this.has_sasl = true; │ │ │ │ │ + var c = d.item(b).getElementsByTagName("mechanism"); │ │ │ │ │ + for (var a = 0; a < c.length; a++) { │ │ │ │ │ + this.mechs[c.item(a).firstChild.nodeValue] = true │ │ │ │ │ + } │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (this.has_sasl) { │ │ │ │ │ + this.oDbg.log("SASL detected", 2) │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg.log("No support for SASL detected", 2); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._process = function(a) { │ │ │ │ │ + if (!this.connected()) { │ │ │ │ │ + this.oDbg.log("Connection lost ...", 1); │ │ │ │ │ + if (this._interval) { │ │ │ │ │ + clearInterval(this._interval) │ │ │ │ │ + } │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this.setPollInterval(a); │ │ │ │ │ + if (this._timeout) { │ │ │ │ │ + clearTimeout(this._timeout) │ │ │ │ │ + } │ │ │ │ │ + var d = this._getFreeSlot(); │ │ │ │ │ + if (d < 0) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + if (typeof(this._req[d]) != "undefined" && typeof(this._req[d].r) != "undefined" && this._req[d].r.readyState != 4) { │ │ │ │ │ + this.oDbg.log("Slot " + d + " is not ready"); │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + if (!this.isPolling() && this._pQueue.length == 0 && this._req[(d + 1) % 2] && this._req[(d + 1) % 2].r.readyState != 4) { │ │ │ │ │ + this.oDbg.log("all slots busy, standby ...", 2); │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + if (!this.isPolling()) { │ │ │ │ │ + this.oDbg.log("Found working slot at " + d, 2) │ │ │ │ │ + } │ │ │ │ │ + this._req[d] = this._setupRequest(true); │ │ │ │ │ + this._req[d].r.onreadystatechange = JSJaC.bind(function() { │ │ │ │ │ + if (!this.connected()) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + if (this._req[d].r.readyState == 4) { │ │ │ │ │ + this._setStatus("processing"); │ │ │ │ │ + this.oDbg.log("async recv: " + this._req[d].r.responseText, 4); │ │ │ │ │ + this._handleResponse(this._req[d]); │ │ │ │ │ + if (this._pQueue.length) { │ │ │ │ │ + this._timeout = setTimeout(JSJaC.bind(this._process, this), 100) │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg.log("scheduling next poll in " + this.getPollInterval() + " msec", 4); │ │ │ │ │ + this._timeout = setTimeout(JSJaC.bind(this._process, this), this.getPollInterval()) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + }, this); │ │ │ │ │ + try { │ │ │ │ │ + this._req[d].r.onerror = JSJaC.bind(function() { │ │ │ │ │ + if (!this.connected()) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this._errcnt++; │ │ │ │ │ + this.oDbg.log("XmlHttpRequest error (" + this._errcnt + ")", 1); │ │ │ │ │ + if (this._errcnt > JSJAC_ERR_COUNT) { │ │ │ │ │ + this._abort(); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + this._setStatus("onerror_fallback"); │ │ │ │ │ + setTimeout(JSJaC.bind(this._resume, this), this.getPollInterval()); │ │ │ │ │ + return false │ │ │ │ │ + }, this) │ │ │ │ │ + } catch (b) {} │ │ │ │ │ + var c = this._getRequestString(); │ │ │ │ │ + if (typeof(this._rid) != "undefined") { │ │ │ │ │ + this._req[d].rid = this._rid │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log("sending: " + c, 4); │ │ │ │ │ + this._req[d].r.send(c) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._registerPID = function(c, b, a) { │ │ │ │ │ + if (!c || !b) { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + this._regIDs[c] = new Object(); │ │ │ │ │ + this._regIDs[c].cb = b; │ │ │ │ │ + if (a) { │ │ │ │ │ + this._regIDs[c].arg = a │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log("registered " + c, 3); │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._sendEmpty = function JSJaCSendEmpty() { │ │ │ │ │ + var b = this._getFreeSlot(); │ │ │ │ │ + this._req[b] = this._setupRequest(true); │ │ │ │ │ + this._req[b].r.onreadystatechange = JSJaC.bind(function() { │ │ │ │ │ + if (this._req[b].r.readyState == 4) { │ │ │ │ │ + this.oDbg.log("async recv: " + this._req[b].r.responseText, 4); │ │ │ │ │ + this._getStreamID(b) │ │ │ │ │ + } │ │ │ │ │ + }, this); │ │ │ │ │ + if (typeof(this._req[b].r.onerror) != "undefined") { │ │ │ │ │ + this._req[b].r.onerror = JSJaC.bind(function(c) { │ │ │ │ │ + this.oDbg.log("XmlHttpRequest error", 1); │ │ │ │ │ + return false │ │ │ │ │ + }, this) │ │ │ │ │ + } │ │ │ │ │ + var a = this._getRequestString(); │ │ │ │ │ + this.oDbg.log("sending: " + a, 4); │ │ │ │ │ + this._req[b].r.send(a) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._sendRaw = function(c, b, a) { │ │ │ │ │ + if (b) { │ │ │ │ │ + this._sendRawCallbacks.push({ │ │ │ │ │ + fn: b, │ │ │ │ │ + arg: a │ │ │ │ │ + }) │ │ │ │ │ + } │ │ │ │ │ + this._pQueue.push(c); │ │ │ │ │ + this._process(); │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._setStatus = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + if (a != this._status) { │ │ │ │ │ + this._status = a; │ │ │ │ │ + this._handleEvent("onstatuschanged", a); │ │ │ │ │ + this._handleEvent("status_changed", a) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._unregisterPID = function(a) { │ │ │ │ │ + if (!this._regIDs[a]) { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + this._regIDs[a] = null; │ │ │ │ │ + this.oDbg.log("unregistered " + a, 3); │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ + │ │ │ │ │ +function JSJaCHttpBindingConnection(a) { │ │ │ │ │ + this.base = JSJaCConnection; │ │ │ │ │ + this.base(a); │ │ │ │ │ + this._hold = JSJACHBC_MAX_HOLD; │ │ │ │ │ + this._inactivity = 0; │ │ │ │ │ + this._last_requests = new Object(); │ │ │ │ │ + this._last_rid = 0; │ │ │ │ │ + this._min_polling = 0; │ │ │ │ │ + this._pause = 0; │ │ │ │ │ + this._wait = JSJACHBC_MAX_WAIT │ │ │ │ │ +} │ │ │ │ │ +JSJaCHttpBindingConnection.prototype = new JSJaCConnection(); │ │ │ │ │ +JSJaCHttpBindingConnection.prototype.inherit = function(a) { │ │ │ │ │ + if (a.jid) { │ │ │ │ │ + var b = new JSJaCJID(a.jid); │ │ │ │ │ + this.domain = b.getDomain(); │ │ │ │ │ + this.username = b.getNode(); │ │ │ │ │ + this.resource = b.getResource() │ │ │ │ │ + } else { │ │ │ │ │ + this.domain = a.domain || "localhost"; │ │ │ │ │ + this.username = a.username; │ │ │ │ │ + this.resource = a.resource │ │ │ │ │ + } │ │ │ │ │ + this._sid = a.sid; │ │ │ │ │ + this._rid = a.rid; │ │ │ │ │ + this._min_polling = a.polling; │ │ │ │ │ + this._inactivity = a.inactivity; │ │ │ │ │ + this._setHold(a.requests - 1); │ │ │ │ │ + this.setPollInterval(this._timerval); │ │ │ │ │ + if (a.wait) { │ │ │ │ │ + this._wait = a.wait │ │ │ │ │ + } │ │ │ │ │ + this._connected = true; │ │ │ │ │ + this._handleEvent("onconnect"); │ │ │ │ │ + this._interval = setInterval(JSJaC.bind(this._checkQueue, this), JSJAC_CHECKQUEUEINTERVAL); │ │ │ │ │ + this._inQto = setInterval(JSJaC.bind(this._checkInQ, this), JSJAC_CHECKINQUEUEINTERVAL); │ │ │ │ │ + this._timeout = setTimeout(JSJaC.bind(this._process, this), this.getPollInterval()) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpBindingConnection.prototype.setPollInterval = function(a) { │ │ │ │ │ + if (a && !isNaN(a)) { │ │ │ │ │ + if (!this.isPolling()) { │ │ │ │ │ + this._timerval = 100 │ │ │ │ │ + } else { │ │ │ │ │ + if (this._min_polling && a < this._min_polling * 1000) { │ │ │ │ │ + this._timerval = this._min_polling * 1000 │ │ │ │ │ + } else { │ │ │ │ │ + if (this._inactivity && a > this._inactivity * 1000) { │ │ │ │ │ + this._timerval = this._inactivity * 1000 │ │ │ │ │ + } else { │ │ │ │ │ + this._timerval = a │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return this._timerval │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpBindingConnection.prototype.isPolling = function() { │ │ │ │ │ + return (this._hold == 0) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpBindingConnection.prototype._getFreeSlot = function() { │ │ │ │ │ + for (var a = 0; a < this._hold + 1; a++) { │ │ │ │ │ + if (typeof(this._req[a]) == "undefined" || typeof(this._req[a].r) == "undefined" || this._req[a].r.readyState == 4) { │ │ │ │ │ + return a │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return -1 │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpBindingConnection.prototype._getHold = function() { │ │ │ │ │ + return this._hold │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpBindingConnection.prototype._getRequestString = function(b, e) { │ │ │ │ │ + b = b || ""; │ │ │ │ │ + var f = ""; │ │ │ │ │ + if (this._rid <= this._last_rid && typeof(this._last_requests[this._rid]) != "undefined") { │ │ │ │ │ + f = this._last_requests[this._rid].xml │ │ │ │ │ + } else { │ │ │ │ │ + var a = ""; │ │ │ │ │ + while (this._pQueue.length) { │ │ │ │ │ + var d = this._pQueue[0]; │ │ │ │ │ + a += d; │ │ │ │ │ + this._pQueue = this._pQueue.slice(1, this._pQueue.length) │ │ │ │ │ + } │ │ │ │ │ + f = "" │ │ │ │ │ + } else { │ │ │ │ │ + f += "/>" │ │ │ │ │ + } │ │ │ │ │ + this._last_requests[this._rid] = new Object(); │ │ │ │ │ + this._last_requests[this._rid].xml = f; │ │ │ │ │ + this._last_rid = this._rid; │ │ │ │ │ + for (var c in this._last_requests) { │ │ │ │ │ + if (this._last_requests.hasOwnProperty(c) && c < this._rid - this._hold) { │ │ │ │ │ + delete(this._last_requests[c]) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return f │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpBindingConnection.prototype._getInitialRequestString = function() { │ │ │ │ │ + var a = " JSJAC_ERR_COUNT) { │ │ │ │ │ + this._abort(); │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ + if (this.connected()) { │ │ │ │ │ + this.oDbg.log("repeating (" + this._errcnt + ")", 1); │ │ │ │ │ + this._setStatus("proto_error_fallback"); │ │ │ │ │ + setTimeout(JSJaC.bind(this._resume, this), this.getPollInterval()) │ │ │ │ │ + } │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ + } catch (d) { │ │ │ │ │ + this.oDbg.log("XMLHttpRequest error: status not available", 1); │ │ │ │ │ + this._errcnt++; │ │ │ │ │ + if (this._errcnt > JSJAC_ERR_COUNT) { │ │ │ │ │ + this._abort() │ │ │ │ │ + } else { │ │ │ │ │ + if (this.connected()) { │ │ │ │ │ + this.oDbg.log("repeating (" + this._errcnt + ")", 1); │ │ │ │ │ + this._setStatus("proto_error_fallback"); │ │ │ │ │ + setTimeout(JSJaC.bind(this._resume, this), this.getPollInterval()) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ + var a = b.responseXML.documentElement; │ │ │ │ │ + if (!a || a.tagName != "body" || a.namespaceURI != "http://jabber.org/protocol/httpbind") { │ │ │ │ │ + this.oDbg.log("invalid response:\n" + b.responseText, 1); │ │ │ │ │ + clearTimeout(this._timeout); │ │ │ │ │ + clearInterval(this._interval); │ │ │ │ │ + clearInterval(this._inQto); │ │ │ │ │ + this._connected = false; │ │ │ │ │ + this.oDbg.log("Disconnected.", 1); │ │ │ │ │ + this._handleEvent("ondisconnect"); │ │ │ │ │ + this._setStatus("internal_server_error"); │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("500", "wait", "internal-server-error")); │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ + if (typeof(c.rid) != "undefined" && this._last_requests[c.rid]) { │ │ │ │ │ + if (this._last_requests[c.rid].handled) { │ │ │ │ │ + this.oDbg.log("already handled " + c.rid, 2); │ │ │ │ │ + return null │ │ │ │ │ + } else { │ │ │ │ │ + this._last_requests[c.rid].handled = true │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (a.getAttribute("type") == "terminate") { │ │ │ │ │ + this.oDbg.log("session terminated:\n" + b.responseText, 1); │ │ │ │ │ + clearTimeout(this._timeout); │ │ │ │ │ + clearInterval(this._interval); │ │ │ │ │ + clearInterval(this._inQto); │ │ │ │ │ + var f = a.getAttribute("condition"); │ │ │ │ │ + if (f == "remote-stream-error") { │ │ │ │ │ + if (a.getElementsByTagName("conflict").length > 0) { │ │ │ │ │ + this._setStatus("session-terminate-conflict") │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (f == null) { │ │ │ │ │ + f = "session-terminate" │ │ │ │ │ + } │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("503", "cancel", f)); │ │ │ │ │ + this._connected = false; │ │ │ │ │ + this.oDbg.log("Disconnected.", 1); │ │ │ │ │ + this._handleEvent("ondisconnect"); │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ + this._errcnt = 0; │ │ │ │ │ + return b.responseXML.documentElement │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpBindingConnection.prototype._reInitStream = function(c, b, a) { │ │ │ │ │ + this._reinit = true; │ │ │ │ │ + b.call(this, a) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpBindingConnection.prototype._resume = function() { │ │ │ │ │ + if (this._pause == 0 && this._rid >= this._last_rid) { │ │ │ │ │ + this._rid = this._last_rid - 1 │ │ │ │ │ + } │ │ │ │ │ + this._process() │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpBindingConnection.prototype._setHold = function(a) { │ │ │ │ │ + if (!a || isNaN(a) || a < 0) { │ │ │ │ │ + a = 0 │ │ │ │ │ + } else { │ │ │ │ │ + if (a > JSJACHBC_MAX_HOLD) { │ │ │ │ │ + a = JSJACHBC_MAX_HOLD │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + this._hold = a; │ │ │ │ │ + return this._hold │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpBindingConnection.prototype._setupRequest = function(a) { │ │ │ │ │ + var c = new Object(); │ │ │ │ │ + var b = XmlHttp.create(); │ │ │ │ │ + try { │ │ │ │ │ + b.open("POST", this._httpbase, a); │ │ │ │ │ + b.setRequestHeader("Content-Type", "text/xml; charset=utf-8") │ │ │ │ │ + } catch (d) { │ │ │ │ │ + this.oDbg.log(d, 1) │ │ │ │ │ + } │ │ │ │ │ + c.r = b; │ │ │ │ │ + this._rid++; │ │ │ │ │ + c.rid = this._rid; │ │ │ │ │ + return c │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpBindingConnection.prototype._suspend = function() { │ │ │ │ │ + if (this._pause == 0) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + var c = this._getFreeSlot(); │ │ │ │ │ + this._req[c] = this._setupRequest(false); │ │ │ │ │ + var b = "\s*$/)) { │ │ │ │ │ + a += "" │ │ │ │ │ + } │ │ │ │ │ + c = XmlDocument.create("doc"); │ │ │ │ │ + c.loadXML(a); │ │ │ │ │ + if (!this._parseStreamFeatures(c)) { │ │ │ │ │ + this.authtype = "nonsasl"; │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + } catch (b) { │ │ │ │ │ + this.oDbg.log("loadXML: " + b.toString(), 1) │ │ │ │ │ + } │ │ │ │ │ + this._connected = true; │ │ │ │ │ + if (this.register) { │ │ │ │ │ + this._doInBandReg() │ │ │ │ │ + } else { │ │ │ │ │ + this._doAuth() │ │ │ │ │ + } │ │ │ │ │ + this._process(this._timerval) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpPollingConnection.prototype._getSuspendVars = function() { │ │ │ │ │ + return new Array() │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpPollingConnection.prototype._handleInitialResponse = function() { │ │ │ │ │ + this.oDbg.log(this._req[0].r.getAllResponseHeaders(), 4); │ │ │ │ │ + var b = this._req[0].r.getResponseHeader("Set-Cookie"); │ │ │ │ │ + b = b.split(";"); │ │ │ │ │ + for (var a = 0; a < b.length; a++) { │ │ │ │ │ + aArg = b[a].split("="); │ │ │ │ │ + if (aArg[0] == "ID") { │ │ │ │ │ + this._sid = aArg[1] │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log("got sid: " + this._sid, 2); │ │ │ │ │ + this._connected = true; │ │ │ │ │ + this._interval = setInterval(JSJaC.bind(this._checkQueue, this), JSJAC_CHECKQUEUEINTERVAL); │ │ │ │ │ + this._inQto = setInterval(JSJaC.bind(this._checkInQ, this), JSJAC_CHECKINQUEUEINTERVAL); │ │ │ │ │ + this._getStreamID() │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpPollingConnection.prototype._parseResponse = function(a) { │ │ │ │ │ + var h = a.r; │ │ │ │ │ + if (!this.connected()) { │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ + if (h.status != 200) { │ │ │ │ │ + this.oDbg.log("invalid response (" + h.status + "):" + h.responseText + "\n" + h.getAllResponseHeaders(), 1); │ │ │ │ │ + this._setStatus("internal_server_error"); │ │ │ │ │ + clearTimeout(this._timeout); │ │ │ │ │ + clearInterval(this._interval); │ │ │ │ │ + clearInterval(this._inQto); │ │ │ │ │ + this._connected = false; │ │ │ │ │ + this.oDbg.log("Disconnected.", 1); │ │ │ │ │ + this._handleEvent("ondisconnect"); │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("503", "cancel", "service-unavailable")); │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log(h.getAllResponseHeaders(), 4); │ │ │ │ │ + var b, j = h.getResponseHeader("Set-Cookie"); │ │ │ │ │ + if (j == null) { │ │ │ │ │ + b = "-1:0" │ │ │ │ │ + } else { │ │ │ │ │ + j = j.split(";"); │ │ │ │ │ + var b; │ │ │ │ │ + for (var d = 0; d < j.length; d++) { │ │ │ │ │ + var g = j[d].split("="); │ │ │ │ │ + if (g[0] == "ID") { │ │ │ │ │ + b = g[1] │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (typeof(b) != "undefined" && b.indexOf(":0") != -1) { │ │ │ │ │ + switch (b.substring(0, b.indexOf(":0"))) { │ │ │ │ │ + case "0": │ │ │ │ │ + this.oDbg.log("invalid response:" + h.responseText, 1); │ │ │ │ │ + break; │ │ │ │ │ + case "-1": │ │ │ │ │ + this.oDbg.log("Internal Server Error", 1); │ │ │ │ │ + break; │ │ │ │ │ + case "-2": │ │ │ │ │ + this.oDbg.log("Bad Request", 1); │ │ │ │ │ + break; │ │ │ │ │ + case "-3": │ │ │ │ │ + this.oDbg.log("Key Sequence Error", 1); │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ + this._setStatus("internal_server_error"); │ │ │ │ │ + clearTimeout(this._timeout); │ │ │ │ │ + clearInterval(this._interval); │ │ │ │ │ + clearInterval(this._inQto); │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("500", "wait", "internal-server-error")); │ │ │ │ │ + this._connected = false; │ │ │ │ │ + this.oDbg.log("Disconnected.", 1); │ │ │ │ │ + this._handleEvent("ondisconnect"); │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ + if (!h.responseText || h.responseText == "") { │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ + try { │ │ │ │ │ + var c = h.responseText.replace(/\<\?xml.+\?\>/, ""); │ │ │ │ │ + if (c.match(/" + c + ""); │ │ │ │ │ + if (!k || k.tagName == "parsererror") { │ │ │ │ │ + this.oDbg.log("parsererror", 1); │ │ │ │ │ + k = JSJaCHttpPollingConnection._parseTree("" + h.responseText); │ │ │ │ │ + if (k && k.tagName != "parsererror") { │ │ │ │ │ + this.oDbg.log("stream closed", 1); │ │ │ │ │ + if (k.getElementsByTagName("conflict").length > 0) { │ │ │ │ │ + this._setStatus("session-terminate-conflict") │ │ │ │ │ + } │ │ │ │ │ + clearTimeout(this._timeout); │ │ │ │ │ + clearInterval(this._interval); │ │ │ │ │ + clearInterval(this._inQto); │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("503", "cancel", "session-terminate")); │ │ │ │ │ + this._connected = false; │ │ │ │ │ + this.oDbg.log("Disconnected.", 1); │ │ │ │ │ + this._handleEvent("ondisconnect") │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg.log("parsererror:" + k, 1) │ │ │ │ │ + } │ │ │ │ │ + return k │ │ │ │ │ + } │ │ │ │ │ + return k │ │ │ │ │ + } catch (f) { │ │ │ │ │ + this.oDbg.log("parse error:" + f.message, 1) │ │ │ │ │ + } │ │ │ │ │ + return null │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpPollingConnection.prototype._reInitStream = function(c, b, a) { │ │ │ │ │ + this._sendRaw("", b, a) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpPollingConnection.prototype._resume = function() { │ │ │ │ │ + this._process(this._timerval) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpPollingConnection.prototype._setupRequest = function(a) { │ │ │ │ │ + var c = XmlHttp.create(); │ │ │ │ │ + try { │ │ │ │ │ + c.open("POST", this._httpbase, a); │ │ │ │ │ + if (c.overrideMimeType) { │ │ │ │ │ + c.overrideMimeType("text/plain; charset=utf-8") │ │ │ │ │ + } │ │ │ │ │ + c.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") │ │ │ │ │ + } catch (d) { │ │ │ │ │ + this.oDbg.log(d, 1) │ │ │ │ │ + } │ │ │ │ │ + var b = new Object(); │ │ │ │ │ + b.r = c; │ │ │ │ │ + return b │ │ │ │ │ +}; │ │ │ │ │ +JSJaCHttpPollingConnection.prototype._suspend = function() {}; │ │ │ │ │ +JSJaCHttpPollingConnection._parseTree = function(a) { │ │ │ │ │ + try { │ │ │ │ │ + var b = XmlDocument.create("body", "foo"); │ │ │ │ │ + if (typeof(b.loadXML) != "undefined") { │ │ │ │ │ + b.loadXML(a); │ │ │ │ │ + return b.documentElement │ │ │ │ │ + } else { │ │ │ │ │ + if (window.DOMParser) { │ │ │ │ │ + return (new DOMParser()).parseFromString(a, "text/xml").documentElement │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } catch (c) {} │ │ │ │ │ + return null │ │ │ │ │ +}; │ │ │ │ │ +var JSJaC = { │ │ │ │ │ + Version: "$Rev$", │ │ │ │ │ + require: function(a) { │ │ │ │ │ + document.write('