create-squire-workspace 0.1.56 → 0.1.58

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,33 +1,36 @@
1
- import { instance, scopedInstance } from "@code-squire/ioc";
1
+ import { instance } from "@code-squire/ioc";
2
2
  import { SqTerminal, TerminalColor } from "@code-squire/terminal";
3
3
  import { GeneratorRegistry, LintingTool, WorkspaceLogger } from "@code-squire/workspace";
4
4
  import { SqPathUtils, SqProcessManager } from "@code-squire/utils";
5
5
  import { askLinting, askScope } from "./interactions";
6
6
  import { SqArchitectModule } from "./architect.module";
7
7
  import { FeatureBroadCaster } from "@code-squire/feature-modules";
8
- import { SqVirtualFileSystem, SqVirtualTree } from "@code-squire/vfs";
8
+ import { SqVirtualFileSystem } from "@code-squire/vfs";
9
+ import { parseArgs } from "../tools";
9
10
  class WorkspaceArchitect {
10
11
  terminal = instance(SqTerminal);
11
12
  logger = instance(WorkspaceLogger);
12
13
  processManager = new SqProcessManager();
13
- virtualTree;
14
- debug = process.argv.slice(2)[1] === 'true';
14
+ debug;
15
+ registry = instance(GeneratorRegistry);
15
16
  async initialize() {
16
17
  const vfs = instance(SqVirtualFileSystem);
17
18
  const scope = 'workspace';
18
19
  const paths = [
19
- { path: process.cwd() }
20
+ { path: process.cwd(), alias: 'workspace' }
20
21
  ];
22
+ this.debug = parseArgs().debug;
21
23
  if (this.debug) {
22
24
  const normalized = SqPathUtils.normalize(process.cwd());
23
25
  paths.push({ path: normalized.split('/').slice(0, -1).join('/') });
24
26
  }
25
27
  await this.terminal.updatePosition();
26
28
  this.broadcast();
27
- this.virtualTree = await vfs.createTree({ paths, scope });
29
+ await vfs.createTree({ paths, scope });
30
+ await this.registry.virtualize();
28
31
  }
29
32
  async setupWorkspace() {
30
- const [name] = process.argv.slice(2);
33
+ const { name } = parseArgs();
31
34
  const options = await this.askUserNeeds();
32
35
  this.logger.setShowTimeLapsed(false);
33
36
  this.renderLogo();
@@ -73,16 +76,12 @@ class WorkspaceArchitect {
73
76
  this.terminal.log('Best of luck building something amazing with your trusted Squire by your side.\n');
74
77
  }
75
78
  async generateWorkspace(options) {
76
- const virtualTree = scopedInstance(SqVirtualTree, 'workspace');
77
- const registry = instance(GeneratorRegistry);
78
- await registry.virtualize();
79
- virtualTree.mount('workspace', process.cwd());
80
- const generator = await registry.getGenerator('@code-squire/architect', 'workspace');
79
+ const generator = await this.registry.getGenerator('@code-squire/architect', 'workspace');
81
80
  const { success } = await generator.execute(options);
82
81
  return success;
83
82
  }
84
83
  }
85
84
  const architect = new WorkspaceArchitect();
86
85
  await architect.initialize();
87
- await new WorkspaceArchitect().setupWorkspace();
86
+ await architect.setupWorkspace();
88
87
  //# sourceMappingURL=architect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"architect.js","sourceRoot":"","sources":["../../../../../../../../../../../create-workspace/src/architect/architect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"architect.js","sourceRoot":"","sources":["../../../../../../../../../../../create-workspace/src/architect/architect.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,17 @@
1
1
  #!/usr/bin/env node
2
- import process from "node:process";
3
- import filesystem from "fs";
4
- import child_process from "child_process";
5
2
  import URL from "url";
6
3
  import nodePath from "path";
4
+ import { parseArgs, dryRunFlag } from "./tools/parse-args";
5
+ import { runProcess } from "./tools/run-process";
7
6
  class CreateSquireWorkspace {
8
- version = '0.1.56';
7
+ version = '0.1.58';
9
8
  async create() {
10
- const [target, isDebug] = process.argv.slice(2);
11
- const debug = isDebug === 'true';
12
- filesystem.mkdirSync(target, { recursive: true });
13
- process.chdir(target);
14
- this.createPackageJson(target);
15
- console.log('Setting up your new Squire© workspace...\n');
16
- !debug && await this.runProcess('npm install');
9
+ const { name, debug } = parseArgs();
10
+ const creatorScript = this.getCreatorLocation(debug);
17
11
  const architectScript = this.getArchitectLocation(debug);
18
- await this.runProcess(`npx tsx ${architectScript} ${target} ${debug}`, true);
12
+ console.log('Installing the Squire© workspace dependencies...\n');
13
+ await runProcess(`npx tsx ${creatorScript} ${name} ${this.version} ${debug ? dryRunFlag : ''}`, true);
14
+ await runProcess(`npx tsx ${architectScript} ${name} ${this.version} ${debug ? dryRunFlag : ''}`, true, `${process.cwd()}/${name}`);
19
15
  }
20
16
  normalizePath(path) {
21
17
  return `${path}`
@@ -23,45 +19,10 @@ class CreateSquireWorkspace {
23
19
  .replace(/\/.\//g, '/')
24
20
  .replace(/^.\/\//, './');
25
21
  }
26
- createPackageJson(name) {
27
- const json = {
28
- name,
29
- version: '0.0.1',
30
- type: 'module',
31
- scripts: {
32
- squire: 'squire'
33
- },
34
- devDependencies: {
35
- '@code-squire/common': this.version,
36
- '@code-squire/utils': this.version,
37
- '@code-squire/ioc': this.version,
38
- '@code-squire/composition': this.version,
39
- '@code-squire/vfs': this.version,
40
- '@code-squire/squire': this.version,
41
- '@code-squire/feature-modules': this.version,
42
- '@code-squire/workspace': this.version,
43
- "@types/node": "^24.10.1",
44
- "typescript": "~5.9.3",
45
- "tsx": "^4.20.6",
46
- }
47
- };
48
- try {
49
- const parsedContent = JSON.stringify(json, null, 2);
50
- filesystem.writeFileSync('package.json', parsedContent, { encoding: 'utf-8' });
51
- }
52
- catch (error) {
53
- throw new Error(`Failed to create workspace folder`);
54
- }
55
- }
56
- async runProcess(command, output = false) {
57
- return new Promise((resolve, reject) => {
58
- const options = output ?
59
- { shell: true, stdio: 'inherit' } :
60
- { shell: true };
61
- const child = child_process.spawn(command, [], options);
62
- child.on('error', error => { throw error; });
63
- child.on('close', exitCode => resolve(exitCode));
64
- });
22
+ getCreatorLocation(debug) {
23
+ const currentFolder = URL.fileURLToPath(nodePath.dirname(import.meta.url));
24
+ const extension = debug ? '.ts' : '.js';
25
+ return `${this.normalizePath(currentFolder)}/creator/creator${extension}`;
65
26
  }
66
27
  getArchitectLocation(debug) {
67
28
  const currentFolder = URL.fileURLToPath(nodePath.dirname(import.meta.url));
@@ -1 +1 @@
1
- {"version":3,"file":"create-squire-workspace.js","sourceRoot":"","sources":["../../../../../../../../../../create-workspace/src/create-squire-workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-squire-workspace.js","sourceRoot":"","sources":["../../../../../../../../../../create-workspace/src/create-squire-workspace.ts"],"names":[],"mappings":";AAEA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,QAAQ,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,qBAAqB;IACjB,OAAO,GAAG,QAAQ,CAAC;IAEpB,KAAK,CAAC,MAAM;QACjB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAC;QACpC,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAEzD,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAElE,MAAM,UAAU,CACd,WAAY,aAAc,IAAK,IAAK,IAAK,IAAI,CAAC,OAAQ,IAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAG,EAAE,EACrF,IAAI,CACL,CAAC;QAEF,MAAM,UAAU,CACd,WAAY,eAAgB,IAAK,IAAK,IAAK,IAAI,CAAC,OAAQ,IAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAG,EAAE,EACvF,IAAI,EACJ,GAAI,OAAO,CAAC,GAAG,EAAG,IAAK,IAAK,EAAE,CAC/B,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,IAAY;QAChC,OAAO,GAAI,IAAK,EAAE;aACf,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;aACtB,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEO,kBAAkB,CAAC,KAAc;QACvC,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAExC,OAAO,GAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAE,mBAAoB,SAAU,EAAE,CAAC;IAChF,CAAC;IAEO,oBAAoB,CAAC,KAAc;QACzC,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAExC,OAAO,GAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAE,uBAAwB,SAAU,EAAE,CAAC;IACpF,CAAC;CACF;AAED,MAAM,IAAI,qBAAqB,EAAE,CAAC,MAAM,EAAE,CAAC"}
@@ -0,0 +1,46 @@
1
+ import process from "node:process";
2
+ import filesystem from "fs";
3
+ import { parseArgs } from "../tools/parse-args";
4
+ import { runProcess } from "../tools/run-process";
5
+ export class WorkspaceCreator {
6
+ async setupBasics() {
7
+ const { name, version, debug } = parseArgs();
8
+ filesystem.mkdirSync(name, { recursive: true });
9
+ process.chdir(name);
10
+ this.createPackageJson(name, version);
11
+ !debug && await runProcess('npm install');
12
+ }
13
+ createPackageJson(name, version) {
14
+ const json = {
15
+ name,
16
+ version: '0.0.1',
17
+ type: 'module',
18
+ scripts: {
19
+ squire: 'squire'
20
+ },
21
+ devDependencies: {
22
+ '@code-squire/common': version,
23
+ '@code-squire/utils': version,
24
+ '@code-squire/ioc': version,
25
+ '@code-squire/composition': version,
26
+ '@code-squire/vfs': version,
27
+ '@code-squire/squire': version,
28
+ '@code-squire/feature-modules': version,
29
+ '@code-squire/workspace': version,
30
+ "@types/node": "^24.10.1",
31
+ "typescript": "~5.9.3",
32
+ "tsx": "^4.20.6",
33
+ }
34
+ };
35
+ try {
36
+ const parsedContent = JSON.stringify(json, null, 2);
37
+ filesystem.writeFileSync('package.json', parsedContent, { encoding: 'utf-8' });
38
+ }
39
+ catch (error) {
40
+ throw new Error(`Failed to create workspace folder`);
41
+ }
42
+ }
43
+ }
44
+ const creator = new WorkspaceCreator();
45
+ await creator.setupBasics();
46
+ //# sourceMappingURL=creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creator.js","sourceRoot":"","sources":["../../../../../../../../../../../create-workspace/src/creator/creator.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,UAAU,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,OAAO,gBAAgB;IACpB,KAAK,CAAC,WAAW;QACtB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAC;QAE7C,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC,KAAK,IAAI,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IAEO,iBAAiB,CAAC,IAAY,EAAE,OAAe;QACrD,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,QAAQ;aACjB;YACD,eAAe,EAAE;gBACf,qBAAqB,EAAE,OAAO;gBAC9B,oBAAoB,EAAE,OAAO;gBAC7B,kBAAkB,EAAE,OAAO;gBAC3B,0BAA0B,EAAE,OAAO;gBACnC,kBAAkB,EAAE,OAAO;gBAC3B,qBAAqB,EAAE,OAAO;gBAC9B,8BAA8B,EAAE,OAAO;gBACvC,wBAAwB,EAAE,OAAO;gBACjC,aAAa,EAAE,UAAU;gBACzB,YAAY,EAAE,QAAQ;gBACtB,KAAK,EAAE,SAAS;aACjB;SACF,CAAA;QAED,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAEpD,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACjF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;AACvC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './creator';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../../../create-workspace/src/creator/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
package/index.js CHANGED
@@ -1,3 +1,5 @@
1
1
  export * from './create-squire-workspace';
2
+ export * from './tools';
3
+ export * from './creator';
2
4
  export * from './architect';
3
5
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../../create-workspace/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAE1C,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../../create-workspace/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAE1C,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "create-squire-workspace",
3
- "version": "0.1.56",
3
+ "version": "0.1.58",
4
4
  "type": "module",
5
5
  "main": "./create-workspace.js",
6
6
  "types": "./create-squire-workspace.d.ts",
7
7
  "dependencies": {
8
- "@code-squire/workspace": "0.1.56",
9
- "@code-squire/utils": "0.1.56",
10
- "@code-squire/node-cli": "0.1.56",
11
- "@code-squire/feature-modules": "0.1.56",
12
- "@code-squire/vfs": "0.1.56",
13
- "@code-squire/ioc": "0.1.56",
14
- "@code-squire/terminal": "0.1.56"
8
+ "@code-squire/workspace": "0.1.58",
9
+ "@code-squire/utils": "0.1.58",
10
+ "@code-squire/node-cli": "0.1.58",
11
+ "@code-squire/feature-modules": "0.1.58",
12
+ "@code-squire/vfs": "0.1.58",
13
+ "@code-squire/ioc": "0.1.58",
14
+ "@code-squire/terminal": "0.1.58"
15
15
  },
16
16
  "bin": "./create-squire-workspace.js"
17
17
  }
package/tools/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './run-process';
2
+ export * from './parse-args';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../../../create-workspace/src/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,9 @@
1
+ import process from "node:process";
2
+ export const dryRunFlag = 'dry-run=true';
3
+ export function parseArgs() {
4
+ const args = process.argv.slice(2);
5
+ const [name, version] = args;
6
+ const debug = args.indexOf(dryRunFlag) >= 0;
7
+ return { name, debug, version: version === dryRunFlag ? '' : version };
8
+ }
9
+ //# sourceMappingURL=parse-args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-args.js","sourceRoot":"","sources":["../../../../../../../../../../../create-workspace/src/tools/parse-args.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC;AAQzC,MAAM,UAAU,SAAS;IACvB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,CAAE,IAAI,EAAE,OAAO,CAAE,GAAG,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE5C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AACzE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import child_process from "child_process";
2
+ export async function runProcess(command, output = false, cwd = process.cwd()) {
3
+ return new Promise((resolve, reject) => {
4
+ const options = output ?
5
+ { shell: true, stdio: 'inherit', cwd } :
6
+ { shell: true, cwd };
7
+ const child = child_process.spawn(command, [], options);
8
+ child.on('error', error => { throw error; });
9
+ child.on('close', exitCode => resolve(exitCode));
10
+ });
11
+ }
12
+ //# sourceMappingURL=run-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-process.js","sourceRoot":"","sources":["../../../../../../../../../../../create-workspace/src/tools/run-process.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,eAAe,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACnF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAwB,MAAM,CAAC,CAAC;YAC3C,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YACxC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;QAEtB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAExD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM,KAAK,CAAA,CAAC,CAAC,CAAC,CAAC;QAC5C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC"}