prpm 0.0.7 → 0.0.9
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/commands/config.js +167 -0
- package/dist/commands/index.js +17 -17
- package/dist/commands/info.js +2 -1
- package/dist/commands/init.js +670 -0
- package/dist/commands/install.js +128 -99
- package/dist/commands/list.js +7 -4
- package/dist/commands/login.js +4 -1
- package/dist/commands/outdated.js +4 -1
- package/dist/commands/popular.js +10 -3
- package/dist/commands/publish.js +100 -11
- package/dist/commands/schema.js +4 -1
- package/dist/commands/search.js +114 -84
- package/dist/commands/telemetry.js +6 -0
- package/dist/commands/trending.js +17 -7
- package/dist/commands/uninstall.js +4 -7
- package/dist/commands/update.js +5 -4
- package/dist/commands/upgrade.js +5 -4
- package/dist/commands/whoami.js +10 -1
- package/dist/core/filesystem.js +21 -15
- package/dist/core/lockfile.js +2 -2
- package/dist/core/marketplace-converter.js +11 -6
- package/dist/core/registry-client.js +14 -8
- package/dist/index.js +19 -1
- package/package.json +7 -3
- package/schemas/prpm-manifest.schema.json +197 -38
package/dist/index.js
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const commander_1 = require("commander");
|
|
8
|
+
const fs_1 = require("fs");
|
|
9
|
+
const path_1 = require("path");
|
|
8
10
|
const list_1 = require("./commands/list");
|
|
9
11
|
const uninstall_1 = require("./commands/uninstall");
|
|
10
12
|
const index_1 = require("./commands/index");
|
|
@@ -21,12 +23,27 @@ const outdated_1 = require("./commands/outdated");
|
|
|
21
23
|
const update_1 = require("./commands/update");
|
|
22
24
|
const upgrade_1 = require("./commands/upgrade");
|
|
23
25
|
const schema_1 = require("./commands/schema");
|
|
26
|
+
const init_1 = require("./commands/init");
|
|
27
|
+
const config_1 = require("./commands/config");
|
|
24
28
|
const telemetry_2 = require("./core/telemetry");
|
|
29
|
+
// Read version from package.json
|
|
30
|
+
function getVersion() {
|
|
31
|
+
try {
|
|
32
|
+
const packageJsonPath = (0, path_1.join)(__dirname, '../package.json');
|
|
33
|
+
const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf-8'));
|
|
34
|
+
return packageJson.version || '0.0.0';
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return '0.0.0';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
25
40
|
const program = new commander_1.Command();
|
|
26
41
|
program
|
|
27
42
|
.name('prpm')
|
|
28
43
|
.description('Prompt Package Manager - Install and manage prompt-based files')
|
|
29
|
-
.version(
|
|
44
|
+
.version(getVersion());
|
|
45
|
+
// Package creation commands
|
|
46
|
+
program.addCommand((0, init_1.createInitCommand)());
|
|
30
47
|
// Registry commands (new)
|
|
31
48
|
program.addCommand((0, search_1.createSearchCommand)());
|
|
32
49
|
program.addCommand((0, install_1.createInstallCommand)());
|
|
@@ -46,6 +63,7 @@ program.addCommand((0, index_1.createIndexCommand)());
|
|
|
46
63
|
program.addCommand((0, telemetry_1.createTelemetryCommand)());
|
|
47
64
|
// Utility commands
|
|
48
65
|
program.addCommand((0, schema_1.createSchemaCommand)());
|
|
66
|
+
program.addCommand((0, config_1.createConfigCommand)());
|
|
49
67
|
// Parse command line arguments
|
|
50
68
|
program.parse();
|
|
51
69
|
// Cleanup telemetry on exit
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prpm",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"description": "Prompt Package Manager CLI - Install and manage prompt-based files",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
"test:ci": "jest --ci --coverage --watchAll=false",
|
|
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,8 +45,8 @@
|
|
|
41
45
|
"license": "MIT",
|
|
42
46
|
"dependencies": {
|
|
43
47
|
"@octokit/rest": "^22.0.0",
|
|
44
|
-
"@pr-pm/registry-client": "^1.2.
|
|
45
|
-
"@pr-pm/types": "^0.1.
|
|
48
|
+
"@pr-pm/registry-client": "^1.2.3",
|
|
49
|
+
"@pr-pm/types": "^0.1.3",
|
|
46
50
|
"ajv": "^8.17.1",
|
|
47
51
|
"ajv-formats": "^3.0.1",
|
|
48
52
|
"commander": "^11.1.0",
|
|
@@ -4,7 +4,12 @@
|
|
|
4
4
|
"title": "PRPM Package Manifest",
|
|
5
5
|
"description": "Schema for PRPM package manifest (prpm.json)",
|
|
6
6
|
"type": "object",
|
|
7
|
-
"required": [
|
|
7
|
+
"required": [
|
|
8
|
+
"name",
|
|
9
|
+
"version",
|
|
10
|
+
"description",
|
|
11
|
+
"format"
|
|
12
|
+
],
|
|
8
13
|
"properties": {
|
|
9
14
|
"name": {
|
|
10
15
|
"type": "string",
|
|
@@ -22,7 +27,11 @@
|
|
|
22
27
|
"type": "string",
|
|
23
28
|
"description": "Semantic version (semver)",
|
|
24
29
|
"pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.-]+)?(\\+[a-zA-Z0-9.-]+)?$",
|
|
25
|
-
"examples": [
|
|
30
|
+
"examples": [
|
|
31
|
+
"1.0.0",
|
|
32
|
+
"2.1.3",
|
|
33
|
+
"1.0.0-beta.1"
|
|
34
|
+
]
|
|
26
35
|
},
|
|
27
36
|
"description": {
|
|
28
37
|
"type": "string",
|
|
@@ -30,18 +39,33 @@
|
|
|
30
39
|
"minLength": 10,
|
|
31
40
|
"maxLength": 500
|
|
32
41
|
},
|
|
33
|
-
"
|
|
42
|
+
"format": {
|
|
34
43
|
"type": "string",
|
|
35
|
-
"description": "Package
|
|
44
|
+
"description": "Package format - the AI tool/platform this package is for",
|
|
36
45
|
"enum": [
|
|
37
46
|
"cursor",
|
|
38
47
|
"claude",
|
|
39
|
-
"claude-skill",
|
|
40
|
-
"claude-agent",
|
|
41
|
-
"claude-slash-command",
|
|
42
48
|
"continue",
|
|
43
49
|
"windsurf",
|
|
50
|
+
"copilot",
|
|
51
|
+
"kiro",
|
|
52
|
+
"agents.md",
|
|
44
53
|
"generic",
|
|
54
|
+
"mcp"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"subtype": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"description": "Package subtype - the functional category (optional, defaults to 'rule')",
|
|
60
|
+
"enum": [
|
|
61
|
+
"rule",
|
|
62
|
+
"agent",
|
|
63
|
+
"skill",
|
|
64
|
+
"slash-command",
|
|
65
|
+
"prompt",
|
|
66
|
+
"workflow",
|
|
67
|
+
"tool",
|
|
68
|
+
"template",
|
|
45
69
|
"collection"
|
|
46
70
|
]
|
|
47
71
|
},
|
|
@@ -50,11 +74,16 @@
|
|
|
50
74
|
"oneOf": [
|
|
51
75
|
{
|
|
52
76
|
"type": "string",
|
|
53
|
-
"examples": [
|
|
77
|
+
"examples": [
|
|
78
|
+
"John Doe",
|
|
79
|
+
"Jane Smith"
|
|
80
|
+
]
|
|
54
81
|
},
|
|
55
82
|
{
|
|
56
83
|
"type": "object",
|
|
57
|
-
"required": [
|
|
84
|
+
"required": [
|
|
85
|
+
"name"
|
|
86
|
+
],
|
|
58
87
|
"properties": {
|
|
59
88
|
"name": {
|
|
60
89
|
"type": "string",
|
|
@@ -77,13 +106,20 @@
|
|
|
77
106
|
"license": {
|
|
78
107
|
"type": "string",
|
|
79
108
|
"description": "SPDX license identifier",
|
|
80
|
-
"examples": [
|
|
109
|
+
"examples": [
|
|
110
|
+
"MIT",
|
|
111
|
+
"Apache-2.0",
|
|
112
|
+
"GPL-3.0",
|
|
113
|
+
"BSD-3-Clause"
|
|
114
|
+
]
|
|
81
115
|
},
|
|
82
116
|
"repository": {
|
|
83
117
|
"type": "string",
|
|
84
118
|
"format": "uri",
|
|
85
119
|
"description": "Repository URL",
|
|
86
|
-
"examples": [
|
|
120
|
+
"examples": [
|
|
121
|
+
"https://github.com/username/repo"
|
|
122
|
+
]
|
|
87
123
|
},
|
|
88
124
|
"homepage": {
|
|
89
125
|
"type": "string",
|
|
@@ -103,7 +139,16 @@
|
|
|
103
139
|
},
|
|
104
140
|
"maxItems": 10,
|
|
105
141
|
"uniqueItems": true,
|
|
106
|
-
"examples": [
|
|
142
|
+
"examples": [
|
|
143
|
+
[
|
|
144
|
+
"productivity",
|
|
145
|
+
"coding"
|
|
146
|
+
],
|
|
147
|
+
[
|
|
148
|
+
"testing",
|
|
149
|
+
"quality"
|
|
150
|
+
]
|
|
151
|
+
]
|
|
107
152
|
},
|
|
108
153
|
"keywords": {
|
|
109
154
|
"type": "array",
|
|
@@ -113,12 +158,22 @@
|
|
|
113
158
|
},
|
|
114
159
|
"maxItems": 20,
|
|
115
160
|
"uniqueItems": true,
|
|
116
|
-
"examples": [
|
|
161
|
+
"examples": [
|
|
162
|
+
[
|
|
163
|
+
"ai",
|
|
164
|
+
"prompts",
|
|
165
|
+
"development"
|
|
166
|
+
]
|
|
167
|
+
]
|
|
117
168
|
},
|
|
118
169
|
"category": {
|
|
119
170
|
"type": "string",
|
|
120
171
|
"description": "Package category",
|
|
121
|
-
"examples": [
|
|
172
|
+
"examples": [
|
|
173
|
+
"development",
|
|
174
|
+
"productivity",
|
|
175
|
+
"testing"
|
|
176
|
+
]
|
|
122
177
|
},
|
|
123
178
|
"files": {
|
|
124
179
|
"description": "Files to include in package. Can be simple paths or enhanced file objects with metadata.",
|
|
@@ -131,8 +186,14 @@
|
|
|
131
186
|
},
|
|
132
187
|
"minItems": 1,
|
|
133
188
|
"examples": [
|
|
134
|
-
[
|
|
135
|
-
|
|
189
|
+
[
|
|
190
|
+
"skill.md",
|
|
191
|
+
"README.md"
|
|
192
|
+
],
|
|
193
|
+
[
|
|
194
|
+
".cursor/rules/react.mdc",
|
|
195
|
+
"LICENSE"
|
|
196
|
+
]
|
|
136
197
|
]
|
|
137
198
|
},
|
|
138
199
|
{
|
|
@@ -140,7 +201,10 @@
|
|
|
140
201
|
"description": "Enhanced format: array of file objects with metadata",
|
|
141
202
|
"items": {
|
|
142
203
|
"type": "object",
|
|
143
|
-
"required": [
|
|
204
|
+
"required": [
|
|
205
|
+
"path",
|
|
206
|
+
"format"
|
|
207
|
+
],
|
|
144
208
|
"properties": {
|
|
145
209
|
"path": {
|
|
146
210
|
"type": "string",
|
|
@@ -151,24 +215,43 @@
|
|
|
151
215
|
".continue/rules/python.json"
|
|
152
216
|
]
|
|
153
217
|
},
|
|
154
|
-
"
|
|
218
|
+
"format": {
|
|
155
219
|
"type": "string",
|
|
156
|
-
"description": "File
|
|
220
|
+
"description": "File format - the AI tool/platform this file is for",
|
|
157
221
|
"enum": [
|
|
158
222
|
"cursor",
|
|
159
223
|
"claude",
|
|
160
|
-
"claude-skill",
|
|
161
|
-
"claude-agent",
|
|
162
|
-
"claude-slash-command",
|
|
163
224
|
"continue",
|
|
164
225
|
"windsurf",
|
|
165
|
-
"
|
|
226
|
+
"copilot",
|
|
227
|
+
"kiro",
|
|
228
|
+
"agents.md",
|
|
229
|
+
"generic",
|
|
230
|
+
"mcp"
|
|
231
|
+
]
|
|
232
|
+
},
|
|
233
|
+
"subtype": {
|
|
234
|
+
"type": "string",
|
|
235
|
+
"description": "File subtype - the functional category",
|
|
236
|
+
"enum": [
|
|
237
|
+
"rule",
|
|
238
|
+
"agent",
|
|
239
|
+
"skill",
|
|
240
|
+
"slash-command",
|
|
241
|
+
"prompt",
|
|
242
|
+
"workflow",
|
|
243
|
+
"tool",
|
|
244
|
+
"template",
|
|
245
|
+
"collection"
|
|
166
246
|
]
|
|
167
247
|
},
|
|
168
248
|
"name": {
|
|
169
249
|
"type": "string",
|
|
170
250
|
"description": "Display name for this file",
|
|
171
|
-
"examples": [
|
|
251
|
+
"examples": [
|
|
252
|
+
"React Rules",
|
|
253
|
+
"Test-Driven Development"
|
|
254
|
+
]
|
|
172
255
|
},
|
|
173
256
|
"description": {
|
|
174
257
|
"type": "string",
|
|
@@ -181,7 +264,16 @@
|
|
|
181
264
|
"type": "string"
|
|
182
265
|
},
|
|
183
266
|
"uniqueItems": true,
|
|
184
|
-
"examples": [
|
|
267
|
+
"examples": [
|
|
268
|
+
[
|
|
269
|
+
"react",
|
|
270
|
+
"typescript"
|
|
271
|
+
],
|
|
272
|
+
[
|
|
273
|
+
"testing",
|
|
274
|
+
"tdd"
|
|
275
|
+
]
|
|
276
|
+
]
|
|
185
277
|
}
|
|
186
278
|
},
|
|
187
279
|
"additionalProperties": false
|
|
@@ -193,7 +285,10 @@
|
|
|
193
285
|
"main": {
|
|
194
286
|
"type": "string",
|
|
195
287
|
"description": "Main entry file (for single-file packages)",
|
|
196
|
-
"examples": [
|
|
288
|
+
"examples": [
|
|
289
|
+
"index.md",
|
|
290
|
+
"skill.md"
|
|
291
|
+
]
|
|
197
292
|
},
|
|
198
293
|
"dependencies": {
|
|
199
294
|
"type": "object",
|
|
@@ -250,35 +345,48 @@
|
|
|
250
345
|
"name": "@username/simple-package",
|
|
251
346
|
"version": "1.0.0",
|
|
252
347
|
"description": "A simple package with basic files",
|
|
253
|
-
"
|
|
348
|
+
"format": "claude", "subtype": "skill",
|
|
254
349
|
"author": "Your Name",
|
|
255
350
|
"license": "MIT",
|
|
256
|
-
"files": [
|
|
351
|
+
"files": [
|
|
352
|
+
"skill.md",
|
|
353
|
+
"README.md"
|
|
354
|
+
]
|
|
257
355
|
},
|
|
258
356
|
{
|
|
259
357
|
"name": "@username/cursor-rules",
|
|
260
358
|
"version": "1.0.0",
|
|
261
359
|
"description": "Multiple Cursor rules for different languages",
|
|
262
|
-
"
|
|
360
|
+
"format": "cursor",
|
|
263
361
|
"author": {
|
|
264
362
|
"name": "Your Name",
|
|
265
363
|
"email": "you@example.com"
|
|
266
364
|
},
|
|
267
365
|
"license": "MIT",
|
|
268
366
|
"repository": "https://github.com/username/cursor-rules",
|
|
269
|
-
"tags": [
|
|
367
|
+
"tags": [
|
|
368
|
+
"cursor",
|
|
369
|
+
"rules",
|
|
370
|
+
"multi-language"
|
|
371
|
+
],
|
|
270
372
|
"files": [
|
|
271
373
|
{
|
|
272
374
|
"path": ".cursor/rules/typescript.mdc",
|
|
273
|
-
"
|
|
375
|
+
"format": "cursor",
|
|
274
376
|
"name": "TypeScript Rules",
|
|
275
|
-
"tags": [
|
|
377
|
+
"tags": [
|
|
378
|
+
"typescript",
|
|
379
|
+
"frontend"
|
|
380
|
+
]
|
|
276
381
|
},
|
|
277
382
|
{
|
|
278
383
|
"path": ".cursor/rules/python.mdc",
|
|
279
|
-
"
|
|
384
|
+
"format": "cursor",
|
|
280
385
|
"name": "Python Rules",
|
|
281
|
-
"tags": [
|
|
386
|
+
"tags": [
|
|
387
|
+
"python",
|
|
388
|
+
"backend"
|
|
389
|
+
]
|
|
282
390
|
}
|
|
283
391
|
]
|
|
284
392
|
},
|
|
@@ -286,22 +394,73 @@
|
|
|
286
394
|
"name": "@community/testing-suite",
|
|
287
395
|
"version": "2.0.0",
|
|
288
396
|
"description": "Complete testing suite with skills and agents",
|
|
289
|
-
"
|
|
397
|
+
"format": "generic", "subtype": "collection",
|
|
290
398
|
"author": "Community",
|
|
291
399
|
"license": "MIT",
|
|
292
|
-
"tags": [
|
|
400
|
+
"tags": [
|
|
401
|
+
"testing",
|
|
402
|
+
"quality"
|
|
403
|
+
],
|
|
293
404
|
"files": [
|
|
294
405
|
{
|
|
295
406
|
"path": ".claude/skills/tdd.md",
|
|
296
|
-
"
|
|
407
|
+
"format": "claude", "subtype": "skill",
|
|
297
408
|
"name": "Test-Driven Development"
|
|
298
409
|
},
|
|
299
410
|
{
|
|
300
411
|
"path": ".claude/agents/test-generator.md",
|
|
301
|
-
"
|
|
412
|
+
"format": "claude", "subtype": "agent",
|
|
302
413
|
"name": "Test Generator"
|
|
303
414
|
}
|
|
304
415
|
]
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"name": "@username/copilot-instructions",
|
|
419
|
+
"version": "1.0.0",
|
|
420
|
+
"description": "GitHub Copilot instructions for API development",
|
|
421
|
+
"format": "copilot",
|
|
422
|
+
"author": "Your Name",
|
|
423
|
+
"license": "MIT",
|
|
424
|
+
"tags": [
|
|
425
|
+
"copilot",
|
|
426
|
+
"api",
|
|
427
|
+
"backend"
|
|
428
|
+
],
|
|
429
|
+
"files": [
|
|
430
|
+
"api-guidelines.md"
|
|
431
|
+
]
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
"name": "@username/kiro-steering",
|
|
435
|
+
"version": "1.0.0",
|
|
436
|
+
"description": "Kiro steering file for testing standards",
|
|
437
|
+
"format": "kiro",
|
|
438
|
+
"author": "Your Name",
|
|
439
|
+
"license": "MIT",
|
|
440
|
+
"tags": [
|
|
441
|
+
"kiro",
|
|
442
|
+
"testing",
|
|
443
|
+
"quality"
|
|
444
|
+
],
|
|
445
|
+
"files": [
|
|
446
|
+
"testing.md"
|
|
447
|
+
]
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"name": "@username/windsurf-rules",
|
|
451
|
+
"version": "1.0.0",
|
|
452
|
+
"description": "Windsurf coding rules for React projects",
|
|
453
|
+
"format": "windsurf",
|
|
454
|
+
"author": "Your Name",
|
|
455
|
+
"license": "MIT",
|
|
456
|
+
"tags": [
|
|
457
|
+
"windsurf",
|
|
458
|
+
"react",
|
|
459
|
+
"frontend"
|
|
460
|
+
],
|
|
461
|
+
"files": [
|
|
462
|
+
".windsurfrules"
|
|
463
|
+
]
|
|
305
464
|
}
|
|
306
465
|
]
|
|
307
466
|
}
|