clonecheck-monorepo 0.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 (94) hide show
  1. package/.env.example +2 -0
  2. package/.gitattributes +1 -0
  3. package/.github/workflows/ci.yml +24 -0
  4. package/CONTRIBUTING.md +22 -0
  5. package/LICENSE +21 -0
  6. package/README.md +205 -0
  7. package/action/README.md +34 -0
  8. package/action/action.yml +50 -0
  9. package/clonecheck.config.json +5 -0
  10. package/docs/checks.md +44 -0
  11. package/docs/config.md +36 -0
  12. package/docs/scoring.md +20 -0
  13. package/eslint.config.js +29 -0
  14. package/examples/docker-compose-missing-env/.env.example +1 -0
  15. package/examples/docker-compose-missing-env/README.md +5 -0
  16. package/examples/docker-compose-missing-env/docker-compose.yml +12 -0
  17. package/examples/node-basic/.env.example +1 -0
  18. package/examples/node-basic/README.md +8 -0
  19. package/examples/node-basic/package.json +15 -0
  20. package/examples/node-basic/pnpm-lock.yaml +5 -0
  21. package/examples/node-basic/src-index.ts +1 -0
  22. package/examples/node-missing-env/.env.example +1 -0
  23. package/examples/node-missing-env/README.md +8 -0
  24. package/examples/node-missing-env/package.json +11 -0
  25. package/examples/node-missing-env/pnpm-lock.yaml +5 -0
  26. package/examples/node-missing-env/src/app.ts +14 -0
  27. package/examples/python-basic/.env.example +1 -0
  28. package/examples/python-basic/README.md +8 -0
  29. package/examples/python-basic/app.py +6 -0
  30. package/examples/python-basic/requirements.txt +1 -0
  31. package/package.json +40 -0
  32. package/packages/cli/LICENSE +21 -0
  33. package/packages/cli/README.md +15 -0
  34. package/packages/cli/package.json +55 -0
  35. package/packages/cli/src/index.ts +186 -0
  36. package/packages/cli/tsconfig.json +11 -0
  37. package/packages/core/LICENSE +21 -0
  38. package/packages/core/README.md +11 -0
  39. package/packages/core/package.json +51 -0
  40. package/packages/core/src/checks/ciPresence.ts +35 -0
  41. package/packages/core/src/checks/dockerComposeEnv.ts +61 -0
  42. package/packages/core/src/checks/envExample.ts +31 -0
  43. package/packages/core/src/checks/helpers.ts +54 -0
  44. package/packages/core/src/checks/index.ts +24 -0
  45. package/packages/core/src/checks/packageManagerConsistency.ts +65 -0
  46. package/packages/core/src/checks/portDocumentation.ts +62 -0
  47. package/packages/core/src/checks/projectFiles.ts +77 -0
  48. package/packages/core/src/checks/readmeCommands.ts +87 -0
  49. package/packages/core/src/checks/scriptsAvailability.ts +69 -0
  50. package/packages/core/src/config.ts +96 -0
  51. package/packages/core/src/detectors/dockerCompose.ts +62 -0
  52. package/packages/core/src/detectors/env.ts +189 -0
  53. package/packages/core/src/detectors/packageManager.ts +54 -0
  54. package/packages/core/src/detectors/ports.ts +99 -0
  55. package/packages/core/src/detectors/project.ts +50 -0
  56. package/packages/core/src/detectors/readme.ts +131 -0
  57. package/packages/core/src/index.ts +31 -0
  58. package/packages/core/src/reporters/index.ts +3 -0
  59. package/packages/core/src/reporters/json.ts +5 -0
  60. package/packages/core/src/reporters/labels.ts +40 -0
  61. package/packages/core/src/reporters/markdown.ts +63 -0
  62. package/packages/core/src/reporters/text.ts +108 -0
  63. package/packages/core/src/run.ts +111 -0
  64. package/packages/core/src/scoring.ts +60 -0
  65. package/packages/core/src/types.ts +85 -0
  66. package/packages/core/src/utils/files.ts +109 -0
  67. package/packages/core/tests/config.test.ts +53 -0
  68. package/packages/core/tests/detectors.test.ts +127 -0
  69. package/packages/core/tests/fixtures/docker-compose-missing-env/.env.example +1 -0
  70. package/packages/core/tests/fixtures/docker-compose-missing-env/README.md +5 -0
  71. package/packages/core/tests/fixtures/docker-compose-missing-env/docker-compose.yml +6 -0
  72. package/packages/core/tests/fixtures/env-missing/.env.example +1 -0
  73. package/packages/core/tests/fixtures/env-missing/README.md +6 -0
  74. package/packages/core/tests/fixtures/env-missing/package-lock.json +4 -0
  75. package/packages/core/tests/fixtures/env-missing/package.json +8 -0
  76. package/packages/core/tests/fixtures/env-missing/src.py +4 -0
  77. package/packages/core/tests/fixtures/node-pnpm-readme-npm/.env.example +1 -0
  78. package/packages/core/tests/fixtures/node-pnpm-readme-npm/README.md +8 -0
  79. package/packages/core/tests/fixtures/node-pnpm-readme-npm/package.json +8 -0
  80. package/packages/core/tests/fixtures/node-pnpm-readme-npm/pnpm-lock.yaml +1 -0
  81. package/packages/core/tests/fixtures/node-pnpm-readme-npm/src.ts +3 -0
  82. package/packages/core/tests/reporters.test.ts +43 -0
  83. package/packages/core/tests/run.test.ts +37 -0
  84. package/packages/core/tests/scoring.test.ts +33 -0
  85. package/packages/core/tsconfig.json +8 -0
  86. package/packages/npm/LICENSE +21 -0
  87. package/packages/npm/README.md +17 -0
  88. package/packages/npm/package.json +54 -0
  89. package/packages/npm/src/index.ts +2 -0
  90. package/packages/npm/tsconfig.json +12 -0
  91. package/pnpm-workspace.yaml +4 -0
  92. package/prettier.config.js +5 -0
  93. package/scripts/build-package.mjs +30 -0
  94. package/tsconfig.base.json +17 -0
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "clonecheck",
3
+ "version": "0.1.0",
4
+ "description": "Know if your repo is actually cloneable.",
5
+ "type": "module",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/reallav0/clonecheck.git",
9
+ "directory": "packages/npm"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/reallav0/clonecheck/issues"
13
+ },
14
+ "homepage": "https://github.com/reallav0/clonecheck#readme",
15
+ "keywords": [
16
+ "clonecheck",
17
+ "cli",
18
+ "npx",
19
+ "developer-experience",
20
+ "repository",
21
+ "readme"
22
+ ],
23
+ "license": "MIT",
24
+ "engines": {
25
+ "node": ">=20"
26
+ },
27
+ "main": "./dist/index.js",
28
+ "types": "./dist/index.d.ts",
29
+ "exports": {
30
+ ".": {
31
+ "types": "./dist/index.d.ts",
32
+ "import": "./dist/index.js"
33
+ }
34
+ },
35
+ "bin": {
36
+ "clonecheck": "./dist/index.js"
37
+ },
38
+ "files": ["dist", "README.md", "LICENSE"],
39
+ "publishConfig": {
40
+ "registry": "https://registry.npmjs.org/"
41
+ },
42
+ "scripts": {
43
+ "build": "node ../../scripts/build-package.mjs .",
44
+ "dev": "tsx src/index.ts",
45
+ "lint": "eslint \"src/**/*.ts\"",
46
+ "scan": "tsx src/index.ts scan",
47
+ "test": "vitest run --passWithNoTests",
48
+ "typecheck": "tsc --noEmit",
49
+ "prepack": "pnpm build"
50
+ },
51
+ "dependencies": {
52
+ "@clonecheck/cli": "workspace:*"
53
+ }
54
+ }
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import "@clonecheck/cli";
@@ -0,0 +1,12 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "baseUrl": ".",
5
+ "paths": {
6
+ "@clonecheck/cli": ["../cli/src/index.ts"],
7
+ "@clonecheck/core": ["../core/src/index.ts"]
8
+ },
9
+ "outDir": "dist"
10
+ },
11
+ "include": ["src/**/*.ts"]
12
+ }
@@ -0,0 +1,4 @@
1
+ packages:
2
+ - "packages/*"
3
+ allowBuilds:
4
+ esbuild: true
@@ -0,0 +1,5 @@
1
+ export default {
2
+ printWidth: 100,
3
+ semi: true,
4
+ trailingComma: "none"
5
+ };
@@ -0,0 +1,30 @@
1
+ import { existsSync } from "node:fs";
2
+ import { readFile } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { build } from "tsup";
5
+
6
+ const packageDir = path.resolve(process.argv[2] ?? process.cwd());
7
+ const entry = path.join(packageDir, "src", "index.ts");
8
+ const packageJsonPath = path.join(packageDir, "package.json");
9
+
10
+ if (!existsSync(entry)) {
11
+ throw new Error(`Cannot find package entry: ${entry}`);
12
+ }
13
+
14
+ const packageJson = JSON.parse(await readFile(packageJsonPath, "utf8"));
15
+ const dependencies = Object.keys(packageJson.dependencies ?? {});
16
+ const peerDependencies = Object.keys(packageJson.peerDependencies ?? {});
17
+
18
+ process.chdir(packageDir);
19
+
20
+ await build({
21
+ entry: ["src/index.ts"],
22
+ format: ["esm"],
23
+ dts: true,
24
+ sourcemap: true,
25
+ clean: true,
26
+ outDir: "dist",
27
+ target: "es2022",
28
+ platform: "node",
29
+ external: [...dependencies, ...peerDependencies]
30
+ });
@@ -0,0 +1,17 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "lib": ["ES2022"],
5
+ "module": "NodeNext",
6
+ "moduleResolution": "NodeNext",
7
+ "strict": true,
8
+ "declaration": true,
9
+ "declarationMap": true,
10
+ "sourceMap": true,
11
+ "esModuleInterop": true,
12
+ "forceConsistentCasingInFileNames": true,
13
+ "resolveJsonModule": true,
14
+ "skipLibCheck": true,
15
+ "noUncheckedIndexedAccess": true
16
+ }
17
+ }