@mpfrontend/ftg-cli 1.0.0 → 1.1.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.
package/DESIGN-SYNC.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Reviewed export synchronization
2
2
 
3
- CLI 1.0.0 implements explicit source onboarding plus a **finite normalized local export** profile. It does not call Figma, infer
3
+ CLI 1.1.0 implements explicit source onboarding plus a **finite normalized local export** profile. It does not call Figma, infer
4
4
  missing behavior, run an LLM, execute test commands, publish or monitor for updates. The caller must
5
5
  have implementation authority for the named consumer and separate human review for promotion.
6
6
  The baseline covers only the declared export, never an assertion that the entire Figma DLS is implemented.
package/dist/catalog.d.ts CHANGED
@@ -1,8 +1,17 @@
1
+ import { type CatalogProblem } from '@mpfrontend/i18n';
2
+ type CheckProblem = (CatalogProblem | {
3
+ code: 'UNSUPPORTED_CATALOG_FORMAT';
4
+ locale: string;
5
+ key?: never;
6
+ }) & {
7
+ catalog: string;
8
+ };
1
9
  /**
2
10
  * Checks every catalog set of an app against its locale registry: each registry locale has a catalog, each
3
11
  * catalog has exactly the base keys, every message parses and takes the base parameters, and code uses
4
12
  * every key. The registry is `localeRegistry` of `src/config/app.ts`; catalogs are the default exports of
5
- * `messages/<locale>.ts` files, read with Node's TypeScript type stripping.
13
+ * `messages/<locale>.ts` files, read with Node's TypeScript type stripping. JSON locale files are reported
14
+ * explicitly because consumers using direct property access are outside the translator contract.
6
15
  */
7
16
  export declare function catalogCheck(appDirectory: string): Promise<{
8
17
  ok: boolean;
@@ -10,11 +19,6 @@ export declare function catalogCheck(appDirectory: string): Promise<{
10
19
  defaultLocale: string;
11
20
  catalogs: string[];
12
21
  keys: number;
13
- problems: (Readonly<{
14
- code: "MISSING_LOCALE" | "UNKNOWN_LOCALE" | "MISSING_KEY" | "EXTRA_KEY" | "UNUSED_KEY" | "UNDEFINED_KEY" | "PARAMETER_MISMATCH" | "INVALID_MESSAGE";
15
- locale?: string;
16
- key?: string;
17
- }> & {
18
- catalog: string;
19
- })[];
22
+ problems: CheckProblem[];
20
23
  }>;
24
+ export {};
package/dist/catalog.js CHANGED
@@ -3,6 +3,7 @@ import { dirname, join, resolve, relative, sep } from 'node:path';
3
3
  import { pathToFileURL } from 'node:url';
4
4
  import { checkCatalogs } from '@mpfrontend/i18n';
5
5
  import { InputError } from './core.js';
6
+ const localeFile = /^([a-z]{2,3}(?:-[A-Za-z0-9]{2,8})*)\.(ts|json)$/;
6
7
  const sourceFile = /\.(?:ts|tsx|mts|cts|js|jsx|mjs)$/;
7
8
  const testFile = /\.test\.[a-z]+$/;
8
9
  const literal = /(['"`])((?:\\.|(?!\1)[^\\\n])*)\1/g;
@@ -39,37 +40,40 @@ function translatorKeys(file, source, sets) {
39
40
  }
40
41
  return keys;
41
42
  }
42
- /** Every directory named `messages` under `src`, and every source file outside them; links are not followed. */
43
+ /** Catalogs are locale files in `messages` directories. Visit neighboring sources without counting locale definitions as uses. */
43
44
  async function walk(root, directory, sets, sources) {
45
+ const parts = relative(root, directory).split(sep);
46
+ const structuralRoot = parts.length === 2 && ['app', 'features', 'entities'].includes(parts[0]);
47
+ const canContainCatalog = parts.at(-1) === 'messages' && !structuralRoot;
48
+ const files = [];
44
49
  for (const entry of await readdir(directory, { withFileTypes: true })) {
45
50
  const path = join(directory, entry.name);
46
51
  if (entry.isSymbolicLink())
47
52
  continue;
48
53
  if (entry.isDirectory()) {
49
- if (entry.name === 'generated' || entry.name === 'node_modules')
50
- continue;
51
- if (entry.name === 'messages') {
52
- const locales = {};
53
- for (const file of await readdir(path, { withFileTypes: true }))
54
- if (file.isFile() && /^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})*\.ts$/.test(file.name))
55
- locales[file.name.slice(0, -3)] = join(path, file.name);
56
- // A feature's or an entity's catalog is used within that unit; the app catalog anywhere in src.
57
- const parts = relative(root, path).split(sep);
58
- const unit = parts[0] === 'features' || parts[0] === 'entities' ? join(root, parts[0], parts[1]) : root;
59
- sets.push({ path, scope: unit, locales });
60
- }
61
- else
54
+ if (entry.name !== 'generated' && entry.name !== 'node_modules')
62
55
  await walk(root, path, sets, sources);
63
56
  }
64
- else if (entry.isFile() && sourceFile.test(entry.name) && !testFile.test(entry.name))
65
- sources.push(path);
57
+ else if (entry.isFile()) {
58
+ const locale = canContainCatalog ? localeFile.exec(entry.name) : null;
59
+ if (locale)
60
+ files.push({ code: locale[1], path, format: locale[2] });
61
+ else if (sourceFile.test(entry.name) && !testFile.test(entry.name))
62
+ sources.push(path);
63
+ }
66
64
  }
65
+ if (!files.length)
66
+ return;
67
+ // A feature's or an entity's catalog is used within that unit; the app catalog anywhere in src.
68
+ const scope = parts[0] === 'features' || parts[0] === 'entities' ? join(root, parts[0], parts[1]) : root;
69
+ sets.push({ path: directory, scope, files });
67
70
  }
68
71
  /**
69
72
  * Checks every catalog set of an app against its locale registry: each registry locale has a catalog, each
70
73
  * catalog has exactly the base keys, every message parses and takes the base parameters, and code uses
71
74
  * every key. The registry is `localeRegistry` of `src/config/app.ts`; catalogs are the default exports of
72
- * `messages/<locale>.ts` files, read with Node's TypeScript type stripping.
75
+ * `messages/<locale>.ts` files, read with Node's TypeScript type stripping. JSON locale files are reported
76
+ * explicitly because consumers using direct property access are outside the translator contract.
73
77
  */
74
78
  export async function catalogCheck(appDirectory) {
75
79
  const app = resolve(appDirectory), src = join(app, 'src');
@@ -102,20 +106,25 @@ export async function catalogCheck(appDirectory) {
102
106
  const problems = [];
103
107
  let keys = 0;
104
108
  for (const set of sets) {
109
+ const catalog = relative(app, set.path);
105
110
  const catalogs = {};
106
- for (const [code, file] of Object.entries(set.locales)) {
111
+ for (const { code, path, format } of set.files) {
107
112
  if (!registry.locales.includes(code)) {
108
- problems.push({ catalog: relative(app, set.path), code: 'UNKNOWN_LOCALE', locale: code });
113
+ problems.push({ catalog, code: 'UNKNOWN_LOCALE', locale: code });
114
+ continue;
115
+ }
116
+ if (format === 'json') {
117
+ problems.push({ catalog, code: 'UNSUPPORTED_CATALOG_FORMAT', locale: code });
109
118
  continue;
110
119
  }
111
120
  try {
112
- const value = (await import(pathToFileURL(file).href)).default;
121
+ const value = (await import(pathToFileURL(path).href)).default;
113
122
  if (!value || typeof value !== 'object' || Object.values(value).some(message => typeof message !== 'string'))
114
123
  throw new Error();
115
124
  catalogs[code] = value;
116
125
  }
117
126
  catch {
118
- problems.push({ catalog: relative(app, set.path), code: 'INVALID_MESSAGE', locale: code });
127
+ problems.push({ catalog, code: 'INVALID_MESSAGE', locale: code });
119
128
  }
120
129
  }
121
130
  const used = new Set();
@@ -127,7 +136,7 @@ export async function catalogCheck(appDirectory) {
127
136
  // A key that code asks for and the base lacks is reported only once the base itself is readable.
128
137
  const usedKeys = catalogs[registry.defaultLocale] ? requested.get(set.path) ?? [] : [];
129
138
  for (const problem of checkCatalogs({ defaultLocale: registry.defaultLocale, locales: registry.locales, catalogs, isUsed: key => used.has(key), usedKeys }))
130
- problems.push({ catalog: relative(app, set.path), ...problem });
139
+ problems.push({ catalog, ...problem });
131
140
  }
132
141
  return { ok: problems.length === 0, locales: registry.locales, defaultLocale: registry.defaultLocale, catalogs: sets.map(set => relative(app, set.path)).sort(), keys, problems };
133
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,GAAG,EAAC,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AACvC,OAAO,EAAC,aAAa,EAAkC,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAIrC,MAAM,UAAU,GAAC,kCAAkC,CAAC;AACpD,MAAM,QAAQ,GAAC,iBAAiB,CAAC;AACjC,MAAM,OAAO,GAAC,oCAAoC,CAAC;AACnD,MAAM,kBAAkB,GAAC,kFAAkF,CAAC;AAC5G,MAAM,YAAY,GAAC,sEAAsE,CAAC;AAC1F,MAAM,MAAM,GAAC,CAAC,KAAY,EAAC,EAAE,CAAA,KAAK,CAAC,OAAO,CAAC,MAAM,EAAC,MAAM,CAAC,CAAC;AAC1D;;;;GAIG;AACH,SAAS,cAAc,CAAC,IAAW,EAAC,MAAa,EAAC,IAAwB;IACxE,MAAM,QAAQ,GAAC,IAAI,GAAG,EAAiB,CAAC;IACxC,KAAI,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAC,KAAI,MAAM,IAAI,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC,CAAC;YACvF,MAAM,CAAC,IAAI,EAAC,KAAK,CAAC,GAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACjD,IAAG,IAAI;gBAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,IAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;QAC9E,CAAC;IACD,MAAM,IAAI,GAAC,IAAI,GAAG,EAAsB,CAAC;IACzC,KAAI,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAC,CAAC;QACtD,MAAM,MAAM,GAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAAA,IAAG,CAAC,MAAM;YAAC,SAAS;QACzD,MAAM,GAAG,GAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAC,UAAU,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,MAAM,EAAC,UAAU,CAAC,CAAA,CAAC,CAAA,SAAS,CAAC;QACtG,IAAG,CAAC,GAAG;YAAC,SAAS;QACjB,MAAM,KAAK,GAAC,IAAI,MAAM,CAAC,cAAc,GAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,GAAC,mDAAmD,EAAC,GAAG,CAAC,CAAC;QACjH,KAAI,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,CAAC;YAAA,MAAM,KAAK,GAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAE,IAAI,GAAG,EAAU,CAAC;YAAA,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC,KAAK,CAAC,CAAC;QAAA,CAAC;IAClI,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gHAAgH;AAChH,KAAK,UAAU,IAAI,CAAC,IAAW,EAAC,SAAgB,EAAC,IAAiB,EAAC,OAAgB;IACjF,KAAI,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,SAAS,EAAC,EAAC,aAAa,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC;QAChE,MAAM,IAAI,GAAC,IAAI,CAAC,SAAS,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,IAAG,KAAK,CAAC,cAAc,EAAE;YAAC,SAAS;QACnC,IAAG,KAAK,CAAC,WAAW,EAAE,EAAC,CAAC;YACtB,IAAG,KAAK,CAAC,IAAI,KAAG,WAAW,IAAE,KAAK,CAAC,IAAI,KAAG,cAAc;gBAAC,SAAS;YAClE,IAAG,KAAK,CAAC,IAAI,KAAG,UAAU,EAAC,CAAC;gBAC1B,MAAM,OAAO,GAAuB,EAAE,CAAC;gBACvC,KAAI,MAAM,IAAI,IAAI,MAAM,OAAO,CAAC,IAAI,EAAC,EAAC,aAAa,EAAC,IAAI,EAAC,CAAC;oBAAC,IAAG,IAAI,CAAC,MAAM,EAAE,IAAE,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;wBAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1L,gGAAgG;gBAChG,MAAM,KAAK,GAAC,QAAQ,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3C,MAAM,IAAI,GAAC,KAAK,CAAC,CAAC,CAAC,KAAG,UAAU,IAAE,KAAK,CAAC,CAAC,CAAC,KAAG,UAAU,CAAA,CAAC,CAAA,IAAI,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC,CAAC,EAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC;gBAC3F,IAAI,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,OAAO,EAAC,CAAC,CAAC;YACvC,CAAC;;gBAAK,MAAM,IAAI,CAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;aAAK,IAAG,KAAK,CAAC,MAAM,EAAE,IAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtG,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,YAAmB;IACpD,MAAM,GAAG,GAAC,OAAO,CAAC,YAAY,CAAC,EAAC,GAAG,GAAC,IAAI,CAAC,GAAG,EAAC,KAAK,CAAC,CAAC;IACpD,IAAI,QAA2B,CAAC;IAChC,IAAG,CAAC;QAAA,QAAQ,GAAC,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAgC,CAAA,CAAC,cAAc,CAAC;IAAA,CAAC;IAAA,MAAK,CAAC;QAAA,QAAQ,GAAC,SAAS,CAAC;IAAA,CAAC;IACnJ,IAAG,CAAC,QAAQ,IAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAE,OAAO,QAAQ,CAAC,aAAa,KAAG,QAAQ;QAAC,MAAM,IAAI,UAAU,CAAC,4BAA4B,CAAC,CAAC;IAC5I,MAAM,IAAI,GAAc,EAAE,EAAC,OAAO,GAAU,EAAE,CAAC;IAC/C,MAAM,IAAI,CAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,OAAO,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAC,IAAI,GAAG,EAAsB,EAAC,SAAS,GAAC,IAAI,GAAG,EAAsB,CAAC;IACrF,MAAM,QAAQ,GAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA,EAAE,CAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,KAAI,MAAM,IAAI,IAAI,OAAO,EAAC,CAAC;QACzB,MAAM,MAAM,GAAC,IAAI,GAAG,EAAU,EAAC,MAAM,GAAC,MAAM,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC;QAClE,KAAI,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAC,IAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAC/F,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC;QAC1B,KAAI,MAAM,CAAC,GAAG,EAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,CAAC,EAAC,CAAC;YAAA,MAAM,GAAG,GAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAE,IAAI,GAAG,EAAU,CAAC;YAAA,KAAI,MAAM,GAAG,IAAI,IAAI;gBAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAAA,SAAS,CAAC,GAAG,CAAC,GAAG,EAAC,GAAG,CAAC,CAAC;QAAA,CAAC;IAC3K,CAAC;IACD,MAAM,QAAQ,GAAwC,EAAE,CAAC;IACzD,IAAI,IAAI,GAAC,CAAC,CAAC;IACX,KAAI,MAAM,GAAG,IAAI,IAAI,EAAC,CAAC;QACrB,MAAM,QAAQ,GAAkC,EAAE,CAAC;QACnD,KAAI,MAAM,CAAC,IAAI,EAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAC,CAAC;YACpD,IAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,CAAC;gBAAA,QAAQ,CAAC,IAAI,CAAC,EAAC,OAAO,EAAC,QAAQ,CAAC,GAAG,EAAC,GAAG,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,gBAAgB,EAAC,MAAM,EAAC,IAAI,EAAC,CAAC,CAAC;gBAAA,SAAS;YAAA,CAAC;YACjI,IAAG,CAAC;gBACF,MAAM,KAAK,GAAC,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAwB,CAAA,CAAC,OAAO,CAAC;gBACnF,IAAG,CAAC,KAAK,IAAE,OAAO,KAAK,KAAG,QAAQ,IAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAA,EAAE,CAAA,OAAO,OAAO,KAAG,QAAQ,CAAC;oBAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBACpH,QAAQ,CAAC,IAAI,CAAC,GAAC,KAAgB,CAAC;YAClC,CAAC;YAAA,MAAK,CAAC;gBAAA,QAAQ,CAAC,IAAI,CAAC,EAAC,OAAO,EAAC,QAAQ,CAAC,GAAG,EAAC,GAAG,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,iBAAiB,EAAC,MAAM,EAAC,IAAI,EAAC,CAAC,CAAC;YAAA,CAAC;QAC7F,CAAC;QACD,MAAM,IAAI,GAAC,IAAI,GAAG,EAAU,CAAC;QAC7B,KAAI,MAAM,CAAC,IAAI,EAAC,MAAM,CAAC,IAAI,QAAQ;YAAC,IAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,GAAC,GAAG,CAAC;gBAAC,KAAI,MAAM,KAAK,IAAI,MAAM;oBAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChH,IAAI,IAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QAC/D,iGAAiG;QACjG,MAAM,QAAQ,GAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA,CAAC,CAAA,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAE,EAAE,CAAA,CAAC,CAAA,EAAE,CAAC;QAC/E,KAAI,MAAM,OAAO,IAAI,aAAa,CAAC,EAAC,aAAa,EAAC,QAAQ,CAAC,aAAa,EAAC,OAAO,EAAC,QAAQ,CAAC,OAAO,EAAC,QAAQ,EAAC,MAAM,EAAC,GAAG,CAAA,EAAE,CAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAC,QAAQ,EAAC,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,OAAO,EAAC,QAAQ,CAAC,GAAG,EAAC,GAAG,CAAC,IAAI,CAAC,EAAC,GAAG,OAAO,EAAC,CAAC,CAAC;IAC7M,CAAC;IACD,OAAO,EAAC,EAAE,EAAC,QAAQ,CAAC,MAAM,KAAG,CAAC,EAAC,OAAO,EAAC,QAAQ,CAAC,OAAO,EAAC,aAAa,EAAC,QAAQ,CAAC,aAAa,EAAC,QAAQ,EAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA,EAAE,CAAA,QAAQ,CAAC,GAAG,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAC;AACpK,CAAC"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mpfrontend/ftg-cli",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,10 +30,10 @@
30
30
  "provenance": true
31
31
  },
32
32
  "dependencies": {
33
- "@mpfrontend/ai-skills": "1.0.0",
34
- "@mpfrontend/ftg-core": "1.0.0",
35
- "@mpfrontend/i18n": "1.0.0",
36
- "@mpfrontend/nx-plugin": "1.0.0",
33
+ "@mpfrontend/ai-skills": "1.1.0",
34
+ "@mpfrontend/ftg-core": "1.1.0",
35
+ "@mpfrontend/i18n": "1.1.0",
36
+ "@mpfrontend/nx-plugin": "1.1.0",
37
37
  "@apidevtools/swagger-parser": "13.1.0",
38
38
  "openapi-types": "12.1.3",
39
39
  "ajv": "8.20.0",