prpm 1.2.1 → 2.0.1

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 (67) hide show
  1. package/README.md +90 -862
  2. package/dist/index.js +23233 -65
  3. package/dist/schemas/agents-md.schema.json +24 -0
  4. package/dist/schemas/aider.schema.json +24 -0
  5. package/dist/schemas/canonical.schema.json +435 -0
  6. package/dist/schemas/claude-agent.schema.json +62 -0
  7. package/dist/schemas/claude-hook.schema.json +70 -0
  8. package/dist/schemas/claude-plugin.schema.json +122 -0
  9. package/dist/schemas/claude-skill.schema.json +51 -0
  10. package/dist/schemas/claude-slash-command.schema.json +77 -0
  11. package/dist/schemas/claude.schema.json +52 -0
  12. package/dist/schemas/continue.schema.json +98 -0
  13. package/dist/schemas/copilot.schema.json +76 -0
  14. package/dist/schemas/cursor-command.schema.json +27 -0
  15. package/dist/schemas/cursor-hooks.schema.json +59 -0
  16. package/dist/schemas/cursor.schema.json +74 -0
  17. package/dist/schemas/droid-hook.schema.json +103 -0
  18. package/dist/schemas/droid-skill.schema.json +46 -0
  19. package/dist/schemas/droid-slash-command.schema.json +53 -0
  20. package/dist/schemas/droid.schema.json +46 -0
  21. package/dist/schemas/format-registry.schema.json +99 -0
  22. package/dist/schemas/gemini-md.schema.json +24 -0
  23. package/dist/schemas/gemini.schema.json +30 -0
  24. package/dist/schemas/kiro-agent.schema.json +146 -0
  25. package/dist/schemas/kiro-hook.schema.json +120 -0
  26. package/dist/schemas/kiro-steering.schema.json +74 -0
  27. package/dist/schemas/mcp-server.schema.json +130 -0
  28. package/dist/schemas/opencode-slash-command.schema.json +60 -0
  29. package/dist/schemas/opencode.schema.json +111 -0
  30. package/dist/schemas/prpm-manifest.schema.json +733 -0
  31. package/dist/schemas/replit.schema.json +21 -0
  32. package/dist/schemas/ruler.schema.json +22 -0
  33. package/dist/schemas/trae.schema.json +24 -0
  34. package/dist/schemas/windsurf.schema.json +22 -0
  35. package/dist/schemas/zencoder.schema.json +51 -0
  36. package/package.json +20 -14
  37. package/schemas/prpm-manifest.schema.json +465 -39
  38. package/dist/__tests__/e2e/test-helpers.js +0 -150
  39. package/dist/commands/collections.js +0 -606
  40. package/dist/commands/index.js +0 -186
  41. package/dist/commands/info.js +0 -82
  42. package/dist/commands/install.js +0 -477
  43. package/dist/commands/list.js +0 -166
  44. package/dist/commands/login.js +0 -281
  45. package/dist/commands/outdated.js +0 -128
  46. package/dist/commands/popular.js +0 -27
  47. package/dist/commands/publish.js +0 -274
  48. package/dist/commands/schema.js +0 -37
  49. package/dist/commands/search.js +0 -404
  50. package/dist/commands/telemetry.js +0 -103
  51. package/dist/commands/trending.js +0 -76
  52. package/dist/commands/uninstall.js +0 -77
  53. package/dist/commands/update.js +0 -121
  54. package/dist/commands/upgrade.js +0 -121
  55. package/dist/commands/whoami.js +0 -75
  56. package/dist/core/claude-config.js +0 -91
  57. package/dist/core/cursor-config.js +0 -130
  58. package/dist/core/downloader.js +0 -64
  59. package/dist/core/filesystem.js +0 -124
  60. package/dist/core/lockfile.js +0 -239
  61. package/dist/core/marketplace-converter.js +0 -198
  62. package/dist/core/registry-client.js +0 -265
  63. package/dist/core/schema-validator.js +0 -74
  64. package/dist/core/telemetry.js +0 -175
  65. package/dist/core/user-config.js +0 -79
  66. package/dist/types/registry.js +0 -5
  67. package/dist/types.js +0 -5
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://registry.prpm.dev/api/v1/schemas/replit.json",
4
+ "$comment": "https://docs.replit.com/replitai/replit-dot-md",
5
+ "title": "Replit.md Format",
6
+ "description": "JSON Schema for Replit replit.md format - plain markdown project configuration (NO frontmatter)",
7
+ "type": "object",
8
+ "required": ["content"],
9
+ "properties": {
10
+ "content": {
11
+ "type": "string",
12
+ "description": "Plain markdown content with project overview, technology preferences, coding standards, and communication style. No frontmatter allowed."
13
+ }
14
+ },
15
+ "additionalProperties": false,
16
+ "examples": [
17
+ {
18
+ "content": "# Project Name\n\n## Project Overview\n\nA web application for task management.\n\n## Technology Preferences\n\n- Frontend: React with TypeScript\n- Backend: Node.js with Express\n- Database: PostgreSQL\n\n## Coding Standards\n\n- Use ESLint and Prettier\n- Follow Airbnb style guide\n\n## Communication Style\n\n- Prefer detailed explanations\n- Include code examples"
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://registry.prpm.dev/api/v1/schemas/ruler.json",
4
+ "$comment": "https://okigu.com/ruler",
5
+ "title": "Ruler Rules Format",
6
+ "description": "JSON Schema for Ruler .ruler/ format - plain markdown without frontmatter, used for AI coding assistant instructions",
7
+ "type": "object",
8
+ "required": ["content"],
9
+ "properties": {
10
+ "content": {
11
+ "type": "string",
12
+ "description": "Plain markdown content for AI coding rules and guidelines. No frontmatter required. Files are concatenated with source markers by Ruler.",
13
+ "minLength": 1
14
+ }
15
+ },
16
+ "examples": [
17
+ {
18
+ "content": "<!-- Package: react-best-practices -->\n<!-- Author: @username -->\n\n# React Best Practices\n\n## Core Principles\n\n- Use functional components\n- Keep components small and focused\n\n## Naming Conventions\n\n- Use PascalCase for component names\n- Use camelCase for function names"
19
+ }
20
+ ],
21
+ "additionalProperties": false
22
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://registry.prpm.dev/api/v1/schemas/trae.json",
4
+ "$comment": "https://docs.trae.ai/ide/rules",
5
+ "title": "Trae Rules Format",
6
+ "description": "JSON Schema for Trae .trae/rules format - plain markdown user and project rules (NO frontmatter)",
7
+ "type": "object",
8
+ "required": ["content"],
9
+ "properties": {
10
+ "content": {
11
+ "type": "string",
12
+ "description": "Plain markdown content with coding rules, style preferences, conventions, etc. No frontmatter allowed."
13
+ }
14
+ },
15
+ "additionalProperties": false,
16
+ "examples": [
17
+ {
18
+ "content": "# Code Style\n\n- Use spaces for indentation (2 spaces)\n- Prefer functional components in React\n- Use TypeScript strict mode"
19
+ },
20
+ {
21
+ "content": "# Project Conventions\n\n## Naming\n\n- Components: PascalCase\n- Functions: camelCase\n- Constants: UPPER_SNAKE_CASE"
22
+ }
23
+ ]
24
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://registry.prpm.dev/api/v1/schemas/windsurf.json",
4
+ "$comment": "https://docs.windsurf.com/windsurf/cascade/memories#rules",
5
+ "title": "Windsurf Rules Format",
6
+ "description": "JSON Schema for Windsurf .windsurf/rules format - plain markdown without frontmatter",
7
+ "type": "object",
8
+ "required": ["content"],
9
+ "properties": {
10
+ "content": {
11
+ "type": "string",
12
+ "description": "Plain markdown content. No frontmatter. Maximum 12,000 characters.",
13
+ "maxLength": 12000
14
+ }
15
+ },
16
+ "examples": [
17
+ {
18
+ "content": "# React Best Practices\n\n## Core Principles\n\n- Use functional components\n- Keep components small and focused"
19
+ }
20
+ ],
21
+ "additionalProperties": false
22
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://registry.prpm.dev/api/v1/schemas/zencoder.json",
4
+ "$comment": "https://docs.zencoder.ai/rules-context/zen-rules",
5
+ "title": "Zencoder Rules Format",
6
+ "description": "JSON Schema for Zencoder .zencoder/rules format with optional YAML frontmatter",
7
+ "type": "object",
8
+ "required": ["content"],
9
+ "properties": {
10
+ "frontmatter": {
11
+ "type": "object",
12
+ "description": "Optional YAML frontmatter enclosed in --- markers",
13
+ "properties": {
14
+ "description": {
15
+ "type": "string",
16
+ "description": "Brief description of what the rule covers"
17
+ },
18
+ "globs": {
19
+ "type": "array",
20
+ "description": "File patterns where the rule applies (e.g., ['*.md', '*.mdx'])",
21
+ "items": {
22
+ "type": "string"
23
+ }
24
+ },
25
+ "alwaysApply": {
26
+ "type": "boolean",
27
+ "description": "Set to true if rule should always be active",
28
+ "default": false
29
+ }
30
+ },
31
+ "additionalProperties": false
32
+ },
33
+ "content": {
34
+ "type": "string",
35
+ "description": "Markdown content following the frontmatter. Standard markdown with headings, lists, code blocks, etc."
36
+ }
37
+ },
38
+ "examples": [
39
+ {
40
+ "frontmatter": {
41
+ "description": "TypeScript coding standards",
42
+ "globs": ["*.ts", "*.tsx"],
43
+ "alwaysApply": false
44
+ },
45
+ "content": "# TypeScript Standards\n\n- Use strict mode\n- Prefer interfaces over types\n- Always define return types"
46
+ },
47
+ {
48
+ "content": "# General Coding Guidelines\n\nThese guidelines apply to all code.\n\n- Write clear, self-documenting code\n- Add comments for complex logic"
49
+ }
50
+ ]
51
+ }
package/package.json CHANGED
@@ -1,24 +1,28 @@
1
1
  {
2
2
  "name": "prpm",
3
- "version": "1.2.1",
3
+ "version": "2.0.1",
4
4
  "description": "Prompt Package Manager CLI - Install and manage prompt-based files",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
7
7
  "prpm": "dist/index.js"
8
8
  },
9
9
  "scripts": {
10
- "build": "tsc",
11
- "build:watch": "tsc --watch --preserveWatchOutput",
10
+ "build": "tsup",
11
+ "build:watch": "tsup --watch",
12
12
  "dev": "tsx watch --clear-screen=false src/index.ts",
13
13
  "dev:with-build": "concurrently --kill-others --names \"BUILD,CLI\" \"tsc --watch --preserveWatchOutput\" \"nodemon --delay 1 --watch dist dist/index.js\"",
14
14
  "dev:build-only": "tsc --watch --preserveWatchOutput",
15
15
  "start": "node dist/index.js",
16
- "test": "jest",
17
- "test:watch": "jest --watch",
18
- "test:coverage": "jest --coverage",
19
- "test:ci": "jest --ci --coverage --watchAll=false",
16
+ "test": "vitest run",
17
+ "test:watch": "vitest",
18
+ "test:coverage": "vitest --coverage",
19
+ "test:ci": "vitest run --coverage",
20
20
  "build:binary": "echo 'Binary builds deprecated - use npm install -g prpm or Homebrew instead'",
21
21
  "typecheck": "tsc --noEmit",
22
+ "version:bump": "node scripts/bump-version.js",
23
+ "version:major": "node scripts/bump-version.js major",
24
+ "version:minor": "node scripts/bump-version.js minor",
25
+ "version:patch": "node scripts/bump-version.js patch",
22
26
  "prepublishOnly": "npm run build"
23
27
  },
24
28
  "keywords": [
@@ -41,24 +45,26 @@
41
45
  "license": "MIT",
42
46
  "dependencies": {
43
47
  "@octokit/rest": "^22.0.0",
44
- "@pr-pm/registry-client": "1.2.1",
45
- "@pr-pm/types": "^0.1.1",
48
+ "@pr-pm/converters": "^2.0.2",
49
+ "@pr-pm/registry-client": "^2.2.1",
50
+ "@pr-pm/types": "^2.0.2",
46
51
  "ajv": "^8.17.1",
47
52
  "ajv-formats": "^3.0.1",
48
53
  "commander": "^11.1.0",
54
+ "jsonwebtoken": "^9.0.2",
49
55
  "posthog-node": "^5.10.0",
56
+ "semver": "^7.7.3",
50
57
  "tar": "^6.2.1"
51
58
  },
52
59
  "devDependencies": {
53
- "@types/jest": "^29.5.8",
60
+ "@types/jsonwebtoken": "^9.0.10",
54
61
  "@types/node": "^20.10.0",
55
62
  "@types/tar": "^6.1.13",
56
- "jest": "^29.7.0",
57
63
  "nodemon": "^3.0.2",
58
- "ts-jest": "^29.1.1",
59
- "ts-node": "^10.9.1",
64
+ "tsup": "^8.5.1",
60
65
  "tsx": "^4.20.6",
61
- "typescript": "^5.3.2"
66
+ "typescript": "^5.3.2",
67
+ "vitest": "^3.2.4"
62
68
  },
63
69
  "engines": {
64
70
  "node": ">=16.0.0"