@nzila/sdk 0.1.5 → 0.1.6

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/README.md CHANGED
@@ -63,13 +63,13 @@ After you sign in on [nzila-kappa.vercel.app](https://nzila-kappa.vercel.app), t
63
63
  **Tests (CI):**
64
64
 
65
65
  ```ts
66
- import NzilaVitestReporter from "@nzila/sdk/vitest";
66
+ import { nzilaVitestReporter } from "@nzila/sdk/vitest";
67
67
 
68
68
  export default defineConfig({
69
69
  test: {
70
70
  reporters: [
71
71
  "default",
72
- new NzilaVitestReporter({
72
+ nzilaVitestReporter({
73
73
  webhookUrl: process.env.NZILA_WEBHOOK_URL!,
74
74
  apiKey: process.env.NZILA_API_KEY!,
75
75
  appName: "my-app",
@@ -1,21 +1,26 @@
1
1
  import type { File } from "@vitest/runner";
2
- import type { Reporter, TestModule } from "vitest/node";
2
+ import type { Reporter, SerializedError, TestModule, TestRunEndReason } from "vitest/node";
3
3
  import type { NzilaClientOptions } from "./types.js";
4
4
  /**
5
5
  * Vitest reporter that POSTs one webhook per finished run via {@link sendNzilaRun}.
6
6
  * Supports Vitest 3+ (`onTestRunEnd`) and legacy `onFinished` file tasks.
7
7
  */
8
- export default class NzilaVitestReporter implements Reporter {
8
+ export default class NzilaVitestReporter {
9
9
  private readonly options;
10
10
  private startedAt;
11
11
  private sent;
12
12
  private readonly runId;
13
13
  constructor(options: NzilaClientOptions);
14
- onTestRunEnd(testModules: ReadonlyArray<TestModule>): void;
14
+ onTestRunEnd(testModules: ReadonlyArray<TestModule>, _unhandledErrors?: ReadonlyArray<SerializedError>, _reason?: TestRunEndReason): void;
15
15
  /** @deprecated Vitest 2 — still invoked in some setups */
16
- onFinished(files?: File[], _errors?: unknown[]): void;
16
+ onFinished(files: File[], _errors: unknown[], _coverage?: unknown): void;
17
17
  private sendPayload;
18
18
  private walkTasks;
19
19
  private mapStatus;
20
20
  }
21
+ /**
22
+ * Returns a reporter instance typed for your project's Vitest config (`reporters` array).
23
+ * Prefer this over `new NzilaVitestReporter()` when TypeScript reports a Reporter mismatch.
24
+ */
25
+ export declare function nzilaVitestReporter(options: NzilaClientOptions): Reporter;
21
26
  //# sourceMappingURL=vitest-reporter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vitest-reporter.d.ts","sourceRoot":"","sources":["../src/vitest-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAQ,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKxD,OAAO,KAAK,EAAE,kBAAkB,EAAmD,MAAM,YAAY,CAAC;AAEtG;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,QAAQ;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAClE,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,OAAO,EAAE,kBAAkB;IAKvC,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC;IAKnD,0DAA0D;IAC1D,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE;YAQhC,WAAW;IA2BzB,OAAO,CAAC,SAAS;IAyCjB,OAAO,CAAC,SAAS;CAMlB"}
1
+ {"version":3,"file":"vitest-reporter.d.ts","sourceRoot":"","sources":["../src/vitest-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAQ,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,UAAU,EACV,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAKrB,OAAO,KAAK,EAAE,kBAAkB,EAAmD,MAAM,YAAY,CAAC;AAEtG;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAClE,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,OAAO,EAAE,kBAAkB;IAKvC,YAAY,CACV,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,EACtC,gBAAgB,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,EACjD,OAAO,CAAC,EAAE,gBAAgB;IAM5B,0DAA0D;IAC1D,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO;YAQnD,WAAW;IA2BzB,OAAO,CAAC,SAAS;IAyCjB,OAAO,CAAC,SAAS;CAMlB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,QAAQ,CAEzE"}
@@ -13,12 +13,12 @@ export default class NzilaVitestReporter {
13
13
  this.options = resolveClientOptions(options);
14
14
  this.runId = this.options.runId ?? randomUUID();
15
15
  }
16
- onTestRunEnd(testModules) {
16
+ onTestRunEnd(testModules, _unhandledErrors, _reason) {
17
17
  const tests = collectTestsFromVitestModules(testModules, this.options, this.startedAt);
18
18
  void this.sendPayload(tests);
19
19
  }
20
20
  /** @deprecated Vitest 2 — still invoked in some setups */
21
- onFinished(files, _errors) {
21
+ onFinished(files, _errors, _coverage) {
22
22
  const tests = [];
23
23
  for (const file of files ?? []) {
24
24
  this.walkTasks(file.tasks, file.name.split("/").slice(0, -1), tests);
@@ -94,3 +94,10 @@ export default class NzilaVitestReporter {
94
94
  return "pending";
95
95
  }
96
96
  }
97
+ /**
98
+ * Returns a reporter instance typed for your project's Vitest config (`reporters` array).
99
+ * Prefer this over `new NzilaVitestReporter()` when TypeScript reports a Reporter mismatch.
100
+ */
101
+ export function nzilaVitestReporter(options) {
102
+ return new NzilaVitestReporter(options);
103
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nzila/sdk",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "Send test runs to Nzila, trace live feature errors, and onboard via npx @nzila/sdk.",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/vitest.d.ts CHANGED
@@ -1,2 +1,15 @@
1
- export { default } from "./dist/vitest-reporter.js";
1
+ import type { NzilaClientOptions } from "./dist/types.js";
2
+
3
+ /** @see {@link nzilaVitestReporter} for use in `defineConfig({ test: { reporters } })`. */
4
+ declare class NzilaVitestReporter {
5
+ constructor(options: NzilaClientOptions);
6
+ }
7
+
8
+ export default NzilaVitestReporter;
9
+
10
+ /** Vitest-config-safe factory (avoids duplicate `Reporter` types across packages). */
11
+ export function nzilaVitestReporter(
12
+ options: NzilaClientOptions,
13
+ ): import("vitest/node").Reporter;
14
+
2
15
  export * from "./dist/vitest-reporter.js";