@clawmarket.cc/marketcc 0.5.6 → 0.5.7
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/browse.js +4 -3
- package/dist/commands/browse.js.map +1 -1
- package/dist/commands/ls.js +5 -4
- package/dist/commands/ls.js.map +1 -1
- package/dist/lib/listing-tags.d.ts +2 -0
- package/dist/lib/listing-tags.js +39 -0
- package/dist/lib/listing-tags.js.map +1 -0
- package/package.json +1 -1
package/dist/commands/browse.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createClient } from '../lib/api.js';
|
|
2
2
|
import { handleApiError } from '../lib/errors.js';
|
|
3
|
+
import { buildListingTagLabels } from '../lib/listing-tags.js';
|
|
3
4
|
import { renderTable } from '../lib/table.js';
|
|
4
5
|
export default function registerBrowse(program) {
|
|
5
6
|
program
|
|
@@ -20,12 +21,12 @@ export default function registerBrowse(program) {
|
|
|
20
21
|
console.log('No listings found.');
|
|
21
22
|
return;
|
|
22
23
|
}
|
|
23
|
-
const headers = ['ID', 'Title', '
|
|
24
|
-
const widths = [36,
|
|
24
|
+
const headers = ['ID', 'Title', 'Tags', 'Price (SOL)', 'Provider', 'Status'];
|
|
25
|
+
const widths = [36, 22, 22, 12, 14, 10];
|
|
25
26
|
const rows = data.items.map((l) => [
|
|
26
27
|
l.id,
|
|
27
28
|
l.title,
|
|
28
|
-
l.listing_type
|
|
29
|
+
buildListingTagLabels(l.listing_type, l.required_api_keys).join(', '),
|
|
29
30
|
l.price_sol === 0 ? 'Free' : String(l.price_sol),
|
|
30
31
|
l.profiles?.display_name || 'Unknown',
|
|
31
32
|
l.status,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browse.js","sourceRoot":"","sources":["../../src/commands/browse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"browse.js","sourceRoot":"","sources":["../../src/commands/browse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAmB9C,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,qBAAqB,EAAE,aAAa,EAAE,GAAG,CAAC;SACjD,MAAM,CAAC,sBAAsB,EAAE,gBAAgB,EAAE,IAAI,CAAC;SACtD,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,IAAsD,EAAE,EAAE;QACvE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YAEpC,IAAI,IAAI,GAAG,yBAAyB,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;YACpE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,IAAI,WAAW,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAmB,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAEnF,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC7E,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACjC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,KAAK;gBACP,qBAAqB,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrE,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChD,CAAC,CAAC,QAAQ,EAAE,YAAY,IAAI,SAAS;gBACrC,CAAC,CAAC,MAAM;aACT,CAAC,CAAC;YAEH,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,MAAM,OAAO,IAAI,CAAC,KAAK,mBAAmB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAC9F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,cAAc,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/commands/ls.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createAuthenticatedClient } from '../lib/api.js';
|
|
2
2
|
import { handleApiError } from '../lib/errors.js';
|
|
3
|
+
import { buildListingTagLabels } from '../lib/listing-tags.js';
|
|
3
4
|
import { renderTable } from '../lib/table.js';
|
|
4
5
|
export default function registerLs(program) {
|
|
5
6
|
program
|
|
@@ -14,13 +15,13 @@ export default function registerLs(program) {
|
|
|
14
15
|
console.log("You haven't listed anything yet. Use `marketcc upload <path>` to create your first listing.");
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
|
-
const headers = ['ID', 'Title', '
|
|
18
|
-
const widths = [34,
|
|
18
|
+
const headers = ['ID', 'Title', 'Tags', 'Price (SOL)', 'Status', 'Created'];
|
|
19
|
+
const widths = [34, 20, 24, 12, 10, 16];
|
|
19
20
|
const rows = listings.map((l) => [
|
|
20
21
|
l.id,
|
|
21
22
|
l.title,
|
|
22
|
-
l.listing_type
|
|
23
|
-
String(l.price_sol),
|
|
23
|
+
buildListingTagLabels(l.listing_type, l.required_api_keys).join(', '),
|
|
24
|
+
l.price_sol === 0 ? 'Free' : String(l.price_sol),
|
|
24
25
|
l.status,
|
|
25
26
|
new Date(l.created_at).toLocaleDateString(),
|
|
26
27
|
]);
|
package/dist/commands/ls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ls.js","sourceRoot":"","sources":["../../src/commands/ls.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"ls.js","sourceRoot":"","sources":["../../src/commands/ls.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAmB9C,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,OAAgB;IACjD,OAAO;SACJ,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,yBAAyB,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAC/B,KAAK,EACL,2BAA2B,CAC5B,CAAC;YACF,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAEzD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,6FAA6F,CAAC,CAAC;gBAC3G,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC/B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,KAAK;gBACP,qBAAqB,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrE,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChD,CAAC,CAAC,MAAM;gBACR,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,kBAAkB,EAAE;aAC5C,CAAC,CAAC;YAEH,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAEnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,MAAM,OAAO,IAAI,CAAC,KAAK,mBAAmB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,cAAc,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const KEY_TAG_LABELS = {
|
|
2
|
+
OPENAI_API_KEY: 'OPENAI',
|
|
3
|
+
ANTHROPIC_API_KEY: 'ANTHROPIC',
|
|
4
|
+
BRAVE_API_KEY: 'BRAVE',
|
|
5
|
+
};
|
|
6
|
+
function normalizeListingType(value) {
|
|
7
|
+
return value === 'bot' ? 'bot' : 'md';
|
|
8
|
+
}
|
|
9
|
+
function normalizeRequiredApiKeys(value) {
|
|
10
|
+
if (!Array.isArray(value))
|
|
11
|
+
return [];
|
|
12
|
+
const deduped = [];
|
|
13
|
+
for (const item of value) {
|
|
14
|
+
if (typeof item !== 'string')
|
|
15
|
+
continue;
|
|
16
|
+
const trimmed = item.trim();
|
|
17
|
+
if (!trimmed)
|
|
18
|
+
continue;
|
|
19
|
+
if (deduped.includes(trimmed))
|
|
20
|
+
continue;
|
|
21
|
+
deduped.push(trimmed);
|
|
22
|
+
}
|
|
23
|
+
return deduped;
|
|
24
|
+
}
|
|
25
|
+
function keyTagLabel(keyName) {
|
|
26
|
+
if (KEY_TAG_LABELS[keyName])
|
|
27
|
+
return KEY_TAG_LABELS[keyName];
|
|
28
|
+
return keyName.replace(/_API_KEY$/i, '').replace(/_/g, ' ');
|
|
29
|
+
}
|
|
30
|
+
export function buildListingTagLabels(listingType, requiredApiKeys) {
|
|
31
|
+
const normalizedType = normalizeListingType(listingType);
|
|
32
|
+
const tags = [normalizedType === 'bot' ? 'BOT' : 'MD CONFIG'];
|
|
33
|
+
if (normalizedType !== 'bot') {
|
|
34
|
+
return tags;
|
|
35
|
+
}
|
|
36
|
+
const keyTags = normalizeRequiredApiKeys(requiredApiKeys).map(keyTagLabel);
|
|
37
|
+
return [...tags, ...keyTags];
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=listing-tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listing-tags.js","sourceRoot":"","sources":["../../src/lib/listing-tags.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAA2B;IAC7C,cAAc,EAAE,QAAQ;IACxB,iBAAiB,EAAE,WAAW;IAC9B,aAAa,EAAE,OAAO;CACvB,CAAC;AAEF,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QACxC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,IAAI,cAAc,CAAC,OAAO,CAAC;QAAE,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5D,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,WAAoB,EAAE,eAAwB;IAClF,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAE9D,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;AAC/B,CAAC"}
|