@lakestoneai/dev-config 0.0.0-stage → 0.1.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/README.md CHANGED
@@ -1,3 +1,33 @@
1
- # Temporary Holding Version
1
+ # @lakestoneai/dev-config
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Lakestone's house defaults for code config. Each client repo imports these and keeps only its own exceptions; a fix here reaches every repo as a Renovate bump PR that the repo's own CI proves.
4
+
5
+ Claude Code tooling lives in [`lakestoneai/claude-tools`](https://github.com/lakestoneai/claude-tools), not here. This package is for config that CI, Vercel and every developer machine read.
6
+
7
+ ## Playwright
8
+
9
+ ```ts
10
+ // playwright.config.ts
11
+ import { defineConfig } from '@playwright/test'
12
+ import { playwrightDefaults } from '@lakestoneai/dev-config/playwright'
13
+
14
+ export default defineConfig(playwrightDefaults, {
15
+ // this repo's own settings: testDir, webServer, projects, baseURL…
16
+ })
17
+ ```
18
+
19
+ | Setting | Value | Playwright's own default |
20
+ |---|---|---|
21
+ | `use.actionTimeout` | 10 s | 0 (wait forever) |
22
+ | `use.navigationTimeout` | 30 s | 0 (wait forever) |
23
+
24
+ Defaults go first: `defineConfig` merges `use` and `expect` key by key, so anything the repo sets wins, at config level or per project. A slow page needs a longer cap: set `actionTimeout` in that repo's `use`, that project's `use`, or one spec's `test.use()`.
25
+
26
+ Why: with no `actionTimeout`, a click on a missing element waits forever. A normal test run is still capped by the test timeout (with a vague "Test timeout exceeded" error); Playwright's planner/generator/healer agents and scripted runs have no test timeout and hang.
27
+
28
+ ## Release
29
+
30
+ 1. Bump `version` in `package.json`, merge to `main`.
31
+ 2. Create a GitHub release tagged `v<version>`. `publish.yml` runs the tests, then publishes to npm with provenance via trusted publishing.
32
+
33
+ `bun run test` proves the defaults and both override paths against a real browser.
package/package.json CHANGED
@@ -1,6 +1,36 @@
1
1
  {
2
2
  "name": "@lakestoneai/dev-config",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "Lakestone house defaults for code config (Playwright first). Repos import these and keep only their own exceptions.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/lakestoneai/dev-config.git"
10
+ },
11
+ "exports": {
12
+ "./playwright": {
13
+ "types": "./playwright.d.ts",
14
+ "default": "./playwright.js"
15
+ }
16
+ },
17
+ "files": ["playwright.js", "playwright.d.ts"],
18
+ "publishConfig": {
19
+ "access": "public"
20
+ },
21
+ "peerDependencies": {
22
+ "@playwright/test": ">=1.40"
23
+ },
24
+ "peerDependenciesMeta": {
25
+ "@playwright/test": {
26
+ "optional": true
27
+ }
28
+ },
29
+ "scripts": {
30
+ "test": "playwright test -c test/playwright.config.ts && playwright test -c test/repo-override.config.ts"
31
+ },
32
+ "packageManager": "bun@1.4.4",
33
+ "devDependencies": {
34
+ "@playwright/test": "1.63.0"
35
+ }
36
+ }
@@ -0,0 +1,2 @@
1
+ import type { PlaywrightTestConfig } from '@playwright/test'
2
+ export declare const playwrightDefaults: PlaywrightTestConfig
package/playwright.js ADDED
@@ -0,0 +1,13 @@
1
+ // Lakestone Playwright defaults. Merge first, repo config second:
2
+ // export default defineConfig(playwrightDefaults, { ...this repo's settings })
3
+ // defineConfig shallow-merges `use` and `expect`, so a repo keeps these unless it sets the same key.
4
+ // Playwright's own default for both timeouts is 0 = wait forever, which hangs agents and scripted runs
5
+ // (they have no per-test timeout).
6
+
7
+ /** @type {import('@playwright/test').PlaywrightTestConfig} */
8
+ export const playwrightDefaults = {
9
+ use: {
10
+ actionTimeout: 10_000, // one click/fill/etc.
11
+ navigationTimeout: 30_000, // goto, waitForURL, reload
12
+ },
13
+ }