@styleflow.app/flowpress-deploy 1.0.0-beta.0 → 1.0.0-beta.10

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 (114) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/README.md +6 -12
  3. package/composer.json +1 -1
  4. package/containers/cms/Dockerfile +35 -0
  5. package/containers/cms/Dockerfile.dockerignore +20 -0
  6. package/containers/cms/healthz.php +17 -0
  7. package/containers/cms/install-languages.sh +16 -0
  8. package/containers/cms/mpm.conf +10 -0
  9. package/containers/cms/php.ini +16 -0
  10. package/containers/cms/sanitize.php +37 -0
  11. package/containers/cms/smtp.php +13 -0
  12. package/containers/cms/vhost.conf +61 -0
  13. package/containers/cms/wp-cli.yml +1 -0
  14. package/containers/php-runtime/Dockerfile +21 -0
  15. package/containers/web-ssr/Dockerfile +25 -0
  16. package/containers/web-ssr/Dockerfile.dockerignore +10 -0
  17. package/containers/web-static/Caddyfile +40 -0
  18. package/containers/web-static/Dockerfile +15 -0
  19. package/containers/web-static/Dockerfile.dockerignore +7 -0
  20. package/dist/frontend-assets.d.ts +2 -0
  21. package/dist/frontend-assets.d.ts.map +1 -0
  22. package/dist/frontend-assets.js +44 -0
  23. package/dist/frontend-assets.js.map +1 -0
  24. package/dist/frontend-links.d.ts +14 -0
  25. package/dist/frontend-links.d.ts.map +1 -0
  26. package/dist/frontend-links.js +82 -0
  27. package/dist/frontend-links.js.map +1 -0
  28. package/dist/ops/bootstrap.d.ts +21 -0
  29. package/dist/ops/bootstrap.d.ts.map +1 -0
  30. package/dist/ops/bootstrap.js +123 -0
  31. package/dist/ops/bootstrap.js.map +1 -0
  32. package/dist/ops/build.d.ts +30 -0
  33. package/dist/ops/build.d.ts.map +1 -0
  34. package/dist/ops/build.js +99 -0
  35. package/dist/ops/build.js.map +1 -0
  36. package/dist/ops/cli.d.ts +3 -0
  37. package/dist/ops/cli.d.ts.map +1 -0
  38. package/dist/ops/cli.js +140 -0
  39. package/dist/ops/cli.js.map +1 -0
  40. package/dist/ops/config.d.ts +54 -0
  41. package/dist/ops/config.d.ts.map +1 -0
  42. package/dist/ops/config.js +163 -0
  43. package/dist/ops/config.js.map +1 -0
  44. package/dist/ops/coolify.d.ts +2 -0
  45. package/dist/ops/coolify.d.ts.map +1 -0
  46. package/dist/ops/coolify.js +44 -0
  47. package/dist/ops/coolify.js.map +1 -0
  48. package/dist/ops/data.d.ts +27 -0
  49. package/dist/ops/data.d.ts.map +1 -0
  50. package/dist/ops/data.js +148 -0
  51. package/dist/ops/data.js.map +1 -0
  52. package/dist/ops/deploy.d.ts +18 -0
  53. package/dist/ops/deploy.d.ts.map +1 -0
  54. package/dist/ops/deploy.js +100 -0
  55. package/dist/ops/deploy.js.map +1 -0
  56. package/dist/ops/editorial.d.ts +23 -0
  57. package/dist/ops/editorial.d.ts.map +1 -0
  58. package/dist/ops/editorial.js +79 -0
  59. package/dist/ops/editorial.js.map +1 -0
  60. package/dist/ops/environment.d.ts +29 -0
  61. package/dist/ops/environment.d.ts.map +1 -0
  62. package/dist/ops/environment.js +159 -0
  63. package/dist/ops/environment.js.map +1 -0
  64. package/dist/ops/health.d.ts +25 -0
  65. package/dist/ops/health.d.ts.map +1 -0
  66. package/dist/ops/health.js +22 -0
  67. package/dist/ops/health.js.map +1 -0
  68. package/dist/ops/monitor.d.ts +23 -0
  69. package/dist/ops/monitor.d.ts.map +1 -0
  70. package/dist/ops/monitor.js +142 -0
  71. package/dist/ops/monitor.js.map +1 -0
  72. package/dist/ops/process.d.ts +9 -0
  73. package/dist/ops/process.d.ts.map +1 -0
  74. package/dist/ops/process.js +48 -0
  75. package/dist/ops/process.js.map +1 -0
  76. package/dist/ops/provision.d.ts +41 -0
  77. package/dist/ops/provision.d.ts.map +1 -0
  78. package/dist/ops/provision.js +257 -0
  79. package/dist/ops/provision.js.map +1 -0
  80. package/dist/ops/release.d.ts +26 -0
  81. package/dist/ops/release.d.ts.map +1 -0
  82. package/dist/ops/release.js +79 -0
  83. package/dist/ops/release.js.map +1 -0
  84. package/dist/ops/s3.d.ts +8 -0
  85. package/dist/ops/s3.d.ts.map +1 -0
  86. package/dist/ops/s3.js +38 -0
  87. package/dist/ops/s3.js.map +1 -0
  88. package/dist/ops/static-config.d.ts +14 -0
  89. package/dist/ops/static-config.d.ts.map +1 -0
  90. package/dist/ops/static-config.js +96 -0
  91. package/dist/ops/static-config.js.map +1 -0
  92. package/dist/worker-assets.d.ts +5 -0
  93. package/dist/worker-assets.d.ts.map +1 -0
  94. package/dist/worker-assets.js +35 -0
  95. package/dist/worker-assets.js.map +1 -0
  96. package/docs/README.md +16 -0
  97. package/docs/activities/2026-07-30-2339-initial-pack.md +9 -0
  98. package/docs/activities/2026-08-24-1745-wordpress-core-v1.md +40 -0
  99. package/docs/activities/2026-08-26-0926-revision-safe-queue.md +41 -0
  100. package/docs/activities/README.md +5 -0
  101. package/docs/architecture.md +19 -0
  102. package/docs/configuration.md +19 -0
  103. package/docs/frontend-workflow.md +23 -0
  104. package/docs/operations.md +15 -0
  105. package/docs/recovery.md +16 -0
  106. package/docs/troubleshooting.md +22 -0
  107. package/docs/wordpress-queue.md +22 -0
  108. package/flowpress-deploy.php +33 -4
  109. package/includes/admin.php +110 -0
  110. package/includes/automatic-build.php +98 -0
  111. package/includes/manual-queue.php +78 -0
  112. package/includes/queue-provider.php +621 -0
  113. package/package.json +50 -7
  114. package/schema/deployment.schema.json +45 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@styleflow.app/flowpress-deploy",
3
- "version": "1.0.0-beta.0",
3
+ "version": "1.0.0-beta.10",
4
4
  "description": "Safe full and partial deployment primitives for FlowPress.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -16,22 +16,65 @@
16
16
  ".": {
17
17
  "types": "./dist/index.d.ts",
18
18
  "import": "./dist/index.js"
19
+ },
20
+ "./frontend": {
21
+ "import": "./dist/frontend-links.js",
22
+ "types": "./dist/frontend-links.d.ts"
23
+ },
24
+ "./assets": {
25
+ "import": "./dist/frontend-assets.js",
26
+ "types": "./dist/frontend-assets.d.ts"
27
+ },
28
+ "./worker-assets": {
29
+ "import": "./dist/worker-assets.js",
30
+ "types": "./dist/worker-assets.d.ts"
31
+ },
32
+ "./ops/environment": {
33
+ "import": "./dist/ops/environment.js",
34
+ "types": "./dist/ops/environment.d.ts"
35
+ },
36
+ "./ops": {
37
+ "import": "./dist/ops/config.js",
38
+ "types": "./dist/ops/config.d.ts"
19
39
  }
20
40
  },
21
- "files": ["dist", "flowpress-deploy.php", "composer.json", "README.md", "CHANGELOG.md"],
41
+ "files": [
42
+ "dist",
43
+ "includes",
44
+ "docs",
45
+ "flowpress-deploy.php",
46
+ "composer.json",
47
+ "README.md",
48
+ "CHANGELOG.md",
49
+ "containers",
50
+ "schema"
51
+ ],
22
52
  "scripts": {
23
53
  "build": "tsc -b",
24
54
  "typecheck": "tsc -b --pretty false",
25
- "test": "vitest run",
26
- "release:check": "npm run typecheck && npm test && npm pack --dry-run",
55
+ "test": "vitest run tests/deploy.test.ts && node --test tests/*-regressions.mjs && php tests/php/queue-provider-test.php && node --test tests/ops-*.test.mjs",
56
+ "release:check": "npm run typecheck && npm test && npm run test:ops:database && npm run test:ops:caddy && npm pack --dry-run",
27
57
  "release:publish:next": "npm publish --access public --tag next",
28
- "prepublishOnly": "npm run typecheck && npm test"
58
+ "prepublishOnly": "npm run typecheck && npm test",
59
+ "test:ops": "node --test tests/ops-*.test.mjs",
60
+ "test:ops:database": "node tests/ops-database-integration.mjs",
61
+ "test:ops:caddy": "node tests/ops-caddy-integration.mjs"
29
62
  },
30
63
  "devDependencies": {
31
64
  "@types/node": "^22.19.3",
32
65
  "typescript": "^5.9.3",
33
66
  "vitest": "^3.2.4"
34
67
  },
35
- "engines": {"node": ">=22.0.0"},
36
- "packageManager": "npm@10.9.3"
68
+ "engines": {
69
+ "node": ">=22.0.0"
70
+ },
71
+ "packageManager": "npm@10.9.3",
72
+ "dependencies": {
73
+ "dotenv": "17.4.2",
74
+ "dotenv-expand": "12.0.3",
75
+ "yaml": "2.9.1"
76
+ },
77
+ "bin": {
78
+ "flowpress-ops": "./dist/ops/cli.js"
79
+ }
37
80
  }
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "FlowPress deployment manifest",
4
+ "type": "object",
5
+ "required": ["schemaVersion", "platform", "profile", "database", "media", "environments"],
6
+ "properties": {
7
+ "schemaVersion": { "const": 1 },
8
+ "platform": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
9
+ "profile": { "enum": ["backend", "static", "headless-static", "headless-ssr"] },
10
+ "database": { "const": "shared" },
11
+ "media": { "enum": ["local", "s3"] },
12
+ "registryProject": { "type": "string" },
13
+ "sources": {
14
+ "type": "object",
15
+ "additionalProperties": {
16
+ "type": "object",
17
+ "required": ["ssh", "user", "path"],
18
+ "properties": { "ssh": { "type": "string" }, "user": { "type": "string" }, "path": { "type": "string", "pattern": "^/" } },
19
+ "additionalProperties": false
20
+ }
21
+ },
22
+ "environments": {
23
+ "type": "object",
24
+ "propertyNames": { "enum": ["local", "staging", "production", "preview"] },
25
+ "additionalProperties": {
26
+ "type": "object",
27
+ "required": ["publish"],
28
+ "properties": {
29
+ "publish": { "type": "array", "uniqueItems": true, "items": { "enum": ["cms", "web-static", "web-ssr"] } },
30
+ "profile": { "enum": ["backend", "static", "headless-static", "headless-ssr"] },
31
+ "frontendUrl": { "type": "string", "format": "uri" },
32
+ "backendUrl": { "type": "string", "format": "uri" },
33
+ "graphqlUrl": { "type": "string", "format": "uri" },
34
+ "mediaUrl": { "type": "string", "format": "uri" },
35
+ "backend": { "enum": ["local", "staging", "production"] },
36
+ "aliases": { "type": "array", "items": { "type": "string", "format": "uri" } },
37
+ "mode": { "const": "on-demand" },
38
+ "mail": { "enum": ["disabled", "capture", "smtp"] }
39
+ },
40
+ "additionalProperties": false
41
+ }
42
+ }
43
+ },
44
+ "additionalProperties": false
45
+ }