@czhy/sip-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,17 @@
1
+ (function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode('#layout .item{color:#666;font-size:30px;user-select:none;text-align:center;background-color:#ccc}#layout .active{border:3px solid red}.layout2,.layout3,.layout5,.layout7,.layout8,.layout9{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-around}.layout1 .item{width:200px;height:200px;margin:0 auto;line-height:200px}.layout2 .item{width:45%;height:200px;line-height:200px}.layout3 .item{width:45%;height:140px;line-height:140px}.layout3 .item:nth-child(1),.layout3 .item:nth-child(2){margin-bottom:20px}.layout4 .item:nth-child(1){float:left;width:190px;height:410px;line-height:410px}.layout4 .item{float:right;width:130px;height:130px;line-height:130px;margin-bottom:10px}.layout5 .item{width:30%;height:150px;line-height:150px;margin-bottom:20px}.layout6 .item:nth-child(1){float:left;width:65%;height:200px;line-height:200px;margin-bottom:20px}.layout6 .item:nth-child(2),.layout6 .item:nth-child(3){float:right;width:30%;height:90px;line-height:90px;margin-bottom:20px}.layout6 .item:nth-child(4),.layout6 .item:nth-child(5),.layout6 .item:nth-child(6){float:left;width:30%;height:90px;line-height:90px}.layout6 .item:nth-child(4),.layout6 .item:nth-child(5){margin-right:15px}.layout6 .item:nth-child(6){width:30%}.layout7 .item{width:30%;height:100px;line-height:100px;margin-bottom:20px}.layout8 .item{width:24%;height:100px;line-height:100px;margin-bottom:5px}.layout9 .item{width:12%;height:50px;font-size:24px!important;line-height:50px;margin-bottom:3px}#mask{top:0;left:0;width:100%;height:100%;z-index:99999;display:none;position:absolute;background:#00000080}#mask span{color:#ccc;top:50%;left:50%;font-size:50px;position:absolute;transform:translate(-50%) translateY(-50%);animation:load 2s linear infinite}@keyframes load{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#localCanvas{top:50%;left:0;z-index:5;width:100%;height:350px;position:absolute;transform:translateY(-50%)}#localCanvas .canvasBtn{left:10px;bottom:20px;z-index:99;position:absolute}#localCanvas .canvasBtn .wipe{border:none;color:#fff;cursor:pointer;padding:2px 20px;line-height:25px;margin-right:10px;border-radius:20px;background-color:#44acb7}#layoutss{display:flex;flex-wrap:wrap;justify-content:space-between}#layoutss img{width:32%;margin-bottom:5px}dialog[data-v-8ea83b75]{top:30%;color:#fff;z-index:99;border:none;padding:10px;position:absolute;border-radius:5px;background-color:#00000080}.title[data-v-8ea83b75]{font-size:15px;margin-bottom:10px}.content[data-v-8ea83b75]{font-size:15px;margin-top:10px;margin-bottom:15px}.button[data-v-8ea83b75]{display:flex;justify-content:center}.funkey[data-v-51446e04]{left:50%;bottom:130px;z-index:7;width:300px;height:auto;display:flex;flex-wrap:wrap;padding-top:10px;border-radius:14px;position:absolute;justify-content:center;transform:translate(-50%);background:#ffffff0f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);box-shadow:0 8px 32px #00000059}.funkey div[data-v-51446e04]{width:33.33%;cursor:pointer;user-select:none;text-align:center;margin-bottom:10px;transition:opacity .15s}.funkey div[data-v-51446e04]:hover{opacity:.8}.funkey div img[data-v-51446e04]{width:25px;height:25px}.funkey div span[data-v-51446e04]{display:block;font-size:12px;color:#ffffffe0}.after[data-v-51446e04]{left:0;top:50%;margin:0 10px;padding:0;width:4px;height:36px;cursor:pointer;position:absolute;border-radius:2px;transform:translateY(-50%);background:#ffffff73;transition:background .15s}.after[data-v-51446e04]:hover{background:#ffffffbf}.xuanfu[data-v-51446e04]{z-index:7;width:28px;height:180px;bottom:130px;cursor:pointer;line-height:180px;position:absolute;border-radius:0 12px 12px 0;background:#ffffff0f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);border-left:none;transition:background .15s}.xuanfu[data-v-51446e04]:hover{background:#ffffff1a}.xuanfu[data-v-51446e04]:after{top:50%;content:"";width:3px;height:36px;position:absolute;border-radius:2px;transform:translateY(-50%);background:#ffffff73}button[data-v-51446e04]{margin:5px;padding:0 25px;border:none;outline:none;font-size:14px;line-height:25px;border-radius:5px;transition:all .2s;background-color:#fff}button[data-v-51446e04]:active{background-color:#ccc}.js-dialer[data-v-dabc047a]{--kpd-fg: var(--js-sip-fg, #f3f4f6);--kpd-fg-dim: rgba(243, 244, 246, .55);--kpd-key-bg: rgba(255, 255, 255, .06);--kpd-key-bg-hover: rgba(255, 255, 255, .12);--kpd-key-bg-press: rgba(255, 255, 255, .22);--kpd-key-border: rgba(255, 255, 255, .1);--kpd-display-bg: rgba(0, 0, 0, .18);--kpd-audio: var(--js-sip-primary, #10b981);--kpd-audio-hover: #14c08e;--kpd-video: #3b82f6;--kpd-video-hover: #4f8df5;--kpd-back: rgba(255, 255, 255, .1);--kpd-back-hover: rgba(255, 255, 255, .2);--kpd-radius: 16px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:100%;max-width:340px;padding:14px;box-sizing:border-box;color:var(--kpd-fg);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,Roboto,sans-serif;user-select:none;-webkit-tap-highlight-color:transparent;z-index:8}.js-dialer__display[data-v-dabc047a]{position:relative;display:flex;align-items:center;justify-content:center;min-height:56px;margin-bottom:14px;padding:10px 48px;background:var(--kpd-display-bg);border-radius:var(--kpd-radius);overflow:hidden}.js-dialer__num[data-v-dabc047a]{flex:1;text-align:center;font-size:26px;font-weight:500;letter-spacing:1.5px;color:var(--kpd-fg);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.js-dialer__num--empty[data-v-dabc047a]{color:var(--kpd-fg-dim);font-size:14px;font-weight:400;letter-spacing:normal}.js-dialer__clear[data-v-dabc047a],.js-dialer__back[data-v-dabc047a]{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--kpd-fg-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.js-dialer__clear[data-v-dabc047a]{left:8px;font-size:22px;line-height:1}.js-dialer__back[data-v-dabc047a]{right:8px}.js-dialer__clear[data-v-dabc047a]:hover,.js-dialer__back[data-v-dabc047a]:hover{background:#ffffff14;color:var(--kpd-fg)}.js-dialer__pad[data-v-dabc047a]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.js-dialer__key[data-v-dabc047a]{position:relative;aspect-ratio:1 / 1;min-height:60px;padding:0;border:1px solid var(--kpd-key-border);border-radius:50%;background:var(--kpd-key-bg);color:var(--kpd-fg);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transition:background .12s,transform .08s,box-shadow .12s;overflow:hidden}.js-dialer__key[data-v-dabc047a]:hover{background:var(--kpd-key-bg-hover)}.js-dialer__key.is-pressed[data-v-dabc047a],.js-dialer__key[data-v-dabc047a]:active{background:var(--kpd-key-bg-press);transform:scale(.94);box-shadow:0 0 0 4px #ffffff14}.js-dialer__key-main[data-v-dabc047a]{font-size:24px;font-weight:500;line-height:1;font-variant-numeric:tabular-nums}.js-dialer__key-sub[data-v-dabc047a]{font-size:10px;font-weight:600;letter-spacing:1px;color:var(--kpd-fg-dim);line-height:1}.js-dialer__actions[data-v-dabc047a]{display:flex;align-items:center;justify-content:center;gap:18px;padding:4px 0 2px}.js-dialer__btn[data-v-dabc047a]{width:56px;height:56px;padding:0;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .08s,box-shadow .2s;box-shadow:0 6px 18px #00000040}.js-dialer__btn[data-v-dabc047a]:active{transform:scale(.92)}.js-dialer__btn[data-v-dabc047a]:disabled{opacity:.35;cursor:not-allowed;box-shadow:none;transform:none}.js-dialer__btn--back[data-v-dabc047a]{background:var(--kpd-back);box-shadow:none}.js-dialer__btn--back[data-v-dabc047a]:hover{background:var(--kpd-back-hover)}.js-dialer__btn--audio[data-v-dabc047a]{background:var(--kpd-audio);box-shadow:0 6px 18px #10b98159}.js-dialer__btn--audio[data-v-dabc047a]:hover{background:var(--kpd-audio-hover)}.js-dialer__btn--video[data-v-dabc047a]{background:var(--kpd-video);box-shadow:0 6px 18px #3b82f659}.js-dialer__btn--video[data-v-dabc047a]:hover{background:var(--kpd-video-hover)}@media (max-width: 320px){.js-dialer[data-v-dabc047a]{padding:10px}.js-dialer__key[data-v-dabc047a]{min-height:52px}.js-dialer__key-main[data-v-dabc047a]{font-size:20px}.js-dialer__btn[data-v-dabc047a]{width:48px;height:48px}}.sipcall[data-v-5a0fe8df]{top:0;color:var(--js-sip-fg, #fff);width:var(--js-sip-width, 480px);height:var(--js-sip-height, 800px);overflow:hidden;position:relative;background:linear-gradient(180deg,var(--js-sip-bg-from, #1a1736) 0%,var(--js-sip-bg-to, #2b1f4e) 100%)}.sipcall--floating[data-v-5a0fe8df],.sipcall--docked[data-v-5a0fe8df]{position:fixed;z-index:var(--js-sip-z, 9999);border-radius:var(--js-sip-radius, 12px);box-shadow:0 8px 32px #00000059}.sipcall--bottom-right[data-v-5a0fe8df]{right:24px;bottom:24px}.sipcall--bottom-left[data-v-5a0fe8df]{left:24px;bottom:24px}.sipcall--top-right[data-v-5a0fe8df]{right:24px;top:24px}.sipcall--top-left[data-v-5a0fe8df]{left:24px;top:24px}.callInfo[data-v-5a0fe8df]{position:absolute;left:50%;transform:translate(-50%);z-index:6;text-align:center;pointer-events:none;user-select:none}.callInfo p[data-v-5a0fe8df]{margin:0;line-height:1.4}.callInfo__text[data-v-5a0fe8df]{font-size:13px;color:#ffffffa6;letter-spacing:.5px}.callInfo__time[data-v-5a0fe8df]{font-size:22px;font-weight:500;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:1.5px;margin-top:2px}.fade-enter-active[data-v-5a0fe8df]{transition:all .3s ease}.fade-leave-active[data-v-5a0fe8df]{transition:all .3s cubic-bezier(1,.5,.8,1)}.fade-enter[data-v-5a0fe8df],.fade-leave-to[data-v-5a0fe8df]{transform:translate(10px);opacity:0}.hangup[data-v-5a0fe8df]{left:50%;bottom:30px;position:absolute;transform:translate(-50%);z-index:11;width:72px;height:72px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;font-weight:500;letter-spacing:2px;text-align:center;cursor:pointer;user-select:none;border-radius:50%;background-color:var(--js-sip-danger, #dd514b);box-shadow:0 6px 18px #dd514b73;transition:background-color .15s,transform .08s,box-shadow .2s}.hangup[data-v-5a0fe8df]:hover,.roomHangup div[data-v-5a0fe8df]:hover{background-color:#f46862;box-shadow:0 8px 22px #dd514b8c}.hangup[data-v-5a0fe8df]:active,.roomHangup div[data-v-5a0fe8df]:active{transform:translate(-50%) scale(.94)}.roomHangup[data-v-5a0fe8df]{left:0;bottom:30px;position:absolute;z-index:11;width:100%;display:flex;user-select:none;justify-content:space-evenly}.roomHangup div[data-v-5a0fe8df]{width:72px;height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:500;line-height:1.3;text-align:center;cursor:pointer;border-radius:50%;background-color:var(--js-sip-danger, #dd514b);box-shadow:0 6px 18px #dd514b73;transition:background-color .15s,transform .08s}.roomHangup div[data-v-5a0fe8df]:active{transform:scale(.94)}.localVideo[data-v-5a0fe8df]{top:12px;right:12px;width:150px;height:190px;z-index:10;position:absolute;background-color:#000;object-fit:cover}.remoteVideo[data-v-5a0fe8df]{top:0;left:0;z-index:5;width:100%;position:absolute;background-color:#000;aspect-ratio:16 / 9;max-height:360px;object-fit:contain}.close[data-v-5a0fe8df]{top:10px;right:10px;cursor:pointer;position:absolute}.close img[data-v-5a0fe8df]{width:25px}select[data-v-5a0fe8df]{height:25px}button[data-v-5a0fe8df]{margin:5px;padding:0 25px;border:none;outline:none;font-size:14px;line-height:25px;border-radius:5px;transition:all .2s;background-color:#fff}button[data-v-5a0fe8df]:active{background-color:#ccc}.invite[data-v-5a0fe8df]{outline:none;color:#fff;border:none;width:100px;font-size:14px;background:none;user-select:none;text-align:center;padding-bottom:6px;margin-bottom:15px;border-bottom:1px solid #fff}.equipment[data-v-5a0fe8df]{z-index:17;left:0;width:100%;height:38px;display:flex;align-items:center;justify-content:space-around;position:absolute;user-select:none;pointer-events:none;transition:bottom .35s ease;background:#00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-top:1px solid rgba(255,255,255,.08)}.equipment[data-v-5a0fe8df]:before{top:-10px;left:50%;transform:translate(-50%);content:"";width:36px;height:4px;cursor:pointer;position:absolute;pointer-events:all;border-radius:2px;background:#ffffff8c;transition:background .15s}.equipment[data-v-5a0fe8df]:before:hover{background:#ffffffd9}.equipment .cbox[data-v-5a0fe8df]{display:flex;align-items:center;gap:6px;font-size:12px;color:#ffffffd9;pointer-events:all;cursor:pointer}.equipment .cbox label[data-v-5a0fe8df]{cursor:pointer}.equipment .cbox input[type=checkbox][data-v-5a0fe8df]{width:14px;height:14px;cursor:pointer;accent-color:var(--js-sip-primary, #10b981)}.localVideoBox[data-v-5a0fe8df]{top:10px;right:10px;width:130px;height:160px;z-index:10;position:absolute;border-radius:6px;overflow:hidden;background:#595959}.localVideoBox .localVideo[data-v-5a0fe8df]{top:0;right:0;width:100%;height:100%;position:relative;background:#000;object-fit:cover}.localVideoBox__close[data-v-5a0fe8df]{position:absolute;top:4px;right:4px;width:22px;height:22px;line-height:1;padding:0;border:none;border-radius:50%;background:#0000008c;color:#fff;font-size:13px;cursor:pointer;user-select:none;transition:background .15s,transform .15s;z-index:11}.localVideoBox__close[data-v-5a0fe8df]:hover{background:#dd514be6;transform:scale(1.08)}.localVideoBox__close[data-v-5a0fe8df]:active{transform:scale(.92)}.js-local-video[data-v-dfeb1fdd]{position:relative;display:inline-block;line-height:0}.js-local-video__el[data-v-dfeb1fdd]{width:100%;height:100%;display:block;background:#000;border-radius:inherit;object-fit:cover}.js-local-video__close[data-v-dfeb1fdd]{position:absolute;top:4px;right:4px;width:22px;height:22px;line-height:1;padding:0;border:none;border-radius:50%;background:#0000008c;color:#fff;font-size:13px;cursor:pointer;transition:background .15s,transform .15s;z-index:2;user-select:none}.js-local-video__close[data-v-dfeb1fdd]:hover{background:#dd514be6;transform:scale(1.08)}.js-local-video__close[data-v-dfeb1fdd]:active{transform:scale(.92)}.js-remote-video[data-v-fc37b5d7]{width:100%;height:100%;display:block;background:#000;object-fit:cover}.js-sip-incoming[data-v-f410e955]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.js-sip-incoming__card[data-v-f410e955]{background:var(--js-sip-bg-from, #202F6E);color:var(--js-sip-fg, #fff);padding:24px 36px;border-radius:12px;text-align:center}.js-sip-incoming__card button[data-v-f410e955]{margin:8px;padding:8px 24px;border:none;border-radius:6px;cursor:pointer}.js-sip-incoming__card button[data-v-f410e955]:first-of-type{background:#59bd7b;color:#fff}.js-sip-incoming__card button[data-v-f410e955]:last-of-type{background:var(--js-sip-danger, #DD514B);color:#fff}')),document.head.appendChild(a)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
+ import { C as e, D as i, F as n, K as t, M as l, S as o, b as u, c as C, d, a as g, e as p, u as S, f as r } from "./index-DpAQxqWn.js";
3
+ export {
4
+ e as CzhySip,
5
+ i as Dialog,
6
+ n as FunctionKeys,
7
+ t as Keyboard,
8
+ l as MeetingClient,
9
+ o as SignalingClient,
10
+ u as SipCall,
11
+ C as SipCallComponent,
12
+ d as autoMountWidget,
13
+ g as default,
14
+ p as deriveURLs,
15
+ S as unmountWidget,
16
+ r as useSipCall
17
+ };
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@czhy/sip-sdk",
3
+ "version": "1.0.0",
4
+ "description": "基于 Janus WebRTC 网关的 SIP 视频通话 SDK,支持 SIP 通话、会议协作、WebSocket 信令、Vue3 UI 组件",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.js",
7
+ "style": "dist/style.css",
8
+ "type": "module",
9
+ "author": "wangli",
10
+ "exports": {
11
+ ".": "./dist/index.js",
12
+ "./core": "./dist/core/index.js",
13
+ "./meeting": "./dist/meeting/index.js",
14
+ "./signaling": "./dist/signaling/index.js",
15
+ "./components": "./dist/components/index.js",
16
+ "./primitives": "./dist/components/primitives/index.js",
17
+ "./composables": "./dist/composables/useSipCall.js",
18
+ "./global": "./dist/global/sip-singleton.js"
19
+ },
20
+ "files": [
21
+ "dist",
22
+ "README.md"
23
+ ],
24
+ "sideEffects": [
25
+ "dist/**/*.js",
26
+ "dist/**/*.css",
27
+ "src/**/*.js",
28
+ "src/**/*.css",
29
+ "**/*.vue"
30
+ ],
31
+ "scripts": {
32
+ "build": "vite build",
33
+ "prepare": "npm run build",
34
+ "prepublishOnly": "npm run build"
35
+ },
36
+ "publishConfig": {
37
+ "access": "public"
38
+ },
39
+ "devDependencies": {
40
+ "@vitejs/plugin-vue": "^4.3.0",
41
+ "vite": "^5.4.0",
42
+ "vite-plugin-css-injected-by-js": "^5.0.1"
43
+ },
44
+ "keywords": [
45
+ "sip",
46
+ "janus",
47
+ "webrtc",
48
+ "voip",
49
+ "video-call",
50
+ "vue3",
51
+ "sdk"
52
+ ],
53
+ "peerDependencies": {
54
+ "vue": "^3.0.0"
55
+ },
56
+ "dependencies": {
57
+ "axios": "^1.3.2",
58
+ "fabric-with-erasing": "^1.0.1",
59
+ "sortablejs": "^1.15.0",
60
+ "webrtc-adapter": "^8.2.0"
61
+ },
62
+ "license": "MIT"
63
+ }