@g3nomaly/ui 0.3.2 → 0.3.4

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 (125) hide show
  1. package/README.md +145 -0
  2. package/dist/cli/adapter.d.ts +14 -6
  3. package/dist/cli/adapter.d.ts.map +1 -1
  4. package/dist/cli/adapter.js +23 -18
  5. package/dist/cli/adapter.js.map +1 -1
  6. package/dist/cli/afterInstall.d.ts +26 -0
  7. package/dist/cli/afterInstall.d.ts.map +1 -0
  8. package/dist/cli/afterInstall.js +54 -0
  9. package/dist/cli/afterInstall.js.map +1 -0
  10. package/dist/cli/commands/add.d.ts +8 -2
  11. package/dist/cli/commands/add.d.ts.map +1 -1
  12. package/dist/cli/commands/add.js +9 -4
  13. package/dist/cli/commands/add.js.map +1 -1
  14. package/dist/cli/commands/index.d.ts +1 -0
  15. package/dist/cli/commands/index.d.ts.map +1 -1
  16. package/dist/cli/commands/index.js +1 -0
  17. package/dist/cli/commands/index.js.map +1 -1
  18. package/dist/cli/commands/init.d.ts +16 -5
  19. package/dist/cli/commands/init.d.ts.map +1 -1
  20. package/dist/cli/commands/init.js +59 -13
  21. package/dist/cli/commands/init.js.map +1 -1
  22. package/dist/cli/commands/ls.d.ts +1 -1
  23. package/dist/cli/commands/manifest.js +1 -1
  24. package/dist/cli/commands/manifest.js.map +1 -1
  25. package/dist/cli/commands/source.d.ts +2 -1
  26. package/dist/cli/commands/source.d.ts.map +1 -1
  27. package/dist/cli/commands/source.js +29 -2
  28. package/dist/cli/commands/source.js.map +1 -1
  29. package/dist/cli/commands/sourceInit.d.ts +9 -0
  30. package/dist/cli/commands/sourceInit.d.ts.map +1 -0
  31. package/dist/cli/commands/sourceInit.js +77 -0
  32. package/dist/cli/commands/sourceInit.js.map +1 -0
  33. package/dist/cli/commands/update.d.ts +10 -3
  34. package/dist/cli/commands/update.d.ts.map +1 -1
  35. package/dist/cli/commands/update.js +9 -4
  36. package/dist/cli/commands/update.js.map +1 -1
  37. package/dist/cli/index.js +15 -5
  38. package/dist/cli/index.js.map +1 -1
  39. package/dist/cli/npmDependencies.d.ts +11 -0
  40. package/dist/cli/npmDependencies.d.ts.map +1 -0
  41. package/dist/cli/npmDependencies.js +67 -0
  42. package/dist/cli/npmDependencies.js.map +1 -0
  43. package/dist/cli/packageFiles.d.ts +15 -0
  44. package/dist/cli/packageFiles.d.ts.map +1 -0
  45. package/dist/cli/packageFiles.js +54 -0
  46. package/dist/cli/packageFiles.js.map +1 -0
  47. package/dist/cli/themeTokens.d.ts +12 -0
  48. package/dist/cli/themeTokens.d.ts.map +1 -0
  49. package/dist/cli/themeTokens.js +52 -0
  50. package/dist/cli/themeTokens.js.map +1 -0
  51. package/dist/packages/dependencies.d.ts +44 -0
  52. package/dist/packages/dependencies.d.ts.map +1 -0
  53. package/dist/packages/dependencies.js +60 -0
  54. package/dist/packages/dependencies.js.map +1 -0
  55. package/dist/packages/install.d.ts +10 -0
  56. package/dist/packages/install.d.ts.map +1 -0
  57. package/dist/packages/install.js +21 -0
  58. package/dist/packages/install.js.map +1 -0
  59. package/dist/registry/adapters/shadcn.adapter.d.ts +32 -7
  60. package/dist/registry/adapters/shadcn.adapter.d.ts.map +1 -1
  61. package/dist/registry/adapters/shadcn.adapter.js +75 -20
  62. package/dist/registry/adapters/shadcn.adapter.js.map +1 -1
  63. package/dist/registry/adapters/shadcnImports.d.ts +10 -0
  64. package/dist/registry/adapters/shadcnImports.d.ts.map +1 -0
  65. package/dist/registry/adapters/shadcnImports.js +18 -0
  66. package/dist/registry/adapters/shadcnImports.js.map +1 -0
  67. package/dist/registry/componentsJson.d.ts +3 -1
  68. package/dist/registry/componentsJson.d.ts.map +1 -1
  69. package/dist/registry/componentsJson.js +15 -1
  70. package/dist/registry/componentsJson.js.map +1 -1
  71. package/dist/registry/index.d.ts +1 -1
  72. package/dist/registry/index.d.ts.map +1 -1
  73. package/dist/registry/index.js +1 -1
  74. package/dist/registry/index.js.map +1 -1
  75. package/dist/registry/manifest.d.ts +2 -13
  76. package/dist/registry/manifest.d.ts.map +1 -1
  77. package/dist/registry/manifest.js +4 -76
  78. package/dist/registry/manifest.js.map +1 -1
  79. package/dist/registry/packageExports.d.ts +9 -0
  80. package/dist/registry/packageExports.d.ts.map +1 -0
  81. package/dist/registry/packageExports.js +50 -0
  82. package/dist/registry/packageExports.js.map +1 -0
  83. package/dist/registry/readSource.d.ts +4 -2
  84. package/dist/registry/readSource.d.ts.map +1 -1
  85. package/dist/registry/readSource.js +27 -3
  86. package/dist/registry/readSource.js.map +1 -1
  87. package/dist/registry/types.d.ts +86 -3
  88. package/dist/registry/types.d.ts.map +1 -1
  89. package/dist/registry/types.js +46 -3
  90. package/dist/registry/types.js.map +1 -1
  91. package/dist/sources/builtins.d.ts +1 -5
  92. package/dist/sources/builtins.d.ts.map +1 -1
  93. package/dist/sources/builtins.js +2 -7
  94. package/dist/sources/builtins.js.map +1 -1
  95. package/dist/theme/cssVars.d.ts +30 -0
  96. package/dist/theme/cssVars.d.ts.map +1 -0
  97. package/dist/theme/cssVars.js +92 -0
  98. package/dist/theme/cssVars.js.map +1 -0
  99. package/dist/theme/detectCssFile.d.ts +9 -0
  100. package/dist/theme/detectCssFile.d.ts.map +1 -0
  101. package/dist/theme/detectCssFile.js +41 -0
  102. package/dist/theme/detectCssFile.js.map +1 -0
  103. package/package.json +8 -21
  104. package/template/build.ts +25 -0
  105. package/template/package.json +18 -0
  106. package/template/src/components/example/Example.css +20 -0
  107. package/template/src/components/example/Example.tsx +26 -0
  108. package/template/src/components/example/example.meta.ts +61 -0
  109. package/dist/components/basic/Card.css +0 -32
  110. package/dist/components/basic/Card.debug.ts +0 -5
  111. package/dist/components/basic/Card.tsx +0 -31
  112. package/dist/components/basic/CardFooter.css +0 -16
  113. package/dist/components/basic/CardFooter.debug.ts +0 -5
  114. package/dist/components/basic/CardFooter.tsx +0 -29
  115. package/dist/components/basic/CardHeader.css +0 -14
  116. package/dist/components/basic/CardHeader.debug.ts +0 -5
  117. package/dist/components/basic/CardHeader.tsx +0 -29
  118. package/dist/components/basic/card.meta.ts +0 -14
  119. package/dist/components/basic/cardfooter.meta.ts +0 -14
  120. package/dist/components/basic/cardheader.meta.ts +0 -14
  121. package/dist/components/input/Button.css +0 -34
  122. package/dist/components/input/Button.debug.ts +0 -5
  123. package/dist/components/input/Button.tsx +0 -28
  124. package/dist/components/input/button.meta.ts +0 -14
  125. package/dist/components.json +0 -138
@@ -8,12 +8,16 @@ import { configExists, loadConfig, resolveProjectRoot, saveConfig } from "@g3nom
8
8
  import { entries as storeEntries, unregister } from "@g3nomaly/core/registry";
9
9
  import { StepKind, c, orExit, runDialogue, runDialogueValue } from "@g3nomaly/core/cli";
10
10
  import { loadInstallManifest, saveInstallManifest } from "@g3nomaly/core/installer";
11
- import { migrateLegacyManifest, uiManifestPath } from "../../registry/manifest";
11
+ import { readDeclaredDependencies } from "@g3nomaly/core/sources";
12
+ import { SHADCN_SOURCE, uiManifestPath } from "../../registry/manifest";
12
13
  import { ComponentMetaSchema } from "../../registry/types";
14
+ import { detectCssFile } from "../../theme/detectCssFile";
13
15
  const UiInitAnswersSchema = z.object({
14
16
  componentsDir: z.string().min(1),
15
17
  includeDebugFiles: z.boolean(),
16
18
  includeMetaFiles: z.boolean(),
19
+ cssFile: z.string().optional(),
20
+ useShadcn: z.boolean().optional(),
17
21
  });
18
22
  const reconfigureDialogue = {
19
23
  steps: {
@@ -52,6 +56,19 @@ export const initDialogue = {
52
56
  kind: StepKind.Confirm,
53
57
  message: "Include .meta.ts files when installing components?",
54
58
  initial: ({ settings }) => settings.includeMetaFiles,
59
+ next: "cssFile",
60
+ },
61
+ cssFile: {
62
+ kind: StepKind.Text,
63
+ message: "Global stylesheet that components add their theme tokens to (empty for none)?",
64
+ initial: ({ settings, detectedCssFile }) => settings.cssFile ?? detectedCssFile ?? "",
65
+ next: "useShadcn",
66
+ },
67
+ useShadcn: {
68
+ kind: StepKind.Confirm,
69
+ message: "shadcn is in package.json. Install shadcn components with g3n-ui too?",
70
+ initial: true,
71
+ when: ({ shadcnInstalled }) => shadcnInstalled,
55
72
  },
56
73
  },
57
74
  };
@@ -65,7 +82,7 @@ function boolLabel(v) {
65
82
  return v ? chalk.green("true") : chalk.dim("false");
66
83
  }
67
84
  /**
68
- * @brief One printed line per g3nui setting.
85
+ * @brief One printed line per ui setting.
69
86
  *
70
87
  * @param answers - The settings to print.
71
88
  */
@@ -74,12 +91,26 @@ function settingsLines(answers) {
74
91
  ` componentsDir: ${c.dir(answers.componentsDir)}`,
75
92
  ` includeDebugFiles: ${boolLabel(answers.includeDebugFiles)}`,
76
93
  ` includeMetaFiles: ${boolLabel(answers.includeMetaFiles)}`,
94
+ ` cssFile: ${answers.cssFile === undefined ? chalk.dim("none") : c.file(answers.cssFile)}`,
95
+ ` shadcn: ${boolLabel(answers.useShadcn === true)}`,
77
96
  ];
78
97
  }
98
+ /**
99
+ * @brief The registered packages after init: shadcn added or dropped as answered, the rest kept.
100
+ *
101
+ * @param current - Packages registered now, e.g. `["shadcn"]`.
102
+ * @param useShadcn - The answer; `undefined` keeps `current`.
103
+ * @returns The packages to save, or `undefined` when nothing changes.
104
+ */
105
+ function registeredPackagesAfter(current, useShadcn) {
106
+ if (useShadcn === undefined || useShadcn === current.includes(SHADCN_SOURCE))
107
+ return undefined;
108
+ return useShadcn ? [...current, SHADCN_SOURCE] : current.filter((name) => name !== SHADCN_SOURCE);
109
+ }
79
110
  /**
80
111
  * @brief The init answers that keep the current settings.
81
112
  *
82
- * @param settings - The current g3nui settings.
113
+ * @param settings - The current ui settings.
83
114
  * @returns Answers equal to the current settings.
84
115
  */
85
116
  function currentAnswers(settings) {
@@ -87,16 +118,20 @@ function currentAnswers(settings) {
87
118
  componentsDir: settings.componentsDir,
88
119
  includeDebugFiles: settings.includeDebugFiles,
89
120
  includeMetaFiles: settings.includeMetaFiles,
121
+ cssFile: settings.cssFile,
122
+ useShadcn: settings.registeredPackages.includes(SHADCN_SOURCE),
90
123
  };
91
124
  }
92
125
  /**
93
- * @brief Initializes the g3nui config in this project.
126
+ * @brief Initializes the ui config in this project. The global stylesheet is detected and offered.
127
+ * When the project's `package.json` lists shadcn, shadcn components are offered too: after asking, or
128
+ * without asking when the install dir is preset.
94
129
  *
95
130
  * @param options - Force flag, install dir and preset answers.
96
131
  * @param deps - Test injection.
97
132
  */
98
133
  export async function initCommand(options = {}, deps = {}) {
99
- p.intro(chalk.bold.cyan("g3nui init"));
134
+ p.intro(chalk.bold.cyan("g3n-ui init"));
100
135
  const projectRoot = (deps.resolveProjectRoot ?? resolveProjectRoot)();
101
136
  if (projectRoot === null) {
102
137
  console.error(chalk.red("Not inside a git repository — g3n projects are anchored to a repo. Run `git init` first."));
@@ -105,12 +140,19 @@ export async function initCommand(options = {}, deps = {}) {
105
140
  }
106
141
  const exists = await configExists(projectRoot);
107
142
  const config = await loadConfig(projectRoot);
143
+ const shadcnInstalled = readDeclaredDependencies(projectRoot)[SHADCN_SOURCE] !== undefined;
144
+ const detectedCssFile = detectCssFile(projectRoot);
108
145
  const preset = options.installDir === undefined
109
146
  ? null
110
- : { ...currentAnswers(config.g3nui.settings), componentsDir: options.installDir };
147
+ : {
148
+ ...currentAnswers(config.ui.settings),
149
+ componentsDir: options.installDir,
150
+ cssFile: config.ui.settings.cssFile ?? detectedCssFile,
151
+ ...(shadcnInstalled ? { useShadcn: true } : {}),
152
+ };
111
153
  if (exists && !options.force && preset === null) {
112
154
  console.log(chalk.bold("Current config:"));
113
- for (const line of settingsLines(currentAnswers(config.g3nui.settings)))
155
+ for (const line of settingsLines(currentAnswers(config.ui.settings)))
114
156
  console.log(line);
115
157
  console.log();
116
158
  const reconfigure = await runDialogueValue(reconfigureDialogue, {}, options.answers);
@@ -124,18 +166,18 @@ export async function initCommand(options = {}, deps = {}) {
124
166
  answers = preset;
125
167
  }
126
168
  else {
127
- const record = await runDialogue(initDialogue, { settings: config.g3nui.settings }, options.answers);
169
+ const record = await runDialogue(initDialogue, { settings: config.ui.settings, shadcnInstalled, detectedCssFile }, options.answers);
128
170
  if (typeof record === "symbol") {
129
171
  p.outro(chalk.dim("Init cancelled."));
130
172
  return;
131
173
  }
132
- answers = UiInitAnswersSchema.parse(record);
174
+ const parsed = UiInitAnswersSchema.parse(record);
175
+ answers = { ...parsed, cssFile: parsed.cssFile?.trim() || undefined };
133
176
  }
134
177
  // A changed install dir orphans everything the old manifest tracks —
135
178
  // confirm, then clear the manifest so stale entries cannot resurrect.
136
- const oldSettings = config.g3nui.settings;
179
+ const oldSettings = config.ui.settings;
137
180
  if (exists && oldSettings.componentsDir !== answers.componentsDir) {
138
- await migrateLegacyManifest(projectRoot);
139
181
  const manifest = orExit(() => loadInstallManifest(uiManifestPath(projectRoot), ComponentMetaSchema));
140
182
  const orphaned = Object.keys(storeEntries(manifest.store)).sort();
141
183
  if (orphaned.length > 0) {
@@ -152,16 +194,20 @@ export async function initCommand(options = {}, deps = {}) {
152
194
  saveInstallManifest(manifest, ComponentMetaSchema);
153
195
  }
154
196
  }
197
+ const registeredPackages = registeredPackagesAfter(oldSettings.registeredPackages, answers.useShadcn);
155
198
  await saveConfig(projectRoot, {
156
- g3nui: {
199
+ ui: {
157
200
  settings: {
158
201
  componentsDir: answers.componentsDir,
159
202
  includeDebugFiles: answers.includeDebugFiles,
160
203
  includeMetaFiles: answers.includeMetaFiles,
204
+ ...(answers.cssFile === undefined ? {} : { cssFile: answers.cssFile }),
205
+ ...(registeredPackages === undefined ? {} : { registeredPackages }),
161
206
  },
162
207
  },
163
208
  });
164
209
  fs.mkdirSync(path.join(projectRoot, ".g3n"), { recursive: true });
165
- p.outro([`Config written to ${c.file(".g3n.config.json")}`, ...settingsLines(answers)].join("\n"));
210
+ const saved = { ...answers, useShadcn: answers.useShadcn ?? oldSettings.registeredPackages.includes(SHADCN_SOURCE) };
211
+ p.outro([`Config written to ${c.file(".g3n.config.json")}`, ...settingsLines(saved)].join("\n"));
166
212
  }
167
213
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import type { ProjectDeps } from "../adapter";
4
4
  * @brief Options of `lsCommand`, on top of the core list options.
5
5
  *
6
6
  * @property installed - List what the manifest records instead of what the sources offer.
7
- * @property source - Only the components of this source, e.g. `g3nui`.
7
+ * @property source - Only the components of this source, e.g. `g3n-ui`.
8
8
  */
9
9
  export interface LsOptions extends LSOptions {
10
10
  installed?: boolean;
@@ -43,7 +43,7 @@ export async function manifestCommand(deps = {}) {
43
43
  process.exit(1);
44
44
  }
45
45
  console.log();
46
- console.log(`${sym.search} Scanning ${c.dir(config.g3nui.settings.componentsDir)}...`);
46
+ console.log(`${sym.search} Scanning ${c.dir(config.ui.settings.componentsDir)}...`);
47
47
  console.log();
48
48
  const diskFiles = await glob("**/*", { cwd: target.installDir, nodir: true, absolute: false });
49
49
  const registry = await openComponentRegistry(project, fileFlags(project));
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/cli/commands/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../src/cli/commands/manifest.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,8 @@ export interface SourceAddOptions {
12
12
  /**
13
13
  * @brief Registers a git repository, npm package or local folder holding a built
14
14
  * `dist/components.json` as a component source, after checking it offers at
15
- * least one component.
15
+ * least one component. An npm package must be in the project's `package.json`
16
+ * first, so `bun install` decides its version for every teammate.
16
17
  *
17
18
  * @param input - The source as typed, e.g. `owner/repo`, `npm:@scope/ui` or `./dist`.
18
19
  * @param options - Name and ref of the source.
@@ -1 +1 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/source.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAG,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3H;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7G;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhI"}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/source.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAG,MAAM,CAAC;CACf;AAqBD;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ3H;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7G;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhI"}
@@ -1,10 +1,32 @@
1
1
  // packages/ui/src/cli/commands/source.ts
2
- import { addSourceEntries, lsSources, removeSourceEntries } from "@g3nomaly/core/cli";
2
+ import { addSourceEntries, c, lineError, lsSources, removeSourceEntries } from "@g3nomaly/core/cli";
3
+ import { parseSourceSpec, readDeclaredDependencies } from "@g3nomaly/core/sources";
3
4
  import { openUiProject, uiSourceContext } from "../adapter";
5
+ /**
6
+ * @brief The npm package a source names when the project's `package.json` does not declare it.
7
+ *
8
+ * @param projectRoot - Absolute project root holding the app's `package.json`.
9
+ * @param input - The source as typed.
10
+ * @returns The package name, or `null` when the source is not npm, is declared, or does not parse;
11
+ * `addSourceEntries` reports an input that does not parse.
12
+ */
13
+ function undeclaredNpmPackage(projectRoot, input) {
14
+ let spec;
15
+ try {
16
+ spec = parseSourceSpec(input);
17
+ }
18
+ catch {
19
+ return null;
20
+ }
21
+ if (spec.kind !== "npm")
22
+ return null;
23
+ return readDeclaredDependencies(projectRoot)[spec.package] === undefined ? spec.package : null;
24
+ }
4
25
  /**
5
26
  * @brief Registers a git repository, npm package or local folder holding a built
6
27
  * `dist/components.json` as a component source, after checking it offers at
7
- * least one component.
28
+ * least one component. An npm package must be in the project's `package.json`
29
+ * first, so `bun install` decides its version for every teammate.
8
30
  *
9
31
  * @param input - The source as typed, e.g. `owner/repo`, `npm:@scope/ui` or `./dist`.
10
32
  * @param options - Name and ref of the source.
@@ -12,6 +34,11 @@ import { openUiProject, uiSourceContext } from "../adapter";
12
34
  */
13
35
  export async function sourceAddCommand(input, options = {}, deps = {}) {
14
36
  const project = await openUiProject(deps);
37
+ const pkg = undeclaredNpmPackage(project.projectRoot, input);
38
+ if (pkg !== null) {
39
+ console.error(lineError(`${c.key(pkg)} is not in package.json. Add it with ${c.cmd(`bun add -d ${pkg}`)} first, then register it.`));
40
+ process.exit(1);
41
+ }
15
42
  await addSourceEntries([project.target], input, options, uiSourceContext(project));
16
43
  }
17
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../../../src/cli/commands/source.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAc5D;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,OAAO,GAAqB,EAAE,EAAE,IAAI,GAAgB,EAAE;IAC1G,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AACrF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAO,GAAuB,EAAE,EAAE,IAAI,GAAgB,EAAE;IAC5F,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY,EAAE,OAAO,GAAwB,EAAE,EAAE,IAAI,GAAgB,EAAE;IAC/G,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,mBAAmB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../../src/cli/commands/source.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,gBAAgB,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAc5D;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,WAAmB,EAAE,KAAa;IAC9D,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACH,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,wBAAwB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACjG,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,OAAO,GAAqB,EAAE,EAAE,IAAI,GAAgB,EAAE;IAC1G,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAO,oBAAoB,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACjE,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AACrF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAO,GAAuB,EAAE,EAAE,IAAI,GAAgB,EAAE;IAC5F,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY,EAAE,OAAO,GAAwB,EAAE,EAAE,IAAI,GAAgB,EAAE;IAC/G,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,mBAAmB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AACjF,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @brief Creates a component source from the template this package ships: a package.json, a build
3
+ * script and one example component whose comments explain how a source is written. Refuses to
4
+ * overwrite a file that already exists.
5
+ *
6
+ * @param dir - Folder to create the source in, relative to the working directory; created when missing.
7
+ */
8
+ export declare function sourceInitCommand(dir?: string): void;
9
+ //# sourceMappingURL=sourceInit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceInit.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sourceInit.ts"],"names":[],"mappings":"AAsCA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAY,GAAG,IAAI,CAuCzD"}
@@ -0,0 +1,77 @@
1
+ // packages/ui/src/cli/commands/sourceInit.ts
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { z } from "zod";
5
+ import { c, lineError, lineSuccess } from "@g3nomaly/core/cli";
6
+ import { findPackageRoot, readPackageMeta } from "@g3nomaly/core/utils";
7
+ const TEMPLATE_DIR = "template";
8
+ const TemplatePackageSchema = z.looseObject({
9
+ name: z.string(),
10
+ devDependencies: z.record(z.string(), z.string()),
11
+ });
12
+ /**
13
+ * @brief Every file below a folder, as paths relative to it.
14
+ *
15
+ * @param dir - Absolute folder to list.
16
+ * @returns Relative file paths, e.g. `src/components/example/Example.tsx`.
17
+ */
18
+ function listFiles(dir) {
19
+ return fs.readdirSync(dir, { recursive: true, withFileTypes: true })
20
+ .filter((entry) => entry.isFile())
21
+ .map((entry) => path.relative(dir, path.join(entry.parentPath, entry.name)))
22
+ .sort();
23
+ }
24
+ /**
25
+ * @brief An npm package name from a folder name: lowercase, with anything npm rejects replaced by `-`.
26
+ *
27
+ * @param folder - Absolute folder the source is created in.
28
+ * @returns The name, e.g. `my-ui` for `/home/me/My UI`.
29
+ */
30
+ function packageNameFor(folder) {
31
+ const name = path.basename(folder).toLowerCase().replace(/[^a-z0-9._-]+/g, "-").replace(/^[._-]+/, "");
32
+ return name === "" ? "my-components" : name;
33
+ }
34
+ /**
35
+ * @brief Creates a component source from the template this package ships: a package.json, a build
36
+ * script and one example component whose comments explain how a source is written. Refuses to
37
+ * overwrite a file that already exists.
38
+ *
39
+ * @param dir - Folder to create the source in, relative to the working directory; created when missing.
40
+ */
41
+ export function sourceInitCommand(dir = ".") {
42
+ const target = path.resolve(dir);
43
+ const template = path.join(findPackageRoot(import.meta.dir), TEMPLATE_DIR);
44
+ const files = listFiles(template);
45
+ const existing = files.filter((file) => fs.existsSync(path.join(target, file)));
46
+ if (existing.length > 0) {
47
+ console.error(lineError(`${c.dir(target)} already has ${existing.map((f) => c.file(f)).join(", ")}, nothing written`));
48
+ process.exit(1);
49
+ }
50
+ for (const file of files) {
51
+ fs.mkdirSync(path.dirname(path.join(target, file)), { recursive: true });
52
+ fs.copyFileSync(path.join(template, file), path.join(target, file));
53
+ }
54
+ const manifestPath = path.join(target, "package.json");
55
+ const raw = JSON.parse(fs.readFileSync(manifestPath, "utf8"));
56
+ const parsed = TemplatePackageSchema.parse(raw);
57
+ const name = packageNameFor(target);
58
+ // Spread over the file as read, so its keys keep their order.
59
+ const manifest = {
60
+ ...z.record(z.string(), z.unknown()).parse(raw),
61
+ name,
62
+ devDependencies: { ...parsed.devDependencies, "@g3nomaly/ui": `^${readPackageMeta(import.meta.url).version}` },
63
+ };
64
+ fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + "\n");
65
+ const spec = /\s/.test(target) ? `"file:${target}"` : `file:${target}`;
66
+ console.log(lineSuccess(`Created the source ${c.key(name)} in ${c.dir(target)}`));
67
+ console.log([
68
+ "",
69
+ "Next steps:",
70
+ ` ${c.cmd("bun install && bun run build")} in the source`,
71
+ ` ${c.cmd(`bun add -d ${spec}`)}`,
72
+ ` ${c.cmd(`bunx @g3nomaly/ui source add npm:${name}`)} in an app`,
73
+ "",
74
+ `Start in ${c.file("src/components/example/example.meta.ts")}: its comments explain each part.`,
75
+ ].join("\n"));
76
+ }
77
+ //# sourceMappingURL=sourceInit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceInit.js","sourceRoot":"","sources":["../../../src/cli/commands/sourceInit.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,22 @@
1
1
  import type { InstallOptions } from "@g3nomaly/core/cli";
2
2
  import type { ProjectDeps } from "../adapter";
3
- /** Options of `updateCommand`: the core install options, unchanged. */
3
+ /**
4
+ * @brief Options of `updateCommand`, on top of the core install options.
5
+ *
6
+ * @property install - Add the npm packages the components need with `bun add`, instead of only reporting them.
7
+ */
4
8
  export interface UpdateOptions extends InstallOptions {
9
+ install?: boolean;
5
10
  }
6
11
  /**
7
12
  * @brief Re-installs installed components from the source each one was installed
8
13
  * from; with no names, everything installed. Files the user changed since
9
- * install are kept unless overwritten.
14
+ * install are kept unless overwritten. npm packages the updated components need
15
+ * and the app lacks are reported afterwards, or added with `install`, and
16
+ * their theme tokens are added to the app's stylesheet.
10
17
  *
11
18
  * @param names - Installed component keys to update; empty for everything installed.
12
- * @param options - Force and dry-run flags.
19
+ * @param options - Force, dry-run and install flags.
13
20
  * @param deps - Test injection.
14
21
  */
15
22
  export declare function updateCommand(names: string[], options?: UpdateOptions, deps?: ProjectDeps): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,uEAAuE;AACvE,MAAM,WAAW,aAAc,SAAQ,cAAc;CAAG;AAExD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvH"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKvH"}
@@ -1,17 +1,22 @@
1
1
  // packages/ui/src/cli/commands/update.ts
2
2
  import { updateFromSources } from "@g3nomaly/core/cli";
3
- import { UI_CONTEXT, fileFlags, openComponentRegistry, openUiProject } from "../adapter";
3
+ import { fileFlags, openComponentRegistry, openUiProject, uiInstallContext } from "../adapter";
4
+ import { afterComponentInstall } from "../afterInstall";
4
5
  /**
5
6
  * @brief Re-installs installed components from the source each one was installed
6
7
  * from; with no names, everything installed. Files the user changed since
7
- * install are kept unless overwritten.
8
+ * install are kept unless overwritten. npm packages the updated components need
9
+ * and the app lacks are reported afterwards, or added with `install`, and
10
+ * their theme tokens are added to the app's stylesheet.
8
11
  *
9
12
  * @param names - Installed component keys to update; empty for everything installed.
10
- * @param options - Force and dry-run flags.
13
+ * @param options - Force, dry-run and install flags.
11
14
  * @param deps - Test injection.
12
15
  */
13
16
  export async function updateCommand(names, options = {}, deps = {}) {
14
17
  const project = await openUiProject(deps);
15
- await updateFromSources([project.target], names, () => openComponentRegistry(project, fileFlags(project)), options, UI_CONTEXT);
18
+ const fetchedByKey = new Map();
19
+ const check = afterComponentInstall(project, fetchedByKey, { install: options.install === true, includeUnsafe: false });
20
+ await updateFromSources([project.target], names, () => openComponentRegistry(project, fileFlags(project)), options, uiInstallContext(fetchedByKey), check);
16
21
  }
17
22
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMzF;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAe,EAAE,OAAO,GAAkB,EAAE,EAAE,IAAI,GAAgB,EAAE;IACtG,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,iBAAiB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAClI,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAWxD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAe,EAAE,OAAO,GAAkB,EAAE,EAAE,IAAI,GAAgB,EAAE;IACtG,MAAM,OAAO,GAAQ,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC/D,MAAM,KAAK,GAAU,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/H,MAAM,iBAAiB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7J,CAAC"}
package/dist/cli/index.js CHANGED
@@ -9,12 +9,13 @@ import { updateCommand } from "./commands/update";
9
9
  import { lsCommand } from "./commands/ls";
10
10
  import { manifestCommand } from "./commands/manifest";
11
11
  import { sourceAddCommand, sourceLsCommand, sourceRemoveCommand } from "./commands/source";
12
+ import { sourceInitCommand } from "./commands/sourceInit";
12
13
  const program = new Command()
13
- .name("g3nui")
14
+ .name("g3n-ui")
14
15
  .description("Install components from any registered source into a project");
15
16
  program
16
17
  .command("init")
17
- .description("Initialize g3nui config in this project")
18
+ .description("Initialize the ui config in this project")
18
19
  .option("-f, --force", "Overwrite existing config without prompting")
19
20
  .option("--install-dir <path>", "Components install directory (skips interactive prompt)")
20
21
  .action(async (opts) => {
@@ -23,9 +24,15 @@ program
23
24
  const source = program
24
25
  .command("source")
25
26
  .description("Register, list and unregister the sources components are installed from");
27
+ source
28
+ .command("init [dir]")
29
+ .description("Create a component source of your own from a template, in dir (default: the current folder)")
30
+ .action((dir) => {
31
+ sourceInitCommand(dir);
32
+ });
26
33
  source
27
34
  .command("add <source>")
28
- .description("Register a git repository, npm package or local folder holding a built dist/components.json")
35
+ .description("Register a git repository, an npm package listed in package.json, or a local folder holding a built dist/components.json")
29
36
  .option("--name <name>", "Name to register it under (default: derived from the source)")
30
37
  .option("--ref <ref>", "Branch or tag to pin a git source to (default: its default branch)")
31
38
  .action(async (input, opts) => {
@@ -51,8 +58,10 @@ program
51
58
  .option("-f, --force", "Overwrite locally modified files")
52
59
  .option("--debug", "Include .debug.ts files")
53
60
  .option("--meta", "Include .meta.ts files")
61
+ .option("--install", "Add the npm packages the components need with bun add")
62
+ .option("--include-unsafe", "Also copy the files the components keep in their package, such as stores, as unsafe copies")
54
63
  .action(async (components, opts) => {
55
- await addCommand(components, { force: opts.force, debug: opts.debug, meta: opts.meta });
64
+ await addCommand(components, { force: opts.force, debug: opts.debug, meta: opts.meta, install: opts.install, includeUnsafe: opts.includeUnsafe });
56
65
  });
57
66
  program
58
67
  .command("remove [components...]")
@@ -66,8 +75,9 @@ program
66
75
  .description("Re-install installed components from the source each came from")
67
76
  .option("-f, --force", "Overwrite conflicting files without prompting")
68
77
  .option("--dry-run", "Preview changes without writing files")
78
+ .option("--install", "Add the npm packages the components need with bun add")
69
79
  .action(async (components, opts) => {
70
- await updateCommand(components, { force: opts.force, dryRun: opts.dryRun });
80
+ await updateCommand(components, { force: opts.force, dryRun: opts.dryRun, install: opts.install });
71
81
  });
72
82
  program
73
83
  .command("ls")
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { ComponentMeta } from "../registry/types";
2
+ /**
3
+ * @brief Checks the npm packages of components against the app's `package.json`, and reports or adds
4
+ * what is missing or out of range.
5
+ *
6
+ * @param projectRoot - Absolute project root holding the app's `package.json`.
7
+ * @param components - Components by key just installed or updated.
8
+ * @param install - Add the packages with `bun add` instead of only reporting them.
9
+ */
10
+ export declare function reportNpmDependencies(projectRoot: string, components: Record<string, ComponentMeta>, install: boolean): Promise<void>;
11
+ //# sourceMappingURL=npmDependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npmDependencies.d.ts","sourceRoot":"","sources":["../../src/cli/npmDependencies.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AA+CvD;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAM3I"}