pipework 0.1.5 → 0.3.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.
Files changed (155) hide show
  1. package/README.md +21 -14
  2. package/dist/auth/chain.d.ts +2 -2
  3. package/dist/auth/chain.d.ts.map +1 -1
  4. package/dist/auth/chain.js +3 -3
  5. package/dist/auth/chain.js.map +1 -1
  6. package/dist/auth/index.d.ts +1 -1
  7. package/dist/auth/index.d.ts.map +1 -1
  8. package/dist/auth/types.d.ts +6 -2
  9. package/dist/auth/types.d.ts.map +1 -1
  10. package/dist/cli/commands/generate.d.ts +7 -0
  11. package/dist/cli/commands/generate.d.ts.map +1 -0
  12. package/dist/cli/commands/generate.js +50 -0
  13. package/dist/cli/commands/generate.js.map +1 -0
  14. package/dist/cli/commands/init.d.ts.map +1 -1
  15. package/dist/cli/commands/init.js +1 -0
  16. package/dist/cli/commands/init.js.map +1 -1
  17. package/dist/cli/commands/run.d.ts +8 -0
  18. package/dist/cli/commands/run.d.ts.map +1 -0
  19. package/dist/cli/commands/run.js +33 -0
  20. package/dist/cli/commands/run.js.map +1 -0
  21. package/dist/cli/commands/test.d.ts +7 -0
  22. package/dist/cli/commands/test.d.ts.map +1 -0
  23. package/dist/cli/commands/test.js +37 -0
  24. package/dist/cli/commands/test.js.map +1 -0
  25. package/dist/cli/index.d.ts.map +1 -1
  26. package/dist/cli/index.js +50 -0
  27. package/dist/cli/index.js.map +1 -1
  28. package/dist/config/env-resolve.d.ts +4 -0
  29. package/dist/config/env-resolve.d.ts.map +1 -0
  30. package/dist/config/env-resolve.js +71 -0
  31. package/dist/config/env-resolve.js.map +1 -0
  32. package/dist/config/env-types.d.ts +42 -0
  33. package/dist/config/env-types.d.ts.map +1 -0
  34. package/dist/config/env-types.js +2 -0
  35. package/dist/config/env-types.js.map +1 -0
  36. package/dist/config/index.d.ts +4 -2
  37. package/dist/config/index.d.ts.map +1 -1
  38. package/dist/config/index.js +1 -0
  39. package/dist/config/index.js.map +1 -1
  40. package/dist/config/load.d.ts +8 -0
  41. package/dist/config/load.d.ts.map +1 -1
  42. package/dist/config/load.js +9 -0
  43. package/dist/config/load.js.map +1 -1
  44. package/dist/config/namespace.d.ts +47 -15
  45. package/dist/config/namespace.d.ts.map +1 -1
  46. package/dist/config/schema.d.ts +39 -0
  47. package/dist/config/schema.d.ts.map +1 -1
  48. package/dist/config/schema.js +14 -0
  49. package/dist/config/schema.js.map +1 -1
  50. package/dist/context/create.d.ts +5 -1
  51. package/dist/context/create.d.ts.map +1 -1
  52. package/dist/context/create.js +3 -3
  53. package/dist/context/create.js.map +1 -1
  54. package/dist/context/guard.d.ts.map +1 -1
  55. package/dist/context/guard.js +6 -1
  56. package/dist/context/guard.js.map +1 -1
  57. package/dist/db/db.d.ts +1 -0
  58. package/dist/db/db.d.ts.map +1 -1
  59. package/dist/db/db.js +13 -1
  60. package/dist/db/db.js.map +1 -1
  61. package/dist/db/index.d.ts +1 -0
  62. package/dist/db/index.d.ts.map +1 -1
  63. package/dist/db/index.js +1 -0
  64. package/dist/db/index.js.map +1 -1
  65. package/dist/db/instrumentation.d.ts +5 -0
  66. package/dist/db/instrumentation.d.ts.map +1 -0
  67. package/dist/db/instrumentation.js +44 -0
  68. package/dist/db/instrumentation.js.map +1 -0
  69. package/dist/db/namespace.d.ts +1 -0
  70. package/dist/db/namespace.d.ts.map +1 -1
  71. package/dist/db/namespace.js +2 -0
  72. package/dist/db/namespace.js.map +1 -1
  73. package/dist/db/pool.d.ts +2 -1
  74. package/dist/db/pool.d.ts.map +1 -1
  75. package/dist/db/pool.js +4 -1
  76. package/dist/db/pool.js.map +1 -1
  77. package/dist/di/builder.d.ts +3 -0
  78. package/dist/di/builder.d.ts.map +1 -1
  79. package/dist/di/builder.js +4 -1
  80. package/dist/di/builder.js.map +1 -1
  81. package/dist/di/index.d.ts +1 -0
  82. package/dist/di/index.d.ts.map +1 -1
  83. package/dist/di/index.js +1 -0
  84. package/dist/di/index.js.map +1 -1
  85. package/dist/di/resolve.d.ts.map +1 -1
  86. package/dist/di/resolve.js +12 -5
  87. package/dist/di/resolve.js.map +1 -1
  88. package/dist/di/types.d.ts +1 -0
  89. package/dist/di/types.d.ts.map +1 -1
  90. package/dist/di/types.js +1 -1
  91. package/dist/di/types.js.map +1 -1
  92. package/dist/http/middleware.d.ts.map +1 -1
  93. package/dist/http/middleware.js +10 -1
  94. package/dist/http/middleware.js.map +1 -1
  95. package/dist/index.d.ts +2 -2
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js.map +1 -1
  98. package/dist/migrate/generate.d.ts +9 -0
  99. package/dist/migrate/generate.d.ts.map +1 -0
  100. package/dist/migrate/generate.js +145 -0
  101. package/dist/migrate/generate.js.map +1 -0
  102. package/dist/migrate/index.d.ts +1 -0
  103. package/dist/migrate/index.d.ts.map +1 -1
  104. package/dist/migrate/index.js +1 -0
  105. package/dist/migrate/index.js.map +1 -1
  106. package/dist/pipework.d.ts +6 -2
  107. package/dist/pipework.d.ts.map +1 -1
  108. package/dist/pipework.js +4 -4
  109. package/dist/pipework.js.map +1 -1
  110. package/dist/tenant/index.d.ts +2 -0
  111. package/dist/tenant/index.d.ts.map +1 -1
  112. package/dist/tenant/index.js +2 -0
  113. package/dist/tenant/index.js.map +1 -1
  114. package/dist/tenant/namespace.d.ts +3 -0
  115. package/dist/tenant/namespace.d.ts.map +1 -1
  116. package/dist/tenant/namespace.js +3 -0
  117. package/dist/tenant/namespace.js.map +1 -1
  118. package/dist/tenant/scope.d.ts +8 -0
  119. package/dist/tenant/scope.d.ts.map +1 -0
  120. package/dist/tenant/scope.js +21 -0
  121. package/dist/tenant/scope.js.map +1 -0
  122. package/dist/tenant/scoped-db.d.ts +3 -0
  123. package/dist/tenant/scoped-db.d.ts.map +1 -0
  124. package/dist/tenant/scoped-db.js +173 -0
  125. package/dist/tenant/scoped-db.js.map +1 -0
  126. package/dist/test/auto-setup.js +6 -1
  127. package/dist/test/auto-setup.js.map +1 -1
  128. package/dist/test/context.d.ts.map +1 -1
  129. package/dist/test/context.js +10 -0
  130. package/dist/test/context.js.map +1 -1
  131. package/dist/test/index.d.ts +3 -1
  132. package/dist/test/index.d.ts.map +1 -1
  133. package/dist/test/index.js +2 -0
  134. package/dist/test/index.js.map +1 -1
  135. package/dist/test/plugin.d.ts +1 -1
  136. package/dist/test/plugin.d.ts.map +1 -1
  137. package/dist/test/plugin.js +2 -2
  138. package/dist/test/plugin.js.map +1 -1
  139. package/dist/test/setup.d.ts +2 -0
  140. package/dist/test/setup.d.ts.map +1 -1
  141. package/dist/test/setup.js +39 -1
  142. package/dist/test/setup.js.map +1 -1
  143. package/dist/test/vitest-config.d.ts +17 -0
  144. package/dist/test/vitest-config.d.ts.map +1 -0
  145. package/dist/test/vitest-config.js +28 -0
  146. package/dist/test/vitest-config.js.map +1 -0
  147. package/dist/test/vitest-plugin.d.ts +7 -0
  148. package/dist/test/vitest-plugin.d.ts.map +1 -0
  149. package/dist/test/vitest-plugin.js +13 -0
  150. package/dist/test/vitest-plugin.js.map +1 -0
  151. package/dist/test/vitest.d.ts +6 -0
  152. package/dist/test/vitest.d.ts.map +1 -1
  153. package/dist/test/vitest.js +31 -13
  154. package/dist/test/vitest.js.map +1 -1
  155. package/package.json +35 -21
@@ -0,0 +1,28 @@
1
+ import { defineConfig } from 'vitest/config';
2
+ import { pipework } from './vitest-plugin.js';
3
+ export function defineTestConfig(overrides) {
4
+ const pipeworkOptions = overrides?.pipework;
5
+ const testOverrides = overrides?.test;
6
+ const otherOverrides = {};
7
+ if (overrides) {
8
+ for (const key of Object.keys(overrides)) {
9
+ if (key !== 'pipework' && key !== 'test') {
10
+ otherOverrides[key] = overrides[key];
11
+ }
12
+ }
13
+ }
14
+ return defineConfig({
15
+ plugins: [pipework(pipeworkOptions)],
16
+ test: {
17
+ testTimeout: 30_000,
18
+ hookTimeout: 60_000,
19
+ pool: 'forks',
20
+ poolOptions: {
21
+ forks: { singleFork: true },
22
+ },
23
+ ...testOverrides,
24
+ },
25
+ ...otherOverrides,
26
+ });
27
+ }
28
+ //# sourceMappingURL=vitest-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest-config.js","sourceRoot":"","sources":["../../src/test/vitest-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,eAAe,CAAA;AACjE,OAAO,EAAE,QAAQ,EAA8B,MAAM,oBAAoB,CAAA;AAiBzE,MAAM,UAAU,gBAAgB,CAAC,SAA6B;IAC5D,MAAM,eAAe,GAAG,SAAS,EAAE,QAAQ,CAAA;IAC3C,MAAM,aAAa,GAAG,SAAS,EAAE,IAAI,CAAA;IACrC,MAAM,cAAc,GAA4B,EAAE,CAAA;IAElD,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACzC,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;QAClB,OAAO,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACpC,IAAI,EAAE;YACJ,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,OAAO;YACb,WAAW,EAAE;gBACX,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;aAC5B;YACD,GAAG,aAAa;SACjB;QACD,GAAG,cAAc;KACA,CAAmB,CAAA;AACxC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Plugin } from 'vitest/config';
2
+ export interface PipeworkVitestOptions {
3
+ globals?: boolean;
4
+ isolate?: boolean;
5
+ }
6
+ export declare function pipework(_options?: PipeworkVitestOptions): Plugin;
7
+ //# sourceMappingURL=vitest-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest-plugin.d.ts","sourceRoot":"","sources":["../../src/test/vitest-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAWjE"}
@@ -0,0 +1,13 @@
1
+ export function pipework(_options) {
2
+ return {
3
+ name: 'pipework',
4
+ config() {
5
+ return {
6
+ test: {
7
+ setupFiles: ['pipework/test/setup'],
8
+ },
9
+ };
10
+ },
11
+ };
12
+ }
13
+ //# sourceMappingURL=vitest-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest-plugin.js","sourceRoot":"","sources":["../../src/test/vitest-plugin.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,QAAQ,CAAC,QAAgC;IACvD,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,MAAM;YACJ,OAAO;gBACL,IAAI,EAAE;oBACJ,UAAU,EAAE,CAAC,qBAAqB,CAAC;iBACpC;aACF,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -6,6 +6,12 @@ export { type TestContext, type TestDatabaseConnections } from './plugin.js';
6
6
  export declare function _setTestState(instance: Manifold, testContext?: TestContext | null): void;
7
7
  export declare function setupPipeworkTests(configOrInstance: Blueprint | Manifold): Manifold;
8
8
  export declare function useTestDb(name?: string): DB;
9
+ export declare function _isInTestIsolation(): boolean;
9
10
  export declare function useTestInstance(): Manifold;
11
+ export interface WithFlowOptions {
12
+ auth?: unknown;
13
+ tenant?: string | null;
14
+ }
10
15
  export declare function withFlow<T>(fn: () => T): T;
16
+ export declare function withFlow<T>(options: WithFlowOptions, fn: () => T): T;
11
17
  //# sourceMappingURL=vitest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../src/test/vitest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAG9C,OAAO,EAAyE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAErH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAK5E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAKxF;AAED,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAyBnF;AAED,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,EAAE,CAkB3C;AAED,wBAAgB,eAAe,IAAI,QAAQ,CAS1C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAU1C"}
1
+ {"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../src/test/vitest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAG9C,OAAO,EAAyE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAErH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAK5E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAKxF;AAED,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAyBnF;AAED,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,EAAE,CAiC3C;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,wBAAgB,eAAe,IAAI,QAAQ,CAS1C;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;AAC3C,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA"}
@@ -33,18 +33,34 @@ export function setupPipeworkTests(configOrInstance) {
33
33
  return instance;
34
34
  }
35
35
  export function useTestDb(name) {
36
- if (!_testContext || !_instance) {
37
- throw new Error('[pipework] No test context available.\n\n' +
38
- ' Add to your vitest.config.ts:\n' +
39
- ' test: { setupFiles: [\'pipework/test/setup\'] }\n');
40
- }
41
- const resolvedName = name ?? _instance.config.defaultDatabaseName();
42
- const db = _testContext.db[resolvedName];
43
- if (!db) {
44
- const available = Object.keys(_testContext.db).join(', ');
45
- throw new Error(`[pipework] No test database "${resolvedName}". Available: ${available}`);
36
+ const resolvedName = name;
37
+ function resolve() {
38
+ if (!_testContext || !_instance) {
39
+ throw new Error('[pipework] No test context available.\n\n' +
40
+ ' Add to your vitest.config.ts:\n' +
41
+ ' test: { setupFiles: [\'pipework/test/setup\'] }\n');
42
+ }
43
+ const dbName = resolvedName ?? _instance.config.defaultDatabaseName();
44
+ const db = _testContext.db[dbName];
45
+ if (!db) {
46
+ const available = Object.keys(_testContext.db).join(', ');
47
+ throw new Error(`[pipework] No test database "${dbName}". Available: ${available}`);
48
+ }
49
+ return db;
46
50
  }
47
- return db;
51
+ return new Proxy({}, {
52
+ get(_target, prop, receiver) {
53
+ const db = resolve();
54
+ const value = Reflect.get(db, prop, receiver);
55
+ return typeof value === 'function' ? value.bind(db) : value;
56
+ },
57
+ has(_target, prop) {
58
+ return prop in resolve();
59
+ },
60
+ });
61
+ }
62
+ export function _isInTestIsolation() {
63
+ return _testContext !== null;
48
64
  }
49
65
  export function useTestInstance() {
50
66
  if (!_instance) {
@@ -54,13 +70,15 @@ export function useTestInstance() {
54
70
  }
55
71
  return _instance;
56
72
  }
57
- export function withFlow(fn) {
73
+ export function withFlow(fnOrOptions, maybeFn) {
58
74
  if (!_testContext || !_instance) {
59
75
  throw new Error('[pipework] No test context available.\n\n' +
60
76
  ' Add to your vitest.config.ts:\n' +
61
77
  ' test: { setupFiles: [\'pipework/test/setup\'] }\n');
62
78
  }
63
- const ctx = createTestContext(_instance, _testContext);
79
+ const options = typeof fnOrOptions === 'function' ? {} : fnOrOptions;
80
+ const fn = typeof fnOrOptions === 'function' ? fnOrOptions : maybeFn;
81
+ const ctx = createTestContext(_instance, _testContext, options.auth, options.tenant);
64
82
  return runInContext(ctx, fn);
65
83
  }
66
84
  function isInstance(v) {
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.js","sourceRoot":"","sources":["../../src/test/vitest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vitest.js","sourceRoot":"","sources":["../../src/test/vitest.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "name": "pipework",
3
- "version": "0.1.5",
3
+ "version": "0.3.0",
4
4
  "description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
5
5
  "type": "module",
6
- "packageManager": "pnpm@9.15.4",
7
6
  "license": "MIT",
8
7
  "publishConfig": {
9
8
  "access": "public"
@@ -36,6 +35,17 @@
36
35
  "./test/setup": {
37
36
  "import": "./dist/test/auto-setup.js",
38
37
  "types": "./dist/test/auto-setup.d.ts"
38
+ },
39
+ "./vitest-plugin": {
40
+ "import": "./dist/test/vitest-plugin.js",
41
+ "types": "./dist/test/vitest-plugin.d.ts"
42
+ },
43
+ "./vitest": {
44
+ "import": "./dist/test/vitest-config.js",
45
+ "types": "./dist/test/vitest-config.d.ts"
46
+ },
47
+ "./globals": {
48
+ "types": "./dist/test/globals.d.ts"
39
49
  }
40
50
  },
41
51
  "main": "./dist/index.js",
@@ -48,18 +58,6 @@
48
58
  "bin": {
49
59
  "pipework": "bin/pipework.js"
50
60
  },
51
- "scripts": {
52
- "build": "tsc",
53
- "type-check": "tsc --noEmit",
54
- "lint": "eslint src --max-warnings 0",
55
- "lint:boundaries": "node scripts/check-boundaries.js",
56
- "test": "vitest run",
57
- "test:isolation": "vitest run --config vitest.isolation.config.ts",
58
- "test:property": "vitest run --config vitest.property.config.ts",
59
- "test:stress": "vitest run --config vitest.stress.config.ts",
60
- "test:all": "vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts",
61
- "mutate": "stryker run"
62
- },
63
61
  "pipework": {
64
62
  "boundaries": {
65
63
  "rules": {
@@ -101,7 +99,8 @@
101
99
  "src/drizzle/",
102
100
  "src/migrate/",
103
101
  "src/test/",
104
- "tests/boundaries/"
102
+ "tests/boundaries/",
103
+ "tests/migrate/"
105
104
  ]
106
105
  },
107
106
  "no-raw-zod": {
@@ -110,6 +109,14 @@
110
109
  "src/config/",
111
110
  "tests/boundaries/"
112
111
  ]
112
+ },
113
+ "no-raw-route-handlers": {
114
+ "exempt": [
115
+ "src/http/",
116
+ "src/fixture/",
117
+ "src/lifecycle/",
118
+ "tests/"
119
+ ]
113
120
  }
114
121
  }
115
122
  }
@@ -125,11 +132,6 @@
125
132
  "postgres": "^3.4.9",
126
133
  "zod": "^4.4.3"
127
134
  },
128
- "pnpm": {
129
- "overrides": {
130
- "esbuild": ">=0.25.0"
131
- }
132
- },
133
135
  "devDependencies": {
134
136
  "@stryker-mutator/core": "^9.6.1",
135
137
  "@stryker-mutator/typescript-checker": "^9.6.1",
@@ -143,5 +145,17 @@
143
145
  "pino-pretty": "^13.1.3",
144
146
  "typescript": "^6.0.3",
145
147
  "vitest": "^4.1.5"
148
+ },
149
+ "scripts": {
150
+ "build": "tsc",
151
+ "type-check": "tsc --noEmit",
152
+ "lint": "eslint src --max-warnings 0",
153
+ "lint:boundaries": "node scripts/check-boundaries.js",
154
+ "test": "vitest run",
155
+ "test:isolation": "vitest run --config vitest.isolation.config.ts",
156
+ "test:property": "vitest run --config vitest.property.config.ts",
157
+ "test:stress": "vitest run --config vitest.stress.config.ts",
158
+ "test:all": "vitest run && vitest run --config vitest.isolation.config.ts && vitest run --config vitest.property.config.ts && vitest run --config vitest.stress.config.ts",
159
+ "mutate": "stryker run"
146
160
  }
147
- }
161
+ }