@relyio/cli 0.2.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/LICENSE +201 -0
- package/README.md +589 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +24103 -0
- package/package.json +95 -0
- package/templates/bare/schemas/locales.yaml +4 -0
- package/templates/blog/queries/featuredPosts.yaml +21 -0
- package/templates/blog/queries/latestPosts.yaml +17 -0
- package/templates/blog/schemas/author.yaml +19 -0
- package/templates/blog/schemas/blogPost.yaml +34 -0
- package/templates/blog/schemas/category.yaml +11 -0
- package/templates/blog/schemas/components/authorInfo.yaml +11 -0
- package/templates/blog/schemas/components/seoMetadata.yaml +15 -0
- package/templates/blog/schemas/locales.yaml +4 -0
- package/templates/blog/schemas/singleton-types/blogIndex.yaml +15 -0
package/package.json
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@relyio/cli",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Command Line Interface for RelyIO",
|
|
5
|
+
"bugs": {
|
|
6
|
+
"email": "team@relyio.com"
|
|
7
|
+
},
|
|
8
|
+
"type": "module",
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"bin": {
|
|
12
|
+
"relyio": "dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"!dist/**/*.map",
|
|
17
|
+
"templates"
|
|
18
|
+
],
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"axios": "^1.9.0",
|
|
21
|
+
"axios-retry": "^4.5.0",
|
|
22
|
+
"boxen": "^8.0.1",
|
|
23
|
+
"chalk": "5.6.2",
|
|
24
|
+
"chokidar": "^4.0.1",
|
|
25
|
+
"commander": "13.1.0",
|
|
26
|
+
"diff": "^9.0.0",
|
|
27
|
+
"figures": "^6.1.0",
|
|
28
|
+
"glob": "13.0.6",
|
|
29
|
+
"cli-highlight": "^2.1.11",
|
|
30
|
+
"handlebars": "4.7.9",
|
|
31
|
+
"ink": "^7.0.3",
|
|
32
|
+
"ink-spinner": "^5.0.0",
|
|
33
|
+
"inquirer": "^12.6.0",
|
|
34
|
+
"jiti": "^2.4.2",
|
|
35
|
+
"js-yaml": "4.3.2",
|
|
36
|
+
"listr2": "^8.3.2",
|
|
37
|
+
"marked": "^18.0.4",
|
|
38
|
+
"object-hash": "3.0.0",
|
|
39
|
+
"open": "10.2.0",
|
|
40
|
+
"ora": "8.2.0",
|
|
41
|
+
"prettier": "3.5.3",
|
|
42
|
+
"react": "19.2.8",
|
|
43
|
+
"semver": "7.8.5",
|
|
44
|
+
"strip-ansi": "^7.1.0",
|
|
45
|
+
"table": "^6.9.0",
|
|
46
|
+
"update-notifier": "^7.3.1",
|
|
47
|
+
"yaml": "2.9.0",
|
|
48
|
+
"zod": "3.25.76"
|
|
49
|
+
},
|
|
50
|
+
"optionalDependencies": {
|
|
51
|
+
"keytar": "7.9.0"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@types/diff": "^8.0.0",
|
|
55
|
+
"@types/inquirer": "^9.0.7",
|
|
56
|
+
"@types/js-yaml": "^4.0.9",
|
|
57
|
+
"@types/node": "24.13.3",
|
|
58
|
+
"@types/react": "19.2.18",
|
|
59
|
+
"@types/update-notifier": "^6.0.8",
|
|
60
|
+
"@types/yaml": "^1.9.7",
|
|
61
|
+
"eslint": "9.39.5",
|
|
62
|
+
"ink-testing-library": "^4.0.0",
|
|
63
|
+
"rimraf": "6.1.3",
|
|
64
|
+
"tsup": "8.5.1",
|
|
65
|
+
"typescript": "5.9.3",
|
|
66
|
+
"typescript-eslint": "8.69.0",
|
|
67
|
+
"vitest": "4.1.11",
|
|
68
|
+
"@relyio/codegen-core": "1.0.0",
|
|
69
|
+
"@relyio/codegen-typescript": "1.0.0",
|
|
70
|
+
"@relyio/api-contract": "0.1.0",
|
|
71
|
+
"@relyio/schema": "0.0.1",
|
|
72
|
+
"@relyio/tenancy": "0.1.0",
|
|
73
|
+
"@relyio/eslint-config": "0.0.0",
|
|
74
|
+
"@relyio/codegen-python": "0.1.0"
|
|
75
|
+
},
|
|
76
|
+
"publishConfig": {
|
|
77
|
+
"access": "public"
|
|
78
|
+
},
|
|
79
|
+
"engines": {
|
|
80
|
+
"node": ">=18"
|
|
81
|
+
},
|
|
82
|
+
"license": "Apache-2.0",
|
|
83
|
+
"scripts": {
|
|
84
|
+
"build": "tsup && chmod +x dist/index.js",
|
|
85
|
+
"dev": "tsup --watch",
|
|
86
|
+
"lint:check": "eslint .",
|
|
87
|
+
"lint:write": "eslint . --fix",
|
|
88
|
+
"clean": "rimraf dist",
|
|
89
|
+
"type:check": "tsc --noEmit",
|
|
90
|
+
"test": "vitest run",
|
|
91
|
+
"test:watch": "vitest",
|
|
92
|
+
"local-link": "pnpm link --global",
|
|
93
|
+
"local-test": "pnpm build && pnpm local-link"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
queries:
|
|
2
|
+
- id: "featuredPosts"
|
|
3
|
+
endpoint: "/api/featured-posts"
|
|
4
|
+
description: "Fetches featured blog posts"
|
|
5
|
+
pipeline:
|
|
6
|
+
- step: "fetchPosts"
|
|
7
|
+
action: "fetch"
|
|
8
|
+
source:
|
|
9
|
+
contentType: "blogPost"
|
|
10
|
+
where:
|
|
11
|
+
- field: "isFeatured"
|
|
12
|
+
operator: "="
|
|
13
|
+
value: true
|
|
14
|
+
sort:
|
|
15
|
+
- field: "publishedAt"
|
|
16
|
+
order: "desc"
|
|
17
|
+
limit: 5
|
|
18
|
+
- step: "respond"
|
|
19
|
+
action: "respond"
|
|
20
|
+
target: "fetchPosts.results"
|
|
21
|
+
responseRoot: "featured"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
queries:
|
|
2
|
+
- id: "latestPosts"
|
|
3
|
+
endpoint: "/api/latest-posts"
|
|
4
|
+
description: "Fetches the latest blog posts"
|
|
5
|
+
pipeline:
|
|
6
|
+
- step: "fetchPosts"
|
|
7
|
+
action: "fetch"
|
|
8
|
+
source:
|
|
9
|
+
contentType: "blogPost"
|
|
10
|
+
sort:
|
|
11
|
+
- field: "publishedAt"
|
|
12
|
+
order: "desc"
|
|
13
|
+
limit: 5
|
|
14
|
+
- step: "respond"
|
|
15
|
+
action: "respond"
|
|
16
|
+
target: "fetchPosts.results"
|
|
17
|
+
responseRoot: "posts"
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
contentTypes:
|
|
2
|
+
- id: "author"
|
|
3
|
+
displayName: "Author"
|
|
4
|
+
description: "Represents a blog author"
|
|
5
|
+
fields:
|
|
6
|
+
- id: "name"
|
|
7
|
+
type: "shortText"
|
|
8
|
+
config:
|
|
9
|
+
required: true
|
|
10
|
+
ui:
|
|
11
|
+
displayName: "Author Name"
|
|
12
|
+
- id: "bio"
|
|
13
|
+
type: "longText"
|
|
14
|
+
ui:
|
|
15
|
+
displayName: "Biography"
|
|
16
|
+
- id: "avatar"
|
|
17
|
+
type: "asset"
|
|
18
|
+
ui:
|
|
19
|
+
displayName: "Profile Picture"
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
contentTypes:
|
|
2
|
+
- id: "blogPost"
|
|
3
|
+
displayName: "Blog Post"
|
|
4
|
+
description: "Defines the structure for blog articles"
|
|
5
|
+
fields:
|
|
6
|
+
- id: "title"
|
|
7
|
+
type: "shortText"
|
|
8
|
+
config:
|
|
9
|
+
required: true
|
|
10
|
+
ui:
|
|
11
|
+
displayName: "Post Title"
|
|
12
|
+
- id: "slug"
|
|
13
|
+
type: "slug"
|
|
14
|
+
config:
|
|
15
|
+
sourceField: "title"
|
|
16
|
+
unique: true
|
|
17
|
+
ui:
|
|
18
|
+
displayName: "Slug"
|
|
19
|
+
- id: "body"
|
|
20
|
+
type: "richText"
|
|
21
|
+
ui:
|
|
22
|
+
displayName: "Body"
|
|
23
|
+
- id: "publishedAt"
|
|
24
|
+
type: "date"
|
|
25
|
+
ui:
|
|
26
|
+
displayName: "Published Date"
|
|
27
|
+
- id: "author"
|
|
28
|
+
type: "reference"
|
|
29
|
+
config:
|
|
30
|
+
allowedTypes: ["author"]
|
|
31
|
+
ui:
|
|
32
|
+
displayName: "Author"
|
|
33
|
+
- id: "seo"
|
|
34
|
+
type: "component(seoMetadata)"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
components:
|
|
2
|
+
seoMetadata:
|
|
3
|
+
fields:
|
|
4
|
+
- id: "metaTitle"
|
|
5
|
+
type: "shortText"
|
|
6
|
+
ui:
|
|
7
|
+
displayName: "Meta Title"
|
|
8
|
+
- id: "metaDescription"
|
|
9
|
+
type: "longText"
|
|
10
|
+
ui:
|
|
11
|
+
displayName: "Meta Description"
|
|
12
|
+
- id: "openGraphImage"
|
|
13
|
+
type: "asset"
|
|
14
|
+
ui:
|
|
15
|
+
displayName: "Open Graph Image"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
singletonContentTypes:
|
|
2
|
+
- id: "blogIndex"
|
|
3
|
+
displayName: "Blog Index Page"
|
|
4
|
+
description: "Landing page for the blog section"
|
|
5
|
+
fields:
|
|
6
|
+
- id: "headline"
|
|
7
|
+
type: "shortText"
|
|
8
|
+
ui:
|
|
9
|
+
displayName: "Headline"
|
|
10
|
+
- id: "description"
|
|
11
|
+
type: "longText"
|
|
12
|
+
ui:
|
|
13
|
+
displayName: "Description"
|
|
14
|
+
- id: "seo"
|
|
15
|
+
type: "component(seoMetadata)"
|