@akanjs/cli 3.0.0-alpha.83 → 3.0.0-alpha.85

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 (54) hide show
  1. package/.build-stamp +1 -1
  2. package/{abstractCompactor-pwc6d6yk.js → abstractCompactor-gp3kwz7x.js} +2 -1
  3. package/{agent.command-180hh0ye.js → agent.command-dzys24ee.js} +7 -5
  4. package/{application.command-4fq5pmdd.js → application.command-m96rteme.js} +7 -5
  5. package/{applicationBuildRunner-tavpx3fv.js → applicationBuildRunner-d95dswfy.js} +5 -4
  6. package/{applicationReleasePackager-ktjt0erc.js → applicationReleasePackager-3cnjss29.js} +1 -1
  7. package/buildBatch.proc.js +4 -2
  8. package/{capacitorApp-kwa67kzs.js → capacitorApp-zrj7q1z4.js} +4 -2
  9. package/{cloud.command-wm3mtfve.js → cloud.command-eng6hqd4.js} +11 -9
  10. package/{context.command-dk2m2sjx.js → context.command-s96e60h6.js} +15 -13
  11. package/{guideline.command-w6ddv13r.js → guideline.command-0raa8ng7.js} +5 -3
  12. package/guidelines/conventions/conventions.instruction.md +9 -0
  13. package/incrementalBuilder.proc.js +3 -1
  14. package/{index-b2nt0w0k.js → index-1q83gs77.js} +1 -1
  15. package/index-5es51p0n.js +66 -0
  16. package/index-7nr23j55.js +344 -0
  17. package/{index-z3c9mmw4.js → index-7vvqsanf.js} +1 -1
  18. package/{index-qcracvc9.js → index-aknp5f6x.js} +3 -3
  19. package/{index-k86zc21w.js → index-azkj85kx.js} +7 -7
  20. package/{index-k1n0h7dk.js → index-c6rfvayh.js} +73 -472
  21. package/{index-a8h184wr.js → index-cnfawb2y.js} +2 -2
  22. package/{index-1tgp56ke.js → index-fqwtcy9j.js} +6 -6
  23. package/{index-dq6wq1tv.js → index-ktkm3ht3.js} +10 -10
  24. package/{index-1kzsn94d.js → index-ktnvnp7h.js} +1 -1
  25. package/{index-saheq2bs.js → index-md3wv29p.js} +1 -1
  26. package/{index-wet2ytnr.js → index-mr9b7nkd.js} +1 -1
  27. package/{index-ft1sfjz0.js → index-n0x82fhs.js} +1 -1
  28. package/{index-v0s24t8j.js → index-nf4zam3r.js} +3 -3
  29. package/{index-cd5x18qh.js → index-nr8w8h7y.js} +4 -4
  30. package/{index-ypvdw8nr.js → index-q2xqmbcq.js} +8 -8
  31. package/{index-5n0hf8r9.js → index-rna7cj75.js} +3 -3
  32. package/{index-m9c7k0gm.js → index-sc7s8927.js} +1 -1
  33. package/{index-5y7qba1c.js → index-vfwdwq5c.js} +2 -2
  34. package/{index-j9vnq8tr.js → index-y429w5m5.js} +3 -3
  35. package/{index-m7e0f1sy.js → index-yagad3ht.js} +8 -8
  36. package/{index-xxe90kqy.js → index-zp8y6zbb.js} +2 -2
  37. package/index.js +21 -19
  38. package/{library.command-wpedct6c.js → library.command-9cv75y0z.js} +5 -3
  39. package/{localRegistry.command-gk773cte.js → localRegistry.command-csgtnbb1.js} +10 -8
  40. package/{module.command-8n4kct3e.js → module.command-jafd05sa.js} +8 -6
  41. package/{package.command-fcbd0b1d.js → package.command-1kmswspp.js} +5 -3
  42. package/package.json +2 -2
  43. package/{page.command-x4379grq.js → page.command-p186hd45.js} +5 -3
  44. package/{primitive.command-8etmnqhq.js → primitive.command-a5w19jdg.js} +9 -7
  45. package/{quality.command-hfx7z8yr.js → quality.command-gcxmxqss.js} +4 -2
  46. package/{repair.command-j0fs5qkz.js → repair.command-z642bc2h.js} +7 -5
  47. package/{scalar.command-2emk89eh.js → scalar.command-9hgcdztr.js} +7 -5
  48. package/{subspace.command-nr32nm35.js → subspace.command-9x4nhzn2.js} +5 -3
  49. package/templates/workspaceRoot/.gitignore.template +2 -1
  50. package/templates/workspaceRoot/.husky/pre-commit.template +21 -0
  51. package/templates/workspaceRoot/.vscode/settings.json.template +1 -1
  52. package/templates/workspaceRoot/biome.json.template +1 -1
  53. package/{workflow.command-cvpmzwjg.js → workflow.command-camcqd0s.js} +12 -10
  54. package/{workspace.command-4ztb4fdh.js → workspace.command-n1nvp28s.js} +91 -50
package/.build-stamp CHANGED
@@ -1 +1 @@
1
- 07970b953a77525adc321d159a34979ccce41c57c25f3faba5c9c02987b96704
1
+ 22b18daea111d54f72bfa9727a6104a958dfaf08e8bd4070a80ca982446e36ce
@@ -2,7 +2,8 @@
2
2
  import"./index-ayy5ecax.js";
3
3
  import {
4
4
  AiSession
5
- } from "./index-wet2ytnr.js";
5
+ } from "./index-mr9b7nkd.js";
6
+ import"./index-5es51p0n.js";
6
7
  import {
7
8
  AbstractDoc
8
9
  } from "./index-meh558jy.js";
@@ -2,17 +2,19 @@
2
2
  import {
3
3
  Workspace,
4
4
  command
5
- } from "./index-ft1sfjz0.js";
6
- import"./index-k1n0h7dk.js";
5
+ } from "./index-n0x82fhs.js";
6
+ import"./index-c6rfvayh.js";
7
+ import"./index-7nr23j55.js";
7
8
  import"./index-ayy5ecax.js";
8
9
  import"./index-6wwzs1bc.js";
10
+ import"./index-5es51p0n.js";
9
11
  import"./index-by5gpp8x.js";
10
- import"./index-saheq2bs.js";
11
- import"./index-5y7qba1c.js";
12
+ import"./index-md3wv29p.js";
13
+ import"./index-vfwdwq5c.js";
12
14
  import"./index-h7yw2z9n.js";
13
15
  import {
14
16
  AgentScript
15
- } from "./index-5n0hf8r9.js";
17
+ } from "./index-rna7cj75.js";
16
18
 
17
19
  // pkgs/@akanjs/cli/agent/agent.command.ts
18
20
  class AgentCommand extends command("agent", [AgentScript], ({ public: target }) => ({
@@ -5,19 +5,21 @@ import {
5
5
  Exec,
6
6
  Workspace,
7
7
  command
8
- } from "./index-ft1sfjz0.js";
9
- import"./index-k1n0h7dk.js";
8
+ } from "./index-n0x82fhs.js";
9
+ import"./index-c6rfvayh.js";
10
+ import"./index-7nr23j55.js";
10
11
  import"./index-ayy5ecax.js";
11
12
  import"./index-6wwzs1bc.js";
13
+ import"./index-5es51p0n.js";
12
14
  import {
13
15
  ApplicationScript
14
- } from "./index-m7e0f1sy.js";
15
- import"./index-xxe90kqy.js";
16
+ } from "./index-yagad3ht.js";
17
+ import"./index-zp8y6zbb.js";
16
18
  import"./index-ctphds8v.js";
17
19
  import {
18
20
  AbstractDoc
19
21
  } from "./index-meh558jy.js";
20
- import"./index-m9c7k0gm.js";
22
+ import"./index-sc7s8927.js";
21
23
  import {
22
24
  getMobileTargetChoices
23
25
  } from "./index-47pj3aee.js";
@@ -1,17 +1,18 @@
1
1
  // @bun
2
- import {
3
- Spinner
4
- } from "./index-k1n0h7dk.js";
2
+ import"./index-7nr23j55.js";
5
3
  import {
6
4
  AllRoutesBuilder,
7
5
  CsrArtifactBuilder,
8
6
  FontPruner,
9
7
  precompressArtifacts,
10
8
  SsrBaseArtifactBuilder
11
- } from "./index-z3c9mmw4.js";
9
+ } from "./index-7vvqsanf.js";
12
10
  import"./index-x23688ar.js";
13
11
  import"./index-ctphds8v.js";
14
12
  import"./index-n68jx79w.js";
13
+ import {
14
+ Spinner
15
+ } from "./index-5es51p0n.js";
15
16
 
16
17
  // pkgs/@akanjs/devkit/applicationBuildRunner.ts
17
18
  import { mkdir, rm } from "fs/promises";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./index-ayy5ecax.js";
5
5
  import {
6
6
  Spinner
7
- } from "./index-k1n0h7dk.js";
7
+ } from "./index-5es51p0n.js";
8
8
 
9
9
  // pkgs/@akanjs/devkit/applicationReleasePackager.ts
10
10
  import { cp, mkdir, rm } from "fs/promises";
@@ -2,16 +2,18 @@
2
2
  import {
3
3
  WorkspaceExecutor,
4
4
  AppExecutor
5
- } from "./index-k1n0h7dk.js";
5
+ } from "./index-c6rfvayh.js";
6
+ import"./index-7nr23j55.js";
6
7
  import"./index-ayy5ecax.js";
7
8
  import"./index-6wwzs1bc.js";
9
+ import"./index-5es51p0n.js";
8
10
  import {
9
11
  CssCompiler,
10
12
  PagesBundleBuilder,
11
13
  CsrArtifactBuilder,
12
14
  FontOptimizer,
13
15
  SsrBaseArtifactBuilder
14
- } from "./index-z3c9mmw4.js";
16
+ } from "./index-7vvqsanf.js";
15
17
  import"./index-x23688ar.js";
16
18
  import"./index-ctphds8v.js";
17
19
  import"./index-n68jx79w.js";
@@ -2,8 +2,10 @@
2
2
  import {
3
3
  isPlaceholderAppId2,
4
4
  CapacitorApp2
5
- } from "./index-b2nt0w0k.js";
6
- import"./index-k1n0h7dk.js";
5
+ } from "./index-1q83gs77.js";
6
+ import"./index-c6rfvayh.js";
7
+ import"./index-7nr23j55.js";
8
+ import"./index-5es51p0n.js";
7
9
  import"./index-6wwzs1bc.js";
8
10
  import"./index-ayy5ecax.js";
9
11
  export {
@@ -2,23 +2,25 @@
2
2
  import"./index-ayy5ecax.js";
3
3
  import {
4
4
  GlobalConfig
5
- } from "./index-wet2ytnr.js";
5
+ } from "./index-mr9b7nkd.js";
6
6
  import {
7
7
  Workspace,
8
8
  command
9
- } from "./index-ft1sfjz0.js";
10
- import"./index-k1n0h7dk.js";
9
+ } from "./index-n0x82fhs.js";
10
+ import"./index-c6rfvayh.js";
11
+ import"./index-7nr23j55.js";
11
12
  import"./index-6wwzs1bc.js";
12
- import"./index-m7e0f1sy.js";
13
- import"./index-xxe90kqy.js";
13
+ import"./index-5es51p0n.js";
14
+ import"./index-yagad3ht.js";
15
+ import"./index-zp8y6zbb.js";
14
16
  import"./index-ctphds8v.js";
15
17
  import"./index-mfm35dhh.js";
16
- import"./index-a8h184wr.js";
17
- import"./index-1tgp56ke.js";
18
+ import"./index-cnfawb2y.js";
19
+ import"./index-fqwtcy9j.js";
18
20
  import {
19
21
  CloudScript
20
- } from "./index-ypvdw8nr.js";
21
- import"./index-m9c7k0gm.js";
22
+ } from "./index-q2xqmbcq.js";
23
+ import"./index-sc7s8927.js";
22
24
 
23
25
  // pkgs/@akanjs/cli/cloud/cloud.command.ts
24
26
  var localRegistryUrl = () => process.env.AKAN_NPM_REGISTRY ?? "http://127.0.0.1:4873";
@@ -2,25 +2,27 @@
2
2
  import {
3
3
  Workspace,
4
4
  command
5
- } from "./index-ft1sfjz0.js";
6
- import"./index-k1n0h7dk.js";
5
+ } from "./index-n0x82fhs.js";
6
+ import"./index-c6rfvayh.js";
7
+ import"./index-7nr23j55.js";
7
8
  import"./index-ayy5ecax.js";
8
9
  import"./index-6wwzs1bc.js";
10
+ import"./index-5es51p0n.js";
9
11
  import"./index-by5gpp8x.js";
10
- import"./index-saheq2bs.js";
11
- import"./index-5y7qba1c.js";
12
+ import"./index-md3wv29p.js";
13
+ import"./index-vfwdwq5c.js";
12
14
  import {
13
15
  ContextScript
14
- } from "./index-dq6wq1tv.js";
15
- import"./index-b2nt0w0k.js";
16
+ } from "./index-ktkm3ht3.js";
17
+ import"./index-1q83gs77.js";
16
18
  import"./index-h7yw2z9n.js";
17
- import"./index-qcracvc9.js";
18
- import"./index-j9vnq8tr.js";
19
- import"./index-wet2ytnr.js";
20
- import"./index-k86zc21w.js";
21
- import"./index-1kzsn94d.js";
22
- import"./index-cd5x18qh.js";
23
- import"./index-v0s24t8j.js";
19
+ import"./index-aknp5f6x.js";
20
+ import"./index-y429w5m5.js";
21
+ import"./index-mr9b7nkd.js";
22
+ import"./index-azkj85kx.js";
23
+ import"./index-ktnvnp7h.js";
24
+ import"./index-nr8w8h7y.js";
25
+ import"./index-nf4zam3r.js";
24
26
 
25
27
  // pkgs/@akanjs/cli/context/context.command.ts
26
28
  class ContextCommand extends command("context", [ContextScript], ({ public: target }) => ({
@@ -4,20 +4,22 @@ import {
4
4
  runner,
5
5
  script,
6
6
  command
7
- } from "./index-ft1sfjz0.js";
8
- import"./index-k1n0h7dk.js";
7
+ } from "./index-n0x82fhs.js";
8
+ import"./index-c6rfvayh.js";
9
+ import"./index-7nr23j55.js";
9
10
  import {
10
11
  FileSys
11
12
  } from "./index-ayy5ecax.js";
12
13
  import {
13
14
  getDirname2
14
15
  } from "./index-6wwzs1bc.js";
16
+ import"./index-5es51p0n.js";
15
17
  import {
16
18
  Prompter
17
19
  } from "./index-h7yw2z9n.js";
18
20
  import {
19
21
  AiSession
20
- } from "./index-wet2ytnr.js";
22
+ } from "./index-mr9b7nkd.js";
21
23
 
22
24
  // pkgs/@akanjs/cli/guideline/guideline.script.ts
23
25
  import { Logger } from "akanjs/common";
@@ -131,6 +131,15 @@ back.
131
131
  `biome.jsonc` to document a disabled rule.
132
132
  - **`akan lint` prints up to 200 diagnostics** (`--max-diagnostics <n>`, `0` for no limit). Biome's own default is
133
133
  20 with no count, which reads as progress when the mix of findings merely changed.
134
+ - **The type-aware rules run in `akan lint` and at pre-commit, not in the editor.** `biome.base.json` pins
135
+ `linter.domains.types` and `.project` to `none`, so the LSP never builds a type or module graph on save; both
136
+ batch runners re-apply `@akanjs/devkit/biome.domains.json` through a throwaway `.biome.strict.<pid>.json` they
137
+ write in the workspace root and delete when the run ends. A finding that `akan lint` reports and your editor
138
+ does not — `noUnnecessaryConditions`, `useArraySortCompare`, `useArrayFind` — is that split, not a stale editor.
139
+ **Never add a second committed Biome config to get the same effect:** `plugins` paths resolve from the entry
140
+ config's own directory, so a config under `.husky/` loads none of the grit rules, and `extends` is one level
141
+ deep, so a config extending `./biome.json` inherits nothing that `biome.json` itself extends. Spell every domain
142
+ out in both files — an unspecified domain is inferred from the project's dependencies and turned on, not off.
134
143
 
135
144
  ## Coding Style (`**/*.{ts,tsx}`)
136
145
 
@@ -2,9 +2,11 @@
2
2
  import {
3
3
  WorkspaceExecutor,
4
4
  AppExecutor
5
- } from "./index-k1n0h7dk.js";
5
+ } from "./index-c6rfvayh.js";
6
+ import"./index-7nr23j55.js";
6
7
  import"./index-ayy5ecax.js";
7
8
  import"./index-6wwzs1bc.js";
9
+ import"./index-5es51p0n.js";
8
10
  import {
9
11
  GraphClientEntryDiscovery,
10
12
  RouteClientBuilder,
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  CommandExecutionError
4
- } from "./index-k1n0h7dk.js";
4
+ } from "./index-c6rfvayh.js";
5
5
  import {
6
6
  resolveMobilePath,
7
7
  targetHtmlFilename
@@ -0,0 +1,66 @@
1
+ // @bun
2
+ // pkgs/@akanjs/devkit/spinner.ts
3
+ import ora from "ora";
4
+
5
+ class Spinner {
6
+ static padding = 12;
7
+ static oraOptions = { discardStdin: false };
8
+ static canAnimate(stream = process.stderr) {
9
+ return !stream.isTTY || stream.columns > 0;
10
+ }
11
+ spinner;
12
+ stopWatch = null;
13
+ startAt = new Date;
14
+ prefix;
15
+ message;
16
+ enableSpin;
17
+ constructor(message, { prefix = "", indent = 0, enableSpin = true } = {}) {
18
+ Spinner.padding = Math.max(Spinner.padding, prefix.length);
19
+ this.prefix = prefix;
20
+ this.message = message;
21
+ this.spinner = ora({ ...Spinner.oraOptions, text: message });
22
+ this.spinner.prefixText = prefix.padStart(Spinner.padding, " ");
23
+ this.spinner.indent = indent;
24
+ this.enableSpin = enableSpin && Spinner.canAnimate();
25
+ }
26
+ start() {
27
+ this.startAt = new Date;
28
+ if (this.enableSpin) {
29
+ this.spinner.start();
30
+ this.stopWatch = setInterval(() => {
31
+ this.spinner.prefixText = this.prefix.padStart(Spinner.padding, " ");
32
+ this.spinner.text = `${this.message} (${this.#getElapsedTimeStr({ floor: true })})`;
33
+ }, 1000);
34
+ } else
35
+ this.spinner.info();
36
+ return this;
37
+ }
38
+ succeed(message) {
39
+ this.spinner.succeed(`${message} (${this.#getElapsedTimeStr()})`);
40
+ this.#reset();
41
+ }
42
+ fail(message) {
43
+ this.spinner.fail(`${message} (${this.#getElapsedTimeStr()})`);
44
+ this.#reset();
45
+ }
46
+ isSpinning() {
47
+ return this.spinner.isSpinning;
48
+ }
49
+ #reset() {
50
+ if (this.stopWatch)
51
+ clearInterval(this.stopWatch);
52
+ this.stopWatch = null;
53
+ }
54
+ #getElapsedTimeStr({ floor = false } = {}) {
55
+ const ms = Date.now() - this.startAt.getTime();
56
+ if (ms < 1000)
57
+ return `${ms}ms`;
58
+ const s = Math.floor(ms / 1000);
59
+ if (s < 60)
60
+ return `${floor ? Math.floor(ms / 1000) : Math.floor(ms / 100) / 10}s`;
61
+ const m = Math.floor(s / 60);
62
+ return `${m}m ${s % 60}s`;
63
+ }
64
+ }
65
+
66
+ export { Spinner };