@chrisluyi/daas-cli 1.3.0 → 1.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.
Files changed (3) hide show
  1. package/dist/index.js +36 -1
  2. package/package.json +3 -2
  3. package/skill.md +48 -1
package/dist/index.js CHANGED
@@ -2311,8 +2311,32 @@ async function runMain(cmd, opts = {}) {
2311
2311
  }
2312
2312
  }
2313
2313
 
2314
+ // src/index.ts
2315
+ import { createLogger as createLogger5, setLogger as setLogger5 } from "@chrisluyi/logger";
2316
+
2317
+ // src/logger/consolaTransport.ts
2318
+ function consolaTransport() {
2319
+ return (entry) => {
2320
+ switch (entry.level) {
2321
+ case "debug":
2322
+ consola.debug(entry.message, entry.context ?? "");
2323
+ break;
2324
+ case "info":
2325
+ consola.info(entry.message);
2326
+ break;
2327
+ case "warn":
2328
+ consola.warn(entry.message);
2329
+ break;
2330
+ case "error":
2331
+ consola.fatal(entry.message);
2332
+ break;
2333
+ }
2334
+ };
2335
+ }
2336
+
2314
2337
  // src/commands/build.ts
2315
2338
  import { createConfig } from "@chrisluyi/rsbuild-config";
2339
+ import { createLogger, setLogger, apiTransport } from "@chrisluyi/logger";
2316
2340
  import { createRsbuild } from "@rsbuild/core";
2317
2341
 
2318
2342
  // src/daas-config.ts
@@ -2339,7 +2363,8 @@ function readDaasConfig(cwd = process.cwd()) {
2339
2363
  configUrl: daas.configUrl,
2340
2364
  port: daas.port ?? 3000,
2341
2365
  coverage: daas.coverage,
2342
- setupFiles: daas.setupFiles
2366
+ setupFiles: daas.setupFiles,
2367
+ logUrl: daas.logUrl
2343
2368
  };
2344
2369
  }
2345
2370
 
@@ -2565,6 +2590,7 @@ var buildCommand = defineCommand({
2565
2590
  const json = args.json;
2566
2591
  try {
2567
2592
  const daasConfig = readDaasConfig();
2593
+ setLogger(createLogger([consolaTransport(), apiTransport(daasConfig.logUrl)]));
2568
2594
  const manifest = readManifest();
2569
2595
  if (!json)
2570
2596
  consola.start(`Building ${manifest.name}...`);
@@ -2622,6 +2648,7 @@ var buildCommand = defineCommand({
2622
2648
 
2623
2649
  // src/commands/dev.ts
2624
2650
  import { createConfig as createConfig2 } from "@chrisluyi/rsbuild-config";
2651
+ import { createLogger as createLogger2, setLogger as setLogger2, apiTransport as apiTransport2 } from "@chrisluyi/logger";
2625
2652
  import { createRsbuild as createRsbuild2 } from "@rsbuild/core";
2626
2653
  var devCommand = defineCommand({
2627
2654
  meta: { name: "dev", description: "Start MFE dev server" },
@@ -2641,6 +2668,7 @@ var devCommand = defineCommand({
2641
2668
  async run({ args }) {
2642
2669
  try {
2643
2670
  const daasConfig = readDaasConfig();
2671
+ setLogger2(createLogger2([consolaTransport(), apiTransport2(daasConfig.logUrl)]));
2644
2672
  const manifest = readManifest();
2645
2673
  const remoteMeta = await fetchRemoteConfig(daasConfig.configUrl, false);
2646
2674
  checkCliVersion(remoteMeta);
@@ -2698,6 +2726,9 @@ function handleError(command, e2, json) {
2698
2726
  process.exit(EXIT_CODES.GENERAL_ERROR);
2699
2727
  }
2700
2728
 
2729
+ // src/commands/info.ts
2730
+ import { createLogger as createLogger3, setLogger as setLogger3, apiTransport as apiTransport3 } from "@chrisluyi/logger";
2731
+
2701
2732
  // src/init/monorepo.ts
2702
2733
  import { existsSync as existsSync3, readFileSync as readFileSync3 } from "fs";
2703
2734
  import { dirname, resolve as resolve4 } from "path";
@@ -2738,6 +2769,7 @@ var infoCommand = defineCommand({
2738
2769
  let manifest;
2739
2770
  try {
2740
2771
  daasConfig = readDaasConfig();
2772
+ setLogger3(createLogger3([consolaTransport(), apiTransport3(daasConfig.logUrl)]));
2741
2773
  manifest = readManifest();
2742
2774
  } catch (e2) {
2743
2775
  if (json)
@@ -3441,6 +3473,7 @@ function getPackageName(cwd) {
3441
3473
 
3442
3474
  // src/commands/test.ts
3443
3475
  import { createVitestConfig } from "@chrisluyi/rsbuild-config/vitest";
3476
+ import { createLogger as createLogger4, setLogger as setLogger4, apiTransport as apiTransport4 } from "@chrisluyi/logger";
3444
3477
  import { startVitest } from "vitest/node";
3445
3478
  var testCommand = defineCommand({
3446
3479
  meta: { name: "test", description: "Run MFE tests" },
@@ -3456,6 +3489,7 @@ var testCommand = defineCommand({
3456
3489
  try {
3457
3490
  const manifest = readManifest();
3458
3491
  const daasConfig = readDaasConfig();
3492
+ setLogger4(createLogger4([consolaTransport(), apiTransport4(daasConfig.logUrl)]));
3459
3493
  const config = createVitestConfig(manifest, {
3460
3494
  coverage: daasConfig.coverage,
3461
3495
  setupFiles: daasConfig.setupFiles
@@ -3479,6 +3513,7 @@ var testCommand = defineCommand({
3479
3513
  });
3480
3514
 
3481
3515
  // src/index.ts
3516
+ setLogger5(createLogger5([consolaTransport()]));
3482
3517
  var main = defineCommand({
3483
3518
  meta: {
3484
3519
  name: "daas",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chrisluyi/daas-cli",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "daas": "./dist/index.js"
@@ -16,11 +16,12 @@
16
16
  "skill.md"
17
17
  ],
18
18
  "scripts": {
19
- "build": "bun build src/index.ts --outfile dist/index.js.tmp --target bun --external @rspack/core --external @rspack/lite-tapable --external @rsbuild/core --external @rsbuild/plugin-react --external @module-federation/rsbuild-plugin --external vitest --external @vitest/browser --external @vitest/ui --external tapable --external react-router-dom --external lightningcss --external @chrisluyi/template --external @chrisluyi/rsbuild-config && printf '%s\\n' '#!/usr/bin/env bun' | cat - dist/index.js.tmp > dist/index.js && rm dist/index.js.tmp && chmod +x dist/index.js && bun build src/test.ts --outfile dist/test.js --target bun --external vitest --external @testing-library/react --external @testing-library/user-event --external @chrisluyi/rsbuild-config",
19
+ "build": "bun build src/index.ts --outfile dist/index.js.tmp --target bun --external @rspack/core --external @rspack/lite-tapable --external @rsbuild/core --external @rsbuild/plugin-react --external @module-federation/rsbuild-plugin --external vitest --external @vitest/browser --external @vitest/ui --external tapable --external react-router-dom --external lightningcss --external @chrisluyi/template --external @chrisluyi/logger --external @chrisluyi/rsbuild-config && printf '%s\\n' '#!/usr/bin/env bun' | cat - dist/index.js.tmp > dist/index.js && rm dist/index.js.tmp && chmod +x dist/index.js && bun build src/test.ts --outfile dist/test.js --target bun --external vitest --external @testing-library/react --external @testing-library/user-event --external @chrisluyi/rsbuild-config",
20
20
  "test": "bun test --ignore 'templates/**'"
21
21
  },
22
22
  "dependencies": {
23
23
  "@clack/prompts": "^0.7.0",
24
+ "@chrisluyi/logger": "workspace:*",
24
25
  "@chrisluyi/rsbuild-config": "workspace:*",
25
26
  "@chrisluyi/template": "workspace:*",
26
27
  "@rsbuild/core": "^1.0.0",
package/skill.md CHANGED
@@ -96,13 +96,60 @@ src/
96
96
  components/App.tsx ← presentational component
97
97
  containers/AppContainer.tsx ← data/business logic wrapper
98
98
  services/index.ts ← data fetching / API calls
99
+ flows/ ← multi-step flows (optional — add when needed)
100
+ <name>/
101
+ types.ts ← TData interface
102
+ index.ts ← createFlow<TData>(...)
103
+ steps/ ← step components (useFlowData / useFlowActions)
99
104
  config/
100
105
  regions/default.ts ← region config layer
101
106
  platforms/default.ts ← platform config layer
102
107
  products/default.ts ← product config layer
103
108
  ```
104
109
 
110
+ ## Template Runtime (`@chrisluyi/template/runtime`)
111
+
112
+ Key utilities available in MFE components:
113
+
114
+ | Export | Purpose |
115
+ |---|---|
116
+ | `createApiClient` | Region-aware HTTP client (auto-injects X-Region-Id, X-Locale headers) |
117
+ | `createService` | React Query data fetching with Zod validation |
118
+ | `createStore` | Zustand UI state (per-module singleton) |
119
+ | `createForm` | Zod-validated form with regional widget injection |
120
+ | `createFlow` | Router-agnostic multi-step flow engine |
121
+ | `FlowEngine` | Component wrapper — renders current step automatically |
122
+ | `useFlow` | Hook — use when you need a custom layout (progress bar etc.) |
123
+ | `useFlowData` | Step hook — read/write the shared typed data bag |
124
+ | `useFlowActions` | Step hook — `next()`, `back()`, `isFirst`, `isLast` |
125
+ | `useRegional` | Access the full `RegionalRegistry` from any component |
126
+
127
+ ### Flow SDK quick reference
128
+
129
+ ```ts
130
+ // Define
131
+ const myFlow = createFlow<MyData>({
132
+ id: "MyFlow",
133
+ steps: [{ id: "step1", component: Step1 }, { id: "step2", component: Step2 }],
134
+ initialData: {},
135
+ })
136
+
137
+ // Mount
138
+ const registry = useRegional()
139
+ return <FlowEngine flow={myFlow} registry={registry} />
140
+
141
+ // Inside a step — no props needed
142
+ const { data, setData } = useFlowData<MyData>()
143
+ const { next, back, isLast } = useFlowActions()
144
+ ```
145
+
146
+ Regional step injection via `RegionalRegistry.flows?`:
147
+ ```ts
148
+ createRegistry(defaultRegistry, {
149
+ flows: { MyFlow: { extraSteps: [{ after: "step1", id: "extra", component: ExtraStep }] } }
150
+ })
151
+ ```
152
+
105
153
  ## Roadmap (do not suggest these — not yet implemented)
106
154
 
107
- - v1.5: `daas dev sg-foo-mb-dev` target strings for multi-region builds
108
155
  - v2+: `daas lint` — validates project structure against template conventions