@akanjs/cli 3.0.0-alpha.6 → 3.0.0-alpha.8
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.
- package/.build-stamp +1 -1
- package/{agent.command-b0fcx3r2.js → agent.command-pggr92jj.js} +6 -6
- package/{application.command-cezdnvtq.js → application.command-692yap1d.js} +4 -4
- package/buildBatch.proc.js +1 -1
- package/{capacitorApp-jaksw4cy.js → capacitorApp-p0z5yab2.js} +2 -2
- package/{cloud.command-6xvsd487.js → cloud.command-wqfsyzv2.js} +7 -7
- package/{context.command-ajn1b683.js → context.command-9bxtdn0w.js} +13 -13
- package/{guideline.command-9ew6aqhm.js → guideline.command-nfqahxex.js} +3 -3
- package/incrementalBuilder.proc.js +1 -1
- package/{index-m4kpmmtj.js → index-2c3e2xh8.js} +1 -1
- package/{index-hrwzz2wf.js → index-4hek879p.js} +1 -1
- package/{index-r7nqv8qj.js → index-5dw57f0d.js} +4 -4
- package/{index-c94nq3c1.js → index-5pmx7bkg.js} +3 -3
- package/{index-jkynkyfk.js → index-6rhabeev.js} +1 -1
- package/{index-qp089jp0.js → index-7myvn0f0.js} +1 -1
- package/{index-exhpp31y.js → index-a1e0j63x.js} +2 -2
- package/{index-meh7mmz9.js → index-azv0xjb5.js} +2 -2
- package/{index-pfrt7qwh.js → index-bz2sfzzt.js} +4 -4
- package/{index-nfxq39kj.js → index-gex7c8kd.js} +4 -4
- package/{index-wrrb8rxk.js → index-gmy45vz2.js} +3 -3
- package/{index-zr2wvx69.js → index-js368gk9.js} +5 -5
- package/{index-jn9vfpwz.js → index-mssqn2sq.js} +2 -2
- package/{index-zbx0jheb.js → index-p3f4q532.js} +3 -3
- package/{index-47qxw1tz.js → index-vg0sj9nc.js} +1 -1
- package/{index-60a3jfcz.js → index-vtj3zps1.js} +5 -5
- package/{index-vkqxw0ek.js → index-w6wbb612.js} +11 -11
- package/{index-hk9rbcsz.js → index-xhgtkekh.js} +1 -1
- package/{index-6npsfpxr.js → index-ztpw544k.js} +3 -3
- package/index.js +18 -18
- package/{library.command-aa1g8nsa.js → library.command-md9715jz.js} +3 -3
- package/{localRegistry.command-jha3sn50.js → localRegistry.command-exkbamyj.js} +6 -6
- package/{module.command-b1zzgqde.js → module.command-w5aaddxk.js} +6 -6
- package/{package.command-9qv6vr9s.js → package.command-yfkrcy0z.js} +3 -3
- package/package.json +2 -2
- package/{page.command-k16pw244.js → page.command-echbavp4.js} +3 -3
- package/{primitive.command-s60dn1ae.js → primitive.command-9fbhspw2.js} +7 -7
- package/{quality.command-p3vaze52.js → quality.command-3pnt9yep.js} +4 -17
- package/{repair.command-mfv749ha.js → repair.command-carj4vax.js} +5 -5
- package/{routeSourceValidator-cncd92fv.js → routeSourceValidator-e4jmbfcx.js} +2 -38
- package/{scalar.command-hs3nwzv1.js → scalar.command-51ryzypc.js} +5 -5
- package/templates/app/page/styles.css.template +3 -3
- package/templates/workspaceRoot/.cursor/rules/lint-enforced-rules.mdc.template +3 -2
- package/templates/workspaceRoot/.cursor/rules/module-file-playbook.mdc.template +1 -0
- package/templates/workspaceRoot/.cursor/rules/scalar-modeling.mdc.template +41 -0
- package/templates/workspaceRoot/AGENTS.md.template +2 -1
- package/templates/workspaceRoot/biome.json.template +6 -1
- package/{workflow.command-z0e0fk0z.js → workflow.command-91wmvm8k.js} +10 -10
- package/{workspace.command-3ydyy991.js → workspace.command-wa10mfd9.js} +19 -19
package/.build-stamp
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
96800101b13c6f5163a33a8e22d3b688e1822d063cd1d5b809f97697a9b1ecd7
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
AgentScript
|
|
4
|
-
} from "./index-
|
|
5
|
-
import"./index-
|
|
6
|
-
import"./index-
|
|
7
|
-
import"./index-
|
|
4
|
+
} from "./index-gex7c8kd.js";
|
|
5
|
+
import"./index-mssqn2sq.js";
|
|
6
|
+
import"./index-2c3e2xh8.js";
|
|
7
|
+
import"./index-7myvn0f0.js";
|
|
8
8
|
import {
|
|
9
9
|
Workspace,
|
|
10
10
|
command
|
|
11
|
-
} from "./index-
|
|
12
|
-
import"./index-
|
|
11
|
+
} from "./index-6rhabeev.js";
|
|
12
|
+
import"./index-vg0sj9nc.js";
|
|
13
13
|
import"./index-mxvakhsm.js";
|
|
14
14
|
import"./index-xys926f2.js";
|
|
15
15
|
import"./index-67546d0j.js";
|
|
@@ -4,21 +4,21 @@ import {
|
|
|
4
4
|
} from "./index-0wae5ebk.js";
|
|
5
5
|
import {
|
|
6
6
|
ApplicationScript
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-5dw57f0d.js";
|
|
8
8
|
import {
|
|
9
9
|
getMobileTargetChoices
|
|
10
10
|
} from "./index-76rn3g2c.js";
|
|
11
|
-
import"./index-
|
|
11
|
+
import"./index-a1e0j63x.js";
|
|
12
12
|
import {
|
|
13
13
|
App,
|
|
14
14
|
Exec,
|
|
15
15
|
Sys,
|
|
16
16
|
Workspace,
|
|
17
17
|
command
|
|
18
|
-
} from "./index-
|
|
18
|
+
} from "./index-6rhabeev.js";
|
|
19
19
|
import"./index-fgc8r6dj.js";
|
|
20
20
|
import"./index-bjpxzr6s.js";
|
|
21
|
-
import"./index-
|
|
21
|
+
import"./index-vg0sj9nc.js";
|
|
22
22
|
import"./index-mxvakhsm.js";
|
|
23
23
|
import"./index-67546d0j.js";
|
|
24
24
|
import"./index-r24hmh0q.js";
|
package/buildBatch.proc.js
CHANGED
|
@@ -25,9 +25,9 @@ import {
|
|
|
25
25
|
selectLocalDevHost,
|
|
26
26
|
sortIosRunTargets,
|
|
27
27
|
writeRootCapacitorConfig
|
|
28
|
-
} from "./index-
|
|
28
|
+
} from "./index-xhgtkekh.js";
|
|
29
29
|
import"./index-76rn3g2c.js";
|
|
30
|
-
import"./index-
|
|
30
|
+
import"./index-vg0sj9nc.js";
|
|
31
31
|
import"./index-mxvakhsm.js";
|
|
32
32
|
import"./index-67546d0j.js";
|
|
33
33
|
import"./index-r24hmh0q.js";
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
CloudScript
|
|
4
|
-
} from "./index-
|
|
5
|
-
import"./index-
|
|
6
|
-
import"./index-
|
|
4
|
+
} from "./index-js368gk9.js";
|
|
5
|
+
import"./index-p3f4q532.js";
|
|
6
|
+
import"./index-azv0xjb5.js";
|
|
7
7
|
import {
|
|
8
8
|
GlobalConfig
|
|
9
9
|
} from "./index-0cj2zxbm.js";
|
|
10
|
-
import"./index-
|
|
10
|
+
import"./index-5dw57f0d.js";
|
|
11
11
|
import"./index-76rn3g2c.js";
|
|
12
|
-
import"./index-
|
|
12
|
+
import"./index-a1e0j63x.js";
|
|
13
13
|
import {
|
|
14
14
|
Workspace,
|
|
15
15
|
command
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-6rhabeev.js";
|
|
17
17
|
import"./index-fgc8r6dj.js";
|
|
18
18
|
import"./index-bjpxzr6s.js";
|
|
19
|
-
import"./index-
|
|
19
|
+
import"./index-vg0sj9nc.js";
|
|
20
20
|
import"./index-mxvakhsm.js";
|
|
21
21
|
import"./index-46tjzh6s.js";
|
|
22
22
|
import"./index-67546d0j.js";
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
ContextScript
|
|
4
|
-
} from "./index-
|
|
5
|
-
import"./index-
|
|
6
|
-
import"./index-
|
|
7
|
-
import"./index-
|
|
8
|
-
import"./index-
|
|
9
|
-
import"./index-
|
|
10
|
-
import"./index-
|
|
4
|
+
} from "./index-w6wbb612.js";
|
|
5
|
+
import"./index-ztpw544k.js";
|
|
6
|
+
import"./index-5pmx7bkg.js";
|
|
7
|
+
import"./index-bz2sfzzt.js";
|
|
8
|
+
import"./index-vtj3zps1.js";
|
|
9
|
+
import"./index-4hek879p.js";
|
|
10
|
+
import"./index-gmy45vz2.js";
|
|
11
11
|
import"./index-ss469dec.js";
|
|
12
|
-
import"./index-
|
|
12
|
+
import"./index-xhgtkekh.js";
|
|
13
13
|
import"./index-0cj2zxbm.js";
|
|
14
|
-
import"./index-
|
|
15
|
-
import"./index-
|
|
16
|
-
import"./index-
|
|
14
|
+
import"./index-mssqn2sq.js";
|
|
15
|
+
import"./index-2c3e2xh8.js";
|
|
16
|
+
import"./index-7myvn0f0.js";
|
|
17
17
|
import"./index-76rn3g2c.js";
|
|
18
18
|
import {
|
|
19
19
|
Workspace,
|
|
20
20
|
command
|
|
21
|
-
} from "./index-
|
|
22
|
-
import"./index-
|
|
21
|
+
} from "./index-6rhabeev.js";
|
|
22
|
+
import"./index-vg0sj9nc.js";
|
|
23
23
|
import"./index-mxvakhsm.js";
|
|
24
24
|
import"./index-xys926f2.js";
|
|
25
25
|
import"./index-67546d0j.js";
|
|
@@ -4,16 +4,16 @@ import {
|
|
|
4
4
|
} from "./index-0cj2zxbm.js";
|
|
5
5
|
import {
|
|
6
6
|
Prompter
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-7myvn0f0.js";
|
|
8
8
|
import {
|
|
9
9
|
Workspace,
|
|
10
10
|
command,
|
|
11
11
|
runner,
|
|
12
12
|
script
|
|
13
|
-
} from "./index-
|
|
13
|
+
} from "./index-6rhabeev.js";
|
|
14
14
|
import {
|
|
15
15
|
getDirname
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-vg0sj9nc.js";
|
|
17
17
|
import"./index-mxvakhsm.js";
|
|
18
18
|
import {
|
|
19
19
|
FileSys
|
|
@@ -4,11 +4,11 @@ import {
|
|
|
4
4
|
} from "./index-76rn3g2c.js";
|
|
5
5
|
import {
|
|
6
6
|
LibraryScript
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-a1e0j63x.js";
|
|
8
8
|
import {
|
|
9
9
|
runner,
|
|
10
10
|
script
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-6rhabeev.js";
|
|
12
12
|
import {
|
|
13
13
|
HmrWatcher,
|
|
14
14
|
WatchRootResolver
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
LibExecutor,
|
|
19
19
|
PkgExecutor,
|
|
20
20
|
WorkspaceExecutor
|
|
21
|
-
} from "./index-
|
|
21
|
+
} from "./index-vg0sj9nc.js";
|
|
22
22
|
import {
|
|
23
23
|
__require
|
|
24
24
|
} from "./index-r24hmh0q.js";
|
|
@@ -1900,7 +1900,7 @@ function openBrowser(url) {
|
|
|
1900
1900
|
// pkgs/@akanjs/cli/application/application.runner.ts
|
|
1901
1901
|
var loadBuildRunner = async () => (await import("./applicationBuildRunner-ha3y8ew8.js")).ApplicationBuildRunner;
|
|
1902
1902
|
var loadReleasePackager = async () => (await import("./applicationReleasePackager-gg8ccbeh.js")).ApplicationReleasePackager;
|
|
1903
|
-
var loadCapacitorApp = async () => (await import("./capacitorApp-
|
|
1903
|
+
var loadCapacitorApp = async () => (await import("./capacitorApp-p0z5yab2.js")).CapacitorApp;
|
|
1904
1904
|
var loadAbstractCompactor = async () => (await import("./abstractCompactor-e5yq60qz.js")).AbstractCompactor;
|
|
1905
1905
|
var loadPrompts = async () => await import("@inquirer/prompts");
|
|
1906
1906
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
AkanContextAnalyzer
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-mssqn2sq.js";
|
|
5
5
|
import {
|
|
6
6
|
WorkflowExecutor,
|
|
7
7
|
compactWorkflowInputs,
|
|
@@ -23,10 +23,10 @@ import {
|
|
|
23
23
|
workflowCommandsForPlan,
|
|
24
24
|
workflowPlanApproval,
|
|
25
25
|
writeWorkflowRunArtifact
|
|
26
|
-
} from "./index-
|
|
26
|
+
} from "./index-2c3e2xh8.js";
|
|
27
27
|
import {
|
|
28
28
|
runner
|
|
29
|
-
} from "./index-
|
|
29
|
+
} from "./index-6rhabeev.js";
|
|
30
30
|
|
|
31
31
|
// pkgs/@akanjs/cli/workflow/workflow.runner.ts
|
|
32
32
|
import { mkdir, readFile, writeFile } from "fs/promises";
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
runner,
|
|
4
4
|
script
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-6rhabeev.js";
|
|
6
6
|
import {
|
|
7
7
|
PkgExecutor
|
|
8
|
-
} from "./index-
|
|
8
|
+
} from "./index-vg0sj9nc.js";
|
|
9
9
|
import {
|
|
10
10
|
TypeScriptDependencyScanner
|
|
11
11
|
} from "./index-46tjzh6s.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
ModuleScript
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-vtj3zps1.js";
|
|
5
5
|
import {
|
|
6
6
|
addFieldUiPolicyForType,
|
|
7
7
|
coerceFieldDefault,
|
|
@@ -34,15 +34,15 @@ import {
|
|
|
34
34
|
sourceFile,
|
|
35
35
|
validationCommandsForTarget,
|
|
36
36
|
viaBuilderParameterName
|
|
37
|
-
} from "./index-
|
|
37
|
+
} from "./index-2c3e2xh8.js";
|
|
38
38
|
import {
|
|
39
39
|
script
|
|
40
|
-
} from "./index-
|
|
40
|
+
} from "./index-6rhabeev.js";
|
|
41
41
|
import {
|
|
42
42
|
AppExecutor,
|
|
43
43
|
LibExecutor,
|
|
44
44
|
ModuleExecutor
|
|
45
|
-
} from "./index-
|
|
45
|
+
} from "./index-vg0sj9nc.js";
|
|
46
46
|
|
|
47
47
|
// pkgs/@akanjs/cli/primitive/primitive.script.ts
|
|
48
48
|
import { capitalize } from "akanjs/common";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
AkanContextAnalyzer
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-mssqn2sq.js";
|
|
5
5
|
import {
|
|
6
6
|
Prompter
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-7myvn0f0.js";
|
|
8
8
|
import {
|
|
9
9
|
runner,
|
|
10
10
|
script
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-6rhabeev.js";
|
|
12
12
|
import {
|
|
13
13
|
AGENT_BLOCK_END,
|
|
14
14
|
AGENT_BLOCK_START,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
LibExecutor,
|
|
17
17
|
renderRecipeEntries,
|
|
18
18
|
upsertAgentBlock
|
|
19
|
-
} from "./index-
|
|
19
|
+
} from "./index-vg0sj9nc.js";
|
|
20
20
|
import {
|
|
21
21
|
collectRecipeSources,
|
|
22
22
|
scanRecipes
|
|
@@ -9,14 +9,14 @@ import {
|
|
|
9
9
|
createPassedPrimitiveReport,
|
|
10
10
|
generatedFilesForSync,
|
|
11
11
|
scalarChangedFiles
|
|
12
|
-
} from "./index-
|
|
12
|
+
} from "./index-2c3e2xh8.js";
|
|
13
13
|
import {
|
|
14
14
|
Prompter
|
|
15
|
-
} from "./index-
|
|
15
|
+
} from "./index-7myvn0f0.js";
|
|
16
16
|
import {
|
|
17
17
|
runner,
|
|
18
18
|
script
|
|
19
|
-
} from "./index-
|
|
19
|
+
} from "./index-6rhabeev.js";
|
|
20
20
|
|
|
21
21
|
// pkgs/@akanjs/cli/scalar/scalar.prompt.ts
|
|
22
22
|
import { input } from "@inquirer/prompts";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
CloudRunner
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-p3f4q532.js";
|
|
5
5
|
import {
|
|
6
6
|
PackageScript
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-azv0xjb5.js";
|
|
8
8
|
import {
|
|
9
9
|
AiSession,
|
|
10
10
|
CloudApi,
|
|
@@ -12,13 +12,13 @@ import {
|
|
|
12
12
|
} from "./index-0cj2zxbm.js";
|
|
13
13
|
import {
|
|
14
14
|
ApplicationScript
|
|
15
|
-
} from "./index-
|
|
15
|
+
} from "./index-5dw57f0d.js";
|
|
16
16
|
import {
|
|
17
17
|
script
|
|
18
|
-
} from "./index-
|
|
18
|
+
} from "./index-6rhabeev.js";
|
|
19
19
|
import {
|
|
20
20
|
PkgExecutor
|
|
21
|
-
} from "./index-
|
|
21
|
+
} from "./index-vg0sj9nc.js";
|
|
22
22
|
|
|
23
23
|
// pkgs/@akanjs/cli/cloud/cloud.script.ts
|
|
24
24
|
import { Logger } from "akanjs/common";
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
workflowRunArtifactPath,
|
|
4
4
|
workflowSyncDir
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-2c3e2xh8.js";
|
|
6
6
|
import {
|
|
7
7
|
AppExecutor,
|
|
8
8
|
LibExecutor,
|
|
9
9
|
appRootAllowedDirs,
|
|
10
10
|
appRootAllowedFiles,
|
|
11
11
|
isScannedAppRootEntry
|
|
12
|
-
} from "./index-
|
|
12
|
+
} from "./index-vg0sj9nc.js";
|
|
13
13
|
import {
|
|
14
14
|
collectRecipeSources,
|
|
15
15
|
findInlineRecipeDuplicates,
|
|
@@ -7,14 +7,14 @@ import {
|
|
|
7
7
|
} from "./index-0cj2zxbm.js";
|
|
8
8
|
import {
|
|
9
9
|
openBrowser
|
|
10
|
-
} from "./index-
|
|
10
|
+
} from "./index-5dw57f0d.js";
|
|
11
11
|
import {
|
|
12
12
|
runner
|
|
13
|
-
} from "./index-
|
|
13
|
+
} from "./index-6rhabeev.js";
|
|
14
14
|
import {
|
|
15
15
|
AppExecutor,
|
|
16
16
|
WorkspaceExecutor
|
|
17
|
-
} from "./index-
|
|
17
|
+
} from "./index-vg0sj9nc.js";
|
|
18
18
|
|
|
19
19
|
// pkgs/@akanjs/cli/cloud/cloud.runner.ts
|
|
20
20
|
import path from "path";
|
|
@@ -2485,7 +2485,7 @@ class SysExecutor extends Executor {
|
|
|
2485
2485
|
class AppExecutor extends SysExecutor {
|
|
2486
2486
|
static #routeSourceValidator = null;
|
|
2487
2487
|
static async#getRouteSourceValidator() {
|
|
2488
|
-
AppExecutor.#routeSourceValidator ??= (await import("./routeSourceValidator-
|
|
2488
|
+
AppExecutor.#routeSourceValidator ??= (await import("./routeSourceValidator-e4jmbfcx.js")).RouteSourceValidator;
|
|
2489
2489
|
return AppExecutor.#routeSourceValidator;
|
|
2490
2490
|
}
|
|
2491
2491
|
dist;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
PageScript
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-4hek879p.js";
|
|
5
5
|
import {
|
|
6
6
|
pluralizeName
|
|
7
7
|
} from "./index-ss469dec.js";
|
|
@@ -15,17 +15,17 @@ import {
|
|
|
15
15
|
generatedFilesForSync,
|
|
16
16
|
moduleSourcePaths,
|
|
17
17
|
sourceFile
|
|
18
|
-
} from "./index-
|
|
18
|
+
} from "./index-2c3e2xh8.js";
|
|
19
19
|
import {
|
|
20
20
|
Prompter
|
|
21
|
-
} from "./index-
|
|
21
|
+
} from "./index-7myvn0f0.js";
|
|
22
22
|
import {
|
|
23
23
|
runner,
|
|
24
24
|
script
|
|
25
|
-
} from "./index-
|
|
25
|
+
} from "./index-6rhabeev.js";
|
|
26
26
|
import {
|
|
27
27
|
ModuleExecutor
|
|
28
|
-
} from "./index-
|
|
28
|
+
} from "./index-vg0sj9nc.js";
|
|
29
29
|
import {
|
|
30
30
|
FileSys
|
|
31
31
|
} from "./index-67546d0j.js";
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
RepairRunner
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-ztpw544k.js";
|
|
5
5
|
import {
|
|
6
6
|
WorkflowRunner
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-5pmx7bkg.js";
|
|
8
8
|
import {
|
|
9
9
|
PrimitiveScript
|
|
10
|
-
} from "./index-
|
|
10
|
+
} from "./index-bz2sfzzt.js";
|
|
11
11
|
import {
|
|
12
12
|
ModuleScript
|
|
13
|
-
} from "./index-
|
|
13
|
+
} from "./index-vtj3zps1.js";
|
|
14
14
|
import {
|
|
15
15
|
ScalarScript
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-gmy45vz2.js";
|
|
17
17
|
import {
|
|
18
18
|
isPlaceholderAppId
|
|
19
|
-
} from "./index-
|
|
19
|
+
} from "./index-xhgtkekh.js";
|
|
20
20
|
import {
|
|
21
21
|
AkanContextAnalyzer,
|
|
22
22
|
akanMcpInstallConfigPaths,
|
|
@@ -27,17 +27,17 @@ import {
|
|
|
27
27
|
renderDoctorText,
|
|
28
28
|
resourceList,
|
|
29
29
|
upsertCodexMcpServerBlock
|
|
30
|
-
} from "./index-
|
|
30
|
+
} from "./index-mssqn2sq.js";
|
|
31
31
|
import {
|
|
32
32
|
buildAkanModuleContextIndex,
|
|
33
33
|
createWorkflowBaselineSummary,
|
|
34
34
|
createWorkflowStepRegistry,
|
|
35
35
|
jsonText,
|
|
36
36
|
toolingRolloutGate
|
|
37
|
-
} from "./index-
|
|
37
|
+
} from "./index-2c3e2xh8.js";
|
|
38
38
|
import {
|
|
39
39
|
Prompter
|
|
40
|
-
} from "./index-
|
|
40
|
+
} from "./index-7myvn0f0.js";
|
|
41
41
|
import {
|
|
42
42
|
getMobileTargets
|
|
43
43
|
} from "./index-76rn3g2c.js";
|
|
@@ -45,10 +45,10 @@ import {
|
|
|
45
45
|
CommandContainer,
|
|
46
46
|
runner,
|
|
47
47
|
script
|
|
48
|
-
} from "./index-
|
|
48
|
+
} from "./index-6rhabeev.js";
|
|
49
49
|
import {
|
|
50
50
|
AppExecutor
|
|
51
|
-
} from "./index-
|
|
51
|
+
} from "./index-vg0sj9nc.js";
|
|
52
52
|
|
|
53
53
|
// pkgs/@akanjs/cli/context/context.script.ts
|
|
54
54
|
import { Logger } from "akanjs/common";
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
AkanContextAnalyzer
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-mssqn2sq.js";
|
|
5
5
|
import {
|
|
6
6
|
createRepairReport,
|
|
7
7
|
generatedFilePathsForTarget,
|
|
8
8
|
renderRepairReport,
|
|
9
9
|
writeGeneratedSyncState,
|
|
10
10
|
writeWorkflowRunArtifact
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-2c3e2xh8.js";
|
|
12
12
|
import {
|
|
13
13
|
runner
|
|
14
|
-
} from "./index-
|
|
14
|
+
} from "./index-6rhabeev.js";
|
|
15
15
|
|
|
16
16
|
// pkgs/@akanjs/cli/repair/repair.runner.ts
|
|
17
17
|
var commandForShell = (command) => command.startsWith("akan ") ? `bun run ${command}` : command;
|
package/index.js
CHANGED
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
getTargetCommandNames,
|
|
5
5
|
getTargetMetas,
|
|
6
6
|
runCommands
|
|
7
|
-
} from "./index-
|
|
8
|
-
import"./index-
|
|
7
|
+
} from "./index-6rhabeev.js";
|
|
8
|
+
import"./index-vg0sj9nc.js";
|
|
9
9
|
import"./index-mxvakhsm.js";
|
|
10
10
|
import"./index-67546d0j.js";
|
|
11
11
|
import {
|
|
@@ -17,22 +17,22 @@ import path from "path";
|
|
|
17
17
|
|
|
18
18
|
// pkgs/@akanjs/cli/commandModules.ts
|
|
19
19
|
var commandModules = {
|
|
20
|
-
workspace: async () => (await import("./workspace.command-
|
|
21
|
-
agent: async () => (await import("./agent.command-
|
|
22
|
-
application: async () => (await import("./application.command-
|
|
23
|
-
library: async () => (await import("./library.command-
|
|
24
|
-
localRegistry: async () => (await import("./localRegistry.command-
|
|
25
|
-
package: async () => (await import("./package.command-
|
|
26
|
-
module: async () => (await import("./module.command-
|
|
27
|
-
page: async () => (await import("./page.command-
|
|
28
|
-
context: async () => (await import("./context.command-
|
|
29
|
-
cloud: async () => (await import("./cloud.command-
|
|
30
|
-
guideline: async () => (await import("./guideline.command-
|
|
31
|
-
scalar: async () => (await import("./scalar.command-
|
|
32
|
-
primitive: async () => (await import("./primitive.command-
|
|
33
|
-
quality: async () => (await import("./quality.command-
|
|
34
|
-
repair: async () => (await import("./repair.command-
|
|
35
|
-
workflow: async () => (await import("./workflow.command-
|
|
20
|
+
workspace: async () => (await import("./workspace.command-wa10mfd9.js")).WorkspaceCommand,
|
|
21
|
+
agent: async () => (await import("./agent.command-pggr92jj.js")).AgentCommand,
|
|
22
|
+
application: async () => (await import("./application.command-692yap1d.js")).ApplicationCommand,
|
|
23
|
+
library: async () => (await import("./library.command-md9715jz.js")).LibraryCommand,
|
|
24
|
+
localRegistry: async () => (await import("./localRegistry.command-exkbamyj.js")).LocalRegistryCommand,
|
|
25
|
+
package: async () => (await import("./package.command-yfkrcy0z.js")).PackageCommand,
|
|
26
|
+
module: async () => (await import("./module.command-w5aaddxk.js")).ModuleCommand,
|
|
27
|
+
page: async () => (await import("./page.command-echbavp4.js")).PageCommand,
|
|
28
|
+
context: async () => (await import("./context.command-9bxtdn0w.js")).ContextCommand,
|
|
29
|
+
cloud: async () => (await import("./cloud.command-wqfsyzv2.js")).CloudCommand,
|
|
30
|
+
guideline: async () => (await import("./guideline.command-nfqahxex.js")).GuidelineCommand,
|
|
31
|
+
scalar: async () => (await import("./scalar.command-51ryzypc.js")).ScalarCommand,
|
|
32
|
+
primitive: async () => (await import("./primitive.command-9fbhspw2.js")).PrimitiveCommand,
|
|
33
|
+
quality: async () => (await import("./quality.command-3pnt9yep.js")).QualityCommand,
|
|
34
|
+
repair: async () => (await import("./repair.command-carj4vax.js")).RepairCommand,
|
|
35
|
+
workflow: async () => (await import("./workflow.command-91wmvm8k.js")).WorkflowCommand
|
|
36
36
|
};
|
|
37
37
|
var commandModuleIds = Object.keys(commandModules);
|
|
38
38
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
LibraryScript
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-a1e0j63x.js";
|
|
5
5
|
import {
|
|
6
6
|
Lib,
|
|
7
7
|
Workspace,
|
|
8
8
|
command
|
|
9
|
-
} from "./index-
|
|
10
|
-
import"./index-
|
|
9
|
+
} from "./index-6rhabeev.js";
|
|
10
|
+
import"./index-vg0sj9nc.js";
|
|
11
11
|
import"./index-mxvakhsm.js";
|
|
12
12
|
import"./index-67546d0j.js";
|
|
13
13
|
import"./index-r24hmh0q.js";
|
|
@@ -2,27 +2,27 @@
|
|
|
2
2
|
import {
|
|
3
3
|
CloudRunner,
|
|
4
4
|
getNpmRegistryUrl
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-p3f4q532.js";
|
|
6
6
|
import {
|
|
7
7
|
PackageScript
|
|
8
|
-
} from "./index-
|
|
8
|
+
} from "./index-azv0xjb5.js";
|
|
9
9
|
import"./index-0cj2zxbm.js";
|
|
10
10
|
import {
|
|
11
11
|
ApplicationScript
|
|
12
|
-
} from "./index-
|
|
12
|
+
} from "./index-5dw57f0d.js";
|
|
13
13
|
import"./index-76rn3g2c.js";
|
|
14
|
-
import"./index-
|
|
14
|
+
import"./index-a1e0j63x.js";
|
|
15
15
|
import {
|
|
16
16
|
Workspace,
|
|
17
17
|
command,
|
|
18
18
|
runner,
|
|
19
19
|
script
|
|
20
|
-
} from "./index-
|
|
20
|
+
} from "./index-6rhabeev.js";
|
|
21
21
|
import"./index-fgc8r6dj.js";
|
|
22
22
|
import"./index-bjpxzr6s.js";
|
|
23
23
|
import {
|
|
24
24
|
PkgExecutor
|
|
25
|
-
} from "./index-
|
|
25
|
+
} from "./index-vg0sj9nc.js";
|
|
26
26
|
import"./index-mxvakhsm.js";
|
|
27
27
|
import"./index-46tjzh6s.js";
|
|
28
28
|
import"./index-67546d0j.js";
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
ModuleScript
|
|
4
|
-
} from "./index-
|
|
5
|
-
import"./index-
|
|
4
|
+
} from "./index-vtj3zps1.js";
|
|
5
|
+
import"./index-4hek879p.js";
|
|
6
6
|
import"./index-ss469dec.js";
|
|
7
7
|
import"./index-0cj2zxbm.js";
|
|
8
8
|
import {
|
|
9
9
|
renderPrimitiveReport
|
|
10
|
-
} from "./index-
|
|
11
|
-
import"./index-
|
|
10
|
+
} from "./index-2c3e2xh8.js";
|
|
11
|
+
import"./index-7myvn0f0.js";
|
|
12
12
|
import {
|
|
13
13
|
Module,
|
|
14
14
|
Sys,
|
|
15
15
|
command
|
|
16
|
-
} from "./index-
|
|
17
|
-
import"./index-
|
|
16
|
+
} from "./index-6rhabeev.js";
|
|
17
|
+
import"./index-vg0sj9nc.js";
|
|
18
18
|
import"./index-mxvakhsm.js";
|
|
19
19
|
import"./index-67546d0j.js";
|
|
20
20
|
import"./index-r24hmh0q.js";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
PackageScript
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-azv0xjb5.js";
|
|
5
5
|
import {
|
|
6
6
|
Pkg,
|
|
7
7
|
Workspace,
|
|
8
8
|
command
|
|
9
|
-
} from "./index-
|
|
10
|
-
import"./index-
|
|
9
|
+
} from "./index-6rhabeev.js";
|
|
10
|
+
import"./index-vg0sj9nc.js";
|
|
11
11
|
import"./index-mxvakhsm.js";
|
|
12
12
|
import"./index-46tjzh6s.js";
|
|
13
13
|
import"./index-67546d0j.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akanjs/cli",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.8",
|
|
4
4
|
"sourceType": "module",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@langchain/openai": "^1.4.6",
|
|
35
35
|
"@tailwindcss/node": "^4.3.0",
|
|
36
36
|
"@trapezedev/project": "^7.1.4",
|
|
37
|
-
"akanjs": "3.0.0-alpha.
|
|
37
|
+
"akanjs": "3.0.0-alpha.8",
|
|
38
38
|
"chalk": "^5.6.2",
|
|
39
39
|
"commander": "^14.0.3",
|
|
40
40
|
"dayjs": "^1.11.20",
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
PageScript
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-4hek879p.js";
|
|
5
5
|
import {
|
|
6
6
|
App,
|
|
7
7
|
Module,
|
|
8
8
|
command
|
|
9
|
-
} from "./index-
|
|
10
|
-
import"./index-
|
|
9
|
+
} from "./index-6rhabeev.js";
|
|
10
|
+
import"./index-vg0sj9nc.js";
|
|
11
11
|
import"./index-mxvakhsm.js";
|
|
12
12
|
import"./index-67546d0j.js";
|
|
13
13
|
import"./index-r24hmh0q.js";
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
PrimitiveScript
|
|
4
|
-
} from "./index-
|
|
5
|
-
import"./index-
|
|
6
|
-
import"./index-
|
|
4
|
+
} from "./index-bz2sfzzt.js";
|
|
5
|
+
import"./index-vtj3zps1.js";
|
|
6
|
+
import"./index-4hek879p.js";
|
|
7
7
|
import"./index-ss469dec.js";
|
|
8
8
|
import"./index-0cj2zxbm.js";
|
|
9
9
|
import {
|
|
10
10
|
renderPrimitiveReport
|
|
11
|
-
} from "./index-
|
|
12
|
-
import"./index-
|
|
11
|
+
} from "./index-2c3e2xh8.js";
|
|
12
|
+
import"./index-7myvn0f0.js";
|
|
13
13
|
import {
|
|
14
14
|
Workspace,
|
|
15
15
|
command
|
|
16
|
-
} from "./index-
|
|
17
|
-
import"./index-
|
|
16
|
+
} from "./index-6rhabeev.js";
|
|
17
|
+
import"./index-vg0sj9nc.js";
|
|
18
18
|
import"./index-mxvakhsm.js";
|
|
19
19
|
import"./index-67546d0j.js";
|
|
20
20
|
import"./index-r24hmh0q.js";
|
|
@@ -7,11 +7,11 @@ import {
|
|
|
7
7
|
command,
|
|
8
8
|
runner,
|
|
9
9
|
script
|
|
10
|
-
} from "./index-
|
|
10
|
+
} from "./index-6rhabeev.js";
|
|
11
11
|
import {
|
|
12
12
|
appRootAllowedFiles,
|
|
13
13
|
libFacetRootAllowedFiles
|
|
14
|
-
} from "./index-
|
|
14
|
+
} from "./index-vg0sj9nc.js";
|
|
15
15
|
import"./index-mxvakhsm.js";
|
|
16
16
|
import"./index-67546d0j.js";
|
|
17
17
|
import"./index-r24hmh0q.js";
|
|
@@ -20,6 +20,7 @@ import"./index-r24hmh0q.js";
|
|
|
20
20
|
import { createHash } from "crypto";
|
|
21
21
|
import { readdir, readFile, stat } from "fs/promises";
|
|
22
22
|
import path from "path";
|
|
23
|
+
import { RESERVED_ROUTE_CONFIG_EXPORTS } from "akanjs/common";
|
|
23
24
|
import ignore from "ignore";
|
|
24
25
|
import ts2 from "typescript";
|
|
25
26
|
|
|
@@ -415,20 +416,6 @@ var CONVENTION_SUFFIXES = [
|
|
|
415
416
|
".signal.ts",
|
|
416
417
|
".store.ts"
|
|
417
418
|
];
|
|
418
|
-
var PAGE_RESERVED_EXPORTS = new Set([
|
|
419
|
-
"pageConfig",
|
|
420
|
-
"head",
|
|
421
|
-
"metadata",
|
|
422
|
-
"generateHead",
|
|
423
|
-
"generateMetadata",
|
|
424
|
-
"fonts",
|
|
425
|
-
"manifest",
|
|
426
|
-
"theme",
|
|
427
|
-
"reconnect",
|
|
428
|
-
"wsConnect",
|
|
429
|
-
"layoutStyle",
|
|
430
|
-
"gaTrackingId"
|
|
431
|
-
]);
|
|
432
419
|
var RULE_FIXES = {
|
|
433
420
|
"akan.global.duplicate-exported-function-name": "Rename one of the exports, or if they are the same thing, extract it into one shared module and import it in both places.",
|
|
434
421
|
"akan.global.duplicate-exported-function-body": "Extract the shared implementation into a single exported helper and import it, instead of copying the body.",
|
|
@@ -911,7 +898,7 @@ function isRestrictedInternalKind(kind) {
|
|
|
911
898
|
function isAllowedComponentExport(declaration, isPage) {
|
|
912
899
|
if (isComponentValueKind(declaration.kind) && isPascalCaseName(declaration.name))
|
|
913
900
|
return true;
|
|
914
|
-
return isPage &&
|
|
901
|
+
return isPage && RESERVED_ROUTE_CONFIG_EXPORTS.has(declaration.name);
|
|
915
902
|
}
|
|
916
903
|
function isPascalCaseName(name) {
|
|
917
904
|
return /^[A-Z]/.test(name) && !/^[A-Z0-9_]+$/.test(name);
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
RepairRunner
|
|
4
|
-
} from "./index-
|
|
5
|
-
import"./index-
|
|
6
|
-
import"./index-
|
|
4
|
+
} from "./index-ztpw544k.js";
|
|
5
|
+
import"./index-mssqn2sq.js";
|
|
6
|
+
import"./index-2c3e2xh8.js";
|
|
7
7
|
import {
|
|
8
8
|
Workspace,
|
|
9
9
|
command,
|
|
10
10
|
script
|
|
11
|
-
} from "./index-
|
|
12
|
-
import"./index-
|
|
11
|
+
} from "./index-6rhabeev.js";
|
|
12
|
+
import"./index-vg0sj9nc.js";
|
|
13
13
|
import"./index-mxvakhsm.js";
|
|
14
14
|
import"./index-xys926f2.js";
|
|
15
15
|
import"./index-67546d0j.js";
|
|
@@ -2,49 +2,13 @@
|
|
|
2
2
|
import"./index-r24hmh0q.js";
|
|
3
3
|
|
|
4
4
|
// pkgs/@akanjs/devkit/routeSourceValidator.ts
|
|
5
|
+
import { getRouteExports } from "akanjs/common";
|
|
5
6
|
import ts from "typescript";
|
|
6
7
|
|
|
7
8
|
class RouteSourceValidator {
|
|
8
|
-
static #pageExports = new Set([
|
|
9
|
-
"default",
|
|
10
|
-
"pageConfig",
|
|
11
|
-
"head",
|
|
12
|
-
"metadata",
|
|
13
|
-
"generateHead",
|
|
14
|
-
"generateMetadata",
|
|
15
|
-
"Loading"
|
|
16
|
-
]);
|
|
17
|
-
static #rootLayoutExports = new Set([
|
|
18
|
-
"default",
|
|
19
|
-
"pageConfig",
|
|
20
|
-
"head",
|
|
21
|
-
"metadata",
|
|
22
|
-
"generateHead",
|
|
23
|
-
"generateMetadata",
|
|
24
|
-
"fonts",
|
|
25
|
-
"manifest",
|
|
26
|
-
"theme",
|
|
27
|
-
"reconnect",
|
|
28
|
-
"layoutStyle",
|
|
29
|
-
"gaTrackingId",
|
|
30
|
-
"Loading",
|
|
31
|
-
"NotFound",
|
|
32
|
-
"Error"
|
|
33
|
-
]);
|
|
34
|
-
static #layoutExports = new Set([
|
|
35
|
-
"default",
|
|
36
|
-
"pageConfig",
|
|
37
|
-
"head",
|
|
38
|
-
"metadata",
|
|
39
|
-
"generateHead",
|
|
40
|
-
"generateMetadata",
|
|
41
|
-
"Loading",
|
|
42
|
-
"NotFound",
|
|
43
|
-
"Error"
|
|
44
|
-
]);
|
|
45
9
|
static validateRouteSourceExports(source, filePath, kind, options = {}) {
|
|
46
10
|
const sourceFile = ts.createSourceFile(filePath, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
|
|
47
|
-
const allowed = kind
|
|
11
|
+
const allowed = getRouteExports(kind, { rootLayout: options.rootLayout });
|
|
48
12
|
const exported = new Set;
|
|
49
13
|
const assertExport = (name) => {
|
|
50
14
|
if (!allowed.has(name)) {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
ScalarScript
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-gmy45vz2.js";
|
|
5
5
|
import"./index-ss469dec.js";
|
|
6
6
|
import"./index-0cj2zxbm.js";
|
|
7
7
|
import {
|
|
8
8
|
renderPrimitiveReport
|
|
9
|
-
} from "./index-
|
|
10
|
-
import"./index-
|
|
9
|
+
} from "./index-2c3e2xh8.js";
|
|
10
|
+
import"./index-7myvn0f0.js";
|
|
11
11
|
import {
|
|
12
12
|
Sys,
|
|
13
13
|
command
|
|
14
|
-
} from "./index-
|
|
15
|
-
import"./index-
|
|
14
|
+
} from "./index-6rhabeev.js";
|
|
15
|
+
import"./index-vg0sj9nc.js";
|
|
16
16
|
import"./index-mxvakhsm.js";
|
|
17
17
|
import"./index-67546d0j.js";
|
|
18
18
|
import"./index-r24hmh0q.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
@import "tailwindcss";
|
|
2
2
|
@import "akanjs/ui/styles.css";
|
|
3
3
|
|
|
4
|
-
/*
|
|
5
|
-
akanjs/ui/styles.css
|
|
4
|
+
/* The theme system (brand-neutral default palette, @theme inline mapping, dark variant, and runtime
|
|
5
|
+
data-theme switching) is fully provided by akanjs/ui/styles.css. This app works from the import alone.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
To use this app's own brand colors, override the tokens like this:
|
|
8
8
|
|
|
9
9
|
:root,
|
|
10
10
|
[data-theme="dark"] {
|
|
@@ -7,11 +7,12 @@ alwaysApply: true
|
|
|
7
7
|
|
|
8
8
|
Enforced by `biome.json` and the Akan grit plugins registered in `biome.json`. Several of them produce output that looks wrong; do not "fix" it back.
|
|
9
9
|
|
|
10
|
-
- **Never hand-order Tailwind classes.** `nursery/useSortedClasses` is an error and also sorts the string arguments to `
|
|
11
|
-
- **Never `throw new Error`.** Throw `new Err("<module>.error.<key>")` and register the key as `[en, ko]` in that module's dictionary `.error({})`. Import `Err` from `"../dict"` on the server and from `"@libs/<lib>/client"` or `"@apps/<app>/client"` in UI. `no-throw-raw-error.grit` exempts `*.test.ts`, `*.spec.ts`, `*.constant.ts`, and `
|
|
10
|
+
- **Never hand-order Tailwind classes.** `nursery/useSortedClasses` is an error and also sorts the string arguments to `cn()`. Sorter output such as `font-bold text-2xl text-base-content` or `border-base-content/5 border-t` is correct. Write the classes in any order, run the formatter, leave the result.
|
|
11
|
+
- **Never `throw new Error`.** Throw `new Err("<module>.error.<key>")` and register the key as `[en, ko]` in that module's dictionary `.error({})`. Import `Err` from `"../dict"` on the server and from `"@libs/<lib>/client"` or `"@apps/<app>/client"` in UI. `no-throw-raw-error.grit` exempts `*.test.ts`, `*.spec.ts`, `*.constant.ts`, `common/**`, and `apps/akan/env/**` — `common/` and `env/` have no legal `Err` import path, so keep throwing code out of them.
|
|
12
12
|
- **Never import a third-party package** from `page/**`, from any barrel, or from any `*.{constant,dictionary,document,service,signal,store}.ts` / `*.{Template,Unit,Util,View,Zone}.tsx` (`no-import-external-library.grit`). Re-export the symbol through a lib first. One-line re-export shims such as `libs/<lib>/base/<pkg>.ts` and `libs/<lib>/webkit/<hook>.ts` exist for exactly this reason — they are load-bearing, not cruft. Do not delete them.
|
|
13
13
|
- **`#private` is banned in exactly four file suffixes:** `*.constant.ts`, `*.document.ts`, `*.service.ts`, and `*.store.ts` (`no-js-private-class-method.grit`). The rule is scoped by file path, not by class shape, so `#private` remains the house style everywhere under `srvkit/`, including `adapt()` adapter classes.
|
|
14
14
|
- **No `console.log` / `console.debug`.** Only `assert`, `error`, `info`, and `warn` are allowed. Server code uses the injected `this.logger.*` or `new Logger("ClassName")`.
|
|
15
|
+
- **Never return a value from a store action** (`no-return-in-store-action.grit`). Every method of a `store(...)` class dispatches through `st.do.<action>()`, which is typed `void` / `Promise<void>`, so the value is unreachable — write it into state with `this.set({ ... })`. A bare `return;` guard, a `return` inside a nested callback, a getter, and a `static` helper are all still fine.
|
|
15
16
|
- **Never redeclare a generated CRUD endpoint name** in `*.signal.ts` (`no-redeclare-predefined-endpoint.grit`).
|
|
16
17
|
- **No deep imports past a barrel** (`no-deep-internal-import.grit`). Cross-module constant references such as `../map/map.constant` are the sanctioned exception.
|
|
17
18
|
- **Server-component discipline** is enforced on `page/**`, `*.Unit.tsx`, and `*.View.tsx` (`no-import-client-functions.grit`, `no-use-client-in-server.grit`, `non-scalar-props-restricted.grit`).
|
|
@@ -45,6 +45,7 @@ Fixed order: `XFilter extends from(...)` → `X extends by(...)` → `XModel ext
|
|
|
45
45
|
- The body is three lines: `await fetch.X` → `this.setX(...)` → toast. The optimistic shape is mutate the client model, `void fetch.*`, then commit.
|
|
46
46
|
- Use `this.pick(...)` when the value must exist, `this.get()` when it may not, and `this.set({...})` to write.
|
|
47
47
|
- Mutate lists through the collection API (`this.set({ xList: xList.set(x).save() })`), not array spread.
|
|
48
|
+
- An action returns nothing — `st.do.<action>()` is typed `void` / `Promise<void>`, so hand the result to `this.set({...})` rather than returning it (`no-return-in-store-action.grit`); a bare `return;` guard stays fine.
|
|
48
49
|
- **Never `import type { RootStore } from "../st"`** — it crashes `akan build` with a Bun SSR segfault.
|
|
49
50
|
- Store actions do not `try/catch`; let the framework toast the `Err`.
|
|
50
51
|
|
|
@@ -56,3 +56,44 @@ alwaysApply: false
|
|
|
56
56
|
- Declare an image/file field as a relation to `File`: `image: field(File).optional()` for one, `images: field([File])` for many (see `libs/shared/lib/user/user.constant.ts`, `libs/shared/lib/banner/banner.constant.ts`).
|
|
57
57
|
- The store then auto-generates an `upload<Field>On<Model>(fileList)` action that calls the framework upload mutation and polls file status until it leaves `"uploading"` (`pkgs/akanjs/store/action.ts`).
|
|
58
58
|
- Storage is wired through the `StorageAdaptor` DI role (default `BlobStorage`, `pkgs/akanjs/service/predefinedAdaptor/storage.adaptor.ts`); the reference implementation is the `file` lib (`libs/shared/lib/file/*`). Do not hand-roll data-URL fallbacks.
|
|
59
|
+
|
|
60
|
+
### Cascade Remove — the `cascade` option
|
|
61
|
+
|
|
62
|
+
**The value names the direction, and getting it wrong is a data loss.** The two actions can sit on the same field
|
|
63
|
+
shape, so `cascade` never means "related" — it means one of exactly these:
|
|
64
|
+
|
|
65
|
+
- `removeRef` — *when I am removed, remove what this field points at.* Declared on the relation the owner holds:
|
|
66
|
+
`image: field(File, { cascade: "removeRef" })`, arrays included. Only a relation accepts it; a primitive, a bare
|
|
67
|
+
`ID`, and a scalar each fail the class build, because none of them names a document to remove.
|
|
68
|
+
- `removeWith` — *when what this field points at is removed, remove me.* Declared on the child's own reference to
|
|
69
|
+
its owner, so the owner never learns about its children and a lib model can be extended by an app's. Three forms:
|
|
70
|
+
a relation (`agentSession: field(AgentSession, { cascade: "removeWith" })`), an id with `ref`
|
|
71
|
+
(`field(ID, { ref: "agentSession", cascade: "removeWith" })`), or a polymorphic id with `refPath`
|
|
72
|
+
(`field(ID, { refPath: "parentType", cascade: "removeWith" })`). An array, a Map, `ref` together with `refPath`,
|
|
73
|
+
and a field naming no owner each fail the class build.
|
|
74
|
+
- **A `refPath` must name an `enumOf` field.** A free-form owner type is unknowable at build time, so every model's
|
|
75
|
+
removal would have to sweep the polymorphic table on the chance it is the owner. The enum names the candidates and
|
|
76
|
+
the reverse index reaches only them.
|
|
77
|
+
- **A cascade goes through the target's service, never its model** — unless it provably makes no difference. The
|
|
78
|
+
service path is what runs the target's `_postRemove`, which is where a module puts the side effect the removal has
|
|
79
|
+
to carry (`FileService._postRemove` deletes the stored blob there).
|
|
80
|
+
- **Bulk is decided at boot, per target model, for both directions.** When the target has no `remove` schema hook, no
|
|
81
|
+
`_pre`/`_postRemove` (its own or a lib's), no cascade of its own, and no children, one `removeManyByQuery` leaves
|
|
82
|
+
exactly the rows the loop would, so the framework takes it. Adding a `_postRemove` to that model silently flips it
|
|
83
|
+
back to one document at a time — the boot log (`info` summary, `verbose` per edge) is the only place that shows.
|
|
84
|
+
- **The plan is sealed after every service is live**, so a `listenPost("remove")` registered in `onInit` still counts
|
|
85
|
+
and a `removeRef` target the app never mounted fails the boot rather than the first removal. An unmounted
|
|
86
|
+
`removeWith` owner fails the boot too; an unmounted `refPath` candidate only warns, since that list spans optional
|
|
87
|
+
modules by design.
|
|
88
|
+
- **Nothing checks whether another document still references the same target.** `File` in particular is deduped by
|
|
89
|
+
`origin`, so two parents can share one row; declaring `removeRef` says the field owns its target exclusively, and
|
|
90
|
+
that judgement is the declaring model's to make.
|
|
91
|
+
- Removal is soft (`removedAt`) but the storage delete a `_postRemove` performs is not — a cascade is not
|
|
92
|
+
restorable, and reviving the owner does not revive what went with it.
|
|
93
|
+
- A `removeWith` declaration **auto-creates its index** (`{ removedAt, fk }`, or `{ removedAt, typeKey, fk }` when
|
|
94
|
+
polymorphic). Every non-base field lives in the `_doc` JSON column, so the lookup would otherwise scan the table
|
|
95
|
+
on every owner removal.
|
|
96
|
+
- **Query-level removes fire no hooks and therefore no cascade.** `removeManyByQuery` / `updateManyByQuery`, the generated `remove<Filter>` / `update<Filter>`, and the facade's `removeById` / `updateById` stamp
|
|
97
|
+
`removedAt` in one atomic UPDATE, so nothing downstream runs. Remove one document at a time when it cascades.
|
|
98
|
+
- Cascades are **idempotent**: `removedAt IS NULL` is ANDed into every query-level write, so a retry after a partial
|
|
99
|
+
failure re-stamps nothing. Cycles are cut by a visited set carried down the whole chain, with a depth cap of 16.
|
|
@@ -261,7 +261,8 @@ final fallback when no CLI command covers the change.
|
|
|
261
261
|
| Use JS `#private` in `*.constant.ts`, `*.document.ts`, `*.service.ts`, or `*.store.ts` | `no-js-private-class-method.grit` bans `#private` in exactly those four file suffixes. The rule is scoped by file path, not class shape — `#private` stays the house style under `srvkit/`, including `adapt()` classes. | `private _methodName()` in those four files; `#methodName()` in `srvkit/` |
|
|
262
262
|
| Use `console.log()` | Biome lint forbids `console.log`. Only `console.error`, `console.info`, `console.warn` are allowed. | Use one of the three allowed console methods, or `this.logger.*` / `new Logger("ClassName")` on the server |
|
|
263
263
|
| Write a `//!` marker in `ui/`, `webkit/`, `common/`, `page/**/*.tsx`, `*.constant.ts`, `*.store.ts`, or a module component file | `no-bang-comment-in-client.grit` bans it. Bun classifies `//!` and `/*!` as legal comments and keeps them through minification, so the note ships to every visitor. | `// FIXME:` in browser-reachable code; `//!` stays legal in server, `srvkit/`, and CLI files |
|
|
264
|
-
| `
|
|
264
|
+
| `return` a value from a store action | `no-return-in-store-action.grit` bans it. Every method of a `store(...)` class dispatches through `st.do.<action>()`, which is typed `void` / `Promise<void>`, so the value never reaches the caller. | `this.set({ ... })` with the result; a bare `return;` guard, a `return` inside a nested callback, a getter, and a `static` helper all stay legal |
|
|
265
|
+
| `throw new Error("...")` | `no-throw-raw-error.grit` bans raw errors outside tests, `*.constant.ts`, `common/`, and `apps/akan/env/`. Raw errors carry no dictionary key, so they cannot be localized or toasted. | `throw new Err("task.error.<key>")` plus an `[en, ko]` entry in the module dictionary's `.error({})` |
|
|
265
266
|
| Hand-order Tailwind classes, or reorder them to "fix" a diff | `useSortedClasses` is an error and also sorts the string arguments to `cn()`. Sorter output like `font-bold text-2xl` looks wrong but is correct. | Write classes in any order and let `akan lint` sort them |
|
|
266
267
|
| A colour outside the semantic vocabulary — `bg-red-500`, `bg-[#3b82f6]`, `btn-primary`, `text-base-content`, `style={{ color: "#fff" }}` | The theme closes the vocabulary, so these produce **no CSS at all** — the element renders unstyled, and without the lint rules there is no error and no warning either. Raw-palette, arbitrary-colour, daisyUI-legacy and inline-colour rules all catch this. | Semantic tokens: `bg-primary`, `text-foreground/70`, `border-border`. A genuinely fixed colour takes a `// biome-ignore lint/plugin: <reason>` |
|
|
267
268
|
| `import` a third-party package inside a page, a barrel, or a module file | `no-import-external-library.grit` covers `page/**`, all barrels, and every `*.{constant,dictionary,document,service,signal,store}.ts` and `*.{Template,Unit,Util,View,Zone}.tsx`. | Re-export the symbol from a one-line shim in `base/`, `webkit/`, or `ui/` first, then import that |
|
|
@@ -143,7 +143,8 @@
|
|
|
143
143
|
"!**/*.spec.ts",
|
|
144
144
|
"!**/*.spec.tsx",
|
|
145
145
|
"!**/*.constant.ts",
|
|
146
|
-
"!**/common/**"
|
|
146
|
+
"!**/common/**",
|
|
147
|
+
"!apps/akan/env/**"
|
|
147
148
|
],
|
|
148
149
|
"plugins": ["./node_modules/@akanjs/devkit/lint/no-throw-raw-error.grit"]
|
|
149
150
|
},
|
|
@@ -162,6 +163,10 @@
|
|
|
162
163
|
"includes": ["**/*.constant.ts", "**/*.document.ts", "**/*.service.ts", "**/*.store.ts"],
|
|
163
164
|
"plugins": ["./node_modules/@akanjs/devkit/lint/no-js-private-class-method.grit"]
|
|
164
165
|
},
|
|
166
|
+
{
|
|
167
|
+
"includes": ["**/*.store.ts"],
|
|
168
|
+
"plugins": ["./node_modules/@akanjs/devkit/lint/no-return-in-store-action.grit"]
|
|
169
|
+
},
|
|
165
170
|
{
|
|
166
171
|
"includes": ["**/*.signal.ts"],
|
|
167
172
|
"plugins": ["./node_modules/@akanjs/devkit/lint/no-redeclare-predefined-endpoint.grit"]
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
WorkflowRunner
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-5pmx7bkg.js";
|
|
5
5
|
import {
|
|
6
6
|
PrimitiveScript
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-bz2sfzzt.js";
|
|
8
8
|
import {
|
|
9
9
|
ModuleScript
|
|
10
|
-
} from "./index-
|
|
11
|
-
import"./index-
|
|
10
|
+
} from "./index-vtj3zps1.js";
|
|
11
|
+
import"./index-4hek879p.js";
|
|
12
12
|
import {
|
|
13
13
|
ScalarScript
|
|
14
|
-
} from "./index-
|
|
14
|
+
} from "./index-gmy45vz2.js";
|
|
15
15
|
import"./index-ss469dec.js";
|
|
16
16
|
import"./index-0cj2zxbm.js";
|
|
17
|
-
import"./index-
|
|
17
|
+
import"./index-mssqn2sq.js";
|
|
18
18
|
import {
|
|
19
19
|
createWorkflowStepRegistry
|
|
20
|
-
} from "./index-
|
|
21
|
-
import"./index-
|
|
20
|
+
} from "./index-2c3e2xh8.js";
|
|
21
|
+
import"./index-7myvn0f0.js";
|
|
22
22
|
import {
|
|
23
23
|
Workspace,
|
|
24
24
|
command,
|
|
25
25
|
script
|
|
26
|
-
} from "./index-
|
|
27
|
-
import"./index-
|
|
26
|
+
} from "./index-6rhabeev.js";
|
|
27
|
+
import"./index-vg0sj9nc.js";
|
|
28
28
|
import"./index-mxvakhsm.js";
|
|
29
29
|
import"./index-xys926f2.js";
|
|
30
30
|
import"./index-67546d0j.js";
|
|
@@ -1,48 +1,48 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
ContextScript
|
|
4
|
-
} from "./index-
|
|
5
|
-
import"./index-
|
|
6
|
-
import"./index-
|
|
7
|
-
import"./index-
|
|
8
|
-
import"./index-
|
|
9
|
-
import"./index-
|
|
4
|
+
} from "./index-w6wbb612.js";
|
|
5
|
+
import"./index-ztpw544k.js";
|
|
6
|
+
import"./index-5pmx7bkg.js";
|
|
7
|
+
import"./index-bz2sfzzt.js";
|
|
8
|
+
import"./index-vtj3zps1.js";
|
|
9
|
+
import"./index-4hek879p.js";
|
|
10
10
|
import {
|
|
11
11
|
CloudScript
|
|
12
|
-
} from "./index-
|
|
12
|
+
} from "./index-js368gk9.js";
|
|
13
13
|
import {
|
|
14
14
|
getLatestPackageVersion,
|
|
15
15
|
getNpmRegistryUrl
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-p3f4q532.js";
|
|
17
17
|
import {
|
|
18
18
|
PackageScript
|
|
19
|
-
} from "./index-
|
|
20
|
-
import"./index-
|
|
19
|
+
} from "./index-azv0xjb5.js";
|
|
20
|
+
import"./index-gmy45vz2.js";
|
|
21
21
|
import"./index-ss469dec.js";
|
|
22
|
-
import"./index-
|
|
22
|
+
import"./index-xhgtkekh.js";
|
|
23
23
|
import {
|
|
24
24
|
GlobalConfig
|
|
25
25
|
} from "./index-0cj2zxbm.js";
|
|
26
26
|
import {
|
|
27
27
|
AgentScript
|
|
28
|
-
} from "./index-
|
|
29
|
-
import"./index-
|
|
30
|
-
import"./index-
|
|
31
|
-
import"./index-
|
|
28
|
+
} from "./index-gex7c8kd.js";
|
|
29
|
+
import"./index-mssqn2sq.js";
|
|
30
|
+
import"./index-2c3e2xh8.js";
|
|
31
|
+
import"./index-7myvn0f0.js";
|
|
32
32
|
import {
|
|
33
33
|
ApplicationScript
|
|
34
|
-
} from "./index-
|
|
34
|
+
} from "./index-5dw57f0d.js";
|
|
35
35
|
import"./index-76rn3g2c.js";
|
|
36
36
|
import {
|
|
37
37
|
LibraryScript
|
|
38
|
-
} from "./index-
|
|
38
|
+
} from "./index-a1e0j63x.js";
|
|
39
39
|
import {
|
|
40
40
|
Exec,
|
|
41
41
|
Workspace,
|
|
42
42
|
command,
|
|
43
43
|
runner,
|
|
44
44
|
script
|
|
45
|
-
} from "./index-
|
|
45
|
+
} from "./index-6rhabeev.js";
|
|
46
46
|
import"./index-fgc8r6dj.js";
|
|
47
47
|
import {
|
|
48
48
|
ThemeValidator,
|
|
@@ -59,7 +59,7 @@ import {
|
|
|
59
59
|
collectScopeRecipeSources,
|
|
60
60
|
extractAgentBlock,
|
|
61
61
|
renderScopeAgentBlock
|
|
62
|
-
} from "./index-
|
|
62
|
+
} from "./index-vg0sj9nc.js";
|
|
63
63
|
import"./index-mxvakhsm.js";
|
|
64
64
|
import {
|
|
65
65
|
collectRecipeSources,
|