@mushi-mushi/core 1.19.2 → 1.20.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/CONTRIBUTING.md CHANGED
@@ -81,6 +81,18 @@ tooling/
81
81
  tsconfig/ Shared TypeScript configs
82
82
  ```
83
83
 
84
+ ## What we don't accept
85
+
86
+ Knowing this upfront saves everyone time.
87
+
88
+ - **Automated / bulk / AI-slop PRs** — any PR that was opened by a script, an LLM agent acting without meaningful human review, or as part of a parallel bounty-farming sweep is closed on sight. The commit history, branch name, or helper scripts included in the PR make this obvious.
89
+ - **PRs that target the wrong base** — all PRs must branch from and target `master`. PRs targeting `main` or any other branch are closed (and will show an inflated diff that is not your work).
90
+ - **One PR per issue, one issue per PR** — splitting or duplicating work just to collect acknowledgements isn't welcome.
91
+ - **Good-first-issues without claiming first** — comment on the issue to claim it before starting. If two people open PRs for the same issue, the one that commented first is prioritised.
92
+ - **Documentation-only PRs that merely duplicate existing content** — if the information already exists (e.g. in another file in this repo), adding a redundant copy adds noise without value.
93
+
94
+ If a PR violates these policies it will be closed with a brief explanation. No hard feelings — a genuine contribution on the same issue is always welcome.
95
+
84
96
  ## Making Changes
85
97
 
86
98
  1. Create a feature branch from `master`
package/dist/index.d.cts CHANGED
@@ -315,6 +315,27 @@ interface MushiCaptureConfig {
315
315
  ignoreUrls?: MushiUrlMatcher[];
316
316
  performance?: boolean;
317
317
  screenshot?: 'on-report' | 'auto' | 'off';
318
+ /**
319
+ * Custom screenshot capture function. When provided, the SDK calls this
320
+ * instead of its built-in DOM-snapshot capturer. Return a JPEG/PNG data URI
321
+ * on success, or `null` to skip attachment. If the function throws the SDK
322
+ * falls back to the built-in capturer.
323
+ *
324
+ * Primary use-case: Capacitor / WebView hosts that route through a native
325
+ * plugin (e.g. `@capawesome/capacitor-screenshot`) to obtain a real pixel-
326
+ * accurate screen grab instead of the SVG-foreignObject DOM reconstruction.
327
+ *
328
+ * @example
329
+ * capture: {
330
+ * screenshot: 'auto',
331
+ * screenshotProvider: async () => {
332
+ * const { Screenshot } = await import('@capawesome/capacitor-screenshot');
333
+ * const { uri } = await Screenshot.take();
334
+ * return uri; // data URI on web, file:// on native (SDK handles both)
335
+ * },
336
+ * }
337
+ */
338
+ screenshotProvider?: () => Promise<string | null>;
318
339
  elementSelector?: boolean;
319
340
  replay?: 'sentry' | 'rrweb' | 'lite' | 'off';
320
341
  /**
package/dist/index.d.ts CHANGED
@@ -315,6 +315,27 @@ interface MushiCaptureConfig {
315
315
  ignoreUrls?: MushiUrlMatcher[];
316
316
  performance?: boolean;
317
317
  screenshot?: 'on-report' | 'auto' | 'off';
318
+ /**
319
+ * Custom screenshot capture function. When provided, the SDK calls this
320
+ * instead of its built-in DOM-snapshot capturer. Return a JPEG/PNG data URI
321
+ * on success, or `null` to skip attachment. If the function throws the SDK
322
+ * falls back to the built-in capturer.
323
+ *
324
+ * Primary use-case: Capacitor / WebView hosts that route through a native
325
+ * plugin (e.g. `@capawesome/capacitor-screenshot`) to obtain a real pixel-
326
+ * accurate screen grab instead of the SVG-foreignObject DOM reconstruction.
327
+ *
328
+ * @example
329
+ * capture: {
330
+ * screenshot: 'auto',
331
+ * screenshotProvider: async () => {
332
+ * const { Screenshot } = await import('@capawesome/capacitor-screenshot');
333
+ * const { uri } = await Screenshot.take();
334
+ * return uri; // data URI on web, file:// on native (SDK handles both)
335
+ * },
336
+ * }
337
+ */
338
+ screenshotProvider?: () => Promise<string | null>;
318
339
  elementSelector?: boolean;
319
340
  replay?: 'sentry' | 'rrweb' | 'lite' | 'off';
320
341
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mushi-mushi/core",
3
- "version": "1.19.2",
3
+ "version": "1.20.0",
4
4
  "description": "Core types, API client, and pre-filter for Mushi Mushi SDK",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -32,7 +32,7 @@
32
32
  "url": "https://github.com/kensaurus/mushi-mushi.git",
33
33
  "directory": "packages/core"
34
34
  },
35
- "homepage": "https://github.com/kensaurus/mushi-mushi/tree/main/packages/core#readme",
35
+ "homepage": "https://github.com/kensaurus/mushi-mushi/tree/master/packages/core#readme",
36
36
  "bugs": {
37
37
  "url": "https://github.com/kensaurus/mushi-mushi/issues"
38
38
  },
@@ -83,6 +83,10 @@
83
83
  "engines": {
84
84
  "node": ">=20"
85
85
  },
86
+ "funding": {
87
+ "type": "github",
88
+ "url": "https://github.com/sponsors/kensaurus"
89
+ },
86
90
  "scripts": {
87
91
  "build": "tsup",
88
92
  "dev": "tsup --watch",