@speakai/shared 2.1.35 → 2.1.37

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.
@@ -11,6 +11,7 @@ export * from './filter.js';
11
11
  export * from './genesys.js';
12
12
  export * from './integration.js';
13
13
  export * from './knowledgeBase.js';
14
+ export * from './label.js';
14
15
  export * from './media.js';
15
16
  export * from './menu.js';
16
17
  export * from './meeting.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
@@ -11,6 +11,7 @@ export * from './filter.js';
11
11
  export * from './genesys.js';
12
12
  export * from './integration.js';
13
13
  export * from './knowledgeBase.js';
14
+ export * from './label.js';
14
15
  export * from './media.js';
15
16
  export * from './menu.js';
16
17
  export * from './meeting.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,20 @@
1
+ export declare enum LabelSource {
2
+ USER = "user",
3
+ SPEAK = "speak"
4
+ }
5
+ export declare enum AnchorStatus {
6
+ ACTIVE = "active",
7
+ SHIFTED = "shifted",
8
+ NEEDS_REVIEW = "needs_review"
9
+ }
10
+ export declare enum DashboardLabelsMode {
11
+ VIEW = "view",
12
+ /** Reviewers chosen on the dashboard may also apply and remove labels */
13
+ APPLY = "apply"
14
+ }
15
+ export declare enum DashboardCommentsMode {
16
+ VIEW = "view",
17
+ /** Reviewers chosen on the dashboard may also comment and reply */
18
+ REPLY = "reply"
19
+ }
20
+ //# sourceMappingURL=label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../src/enums/label.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,YAAY,iBAAiB;CAC9B;AAED,oBAAY,mBAAmB;IAC7B,IAAI,SAAS;IACb,yEAAyE;IACzE,KAAK,UAAU;CAChB;AAED,oBAAY,qBAAqB;IAC/B,IAAI,SAAS;IACb,mEAAmE;IACnE,KAAK,UAAU;CAChB"}
@@ -0,0 +1,24 @@
1
+ export var LabelSource;
2
+ (function (LabelSource) {
3
+ LabelSource["USER"] = "user";
4
+ LabelSource["SPEAK"] = "speak";
5
+ })(LabelSource || (LabelSource = {}));
6
+ export var AnchorStatus;
7
+ (function (AnchorStatus) {
8
+ AnchorStatus["ACTIVE"] = "active";
9
+ AnchorStatus["SHIFTED"] = "shifted";
10
+ AnchorStatus["NEEDS_REVIEW"] = "needs_review";
11
+ })(AnchorStatus || (AnchorStatus = {}));
12
+ export var DashboardLabelsMode;
13
+ (function (DashboardLabelsMode) {
14
+ DashboardLabelsMode["VIEW"] = "view";
15
+ /** Reviewers chosen on the dashboard may also apply and remove labels */
16
+ DashboardLabelsMode["APPLY"] = "apply";
17
+ })(DashboardLabelsMode || (DashboardLabelsMode = {}));
18
+ export var DashboardCommentsMode;
19
+ (function (DashboardCommentsMode) {
20
+ DashboardCommentsMode["VIEW"] = "view";
21
+ /** Reviewers chosen on the dashboard may also comment and reply */
22
+ DashboardCommentsMode["REPLY"] = "reply";
23
+ })(DashboardCommentsMode || (DashboardCommentsMode = {}));
24
+ //# sourceMappingURL=label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../../src/enums/label.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,8BAAe,CAAA;AACjB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,mCAAmB,CAAA;IACnB,6CAA6B,CAAA;AAC/B,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AAED,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,oCAAa,CAAA;IACb,yEAAyE;IACzE,sCAAe,CAAA;AACjB,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAED,MAAM,CAAN,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,sCAAa,CAAA;IACb,mEAAmE;IACnE,wCAAe,CAAA;AACjB,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,QAIhC"}
@@ -15,7 +15,9 @@ export declare enum UserPermissionType {
15
15
  TEAM_MANAGEMENT = "teamManagement",
16
16
  DEVELOPER = "developer",
17
17
  PROFILE_SETTINGS = "profileSettings",
18
- MEETING_ASSISTANT = "meetingAssistant"
18
+ MEETING_ASSISTANT = "meetingAssistant",
19
+ LABELS = "labels",
20
+ COMMENTS = "comments"
19
21
  }
20
22
  export declare enum UserActionType {
21
23
  CREATE = "create",
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/enums/user.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,oBAAY,QAAQ;IAClB,UAAU,MAAM;IAChB,OAAO,MAAM;CACd;AAED,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,eAAe,mBAAmB;IAClC,SAAS,cAAc;IACvB,gBAAgB,oBAAoB;IACpC,iBAAiB,qBAAqB;CACvC;AAED,oBAAY,cAAc;IACxB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,YAAY,gBAAgB;IAC5B,eAAe,mBAAmB;IAClC,cAAc,kBAAkB;IAChC,aAAa,iBAAiB;IAC9B,WAAW,eAAe;IAC1B,mBAAmB,uBAAuB;IAC1C,qBAAqB,yBAAyB;IAC9C,eAAe,mBAAmB;IAClC,mBAAmB,uBAAuB;IAC1C,cAAc,kBAAkB;IAChC,cAAc,kBAAkB;IAChC,gBAAgB,oBAAoB;IACpC,eAAe,mBAAmB;IAClC,UAAU,cAAc;CACzB"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/enums/user.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,oBAAY,QAAQ;IAClB,UAAU,MAAM;IAChB,OAAO,MAAM;CACd;AAED,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,eAAe,mBAAmB;IAClC,SAAS,cAAc;IACvB,gBAAgB,oBAAoB;IACpC,iBAAiB,qBAAqB;IACtC,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED,oBAAY,cAAc;IACxB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,YAAY,gBAAgB;IAC5B,eAAe,mBAAmB;IAClC,cAAc,kBAAkB;IAChC,aAAa,iBAAiB;IAC9B,WAAW,eAAe;IAC1B,mBAAmB,uBAAuB;IAC1C,qBAAqB,yBAAyB;IAC9C,eAAe,mBAAmB;IAClC,mBAAmB,uBAAuB;IAC1C,cAAc,kBAAkB;IAChC,cAAc,kBAAkB;IAChC,gBAAgB,oBAAoB;IACpC,eAAe,mBAAmB;IAClC,UAAU,cAAc;CACzB"}
@@ -19,6 +19,8 @@ export var UserPermissionType;
19
19
  UserPermissionType["DEVELOPER"] = "developer";
20
20
  UserPermissionType["PROFILE_SETTINGS"] = "profileSettings";
21
21
  UserPermissionType["MEETING_ASSISTANT"] = "meetingAssistant";
22
+ UserPermissionType["LABELS"] = "labels";
23
+ UserPermissionType["COMMENTS"] = "comments";
22
24
  })(UserPermissionType || (UserPermissionType = {}));
23
25
  export var UserActionType;
24
26
  (function (UserActionType) {
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/enums/user.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,6BAAiB,CAAA;AACnB,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,4BAAgB,CAAA;IAChB,yBAAa,CAAA;AACf,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AAED,MAAM,CAAN,IAAY,kBASX;AATD,WAAY,kBAAkB;IAC5B,uCAAiB,CAAA;IACjB,2CAAqB,CAAA;IACrB,qCAAe,CAAA;IACf,yCAAmB,CAAA;IACnB,wDAAkC,CAAA;IAClC,6CAAuB,CAAA;IACvB,0DAAoC,CAAA;IACpC,4DAAsC,CAAA;AACxC,CAAC,EATW,kBAAkB,KAAlB,kBAAkB,QAS7B;AAED,MAAM,CAAN,IAAY,cAsBX;AAtBD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,uCAAqB,CAAA;IACrB,mCAAiB,CAAA;IACjB,+BAAa,CAAA;IACb,mCAAiB,CAAA;IACjB,iCAAe,CAAA;IACf,mCAAiB,CAAA;IACjB,8CAA4B,CAAA;IAC5B,oDAAkC,CAAA;IAClC,kDAAgC,CAAA;IAChC,gDAA8B,CAAA;IAC9B,4CAA0B,CAAA;IAC1B,4DAA0C,CAAA;IAC1C,gEAA8C,CAAA;IAC9C,oDAAkC,CAAA;IAClC,4DAA0C,CAAA;IAC1C,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,sDAAoC,CAAA;IACpC,oDAAkC,CAAA;IAClC,0CAAwB,CAAA;AAC1B,CAAC,EAtBW,cAAc,KAAd,cAAc,QAsBzB"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/enums/user.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,6BAAiB,CAAA;AACnB,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,4BAAgB,CAAA;IAChB,yBAAa,CAAA;AACf,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AAED,MAAM,CAAN,IAAY,kBAWX;AAXD,WAAY,kBAAkB;IAC5B,uCAAiB,CAAA;IACjB,2CAAqB,CAAA;IACrB,qCAAe,CAAA;IACf,yCAAmB,CAAA;IACnB,wDAAkC,CAAA;IAClC,6CAAuB,CAAA;IACvB,0DAAoC,CAAA;IACpC,4DAAsC,CAAA;IACtC,uCAAiB,CAAA;IACjB,2CAAqB,CAAA;AACvB,CAAC,EAXW,kBAAkB,KAAlB,kBAAkB,QAW7B;AAED,MAAM,CAAN,IAAY,cAsBX;AAtBD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,uCAAqB,CAAA;IACrB,mCAAiB,CAAA;IACjB,+BAAa,CAAA;IACb,mCAAiB,CAAA;IACjB,iCAAe,CAAA;IACf,mCAAiB,CAAA;IACjB,8CAA4B,CAAA;IAC5B,oDAAkC,CAAA;IAClC,kDAAgC,CAAA;IAChC,gDAA8B,CAAA;IAC9B,4CAA0B,CAAA;IAC1B,4DAA0C,CAAA;IAC1C,gEAA8C,CAAA;IAC9C,oDAAkC,CAAA;IAClC,4DAA0C,CAAA;IAC1C,kDAAgC,CAAA;IAChC,kDAAgC,CAAA;IAChC,sDAAoC,CAAA;IACpC,oDAAkC,CAAA;IAClC,0CAAwB,CAAA;AAC1B,CAAC,EAtBW,cAAc,KAAd,cAAc,QAsBzB"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from './enums/index.js';
2
2
  export * from './interfaces/index.js';
3
3
  export * from './voice/index.js';
4
4
  export * from './utils/transcript.js';
5
+ export * from './utils/anchor.js';
5
6
  export * from './utils/dashboard-spec.js';
6
7
  export * from './llm/registry.js';
7
8
  export * from './llm/types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AAGjC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AAGjC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,2BAA2B,CAAC"}
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ export * from './interfaces/index.js';
6
6
  export * from './voice/index.js';
7
7
  // Utils
8
8
  export * from './utils/transcript.js';
9
+ export * from './utils/anchor.js';
9
10
  export * from './utils/dashboard-spec.js';
10
11
  // LLM model registry — one entry per model; every other model table projects from it.
11
12
  export * from './llm/registry.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,cAAc,uBAAuB,CAAC;AAEtC,gFAAgF;AAChF,cAAc,kBAAkB,CAAC;AAEjC,QAAQ;AACR,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAE1C,sFAAsF;AACtF,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAE/B,kFAAkF;AAClF,cAAc,2BAA2B,CAAC;AAE1C,0EAA0E;AAC1E,6EAA6E;AAC7E,kFAAkF;AAClF,mDAAmD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,cAAc,uBAAuB,CAAC;AAEtC,gFAAgF;AAChF,cAAc,kBAAkB,CAAC;AAEjC,QAAQ;AACR,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAE1C,sFAAsF;AACtF,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAE/B,kFAAkF;AAClF,cAAc,2BAA2B,CAAC;AAE1C,0EAA0E;AAC1E,6EAA6E;AAC7E,kFAAkF;AAClF,mDAAmD"}
@@ -17,6 +17,8 @@ export interface IEmbedSettings {
17
17
  isDescription: boolean;
18
18
  isSEOIndexing: boolean;
19
19
  isRemarks: boolean;
20
+ isLabels?: boolean;
21
+ isComments?: boolean;
20
22
  isPromptAsk: boolean;
21
23
  isPromptHistory: boolean;
22
24
  chatWelcomeMessage: string;
@@ -1 +1 @@
1
- {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/interfaces/embed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtD,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAChD,qBAAqB,EAAE,OAAO,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,cAAc,CAAC;IACrB,8FAA8F;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB"}
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/interfaces/embed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtD,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAChD,qBAAqB,EAAE,OAAO,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,cAAc,CAAC;IACrB,8FAA8F;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB"}
@@ -17,5 +17,6 @@ export * from './subscription.js';
17
17
  export * from './calendar.js';
18
18
  export * from './category.js';
19
19
  export * from './clip.js';
20
+ export * from './label.js';
20
21
  export * from './dashboard.js';
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
@@ -17,5 +17,6 @@ export * from './subscription.js';
17
17
  export * from './calendar.js';
18
18
  export * from './category.js';
19
19
  export * from './clip.js';
20
+ export * from './label.js';
20
21
  export * from './dashboard.js';
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,198 @@
1
+ import { LabelSource, AnchorStatus, DashboardLabelsMode, DashboardCommentsMode } from '../enums/index.js';
2
+ export interface IAnchor {
3
+ /** Index of the first word in flattenWords() order at transcriptRevision */
4
+ startWord: number;
5
+ /** Index of the last word (inclusive) */
6
+ endWord: number;
7
+ /** The quoted words, joined by single spaces */
8
+ exact: string;
9
+ /** Up to 32 characters of text before the quote */
10
+ prefix: string;
11
+ /** Up to 32 characters of text after the quote */
12
+ suffix: string;
13
+ /** Time of the first word; a sanity check only, word positions are primary */
14
+ startInSec: number;
15
+ /** Time of the last word; a sanity check only, word positions are primary */
16
+ endInSec: number;
17
+ speakerIds: string[];
18
+ transcriptRevision: number;
19
+ }
20
+ /** One transcript word as counted by flattenWords() */
21
+ export interface IFlatWord {
22
+ text: string;
23
+ /** normalizeWord(text), used for matching across edits */
24
+ norm: string;
25
+ startInSec: number;
26
+ endInSec: number;
27
+ /** Position of the segment in the transcript array (segment ids are not unique) */
28
+ segmentIndex: number;
29
+ wordIndex: number;
30
+ speakerId: string;
31
+ }
32
+ /** Inclusive range of flattenWords() indices */
33
+ export interface IWordRange {
34
+ start: number;
35
+ end: number;
36
+ }
37
+ /** A label or group as the API returns it; internal _id and companyId are never sent */
38
+ export interface ILabel {
39
+ labelId: string;
40
+ userId: string;
41
+ /** A group holds labels and cannot be applied */
42
+ isGroup: boolean;
43
+ name: string;
44
+ description?: string;
45
+ /** #rrggbb; groups have none */
46
+ color?: string;
47
+ /** labelId of the parent group, one level only; null at the top level */
48
+ parentId: string | null;
49
+ source: LabelSource;
50
+ isActive: boolean;
51
+ mergedInto?: string;
52
+ sortOrder: number;
53
+ /** The creator's display name; absent when they are no longer a member of the company */
54
+ authorName?: string;
55
+ createdAt: Date;
56
+ updatedAt: Date;
57
+ }
58
+ /** An entry of GET /v1/labels: counts cover only media the caller may open */
59
+ export interface ILabelListItem extends ILabel {
60
+ /** Labelled spans carrying this label; on a group, summed over its labels */
61
+ usageCount: number;
62
+ /** Distinct files carrying this label; on a group, files carrying any of its labels */
63
+ fileCount: number;
64
+ /** A group's labels that match the list filters; groups only */
65
+ labels?: ILabelListItem[];
66
+ }
67
+ /** A labelled span as the API returns it; internal _id and companyId are never sent */
68
+ export interface IMediaLabel {
69
+ mediaLabelId: string;
70
+ userId: string;
71
+ /** The author's display name; absent when they are no longer a member of the company */
72
+ authorName?: string;
73
+ mediaId: string;
74
+ labelIds: string[];
75
+ anchor: IAnchor;
76
+ status: AnchorStatus;
77
+ /** Last anchor a person confirmed, kept while status is needs_review */
78
+ lastResolved?: IAnchor;
79
+ /** Set when a reviewer applied the label from a dashboard */
80
+ dashboardId?: string;
81
+ createdAt: Date;
82
+ updatedAt: Date;
83
+ }
84
+ /** A comment as the API returns it; internal _id and companyId are never sent */
85
+ export interface IMediaComment {
86
+ commentId: string;
87
+ userId: string;
88
+ /** The author's display name; absent when they are no longer a member of the company */
89
+ authorName?: string;
90
+ mediaId: string;
91
+ /** Null means the comment is on the whole file */
92
+ anchor: IAnchor | null;
93
+ /** commentId of the thread starter, one level of replies; null on a starter */
94
+ parentId: string | null;
95
+ body: string;
96
+ mediaLabelId?: string;
97
+ /** Present only when anchor is set */
98
+ status?: AnchorStatus;
99
+ /** Last anchor a person confirmed, kept while status is needs_review */
100
+ lastResolved?: IAnchor;
101
+ isResolved: boolean;
102
+ resolvedBy?: string;
103
+ isDeleted: boolean;
104
+ /** Set when a reviewer commented from a dashboard */
105
+ dashboardId?: string;
106
+ createdAt: Date;
107
+ updatedAt: Date;
108
+ }
109
+ /** A thread starter with its replies, oldest first; a deleted starter with replies has an empty body */
110
+ export interface IMediaCommentThread extends IMediaComment {
111
+ replies: IMediaComment[];
112
+ }
113
+ /** GET /v1/media/:mediaId/labels */
114
+ export interface IMediaLabelsResponse {
115
+ transcriptRevision: number;
116
+ mediaLabels: IMediaLabel[];
117
+ }
118
+ /** GET /v1/media/:mediaId/comments */
119
+ export interface IMediaCommentsResponse {
120
+ transcriptRevision: number;
121
+ threads: IMediaCommentThread[];
122
+ }
123
+ /** Off and view-only unless the owner saved otherwise */
124
+ export interface IDashboardLabelsSettings {
125
+ isEnabled: boolean;
126
+ mode: DashboardLabelsMode;
127
+ /** Label groups the dashboard shows and offers; empty means every active label */
128
+ labelGroupIds: string[];
129
+ }
130
+ export interface IDashboardCommentsSettings {
131
+ isEnabled: boolean;
132
+ mode: DashboardCommentsMode;
133
+ }
134
+ /** The labels and comments keys of dashboard.settings, saved with POST/PUT /v1/dashboards */
135
+ export interface IDashboardAnnotationSettings {
136
+ /** Team members a viewer may write labels and comments as; active members of the company */
137
+ reviewerUserIds: string[];
138
+ labels: IDashboardLabelsSettings;
139
+ comments: IDashboardCommentsSettings;
140
+ }
141
+ export interface ILinkLabel {
142
+ labelId: string;
143
+ name: string;
144
+ color?: string;
145
+ description?: string;
146
+ parentId: string | null;
147
+ }
148
+ /** A reviewer a dashboard viewer may write as; names only, never emails */
149
+ export interface ILinkMember {
150
+ userId: string;
151
+ name: string;
152
+ }
153
+ /** annotationSettings on GET /v1/embed/insight for dashboard links */
154
+ export interface IPublicAnnotationSettings {
155
+ labels: {
156
+ isEnabled: boolean;
157
+ mode: DashboardLabelsMode;
158
+ groups: Array<{
159
+ labelId: string;
160
+ name: string;
161
+ }>;
162
+ /** Active labels of the allowed groups; empty while labels are off */
163
+ labels: ILinkLabel[];
164
+ };
165
+ comments: {
166
+ isEnabled: boolean;
167
+ mode: DashboardCommentsMode;
168
+ };
169
+ /** Empty unless a write mode is on */
170
+ reviewers: ILinkMember[];
171
+ }
172
+ /** A labelled span on GET /v1/embed/media/:mediaId/labels, narrowed to the labels the link shows */
173
+ export type ILinkMediaLabel = Pick<IMediaLabel, 'mediaLabelId' | 'mediaId' | 'labelIds' | 'anchor' | 'status' | 'lastResolved' | 'userId' | 'dashboardId' | 'createdAt' | 'updatedAt'> & {
174
+ /** The author's display name, or "Team member" when they have none or left the company */
175
+ authorName: string;
176
+ };
177
+ /** GET /v1/embed/media/:mediaId/labels */
178
+ export interface ILinkMediaLabelsResponse {
179
+ transcriptRevision: number;
180
+ /** Only the labels used on this media */
181
+ labels: ILinkLabel[];
182
+ mediaLabels: ILinkMediaLabel[];
183
+ }
184
+ /** A comment as a link viewer sees it: the author's name, no resolver or span link */
185
+ export type ILinkComment = Pick<IMediaComment, 'commentId' | 'mediaId' | 'anchor' | 'parentId' | 'body' | 'status' | 'lastResolved' | 'isResolved' | 'isDeleted' | 'userId' | 'dashboardId' | 'createdAt' | 'updatedAt'> & {
186
+ /** The author's display name, or "Team member" when they have none or left the company */
187
+ authorName: string;
188
+ };
189
+ /** A thread starter with its replies, oldest first */
190
+ export interface ILinkCommentThread extends ILinkComment {
191
+ replies: ILinkComment[];
192
+ }
193
+ /** GET /v1/embed/media/:mediaId/comments */
194
+ export interface ILinkMediaCommentsResponse {
195
+ transcriptRevision: number;
196
+ threads: ILinkCommentThread[];
197
+ }
198
+ //# sourceMappingURL=label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../src/interfaces/label.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../../src/interfaces/label.ts"],"names":[],"mappings":""}
@@ -67,6 +67,17 @@ export interface IUserPermission {
67
67
  excludeMeetings: boolean;
68
68
  globalSettings: boolean;
69
69
  };
70
+ labels?: {
71
+ create: boolean;
72
+ update: boolean;
73
+ delete: boolean;
74
+ assign: boolean;
75
+ };
76
+ comments?: {
77
+ create: boolean;
78
+ update: boolean;
79
+ delete: boolean;
80
+ };
70
81
  }
71
82
  export interface IUserProfileUpdate {
72
83
  firstName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/interfaces/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,mBAAmB,CAAC;AAEjE,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,eAAe,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC;QAChB,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,OAAO,CAAC;QAChB,QAAQ,EAAE,OAAO,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,KAAK,EAAE;QACL,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,OAAO,EAAE;QACP,WAAW,EAAE,OAAO,CAAC;QACrB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,cAAc,EAAE;QACd,aAAa,EAAE,OAAO,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,SAAS,EAAE;QACT,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,eAAe,EAAE;QACf,kBAAkB,EAAE,OAAO,CAAC;QAC5B,oBAAoB,EAAE,OAAO,CAAC;QAC9B,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,gBAAgB,EAAE;QAChB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,aAAa,EAAE,OAAO,CAAC;QACvB,aAAa,EAAE,OAAO,CAAC;QACvB,eAAe,EAAE,OAAO,CAAC;QACzB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/interfaces/user.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { ITranscriptSegment } from '../interfaces/transcript.js';
2
+ import type { IAnchor, IFlatWord, IWordRange } from '../interfaces/label.js';
3
+ /**
4
+ * Normalize a word for matching across transcript edits.
5
+ *
6
+ * NFC, lowercase, curly apostrophes made straight, and leading/trailing
7
+ * punctuation removed. Inner apostrophes and hyphens are kept ("don't", "e-mail").
8
+ */
9
+ export declare function normalizeWord(word: string): string;
10
+ /**
11
+ * Flatten a transcript into one array of words, in transcript order.
12
+ *
13
+ * This is the single word count used by speak-ui and speak-server, so anchor
14
+ * word positions mean the same thing on both sides.
15
+ *
16
+ * - Segments with entities use entity word timings; an entity holding several
17
+ * words ("New York") is split, with its time spread evenly across them.
18
+ * - Segments without entities split their text on whitespace, with times
19
+ * spread evenly across the segment.
20
+ * - Tokens that are empty after normalizeWord() (bare punctuation) are skipped.
21
+ * - Segments are identified by array position; segment ids repeat in live and
22
+ * split transcripts.
23
+ *
24
+ * @param transcript - Flat array of transcript segments from the API
25
+ * @returns Every word with its time, segment position and speaker
26
+ */
27
+ export declare function flattenWords(transcript: ITranscriptSegment[]): IFlatWord[];
28
+ /**
29
+ * Build an anchor for an inclusive range of flattenWords() indices.
30
+ *
31
+ * @param transcript - Flat array of transcript segments from the API
32
+ * @param range - Inclusive word range, from flattenWords() order
33
+ * @param transcriptRevision - media.transcriptRevision the range was taken from
34
+ * @throws RangeError when the range is not inside the transcript
35
+ */
36
+ export declare function buildAnchor(transcript: ITranscriptSegment[], range: IWordRange, transcriptRevision: number): IAnchor;
37
+ /** buildAnchor() for callers that already hold flattenWords() output, to avoid re-flattening. */
38
+ export declare function buildAnchorFromWords(words: IFlatWord[], range: IWordRange, transcriptRevision: number): IAnchor;
39
+ //# sourceMappingURL=anchor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../src/utils/anchor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAuB,MAAM,6BAA6B,CAAC;AAC3F,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAQ7E;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,SAAS,EAAE,CA8C1E;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,kBAAkB,EAAE,EAChC,KAAK,EAAE,UAAU,EACjB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAET;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAAE,EAClB,KAAK,EAAE,UAAU,EACjB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAoBT"}
@@ -0,0 +1,153 @@
1
+ import { parseTranscriptTime } from './transcript.js';
2
+ const ANCHOR_CONTEXT_CHARS = 32;
3
+ const EDGE_PUNCTUATION = /^\p{P}+|\p{P}+$/gu;
4
+ const CURLY_APOSTROPHE = /[‘’ʼ]/g;
5
+ const WHITESPACE = /\s+/;
6
+ /**
7
+ * Normalize a word for matching across transcript edits.
8
+ *
9
+ * NFC, lowercase, curly apostrophes made straight, and leading/trailing
10
+ * punctuation removed. Inner apostrophes and hyphens are kept ("don't", "e-mail").
11
+ */
12
+ export function normalizeWord(word) {
13
+ return word
14
+ .normalize('NFC')
15
+ .toLowerCase()
16
+ .replace(CURLY_APOSTROPHE, "'")
17
+ .replace(EDGE_PUNCTUATION, '');
18
+ }
19
+ /**
20
+ * Flatten a transcript into one array of words, in transcript order.
21
+ *
22
+ * This is the single word count used by speak-ui and speak-server, so anchor
23
+ * word positions mean the same thing on both sides.
24
+ *
25
+ * - Segments with entities use entity word timings; an entity holding several
26
+ * words ("New York") is split, with its time spread evenly across them.
27
+ * - Segments without entities split their text on whitespace, with times
28
+ * spread evenly across the segment.
29
+ * - Tokens that are empty after normalizeWord() (bare punctuation) are skipped.
30
+ * - Segments are identified by array position; segment ids repeat in live and
31
+ * split transcripts.
32
+ *
33
+ * @param transcript - Flat array of transcript segments from the API
34
+ * @returns Every word with its time, segment position and speaker
35
+ */
36
+ export function flattenWords(transcript) {
37
+ const words = [];
38
+ if (!transcript || transcript.length === 0)
39
+ return words;
40
+ transcript.forEach((segment, segmentIndex) => {
41
+ const speakerId = String(segment.speakerId ?? '');
42
+ const previousEnd = words.length > 0 ? words[words.length - 1].endInSec : 0;
43
+ const segmentStart = instanceTime(segment.instances?.[0], 'start') ?? previousEnd;
44
+ const segmentEnd = instanceTime(segment.instances?.[0], 'end') ?? segmentStart;
45
+ let wordIndex = 0;
46
+ const pushTokens = (text, start, end) => {
47
+ const tokens = (text ?? '')
48
+ .split(WHITESPACE)
49
+ .map((token) => ({ text: token, norm: normalizeWord(token) }))
50
+ .filter((token) => token.norm !== '');
51
+ tokens.forEach((token, i) => {
52
+ words.push({
53
+ text: token.text,
54
+ norm: token.norm,
55
+ startInSec: spreadTime(start, end, i, tokens.length),
56
+ endInSec: spreadTime(start, end, i + 1, tokens.length),
57
+ segmentIndex,
58
+ wordIndex: wordIndex++,
59
+ speakerId,
60
+ });
61
+ });
62
+ };
63
+ const entities = segment.entities ?? [];
64
+ if (entities.length === 0) {
65
+ pushTokens(segment.text, segmentStart, segmentEnd);
66
+ return;
67
+ }
68
+ let cursor = segmentStart;
69
+ for (const entity of entities) {
70
+ // Entities without timings continue from the previous word so times never go backwards
71
+ const start = finiteOrUndefined(entity.instances?.startInSec) ?? cursor;
72
+ const end = finiteOrUndefined(entity.instances?.endInSec) ?? start;
73
+ pushTokens(entity.text, start, end);
74
+ cursor = end;
75
+ }
76
+ });
77
+ return words;
78
+ }
79
+ /**
80
+ * Build an anchor for an inclusive range of flattenWords() indices.
81
+ *
82
+ * @param transcript - Flat array of transcript segments from the API
83
+ * @param range - Inclusive word range, from flattenWords() order
84
+ * @param transcriptRevision - media.transcriptRevision the range was taken from
85
+ * @throws RangeError when the range is not inside the transcript
86
+ */
87
+ export function buildAnchor(transcript, range, transcriptRevision) {
88
+ return buildAnchorFromWords(flattenWords(transcript), range, transcriptRevision);
89
+ }
90
+ /** buildAnchor() for callers that already hold flattenWords() output, to avoid re-flattening. */
91
+ export function buildAnchorFromWords(words, range, transcriptRevision) {
92
+ assertValidRange(words, range);
93
+ if (!Number.isInteger(transcriptRevision) || transcriptRevision < 0) {
94
+ throw new RangeError(`transcriptRevision must be a non-negative integer, got ${transcriptRevision}`);
95
+ }
96
+ const selected = words.slice(range.start, range.end + 1);
97
+ const speakerIds = [...new Set(selected.map((word) => word.speakerId))];
98
+ return {
99
+ startWord: range.start,
100
+ endWord: range.end,
101
+ exact: selected.map((word) => word.text).join(' '),
102
+ prefix: contextBefore(words, range.start),
103
+ suffix: contextAfter(words, range.end),
104
+ startInSec: selected[0].startInSec,
105
+ endInSec: selected[selected.length - 1].endInSec,
106
+ speakerIds,
107
+ transcriptRevision,
108
+ };
109
+ }
110
+ function assertValidRange(words, range) {
111
+ const { start, end } = range ?? {};
112
+ if (!Number.isInteger(start) || !Number.isInteger(end)) {
113
+ throw new RangeError(`Word range must use integer indices, got ${start}..${end}`);
114
+ }
115
+ if (start < 0 || end < start || end >= words.length) {
116
+ throw new RangeError(`Word range ${start}..${end} is outside 0..${words.length - 1}`);
117
+ }
118
+ }
119
+ function contextBefore(words, start) {
120
+ let text = '';
121
+ for (let i = start - 1; i >= 0 && text.length < ANCHOR_CONTEXT_CHARS; i--) {
122
+ text = text ? `${words[i].text} ${text}` : words[i].text;
123
+ }
124
+ return text.slice(-ANCHOR_CONTEXT_CHARS);
125
+ }
126
+ function contextAfter(words, end) {
127
+ let text = '';
128
+ for (let i = end + 1; i < words.length && text.length < ANCHOR_CONTEXT_CHARS; i++) {
129
+ text = text ? `${text} ${words[i].text}` : words[i].text;
130
+ }
131
+ return text.slice(0, ANCHOR_CONTEXT_CHARS);
132
+ }
133
+ function instanceTime(instance, edge) {
134
+ if (!instance)
135
+ return undefined;
136
+ const inSec = finiteOrUndefined(edge === 'start' ? instance.startInSec : instance.endInSec);
137
+ if (inSec !== undefined)
138
+ return inSec;
139
+ const raw = edge === 'start' ? instance.start : instance.end;
140
+ if (typeof raw === 'number')
141
+ return finiteOrUndefined(raw);
142
+ if (typeof raw === 'string' && raw.trim() !== '')
143
+ return finiteOrUndefined(parseTranscriptTime(raw));
144
+ return undefined;
145
+ }
146
+ function finiteOrUndefined(value) {
147
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
148
+ }
149
+ // Rounded to milliseconds so interpolated times compare equal on client and server
150
+ function spreadTime(start, end, step, steps) {
151
+ return Math.round((start + ((end - start) * step) / steps) * 1000) / 1000;
152
+ }
153
+ //# sourceMappingURL=anchor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor.js","sourceRoot":"","sources":["../../src/utils/anchor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@speakai/shared",
3
- "version": "2.1.35",
3
+ "version": "2.1.37",
4
4
  "description": "Shared types, enums and interfaces for Speak AI platform",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",