screenci 0.0.9 → 0.0.11

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.
Files changed (68) hide show
  1. package/README.md +44 -58
  2. package/dist/Dockerfile +48 -0
  3. package/dist/cli.d.ts +21 -1
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +1346 -384
  6. package/dist/cli.js.map +1 -1
  7. package/dist/e2e/instrument.e2e.js +12 -0
  8. package/dist/e2e/instrument.e2e.js.map +1 -1
  9. package/dist/index.d.ts +9 -8
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/playwright.config.d.ts +1 -1
  14. package/dist/src/asset.d.ts +27 -67
  15. package/dist/src/asset.d.ts.map +1 -1
  16. package/dist/src/asset.js +44 -45
  17. package/dist/src/asset.js.map +1 -1
  18. package/dist/src/caption.d.ts +164 -54
  19. package/dist/src/caption.d.ts.map +1 -1
  20. package/dist/src/caption.js +304 -131
  21. package/dist/src/caption.js.map +1 -1
  22. package/dist/src/events.d.ts +69 -27
  23. package/dist/src/events.d.ts.map +1 -1
  24. package/dist/src/events.js +64 -40
  25. package/dist/src/events.js.map +1 -1
  26. package/dist/src/instrument.d.ts.map +1 -1
  27. package/dist/src/instrument.js +142 -35
  28. package/dist/src/instrument.js.map +1 -1
  29. package/dist/src/logger.d.ts.map +1 -1
  30. package/dist/src/logger.js +2 -1
  31. package/dist/src/logger.js.map +1 -1
  32. package/dist/src/recording.d.ts +4 -0
  33. package/dist/src/recording.d.ts.map +1 -0
  34. package/dist/src/recording.js +2 -0
  35. package/dist/src/recording.js.map +1 -0
  36. package/dist/src/recordingData.d.ts +145 -0
  37. package/dist/src/recordingData.d.ts.map +1 -0
  38. package/dist/src/recordingData.js +2 -0
  39. package/dist/src/recordingData.js.map +1 -0
  40. package/dist/src/types.d.ts +201 -71
  41. package/dist/src/types.d.ts.map +1 -1
  42. package/dist/src/types.js +31 -1
  43. package/dist/src/types.js.map +1 -1
  44. package/dist/src/video.d.ts.map +1 -1
  45. package/dist/src/video.js +29 -24
  46. package/dist/src/video.js.map +1 -1
  47. package/dist/src/voices.d.ts +344 -41
  48. package/dist/src/voices.d.ts.map +1 -1
  49. package/dist/src/voices.js +261 -30
  50. package/dist/src/voices.js.map +1 -1
  51. package/dist/test-fixtures/screenci.config.d.ts +5 -0
  52. package/dist/test-fixtures/screenci.config.d.ts.map +1 -0
  53. package/dist/test-fixtures/screenci.config.js +4 -0
  54. package/dist/test-fixtures/screenci.config.js.map +1 -0
  55. package/dist/tsconfig.tsbuildinfo +1 -1
  56. package/package.json +39 -3
  57. package/skills/playwright-cli/SKILL.md +348 -0
  58. package/skills/screenci/SKILL.md +55 -0
  59. package/skills/screenci/references/init.md +47 -0
  60. package/skills/screenci/references/record.md +41 -0
  61. package/dist/reporter.d.ts +0 -9
  62. package/dist/reporter.d.ts.map +0 -1
  63. package/dist/reporter.js +0 -49
  64. package/dist/reporter.js.map +0 -1
  65. package/dist/src/caption.test-d.d.ts +0 -2
  66. package/dist/src/caption.test-d.d.ts.map +0 -1
  67. package/dist/src/caption.test-d.js +0 -50
  68. package/dist/src/caption.test-d.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import type { AutoZoomOptions, CaptionConfig, Easing, RecordOptions, RenderOptions } from './types.js';
1
+ import type { AutoZoomOptions, CaptionConfig, Easing, RecordOptions, RenderOptions, ResolvedRenderOptions } from './types.js';
2
2
  import type { VoiceKey } from './voices.js';
3
3
  export type VideoStartEvent = {
4
4
  type: 'videoStart';
@@ -14,6 +14,7 @@ export type MouseMoveEvent = {
14
14
  type: 'mouseMove';
15
15
  startMs: number;
16
16
  endMs: number;
17
+ duration: number;
17
18
  x: number;
18
19
  y: number;
19
20
  easing?: Easing;
@@ -61,9 +62,24 @@ export type InputEvent = {
61
62
  elementRect?: ElementRect;
62
63
  events: Array<MouseMoveEvent | MouseDownEvent | MouseUpEvent | MouseShowEvent | MouseHideEvent | MouseWaitEvent>;
63
64
  };
65
+ export type RecordingCustomVoiceRef = {
66
+ assetHash: string;
67
+ /** Present only in recording phase (for CLI upload); stripped from submitted data. */
68
+ assetPath?: string;
69
+ };
64
70
  export type CaptionTranslation = {
65
71
  text: string;
66
- voice: VoiceKey;
72
+ voice: VoiceKey | RecordingCustomVoiceRef;
73
+ /** BCP-47 region code, e.g. 'en-US'. Overrides the base language for TTS synthesis. */
74
+ region?: string;
75
+ /** TTS model type — 'expressive' (Gemini) or 'consistent' (Chirp 3 HD). Defaults to 'consistent'. */
76
+ modelType?: string;
77
+ /** Speaking style prompt for Gemini TTS (only used with 'expressive' model). */
78
+ style?: string;
79
+ /** Accent description for Gemini TTS (only used with 'expressive' model). Omitted from the prompt when not set. */
80
+ accent?: string;
81
+ /** Pacing description for Gemini TTS (only used with 'expressive' model). */
82
+ pacing?: string;
67
83
  };
68
84
  export type CaptionStartEvent = {
69
85
  type: 'captionStart';
@@ -75,35 +91,46 @@ export type CaptionStartEvent = {
75
91
  /** Multi-language API — all language translations keyed by language code */
76
92
  translations?: Record<string, CaptionTranslation>;
77
93
  };
78
- export type CaptionUntilEvent = {
79
- type: 'captionUntil';
80
- timeMs: number;
81
- percentage: number;
82
- };
83
94
  export type CaptionEndEvent = {
84
95
  type: 'captionEnd';
85
96
  timeMs: number;
97
+ reason?: 'auto' | 'waitEnd';
86
98
  };
87
- /** File-based video caption translation uses a pre-recorded asset. */
99
+ /** File-based video caption translation. assetPath is present only in the local
100
+ * recording phase (for CLI upload) and is stripped before submitting to the backend. */
88
101
  export type VideoCaptionTranslationFile = {
89
- assetPath: string;
102
+ assetHash: string;
103
+ /** Local file path — present only during recording; stripped from submitted data. */
104
+ assetPath?: string;
90
105
  subtitle?: string;
91
106
  };
92
107
  /** TTS-based video caption translation — generates audio via text-to-speech. */
93
108
  export type VideoCaptionTranslationTTS = {
94
109
  text: string;
95
- voice: VoiceKey;
110
+ voice: VoiceKey | RecordingCustomVoiceRef;
111
+ /** BCP-47 region code, e.g. 'en-US'. Overrides the base language for TTS synthesis. */
112
+ region?: string;
113
+ /** TTS model type — 'expressive' (Gemini) or 'consistent' (Chirp 3 HD). Defaults to 'consistent'. */
114
+ modelType?: string;
115
+ /** Speaking style prompt for Gemini TTS (only used with 'expressive' model). */
116
+ style?: string;
117
+ /** Accent description for Gemini TTS (only used with 'expressive' model). Omitted from the prompt when not set. */
118
+ accent?: string;
119
+ /** Pacing description for Gemini TTS (only used with 'expressive' model). */
120
+ pacing?: string;
96
121
  };
97
122
  export type VideoCaptionTranslation = VideoCaptionTranslationFile | VideoCaptionTranslationTTS;
98
123
  export type VideoCaptionStartEvent = {
99
124
  type: 'videoCaptionStart';
100
125
  timeMs: number;
101
126
  name: string;
102
- /** Single-language API: absolute path to the pre-recorded audio/video file. */
127
+ /** Single-language API: SHA-256 hash of the pre-recorded asset. */
128
+ assetHash?: string;
129
+ /** Single-language API: local file path — present only during recording; stripped from submitted data. */
103
130
  assetPath?: string;
104
131
  /** Optional subtitle text. Words are spread with equal timing at render time. */
105
132
  subtitle?: string;
106
- /** Multi-language API — per-language asset paths keyed by language code. */
133
+ /** Multi-language API — per-language translations keyed by language code. */
107
134
  translations?: Record<string, VideoCaptionTranslation>;
108
135
  };
109
136
  export type AssetStartEvent = {
@@ -111,14 +138,10 @@ export type AssetStartEvent = {
111
138
  timeMs: number;
112
139
  name: string;
113
140
  path: string;
141
+ fileHash?: string;
114
142
  audio: number;
115
143
  fullScreen: boolean;
116
144
  };
117
- export type AssetEndEvent = {
118
- type: 'assetEnd';
119
- timeMs: number;
120
- name: string;
121
- };
122
145
  export type HideStartEvent = {
123
146
  type: 'hideStart';
124
147
  timeMs: number;
@@ -146,7 +169,22 @@ export type AutoZoomEndEvent = {
146
169
  easing: string;
147
170
  duration: number;
148
171
  };
149
- export type RecordingEvent = VideoStartEvent | InputEvent | CaptionStartEvent | CaptionUntilEvent | CaptionEndEvent | VideoCaptionStartEvent | AssetStartEvent | AssetEndEvent | HideStartEvent | HideEndEvent | AutoZoomStartEvent | AutoZoomEndEvent;
172
+ export type RecordingEvent = VideoStartEvent | InputEvent | CaptionStartEvent | CaptionEndEvent | VideoCaptionStartEvent | AssetStartEvent | HideStartEvent | HideEndEvent | AutoZoomStartEvent | AutoZoomEndEvent;
173
+ export type VoiceLanguageMeta = {
174
+ /** Voice key string: a built-in voice name, `elevenlabs:{voiceId}`, or `custom:{path}`. */
175
+ name: string;
176
+ seed?: number;
177
+ /** BCP-47 region code, e.g. 'en-US'. Overrides the base language for TTS synthesis. */
178
+ region?: string;
179
+ /** TTS model type — 'expressive' (Gemini) or 'consistent' (Chirp 3 HD). Defaults to 'consistent'. */
180
+ modelType?: string;
181
+ /** Speaking style prompt for Gemini TTS (only used with 'expressive' model). */
182
+ style?: string;
183
+ /** Accent description for Gemini TTS (only used with 'expressive' model). Omitted from the prompt when not set. */
184
+ accent?: string;
185
+ /** Pacing description for Gemini TTS (only used with 'expressive' model). */
186
+ pacing?: string;
187
+ };
150
188
  export type RecordingMetadata = {
151
189
  videoName: string;
152
190
  /** Language codes present in multi-language captions, e.g. `['en', 'de']`. Omitted when no multi-language captions are used. */
@@ -154,7 +192,7 @@ export type RecordingMetadata = {
154
192
  };
155
193
  export type RecordingData = {
156
194
  events: RecordingEvent[];
157
- renderOptions?: RenderOptions;
195
+ renderOptions: ResolvedRenderOptions;
158
196
  recordOptions?: RecordOptions;
159
197
  metadata?: RecordingMetadata;
160
198
  };
@@ -167,15 +205,18 @@ export interface IEventRecorder {
167
205
  */
168
206
  addInput(subType: InputEvent['subType'], elementRect: ElementRect | undefined, events: InputEvent['events']): void;
169
207
  addCaptionStart(text: string, name: string, captionConfig?: CaptionConfig, translations?: Record<string, CaptionTranslation>): void;
170
- addCaptionUntil(percentage: number): void;
171
- addCaptionEnd(): void;
172
- addVideoCaptionStart(name: string, assetPath: string | undefined, subtitle?: string, translations?: Record<string, VideoCaptionTranslation>): void;
208
+ addCaptionEnd(reason?: 'auto' | 'waitEnd'): void;
209
+ addVideoCaptionStart(name: string, assetPath: string | undefined, assetHash: string | undefined, subtitle?: string, translations?: Record<string, VideoCaptionTranslation>): void;
173
210
  addAssetStart(name: string, path: string, audio: number, fullScreen: boolean): void;
174
- addAssetEnd(name: string): void;
175
211
  addHideStart(): void;
176
212
  addHideEnd(): void;
177
213
  addAutoZoomStart(options?: AutoZoomOptions): void;
178
214
  addAutoZoomEnd(options?: AutoZoomOptions): void;
215
+ /**
216
+ * Registers voice metadata seen during recording.
217
+ * Kept for API compatibility; voice settings are stored per caption event.
218
+ */
219
+ registerVoiceForLang(lang: string, meta: VoiceLanguageMeta): void;
179
220
  getEvents(): RecordingEvent[];
180
221
  writeToFile(dir: string, videoName: string): Promise<void>;
181
222
  }
@@ -185,14 +226,15 @@ export declare class EventRecorder implements IEventRecorder {
185
226
  private readonly recordOptions;
186
227
  private readonly renderOptions;
187
228
  constructor(renderOptions?: RenderOptions, recordOptions?: RecordOptions);
229
+ registerVoiceForLang(_lang: string, _meta: VoiceLanguageMeta): void;
230
+ private clampUnitInterval;
231
+ private normalizeCentering;
188
232
  start(): void;
189
233
  addInput(subType: InputEvent['subType'], elementRect: ElementRect | undefined, events: InputEvent['events']): void;
190
234
  addCaptionStart(text: string, name: string, captionConfig?: CaptionConfig, translations?: Record<string, CaptionTranslation>): void;
191
- addCaptionUntil(percentage: number): void;
192
- addCaptionEnd(): void;
193
- addVideoCaptionStart(name: string, assetPath: string | undefined, subtitle?: string, translations?: Record<string, VideoCaptionTranslation>): void;
235
+ addCaptionEnd(reason?: 'auto' | 'waitEnd'): void;
236
+ addVideoCaptionStart(name: string, assetPath: string | undefined, assetHash: string | undefined, subtitle?: string, translations?: Record<string, VideoCaptionTranslation>): void;
194
237
  addAssetStart(name: string, path: string, audio: number, fullScreen: boolean): void;
195
- addAssetEnd(name: string): void;
196
238
  addHideStart(): void;
197
239
  addHideEnd(): void;
198
240
  addAutoZoomStart(options?: AutoZoomOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { writeFile } from 'fs/promises';
2
2
  import { join } from 'path';
3
+ import { RENDER_OPTIONS_DEFAULTS } from './types.js';
3
4
  import { DEFAULT_ZOOM_AMOUNT, DEFAULT_ZOOM_DURATION, DEFAULT_ZOOM_EASING, } from './defaults.js';
4
- import { getDimensions } from './dimensions.js';
5
5
  export class EventRecorder {
6
6
  events = [];
7
7
  startTime = null;
@@ -11,6 +11,25 @@ export class EventRecorder {
11
11
  this.recordOptions = recordOptions;
12
12
  this.renderOptions = renderOptions;
13
13
  }
14
+ registerVoiceForLang(_lang, _meta) { }
15
+ clampUnitInterval(value) {
16
+ return Math.max(0, Math.min(1, value));
17
+ }
18
+ normalizeCentering(options) {
19
+ if (options?.centering === undefined)
20
+ return undefined;
21
+ const centering = {};
22
+ if (options.centering.cursor !== undefined) {
23
+ centering.cursor = this.clampUnitInterval(options.centering.cursor);
24
+ }
25
+ if (options.centering.input !== undefined) {
26
+ centering.input = this.clampUnitInterval(options.centering.input);
27
+ }
28
+ if (options.centering.click !== undefined) {
29
+ centering.click = this.clampUnitInterval(options.centering.click);
30
+ }
31
+ return centering;
32
+ }
14
33
  start() {
15
34
  this.startTime = Date.now();
16
35
  this.events.push({ type: 'videoStart', timeMs: 0 });
@@ -63,19 +82,17 @@ export class EventRecorder {
63
82
  ...(translations !== undefined && { translations }),
64
83
  });
65
84
  }
66
- addCaptionUntil(percentage) {
85
+ addCaptionEnd(reason) {
67
86
  if (this.startTime === null)
68
87
  return;
69
88
  const timeMs = Date.now() - this.startTime;
70
- this.events.push({ type: 'captionUntil', timeMs, percentage });
71
- }
72
- addCaptionEnd() {
73
- if (this.startTime === null)
74
- return;
75
- const timeMs = Date.now() - this.startTime;
76
- this.events.push({ type: 'captionEnd', timeMs });
89
+ this.events.push({
90
+ type: 'captionEnd',
91
+ timeMs,
92
+ ...(reason !== undefined && { reason }),
93
+ });
77
94
  }
78
- addVideoCaptionStart(name, assetPath, subtitle, translations) {
95
+ addVideoCaptionStart(name, assetPath, assetHash, subtitle, translations) {
79
96
  if (this.startTime === null)
80
97
  return;
81
98
  const timeMs = Date.now() - this.startTime;
@@ -83,6 +100,7 @@ export class EventRecorder {
83
100
  type: 'videoCaptionStart',
84
101
  timeMs,
85
102
  name,
103
+ ...(assetHash !== undefined && { assetHash }),
86
104
  ...(assetPath !== undefined && { assetPath }),
87
105
  ...(subtitle !== undefined && { subtitle }),
88
106
  ...(translations !== undefined && { translations }),
@@ -101,12 +119,6 @@ export class EventRecorder {
101
119
  fullScreen,
102
120
  });
103
121
  }
104
- addAssetEnd(name) {
105
- if (this.startTime === null)
106
- return;
107
- const timeMs = Date.now() - this.startTime;
108
- this.events.push({ type: 'assetEnd', timeMs, name });
109
- }
110
122
  addHideStart() {
111
123
  if (this.startTime === null)
112
124
  return;
@@ -123,6 +135,7 @@ export class EventRecorder {
123
135
  if (this.startTime === null)
124
136
  return;
125
137
  const timeMs = Date.now() - this.startTime;
138
+ const centering = this.normalizeCentering(options);
126
139
  for (const existing of this.events) {
127
140
  if (existing.type !== 'input')
128
141
  continue;
@@ -138,8 +151,8 @@ export class EventRecorder {
138
151
  easing: options?.easing ?? DEFAULT_ZOOM_EASING,
139
152
  duration: options?.duration ?? DEFAULT_ZOOM_DURATION,
140
153
  amount: options?.amount ?? DEFAULT_ZOOM_AMOUNT,
141
- ...(options?.centering !== undefined && {
142
- centering: options.centering,
154
+ ...(centering !== undefined && {
155
+ centering,
143
156
  }),
144
157
  ...(options?.allowZoomingOut !== undefined && {
145
158
  allowZoomingOut: options.allowZoomingOut,
@@ -171,29 +184,37 @@ export class EventRecorder {
171
184
  }
172
185
  async writeToFile(dir, videoName) {
173
186
  const filePath = join(dir, 'data.json');
174
- // Always default output.aspectRatio to '16:9' if not explicitly set.
175
- const renderOptionsWithDefaults = {
176
- ...this.renderOptions,
187
+ // Resolve all defaults so data.json always contains a complete set of
188
+ // render options.
189
+ const ro = this.renderOptions;
190
+ const resolved = {
191
+ recording: {
192
+ size: ro?.recording?.size ?? RENDER_OPTIONS_DEFAULTS.recording.size,
193
+ roundness: ro?.recording?.roundness ??
194
+ RENDER_OPTIONS_DEFAULTS.recording.roundness,
195
+ shape: ro?.recording?.shape ?? RENDER_OPTIONS_DEFAULTS.recording.shape,
196
+ dropShadow: ro?.recording?.dropShadow ??
197
+ RENDER_OPTIONS_DEFAULTS.recording.dropShadow,
198
+ },
199
+ voiceOvers: {
200
+ size: ro?.voiceOvers?.size ?? RENDER_OPTIONS_DEFAULTS.voiceOvers.size,
201
+ roundness: ro?.voiceOvers?.roundness ??
202
+ RENDER_OPTIONS_DEFAULTS.voiceOvers.roundness,
203
+ shape: ro?.voiceOvers?.shape ?? RENDER_OPTIONS_DEFAULTS.voiceOvers.shape,
204
+ corner: ro?.voiceOvers?.corner ?? RENDER_OPTIONS_DEFAULTS.voiceOvers.corner,
205
+ padding: ro?.voiceOvers?.padding ?? RENDER_OPTIONS_DEFAULTS.voiceOvers.padding,
206
+ dropShadow: ro?.voiceOvers?.dropShadow ??
207
+ RENDER_OPTIONS_DEFAULTS.voiceOvers.dropShadow,
208
+ },
209
+ cursor: {
210
+ size: ro?.cursor?.size ?? RENDER_OPTIONS_DEFAULTS.cursor.size,
211
+ },
177
212
  output: {
178
- ...this.renderOptions?.output,
179
- aspectRatio: this.renderOptions?.output?.aspectRatio ?? '16:9',
213
+ aspectRatio: ro?.output?.aspectRatio ?? RENDER_OPTIONS_DEFAULTS.output.aspectRatio,
214
+ quality: ro?.output?.quality ?? RENDER_OPTIONS_DEFAULTS.output.quality,
215
+ background: ro?.output?.background ?? RENDER_OPTIONS_DEFAULTS.output.background,
180
216
  },
181
217
  };
182
- let serializedRenderOptions = renderOptionsWithDefaults;
183
- // outputOpts is always defined because renderOptionsWithDefaults.output is always set above
184
- const outputOpts = renderOptionsWithDefaults.output;
185
- if (outputOpts.aspectRatio !== undefined &&
186
- outputOpts.quality !== undefined) {
187
- const { width, height } = getDimensions(outputOpts.aspectRatio, outputOpts.quality);
188
- const { aspectRatio: _aspectRatio, quality: _quality, ...restOutput } = outputOpts;
189
- serializedRenderOptions = {
190
- ...renderOptionsWithDefaults,
191
- output: {
192
- ...restOutput,
193
- resolution: `${width}x${height}`,
194
- },
195
- };
196
- }
197
218
  const languageSet = new Set();
198
219
  for (const event of this.events) {
199
220
  if (event.type === 'captionStart') {
@@ -203,7 +224,10 @@ export class EventRecorder {
203
224
  }
204
225
  }
205
226
  else if (event.captionConfig?.voice !== undefined) {
206
- const lang = event.captionConfig.voice.split('.')[0];
227
+ const lang = event.captionConfig.voice.includes('.') &&
228
+ !event.captionConfig.voice.startsWith('elevenlabs:')
229
+ ? event.captionConfig.voice.split('.')[0]
230
+ : undefined;
207
231
  if (lang)
208
232
  languageSet.add(lang);
209
233
  }
@@ -212,7 +236,7 @@ export class EventRecorder {
212
236
  const languages = languageSet.size > 0 ? [...languageSet].sort() : undefined;
213
237
  const data = {
214
238
  events: this.events,
215
- renderOptions: serializedRenderOptions,
239
+ renderOptions: resolved,
216
240
  ...(this.recordOptions !== undefined && {
217
241
  recordOptions: this.recordOptions,
218
242
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"instrument.d.ts","sourceRoot":"","sources":["../../src/instrument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EACd,OAAO,EACP,OAAO,EACP,YAAY,EACb,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EACV,cAAc,EAQf,MAAM,aAAa,CAAA;AAkBpB,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAE5E;AAgID,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,KAAK,CAAC,EAAE,qBAAqB,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CACtB,GACL,OAAO,CAAC,IAAI,CAAC,CAoDf;AAgeD,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,YAAY,GACzB,YAAY,CAuBd;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CA0kB3D;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA6J9D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAUzE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAe3D"}
1
+ {"version":3,"file":"instrument.d.ts","sourceRoot":"","sources":["../../src/instrument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EACd,OAAO,EACP,OAAO,EACP,YAAY,EACb,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EACV,cAAc,EAQf,MAAM,aAAa,CAAA;AAkBpB,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAE5E;AA2KD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE;IACP,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,KAAK,CAAC,EAAE,qBAAqB,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CACtB,GACL,OAAO,CAAC,IAAI,CAAC,CAoDf;AAghBD,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,YAAY,GACzB,YAAY,CAuBd;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CA4pB3D;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA8K9D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAUzE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAe3D"}