@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/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,4 @@
1
+ locales:
2
+ - code: "en"
3
+ displayName: "English"
4
+ default: true
@@ -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,11 @@
1
+ contentTypes:
2
+ - id: "category"
3
+ displayName: "Category"
4
+ description: "Blog categories"
5
+ fields:
6
+ - id: "title"
7
+ type: "shortText"
8
+ config:
9
+ required: true
10
+ ui:
11
+ displayName: "Category Title"
@@ -0,0 +1,11 @@
1
+ components:
2
+ authorInfo:
3
+ fields:
4
+ - id: "name"
5
+ type: "shortText"
6
+ ui:
7
+ displayName: "Name"
8
+ - id: "profilePicture"
9
+ type: "asset"
10
+ ui:
11
+ displayName: "Profile Picture"
@@ -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,4 @@
1
+ locales:
2
+ - code: "en"
3
+ displayName: "English"
4
+ default: true
@@ -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)"