@promptbook/markdown-utils 0.75.2 → 0.75.4
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/esm/index.es.js +107 -67
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/core.index.d.ts +2 -0
- package/esm/typings/src/config.d.ts +9 -1
- package/esm/typings/src/scrapers/_common/register/$registeredScrapersMessage.d.ts +2 -1
- package/package.json +1 -1
- package/umd/index.umd.js +107 -67
- package/umd/index.umd.js.map +1 -1
package/esm/index.es.js
CHANGED
|
@@ -20,7 +20,7 @@ var BOOK_LANGUAGE_VERSION = '1.0.0';
|
|
|
20
20
|
*
|
|
21
21
|
* @see https://github.com/webgptorg/promptbook
|
|
22
22
|
*/
|
|
23
|
-
var PROMPTBOOK_ENGINE_VERSION = '0.75.
|
|
23
|
+
var PROMPTBOOK_ENGINE_VERSION = '0.75.3';
|
|
24
24
|
/**
|
|
25
25
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
26
26
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -3042,50 +3042,63 @@ var $scrapersRegister = new $Register('scraper_constructors');
|
|
|
3042
3042
|
*
|
|
3043
3043
|
* @private internal function of `createScrapersFromConfiguration` and `createScrapersFromEnv`
|
|
3044
3044
|
*/
|
|
3045
|
-
function $registeredScrapersMessage() {
|
|
3046
|
-
var e_1, _a, e_2, _b;
|
|
3045
|
+
function $registeredScrapersMessage(availableScrapers) {
|
|
3046
|
+
var e_1, _a, e_2, _b, e_3, _c;
|
|
3047
3047
|
/**
|
|
3048
3048
|
* Mixes registered scrapers from $scrapersMetadataRegister and $scrapersRegister
|
|
3049
3049
|
*/
|
|
3050
3050
|
var all = [];
|
|
3051
|
-
var _loop_1 = function (packageName, className) {
|
|
3051
|
+
var _loop_1 = function (packageName, className, mimeTypes, documentationUrl, isAvilableInBrowser) {
|
|
3052
3052
|
if (all.some(function (item) { return item.packageName === packageName && item.className === className; })) {
|
|
3053
3053
|
return "continue";
|
|
3054
3054
|
}
|
|
3055
|
-
all.push({ packageName: packageName, className: className });
|
|
3055
|
+
all.push({ packageName: packageName, className: className, mimeTypes: mimeTypes, documentationUrl: documentationUrl, isAvilableInBrowser: isAvilableInBrowser });
|
|
3056
3056
|
};
|
|
3057
3057
|
try {
|
|
3058
|
-
for (var
|
|
3059
|
-
var
|
|
3060
|
-
_loop_1(packageName, className);
|
|
3058
|
+
for (var _d = __values($scrapersMetadataRegister.list()), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
3059
|
+
var _f = _e.value, packageName = _f.packageName, className = _f.className, mimeTypes = _f.mimeTypes, documentationUrl = _f.documentationUrl, isAvilableInBrowser = _f.isAvilableInBrowser;
|
|
3060
|
+
_loop_1(packageName, className, mimeTypes, documentationUrl, isAvilableInBrowser);
|
|
3061
3061
|
}
|
|
3062
3062
|
}
|
|
3063
3063
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
3064
3064
|
finally {
|
|
3065
3065
|
try {
|
|
3066
|
-
if (
|
|
3066
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
3067
3067
|
}
|
|
3068
3068
|
finally { if (e_1) throw e_1.error; }
|
|
3069
3069
|
}
|
|
3070
|
-
var _loop_2 = function (packageName, className) {
|
|
3070
|
+
var _loop_2 = function (packageName, className, mimeTypes, documentationUrl, isAvilableInBrowser) {
|
|
3071
3071
|
if (all.some(function (item) { return item.packageName === packageName && item.className === className; })) {
|
|
3072
3072
|
return "continue";
|
|
3073
3073
|
}
|
|
3074
|
-
all.push({ packageName: packageName, className: className });
|
|
3074
|
+
all.push({ packageName: packageName, className: className, mimeTypes: mimeTypes, documentationUrl: documentationUrl, isAvilableInBrowser: isAvilableInBrowser });
|
|
3075
3075
|
};
|
|
3076
3076
|
try {
|
|
3077
|
-
for (var
|
|
3078
|
-
var
|
|
3079
|
-
_loop_2(packageName, className);
|
|
3077
|
+
for (var _g = __values($scrapersRegister.list()), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
3078
|
+
var _j = _h.value, packageName = _j.packageName, className = _j.className, mimeTypes = _j.mimeTypes, documentationUrl = _j.documentationUrl, isAvilableInBrowser = _j.isAvilableInBrowser;
|
|
3079
|
+
_loop_2(packageName, className, mimeTypes, documentationUrl, isAvilableInBrowser);
|
|
3080
3080
|
}
|
|
3081
3081
|
}
|
|
3082
3082
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
3083
3083
|
finally {
|
|
3084
3084
|
try {
|
|
3085
|
-
if (
|
|
3085
|
+
if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
|
|
3086
3086
|
}
|
|
3087
3087
|
finally { if (e_2) throw e_2.error; }
|
|
3088
3088
|
}
|
|
3089
|
+
try {
|
|
3090
|
+
for (var availableScrapers_1 = __values(availableScrapers), availableScrapers_1_1 = availableScrapers_1.next(); !availableScrapers_1_1.done; availableScrapers_1_1 = availableScrapers_1.next()) {
|
|
3091
|
+
var metadata_1 = availableScrapers_1_1.value.metadata;
|
|
3092
|
+
all.push(metadata_1);
|
|
3093
|
+
}
|
|
3094
|
+
}
|
|
3095
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
3096
|
+
finally {
|
|
3097
|
+
try {
|
|
3098
|
+
if (availableScrapers_1_1 && !availableScrapers_1_1.done && (_c = availableScrapers_1.return)) _c.call(availableScrapers_1);
|
|
3099
|
+
}
|
|
3100
|
+
finally { if (e_3) throw e_3.error; }
|
|
3101
|
+
}
|
|
3089
3102
|
var metadata = all.map(function (metadata) {
|
|
3090
3103
|
var isMetadataAviailable = $scrapersMetadataRegister
|
|
3091
3104
|
.list()
|
|
@@ -3099,38 +3112,44 @@ function $registeredScrapersMessage() {
|
|
|
3099
3112
|
var packageName = _a.packageName, className = _a.className;
|
|
3100
3113
|
return metadata.packageName === packageName && metadata.className === className;
|
|
3101
3114
|
});
|
|
3102
|
-
|
|
3115
|
+
var isAvilableInTools = availableScrapers.some(function (_a) {
|
|
3116
|
+
var _b = _a.metadata, packageName = _b.packageName, className = _b.className;
|
|
3117
|
+
return metadata.packageName === packageName && metadata.className === className;
|
|
3118
|
+
});
|
|
3119
|
+
return __assign(__assign({}, metadata), { isMetadataAviailable: isMetadataAviailable, isInstalled: isInstalled, isAvilableInTools: isAvilableInTools });
|
|
3103
3120
|
});
|
|
3104
3121
|
if (metadata.length === 0) {
|
|
3105
|
-
return "No scrapers are available";
|
|
3122
|
+
return spaceTrim("\n **No scrapers are available**\n\n This is a unexpected behavior, you are probably using some broken version of Promptbook\n At least there should be available the metadata of the scrapers\n ");
|
|
3106
3123
|
}
|
|
3107
3124
|
return spaceTrim(function (block) { return "\n Available scrapers are:\n ".concat(block(metadata
|
|
3108
3125
|
.map(function (_a, i) {
|
|
3109
|
-
var packageName = _a.packageName, className = _a.className, isMetadataAviailable = _a.isMetadataAviailable, isInstalled = _a.isInstalled;
|
|
3110
|
-
var more;
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
more
|
|
3117
|
-
}
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
more = "(unknown state, looks like a unexpected behavior)";
|
|
3126
|
+
var packageName = _a.packageName, className = _a.className, isMetadataAviailable = _a.isMetadataAviailable, isInstalled = _a.isInstalled, mimeTypes = _a.mimeTypes, isAvilableInBrowser = _a.isAvilableInBrowser, isAvilableInTools = _a.isAvilableInTools;
|
|
3127
|
+
var more = [];
|
|
3128
|
+
// TODO: [🧠] Maybe use `documentationUrl`
|
|
3129
|
+
if (isMetadataAviailable) {
|
|
3130
|
+
more.push("\u2B1C Metadata registered");
|
|
3131
|
+
} // not else
|
|
3132
|
+
if (isInstalled) {
|
|
3133
|
+
more.push("\uD83D\uDFE9 Installed");
|
|
3134
|
+
} // not else
|
|
3135
|
+
if (isAvilableInTools) {
|
|
3136
|
+
more.push("\uD83D\uDFE6 Available in tools");
|
|
3137
|
+
} // not else
|
|
3138
|
+
if (!isMetadataAviailable && isInstalled) {
|
|
3139
|
+
more.push("When no metadata registered but scraper is installed, it is an unexpected behavior");
|
|
3140
|
+
} // not else
|
|
3141
|
+
if (!isInstalled && isAvilableInTools) {
|
|
3142
|
+
more.push("When the scraper is not installed but available in tools, it is an unexpected compatibility behavior");
|
|
3143
|
+
} // not else
|
|
3144
|
+
if (!isAvilableInBrowser) {
|
|
3145
|
+
more.push("Not usable in browser");
|
|
3130
3146
|
}
|
|
3131
|
-
|
|
3147
|
+
var moreText = more.length === 0 ? '' : " *(".concat(more.join('; '), ")*");
|
|
3148
|
+
return "".concat(i + 1, ") `").concat(className, "` from `").concat(packageName, "` compatible to scrape ").concat(mimeTypes
|
|
3149
|
+
.map(function (mimeType) { return "\"".concat(mimeType, "\""); })
|
|
3150
|
+
.join(', ')).concat(moreText);
|
|
3132
3151
|
})
|
|
3133
|
-
.join('\n')), "\n "); });
|
|
3152
|
+
.join('\n')), "\n\n Legend:\n - \u2B1C **Metadata registered** means that Promptbook knows about the scraper, it is similar to registration in some registry\n - \uD83D\uDFE9 **Installed** means that you have imported package with particular scraper\n - \uD83D\uDFE6 **Available in tools** means that you have passed scraper as dependency into prepare or execution process\n\n "); });
|
|
3134
3153
|
}
|
|
3135
3154
|
/**
|
|
3136
3155
|
* TODO: [®] DRY Register logic
|
|
@@ -3378,54 +3397,75 @@ function prepareKnowledgePieces(knowledgeSources, tools, options) {
|
|
|
3378
3397
|
_a = options.maxParallelCount, maxParallelCount = _a === void 0 ? DEFAULT_MAX_PARALLEL_COUNT : _a, rootDirname = options.rootDirname, _b = options.isVerbose, isVerbose = _b === void 0 ? DEFAULT_IS_VERBOSE : _b;
|
|
3379
3398
|
knowledgePreparedUnflatten = new Array(knowledgeSources.length);
|
|
3380
3399
|
return [4 /*yield*/, forEachAsync(knowledgeSources, { maxParallelCount: maxParallelCount }, function (knowledgeSource, index) { return __awaiter(_this, void 0, void 0, function () {
|
|
3381
|
-
var partialPieces, sourceHandler,
|
|
3382
|
-
var e_1,
|
|
3383
|
-
return __generator(this, function (
|
|
3384
|
-
switch (
|
|
3400
|
+
var partialPieces, sourceHandler, scrapers, _loop_1, scrapers_1, scrapers_1_1, scraper, state_1, e_1_1, pieces;
|
|
3401
|
+
var e_1, _a;
|
|
3402
|
+
return __generator(this, function (_b) {
|
|
3403
|
+
switch (_b.label) {
|
|
3385
3404
|
case 0:
|
|
3386
3405
|
partialPieces = null;
|
|
3387
3406
|
return [4 /*yield*/, makeKnowledgeSourceHandler(knowledgeSource, tools, { rootDirname: rootDirname, isVerbose: isVerbose })];
|
|
3388
3407
|
case 1:
|
|
3389
|
-
sourceHandler =
|
|
3390
|
-
|
|
3408
|
+
sourceHandler = _b.sent();
|
|
3409
|
+
scrapers = arrayableToArray(tools.scrapers);
|
|
3410
|
+
_loop_1 = function (scraper) {
|
|
3411
|
+
var partialPiecesUnchecked;
|
|
3412
|
+
return __generator(this, function (_c) {
|
|
3413
|
+
switch (_c.label) {
|
|
3414
|
+
case 0:
|
|
3415
|
+
if (!scraper.metadata.mimeTypes.includes(sourceHandler.mimeType)
|
|
3416
|
+
// <- TODO: [🦔] Implement mime-type wildcards
|
|
3417
|
+
) {
|
|
3418
|
+
return [2 /*return*/, "continue"];
|
|
3419
|
+
}
|
|
3420
|
+
return [4 /*yield*/, scraper.scrape(sourceHandler)];
|
|
3421
|
+
case 1:
|
|
3422
|
+
partialPiecesUnchecked = _c.sent();
|
|
3423
|
+
if (partialPiecesUnchecked !== null) {
|
|
3424
|
+
partialPieces = __spreadArray([], __read(partialPiecesUnchecked), false);
|
|
3425
|
+
return [2 /*return*/, "break"];
|
|
3426
|
+
}
|
|
3427
|
+
console.warn(spaceTrim(function (block) { return "\n Cannot scrape knowledge from source despite the scraper `".concat(scraper.metadata.className, "` supports the mime type \"").concat(sourceHandler.mimeType, "\".\n \n The source:\n > ").concat(block(knowledgeSource.sourceContent
|
|
3428
|
+
.split('\n')
|
|
3429
|
+
.map(function (line) { return "> ".concat(line); })
|
|
3430
|
+
.join('\n')), "\n\n ").concat(block($registeredScrapersMessage(scrapers)), "\n\n\n "); }));
|
|
3431
|
+
return [2 /*return*/];
|
|
3432
|
+
}
|
|
3433
|
+
});
|
|
3434
|
+
};
|
|
3435
|
+
_b.label = 2;
|
|
3391
3436
|
case 2:
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3437
|
+
_b.trys.push([2, 7, 8, 9]);
|
|
3438
|
+
scrapers_1 = __values(scrapers), scrapers_1_1 = scrapers_1.next();
|
|
3439
|
+
_b.label = 3;
|
|
3395
3440
|
case 3:
|
|
3396
|
-
if (!!
|
|
3397
|
-
scraper =
|
|
3398
|
-
|
|
3399
|
-
// <- TODO: [🦔] Implement mime-type wildcards
|
|
3400
|
-
) {
|
|
3401
|
-
return [3 /*break*/, 5];
|
|
3402
|
-
}
|
|
3403
|
-
return [4 /*yield*/, scraper.scrape(sourceHandler)];
|
|
3441
|
+
if (!!scrapers_1_1.done) return [3 /*break*/, 6];
|
|
3442
|
+
scraper = scrapers_1_1.value;
|
|
3443
|
+
return [5 /*yield**/, _loop_1(scraper)];
|
|
3404
3444
|
case 4:
|
|
3405
|
-
|
|
3406
|
-
if (
|
|
3407
|
-
partialPieces = __spreadArray([], __read(partialPiecesUnchecked), false);
|
|
3408
|
-
// <- TODO: [🪓] Here should be no need for spreading new array, just `partialPieces = partialPiecesUnchecked`
|
|
3445
|
+
state_1 = _b.sent();
|
|
3446
|
+
if (state_1 === "break")
|
|
3409
3447
|
return [3 /*break*/, 6];
|
|
3410
|
-
|
|
3411
|
-
_d.label = 5;
|
|
3448
|
+
_b.label = 5;
|
|
3412
3449
|
case 5:
|
|
3413
|
-
|
|
3450
|
+
scrapers_1_1 = scrapers_1.next();
|
|
3414
3451
|
return [3 /*break*/, 3];
|
|
3415
3452
|
case 6: return [3 /*break*/, 9];
|
|
3416
3453
|
case 7:
|
|
3417
|
-
e_1_1 =
|
|
3454
|
+
e_1_1 = _b.sent();
|
|
3418
3455
|
e_1 = { error: e_1_1 };
|
|
3419
3456
|
return [3 /*break*/, 9];
|
|
3420
3457
|
case 8:
|
|
3421
3458
|
try {
|
|
3422
|
-
if (
|
|
3459
|
+
if (scrapers_1_1 && !scrapers_1_1.done && (_a = scrapers_1.return)) _a.call(scrapers_1);
|
|
3423
3460
|
}
|
|
3424
3461
|
finally { if (e_1) throw e_1.error; }
|
|
3425
3462
|
return [7 /*endfinally*/];
|
|
3426
3463
|
case 9:
|
|
3427
3464
|
if (partialPieces === null) {
|
|
3428
|
-
throw new KnowledgeScrapeError(spaceTrim(function (block) { return "\n Cannot scrape knowledge
|
|
3465
|
+
throw new KnowledgeScrapeError(spaceTrim(function (block) { return "\n Cannot scrape knowledge\n \n The source:\n > ".concat(block(knowledgeSource.sourceContent
|
|
3466
|
+
.split('\n')
|
|
3467
|
+
.map(function (line) { return "> ".concat(line); })
|
|
3468
|
+
.join('\n')), "\n\n No scraper found for the mime type \"").concat(sourceHandler.mimeType, "\"\n\n ").concat(block($registeredScrapersMessage(scrapers)), "\n\n\n "); }));
|
|
3429
3469
|
}
|
|
3430
3470
|
pieces = partialPieces.map(function (partialPiece) { return (__assign(__assign({}, partialPiece), { sources: [
|
|
3431
3471
|
{
|