@interopio/iocd-cli 1.0.2 → 1.1.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.
Files changed (48) hide show
  1. package/README.md +28 -2
  2. package/changelog.md +16 -0
  3. package/dist/cli.js +2 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/apps.command.js +83 -0
  6. package/dist/commands/apps.command.js.map +1 -1
  7. package/dist/commands/index.js +3 -1
  8. package/dist/commands/index.js.map +1 -1
  9. package/dist/commands/skills.command.js +56 -0
  10. package/dist/commands/skills.command.js.map +1 -0
  11. package/dist/services/dev.service.js +5 -1
  12. package/dist/services/dev.service.js.map +1 -1
  13. package/dist/services/skills.service.js +178 -0
  14. package/dist/services/skills.service.js.map +1 -0
  15. package/dist/services/template.service.js +141 -9
  16. package/dist/services/template.service.js.map +1 -1
  17. package/dist/services/test-infrastructure.service.js +7 -17
  18. package/dist/services/test-infrastructure.service.js.map +1 -1
  19. package/dist/services/test.service.js +21 -8
  20. package/dist/services/test.service.js.map +1 -1
  21. package/dist/templates/ioconnect-desktop/README.md +28 -2
  22. package/dist/templates/launchpad/apps/launchpad/.gitignore.template +23 -1
  23. package/dist/templates/launchpad/apps/launchpad/.prettierignore +3 -0
  24. package/dist/templates/launchpad/apps/launchpad/.prettierrc +6 -0
  25. package/dist/templates/launchpad/apps/launchpad/README.md +220 -0
  26. package/dist/templates/launchpad/apps/launchpad/config/iocd.app.def.dev.json +1 -1
  27. package/dist/templates/launchpad/apps/launchpad/index.html +13 -14
  28. package/dist/templates/launchpad/apps/launchpad/package.json +17 -9
  29. package/dist/templates/launchpad/apps/launchpad/src/app/app.tsx +31 -37
  30. package/dist/templates/launchpad/apps/launchpad/src/components/launchpad.tsx +37 -0
  31. package/dist/templates/launchpad/apps/launchpad/src/{app → constants}/constants.ts +2 -1
  32. package/dist/templates/launchpad/apps/launchpad/src/main.tsx +1 -3
  33. package/dist/templates/launchpad/apps/launchpad/src/styles.css +2 -17
  34. package/dist/templates/launchpad/apps/launchpad/tsconfig.json +10 -8
  35. package/dist/templates/launchpad/apps/launchpad/vite-env.d.ts +1 -0
  36. package/dist/templates/launchpad/apps/launchpad/vite.config.ts +8 -3
  37. package/dist/templates/tests/.agents/skills/iocd-wdio-testing/references/configuration.md +3 -2
  38. package/dist/templates/tests/.agents/skills/iocd-wdio-testing/references/models.md +1 -1
  39. package/dist/templates/tests/.agents/skills/iocd-wdio-testing/references/troubleshooting.md +8 -9
  40. package/dist/templates/tests/tests/package.json +1 -1
  41. package/dist/utils/template-update.js +6 -0
  42. package/dist/utils/template-update.js.map +1 -0
  43. package/package.json +3 -1
  44. package/dist/templates/launchpad/apps/launchpad/package-lock.json +0 -2778
  45. package/dist/templates/launchpad/apps/launchpad/src/components/logo.tsx +0 -11
  46. package/dist/templates/launchpad/apps/launchpad/src/components/main-context-menu.tsx +0 -212
  47. package/dist/templates/launchpad/apps/launchpad/src/components/notifications-button.tsx +0 -51
  48. package/dist/templates/tests/tests/package-lock.json +0 -8441
@@ -11,6 +11,8 @@ const error_handler_1 = require("../utils/error.handler");
11
11
  const fs_extra_1 = __importDefault(require("fs-extra"));
12
12
  const config_service_1 = require("./config/config.service");
13
13
  const path_1 = require("../utils/path");
14
+ class TemplateRestoreError extends Error {
15
+ }
14
16
  /**
15
17
  * TemplateService handles the generation of io.Connect Desktop projects using a modular template system.
16
18
  *
@@ -42,9 +44,14 @@ const path_1 = require("../utils/path");
42
44
  */
43
45
  class TemplateService {
44
46
  logger = logger_1.Logger.getInstance("template.service");
47
+ rootDir;
45
48
  templatesPath;
46
- constructor() {
47
- this.templatesPath = (0, node_path_1.join)(__dirname, "../templates");
49
+ renamePath;
50
+ constructor(options = {}) {
51
+ this.rootDir = options.rootDir ?? path_1.PathUtils.getRootDir();
52
+ this.templatesPath =
53
+ options.templatesPath ?? (0, node_path_1.join)(__dirname, "../templates");
54
+ this.renamePath = options.renamePath ?? node_fs_1.renameSync;
48
55
  }
49
56
  /**
50
57
  * Get the path to embedded templates
@@ -124,7 +131,8 @@ class TemplateService {
124
131
  });
125
132
  }
126
133
  const templatePath = (0, node_path_1.join)(this.templatesPath, templateName);
127
- const autoIncludedApplications = this.getAvailableApplicationTemplates()
134
+ const autoIncludedApplications = this.getAvailableTemplates()
135
+ .map(templateName => this.getTemplateInfo(templateName))
128
136
  .filter(template => template.autoInclude === true)
129
137
  .map(template => template.name);
130
138
  const templateApplications = [
@@ -181,9 +189,132 @@ class TemplateService {
181
189
  templateApplications: [appName],
182
190
  initialComponents: [],
183
191
  });
184
- await this.processApplicationsTemplates("./", variables, [appName]);
192
+ await this.processApplicationsTemplates(this.rootDir, variables, [appName]);
185
193
  this.logger.info(`Template application ${appName} added successfully`);
186
194
  }
195
+ async updateTemplateApplication(appName) {
196
+ this.logger.info(`Updating template application: ${appName}`);
197
+ try {
198
+ if (!this.templateExists(appName)) {
199
+ throw new error_handler_1.CLIError(`Template '${appName}' not found`, {
200
+ code: error_handler_1.ErrorCode.NOT_FOUND,
201
+ suggestions: ["Check available templates with: iocd apps list"],
202
+ });
203
+ }
204
+ const templateInfo = this.getTemplateInfo(appName);
205
+ if (templateInfo.type !== "application") {
206
+ throw new error_handler_1.CLIError(`Template '${appName}' is not an application template`, { code: error_handler_1.ErrorCode.VALIDATION_ERROR });
207
+ }
208
+ const templateAppsRoot = (0, node_path_1.join)(this.templatesPath, appName, "apps");
209
+ if (!(0, node_fs_1.existsSync)(templateAppsRoot)) {
210
+ throw new error_handler_1.CLIError(`Template application '${appName}' doesn't contain an apps directory`, { code: error_handler_1.ErrorCode.FILE_SYSTEM_ERROR });
211
+ }
212
+ const appDirectories = (0, node_fs_1.readdirSync)(templateAppsRoot, {
213
+ withFileTypes: true,
214
+ })
215
+ .filter(entry => entry.isDirectory())
216
+ .map(entry => entry.name);
217
+ if (appDirectories.length === 0) {
218
+ throw new error_handler_1.CLIError(`Template application '${appName}' doesn't contain an app`, { code: error_handler_1.ErrorCode.FILE_SYSTEM_ERROR });
219
+ }
220
+ const destinations = appDirectories.map(directory => (0, node_path_1.join)(this.rootDir, "apps", directory));
221
+ const missingDestination = destinations.find(destination => !(0, node_fs_1.existsSync)(destination));
222
+ if (missingDestination) {
223
+ throw new error_handler_1.CLIError(`Template application '${appName}' is not installed at '${missingDestination}'`, {
224
+ code: error_handler_1.ErrorCode.NOT_FOUND,
225
+ suggestions: [`Add it first with: iocd apps add ${appName}`],
226
+ });
227
+ }
228
+ const variables = this.getProjectTemplateVariables(appName);
229
+ const stagingParent = (0, node_path_1.join)(this.rootDir, ".iocd-cli", "temp");
230
+ (0, node_fs_1.mkdirSync)(stagingParent, { recursive: true });
231
+ const stagingRoot = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)(stagingParent, `template-${appName}-`));
232
+ const nextRoot = (0, node_path_1.join)(stagingRoot, "next");
233
+ const previousRoot = (0, node_path_1.join)(stagingRoot, "previous");
234
+ (0, node_fs_1.mkdirSync)(nextRoot, { recursive: true });
235
+ (0, node_fs_1.mkdirSync)(previousRoot, { recursive: true });
236
+ let preserveStaging = false;
237
+ try {
238
+ for (const directory of appDirectories) {
239
+ const source = (0, node_path_1.join)(templateAppsRoot, directory);
240
+ const stagedApp = (0, node_path_1.join)(nextRoot, directory);
241
+ this.logger.debug(`Staging template application from '${source}' to '${stagedApp}'.`);
242
+ (0, node_fs_1.mkdirSync)(stagedApp, { recursive: true });
243
+ await this.copyTemplateFiles(source, stagedApp, variables);
244
+ }
245
+ this.publishTemplateApplications(appDirectories, destinations, nextRoot, previousRoot);
246
+ }
247
+ catch (error) {
248
+ preserveStaging = error instanceof TemplateRestoreError;
249
+ throw error;
250
+ }
251
+ finally {
252
+ if (preserveStaging) {
253
+ this.logger.warn(`Preserving template update staging directory for recovery: ${stagingRoot}`);
254
+ }
255
+ else {
256
+ (0, node_fs_1.rmSync)(stagingRoot, { recursive: true, force: true });
257
+ }
258
+ }
259
+ this.logger.info(`Template application ${appName} updated successfully`);
260
+ }
261
+ catch (error) {
262
+ this.logger.error(`Failed to update template application '${appName}'.`, error);
263
+ throw error;
264
+ }
265
+ }
266
+ publishTemplateApplications(appDirectories, destinations, nextRoot, previousRoot) {
267
+ const movedPrevious = [];
268
+ const publishedDestinations = [];
269
+ try {
270
+ for (let index = 0; index < appDirectories.length; index += 1) {
271
+ const directory = appDirectories[index];
272
+ const destination = destinations[index];
273
+ const previous = (0, node_path_1.join)(previousRoot, directory);
274
+ this.logger.debug(`Moving existing template application directory from '${destination}' to '${previous}'.`);
275
+ this.renamePath(destination, previous);
276
+ movedPrevious.push({ previous, destination });
277
+ }
278
+ for (let index = 0; index < appDirectories.length; index += 1) {
279
+ const directory = appDirectories[index];
280
+ const destination = destinations[index];
281
+ this.renamePath((0, node_path_1.join)(nextRoot, directory), destination);
282
+ publishedDestinations.push(destination);
283
+ this.logger.debug(`Published updated template application directory: ${destination}`);
284
+ }
285
+ }
286
+ catch (error) {
287
+ this.logger.warn("Template application publication failed; restoring the previous application files.");
288
+ for (const destination of publishedDestinations.reverse()) {
289
+ (0, node_fs_1.rmSync)(destination, { recursive: true, force: true });
290
+ }
291
+ try {
292
+ for (const { previous, destination } of movedPrevious.reverse()) {
293
+ if ((0, node_fs_1.existsSync)(previous)) {
294
+ this.renamePath(previous, destination);
295
+ }
296
+ }
297
+ }
298
+ catch (restoreError) {
299
+ throw new TemplateRestoreError(`Template application update failed and the previous application could not be restored. Previous files remain under '${previousRoot}'. Update error: ${error.message}. Restore error: ${restoreError.message}`);
300
+ }
301
+ throw error;
302
+ }
303
+ }
304
+ getProjectTemplateVariables(appName) {
305
+ const config = config_service_1.ConfigManager.config;
306
+ return this.prepareTemplateVariables({
307
+ productSlug: config.productSlug,
308
+ productName: config.productName,
309
+ productDescription: config.productDescription,
310
+ company: config.company,
311
+ copyright: config.copyright,
312
+ version: config.version,
313
+ targetDirectory: this.rootDir,
314
+ templateApplications: [appName],
315
+ initialComponents: [],
316
+ });
317
+ }
187
318
  /** Adds initialComponents to the iocd.cli.config.json -> components.list object in the target directory */
188
319
  updateComponentsConfig(targetDirectory, initialComponents, componentSource) {
189
320
  // Try root directory first
@@ -317,8 +448,8 @@ class TemplateService {
317
448
  (0, node_fs_1.writeFileSync)(targetPath, targetContent, "utf-8");
318
449
  this.logger.debug(`Copied and processed: ${(0, node_path_1.relative)(process.cwd(), targetPath)}`);
319
450
  }
320
- copyFileNoReplacement(source, destination) {
321
- fs_extra_1.default.copyFile(source, destination);
451
+ async copyFileNoReplacement(source, destination) {
452
+ await fs_extra_1.default.copyFile(source, destination);
322
453
  }
323
454
  /**
324
455
  * Process feature-specific templates
@@ -330,10 +461,11 @@ class TemplateService {
330
461
  this.logger.warn(`Application template '${application}' not found in templates directory`);
331
462
  continue;
332
463
  }
333
- // Verify it's a application template
464
+ // Verify it's a project feature template.
334
465
  const templateInfo = this.getTemplateInfo(application);
335
- if (templateInfo.type !== "application") {
336
- this.logger.warn(`Template '${application}' is not a application template, skipping`);
466
+ if (templateInfo.type !== "application" &&
467
+ templateInfo.type !== "tests") {
468
+ this.logger.warn(`Template '${application}' is not a project feature template, skipping`);
337
469
  continue;
338
470
  }
339
471
  this.logger.debug(`Processing application template: ${application}`);
@@ -1 +1 @@
1
- {"version":3,"file":"template.service.js","sourceRoot":"","sources":["../../src/services/template.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.service.js","sourceRoot":"","sources":["../../src/services/template.service.ts"],"names":[],"mappings":"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"}
@@ -5,16 +5,22 @@ const fs_1 = require("fs");
5
5
  const path_1 = require("path");
6
6
  const child_process_1 = require("child_process");
7
7
  const path_2 = require("../utils/path");
8
+ const skills_service_1 = require("./skills.service");
8
9
  class TestInfrastructureService {
9
10
  rootDir;
10
11
  testsDir;
11
12
  templateDir;
13
+ skillsService;
12
14
  runNpm;
13
15
  constructor(options = {}) {
14
16
  this.rootDir = options.rootDir ?? path_2.PathUtils.getRootDir();
15
17
  this.testsDir = options.testsDir ?? path_2.PathUtils.getTestsDir();
16
18
  this.templateDir =
17
19
  options.templateDir ?? (0, path_1.join)(__dirname, "../templates/tests");
20
+ this.skillsService = new skills_service_1.SkillsService({
21
+ rootDir: this.rootDir,
22
+ sourceDir: options.skillsSourceDir ?? (0, path_1.join)(this.templateDir, ".agents", "skills"),
23
+ });
18
24
  this.runNpm = options.runNpm ?? this.runNpmCommand.bind(this);
19
25
  }
20
26
  async setup() {
@@ -22,19 +28,14 @@ class TestInfrastructureService {
22
28
  if ((0, fs_1.existsSync)(this.testsDir)) {
23
29
  throw new Error(`The tests directory already exists at '${this.testsDir}'. Back up or remove it, then run 'iocd test setup' again.`);
24
30
  }
25
- const skillDir = this.getSkillDir();
26
- const skillAlreadyExists = (0, fs_1.existsSync)(skillDir);
27
31
  try {
28
32
  (0, fs_1.mkdirSync)(this.testsDir, { recursive: true });
29
33
  this.copyDirectory((0, path_1.join)(this.templateDir, "tests"), this.testsDir, true);
30
- this.copySkill(false);
31
34
  await this.validateInstallation();
35
+ this.skillsService.installMissing();
32
36
  }
33
37
  catch (error) {
34
38
  (0, fs_1.rmSync)(this.testsDir, { recursive: true, force: true });
35
- if (!skillAlreadyExists) {
36
- (0, fs_1.rmSync)(skillDir, { recursive: true, force: true });
37
- }
38
39
  throw new Error(`Test infrastructure setup failed and the created files were removed: ${error.message}`);
39
40
  }
40
41
  }
@@ -61,17 +62,6 @@ class TestInfrastructureService {
61
62
  throw new Error(`The tests directory must resolve inside the seed root. '${this.testsDir}' escapes '${this.rootDir}'. Set 'testsDirectory' to a path within the project.`);
62
63
  }
63
64
  }
64
- getSkillDir() {
65
- return (0, path_1.join)(this.rootDir, ".agents", "skills", "iocd-wdio-testing");
66
- }
67
- copySkill(overwrite) {
68
- const source = (0, path_1.join)(this.templateDir, ".agents", "skills", "iocd-wdio-testing");
69
- const destination = this.getSkillDir();
70
- if (!(0, fs_1.existsSync)(source) || (!overwrite && (0, fs_1.existsSync)(destination))) {
71
- return;
72
- }
73
- this.copyDirectory(source, destination, overwrite);
74
- }
75
65
  copyDirectory(source, destination, overwrite) {
76
66
  (0, fs_1.mkdirSync)(destination, { recursive: true });
77
67
  for (const entry of (0, fs_1.readdirSync)(source, { withFileTypes: true })) {
@@ -1 +1 @@
1
- {"version":3,"file":"test-infrastructure.service.js","sourceRoot":"","sources":["../../src/services/test-infrastructure.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-infrastructure.service.js","sourceRoot":"","sources":["../../src/services/test-infrastructure.service.ts"],"names":[],"mappings":"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"}
@@ -39,18 +39,32 @@ const fs = __importStar(require("fs"));
39
39
  const path = __importStar(require("path"));
40
40
  const path_1 = require("../utils/path");
41
41
  const child_process_1 = require("child_process");
42
- const license_file_service_1 = require("./license-file.service");
42
+ const license_service_1 = require("./license.service");
43
43
  /**
44
44
  * TestService handles running automated tests for the io.Connect Desktop application.
45
45
  *
46
46
  * This service:
47
47
  * - Locates the tests directory in the project
48
48
  * - Ensures node_modules are installed in the tests directory
49
+ * - Prepares the in-place component with the seed's dev modifications
49
50
  * - Sets the BINARY_PATH environment variable to point to the built executable
51
+ * - Passes the seed license to the test process through IOCD_LICENSE_KEY
50
52
  * - Runs the test script defined in the tests package.json
51
53
  */
52
54
  class TestService {
53
55
  logger = logger_1.Logger.getInstance("test.service");
56
+ prepareIocd;
57
+ getLicenseKey;
58
+ constructor(options = {}) {
59
+ this.prepareIocd =
60
+ options.prepareIocd ??
61
+ (async () => {
62
+ const { prepareIocdForDev } = await import("./dev.service.js");
63
+ await prepareIocdForDev();
64
+ });
65
+ this.getLicenseKey =
66
+ options.getLicenseKey ?? (() => new license_service_1.LicenseService().getLicenseKey());
67
+ }
54
68
  /**
55
69
  * Run tests for the io.Connect Desktop application
56
70
  */
@@ -64,19 +78,17 @@ class TestService {
64
78
  this.logger.debug(`Tests directory: ${testsDir}`);
65
79
  // Check if node_modules exists, if not run npm install
66
80
  await this.ensureNodeModulesInstalled(testsDir);
81
+ // Prepare the in-place component exactly as dev mode does before launching it.
82
+ await this.prepareIocd();
67
83
  // Get the binary path based on platform
68
84
  const binaryPath = path_1.PathUtils.getIOCDExePath();
69
85
  this.logger.info(`Binary path: ${binaryPath}`);
70
86
  // Verify binary exists
71
87
  if (!fs.existsSync(binaryPath)) {
72
- throw new Error(`Binary not found at ${binaryPath}. Please run 'iocd dev' first to create the executable.`);
88
+ throw new Error(`Binary not found at ${binaryPath} after dev preparation. Run 'iocd setup' to reinstall the configured component.`);
73
89
  }
74
- // copy license file to binary directory if it exists
75
- await license_file_service_1.LicenseFileService.copyLicenseFile(true);
76
90
  // Run the test script
77
- await this.runTestScript(testsDir, binaryPath, args);
78
- // remove license file after tests (as tests ignore the copy setting)
79
- await license_file_service_1.LicenseFileService.removeLicenseFile();
91
+ await this.runTestScript(testsDir, binaryPath, args, this.getLicenseKey());
80
92
  }
81
93
  /**
82
94
  * Ensure node_modules are installed in the tests directory
@@ -122,7 +134,7 @@ class TestService {
122
134
  /**
123
135
  * Run the test script in the tests directory
124
136
  */
125
- async runTestScript(testsDir, binaryPath, args = []) {
137
+ async runTestScript(testsDir, binaryPath, args = [], licenseKey) {
126
138
  this.logger.info("Running tests...");
127
139
  return new Promise((resolve, reject) => {
128
140
  const npmCommand = process.platform === "win32" ? "npm.cmd" : "npm";
@@ -134,6 +146,7 @@ class TestService {
134
146
  env: {
135
147
  ...process.env,
136
148
  BINARY_PATH: binaryPath,
149
+ ...(licenseKey ? { IOCD_LICENSE_KEY: licenseKey } : {}),
137
150
  },
138
151
  });
139
152
  child.on("close", code => {
@@ -1 +1 @@
1
- {"version":3,"file":"test.service.js","sourceRoot":"","sources":["../../src/services/test.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.service.js","sourceRoot":"","sources":["../../src/services/test.service.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@
27
27
  - [Testing](#testing)
28
28
  - [Running Tests](#running-tests)
29
29
  - [Writing Tests](#writing-tests)
30
+ - [Updating Coding Agent Skills](#updating-coding-agent-skills)
30
31
  - [Building for Production](#building-for-production-1)
31
32
  - [Build Commands](#build-commands)
32
33
  - [Build Output](#build-output)
@@ -336,8 +337,22 @@ Template applications can be selected during project creation or added later:
336
337
  # Add template application
337
338
  iocd apps add workspaces
338
339
 
339
- # List available templates
340
- iocd apps list --available
340
+ # List installed and available templates
341
+ iocd apps list
342
+
343
+ # Update one template application
344
+ iocd apps update workspaces
345
+ ```
346
+
347
+ Updating a template application permanently deletes its existing app directory and
348
+ copies the current template shipped by the CLI. This removes all customizations and
349
+ other files in that directory. Commit or copy your work before running the command.
350
+ The CLI displays this warning and asks for confirmation before deleting anything.
351
+
352
+ For an intentional non-interactive update, use `--yes` to skip the confirmation:
353
+
354
+ ```bash
355
+ iocd apps update workspaces --yes
341
356
  ```
342
357
 
343
358
  **Available templates:**
@@ -480,6 +495,17 @@ describe('io.Connect Desktop Application', () => {
480
495
 
481
496
  Add your test files to the `tests/` directory. They'll run automatically in CI/CD pipelines.
482
497
 
498
+ ### Updating Coding Agent Skills
499
+
500
+ The CLI ships coding agent skills in `.agents/skills/`. After updating
501
+ `@interopio/iocd-cli`, replace all CLI-managed skills with their current versions:
502
+
503
+ ```bash
504
+ npx iocd skills update
505
+ ```
506
+
507
+ The command overwrites skills shipped by the CLI and preserves other skills in the project.
508
+
483
509
  ---
484
510
 
485
511
  ## Building for Production
@@ -1 +1,23 @@
1
- public/modals-ui/
1
+ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2
+
3
+ # dependencies
4
+ /node_modules
5
+ /.pnp
6
+ .pnp.js
7
+
8
+ # testing
9
+ /coverage
10
+
11
+ # production
12
+ /build
13
+
14
+ # misc
15
+ .DS_Store
16
+ .env.local
17
+ .env.development.local
18
+ .env.test.local
19
+ .env.production.local
20
+
21
+ npm-debug.log*
22
+ yarn-debug.log*
23
+ yarn-error.log*
@@ -0,0 +1,3 @@
1
+ node_modules
2
+ dist
3
+ build
@@ -0,0 +1,6 @@
1
+ {
2
+ "semi": true,
3
+ "tabWidth": 2,
4
+ "trailingComma": "es5",
5
+ "printWidth": 100
6
+ }