@akanjs/devkit 3.0.0-alpha.70 → 3.0.0-alpha.71

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.
@@ -65,6 +65,7 @@ describe("AkanAppConfig", () => {
65
65
  expect.arrayContaining(["@apps/portal/ui", "@libs/shared/server", "akanjs/common", "akanjs/server"]),
66
66
  );
67
67
  expect(config.dockerfile).toContain("ENV AKAN_PUBLIC_APP_NAME=portal");
68
+ expect(config.dockerfile).toContain("ENV AKAN_LOG_TO_FILE=0");
68
69
  expect(process.env.AKAN_PUBLIC_DEFAULT_LOCALE).toBe("en");
69
70
  });
70
71
 
@@ -419,6 +419,9 @@ export class AkanAppConfig implements AppConfigResult {
419
419
  const imageScript = this.#getDockerImageScript(image, DEFAULT_DOCKER_IMAGE);
420
420
  // The image default matches what the build actually produced; a deployment narrows it further with its
421
421
  // own env, and can never widen it past the artifacts that are in the image.
422
+ // File logging is off in the image: a container's writable layer is ephemeral and nothing collects a
423
+ // file from it, so the rotating files would only fill the node disk (50MB x 100 at `trace`). stdout is
424
+ // the collection path; a deployment that wants the files back sets `AKAN_LOG_TO_FILE=1`.
422
425
  const webEnvLines = [
423
426
  ...(this.web.ssr ? [] : ["ENV AKAN_SSR=false"]),
424
427
  ...(this.web.csr ? [] : ["ENV AKAN_CSR=false"]),
@@ -444,6 +447,7 @@ ${this.basePaths.size ? `ENV AKAN_PUBLIC_BASE_PATHS=${[...this.basePaths].join("
444
447
  ENV AKAN_PUBLIC_DEFAULT_LOCALE=${this.i18n.defaultLocale}
445
448
  ENV AKAN_PUBLIC_LOCALES=${this.i18n.locales.join(",")}
446
449
  ENV AKAN_PUBLIC_OPERATION_MODE=cloud
450
+ ENV AKAN_LOG_TO_FILE=0
447
451
  ${webEnvLines}
448
452
  CMD [${command.map((c) => `"${c}"`).join(",")}]`;
449
453
  }
package/biome.base.json CHANGED
@@ -170,6 +170,10 @@
170
170
  "includes": ["{apps,libs}/**/*.store.ts"],
171
171
  "plugins": ["./node_modules/@akanjs/devkit/lint/no-return-in-store-action.grit"]
172
172
  },
173
+ {
174
+ "includes": ["{apps,libs}/**/*.ts", "{apps,libs}/**/*.tsx"],
175
+ "plugins": ["./node_modules/@akanjs/devkit/lint/no-deprecated-log-level.grit"]
176
+ },
173
177
  {
174
178
  "includes": ["{apps,libs}/**/*.signal.ts"],
175
179
  "plugins": ["./node_modules/@akanjs/devkit/lint/no-redeclare-predefined-endpoint.grit"]
@@ -0,0 +1,17 @@
1
+ engine biome(1.0)
2
+ language js(typescript, jsx)
3
+
4
+ // The level ladder no longer has a `log` tier: `logger.log()` and `Logger.log()` are kept for compatibility
5
+ // and emit at `info`, so a call reads like a distinct level and is not one. The receiver regex admits the
6
+ // instance field (`this.logger`, `this.#logger`), a local (`logger`) and the static class (`Logger`), and
7
+ // nothing else — `console.log` is biome's own `noConsole` rule.
8
+ //
9
+ // No autofix: Biome does not apply plugin rewrites, and the rename is a one-word edit at each site.
10
+ `$recv.log($arg)` as $call where {
11
+ $recv <: r"(?:this\.)?#?[lL]ogger",
12
+ register_diagnostic(
13
+ span = $call,
14
+ message = "`.log()` is deprecated and emits at `info`. Call `.info()` instead.",
15
+ severity = "error"
16
+ )
17
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akanjs/devkit",
3
- "version": "3.0.0-alpha.70",
3
+ "version": "3.0.0-alpha.71",
4
4
  "sourceType": "module",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -45,7 +45,7 @@
45
45
  "@langchain/openai": "^1.4.6",
46
46
  "@tailwindcss/node": "^4.3.0",
47
47
  "@trapezedev/project": "^7.1.4",
48
- "akanjs": "3.0.0-alpha.70",
48
+ "akanjs": "3.0.0-alpha.71",
49
49
  "chalk": "^5.6.2",
50
50
  "commander": "^14.0.3",
51
51
  "dayjs": "^1.11.20",