vyriy 0.4.11 → 0.5.1

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.
@@ -1,163 +1,26 @@
1
1
  import packageJson from '../../../package.json' with { type: 'json' };
2
2
  import { base } from './base.js';
3
+ import { assetsDeclarationFile, baseToolingDeps, buildPackageJson, reactComponentFiles, reactDeps, reactServiceFiles, reactWorkspaceScripts, stylelintConfigFile, stylelintDeps, webpackDeps, } from './shared.js';
3
4
  export const ssg = {
4
5
  files: (options) => ({
5
6
  ...base.files(options),
6
- 'package.json': JSON.stringify({
7
- name: options.name,
8
- version: '0.0.0',
9
- description: options.description,
10
- private: true,
11
- type: 'module',
12
- agents: './AGENTS.md',
13
- packageManager: packageJson.packageManager,
14
- engines: {
15
- node: packageJson.engines.node,
16
- },
17
- workspaces: [
18
- 'packages/*',
19
- 'workspaces/*',
20
- ],
21
- scripts: {
22
- storybook: 'cross-env STORYBOOK_DISABLE_TELEMETRY=1 storybook dev -p 6006 --disable-telemetry',
23
- check: 'run-s lint build test',
24
- fix: "run-s 'fix:*'",
25
- start: "run-p 'start:*'",
26
- lint: "run-s 'lint:*'",
27
- build: "run-s 'build:*'",
28
- test: "run-s 'test:*'",
29
- 'fix:prettier': 'prettier . --write',
30
- 'fix:eslint': 'eslint . --fix',
31
- 'fix:stylelint': 'stylelint "**/*.{css,scss}" --fix',
32
- 'start:ssg': 'sh workspaces/ssg/bin/start.sh',
33
- 'lint:ts': 'tsc',
34
- 'lint:prettier': 'prettier . --check',
35
- 'lint:eslint': 'eslint .',
36
- 'lint:stylelint': 'stylelint "**/*.{css,scss}"',
37
- 'build:ssg': 'rimraf dist && sh workspaces/ssg/bin/build.sh',
38
- 'build:storybook': 'cross-env STORYBOOK_DISABLE_TELEMETRY=1 storybook build --quiet --disable-telemetry',
39
- 'test:jest': 'jest',
40
- postinstall: 'husky',
41
- },
42
- dependencies: {
43
- '@vyriy/typescript-config': `^${packageJson.version}`,
44
- typescript: packageJson.peerDependencies.typescript,
45
- '@vyriy/prettier-config': `^${packageJson.version}`,
46
- prettier: packageJson.peerDependencies.prettier,
47
- '@vyriy/eslint-config': `^${packageJson.version}`,
48
- eslint: packageJson.peerDependencies.eslint,
49
- '@vyriy/jest-config': `^${packageJson.version}`,
50
- jest: packageJson.peerDependencies.jest,
51
- '@vyriy/storybook-config': `^${packageJson.version}`,
52
- storybook: packageJson.peerDependencies.storybook,
53
- '@vyriy/path': `^${packageJson.version}`,
54
- husky: packageJson.peerDependencies.husky,
55
- 'npm-run-all2': packageJson.peerDependencies['npm-run-all2'],
56
- 'cross-env': packageJson.peerDependencies['cross-env'],
57
- rimraf: packageJson.peerDependencies.rimraf,
58
- '@vyriy/webpack-config': `^${packageJson.version}`,
59
- '@vyriy/script': `^${packageJson.version}`,
60
- tsx: packageJson.peerDependencies.tsx,
61
- 'webpack-cli': packageJson.peerDependencies['webpack-cli'],
62
- react: packageJson.peerDependencies.react,
63
- 'react-dom': packageJson.peerDependencies['react-dom'],
64
- '@types/react': packageJson.peerDependencies['@types/react'],
65
- '@types/react-dom': packageJson.peerDependencies['@types/react-dom'],
66
- '@vyriy/stylelint-config': `^${packageJson.version}`,
67
- '@vyriy/cn': `^${packageJson.version}`,
68
- '@vyriy/html': `^${packageJson.version}`,
69
- stylelint: packageJson.peerDependencies.stylelint,
70
- sass: packageJson.peerDependencies.sass,
71
- },
72
- }, null, 2) + '\n',
73
- 'stylelint.config.ts': "export { default } from '@vyriy/stylelint-config';\n",
74
- 'assets.d.ts': "declare module '*.scss';\n",
75
- 'packages/components/package.json': JSON.stringify({
76
- name: '@p/components',
77
- private: true,
78
- type: 'module',
79
- }, null, 2) + '\n',
80
- 'packages/components/index.ts': "export * from './page/index.js';\n",
81
- 'packages/components/index.test.tsx': `import { describe, expect, it } from '@jest/globals';
82
-
83
- import { Page } from './index.js';
84
- import { Page as PageImplementation } from './page/index.js';
85
-
86
- describe('packages/components/page', () => {
87
- it('re-exports the page component', () => {
88
- expect(Page).toBe(PageImplementation);
89
- });
90
- });
91
- `,
92
- 'packages/components/page/index.ts': `export * from './page.js';
93
- export type * from './types.js';
94
- `,
95
- 'packages/components/page/index.test.ts': `import { describe, expect, it } from '@jest/globals';
96
-
97
- import { Page } from './index.js';
98
- import { Page as PageImplementation } from './page.js';
99
-
100
- describe('packages/components/page', () => {
101
- it('re-exports the page component', () => {
102
- expect(Page).toBe(PageImplementation);
103
- });
104
- });
105
- `,
106
- 'packages/components/page/types.ts': `import { FC } from 'react';
107
-
108
- export type PageProps = {
109
- content: string;
110
- };
111
-
112
- export type PageType = FC<PageProps>;
113
- `,
114
- 'packages/components/page/page.tsx': `import type { PageType } from './types.js';
115
-
116
- export const Page: PageType = ({ content }) => <div className="content">{content}</div>;
117
- `,
118
- 'packages/components/page/styles.scss': `.content {
119
- display: block;
120
- }
121
- `,
122
- 'packages/components/page/page.test.tsx': `import { renderToStaticMarkup } from 'react-dom/server';
123
- import { describe, expect, it } from '@jest/globals';
124
-
125
- import { Page } from './page.js';
126
-
127
- describe('packages/components/page/page', () => {
128
- it('renders content inside the page content container', () => {
129
- expect(renderToStaticMarkup(<Page content="Page body" />)).toBe('<div class="content">Page body</div>');
130
- });
131
- });
132
- `,
133
- 'packages/services/package.json': JSON.stringify({
134
- name: '@p/services',
135
- private: true,
136
- type: 'module',
137
- }, null, 2) + '\n',
138
- 'packages/services/cms/index.ts': `export const cms = {
139
- getContent: async () => {
140
- // Placeholder for fetching content from a CMS
141
- return Promise.resolve({
142
- title: 'Sample Content',
143
- body: 'This is a sample content fetched from the CMS.',
144
- });
145
- },
146
- };
147
- `,
148
- 'packages/services/cms/index.test.ts': `import { describe, expect, it } from '@jest/globals';
149
-
150
- import { cms } from './index.js';
151
-
152
- describe('packages/services/cms', () => {
153
- it('returns content for rendering a page', async () => {
154
- await expect(cms.getContent()).resolves.toEqual({
155
- title: 'Sample Content',
156
- body: 'This is a sample content fetched from the CMS.',
157
- });
158
- });
159
- });
160
- `,
7
+ ...stylelintConfigFile(),
8
+ ...assetsDeclarationFile(),
9
+ ...reactComponentFiles(),
10
+ ...reactServiceFiles(),
11
+ 'package.json': buildPackageJson(options, [
12
+ 'packages/*',
13
+ 'workspaces/*',
14
+ ], reactWorkspaceScripts('ssg'), {
15
+ ...baseToolingDeps(),
16
+ ...webpackDeps(),
17
+ '@vyriy/script': `^${packageJson.version}`,
18
+ ...reactDeps(),
19
+ ...stylelintDeps(),
20
+ '@vyriy/cn': `^${packageJson.version}`,
21
+ '@vyriy/html': `^${packageJson.version}`,
22
+ sass: packageJson.peerDependencies.sass,
23
+ }),
161
24
  'workspaces/ssg/bin/build.sh': `#!/usr/bin/env sh
162
25
 
163
26
  set -e
@@ -1,164 +1,26 @@
1
1
  import packageJson from '../../../package.json' with { type: 'json' };
2
2
  import { base } from './base.js';
3
+ import { assetsDeclarationFile, baseToolingDeps, buildPackageJson, reactComponentFiles, reactDeps, reactServiceFiles, reactWorkspaceScripts, serverDeps, stylelintConfigFile, stylelintDeps, webpackDeps, } from './shared.js';
3
4
  export const ssr = {
4
5
  files: (options) => ({
5
6
  ...base.files(options),
6
- 'package.json': JSON.stringify({
7
- name: options.name,
8
- version: '0.0.0',
9
- description: options.description,
10
- private: true,
11
- type: 'module',
12
- agents: './AGENTS.md',
13
- packageManager: packageJson.packageManager,
14
- engines: {
15
- node: packageJson.engines.node,
16
- },
17
- workspaces: [
18
- 'packages/*',
19
- 'workspaces/*',
20
- ],
21
- scripts: {
22
- storybook: 'cross-env STORYBOOK_DISABLE_TELEMETRY=1 storybook dev -p 6006 --disable-telemetry',
23
- check: 'run-s lint build test',
24
- fix: "run-s 'fix:*'",
25
- start: "run-p 'start:*'",
26
- lint: "run-s 'lint:*'",
27
- build: "run-s 'build:*'",
28
- test: "run-s 'test:*'",
29
- 'fix:prettier': 'prettier . --write',
30
- 'fix:eslint': 'eslint . --fix',
31
- 'fix:stylelint': 'stylelint "**/*.{css,scss}" --fix',
32
- 'start:api': 'sh workspaces/api/bin/start.sh',
33
- 'lint:ts': 'tsc',
34
- 'lint:prettier': 'prettier . --check',
35
- 'lint:eslint': 'eslint .',
36
- 'lint:stylelint': 'stylelint "**/*.{css,scss}"',
37
- 'build:api': 'rimraf dist && sh workspaces/api/bin/build.sh',
38
- 'build:storybook': 'cross-env STORYBOOK_DISABLE_TELEMETRY=1 storybook build --quiet --disable-telemetry',
39
- 'test:jest': 'jest',
40
- postinstall: 'husky',
41
- },
42
- dependencies: {
43
- '@vyriy/typescript-config': `^${packageJson.version}`,
44
- typescript: packageJson.peerDependencies.typescript,
45
- '@vyriy/prettier-config': `^${packageJson.version}`,
46
- prettier: packageJson.peerDependencies.prettier,
47
- '@vyriy/eslint-config': `^${packageJson.version}`,
48
- eslint: packageJson.peerDependencies.eslint,
49
- '@vyriy/jest-config': `^${packageJson.version}`,
50
- jest: packageJson.peerDependencies.jest,
51
- '@vyriy/storybook-config': `^${packageJson.version}`,
52
- storybook: packageJson.peerDependencies.storybook,
53
- '@vyriy/path': `^${packageJson.version}`,
54
- husky: packageJson.peerDependencies.husky,
55
- 'npm-run-all2': packageJson.peerDependencies['npm-run-all2'],
56
- 'cross-env': packageJson.peerDependencies['cross-env'],
57
- rimraf: packageJson.peerDependencies.rimraf,
58
- '@vyriy/webpack-config': `^${packageJson.version}`,
59
- '@vyriy/handler': `^${packageJson.version}`,
60
- '@vyriy/server': `^${packageJson.version}`,
61
- tsx: packageJson.peerDependencies.tsx,
62
- 'webpack-cli': packageJson.peerDependencies['webpack-cli'],
63
- react: packageJson.peerDependencies.react,
64
- 'react-dom': packageJson.peerDependencies['react-dom'],
65
- '@types/react': packageJson.peerDependencies['@types/react'],
66
- '@types/react-dom': packageJson.peerDependencies['@types/react-dom'],
67
- '@vyriy/stylelint-config': `^${packageJson.version}`,
68
- '@vyriy/cn': `^${packageJson.version}`,
69
- '@vyriy/html': `^${packageJson.version}`,
70
- stylelint: packageJson.peerDependencies.stylelint,
71
- sass: packageJson.peerDependencies.sass,
72
- },
73
- }, null, 2) + '\n',
74
- 'stylelint.config.ts': "export { default } from '@vyriy/stylelint-config';\n",
75
- 'assets.d.ts': "declare module '*.scss';\n",
76
- 'packages/components/package.json': JSON.stringify({
77
- name: '@p/components',
78
- private: true,
79
- type: 'module',
80
- }, null, 2) + '\n',
81
- 'packages/components/index.ts': "export * from './page/index.js';\n",
82
- 'packages/components/index.test.tsx': `import { describe, expect, it } from '@jest/globals';
83
-
84
- import { Page } from './index.js';
85
- import { Page as PageImplementation } from './page/index.js';
86
-
87
- describe('packages/components/page', () => {
88
- it('re-exports the page component', () => {
89
- expect(Page).toBe(PageImplementation);
90
- });
91
- });
92
- `,
93
- 'packages/components/page/index.ts': `export * from './page.js';
94
- export type * from './types.js';
95
- `,
96
- 'packages/components/page/index.test.ts': `import { describe, expect, it } from '@jest/globals';
97
-
98
- import { Page } from './index.js';
99
- import { Page as PageImplementation } from './page.js';
100
-
101
- describe('packages/components/page', () => {
102
- it('re-exports the page component', () => {
103
- expect(Page).toBe(PageImplementation);
104
- });
105
- });
106
- `,
107
- 'packages/components/page/types.ts': `import { FC } from 'react';
108
-
109
- export type PageProps = {
110
- content: string;
111
- };
112
-
113
- export type PageType = FC<PageProps>;
114
- `,
115
- 'packages/components/page/page.tsx': `import type { PageType } from './types.js';
116
-
117
- export const Page: PageType = ({ content }) => <div className="content">{content}</div>;
118
- `,
119
- 'packages/components/page/styles.scss': `.content {
120
- display: block;
121
- }
122
- `,
123
- 'packages/components/page/page.test.tsx': `import { renderToStaticMarkup } from 'react-dom/server';
124
- import { describe, expect, it } from '@jest/globals';
125
-
126
- import { Page } from './page.js';
127
-
128
- describe('packages/components/page/page', () => {
129
- it('renders content inside the page content container', () => {
130
- expect(renderToStaticMarkup(<Page content="Page body" />)).toBe('<div class="content">Page body</div>');
131
- });
132
- });
133
- `,
134
- 'packages/services/package.json': JSON.stringify({
135
- name: '@p/services',
136
- private: true,
137
- type: 'module',
138
- }, null, 2) + '\n',
139
- 'packages/services/cms/index.ts': `export const cms = {
140
- getContent: async () => {
141
- // Placeholder for fetching content from a CMS
142
- return Promise.resolve({
143
- title: 'Sample Content',
144
- body: 'This is a sample content fetched from the CMS.',
145
- });
146
- },
147
- };
148
- `,
149
- 'packages/services/cms/index.test.ts': `import { describe, expect, it } from '@jest/globals';
150
-
151
- import { cms } from './index.js';
152
-
153
- describe('packages/services/cms', () => {
154
- it('returns content for rendering a page', async () => {
155
- await expect(cms.getContent()).resolves.toEqual({
156
- title: 'Sample Content',
157
- body: 'This is a sample content fetched from the CMS.',
158
- });
159
- });
160
- });
161
- `,
7
+ ...stylelintConfigFile(),
8
+ ...assetsDeclarationFile(),
9
+ ...reactComponentFiles(),
10
+ ...reactServiceFiles(),
11
+ 'package.json': buildPackageJson(options, [
12
+ 'packages/*',
13
+ 'workspaces/*',
14
+ ], reactWorkspaceScripts('api'), {
15
+ ...baseToolingDeps(),
16
+ ...webpackDeps(),
17
+ ...serverDeps(),
18
+ ...reactDeps(),
19
+ ...stylelintDeps(),
20
+ '@vyriy/cn': `^${packageJson.version}`,
21
+ '@vyriy/html': `^${packageJson.version}`,
22
+ sass: packageJson.peerDependencies.sass,
23
+ }),
162
24
  'workspaces/api/bin/build.sh': `#!/usr/bin/env sh
163
25
 
164
26
  set -e
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vyriy",
3
- "version": "0.4.11",
3
+ "version": "0.5.1",
4
4
  "description": "Interactive project master for calm cloud-ready applications.",
5
5
  "type": "module",
6
6
  "bin": "./bin/vyriy.js",
@@ -9,6 +9,9 @@
9
9
  },
10
10
  "packageManager": "yarn@4.15.0",
11
11
  "peerDependencies": {
12
+ "@testing-library/dom": "^10.4.1",
13
+ "@testing-library/react": "^16.3.2",
14
+ "@types/jest": "^30.0.0",
12
15
  "@types/react": "^19.2.15",
13
16
  "@types/react-dom": "^19.2.3",
14
17
  "cross-env": "^10.1.0",
@@ -22,13 +25,24 @@
22
25
  "react-dom": "^19.2.6",
23
26
  "rimraf": "^6.1.3",
24
27
  "sass": "^1.100.0",
28
+ "serve": "^14.2.6",
25
29
  "storybook": "^10.4.1",
26
30
  "stylelint": "^17.12.0",
27
- "tsx": "^4.22.3",
31
+ "tsx": "^4.22.4",
28
32
  "typescript": "^6.0.3",
33
+ "webpack": "^5.107.2",
29
34
  "webpack-cli": "^7.0.3"
30
35
  },
31
36
  "peerDependenciesMeta": {
37
+ "@testing-library/dom": {
38
+ "optional": true
39
+ },
40
+ "@testing-library/react": {
41
+ "optional": true
42
+ },
43
+ "@types/jest": {
44
+ "optional": true
45
+ },
32
46
  "@types/react": {
33
47
  "optional": true
34
48
  },
@@ -68,6 +82,9 @@
68
82
  "sass": {
69
83
  "optional": true
70
84
  },
85
+ "serve": {
86
+ "optional": true
87
+ },
71
88
  "storybook": {
72
89
  "optional": true
73
90
  },
@@ -80,6 +97,9 @@
80
97
  "typescript": {
81
98
  "optional": true
82
99
  },
100
+ "webpack": {
101
+ "optional": true
102
+ },
83
103
  "webpack-cli": {
84
104
  "optional": true
85
105
  }