@powerhousedao/codegen 5.1.0-dev.36 → 5.1.0-dev.37
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/dist/src/create-lib/create-project.d.ts +8 -27
- package/dist/src/create-lib/create-project.d.ts.map +1 -1
- package/dist/src/create-lib/create-project.js +78 -231
- package/dist/src/create-lib/create-project.js.map +1 -1
- package/dist/src/create-lib/utils.d.ts +1 -0
- package/dist/src/create-lib/utils.d.ts.map +1 -1
- package/dist/src/create-lib/utils.js +6 -0
- package/dist/src/create-lib/utils.js.map +1 -1
- package/dist/src/file-builders/boilerplate/build-package-json.test.d.ts +2 -0
- package/dist/src/file-builders/boilerplate/build-package-json.test.d.ts.map +1 -0
- package/dist/src/file-builders/boilerplate/build-package-json.test.js +25 -0
- package/dist/src/file-builders/boilerplate/build-package-json.test.js.map +1 -0
- package/dist/src/file-builders/boilerplate/constants.d.ts +3 -0
- package/dist/src/file-builders/boilerplate/constants.d.ts.map +1 -0
- package/dist/src/file-builders/boilerplate/constants.js +19 -0
- package/dist/src/file-builders/boilerplate/constants.js.map +1 -0
- package/dist/src/file-builders/boilerplate/package-json-versions.test.d.ts +2 -0
- package/dist/src/file-builders/boilerplate/package-json-versions.test.d.ts.map +1 -0
- package/dist/src/file-builders/boilerplate/package-json-versions.test.js +34 -0
- package/dist/src/file-builders/boilerplate/package-json-versions.test.js.map +1 -0
- package/dist/src/file-builders/boilerplate/package.json.d.ts +6 -0
- package/dist/src/file-builders/boilerplate/package.json.d.ts.map +1 -0
- package/dist/src/file-builders/boilerplate/package.json.js +19 -0
- package/dist/src/file-builders/boilerplate/package.json.js.map +1 -0
- package/dist/src/file-builders/index.d.ts +4 -0
- package/dist/src/file-builders/index.d.ts.map +1 -0
- package/dist/src/file-builders/index.js +4 -0
- package/dist/src/file-builders/index.js.map +1 -0
- package/dist/src/file-builders/utils.d.ts +17 -0
- package/dist/src/file-builders/utils.d.ts.map +1 -0
- package/dist/src/file-builders/utils.js +64 -0
- package/dist/src/file-builders/utils.js.map +1 -0
- package/dist/src/templates/boilerplate/AGENTS.md.d.ts +2 -0
- package/dist/src/templates/boilerplate/AGENTS.md.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/AGENTS.md.js +408 -0
- package/dist/src/templates/boilerplate/AGENTS.md.js.map +1 -0
- package/dist/src/templates/boilerplate/CLAUDE.md.d.ts +2 -0
- package/dist/src/templates/boilerplate/CLAUDE.md.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/CLAUDE.md.js +408 -0
- package/dist/src/templates/boilerplate/CLAUDE.md.js.map +1 -0
- package/dist/src/templates/boilerplate/LICENSE.d.ts +2 -0
- package/dist/src/templates/boilerplate/LICENSE.d.ts.map +1 -0
- package/{LICENSE → dist/src/templates/boilerplate/LICENSE.js} +4 -1
- package/dist/src/templates/boilerplate/LICENSE.js.map +1 -0
- package/dist/src/templates/boilerplate/README.md.d.ts +2 -0
- package/dist/src/templates/boilerplate/README.md.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/README.md.js +194 -0
- package/dist/src/templates/boilerplate/README.md.js.map +1 -0
- package/dist/src/templates/boilerplate/claude/settings.local.json.d.ts +2 -0
- package/dist/src/templates/boilerplate/claude/settings.local.json.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/claude/settings.local.json.js +18 -0
- package/dist/src/templates/boilerplate/claude/settings.local.json.js.map +1 -0
- package/dist/src/templates/boilerplate/cursor/mcp.json.d.ts +2 -0
- package/dist/src/templates/boilerplate/cursor/mcp.json.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/cursor/mcp.json.js +12 -0
- package/dist/src/templates/boilerplate/cursor/mcp.json.js.map +1 -0
- package/dist/src/templates/boilerplate/document-models/document-models.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/document-models/document-models.js.map +1 -0
- package/dist/src/templates/boilerplate/document-models/index.d.ts +2 -0
- package/dist/src/templates/boilerplate/document-models/index.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/document-models/index.js +2 -0
- package/dist/src/templates/boilerplate/document-models/index.js.map +1 -0
- package/dist/src/templates/boilerplate/editors/editors.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/editors/editors.js.map +1 -0
- package/dist/src/templates/boilerplate/editors/index.d.ts +2 -0
- package/dist/src/templates/boilerplate/editors/index.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/editors/index.js +2 -0
- package/dist/src/templates/boilerplate/editors/index.js.map +1 -0
- package/dist/src/templates/boilerplate/eslint.config.js.d.ts +2 -0
- package/dist/src/templates/boilerplate/eslint.config.js.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/eslint.config.js.js +140 -0
- package/dist/src/templates/boilerplate/eslint.config.js.js.map +1 -0
- package/dist/src/templates/boilerplate/gemini/settings.json.d.ts +2 -0
- package/dist/src/templates/boilerplate/gemini/settings.json.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/gemini/settings.json.js +12 -0
- package/dist/src/templates/boilerplate/gemini/settings.json.js.map +1 -0
- package/dist/src/templates/boilerplate/gitignore.d.ts +2 -0
- package/dist/src/templates/boilerplate/gitignore.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/gitignore.js +11 -0
- package/dist/src/templates/boilerplate/gitignore.js.map +1 -0
- package/dist/src/templates/boilerplate/index.html.legacy.d.ts +2 -0
- package/dist/src/templates/boilerplate/index.html.legacy.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/index.html.legacy.js +36 -0
- package/dist/src/templates/boilerplate/index.html.legacy.js.map +1 -0
- package/dist/src/templates/boilerplate/mcp.json.d.ts +2 -0
- package/dist/src/templates/boilerplate/mcp.json.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/mcp.json.js +12 -0
- package/dist/src/templates/boilerplate/mcp.json.js.map +1 -0
- package/dist/src/templates/boilerplate/npmrc.d.ts +2 -0
- package/dist/src/templates/boilerplate/npmrc.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/npmrc.js +2 -0
- package/dist/src/templates/boilerplate/npmrc.js.map +1 -0
- package/dist/src/templates/boilerplate/package.json.d.ts +1 -54
- package/dist/src/templates/boilerplate/package.json.d.ts.map +1 -1
- package/dist/src/templates/boilerplate/package.json.js +115 -54
- package/dist/src/templates/boilerplate/package.json.js.map +1 -1
- package/dist/src/templates/boilerplate/package.json.legacy.d.ts +55 -0
- package/dist/src/templates/boilerplate/package.json.legacy.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/package.json.legacy.js +55 -0
- package/dist/src/templates/boilerplate/package.json.legacy.js.map +1 -0
- package/dist/src/templates/boilerplate/powerhouse.config.json.d.ts +6 -0
- package/dist/src/templates/boilerplate/powerhouse.config.json.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/powerhouse.config.json.js +46 -0
- package/dist/src/templates/boilerplate/powerhouse.config.json.js.map +1 -0
- package/dist/src/templates/boilerplate/powerhouse.manifest.json.d.ts +2 -0
- package/dist/src/templates/boilerplate/powerhouse.manifest.json.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/powerhouse.manifest.json.js +19 -0
- package/dist/src/templates/boilerplate/powerhouse.manifest.json.js.map +1 -0
- package/dist/src/templates/boilerplate/processors/index.d.ts +2 -0
- package/dist/src/templates/boilerplate/processors/index.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/processors/index.js +2 -0
- package/dist/src/templates/boilerplate/processors/index.js.map +1 -0
- package/dist/src/templates/boilerplate/style.css.d.ts +2 -0
- package/dist/src/templates/boilerplate/style.css.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/style.css.js +17 -0
- package/dist/src/templates/boilerplate/style.css.js.map +1 -0
- package/dist/src/templates/boilerplate/subgraphs/index.d.ts +2 -0
- package/dist/src/templates/boilerplate/subgraphs/index.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/subgraphs/index.js +2 -0
- package/dist/src/templates/boilerplate/subgraphs/index.js.map +1 -0
- package/dist/src/templates/boilerplate/vite.config.ts.d.ts +2 -0
- package/dist/src/templates/boilerplate/vite.config.ts.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/vite.config.ts.js +21 -0
- package/dist/src/templates/boilerplate/vite.config.ts.js.map +1 -0
- package/dist/src/templates/boilerplate/vitest.config.ts.d.ts +2 -0
- package/dist/src/templates/boilerplate/vitest.config.ts.d.ts.map +1 -0
- package/dist/src/templates/boilerplate/vitest.config.ts.js +21 -0
- package/dist/src/templates/boilerplate/vitest.config.ts.js.map +1 -0
- package/dist/src/templates/index.d.ts +24 -2
- package/dist/src/templates/index.d.ts.map +1 -1
- package/dist/src/templates/index.js +24 -2
- package/dist/src/templates/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/vitest.config.d.ts.map +1 -1
- package/dist/vitest.config.js +4 -1
- package/dist/vitest.config.js.map +1 -1
- package/package.json +12 -7
- package/dist/src/templates/boilerplate/document-models.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/document-models.js.map +0 -1
- package/dist/src/templates/boilerplate/editors.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/editors.js.map +0 -1
- /package/dist/src/templates/boilerplate/{document-models.d.ts → document-models/document-models.d.ts} +0 -0
- /package/dist/src/templates/boilerplate/{document-models.js → document-models/document-models.js} +0 -0
- /package/dist/src/templates/boilerplate/{editors.d.ts → editors/editors.d.ts} +0 -0
- /package/dist/src/templates/boilerplate/{editors.js → editors/editors.js} +0 -0
|
@@ -1,29 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
readonly "--branch": StringConstructor;
|
|
5
|
-
readonly "--tag": StringConstructor;
|
|
6
|
-
readonly "--interactive": BooleanConstructor;
|
|
7
|
-
readonly "--dev": BooleanConstructor;
|
|
8
|
-
readonly "--staging": BooleanConstructor;
|
|
9
|
-
readonly "-p": "--name";
|
|
10
|
-
readonly "-b": "--branch";
|
|
11
|
-
readonly "-t": "--tag";
|
|
12
|
-
readonly "--package-manager": StringConstructor;
|
|
13
|
-
};
|
|
14
|
-
export interface ICreateProjectOptions {
|
|
15
|
-
name: string | undefined;
|
|
16
|
-
tag: string;
|
|
17
|
-
interactive: boolean;
|
|
18
|
-
branch?: string;
|
|
19
|
-
packageManager?: string;
|
|
20
|
-
vetraDriveUrl?: string;
|
|
21
|
-
}
|
|
22
|
-
export declare function parseTag(args: {
|
|
1
|
+
type CreateProjectArgs = {
|
|
2
|
+
name: string;
|
|
3
|
+
packageManager: string;
|
|
23
4
|
tag?: string;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
export declare function
|
|
28
|
-
export
|
|
5
|
+
version?: string;
|
|
6
|
+
remoteDrive?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare function createProject({ name, packageManager, tag, version, remoteDrive, }: CreateProjectArgs): Promise<void>;
|
|
9
|
+
export {};
|
|
29
10
|
//# sourceMappingURL=create-project.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../../../src/create-lib/create-project.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../../../src/create-lib/create-project.ts"],"names":[],"mappings":"AAmCA,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,wBAAsB,aAAa,CAAC,EAClC,IAAI,EACJ,cAAc,EACd,GAAG,EACH,OAAO,EACP,WAAW,GACZ,EAAE,iBAAiB,iBAwDnB"}
|
|
@@ -1,250 +1,97 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { buildBoilerplatePackageJson, runPrettier, } from "@powerhousedao/codegen/file-builders";
|
|
2
|
+
import { agentsTemplate, buildPowerhouseConfigTemplate, claudeSettingsLocalTemplate, claudeTemplate, cursorMcpTemplate, documentModelsIndexTemplate, documentModelsTemplate, editorsIndexTemplate, editorsTemplate, eslintConfigTemplate, geminiSettingsTemplate, gitIgnoreTemplate, indexTsTemplate, legacyIndexHtmlTemplate, licenseTemplate, mcpTemplate, npmrcTemplate, powerhouseManifestTemplate, processorsIndexTemplate, readmeTemplate, styleTemplate, subgraphsIndexTemplate, tsConfigTemplate, viteConfigTemplate, vitestConfigTemplate, } from "@powerhousedao/codegen/templates";
|
|
3
|
+
import chalk from "chalk";
|
|
2
4
|
import fs from "node:fs";
|
|
3
5
|
import path from "path";
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const POWERHOUSE_ORG = "@powerhousedao";
|
|
8
|
-
// Special packages that don't use the @powerhousedao organization
|
|
9
|
-
const SPECIAL_PACKAGES = ["document-model", "document-drive", "@renown/sdk"];
|
|
10
|
-
// Packages to exclude from version resolution (external dependencies)
|
|
11
|
-
const EXCLUDED_PACKAGES = [
|
|
12
|
-
"@powerhousedao/document-engineering",
|
|
13
|
-
"@powerhousedao/scalars",
|
|
14
|
-
"@powerhousedao/diff-analyzer",
|
|
15
|
-
"@powerhousedao/analytics-engine-core",
|
|
16
|
-
"@powerhousedao/analytics-engine-graphql",
|
|
17
|
-
"@powerhousedao/analytics-engine-pg",
|
|
18
|
-
"@powerhousedao/analytics-engine-browser",
|
|
19
|
-
"@powerhousedao/analytics-engine-knex",
|
|
20
|
-
];
|
|
21
|
-
// Version tags that should be resolved to actual versions
|
|
22
|
-
const VERSION_TAGS = ["dev", "staging", "latest"];
|
|
23
|
-
/**
|
|
24
|
-
* Checks if a version string is a tag that should be resolved
|
|
25
|
-
*/
|
|
26
|
-
function isVersionTag(version) {
|
|
27
|
-
return VERSION_TAGS.includes(version);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Gets the installed version of a package from node_modules
|
|
31
|
-
*/
|
|
32
|
-
function getInstalledVersion(appPath, packageName) {
|
|
33
|
-
try {
|
|
34
|
-
const packageJsonPath = path.join(appPath, "node_modules", packageName, "package.json");
|
|
35
|
-
if (fs.existsSync(packageJsonPath)) {
|
|
36
|
-
const pkg = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
|
|
37
|
-
return pkg.version ?? null;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
// Ignore errors reading package.json
|
|
42
|
-
}
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Resolves version tags (dev, staging, latest) to actual installed versions in package.json
|
|
47
|
-
*/
|
|
48
|
-
function resolveVersionTags(appPath) {
|
|
49
|
-
const packageJsonPath = path.join(appPath, "package.json");
|
|
50
|
-
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
|
|
51
|
-
let hasChanges = false;
|
|
52
|
-
const processSection = (deps) => {
|
|
53
|
-
if (!deps)
|
|
54
|
-
return;
|
|
55
|
-
for (const [pkg, version] of Object.entries(deps)) {
|
|
56
|
-
// Check if this is a Powerhouse package
|
|
57
|
-
const isPowerhouseOrg = pkg.startsWith(POWERHOUSE_ORG + "/");
|
|
58
|
-
const isSpecialPackage = SPECIAL_PACKAGES.includes(pkg);
|
|
59
|
-
const isExcluded = EXCLUDED_PACKAGES.includes(pkg);
|
|
60
|
-
if ((isPowerhouseOrg || isSpecialPackage) && !isExcluded) {
|
|
61
|
-
// Check if the version is a tag that should be resolved
|
|
62
|
-
if (isVersionTag(version)) {
|
|
63
|
-
const installedVersion = getInstalledVersion(appPath, pkg);
|
|
64
|
-
if (installedVersion) {
|
|
65
|
-
// Add ^ prefix to allow semver range updates with ph update
|
|
66
|
-
deps[pkg] = `^${installedVersion}`;
|
|
67
|
-
hasChanges = true;
|
|
68
|
-
console.log(` ${pkg}: ${version} → ^${installedVersion}`);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
console.log("\x1b[34m", "Resolving version tags...", "\x1b[0m");
|
|
75
|
-
processSection(packageJson.dependencies);
|
|
76
|
-
processSection(packageJson.devDependencies);
|
|
77
|
-
if (hasChanges) {
|
|
78
|
-
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2), "utf8");
|
|
79
|
-
console.log("\x1b[32m", "Version tags resolved successfully!", "\x1b[0m");
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
console.log(" No version tags to resolve");
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
const BOILERPLATE_REPO = "https://github.com/powerhouse-inc/document-model-boilerplate.git";
|
|
86
|
-
const defaultDirectories = {
|
|
87
|
-
documentModelsDir: "./document-models",
|
|
88
|
-
editorsDir: "./editors",
|
|
89
|
-
};
|
|
90
|
-
export const createCommandSpec = {
|
|
91
|
-
"--name": String,
|
|
92
|
-
"--project-name": "--name",
|
|
93
|
-
"--branch": String,
|
|
94
|
-
"--tag": String,
|
|
95
|
-
"--interactive": Boolean,
|
|
96
|
-
"--dev": Boolean,
|
|
97
|
-
"--staging": Boolean,
|
|
98
|
-
"-p": "--name",
|
|
99
|
-
"-b": "--branch",
|
|
100
|
-
"-t": "--tag",
|
|
101
|
-
"--package-manager": String,
|
|
102
|
-
};
|
|
103
|
-
const { prompt } = enquirer;
|
|
104
|
-
function buildPackageJson(appPath, projectName) {
|
|
105
|
-
const packageJson = JSON.parse(fs.readFileSync(path.join(appPath, "package.json"), "utf-8"));
|
|
106
|
-
const newPackage = {
|
|
107
|
-
...packageJson,
|
|
108
|
-
name: projectName,
|
|
109
|
-
version: "1.0.0",
|
|
110
|
-
description: "",
|
|
111
|
-
};
|
|
112
|
-
fs.writeFileSync(path.join(appPath, "package.json"), JSON.stringify(newPackage, null, 2), "utf8");
|
|
113
|
-
}
|
|
114
|
-
function buildPowerhouseConfig(appPath, documentModelsDir, editorsDir, vetraDriveUrl) {
|
|
115
|
-
const filePath = path.join(appPath, "powerhouse.config.json");
|
|
116
|
-
const packageJson = JSON.parse(fs.readFileSync(filePath, "utf-8"));
|
|
117
|
-
const newPackage = {
|
|
118
|
-
...packageJson,
|
|
119
|
-
documentModelsDir,
|
|
120
|
-
editorsDir,
|
|
121
|
-
};
|
|
122
|
-
// Add vetra configuration if vetraDriveUrl is provided
|
|
123
|
-
if (vetraDriveUrl) {
|
|
124
|
-
const driveId = vetraDriveUrl.split("/").pop();
|
|
125
|
-
newPackage.vetra = {
|
|
126
|
-
driveId: driveId ?? "",
|
|
127
|
-
driveUrl: vetraDriveUrl,
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
fs.writeFileSync(filePath, JSON.stringify(newPackage, null, 2), "utf8");
|
|
131
|
-
}
|
|
132
|
-
function buildIndex(appPath, documentModelsDir, editorsDir) {
|
|
133
|
-
fs.writeFileSync(path.join(appPath, "index.ts"), `import type { Manifest } from "document-model";
|
|
134
|
-
import manifestJson from "./powerhouse.manifest.json" with { type: "json" };
|
|
135
|
-
import * as documentModelsExports from '${documentModelsDir}/index.js';
|
|
136
|
-
import * as editorsExports from '${editorsDir}/index.js';
|
|
137
|
-
|
|
138
|
-
export const manifest: Manifest = manifestJson;
|
|
139
|
-
export const documentModels = Object.values(documentModelsExports);
|
|
140
|
-
export const editors = Object.values(editorsExports);
|
|
141
|
-
`, "utf8");
|
|
142
|
-
}
|
|
143
|
-
export function parseTag(args) {
|
|
144
|
-
if (args.tag) {
|
|
145
|
-
return args.tag;
|
|
146
|
-
}
|
|
147
|
-
if (args.dev) {
|
|
148
|
-
return "dev";
|
|
149
|
-
}
|
|
150
|
-
else if (args.staging) {
|
|
151
|
-
return "staging";
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
return "main";
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
function parseTagArgs(args) {
|
|
158
|
-
return parseTag({
|
|
159
|
-
tag: args["--tag"],
|
|
160
|
-
dev: args["--dev"],
|
|
161
|
-
staging: args["--staging"],
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
export function initCli() {
|
|
165
|
-
const args = parseArgs(process.argv.slice(2), createCommandSpec);
|
|
166
|
-
const options = {
|
|
167
|
-
name: args["--name"] ?? args._.shift(),
|
|
168
|
-
interactive: args["--interactive"] ?? false,
|
|
169
|
-
tag: parseTagArgs(args),
|
|
170
|
-
branch: args["--branch"],
|
|
171
|
-
};
|
|
172
|
-
return createProject(options);
|
|
173
|
-
}
|
|
174
|
-
export async function createProject(options) {
|
|
175
|
-
// checks if a project name was provided
|
|
176
|
-
let projectName = options.name;
|
|
177
|
-
if (!projectName) {
|
|
178
|
-
const result = await prompt([
|
|
179
|
-
{
|
|
180
|
-
type: "input",
|
|
181
|
-
name: "projectName",
|
|
182
|
-
message: "What is the project name?",
|
|
183
|
-
required: true,
|
|
184
|
-
result: (value) => value.toLowerCase().trim().replace(/\s+/g, "-"),
|
|
185
|
-
},
|
|
186
|
-
]);
|
|
187
|
-
if (!result.projectName) {
|
|
188
|
-
console.log("\x1b[31m", "You have to provide name to your app.");
|
|
189
|
-
process.exit(1);
|
|
190
|
-
}
|
|
191
|
-
projectName = result.projectName;
|
|
192
|
-
}
|
|
193
|
-
let documentModelsDir = defaultDirectories.documentModelsDir;
|
|
194
|
-
let editorsDir = defaultDirectories.editorsDir;
|
|
195
|
-
if (featureFlags.allowCustomDirectories && options.interactive) {
|
|
196
|
-
const result = await promptDirectories(defaultDirectories);
|
|
197
|
-
documentModelsDir = result.documentModelsDir;
|
|
198
|
-
editorsDir = result.editorsDir;
|
|
199
|
-
}
|
|
200
|
-
const appPath = path.join(process.cwd(), projectName);
|
|
6
|
+
import { runCmd, writeFileEnsuringDir } from "./utils.js";
|
|
7
|
+
export async function createProject({ name, packageManager, tag, version, remoteDrive, }) {
|
|
8
|
+
const appPath = path.join(process.cwd(), name);
|
|
201
9
|
try {
|
|
202
10
|
fs.mkdirSync(appPath);
|
|
203
11
|
}
|
|
204
12
|
catch (err) {
|
|
205
13
|
if (err.code === "EEXIST") {
|
|
206
|
-
console.
|
|
14
|
+
console.error(`⛔ The folder "${name}" already exists in the current directory, please give it another name.`);
|
|
207
15
|
}
|
|
208
16
|
else {
|
|
209
|
-
console.
|
|
17
|
+
console.error(err);
|
|
210
18
|
}
|
|
211
19
|
process.exit(1);
|
|
212
20
|
}
|
|
213
|
-
handleCreateProject(projectName, documentModelsDir, editorsDir, options.tag, options.branch, options.packageManager, options.vetraDriveUrl);
|
|
214
|
-
}
|
|
215
|
-
function handleCreateProject(projectName, documentModelsDir, editorsDir, tag = "main", branch, packageManager, vetraDriveUrl) {
|
|
216
|
-
branch = branch ?? tag;
|
|
217
|
-
packageManager = packageManager ?? envPackageManager;
|
|
218
21
|
try {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const appPath = path.join(process.cwd(),
|
|
22
|
+
// Create a new directory for the project
|
|
23
|
+
console.log(chalk.blue(`▶️ Creating directory for project "${name}"...\n`));
|
|
24
|
+
const appPath = path.join(process.cwd(), name);
|
|
222
25
|
process.chdir(appPath);
|
|
223
|
-
console.log(
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
console.log();
|
|
26
|
+
console.log(chalk.green(`✅ Project directory created\n`));
|
|
27
|
+
// Create a .gitignore file, then initialize the git repository
|
|
28
|
+
console.log(chalk.blue(`▶️ Initializing git repository...\n`));
|
|
29
|
+
await writeFileEnsuringDir(".gitignore", gitIgnoreTemplate);
|
|
30
|
+
runCmd(`git init`);
|
|
31
|
+
console.log(chalk.green(`\n✅ Git repository initialized\n`));
|
|
32
|
+
// Write the boilerplate files for the project
|
|
33
|
+
console.log(chalk.blue(`▶️ Creating project boilerplate files...\n`));
|
|
34
|
+
await writeProjectRootFiles({ name, tag, version, remoteDrive });
|
|
35
|
+
await writeModuleFiles();
|
|
36
|
+
await writeAiConfigFiles();
|
|
37
|
+
console.log(chalk.green(`✅ Project boilerplate files created\n`));
|
|
38
|
+
// Install the project dependencies with the specified package manager
|
|
39
|
+
console.log(chalk.blue(`▶️ Installing project dependencies with ${packageManager}...\n`));
|
|
40
|
+
runCmd(`${packageManager} install`);
|
|
41
|
+
console.log(chalk.green(`\n✅ Project dependencies installed\n`));
|
|
42
|
+
// Use the installed version of `prettier` to format the generated code
|
|
43
|
+
console.log(chalk.blue(`▶️ Formatting boilerplate project files...\n`));
|
|
44
|
+
await runPrettier();
|
|
45
|
+
console.log(chalk.green(`✅ Boilerplate files formatted\n`));
|
|
46
|
+
// Project creation complete
|
|
47
|
+
console.log(chalk.bold(`🎉 Successfully created project "${name}" 🎉\n`));
|
|
245
48
|
}
|
|
246
49
|
catch (error) {
|
|
247
|
-
console.
|
|
50
|
+
console.error(error);
|
|
51
|
+
process.exit(1);
|
|
248
52
|
}
|
|
249
53
|
}
|
|
54
|
+
async function writeProjectRootFiles(args) {
|
|
55
|
+
const { name, tag, version, remoteDrive } = args;
|
|
56
|
+
await writeFileEnsuringDir("LICENSE", licenseTemplate);
|
|
57
|
+
await writeFileEnsuringDir("README.md", readmeTemplate);
|
|
58
|
+
await writeFileEnsuringDir(".npmrc", npmrcTemplate);
|
|
59
|
+
const packageJson = await buildBoilerplatePackageJson({
|
|
60
|
+
name,
|
|
61
|
+
tag,
|
|
62
|
+
version,
|
|
63
|
+
});
|
|
64
|
+
const powerhouseManifest = powerhouseManifestTemplate(name);
|
|
65
|
+
await writeFileEnsuringDir("powerhouse.manifest.json", powerhouseManifest);
|
|
66
|
+
const powerhouseConfig = await buildPowerhouseConfigTemplate({
|
|
67
|
+
tag,
|
|
68
|
+
version,
|
|
69
|
+
remoteDrive,
|
|
70
|
+
});
|
|
71
|
+
await writeFileEnsuringDir("powerhouse.config.json", powerhouseConfig);
|
|
72
|
+
await writeFileEnsuringDir("package.json", packageJson);
|
|
73
|
+
await writeFileEnsuringDir("tsconfig.json", tsConfigTemplate);
|
|
74
|
+
await writeFileEnsuringDir("index.html", legacyIndexHtmlTemplate);
|
|
75
|
+
await writeFileEnsuringDir("eslint.config.js", eslintConfigTemplate);
|
|
76
|
+
await writeFileEnsuringDir("index.ts", indexTsTemplate);
|
|
77
|
+
await writeFileEnsuringDir("style.css", styleTemplate);
|
|
78
|
+
await writeFileEnsuringDir("vite.config.ts", viteConfigTemplate);
|
|
79
|
+
await writeFileEnsuringDir("vitest.config.ts", vitestConfigTemplate);
|
|
80
|
+
}
|
|
81
|
+
async function writeModuleFiles() {
|
|
82
|
+
await writeFileEnsuringDir("document-models/document-models.ts", documentModelsTemplate);
|
|
83
|
+
await writeFileEnsuringDir("document-models/index.ts", documentModelsIndexTemplate);
|
|
84
|
+
await writeFileEnsuringDir("editors/editors.ts", editorsTemplate);
|
|
85
|
+
await writeFileEnsuringDir("editors/index.ts", editorsIndexTemplate);
|
|
86
|
+
await writeFileEnsuringDir("processors/index.ts", processorsIndexTemplate);
|
|
87
|
+
await writeFileEnsuringDir("subgraphs/index.ts", subgraphsIndexTemplate);
|
|
88
|
+
}
|
|
89
|
+
async function writeAiConfigFiles() {
|
|
90
|
+
await writeFileEnsuringDir("CLAUDE.md", claudeTemplate);
|
|
91
|
+
await writeFileEnsuringDir("AGENTS.md", agentsTemplate);
|
|
92
|
+
await writeFileEnsuringDir(".mcp.json", mcpTemplate);
|
|
93
|
+
await writeFileEnsuringDir(".gemini/settings.json", geminiSettingsTemplate);
|
|
94
|
+
await writeFileEnsuringDir(".cursor/mcp.json", cursorMcpTemplate);
|
|
95
|
+
await writeFileEnsuringDir(".claude/settings.local.json", claudeSettingsLocalTemplate);
|
|
96
|
+
}
|
|
250
97
|
//# sourceMappingURL=create-project.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-project.js","sourceRoot":"","sources":["../../../src/create-lib/create-project.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-project.js","sourceRoot":"","sources":["../../../src/create-lib/create-project.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,6 @@ export type PackageManager = (typeof packageManagers)[number];
|
|
|
3
3
|
export declare function getPackageManager(userAgent?: string): PackageManager;
|
|
4
4
|
export declare const envPackageManager: "npm" | "yarn" | "pnpm" | "bun";
|
|
5
5
|
export declare function runCmd(command: string): void;
|
|
6
|
+
export declare function writeFileEnsuringDir(filePath: string, contents: string | Buffer): Promise<void>;
|
|
6
7
|
export {};
|
|
7
8
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/create-lib/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/create-lib/utils.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,eAAe,yCAA0C,CAAC;AAGhE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CAcpE;AAED,eAAO,MAAM,iBAAiB,iCAE7B,CAAC;AAEF,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,QAOrC;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GAAG,MAAM,iBAI1B"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { execSync } from "child_process";
|
|
2
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
3
|
+
import { dirname } from "node:path";
|
|
2
4
|
const packageManagers = ["npm", "yarn", "pnpm", "bun"];
|
|
3
5
|
const defaultPackageManager = "npm";
|
|
4
6
|
export function getPackageManager(userAgent) {
|
|
@@ -25,4 +27,8 @@ export function runCmd(command) {
|
|
|
25
27
|
throw error;
|
|
26
28
|
}
|
|
27
29
|
}
|
|
30
|
+
export async function writeFileEnsuringDir(filePath, contents) {
|
|
31
|
+
await mkdir(dirname(filePath), { recursive: true });
|
|
32
|
+
await writeFile(filePath, contents, { encoding: "utf-8" });
|
|
33
|
+
}
|
|
28
34
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/create-lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/create-lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AAChE,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAIpC,MAAM,UAAU,iBAAiB,CAAC,SAAkB;IAClD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAsB,CAAC,EAAE,CAAC;QACrD,OAAO,IAAsB,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,qBAAqB,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAChD,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAClC,CAAC;AAEF,MAAM,UAAU,MAAM,CAAC,OAAe;IACpC,IAAI,CAAC;QACH,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC1C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAgB,EAChB,QAAyB;IAEzB,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-package-json.test.d.ts","sourceRoot":"","sources":["../../../../src/file-builders/boilerplate/build-package-json.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { describe, test } from "vitest";
|
|
2
|
+
import { buildBoilerplatePackageJson } from "./package.json.js";
|
|
3
|
+
describe("Build boilerplate package.json file", () => {
|
|
4
|
+
test("Should build a versioned boilerplate with version", async () => {
|
|
5
|
+
const name = "test-project";
|
|
6
|
+
const version = "5.0.1";
|
|
7
|
+
const packageJson = await buildBoilerplatePackageJson({
|
|
8
|
+
name,
|
|
9
|
+
version,
|
|
10
|
+
});
|
|
11
|
+
console.log(packageJson);
|
|
12
|
+
});
|
|
13
|
+
test("Should build a versioned boilerplate with tag", { timeout: 100000 }, async () => {
|
|
14
|
+
const name = "test-project";
|
|
15
|
+
const testTags = ["", "latest", "dev", "staging"];
|
|
16
|
+
for (const tag of testTags) {
|
|
17
|
+
const packageJson = await buildBoilerplatePackageJson({
|
|
18
|
+
name,
|
|
19
|
+
tag,
|
|
20
|
+
});
|
|
21
|
+
console.log(packageJson);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=build-package-json.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-package-json.test.js","sourceRoot":"","sources":["../../../../src/file-builders/boilerplate/build-package-json.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAEhE,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,IAAI,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,IAAI,GAAG,cAAc,CAAC;QAC5B,MAAM,OAAO,GAAG,OAAO,CAAC;QACxB,MAAM,WAAW,GAAG,MAAM,2BAA2B,CAAC;YACpD,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,IAAI,CACF,+CAA+C,EAC/C,EAAE,OAAO,EAAE,MAAM,EAAE,EACnB,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,cAAc,CAAC;QAC5B,MAAM,QAAQ,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAa,CAAC;QAC9D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,MAAM,2BAA2B,CAAC;gBACpD,IAAI;gBACJ,GAAG;aACJ,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/file-builders/boilerplate/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,UAMlC,CAAC;AAEF,eAAO,MAAM,0BAA0B,UAUtC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export const VERSIONED_DEPENDENCIES = [
|
|
2
|
+
"@powerhousedao/common",
|
|
3
|
+
"@powerhousedao/design-system",
|
|
4
|
+
"@powerhousedao/vetra",
|
|
5
|
+
"@powerhousedao/builder-tools",
|
|
6
|
+
"document-model",
|
|
7
|
+
];
|
|
8
|
+
export const VERSIONED_DEV_DEPENDENCIES = [
|
|
9
|
+
"@powerhousedao/codegen",
|
|
10
|
+
"@powerhousedao/config",
|
|
11
|
+
"@powerhousedao/ph-cli",
|
|
12
|
+
"@powerhousedao/reactor-api",
|
|
13
|
+
"@powerhousedao/reactor-browser",
|
|
14
|
+
"@powerhousedao/reactor-local",
|
|
15
|
+
"@powerhousedao/switchboard",
|
|
16
|
+
"@powerhousedao/connect",
|
|
17
|
+
"document-drive",
|
|
18
|
+
];
|
|
19
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/file-builders/boilerplate/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,uBAAuB;IACvB,8BAA8B;IAC9B,sBAAsB;IACtB,8BAA8B;IAC9B,gBAAgB;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,wBAAwB;IACxB,uBAAuB;IACvB,uBAAuB;IACvB,4BAA4B;IAC5B,gCAAgC;IAChC,8BAA8B;IAC9B,4BAA4B;IAC5B,wBAAwB;IACxB,gBAAgB;CACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-json-versions.test.d.ts","sourceRoot":"","sources":["../../../../src/file-builders/boilerplate/package-json-versions.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { describe, expect, test } from "vitest";
|
|
2
|
+
import { fetchNpmVersionFromRegistryForTag } from "../utils.js";
|
|
3
|
+
import { VERSIONED_DEPENDENCIES, VERSIONED_DEV_DEPENDENCIES, } from "./constants.js";
|
|
4
|
+
const powerhousePackages = [
|
|
5
|
+
...VERSIONED_DEPENDENCIES,
|
|
6
|
+
...VERSIONED_DEV_DEPENDENCIES,
|
|
7
|
+
];
|
|
8
|
+
describe("Fetch npm version for package at tag from npm registry", () => {
|
|
9
|
+
test("Fetch versions without specified tag", { timeout: 15000 }, async () => {
|
|
10
|
+
const powerhousePackageVersionsWithoutSpecifiedTag = await Promise.all(powerhousePackages.map((packageName) => fetchNpmVersionFromRegistryForTag(packageName, "")));
|
|
11
|
+
console.log({ powerhousePackageVersionsWithoutSpecifiedTag });
|
|
12
|
+
expect(powerhousePackageVersionsWithoutSpecifiedTag.length).toEqual(powerhousePackages.length);
|
|
13
|
+
expect(new Set(powerhousePackageVersionsWithoutSpecifiedTag).size).toBe(1);
|
|
14
|
+
});
|
|
15
|
+
test("Fetch versions @latest", { timeout: 15000 }, async () => {
|
|
16
|
+
const powerhousePackageVersionsAtLatest = await Promise.all(powerhousePackages.map((packageName) => fetchNpmVersionFromRegistryForTag(packageName, "latest")));
|
|
17
|
+
console.log({ powerhousePackageVersionsAtLatest });
|
|
18
|
+
expect(powerhousePackageVersionsAtLatest.length).toEqual(powerhousePackages.length);
|
|
19
|
+
expect(new Set(powerhousePackageVersionsAtLatest).size).toBe(1);
|
|
20
|
+
});
|
|
21
|
+
test("Fetch versions @dev", { timeout: 15000 }, async () => {
|
|
22
|
+
const powerhousePackageVersionsAtDev = await Promise.all(powerhousePackages.map((packageName) => fetchNpmVersionFromRegistryForTag(packageName, "dev")));
|
|
23
|
+
console.log({ powerhousePackageVersionsAtDev });
|
|
24
|
+
expect(powerhousePackageVersionsAtDev.length).toEqual(powerhousePackages.length);
|
|
25
|
+
expect(new Set(powerhousePackageVersionsAtDev).size).toBe(1);
|
|
26
|
+
});
|
|
27
|
+
test("Fetch versions @staging", { timeout: 15000 }, async () => {
|
|
28
|
+
const powerhousePackageVersionsAtStaging = await Promise.all(powerhousePackages.map((packageName) => fetchNpmVersionFromRegistryForTag(packageName, "staging")));
|
|
29
|
+
console.log({ powerhousePackageVersionsAtStaging });
|
|
30
|
+
expect(powerhousePackageVersionsAtStaging.length).toEqual(powerhousePackages.length);
|
|
31
|
+
expect(new Set(powerhousePackageVersionsAtStaging).size).toBe(1);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=package-json-versions.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-json-versions.test.js","sourceRoot":"","sources":["../../../../src/file-builders/boilerplate/package-json-versions.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.json.d.ts","sourceRoot":"","sources":["../../../../src/file-builders/boilerplate/package.json.ts"],"names":[],"mappings":"AAOA,wBAAsB,2BAA2B,CAAC,IAAI,EAAE;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,mBAoBA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { packageJsonTemplate } from "@powerhousedao/codegen/templates";
|
|
2
|
+
import { makeVersionedDependencies } from "../utils.js";
|
|
3
|
+
import { VERSIONED_DEPENDENCIES, VERSIONED_DEV_DEPENDENCIES, } from "./constants.js";
|
|
4
|
+
export async function buildBoilerplatePackageJson(args) {
|
|
5
|
+
const { name, tag, version } = args;
|
|
6
|
+
const versionedDependencies = await makeVersionedDependencies({
|
|
7
|
+
names: VERSIONED_DEPENDENCIES,
|
|
8
|
+
tag,
|
|
9
|
+
version,
|
|
10
|
+
});
|
|
11
|
+
const versionedDevDependencies = await makeVersionedDependencies({
|
|
12
|
+
names: VERSIONED_DEV_DEPENDENCIES,
|
|
13
|
+
tag,
|
|
14
|
+
version,
|
|
15
|
+
});
|
|
16
|
+
const template = packageJsonTemplate(name, versionedDependencies, versionedDevDependencies);
|
|
17
|
+
return template;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=package.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.json.js","sourceRoot":"","sources":["../../../../src/file-builders/boilerplate/package.json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAIjD;IACC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,qBAAqB,GAAG,MAAM,yBAAyB,CAAC;QAC5D,KAAK,EAAE,sBAAsB;QAC7B,GAAG;QACH,OAAO;KACR,CAAC,CAAC;IACH,MAAM,wBAAwB,GAAG,MAAM,yBAAyB,CAAC;QAC/D,KAAK,EAAE,0BAA0B;QACjC,GAAG;QACH,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,mBAAmB,CAClC,IAAI,EACJ,qBAAqB,EACrB,wBAAwB,CACzB,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|