fluncle 0.146.0 → 0.148.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.
- package/bin/fluncle.mjs +44 -2
- package/package.json +1 -1
package/bin/fluncle.mjs
CHANGED
|
@@ -561,7 +561,7 @@ function parseVersion(version) {
|
|
|
561
561
|
var currentVersion;
|
|
562
562
|
var init_version = __esm(() => {
|
|
563
563
|
init_output();
|
|
564
|
-
currentVersion = "0.
|
|
564
|
+
currentVersion = "0.148.0".trim() ? "0.148.0".trim() : "0.1.0";
|
|
565
565
|
});
|
|
566
566
|
|
|
567
567
|
// src/update-notifier.ts
|
|
@@ -2189,7 +2189,7 @@ function parseVersion2(version) {
|
|
|
2189
2189
|
var currentVersion2, latestReleaseUrl = "https://api.github.com/repos/mauricekleine/fluncle/releases/latest";
|
|
2190
2190
|
var init_version2 = __esm(() => {
|
|
2191
2191
|
init_output();
|
|
2192
|
-
currentVersion2 = "0.
|
|
2192
|
+
currentVersion2 = "0.148.0".trim() ? "0.148.0".trim() : "0.1.0";
|
|
2193
2193
|
});
|
|
2194
2194
|
|
|
2195
2195
|
// ../../packages/registry/src/index.ts
|
|
@@ -5730,6 +5730,7 @@ __export(exports_admin_catalogue, {
|
|
|
5730
5730
|
verifyCaptureCommand: () => verifyCaptureCommand,
|
|
5731
5731
|
setTrackDismissedCommand: () => setTrackDismissedCommand,
|
|
5732
5732
|
listUnverifiedCapturesCommand: () => listUnverifiedCapturesCommand,
|
|
5733
|
+
forceCaptureCommand: () => forceCaptureCommand,
|
|
5733
5734
|
flagWrongAudioCommand: () => flagWrongAudioCommand,
|
|
5734
5735
|
crawlStatusCommand: () => crawlStatusCommand,
|
|
5735
5736
|
crawlCatalogueCommand: () => crawlCatalogueCommand,
|
|
@@ -5756,6 +5757,11 @@ async function clearWrongAudioCommand(trackId) {
|
|
|
5756
5757
|
trackId
|
|
5757
5758
|
});
|
|
5758
5759
|
}
|
|
5760
|
+
async function forceCaptureCommand(trackId) {
|
|
5761
|
+
return adminApiPost("/api/admin/catalogue/force-capture", {
|
|
5762
|
+
trackId
|
|
5763
|
+
});
|
|
5764
|
+
}
|
|
5759
5765
|
async function flagWrongAudioCommand(trackId) {
|
|
5760
5766
|
return adminApiPost("/api/admin/catalogue/wrong-audio/flag", {
|
|
5761
5767
|
trackId
|
|
@@ -5800,6 +5806,18 @@ var init_admin_catalogue = __esm(() => {
|
|
|
5800
5806
|
init_api();
|
|
5801
5807
|
});
|
|
5802
5808
|
|
|
5809
|
+
// src/commands/admin-reach.ts
|
|
5810
|
+
var exports_admin_reach = {};
|
|
5811
|
+
__export(exports_admin_reach, {
|
|
5812
|
+
reachCollectCommand: () => reachCollectCommand
|
|
5813
|
+
});
|
|
5814
|
+
async function reachCollectCommand() {
|
|
5815
|
+
return adminApiPost("/api/admin/reach/collect", {});
|
|
5816
|
+
}
|
|
5817
|
+
var init_admin_reach = __esm(() => {
|
|
5818
|
+
init_api();
|
|
5819
|
+
});
|
|
5820
|
+
|
|
5803
5821
|
// src/commands/admin-artists.ts
|
|
5804
5822
|
var exports_admin_artists = {};
|
|
5805
5823
|
__export(exports_admin_artists, {
|
|
@@ -8870,6 +8888,15 @@ function addAdminCommands(program2) {
|
|
|
8870
8888
|
}
|
|
8871
8889
|
console.log(flagged ? `Flagged ${trackId}. Its vector is out of the ranking and a fresh capture is queued (the bad bytes are hash-rejected).` : `${trackId} is not a captured finding \u2014 nothing to flag.`);
|
|
8872
8890
|
});
|
|
8891
|
+
catalogue.command("force-capture").description("Overrule the duplicate veto on one catalogue row so it can be captured (operator)").argument("<trackId>", "The catalogue track id to capture anyway").option("--json", "Print JSON", false).action(async (trackId, options) => {
|
|
8892
|
+
const { forceCaptureCommand: forceCaptureCommand2 } = await Promise.resolve().then(() => (init_admin_catalogue(), exports_admin_catalogue));
|
|
8893
|
+
const { forced } = await forceCaptureCommand2(trackId);
|
|
8894
|
+
if (options.json) {
|
|
8895
|
+
printJson({ forced, ok: true });
|
|
8896
|
+
return;
|
|
8897
|
+
}
|
|
8898
|
+
console.log(forced ? `Forced ${trackId}. The duplicate veto is lifted; it re-ranks onto the capture ladder and the next open-budget tick buys it.` : `${trackId} was not vetoed as a duplicate \u2014 nothing to force.`);
|
|
8899
|
+
});
|
|
8873
8900
|
catalogue.command("verify").description("Capture verification: the unverified worklist (--queue), or record one verdict").argument("[trackId]", "The track whose capture verdict to record (omit with --queue)").option("--queue", "List captured rows not yet verified against their preview", false).option("--verdict <verdict>", "The fingerprint verdict: match | mismatch | no-preview").option("--limit <limit>", "Worklist rows (default 50, max 200)").option("--json", "Print JSON", false).action(async (trackId, options) => {
|
|
8874
8901
|
const { listUnverifiedCapturesCommand: listUnverifiedCapturesCommand2, verifyCaptureCommand: verifyCaptureCommand2 } = await Promise.resolve().then(() => (init_admin_catalogue(), exports_admin_catalogue));
|
|
8875
8902
|
if (options.queue) {
|
|
@@ -8936,6 +8963,21 @@ function addAdminCommands(program2) {
|
|
|
8936
8963
|
const { crawlStatusCommand: crawlStatusCommand2 } = await Promise.resolve().then(() => (init_admin_catalogue(), exports_admin_catalogue));
|
|
8937
8964
|
await runCrawlStatus(options, crawlStatusCommand2);
|
|
8938
8965
|
});
|
|
8966
|
+
const reach = configureCommand(admin.command("reach").description("The public /reach numbers: collect a daily snapshot"));
|
|
8967
|
+
reach.action(() => {
|
|
8968
|
+
reach.outputHelp();
|
|
8969
|
+
});
|
|
8970
|
+
reach.command("collect").description("Collect + record one daily reach snapshot across every platform").option("--json", "Print JSON", false).action(async (options) => {
|
|
8971
|
+
const { reachCollectCommand: reachCollectCommand2 } = await Promise.resolve().then(() => (init_admin_reach(), exports_admin_reach));
|
|
8972
|
+
const { collected, inserted, skipped } = await reachCollectCommand2();
|
|
8973
|
+
if (options.json) {
|
|
8974
|
+
printJson({ collected, inserted, ok: true, skipped });
|
|
8975
|
+
return;
|
|
8976
|
+
}
|
|
8977
|
+
const landed = collected.map((entry) => `${entry.platform} (${entry.metrics.join(", ")})`).join("; ");
|
|
8978
|
+
const missed = skipped.map((entry) => `${entry.platform}: ${entry.reason}`).join("; ");
|
|
8979
|
+
console.log(`Collected ${collected.length} platform(s), wrote ${inserted} new row(s).${landed ? ` Landed: ${landed}.` : ""}${missed ? ` Skipped: ${missed}.` : ""}`);
|
|
8980
|
+
});
|
|
8939
8981
|
const backfill = configureCommand(admin.command("backfills").description("Backfill operator-only archives"));
|
|
8940
8982
|
backfill.action(() => {
|
|
8941
8983
|
backfill.outputHelp();
|
package/package.json
CHANGED