get-llms 1.0.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 (41) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +265 -0
  3. package/dist/bin/defaults.d.ts +3 -0
  4. package/dist/bin/defaults.d.ts.map +1 -0
  5. package/dist/bin/defaults.js +17 -0
  6. package/dist/bin/defaults.js.map +1 -0
  7. package/dist/bin/index.d.ts +2 -0
  8. package/dist/bin/index.d.ts.map +1 -0
  9. package/dist/bin/index.js +169 -0
  10. package/dist/bin/index.js.map +1 -0
  11. package/dist/bin/llmsFetcher.d.ts +18 -0
  12. package/dist/bin/llmsFetcher.d.ts.map +1 -0
  13. package/dist/bin/llmsFetcher.js +259 -0
  14. package/dist/bin/llmsFetcher.js.map +1 -0
  15. package/dist/bin/types/npmRegistryType.d.ts +103 -0
  16. package/dist/bin/types/npmRegistryType.d.ts.map +1 -0
  17. package/dist/bin/types/npmRegistryType.js +2 -0
  18. package/dist/bin/types/npmRegistryType.js.map +1 -0
  19. package/dist/bin/types/packageJsonType.d.ts +74 -0
  20. package/dist/bin/types/packageJsonType.d.ts.map +1 -0
  21. package/dist/bin/types/packageJsonType.js +2 -0
  22. package/dist/bin/types/packageJsonType.js.map +1 -0
  23. package/dist/bin/types/types.d.ts +21 -0
  24. package/dist/bin/types/types.d.ts.map +1 -0
  25. package/dist/bin/types/types.js +2 -0
  26. package/dist/bin/types/types.js.map +1 -0
  27. package/dist/bin/utils/cliHelpers.d.ts +11 -0
  28. package/dist/bin/utils/cliHelpers.d.ts.map +1 -0
  29. package/dist/bin/utils/cliHelpers.js +45 -0
  30. package/dist/bin/utils/cliHelpers.js.map +1 -0
  31. package/dist/bin/utils/logger.d.ts +19 -0
  32. package/dist/bin/utils/logger.d.ts.map +1 -0
  33. package/dist/bin/utils/logger.js +56 -0
  34. package/dist/bin/utils/logger.js.map +1 -0
  35. package/dist/bin/utils/utils.d.ts +13 -0
  36. package/dist/bin/utils/utils.d.ts.map +1 -0
  37. package/dist/bin/utils/utils.js +38 -0
  38. package/dist/bin/utils/utils.js.map +1 -0
  39. package/package.json +48 -0
  40. package/tsconfig.json +21 -0
  41. package/vitest.config.ts +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../bin/utils/logger.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM;IACF,SAAS,GAAmB,QAAQ,CAAC;IAE7C,YAAY,CAAC,KAAqB;QAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC;IACpC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC;IACtC,CAAC;IAED,oBAAoB;IACpB,KAAK,CAAC,GAAG,IAAe;QACtB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,kCAAkC;IAClC,GAAG,CAAC,GAAG,IAAe;QACpB,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;SACtB;IACH,CAAC;IAED,kDAAkD;IAClD,IAAI,CAAC,GAAG,IAAe;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,2BAA2B;IAC3B,OAAO,CAAC,GAAG,IAAe;QACxB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;SACtB;IACH,CAAC;IAED,gCAAgC;IAChC,OAAO,CAAC,OAAe;QACrB,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE;YAC9B,OAAO,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;SAChC;IACH,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;SACjC;IACH,CAAC;CACF;AAED,8BAA8B;AAC9B,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { NpmRegistry } from "../types/npmRegistryType";
2
+ import { SanitizerOptions } from "../types/types";
3
+ export declare const getPackageInfo: (packageName: string) => Promise<NpmRegistry>;
4
+ /**
5
+ * Sanitize a package name for use as a filename
6
+ */
7
+ export declare const sanitizeFilename: (name: string, options?: SanitizerOptions) => string;
8
+ /**
9
+ * Generate filename from pattern
10
+ * Supports: {name}
11
+ */
12
+ export declare const generateFilename: (pattern: string, packageName: string, extension: string, sanitizerOptions: SanitizerOptions) => string;
13
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../bin/utils/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,eAAO,MAAM,cAAc,gBAAuB,MAAM,yBAMvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,SACrB,MAAM,YACH,gBAAgB,KACxB,MAqBF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,YAClB,MAAM,eACF,MAAM,aACR,MAAM,oBACC,gBAAgB,KACjC,MAQF,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { DEFAULT_OPTIONS } from "../defaults";
2
+ export const getPackageInfo = async (packageName) => {
3
+ const response = await fetch(`https://registry.npmjs.org/${packageName}/latest`);
4
+ const data = (await response.json());
5
+ return data;
6
+ };
7
+ /**
8
+ * Sanitize a package name for use as a filename
9
+ */
10
+ export const sanitizeFilename = (name, options = DEFAULT_OPTIONS.sanitizer) => {
11
+ let sanitized = name;
12
+ // Handle scoped packages (@scope/name)
13
+ if (sanitized.startsWith("@")) {
14
+ sanitized = sanitized.slice(1); // Remove @ prefix
15
+ if (options.atReplacement) {
16
+ sanitized = options.atReplacement + sanitized;
17
+ }
18
+ }
19
+ // Replace slashes (from scoped packages)
20
+ sanitized = sanitized.replaceAll("/", options.slashReplacement);
21
+ // Replace spaces
22
+ sanitized = sanitized.replaceAll(" ", options.spaceReplacement);
23
+ // Remove any other problematic characters for filenames
24
+ sanitized = sanitized.replace(/[<>:"|?*\\]/g, "");
25
+ return sanitized;
26
+ };
27
+ /**
28
+ * Generate filename from pattern
29
+ * Supports: {name}
30
+ */
31
+ export const generateFilename = (pattern, packageName, extension, sanitizerOptions) => {
32
+ const sanitizedName = sanitizeFilename(packageName, sanitizerOptions);
33
+ let filename = pattern.replace("{name}", sanitizedName);
34
+ // Ensure extension doesn't have leading dot if user included it
35
+ const ext = extension.startsWith(".") ? extension.slice(1) : extension;
36
+ return `${filename}.${ext}`;
37
+ };
38
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../bin/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI9C,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,WAAmB,EAAE,EAAE;IAC1D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,8BAA8B,WAAW,SAAS,CACnD,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAgB,CAAC;IACpD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,UAA4B,eAAe,CAAC,SAAS,EAC7C,EAAE;IACV,IAAI,SAAS,GAAG,IAAI,CAAC;IAErB,uCAAuC;IACvC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QAC7B,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;QAClD,IAAI,OAAO,CAAC,aAAa,EAAE;YACzB,SAAS,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;SAC/C;KACF;IAED,yCAAyC;IACzC,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEhE,iBAAiB;IACjB,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEhE,wDAAwD;IACxD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAElD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAe,EACf,WAAmB,EACnB,SAAiB,EACjB,gBAAkC,EAC1B,EAAE;IACV,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACtE,IAAI,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAExD,gEAAgE;IAChE,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvE,OAAO,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC;AAC9B,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "get-llms",
3
+ "version": "1.0.0",
4
+ "description": "npx command for fetching llms.txt files for all packages from package.json",
5
+ "homepage": "https://github.com/balazshevesi/llms-fetcher#readme",
6
+ "bin": {
7
+ "get-llms": "dist/bin/index.js"
8
+ },
9
+ "bugs": {
10
+ "url": "https://github.com/balazshevesi/llms-fetcher/issues"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/balazshevesi/llms-fetcher.git"
15
+ },
16
+ "license": "MIT",
17
+ "author": "Balazs Hevesi",
18
+ "type": "module",
19
+ "scripts": {
20
+ "build": "tsc",
21
+ "test": "vitest run",
22
+ "test:watch": "vitest",
23
+ "test:coverage": "vitest run --coverage"
24
+ },
25
+ "devDependencies": {
26
+ "@types/node": "^25.0.3",
27
+ "@vitest/coverage-v8": "^4.0.16",
28
+ "msw": "^2.12.7",
29
+ "vitest": "^4.0.16"
30
+ },
31
+ "dependencies": {
32
+ "commander": "^14.0.2"
33
+ },
34
+ "engines": {
35
+ "node": ">=18.0.0"
36
+ },
37
+ "keywords": [
38
+ "llms",
39
+ "get-llms",
40
+ "llms.txt",
41
+ "fetch",
42
+ "package",
43
+ "script",
44
+ "cli",
45
+ "command",
46
+ "llms-fetcher"
47
+ ]
48
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,21 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "ES2022",
5
+ "moduleResolution": "node",
6
+ "lib": ["ES2022"],
7
+ "types": ["node"],
8
+ "outDir": "./dist",
9
+ "rootDir": ".",
10
+ "strict": true,
11
+ "esModuleInterop": true,
12
+ "skipLibCheck": true,
13
+ "forceConsistentCasingInFileNames": true,
14
+ "resolveJsonModule": true,
15
+ "declaration": true,
16
+ "declarationMap": true,
17
+ "sourceMap": true
18
+ },
19
+ "include": ["bin/**/*"],
20
+ "exclude": ["node_modules", "dist"]
21
+ }
@@ -0,0 +1,17 @@
1
+ import { defineConfig } from "vitest/config";
2
+
3
+ export default defineConfig({
4
+ test: {
5
+ globals: true,
6
+ environment: "node",
7
+ include: ["tests/**/*.test.ts"],
8
+ setupFiles: ["./tests/setup.ts"],
9
+ coverage: {
10
+ provider: "v8",
11
+ reporter: ["text", "html"],
12
+ include: ["bin/**/*.ts"],
13
+ exclude: ["bin/index.ts"],
14
+ },
15
+ testTimeout: 10000,
16
+ },
17
+ });