@rm-industries/create-forge 1.0.2 → 1.0.3

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.
@@ -22,27 +22,28 @@
22
22
  "lint:markdown": "markdownlint \"**/*.md\" --ignore-path .gitignore",
23
23
  "lint:markdown:fix": "markdownlint --fix \"**/*.md\" --ignore-path .gitignore",
24
24
  "lighthouse:autorun": "lhci autorun",
25
- "lighthouse:ci": "npm run build && node scripts/run-lighthouse.ts",
25
+ "lighthouse:ci": "node scripts/run-lighthouse.ts",
26
26
  "spellcheck": "cspell \"**\"",
27
- "typecheck": "astro sync && tsc --noEmit",
27
+ "typecheck": "astro check",
28
28
  "test": "npm run test:unit",
29
29
  "test:a11y": "playwright test tests/accessibility.spec.ts",
30
30
  "test:coverage": "vitest run --coverage",
31
31
  "test:e2e": "playwright test",
32
+ "test:smoke": "playwright test --config playwright.smoke.config.ts",
32
33
  "test:unit": "vitest run",
33
34
  "quality": "npm run quality:core && npm run test:e2e && npm run lighthouse:ci",
34
35
  "quality:core": "npm run quality:static && npm run test:coverage && npm run build && npm run validate:build",
35
- "quality:static": "npm run format && npm run lint && npm run audit:unused && npm run typecheck && npm run astro:check && npm run audit",
36
- "quality:static:ci": "npm run lint:code && npm run lint:css && npm run lint:markdown && npm run audit:unused && npm run typecheck && npm run astro:check && npm run audit"
36
+ "quality:static": "npm run format && npm run lint && npm run audit:unused && npm run typecheck",
37
+ "quality:static:ci": "npm run lint:code && npm run lint:css && npm run lint:markdown && npm run audit:unused && npm run typecheck"
37
38
  },
38
39
  "dependencies": {
39
40
  "@astrojs/rss": "^4.0.19",
40
41
  "@astrojs/sitemap": "^3.7.4",
41
42
  "@fontsource/fira-code": "^5.3.0",
42
43
  "@fontsource/fira-sans": "^5.3.0",
43
- "@rm-industries/content-model": "1.1.0",
44
- "@sveltia/cms": "0.207.1",
45
- "astro": "^7.3.2"
44
+ "@rm-industries/content-model": "1.1.5",
45
+ "@sveltia/cms": "0.228.0",
46
+ "astro": "^7.3.5"
46
47
  },
47
48
  "devDependencies": {
48
49
  "@astrojs/check": "^0.9.10",
@@ -53,19 +54,19 @@
53
54
  "@playwright/test": "^1.63.0",
54
55
  "@tailwindcss/typography": "^0.5.20",
55
56
  "@tailwindcss/vite": "^4.3.3",
56
- "@vitest/coverage-v8": "^4.1.11",
57
+ "@vitest/coverage-v8": "^5.0.3",
57
58
  "audit-ci": "7.1.0",
58
- "cspell": "^10.3.0",
59
- "daisyui": "^5.7.32",
60
- "knip": "^6.35.0",
59
+ "cspell": "^10.3.6",
60
+ "daisyui": "^5.7.47",
61
+ "knip": "^6.38.0",
61
62
  "markdownlint-cli": "^0.49.0",
62
- "oxfmt": "^0.67.0",
63
- "oxlint": "^1.82.0",
63
+ "oxfmt": "^0.70.0",
64
+ "oxlint": "^1.85.0",
64
65
  "stylelint": "^17.15.0",
65
66
  "stylelint-config-standard": "^40.0.0",
66
67
  "tailwindcss": "^4.3.3",
67
68
  "typescript": "^6.0.3",
68
- "vitest": "^4.1.11"
69
+ "vitest": "^5.0.0"
69
70
  },
70
71
  "engines": {
71
72
  "node": "^22.22.2 || ^24.0.0 || ^26.0.0",
@@ -4,6 +4,7 @@ import { previewOrigin, resolvePreviewUrl } from './tests/preview';
4
4
 
5
5
  export default defineConfig({
6
6
  testDir: './tests',
7
+ testIgnore: '**/smoke/**',
7
8
  outputDir: 'test-results',
8
9
  fullyParallel: true,
9
10
  forbidOnly: Boolean(process.env.CI),
@@ -29,7 +30,7 @@ export default defineConfig({
29
30
  },
30
31
  ],
31
32
  webServer: {
32
- command: 'npm run build && npm run preview -- --host 127.0.0.1',
33
+ command: 'npm run preview -- --host 127.0.0.1',
33
34
  env: {
34
35
  ...process.env,
35
36
  ASTRO_PREVIEW_BACKGROUND: '0',
@@ -0,0 +1,17 @@
1
+ import { defineConfig, devices } from '@playwright/test';
2
+
3
+ const deploymentUrl = process.env.DEPLOYMENT_URL ?? 'https://deployment.invalid/';
4
+
5
+ export default defineConfig({
6
+ testDir: './tests/smoke',
7
+ outputDir: 'test-results/smoke',
8
+ forbidOnly: true,
9
+ retries: 2,
10
+ reporter: process.env.CI ? [['github'], ['html', { open: 'never' }]] : 'list',
11
+ use: {
12
+ ...devices['Desktop Chrome'],
13
+ baseURL: deploymentUrl,
14
+ screenshot: 'only-on-failure',
15
+ trace: 'retain-on-failure',
16
+ },
17
+ });
@@ -0,0 +1,26 @@
1
+ import { expect, test } from '@playwright/test';
2
+
3
+ test('serves the deployed site, its assets, and a mobile-safe layout', async ({ page, request }) => {
4
+ expect(process.env.DEPLOYMENT_URL).toMatch(/^https:\/\//u);
5
+ await page.setViewportSize({ width: 390, height: 844 });
6
+ const response = await page.goto('');
7
+
8
+ expect(response?.ok()).toBe(true);
9
+ await expect(page.locator('meta[name="generator"]')).toHaveAttribute('content', 'Forge by RM Industries');
10
+ await expect(page.getByRole('heading', { level: 1 })).toBeVisible();
11
+
12
+ const assetUrls = await page
13
+ .locator('link[rel="stylesheet"][href], script[src]')
14
+ .evaluateAll((elements) =>
15
+ elements.map((element) =>
16
+ element instanceof HTMLLinkElement ? element.href : (element as HTMLScriptElement).src,
17
+ ),
18
+ );
19
+ expect(assetUrls.length).toBeGreaterThan(0);
20
+ for (const assetUrl of assetUrls) expect((await request.get(assetUrl)).ok()).toBe(true);
21
+
22
+ const hasHorizontalOverflow = await page.evaluate(
23
+ () => document.documentElement.scrollWidth > document.documentElement.clientWidth,
24
+ );
25
+ expect(hasHorizontalOverflow).toBe(false);
26
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rm-industries/create-forge",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Scaffold accessible, content-driven Astro websites with Sveltia CMS and production-ready tooling",
5
5
  "keywords": [
6
6
  "accessibility",
@@ -49,7 +49,7 @@
49
49
  "verify:package": "npm run build && node scripts/verify-package.ts"
50
50
  },
51
51
  "dependencies": {
52
- "@clack/prompts": "^1.7.0",
52
+ "@clack/prompts": "^1.8.1",
53
53
  "commander": "^15.0.0",
54
54
  "validate-npm-package-name": "^8.0.0"
55
55
  },