fimo 0.8.0 → 0.9.0-experimental.2
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/assets/content-templates/hooks-template.eta +4 -2
- package/assets/content-templates/types-template.eta +66 -1
- package/assets/skills/fimo/SKILL.md +1 -1
- package/assets/skills/fimo/references/content.md +86 -15
- package/assets/skills/fimo-cli/SKILL.md +6 -2
- package/assets/skills/fimo-cli/references/content.md +61 -2
- package/assets/skills/fimo-cli/references/integrations/firecrawl.md +20 -4
- package/assets/skills/fimo-cli/references/integrations.md +5 -1
- package/assets/skills/fimo-cli/references/webhooks.md +162 -0
- package/assets/skills/fimo-migration/SKILL.md +22 -2
- package/assets/skills/fimo-migration/references/content.md +24 -0
- package/assets/skills/fimo-migration/references/manifest.md +35 -0
- package/assets/skills/fimo-migration/references/qa.md +24 -2
- package/assets/skills/fimo-migration/references/workflow.md +12 -1
- package/assets/skills/fimo-migration/references/wrap.md +617 -0
- package/assets/skills/fimo-studio/SKILL.md +5 -3
- package/assets/skills/fimo-studio/references/cms.md +9 -1
- package/assets/skills/fimo-studio/references/visual-editing.md +5 -3
- package/assets/skills/fimo-studio/references/webhooks.md +42 -0
- package/dist/build/vite/plugins/translations.d.ts +2 -8
- package/dist/build/vite/plugins/translations.js +3 -121
- package/dist/cli/bundle.json +1 -1
- package/dist/cli/index.js +1051 -144
- package/dist/runtime/app/FimoProviders.d.ts +1 -11
- package/dist/runtime/app/FimoProviders.js +2 -23
- package/dist/runtime/astro/index.d.ts +2 -0
- package/dist/runtime/astro/index.js +3 -0
- package/dist/runtime/astro/server.d.ts +3 -0
- package/dist/runtime/astro/server.js +6 -0
- package/dist/runtime/content/client/internal.js +1 -0
- package/dist/runtime/content/client/types.d.ts +16 -0
- package/dist/runtime/i18n/FimoLocaleContext.js +1 -0
- package/dist/runtime/next/FimoNextProviders.d.ts +24 -0
- package/dist/runtime/next/FimoNextProviders.js +20 -0
- package/dist/runtime/next/FimoNextScripts.d.ts +10 -0
- package/dist/runtime/next/FimoNextScripts.js +19 -0
- package/dist/runtime/next/index.d.ts +14 -0
- package/dist/runtime/next/index.js +14 -0
- package/dist/runtime/next/server.d.ts +2 -0
- package/dist/runtime/next/server.js +4 -0
- package/dist/runtime/nuxt/composables.d.ts +9 -0
- package/dist/runtime/nuxt/composables.js +57 -0
- package/dist/runtime/nuxt/index.d.ts +3 -0
- package/dist/runtime/nuxt/index.js +6 -0
- package/dist/runtime/nuxt/server.d.ts +3 -0
- package/dist/runtime/nuxt/server.js +6 -0
- package/dist/runtime/primitives/labels-hook.d.ts +33 -0
- package/dist/runtime/primitives/labels-hook.js +41 -0
- package/dist/runtime/primitives/labels-store.d.ts +12 -0
- package/dist/runtime/primitives/labels-store.js +60 -0
- package/dist/runtime/primitives/lib/useFimoLiveValue.d.ts +5 -3
- package/dist/runtime/primitives/lib/useFimoLiveValue.js +11 -4
- package/dist/runtime/primitives/translations.d.ts +1 -27
- package/dist/runtime/primitives/translations.js +7 -85
- package/dist/runtime/react/FimoSpaProviders.d.ts +36 -0
- package/dist/runtime/react/FimoSpaProviders.js +63 -0
- package/dist/runtime/react/index.d.ts +33 -0
- package/dist/runtime/react/index.js +39 -0
- package/dist/runtime/remix/FimoRemixProviders.d.ts +16 -0
- package/dist/runtime/remix/FimoRemixProviders.js +12 -0
- package/dist/runtime/remix/FimoRemixScripts.d.ts +10 -0
- package/dist/runtime/remix/FimoRemixScripts.js +19 -0
- package/dist/runtime/remix/index.d.ts +12 -0
- package/dist/runtime/remix/index.js +11 -0
- package/dist/runtime/remix/server.d.ts +2 -0
- package/dist/runtime/remix/server.js +2 -0
- package/dist/runtime/shared/display-routes.d.ts +14 -0
- package/dist/runtime/shared/display-routes.js +25 -0
- package/dist/runtime/shared/fimo-config.server.js +1 -0
- package/dist/runtime/shared/fimo-config.types.d.ts +2 -0
- package/dist/runtime/shared/i18n-messages.d.ts +29 -0
- package/dist/runtime/shared/i18n-messages.js +79 -0
- package/dist/runtime/shared/labels-fetch.pure.d.ts +17 -0
- package/dist/runtime/shared/labels-fetch.pure.js +71 -0
- package/dist/runtime/shared/labels-fetch.server.d.ts +7 -0
- package/dist/runtime/shared/labels-fetch.server.js +97 -0
- package/dist/runtime/shared/labels-t.pure.d.ts +2 -0
- package/dist/runtime/shared/labels-t.pure.js +10 -0
- package/dist/runtime/strapi/client.d.ts +30 -0
- package/dist/runtime/strapi/client.js +89 -0
- package/dist/runtime/strapi/index.d.ts +5 -0
- package/dist/runtime/strapi/index.js +6 -0
- package/dist/runtime/strapi/reshape.d.ts +46 -0
- package/dist/runtime/strapi/reshape.js +114 -0
- package/dist/runtime/svelte/index.d.ts +3 -0
- package/dist/runtime/svelte/index.js +7 -0
- package/dist/runtime/svelte/server.d.ts +3 -0
- package/dist/runtime/svelte/server.js +6 -0
- package/dist/runtime/vue/index.d.ts +3 -0
- package/dist/runtime/vue/index.js +5 -0
- package/dist/runtime/vue/server.d.ts +3 -0
- package/dist/runtime/vue/server.js +6 -0
- package/dist/runtime/wrapped/FimoFileLink.d.ts +17 -0
- package/dist/runtime/wrapped/FimoFileLink.js +19 -0
- package/dist/runtime/wrapped/FimoMediaImage.d.ts +14 -0
- package/dist/runtime/wrapped/FimoMediaImage.js +20 -0
- package/dist/runtime/wrapped/FimoMediaVideo.d.ts +14 -0
- package/dist/runtime/wrapped/FimoMediaVideo.js +20 -0
- package/dist/runtime/wrapped/FimoRichTextBlock.d.ts +23 -0
- package/dist/runtime/wrapped/FimoRichTextBlock.js +22 -0
- package/dist/runtime/wrapped/FimoText.d.ts +22 -0
- package/dist/runtime/wrapped/FimoText.js +20 -0
- package/dist/runtime/wrapped/WrappedContentContext.d.ts +28 -0
- package/dist/runtime/wrapped/WrappedContentContext.js +30 -0
- package/dist/runtime/wrapped/WrappedProviders.d.ts +33 -0
- package/dist/runtime/wrapped/WrappedProviders.js +101 -0
- package/dist/runtime/wrapped/dom.d.ts +4 -0
- package/dist/runtime/wrapped/dom.js +23 -0
- package/dist/runtime/wrapped/server.d.ts +77 -0
- package/dist/runtime/wrapped/server.js +237 -0
- package/dist/scripts/apply-wrap-templates.d.ts +61 -0
- package/dist/scripts/apply-wrap-templates.js +132 -0
- package/dist/scripts/apply-wrap.d.ts +46 -0
- package/dist/scripts/apply-wrap.js +278 -0
- package/dist/scripts/cms/discover.d.ts +2 -0
- package/dist/scripts/cms/discover.js +17 -0
- package/dist/scripts/cms/example-content.d.ts +33 -0
- package/dist/scripts/cms/example-content.js +163 -0
- package/dist/scripts/cms/strapi/detect.d.ts +2 -0
- package/dist/scripts/cms/strapi/detect.js +186 -0
- package/dist/scripts/cms/strapi/index.d.ts +3 -0
- package/dist/scripts/cms/strapi/index.js +25 -0
- package/dist/scripts/cms/strapi/list-source.d.ts +17 -0
- package/dist/scripts/cms/strapi/list-source.js +90 -0
- package/dist/scripts/cms/strapi/schema-map.d.ts +9 -0
- package/dist/scripts/cms/strapi/schema-map.js +279 -0
- package/dist/scripts/cms/strapi/shapes.d.ts +23 -0
- package/dist/scripts/cms/strapi/shapes.js +38 -0
- package/dist/scripts/cms/strapi/touchpoints.d.ts +31 -0
- package/dist/scripts/cms/strapi/touchpoints.js +145 -0
- package/dist/scripts/cms/strapi/wire-client.d.ts +15 -0
- package/dist/scripts/cms/strapi/wire-client.js +107 -0
- package/dist/scripts/cms/strapi/wiring.d.ts +17 -0
- package/dist/scripts/cms/strapi/wiring.js +46 -0
- package/dist/scripts/cms/types.d.ts +145 -0
- package/dist/scripts/cms/types.js +11 -0
- package/dist/scripts/detect-framework.d.ts +39 -0
- package/dist/scripts/detect-framework.js +133 -0
- package/dist/scripts/draft-rows.d.ts +19 -0
- package/dist/scripts/draft-rows.js +135 -0
- package/dist/scripts/draft-schemas.d.ts +27 -0
- package/dist/scripts/draft-schemas.js +188 -0
- package/dist/scripts/extract-translations.js +16 -11
- package/dist/scripts/frameworks/astro/routes.d.ts +3 -0
- package/dist/scripts/frameworks/astro/routes.js +55 -0
- package/dist/scripts/frameworks/astro/template-style.d.ts +7 -0
- package/dist/scripts/frameworks/astro/template-style.js +19 -0
- package/dist/scripts/frameworks/discover.d.ts +70 -0
- package/dist/scripts/frameworks/discover.js +178 -0
- package/dist/scripts/frameworks/next/rewire.d.ts +30 -0
- package/dist/scripts/frameworks/next/rewire.js +258 -0
- package/dist/scripts/frameworks/next/routes.d.ts +17 -0
- package/dist/scripts/frameworks/next/routes.js +134 -0
- package/dist/scripts/frameworks/next/wiring.d.ts +33 -0
- package/dist/scripts/frameworks/next/wiring.js +186 -0
- package/dist/scripts/frameworks/nuxt/routes.d.ts +3 -0
- package/dist/scripts/frameworks/nuxt/routes.js +54 -0
- package/dist/scripts/frameworks/nuxt/template-style.d.ts +9 -0
- package/dist/scripts/frameworks/nuxt/template-style.js +27 -0
- package/dist/scripts/frameworks/remix/routes.d.ts +3 -0
- package/dist/scripts/frameworks/remix/routes.js +50 -0
- package/dist/scripts/frameworks/support.d.ts +75 -0
- package/dist/scripts/frameworks/support.js +165 -0
- package/dist/scripts/frameworks/sveltekit/routes.d.ts +3 -0
- package/dist/scripts/frameworks/sveltekit/routes.js +50 -0
- package/dist/scripts/frameworks/sveltekit/template-style.d.ts +9 -0
- package/dist/scripts/frameworks/sveltekit/template-style.js +54 -0
- package/dist/scripts/frameworks/vite/routes.d.ts +15 -0
- package/dist/scripts/frameworks/vite/routes.js +93 -0
- package/dist/scripts/frameworks/vite/wiring.d.ts +10 -0
- package/dist/scripts/frameworks/vite/wiring.js +99 -0
- package/dist/scripts/i18n-namespace.d.ts +27 -0
- package/dist/scripts/i18n-namespace.js +155 -0
- package/dist/scripts/lib/validation-report.d.ts +1 -0
- package/dist/scripts/lib/validation-report.js +3 -0
- package/dist/scripts/render-parity/capture.d.ts +56 -0
- package/dist/scripts/render-parity/capture.js +366 -0
- package/dist/scripts/render-parity/compare.d.ts +59 -0
- package/dist/scripts/render-parity/compare.js +0 -0
- package/dist/scripts/render-parity/normalize-html.d.ts +13 -0
- package/dist/scripts/render-parity/normalize-html.js +223 -0
- package/dist/scripts/render-parity/types.d.ts +41 -0
- package/dist/scripts/render-parity/types.js +1 -0
- package/dist/scripts/scan-wrappable.d.ts +196 -0
- package/dist/scripts/scan-wrappable.js +1232 -0
- package/dist/scripts/validate-route-metadata.js +11 -0
- package/dist/scripts/validate-schemas.js +42 -1
- package/package.json +84 -4
- package/release.json +2 -2
- package/templates/react-router/package.json +1 -1
|
@@ -31,6 +31,17 @@ export function validateRouteMetadata(options = {}) {
|
|
|
31
31
|
const srcDir = path.resolve(cwd, 'src');
|
|
32
32
|
const routesFilePath = path.resolve(srcDir, 'routes.ts');
|
|
33
33
|
const errors = [];
|
|
34
|
+
// Everything below the i18n checks cross-validates React Router's
|
|
35
|
+
// src/routes.ts. Adopted (wrapped) projects on another framework declare it
|
|
36
|
+
// in fimo-config.json — their routes come from framework scans, so only the
|
|
37
|
+
// framework-neutral config checks apply.
|
|
38
|
+
const earlyConfig = readJson(configFilePath);
|
|
39
|
+
const framework = typeof earlyConfig.framework === 'string' ? earlyConfig.framework : 'react-router';
|
|
40
|
+
if (framework !== 'react-router') {
|
|
41
|
+
const i18n = validateI18nConfig(earlyConfig);
|
|
42
|
+
const configRoutes = loadConfigRoutes(earlyConfig);
|
|
43
|
+
return { errors: i18n.errors, routesChecked: configRoutes.length };
|
|
44
|
+
}
|
|
34
45
|
// Parse routes from src/routes.ts (file → path mapping)
|
|
35
46
|
let fileRoutes = [];
|
|
36
47
|
if (!fs.existsSync(routesFilePath)) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
2
2
|
import { basename, join, resolve } from 'node:path';
|
|
3
|
-
import { CONTENT_FIELD_NAME_PATTERN, CONTENT_FIELD_NAME_PATTERN_DESCRIPTION, CONTENT_TYPE_NAME_PATTERN, CONTENT_TYPE_NAME_PATTERN_DESCRIPTION, FieldTypeSchema, RESERVED_CONTENT_FIELD_NAMES, } from '@fimo/api-contracts';
|
|
3
|
+
import { CONTENT_FIELD_NAME_PATTERN, CONTENT_FIELD_NAME_PATTERN_DESCRIPTION, CONTENT_TYPE_NAME_PATTERN, CONTENT_TYPE_NAME_PATTERN_DESCRIPTION, ContentFieldDefinitionSchema, FieldTypeSchema, MAX_STRUCTURED_CONTENT_DEPTH, RESERVED_CONTENT_FIELD_NAMES, walkContentFields, } from '@fimo/api-contracts';
|
|
4
4
|
/**
|
|
5
5
|
* Validate `src/schemas/*.json` locally against the same rules the API's
|
|
6
6
|
* schema validator enforces (field types, reserved field names, required
|
|
@@ -169,6 +169,47 @@ export function validateSchemaFile(absolutePath, file, schemaUids = new Set()) {
|
|
|
169
169
|
file,
|
|
170
170
|
});
|
|
171
171
|
}
|
|
172
|
+
if (type === 'blocks') {
|
|
173
|
+
const parsed = ContentFieldDefinitionSchema.safeParse(definition);
|
|
174
|
+
if (!parsed.success) {
|
|
175
|
+
for (const issue of parsed.error.issues) {
|
|
176
|
+
errors.push({
|
|
177
|
+
rule: 'schemas/structured-content-shape',
|
|
178
|
+
message: `Field "${fieldName}"${issue.path.length > 0 ? ` at ${issue.path.join('.')}` : ''}: ${issue.message}`,
|
|
179
|
+
file,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
walkContentFields({ [fieldName]: parsed.data }, ({ field, path, structuredDepth, insideStructuredContent }) => {
|
|
185
|
+
if (field.type === 'blocks' && structuredDepth >= MAX_STRUCTURED_CONTENT_DEPTH) {
|
|
186
|
+
errors.push({
|
|
187
|
+
rule: 'schemas/structured-content-depth',
|
|
188
|
+
message: `Field "${path.join('.')}" exceeds the ${MAX_STRUCTURED_CONTENT_DEPTH}-level blocks limit.`,
|
|
189
|
+
file,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
if (!insideStructuredContent || field.type !== 'reference') {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
if (field.targets) {
|
|
196
|
+
errors.push({
|
|
197
|
+
rule: 'schemas/structured-content-reference',
|
|
198
|
+
message: `Reference field "${path.join('.')}" must use one fixed "target" inside blocks.`,
|
|
199
|
+
file,
|
|
200
|
+
});
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
if (field.target && schemaUids.size > 0 && !schemaUids.has(field.target)) {
|
|
204
|
+
errors.push({
|
|
205
|
+
rule: 'schemas/reference-target',
|
|
206
|
+
message: `Reference field "${path.join('.')}" targets unknown schema "${field.target}".`,
|
|
207
|
+
file,
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
172
213
|
if (type === 'reference') {
|
|
173
214
|
const { target, targets, many } = definition;
|
|
174
215
|
if (targets !== undefined && target !== undefined) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fimo",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0-experimental.2",
|
|
4
4
|
"description": "Fimo CLI - create, deploy, and manage Fimo projects",
|
|
5
5
|
"bin": {
|
|
6
6
|
"fimo": "dist/cli/index.js"
|
|
@@ -22,6 +22,18 @@
|
|
|
22
22
|
"types": "./dist/runtime/index.d.ts",
|
|
23
23
|
"import": "./dist/runtime/index.js"
|
|
24
24
|
},
|
|
25
|
+
"./react": {
|
|
26
|
+
"types": "./dist/runtime/react/index.d.ts",
|
|
27
|
+
"import": "./dist/runtime/react/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./next": {
|
|
30
|
+
"types": "./dist/runtime/next/index.d.ts",
|
|
31
|
+
"import": "./dist/runtime/next/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./next/server": {
|
|
34
|
+
"types": "./dist/runtime/next/server.d.ts",
|
|
35
|
+
"import": "./dist/runtime/next/server.js"
|
|
36
|
+
},
|
|
25
37
|
"./react-router": {
|
|
26
38
|
"types": "./dist/runtime/react-router/index.d.ts",
|
|
27
39
|
"import": "./dist/runtime/react-router/index.js"
|
|
@@ -41,6 +53,50 @@
|
|
|
41
53
|
"./templates": {
|
|
42
54
|
"types": "./dist/runtime/templates.d.ts",
|
|
43
55
|
"import": "./dist/runtime/templates.js"
|
|
56
|
+
},
|
|
57
|
+
"./strapi": {
|
|
58
|
+
"types": "./dist/runtime/strapi/index.d.ts",
|
|
59
|
+
"import": "./dist/runtime/strapi/index.js"
|
|
60
|
+
},
|
|
61
|
+
"./remix": {
|
|
62
|
+
"types": "./dist/runtime/remix/index.d.ts",
|
|
63
|
+
"import": "./dist/runtime/remix/index.js"
|
|
64
|
+
},
|
|
65
|
+
"./remix/server": {
|
|
66
|
+
"types": "./dist/runtime/remix/server.d.ts",
|
|
67
|
+
"import": "./dist/runtime/remix/server.js"
|
|
68
|
+
},
|
|
69
|
+
"./astro": {
|
|
70
|
+
"types": "./dist/runtime/astro/index.d.ts",
|
|
71
|
+
"import": "./dist/runtime/astro/index.js"
|
|
72
|
+
},
|
|
73
|
+
"./astro/server": {
|
|
74
|
+
"types": "./dist/runtime/astro/server.d.ts",
|
|
75
|
+
"import": "./dist/runtime/astro/server.js"
|
|
76
|
+
},
|
|
77
|
+
"./nuxt": {
|
|
78
|
+
"types": "./dist/runtime/nuxt/index.d.ts",
|
|
79
|
+
"import": "./dist/runtime/nuxt/index.js"
|
|
80
|
+
},
|
|
81
|
+
"./nuxt/server": {
|
|
82
|
+
"types": "./dist/runtime/nuxt/server.d.ts",
|
|
83
|
+
"import": "./dist/runtime/nuxt/server.js"
|
|
84
|
+
},
|
|
85
|
+
"./svelte": {
|
|
86
|
+
"types": "./dist/runtime/svelte/index.d.ts",
|
|
87
|
+
"import": "./dist/runtime/svelte/index.js"
|
|
88
|
+
},
|
|
89
|
+
"./svelte/server": {
|
|
90
|
+
"types": "./dist/runtime/svelte/server.d.ts",
|
|
91
|
+
"import": "./dist/runtime/svelte/server.js"
|
|
92
|
+
},
|
|
93
|
+
"./vue": {
|
|
94
|
+
"types": "./dist/runtime/vue/index.d.ts",
|
|
95
|
+
"import": "./dist/runtime/vue/index.js"
|
|
96
|
+
},
|
|
97
|
+
"./vue/server": {
|
|
98
|
+
"types": "./dist/runtime/vue/server.d.ts",
|
|
99
|
+
"import": "./dist/runtime/vue/server.js"
|
|
44
100
|
}
|
|
45
101
|
},
|
|
46
102
|
"publishConfig": {
|
|
@@ -97,16 +153,37 @@
|
|
|
97
153
|
"yaml": "2.8.2"
|
|
98
154
|
},
|
|
99
155
|
"peerDependencies": {
|
|
156
|
+
"@remix-run/react": ">=2.0.0",
|
|
157
|
+
"@sveltejs/kit": ">=2.0.0",
|
|
100
158
|
"@tanstack/react-query": "^5.80.6",
|
|
101
|
-
"
|
|
102
|
-
"
|
|
159
|
+
"astro": ">=4.0.0",
|
|
160
|
+
"next": ">=14.0.0",
|
|
161
|
+
"nuxt": ">=3.0.0",
|
|
162
|
+
"react": "^18.2.0 || ^19.0.0",
|
|
163
|
+
"react-dom": "^18.2.0 || ^19.0.0",
|
|
103
164
|
"react-router": "^7.0.0 || ^8.0.0",
|
|
104
|
-
"vite": "^7.0.0 || ^8.0.0"
|
|
165
|
+
"vite": "^7.0.0 || ^8.0.0",
|
|
166
|
+
"vue": ">=3.0.0"
|
|
105
167
|
},
|
|
106
168
|
"peerDependenciesMeta": {
|
|
169
|
+
"@remix-run/react": {
|
|
170
|
+
"optional": true
|
|
171
|
+
},
|
|
172
|
+
"@sveltejs/kit": {
|
|
173
|
+
"optional": true
|
|
174
|
+
},
|
|
107
175
|
"@tanstack/react-query": {
|
|
108
176
|
"optional": true
|
|
109
177
|
},
|
|
178
|
+
"astro": {
|
|
179
|
+
"optional": true
|
|
180
|
+
},
|
|
181
|
+
"next": {
|
|
182
|
+
"optional": true
|
|
183
|
+
},
|
|
184
|
+
"nuxt": {
|
|
185
|
+
"optional": true
|
|
186
|
+
},
|
|
110
187
|
"react": {
|
|
111
188
|
"optional": true
|
|
112
189
|
},
|
|
@@ -118,6 +195,9 @@
|
|
|
118
195
|
},
|
|
119
196
|
"vite": {
|
|
120
197
|
"optional": true
|
|
198
|
+
},
|
|
199
|
+
"vue": {
|
|
200
|
+
"optional": true
|
|
121
201
|
}
|
|
122
202
|
},
|
|
123
203
|
"engines": {
|
package/release.json
CHANGED