@venizia/ardor 0.3.7 → 0.4.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.
@@ -72,6 +72,11 @@ COPY --from=builder --chmod=0755 /home/bun/app/{{appPath}}/.configs/builders/doc
72
72
  # Where /api goes: a compose service name, a cluster service, an address (an origin, with no path).
73
73
  ENV API_UPSTREAM=http://api:3000
74
74
 
75
+ # The variables the app cannot run without, comma separated. A container that starts without one of them,
76
+ # or with it empty, stops and names it instead of falling back to a build-time value. Any name works, not
77
+ # only VITE_ ones; `-e APP_REQUIRED_ENV=...` overrides the list for one environment. Uncomment and list yours:
78
+ # ENV APP_REQUIRED_ENV=VITE_API_URL
79
+
75
80
  # The base image reads the DNS servers of /etc/resolv.conf into ${NGINX_LOCAL_RESOLVERS}, which the template
76
81
  # gives to `resolver`: nginx looks the upstream up per request, so the container starts without it.
77
82
  ENV NGINX_ENTRYPOINT_LOCAL_RESOLVERS=1
@@ -14,6 +14,13 @@
14
14
  # is fine: public keys are normal). Values are escaped as JavaScript string content, so no value can
15
15
  # end its string or the file.
16
16
  #
17
+ # Required variables: APP_REQUIRED_ENV lists, comma separated, the variables the app cannot run without,
18
+ # for example `ENV APP_REQUIRED_ENV="VITE_API_URL,API_UPSTREAM"` in the app's Dockerfile (an operator
19
+ # overrides it with `-e`). A listed variable that is unset or empty stops the container with exit 1, and
20
+ # the message names every missing one - never a value. Any variable name can be listed, not only VITE_
21
+ # ones; a spaces-only or empty entry is skipped, and an entry that is not a variable name is an error.
22
+ # Nothing listed checks nothing. A mounted config.js is kept before any check, as the operator supplied it.
23
+ #
17
24
  # RUNTIME_CONFIG_TARGET names another file, for the tests; it is not a VITE_ name, so it is never published.
18
25
  set -eu
19
26
 
@@ -49,6 +56,35 @@ BEGIN {
49
56
 
50
57
  count = 0
51
58
  failed = 0
59
+
60
+ # Names only, in the order declared; a value never reaches a message.
61
+ entries = split(ENVIRON["APP_REQUIRED_ENV"], declared, ",")
62
+ missing = ""
63
+ for (position = 1; position <= entries; position++) {
64
+ entry = declared[position]
65
+ gsub(/^[ \t]+/, "", entry)
66
+ gsub(/[ \t]+$/, "", entry)
67
+ if (entry == "") {
68
+ continue
69
+ }
70
+ if (entry !~ /^[A-Za-z_][A-Za-z0-9_]*$/) {
71
+ print "[runtime-config] FATAL: APP_REQUIRED_ENV entry " position " is not a variable name (letters, digits and _, not starting with a digit)" > "/dev/stderr"
72
+ failed = 1
73
+ continue
74
+ }
75
+ if (entry in seen) {
76
+ continue
77
+ }
78
+ seen[entry] = 1
79
+ if (!(entry in ENVIRON) || ENVIRON[entry] == "") {
80
+ missing = missing (missing == "" ? "" : ", ") entry
81
+ }
82
+ }
83
+ if (missing != "") {
84
+ print "[runtime-config] FATAL: required variable(s) missing or empty: " missing > "/dev/stderr"
85
+ failed = 1
86
+ }
87
+
52
88
  for (name in ENVIRON) {
53
89
  if (name !~ /^VITE_[A-Z0-9_]+$/) {
54
90
  continue
@@ -1,4 +1,4 @@
1
- # Paths oxfmt skips: one gitignore-style pattern per line, relative to this app.
2
- # `devz lint` passes each line on as !pattern; lines starting with # are comments.
1
+ # Paths bun fmt skips: one gitignore-style pattern per line, relative to this app.
2
+ # `devz lint` passes each line on as --ignore-pattern; lines starting with # are comments.
3
3
  # Example: vendored code that keeps its own format.
4
4
  # src/vendor/**
@@ -4,7 +4,10 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <meta name="color-scheme" content="light dark" />
7
- <link rel="icon" href="data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2092%20123'%3E%3Cpath%20d%3D'M46%202C46%202%204%2052%204%2080a42%2042%200%200%200%2084%200C88%2060%2070%2036%2046%202Z'%20fill%3D'%230091EA'%2F%3E%3Cpath%20d%3D'M30%2092c-6-14-2-32%2014-38-4%2012%204%2022%2014%2024%2010%202%2016-6%2016-14%206%2014%202%2030-10%2038-12%208-28%204-34-10Z'%20fill%3D'%237DF3FF'%2F%3E%3C%2Fsvg%3E" />
7
+ <link
8
+ rel="icon"
9
+ href="data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2092%20123'%3E%3Cpath%20d%3D'M46%202C46%202%204%2052%204%2080a42%2042%200%200%200%2084%200C88%2060%2070%2036%2046%202Z'%20fill%3D'%230091EA'%2F%3E%3Cpath%20d%3D'M30%2092c-6-14-2-32%2014-38-4%2012%204%2022%2014%2024%2010%202%2016-6%2016-14%206%2014%202%2030-10%2038-12%208-28%204-34-10Z'%20fill%3D'%237DF3FF'%2F%3E%3C%2Fsvg%3E"
10
+ />
8
11
  <title>{{app}}</title>
9
12
  </head>
10
13
  <body>
@@ -13,12 +13,12 @@
13
13
  "dependencies": {
14
14
  "@reduxjs/toolkit": "^2.13.0",
15
15
  "@tanstack/react-query": "^5.104.5",
16
- "@venizia/ardor": "0.3.7",
17
- "@venizia/ignis-connectors": "0.3.6",
18
- "@venizia/ignis-filter": "0.3.6",
19
- "@venizia/ignis-helpers": "0.3.6",
20
- "@venizia/ignis-inversion": "0.3.7",
21
- "@venizia/ignis-kernel": "0.3.6",
16
+ "@venizia/ardor": "0.4.0",
17
+ "@venizia/ignis-connectors": "0.4.0",
18
+ "@venizia/ignis-filter": "0.4.0",
19
+ "@venizia/ignis-helpers": "0.4.0",
20
+ "@venizia/ignis-inversion": "0.4.0",
21
+ "@venizia/ignis-kernel": "0.4.0",
22
22
  "class-variance-authority": "^0.7.1",
23
23
  "clsx": "^2.1.1",
24
24
  "ra-core": "^5.15.5",
@@ -35,11 +35,10 @@
35
35
  "@types/bun": "^1.4.3",
36
36
  "@types/react": "^19",
37
37
  "@types/react-dom": "^19",
38
- "@venizia/dev-configs": "0.3.6",
39
- "@venizia/ignis-boot": "0.3.6",
38
+ "@venizia/dev-configs": "0.4.0",
39
+ "@venizia/ignis-boot": "0.4.0",
40
40
  "@vitejs/plugin-react": "^6.1.2",
41
41
  "eslint": "^10.13.0",
42
- "oxfmt": "0.74.0",
43
42
  "oxlint": "1.89.0",
44
43
  "oxlint-tsgolint": "7.0.2004",
45
44
  "tailwindcss": "^4.3.3",
@@ -47,12 +46,12 @@
47
46
  "vite": "^8.3.5"
48
47
  },
49
48
  "peers": {
50
- "@venizia/dev-configs": "^0.3.6",
51
- "@venizia/ignis-connectors": "^0.3.6",
52
- "@venizia/ignis-filter": "^0.3.6",
53
- "@venizia/ignis-helpers": "^0.3.6",
54
- "@venizia/ignis-inversion": "^0.3.7",
55
- "@venizia/ignis-kernel": "^0.3.6"
49
+ "@venizia/dev-configs": "^0.4.0",
50
+ "@venizia/ignis-connectors": "^0.4.0",
51
+ "@venizia/ignis-filter": "^0.4.0",
52
+ "@venizia/ignis-helpers": "^0.4.0",
53
+ "@venizia/ignis-inversion": "^0.4.0",
54
+ "@venizia/ignis-kernel": "^0.4.0"
56
55
  },
57
56
  "scripts": {
58
57
  "server:dev": "vite --config .configs/builders/vite.config.mts",
@@ -1,4 +1,4 @@
1
- # Paths oxfmt skips: one gitignore-style pattern per line, relative to this app.
2
- # `devz lint` passes each line on as !pattern; lines starting with # are comments.
1
+ # Paths bun fmt skips: one gitignore-style pattern per line, relative to this app.
2
+ # `devz lint` passes each line on as --ignore-pattern; lines starting with # are comments.
3
3
  # Example: vendored code that keeps its own format.
4
4
  # src/vendor/**
@@ -5,10 +5,9 @@
5
5
  "devDependencies": {
6
6
  "@types/bun": "^1.4.3",
7
7
  "@types/react": "^19",
8
- "@venizia/ardor": "^0.3.7",
9
- "@venizia/dev-configs": "0.3.6",
8
+ "@venizia/ardor": "^0.4.0",
9
+ "@venizia/dev-configs": "0.4.0",
10
10
  "eslint": "^10.13.0",
11
- "oxfmt": "0.74.0",
12
11
  "oxlint": "1.89.0",
13
12
  "oxlint-tsgolint": "7.0.2004",
14
13
  "react": "^19.3.1",
@@ -18,7 +17,7 @@
18
17
  "typescript": "^6.0.3"
19
18
  },
20
19
  "peerDependencies": {
21
- "@venizia/ardor": "^0.3.7",
20
+ "@venizia/ardor": "^0.4.0",
22
21
  "react": "^19.3.1",
23
22
  "react-dom": "^19.3.1",
24
23
  "react-router-dom": "^7.18.4",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venizia/ardor",
3
- "version": "0.3.7",
3
+ "version": "0.4.0",
4
4
  "description": "ARDOR - frontend application framework for the VENIZIA family. One entry point over ardor-kernel, ardor-react and ardor-admin: IGNIS inversion of control, a REST data layer, auth and i18n providers, and the React bindings for a react-admin application.",
5
5
  "keywords": [
6
6
  "ardor",
@@ -18,24 +18,29 @@
18
18
  "venizia"
19
19
  ],
20
20
  "homepage": "https://ardor.venizia.ai",
21
- "repository": {
22
- "type": "git",
23
- "url": "git+https://github.com/VENIZIA-AI/ardor.git",
24
- "directory": "packages/ardor"
25
- },
26
21
  "bugs": {
27
22
  "url": "https://github.com/VENIZIA-AI/ardor/issues"
28
23
  },
24
+ "license": "MIT",
29
25
  "author": {
30
26
  "name": "VENIZIA AI Developer",
31
27
  "email": "developer@venizia.ai",
32
28
  "url": "https://venizia.ai"
33
29
  },
34
- "license": "MIT",
35
- "engines": {
36
- "bun": ">=1.4"
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "git+https://github.com/VENIZIA-AI/ardor.git",
33
+ "directory": "packages/ardor"
37
34
  },
35
+ "files": [
36
+ "README.md",
37
+ "LICENSE.md",
38
+ "dist",
39
+ "!/**/__tests__",
40
+ "!**/*.tsbuildinfo"
41
+ ],
38
42
  "type": "module",
43
+ "sideEffects": false,
39
44
  "main": "./dist/index.js",
40
45
  "module": "./dist/index.js",
41
46
  "types": "./dist/index.d.ts",
@@ -57,20 +62,6 @@
57
62
  },
58
63
  "./package.json": "./package.json"
59
64
  },
60
- "sideEffects": false,
61
- "vulcan": {
62
- "presets": {
63
- "app": "./dist/presets/app/preset.json",
64
- "lib": "./dist/presets/lib/preset.json"
65
- }
66
- },
67
- "files": [
68
- "README.md",
69
- "LICENSE.md",
70
- "dist",
71
- "!/**/__tests__",
72
- "!**/*.tsbuildinfo"
73
- ],
74
65
  "publishConfig": {
75
66
  "access": "public"
76
67
  },
@@ -79,18 +70,28 @@
79
70
  "prepublishOnly": "make rebuild"
80
71
  },
81
72
  "dependencies": {
82
- "@venizia/ardor-admin": "0.3.7",
83
- "@venizia/ardor-kernel": "0.3.7",
84
- "@venizia/ardor-react": "0.3.7"
73
+ "@venizia/ardor-admin": "0.4.0",
74
+ "@venizia/ardor-kernel": "0.4.0",
75
+ "@venizia/ardor-react": "0.4.0"
76
+ },
77
+ "devDependencies": {
78
+ "@size-limit/preset-small-lib": "^14.2.0",
79
+ "@venizia/dev-configs": "^0.4.0",
80
+ "eslint": "^10.13.0",
81
+ "oxlint": "1.89.0",
82
+ "oxlint-tsgolint": "7.0.2004",
83
+ "size-limit": "^14.2.0",
84
+ "tsc-alias": "~1.8.17",
85
+ "typescript": "^6.0.3"
85
86
  },
86
87
  "peerDependencies": {
87
88
  "@reduxjs/toolkit": ">=2.13.0",
88
89
  "@tanstack/react-query": ">=5.104.5",
89
- "@venizia/ignis-connectors": "^0.3.6",
90
- "@venizia/ignis-filter": "^0.3.6",
91
- "@venizia/ignis-helpers": "^0.3.6",
92
- "@venizia/ignis-inversion": "^0.3.7",
93
- "@venizia/ignis-kernel": "^0.3.6",
90
+ "@venizia/ignis-connectors": "^0.4.0",
91
+ "@venizia/ignis-filter": "^0.4.0",
92
+ "@venizia/ignis-helpers": "^0.4.0",
93
+ "@venizia/ignis-inversion": "^0.4.0",
94
+ "@venizia/ignis-kernel": "^0.4.0",
94
95
  "ra-core": ">=5.15.5",
95
96
  "ra-i18n-polyglot": ">=5.15.5",
96
97
  "react": ">=19.3.1",
@@ -108,17 +109,6 @@
108
109
  "optional": true
109
110
  }
110
111
  },
111
- "devDependencies": {
112
- "@size-limit/preset-small-lib": "^14.2.0",
113
- "@venizia/dev-configs": "^0.3.6",
114
- "eslint": "^10.13.0",
115
- "oxfmt": "0.74.0",
116
- "oxlint": "1.89.0",
117
- "oxlint-tsgolint": "7.0.2004",
118
- "size-limit": "^14.2.0",
119
- "tsc-alias": "~1.8.17",
120
- "typescript": "^6.0.3"
121
- },
122
112
  "size-limit": [
123
113
  {
124
114
  "path": "dist/index.js",
@@ -140,5 +130,14 @@
140
130
  ],
141
131
  "limit": "350 B"
142
132
  }
143
- ]
133
+ ],
134
+ "engines": {
135
+ "bun": ">=1.4"
136
+ },
137
+ "vulcan": {
138
+ "presets": {
139
+ "app": "./dist/presets/app/preset.json",
140
+ "lib": "./dist/presets/lib/preset.json"
141
+ }
142
+ }
144
143
  }
@@ -1,4 +0,0 @@
1
- import { defineConfig } from 'oxfmt';
2
- import { browserOxfmtConfigs } from '@venizia/dev-configs/formatters';
3
-
4
- export default defineConfig(browserOxfmtConfigs);
@@ -1,4 +0,0 @@
1
- import { defineConfig } from 'oxfmt';
2
- import { browserOxfmtConfigs } from '@venizia/dev-configs/formatters';
3
-
4
- export default defineConfig(browserOxfmtConfigs);