vyriy 0.5.1 → 0.5.3

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.
Files changed (70) hide show
  1. package/README.md +23 -12
  2. package/args.js +40 -0
  3. package/bin/vyriy.js +1 -1
  4. package/cli.js +67 -0
  5. package/package.json +51 -6
  6. package/{cli/types.d.ts → types.d.ts} +7 -1
  7. package/cli/args.js +0 -29
  8. package/cli/cli.js +0 -28
  9. package/commands/check-env.d.ts +0 -2
  10. package/commands/check-env.js +0 -120
  11. package/commands/create/index.d.ts +0 -2
  12. package/commands/create/index.js +0 -135
  13. package/commands/create/plan/index.d.ts +0 -4
  14. package/commands/create/plan/index.js +0 -3
  15. package/commands/create/plan/plan.d.ts +0 -9
  16. package/commands/create/plan/plan.js +0 -34
  17. package/commands/create/plan/question.d.ts +0 -2
  18. package/commands/create/plan/question.js +0 -25
  19. package/commands/create/plan/types.d.ts +0 -14
  20. package/commands/create/preset/api.d.ts +0 -2
  21. package/commands/create/preset/api.js +0 -69
  22. package/commands/create/preset/base.d.ts +0 -2
  23. package/commands/create/preset/base.js +0 -195
  24. package/commands/create/preset/gql.d.ts +0 -2
  25. package/commands/create/preset/gql.js +0 -750
  26. package/commands/create/preset/index.d.ts +0 -47
  27. package/commands/create/preset/index.js +0 -56
  28. package/commands/create/preset/library.d.ts +0 -2
  29. package/commands/create/preset/library.js +0 -253
  30. package/commands/create/preset/mfe.d.ts +0 -2
  31. package/commands/create/preset/mfe.js +0 -333
  32. package/commands/create/preset/rest.d.ts +0 -2
  33. package/commands/create/preset/rest.js +0 -248
  34. package/commands/create/preset/shared.d.ts +0 -116
  35. package/commands/create/preset/shared.js +0 -245
  36. package/commands/create/preset/spa.d.ts +0 -2
  37. package/commands/create/preset/spa.js +0 -138
  38. package/commands/create/preset/ssg.d.ts +0 -2
  39. package/commands/create/preset/ssg.js +0 -177
  40. package/commands/create/preset/ssr.d.ts +0 -2
  41. package/commands/create/preset/ssr.js +0 -185
  42. package/commands/create/preset/types.d.ts +0 -15
  43. package/commands/create/prompt/conflict-strategy.d.ts +0 -5
  44. package/commands/create/prompt/conflict-strategy.js +0 -22
  45. package/commands/create/prompt/index.d.ts +0 -7
  46. package/commands/create/prompt/index.js +0 -6
  47. package/commands/create/prompt/preset.d.ts +0 -4
  48. package/commands/create/prompt/preset.js +0 -11
  49. package/commands/create/prompt/prompt.d.ts +0 -2
  50. package/commands/create/prompt/prompt.js +0 -4
  51. package/commands/create/prompt/provider.d.ts +0 -2
  52. package/commands/create/prompt/provider.js +0 -13
  53. package/commands/create/prompt/resolve-option.d.ts +0 -6
  54. package/commands/create/prompt/resolve-option.js +0 -8
  55. package/commands/create/prompt/scope.d.ts +0 -2
  56. package/commands/create/prompt/scope.js +0 -2
  57. package/commands/create/prompt/types.d.ts +0 -4
  58. package/commands/dist.d.ts +0 -2
  59. package/commands/dist.js +0 -287
  60. package/commands/help.d.ts +0 -3
  61. package/commands/help.js +0 -24
  62. package/commands/index.d.ts +0 -5
  63. package/commands/index.js +0 -5
  64. package/commands/types.d.ts +0 -44
  65. package/commands/version.d.ts +0 -2
  66. package/commands/version.js +0 -6
  67. /package/{cli/args.d.ts → args.d.ts} +0 -0
  68. /package/{cli/cli.d.ts → cli.d.ts} +0 -0
  69. /package/{cli/index.d.ts → index.d.ts} +0 -0
  70. /package/{cli/index.js → index.js} +0 -0
@@ -1,47 +0,0 @@
1
- export declare const presets: {
2
- base: {
3
- name: string;
4
- description: string;
5
- preset: import("./types.js").Preset;
6
- };
7
- library: {
8
- name: string;
9
- description: string;
10
- preset: import("./types.js").Preset;
11
- };
12
- api: {
13
- name: string;
14
- description: string;
15
- preset: import("./types.js").Preset;
16
- };
17
- ssr: {
18
- name: string;
19
- description: string;
20
- preset: import("./types.js").Preset;
21
- };
22
- ssg: {
23
- name: string;
24
- description: string;
25
- preset: import("./types.js").Preset;
26
- };
27
- spa: {
28
- name: string;
29
- description: string;
30
- preset: import("./types.js").Preset;
31
- };
32
- rest: {
33
- name: string;
34
- description: string;
35
- preset: import("./types.js").Preset;
36
- };
37
- gql: {
38
- name: string;
39
- description: string;
40
- preset: import("./types.js").Preset;
41
- };
42
- mfe: {
43
- name: string;
44
- description: string;
45
- preset: import("./types.js").Preset;
46
- };
47
- };
@@ -1,56 +0,0 @@
1
- import { base } from './base.js';
2
- import { library } from './library.js';
3
- import { api } from './api.js';
4
- import { ssr } from './ssr.js';
5
- import { ssg } from './ssg.js';
6
- import { spa } from './spa.js';
7
- import { rest } from './rest.js';
8
- import { gql } from './gql.js';
9
- import { mfe } from './mfe.js';
10
- export const presets = {
11
- base: {
12
- name: 'Base',
13
- description: 'Only configuration',
14
- preset: base,
15
- },
16
- library: {
17
- name: 'Library',
18
- description: 'Preset to generate JS/React library',
19
- preset: library,
20
- },
21
- api: {
22
- name: 'API',
23
- description: 'Preset to generate simple API',
24
- preset: api,
25
- },
26
- ssr: {
27
- name: 'SSR',
28
- description: 'Preset to generate simple Server Side Rendering (SSR) API',
29
- preset: ssr,
30
- },
31
- ssg: {
32
- name: 'SSG',
33
- description: 'Preset for Static Site Generation (SSG)',
34
- preset: ssg,
35
- },
36
- spa: {
37
- name: 'SPA',
38
- description: 'Preset for Single Page Application (SPA)',
39
- preset: spa,
40
- },
41
- rest: {
42
- name: 'REST',
43
- description: 'Preset for simple REST API',
44
- preset: rest,
45
- },
46
- gql: {
47
- name: 'GraphQL',
48
- description: 'Preset for GraphQL API',
49
- preset: gql,
50
- },
51
- mfe: {
52
- name: 'MFE',
53
- description: 'Preset for Micro Frontend',
54
- preset: mfe,
55
- },
56
- };
@@ -1,2 +0,0 @@
1
- import { Preset } from './types.js';
2
- export declare const library: Preset;
@@ -1,253 +0,0 @@
1
- import packageJson from '../../../package.json' with { type: 'json' };
2
- import { base } from './base.js';
3
- import { stylelintConfigFile } from './shared.js';
4
- export const library = {
5
- files: (options) => {
6
- const packageScope = options.scope ?? `@${options.name}`;
7
- const packageName = `${packageScope}/${options.name}`;
8
- return {
9
- ...base.files(options),
10
- 'package.json': JSON.stringify({
11
- name: options.name,
12
- version: '0.0.0',
13
- description: options.description,
14
- private: true,
15
- type: 'module',
16
- agents: './AGENTS.md',
17
- packageManager: packageJson.packageManager,
18
- engines: {
19
- node: packageJson.engines.node,
20
- },
21
- workspaces: [
22
- 'packages/*',
23
- ],
24
- license: 'MIT',
25
- repository: {
26
- type: 'git',
27
- url: `https://github.com/${options.name}/${options.name}`,
28
- },
29
- scripts: {
30
- storybook: 'cross-env STORYBOOK_DISABLE_TELEMETRY=1 storybook dev -p 6006 --disable-telemetry',
31
- check: 'run-s lint build test',
32
- fix: "run-s 'fix:*'",
33
- lint: "run-s 'lint:*'",
34
- build: "run-s 'build:*'",
35
- test: "run-s 'test:*'",
36
- 'fix:prettier': 'prettier . --write',
37
- 'fix:eslint': 'eslint . --fix',
38
- 'fix:stylelint': 'stylelint "**/*.{css,scss}" --fix',
39
- 'lint:ts': 'tsc',
40
- 'lint:prettier': 'prettier . --check',
41
- 'lint:eslint': 'eslint .',
42
- 'lint:stylelint': 'stylelint "**/*.{css,scss}"',
43
- 'build:dist': 'rimraf dist && tsc -p tsconfig.build.json && vyriy -d',
44
- 'build:storybook': 'cross-env STORYBOOK_DISABLE_TELEMETRY=1 storybook build --quiet --disable-telemetry',
45
- 'test:jest': 'jest',
46
- postinstall: 'husky',
47
- },
48
- dependencies: {
49
- '@vyriy/typescript-config': `^${packageJson.version}`,
50
- typescript: packageJson.peerDependencies.typescript,
51
- '@vyriy/prettier-config': `^${packageJson.version}`,
52
- prettier: packageJson.peerDependencies.prettier,
53
- '@vyriy/eslint-config': `^${packageJson.version}`,
54
- eslint: packageJson.peerDependencies.eslint,
55
- '@vyriy/jest-config': `^${packageJson.version}`,
56
- jest: packageJson.peerDependencies.jest,
57
- '@vyriy/storybook-config': `^${packageJson.version}`,
58
- storybook: packageJson.peerDependencies.storybook,
59
- '@vyriy/path': `^${packageJson.version}`,
60
- vyriy: `^${packageJson.version}`,
61
- husky: packageJson.peerDependencies.husky,
62
- 'npm-run-all2': packageJson.peerDependencies['npm-run-all2'],
63
- 'cross-env': packageJson.peerDependencies['cross-env'],
64
- react: packageJson.peerDependencies.react,
65
- 'react-dom': packageJson.peerDependencies['react-dom'],
66
- '@types/react': packageJson.peerDependencies['@types/react'],
67
- '@types/react-dom': packageJson.peerDependencies['@types/react-dom'],
68
- '@vyriy/stylelint-config': `^${packageJson.version}`,
69
- stylelint: packageJson.peerDependencies.stylelint,
70
- rimraf: packageJson.peerDependencies.rimraf,
71
- },
72
- }, null, 2) + '\n',
73
- 'tsconfig.build.json': JSON.stringify({
74
- extends: './tsconfig.json',
75
- include: [
76
- 'packages/**/*.ts',
77
- 'packages/**/*.tsx',
78
- 'packages/**/*.json',
79
- ],
80
- exclude: [
81
- '**/*.test.ts',
82
- '**/*.test.tsx',
83
- '**/*.stories.ts',
84
- '**/*.stories.tsx',
85
- ],
86
- compilerOptions: {
87
- rootDir: './packages',
88
- outDir: './dist',
89
- noEmit: false,
90
- declaration: true,
91
- allowImportingTsExtensions: false,
92
- },
93
- }, null, 2) + '\n',
94
- ...stylelintConfigFile(),
95
- [`packages/${options.name}/package.json`]: JSON.stringify({
96
- name: packageName,
97
- version: '0.0.0',
98
- description: options.description,
99
- private: true,
100
- type: 'module',
101
- main: 'index.js',
102
- dependencies: {
103
- '@vyriy/cn': `^${packageJson.version}`,
104
- },
105
- peerDependencies: {
106
- react: packageJson.peerDependencies.react,
107
- },
108
- }, null, 2) + '\n',
109
- [`packages/${options.name}/README.md`]: `# ${packageName}\n\n${options.description}\n`,
110
- [`packages/${options.name}/doc.mdx`]: `import { Meta, Markdown } from '@storybook/addon-docs/blocks';
111
- import ReadMe from './README.md?raw';
112
-
113
- <Meta title="UI/Button" />
114
-
115
- <Markdown>{ReadMe}</Markdown>
116
- `,
117
- [`packages/${options.name}/index.ts`]: "export * from './button.js';\nexport type * from './types.js';\n",
118
- [`packages/${options.name}/types.ts`]: `import type { ComponentProps, FC } from 'react';
119
-
120
- export type ButtonProps = ComponentProps<'button'> & {
121
- readonly variant?: 'primary' | 'secondary';
122
- };
123
-
124
- export type ButtonType = FC<ButtonProps>;
125
- `,
126
- [`packages/${options.name}/button.tsx`]: `import { cn } from '@vyriy/cn';
127
-
128
- import type { ButtonType } from './types.js';
129
-
130
- import './button.scss';
131
-
132
- export const Button: ButtonType = ({ className, variant = 'primary', ...props }) => (
133
- <button type="button" className={cn('button', \`button--\${variant}\`, className)} {...props} />
134
- );
135
- `,
136
- [`packages/${options.name}/index.test.ts`]: `import { describe, expect, it } from '@jest/globals';
137
-
138
- import { Button } from './button.js';
139
- import { Button as PublicButton } from './index.js';
140
-
141
- describe('ui entry point', () => {
142
- it('exports Button', () => {
143
- expect(PublicButton).toBe(Button);
144
- });
145
- });
146
- `,
147
- [`packages/${options.name}/button.scss`]: `.button {
148
- border: 1px solid transparent;
149
- border-radius: 6px;
150
- cursor: pointer;
151
- font: inherit;
152
- padding: 0.5rem 0.875rem;
153
- }
154
-
155
- .button--primary {
156
- background: #1f6feb;
157
- color: #fff;
158
- }
159
-
160
- .button--secondary {
161
- background: #fff;
162
- border-color: #d0d7de;
163
- color: #24292f;
164
- }
165
- `,
166
- [`packages/${options.name}/styles.d.ts`]: "declare module '*.scss';\n",
167
- [`packages/${options.name}/button.stories.tsx`]: `import type { Meta, StoryObj } from '@storybook/react-webpack5';
168
-
169
- import { Button } from './button.js';
170
-
171
- const meta = {
172
- title: 'UI/Button',
173
- component: Button,
174
- args: {
175
- children: 'Button',
176
- },
177
- argTypes: {
178
- children: {
179
- control: 'text',
180
- description: 'Button label.',
181
- table: {
182
- type: { summary: 'ReactNode' },
183
- },
184
- },
185
- variant: {
186
- control: 'select',
187
- options: ['primary', 'secondary'],
188
- description: 'Visual style of the button.',
189
- table: {
190
- type: { summary: "'primary' | 'secondary'" },
191
- defaultValue: { summary: 'primary' },
192
- },
193
- },
194
- className: {
195
- table: { disable: true },
196
- },
197
- },
198
- } satisfies Meta<typeof Button>;
199
-
200
- export default meta;
201
-
202
- type Story = StoryObj<typeof meta>;
203
-
204
- export const Primary: Story = {
205
- args: {
206
- variant: 'primary',
207
- },
208
- };
209
-
210
- export const Secondary: Story = {
211
- args: {
212
- variant: 'secondary',
213
- },
214
- };
215
- `,
216
- [`packages/${options.name}/button.test.tsx`]: `import type { ReactElement } from 'react';
217
- import { describe, expect, it } from '@jest/globals';
218
-
219
- import { Button } from './button.js';
220
-
221
- type ButtonElement = ReactElement<{
222
- readonly className: string;
223
- readonly type: string;
224
- }>;
225
-
226
- describe('Button', () => {
227
- it('creates a primary button by default', () => {
228
- const element = Button({ children: 'Save' }) as ButtonElement;
229
-
230
- expect(element.props.className).toBe('button button--primary');
231
- expect(element.props.type).toBe('button');
232
- });
233
-
234
- it('composes secondary and custom classes', () => {
235
- const element = Button({
236
- children: 'Cancel',
237
- className: 'wide',
238
- type: 'submit',
239
- variant: 'secondary',
240
- }) as ButtonElement;
241
-
242
- expect(element.props.className).toBe('button button--secondary wide');
243
- expect(element.props.type).toBe('submit');
244
- });
245
- });
246
- `,
247
- };
248
- },
249
- ci: {
250
- ...base.ci,
251
- },
252
- deploy: {},
253
- };
@@ -1,2 +0,0 @@
1
- import { Preset } from './types.js';
2
- export declare const mfe: Preset;