@promptbook/documents 0.84.0-12 → 0.84.0-14
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 +63 -10
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/core.index.d.ts +4 -0
- package/esm/typings/src/config.d.ts +12 -0
- package/esm/typings/src/utils/editable/edit-pipeline-string/deflatePipeline.test.d.ts +1 -0
- package/esm/typings/src/utils/editable/utils/isFlatPipeline.test.d.ts +1 -0
- package/esm/typings/src/utils/files/mimeTypeToExtension.d.ts +10 -0
- package/esm/typings/src/utils/files/mimeTypeToExtension.test.d.ts +1 -0
- package/package.json +2 -2
- package/umd/index.umd.js +62 -9
- package/umd/index.umd.js.map +1 -1
|
@@ -12,6 +12,8 @@ import { LOGO_LIGHT_SRC } from '../config';
|
|
|
12
12
|
import { LOGO_DARK_SRC } from '../config';
|
|
13
13
|
import { DEFAULT_BOOK_TITLE } from '../config';
|
|
14
14
|
import { DEFAULT_TASK_TITLE } from '../config';
|
|
15
|
+
import { DEFAULT_PROMPT_TASK_TITLE } from '../config';
|
|
16
|
+
import { DEFAULT_BOOK_OUTPUT_PARAMETER_NAME } from '../config';
|
|
15
17
|
import { MAX_FILENAME_LENGTH } from '../config';
|
|
16
18
|
import { DEFAULT_INTERMEDIATE_FILES_STRATEGY } from '../config';
|
|
17
19
|
import { DEFAULT_MAX_PARALLEL_COUNT } from '../config';
|
|
@@ -139,6 +141,8 @@ export { LOGO_LIGHT_SRC };
|
|
|
139
141
|
export { LOGO_DARK_SRC };
|
|
140
142
|
export { DEFAULT_BOOK_TITLE };
|
|
141
143
|
export { DEFAULT_TASK_TITLE };
|
|
144
|
+
export { DEFAULT_PROMPT_TASK_TITLE };
|
|
145
|
+
export { DEFAULT_BOOK_OUTPUT_PARAMETER_NAME };
|
|
142
146
|
export { MAX_FILENAME_LENGTH };
|
|
143
147
|
export { DEFAULT_INTERMEDIATE_FILES_STRATEGY };
|
|
144
148
|
export { DEFAULT_MAX_PARALLEL_COUNT };
|
|
@@ -65,6 +65,18 @@ export declare const DEFAULT_BOOK_TITLE = "\u2728 Untitled Book";
|
|
|
65
65
|
* @public exported from `@promptbook/core`
|
|
66
66
|
*/
|
|
67
67
|
export declare const DEFAULT_TASK_TITLE = "Task";
|
|
68
|
+
/**
|
|
69
|
+
* When the title of the prompt task is not provided, the default title is used
|
|
70
|
+
*
|
|
71
|
+
* @public exported from `@promptbook/core`
|
|
72
|
+
*/
|
|
73
|
+
export declare const DEFAULT_PROMPT_TASK_TITLE = "Prompt";
|
|
74
|
+
/**
|
|
75
|
+
* When the pipeline is flat and no name of return parameter is provided, this name is used
|
|
76
|
+
*
|
|
77
|
+
* @public exported from `@promptbook/core`
|
|
78
|
+
*/
|
|
79
|
+
export declare const DEFAULT_BOOK_OUTPUT_PARAMETER_NAME = "result";
|
|
68
80
|
/**
|
|
69
81
|
* Warning message for the generated sections and files files
|
|
70
82
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { string_file_extension } from '../../types/typeAliases';
|
|
2
|
+
import type { string_mime_type } from '../../types/typeAliases';
|
|
3
|
+
/**
|
|
4
|
+
* Convert mime type to file extension
|
|
5
|
+
*
|
|
6
|
+
* Note: If the mime type is invalid, `null` is returned
|
|
7
|
+
*
|
|
8
|
+
* @private within the repository
|
|
9
|
+
*/
|
|
10
|
+
export declare function mimeTypeToExtension(value: string_mime_type): string_file_extension | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/documents",
|
|
3
|
-
"version": "0.84.0-
|
|
3
|
+
"version": "0.84.0-14",
|
|
4
4
|
"description": "It's time for a paradigm shift. The future of software in plain English, French or Latin",
|
|
5
5
|
"--note-0": " <- [🐊]",
|
|
6
6
|
"private": false,
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"module": "./esm/index.es.js",
|
|
55
55
|
"typings": "./esm/typings/src/_packages/documents.index.d.ts",
|
|
56
56
|
"peerDependencies": {
|
|
57
|
-
"@promptbook/core": "0.84.0-
|
|
57
|
+
"@promptbook/core": "0.84.0-14"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
60
|
"colors": "1.4.0",
|
package/umd/index.umd.js
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* @generated
|
|
27
27
|
* @see https://github.com/webgptorg/promptbook
|
|
28
28
|
*/
|
|
29
|
-
var PROMPTBOOK_ENGINE_VERSION = '0.84.0-
|
|
29
|
+
var PROMPTBOOK_ENGINE_VERSION = '0.84.0-13';
|
|
30
30
|
/**
|
|
31
31
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
32
32
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -3731,6 +3731,17 @@
|
|
|
3731
3731
|
return mimeTypes.lookup(value) || 'application/octet-stream';
|
|
3732
3732
|
}
|
|
3733
3733
|
|
|
3734
|
+
/**
|
|
3735
|
+
* Convert mime type to file extension
|
|
3736
|
+
*
|
|
3737
|
+
* Note: If the mime type is invalid, `null` is returned
|
|
3738
|
+
*
|
|
3739
|
+
* @private within the repository
|
|
3740
|
+
*/
|
|
3741
|
+
function mimeTypeToExtension(value) {
|
|
3742
|
+
return mimeTypes.extension(value) || null;
|
|
3743
|
+
}
|
|
3744
|
+
|
|
3734
3745
|
/**
|
|
3735
3746
|
* The built-in `fetch' function with a lightweight error handling wrapper as default fetch function used in Promptbook scrapers
|
|
3736
3747
|
*
|
|
@@ -3766,7 +3777,7 @@
|
|
|
3766
3777
|
function makeKnowledgeSourceHandler(knowledgeSource, tools, options) {
|
|
3767
3778
|
var _a;
|
|
3768
3779
|
return __awaiter(this, void 0, void 0, function () {
|
|
3769
|
-
var _b, fetch, knowledgeSourceContent, name, _c, _d, rootDirname, url,
|
|
3780
|
+
var _b, fetch, knowledgeSourceContent, name, _c, _d, rootDirname, url, response_1, mimeType, basename, hash, rootDirname_1, filepath, _f, _g, _h, _j, _k, filename_1, fileExtension, mimeType;
|
|
3770
3781
|
return __generator(this, function (_l) {
|
|
3771
3782
|
switch (_l.label) {
|
|
3772
3783
|
case 0:
|
|
@@ -3782,25 +3793,67 @@
|
|
|
3782
3793
|
url = knowledgeSourceContent;
|
|
3783
3794
|
return [4 /*yield*/, fetch(url)];
|
|
3784
3795
|
case 1:
|
|
3785
|
-
|
|
3786
|
-
mimeType = ((_a =
|
|
3787
|
-
|
|
3796
|
+
response_1 = _l.sent();
|
|
3797
|
+
mimeType = ((_a = response_1.headers.get('content-type')) === null || _a === void 0 ? void 0 : _a.split(';')[0]) || 'text/html';
|
|
3798
|
+
if (tools.fs === undefined || !url.endsWith('.pdf' /* <- TODO: [💵] */)) {
|
|
3799
|
+
return [2 /*return*/, {
|
|
3800
|
+
source: name,
|
|
3801
|
+
filename: null,
|
|
3802
|
+
url: url,
|
|
3803
|
+
mimeType: mimeType,
|
|
3804
|
+
/*
|
|
3805
|
+
TODO: [🥽]
|
|
3806
|
+
> async asBlob() {
|
|
3807
|
+
> // TODO: [👨🏻🤝👨🏻] This can be called multiple times BUT when called second time, response in already consumed
|
|
3808
|
+
> const content = await response.blob();
|
|
3809
|
+
> return content;
|
|
3810
|
+
> },
|
|
3811
|
+
*/
|
|
3812
|
+
asJson: function () {
|
|
3813
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3814
|
+
var content;
|
|
3815
|
+
return __generator(this, function (_a) {
|
|
3816
|
+
switch (_a.label) {
|
|
3817
|
+
case 0: return [4 /*yield*/, response_1.json()];
|
|
3818
|
+
case 1:
|
|
3819
|
+
content = _a.sent();
|
|
3820
|
+
return [2 /*return*/, content];
|
|
3821
|
+
}
|
|
3822
|
+
});
|
|
3823
|
+
});
|
|
3824
|
+
},
|
|
3825
|
+
asText: function () {
|
|
3826
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3827
|
+
var content;
|
|
3828
|
+
return __generator(this, function (_a) {
|
|
3829
|
+
switch (_a.label) {
|
|
3830
|
+
case 0: return [4 /*yield*/, response_1.text()];
|
|
3831
|
+
case 1:
|
|
3832
|
+
content = _a.sent();
|
|
3833
|
+
return [2 /*return*/, content];
|
|
3834
|
+
}
|
|
3835
|
+
});
|
|
3836
|
+
});
|
|
3837
|
+
},
|
|
3838
|
+
}];
|
|
3839
|
+
}
|
|
3840
|
+
basename = url.split('/').pop() || titleToName(url);
|
|
3788
3841
|
hash = sha256__default["default"](hexEncoder__default["default"].parse(url)).toString( /* hex */);
|
|
3789
3842
|
rootDirname_1 = path.join(process.cwd(), DEFAULT_DOWNLOAD_CACHE_DIRNAME);
|
|
3790
|
-
filepath = path.join.apply(void 0, __spreadArray(__spreadArray([], __read(nameToSubfolderPath(hash /* <- TODO: [🎎] Maybe add some SHA256 prefix */)), false), ["".concat(
|
|
3843
|
+
filepath = path.join.apply(void 0, __spreadArray(__spreadArray([], __read(nameToSubfolderPath(hash /* <- TODO: [🎎] Maybe add some SHA256 prefix */)), false), ["".concat(basename.substring(0, MAX_FILENAME_LENGTH), ".").concat(mimeTypeToExtension(mimeType))], false));
|
|
3791
3844
|
return [4 /*yield*/, tools.fs.mkdir(path.dirname(path.join(rootDirname_1, filepath)), { recursive: true })];
|
|
3792
3845
|
case 2:
|
|
3793
3846
|
_l.sent();
|
|
3794
3847
|
_g = (_f = tools.fs).writeFile;
|
|
3795
3848
|
_h = [path.join(rootDirname_1, filepath)];
|
|
3796
3849
|
_k = (_j = Buffer).from;
|
|
3797
|
-
return [4 /*yield*/,
|
|
3850
|
+
return [4 /*yield*/, response_1.arrayBuffer()];
|
|
3798
3851
|
case 3: return [4 /*yield*/, _g.apply(_f, _h.concat([_k.apply(_j, [_l.sent()])]))];
|
|
3799
3852
|
case 4:
|
|
3800
3853
|
_l.sent();
|
|
3801
|
-
// TODO:
|
|
3854
|
+
// TODO: [💵] Check the file security
|
|
3802
3855
|
// TODO: !!!!!!!! Check the file size (if it is not too big)
|
|
3803
|
-
// TODO: !!!!!!!! Delete the file
|
|
3856
|
+
// TODO: !!!!!!!! Delete the file after the scraping is done
|
|
3804
3857
|
return [2 /*return*/, makeKnowledgeSourceHandler({ name: name, knowledgeSourceContent: filepath }, tools, __assign(__assign({}, options), { rootDirname: rootDirname_1 }))];
|
|
3805
3858
|
case 5:
|
|
3806
3859
|
if (!isValidFilePath(knowledgeSourceContent)) return [3 /*break*/, 7];
|