npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

sr-js-sdk

v1.2.0

Published

说明:使用SDK前先在后台配置采集规则(如:入口、产品标识等)

Downloads

0

Readme

可回溯前端JS SDK

说明:使用SDK前先在后台配置采集规则(如:入口、产品标识等)

注意修改相关引用处SDK文件实际网络访问地址

使用方式

Step1: 配置API请求地址

方式1:修改SDK中{%REQUEST_ROOT%}具体后端API部署地址 方式2:引入SDK前设置window.__RECALL_REQUEST_ROOT

Step2: 配置app version(非必需) 引入SDK前设置window.__RECALL_APP_VERSION

Step3: 保险产品相关页面引入JS-SDK

<script src="./dist/recall.umd.min.js"></script>

跨域解决方案

基于整个录制过程中(跨域,非跨域)使用同一个回溯编码(recallId)的原理实现连续录制。

方式1:

实现原理:基于window.postMessage跨域方案,将录制开始页生成的回溯编码传递到跨域页面。跨域页面使用该回溯编码开启录制。

Step1: 将message-channel.html放在业务域名(同录制开始网站域)下

Step2: 跨域页面引入SDK,代码如下:

<script>
  // 设置Step1实际网络访问地址
  window.__RECALL_CHANNEL_URL = './message-channel.html';

  // 配置后台请求地址,重要
  window.__RECALL_REQUEST_ROOT = 'https://dr-xd-test.ai-rtc.com/reviewpocapi';
  // 产品标识指定
  window.__RECALL_PRODUCT_CODE = 'productCode'
  //资源路径替换
  window.__RECALL_REPLACE_URL = {
    oldCacheUrlEl: [],//本地缓存url 例子:['file:///D:/web/sr-js-sdk/dist/loginLanzhou.html','test/est1']
    replaceCacheNewUlr: [],//本地缓存替换远程 例子:['https://bb.jinlianfintech.com/reviewpoc','test2/est3']
    missProjectNameUrl: '',//少项目名 例子:https://bb.jinlianfintech.com/(?!reviewpoc)
    addProjectNameUrl: '',//替换增加后的url例子:https://bb.jinlianfintech.com/reviewpoc
  }

</script>
<script src="./dist/recall.umd.min.js"></script>

方式2:

实现原理:通过URL参数传递回溯编码到跨域页面,跨域页面使用该回溯编码开启录制。

Step1:保险业务页面通过recall.recallStore.getRecallId()获取recallId

Step2:通过url参数传递recallId到其他子业务系统如:OCR等。如:?recallId=d336965c43e41f4f6f0390cd244a12ad

记录追加方案

场景:用户下单后未立即支付,后来(中间可能用户离开应用)用户通过订单列表进入订单详情再次发起支付。后面进入订单详情发起支付属于记录追加。

步骤:

Step1: 用户下单后(未支付)上报业务数据,参见关联业务数据

Step2:在需要补录回溯信息页URL增加如下参数:?recallBizNo=<订单号|投保单号>

一主流程,多子流程并行记录方案

场景:多被保人情况下投保人完成了投保信息填写,针对不同的被保人分享对应链接让被保人确认签字。被保人确认签字就是多子流程并行记录情况。

步骤:

Step1: 投保人填写信息后分享链接前将业务数据与回溯信息关联,参见关联业务数据

Step2:根据不同被保人配置对应链接,增加如下参数:?recallBizNo=<订单号|投保单号>&recallSubBizNo=<被保人身份证号码|其他标识>

关联业务数据

回溯信息与业务数据关联

自动关联:通过管理后台配置,参见关联业务数据配置样例

手动关联:通过调用上报业务数据接口,参见API接口定义

结束录制

整个投保流程完成,需要结束录制

自动关联:通过管理后台配置,参见结束脚本配置样例

手动关联:通过调用上报结束接口,参见API接口定义

API接口定义

如果在某些场景自动化无法满足需求时,可通过window.recall访问如下api进行手动控制:

recall.recallRecorder

| 方法 | 参数 | 描述 | |-----|----|----| | recall.recallRecorder.start | 无 | 开始录制 | | recall.recallRecorder.stop | 无 | 结束录制 | | recall.recallRecorder.pause | 无 | 暂停录制 | | recall.recallRecorder.resume | 无 | 恢复录制 |

recall.recallService

| 方法 | 参数 | 描述 | |-----|----|----| | recall.recallService.reportBizData | reportBizParam<Object>,定义如下 | 上报业务数据 | | recall.recallService.reportEnd | reportEndParam<Object>,定义如下 | 上报结束 |

reportBizParam定义

{
  bizNo: '', // 业务标识(必传)
  subBizNo: '', // 子流程业务标识(子流程时,必传)
  prtNo: '', // 投保单号
  contNo: '', // 保单号
  prtName: '', // 投保人姓名
  prtIdCar: '', // 投保人证件号码
  orderId: '', // 订单号
  groupInsurance: '', // 团险号
  channelStr: '', // 渠道值
}

reportEndParam定义

{
  prtNo: '', // 投保单号
  contNo: '', // 保单号
  prtName: '', // 投保人姓名
  prtIdCar: '', // 投保人证件号码
  orderId: '', // 订单号
  groupInsurance: '', // 团险号
  channelStr: '', // 渠道值
}

recall.recallStore

| 方法 | 参数 | 描述 | |-----|----|----| | recall.recallStore.setDeviceId | String | 设置设备号 | | recall.recallStore.getDeviceId | 无 | 获取设备号 | | recall.recallStore.setRecallId | String | 设置回溯编码 | | recall.recallStore.getRecallId | 无 | 获取回溯编码 |

recall

| 方法 | 参数 | 描述 | |-----|----|----| | recall.stopAndReportBizData | Object,同reportEndParam定义 | 结束录制并关联业务数据 | | recall.isSupport | 无 | 是否支持回溯数据采集 |

关联业务数据配置样例(管理后台配置)

function reportBizData(url, response) {
  if (/policies\/issuances/.test(url)) {
    var resData = JSON.parse(response.response);
    return {
      bizNo: resData.orderNo,
      prtNo: '', // 投保单号
      contNo: '', // 保单号
      prtName: '', // 投保人姓名
      prtIdCar: '', // 投保人证件号码
      orderId: '' // 订单号
    };
  }
  return null;
}

结束脚本配置样例(管理后台配置)

function reportEnd(url, response) {
  if (/\/api\/insurance/.test(url)) {
    // 根据实际情况解析response,对应相关字段返回相关业务数据
    // 可返回Promise对象

    // xhr json,示例,根据实际情况修改
    var data = JSON.parse(response.response);
    return {
      prtNo: data.prtNo, // 投保单号
      contNo: data.contNo, // 保单号
      prtName: data.prtName, // 投保人姓名
      prtIdCar: data.prtIdNo, // 投保人证件号码
      orderId: data.orderId // 订单号
    };

    // fetch json,示例,根据实际情况修改
    // return response.json().then(function(data) {
    //   return {
    //     prtNo: data.prtNo, // 投保单号
    //     contNo: data.contNo, // 保单号
    //     prtName: data.prtName, // 投保人姓名
    //     prtIdCar: data.prtIdNo, // 投保人证件号码
    //     orderId: data.orderId // 订单号
    //   };
    // });
  }

  return null;
}