@promptbook/legacy-documents 0.85.0-1 → 0.85.0-10
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 +26 -9
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/utils.index.d.ts +2 -0
- package/esm/typings/src/cli/cli-commands/about.d.ts +0 -1
- package/esm/typings/src/execution/ExecutionTask.d.ts +7 -3
- package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
- package/esm/typings/src/remote-server/startRemoteServer.d.ts +1 -2
- package/esm/typings/src/utils/normalization/suffixUrl.d.ts +7 -0
- package/esm/typings/src/utils/normalization/suffixUrl.test.d.ts +1 -0
- package/package.json +2 -2
- package/umd/index.umd.js +37 -20
- package/umd/index.umd.js.map +1 -1
|
@@ -47,6 +47,7 @@ import { parseKeywords } from '../utils/normalization/parseKeywords';
|
|
|
47
47
|
import { parseKeywordsFromString } from '../utils/normalization/parseKeywordsFromString';
|
|
48
48
|
import { removeDiacritics } from '../utils/normalization/removeDiacritics';
|
|
49
49
|
import { searchKeywords } from '../utils/normalization/searchKeywords';
|
|
50
|
+
import { suffixUrl } from '../utils/normalization/suffixUrl';
|
|
50
51
|
import { titleToName } from '../utils/normalization/titleToName';
|
|
51
52
|
import { spaceTrim } from '../utils/organization/spaceTrim';
|
|
52
53
|
import { extractParameterNames } from '../utils/parameters/extractParameterNames';
|
|
@@ -128,6 +129,7 @@ export { parseKeywords };
|
|
|
128
129
|
export { parseKeywordsFromString };
|
|
129
130
|
export { removeDiacritics };
|
|
130
131
|
export { searchKeywords };
|
|
132
|
+
export { suffixUrl };
|
|
131
133
|
export { titleToName };
|
|
132
134
|
export { spaceTrim };
|
|
133
135
|
export { extractParameterNames };
|
|
@@ -8,7 +8,6 @@ import type { Command as Program } from 'commander';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function $initializeAboutCommand(program: Program): void;
|
|
10
10
|
/**
|
|
11
|
-
* TODO: !!! Test this in `deno`
|
|
12
11
|
* TODO: [🗽] Unite branding and make single place for it
|
|
13
12
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
14
13
|
* Note: [🟡] Code in this file should never be published outside of `@promptbook/cli`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Observable } from 'rxjs';
|
|
2
2
|
import { PartialDeep } from 'type-fest';
|
|
3
|
-
import type { string_SCREAMING_CASE } from '../utils/normalization/normalizeTo_SCREAMING_CASE';
|
|
4
3
|
import type { task_id } from '../types/typeAliases';
|
|
4
|
+
import type { string_SCREAMING_CASE } from '../utils/normalization/normalizeTo_SCREAMING_CASE';
|
|
5
5
|
import type { AbstractTaskResult } from './AbstractTaskResult';
|
|
6
6
|
import type { PipelineExecutorResult } from './PipelineExecutorResult';
|
|
7
7
|
/**
|
|
@@ -30,7 +30,7 @@ export declare function createTask<TTaskResult extends AbstractTaskResult>(optio
|
|
|
30
30
|
*/
|
|
31
31
|
export type ExecutionTask = AbstractTask<PipelineExecutorResult> & {
|
|
32
32
|
readonly taskType: 'EXECUTION';
|
|
33
|
-
readonly taskId: `
|
|
33
|
+
readonly taskId: `exec-${task_id}`;
|
|
34
34
|
};
|
|
35
35
|
/**
|
|
36
36
|
* Represents a task that prepares a pipeline
|
|
@@ -38,7 +38,7 @@ export type ExecutionTask = AbstractTask<PipelineExecutorResult> & {
|
|
|
38
38
|
*/
|
|
39
39
|
export type PreparationTask = AbstractTask<PipelineExecutorResult> & {
|
|
40
40
|
readonly taskType: 'PREPARATION';
|
|
41
|
-
readonly taskId: `
|
|
41
|
+
readonly taskId: `prep-${task_id}`;
|
|
42
42
|
};
|
|
43
43
|
/**
|
|
44
44
|
* Base interface for all task types
|
|
@@ -62,6 +62,10 @@ export type AbstractTask<TTaskResult extends AbstractTaskResult> = {
|
|
|
62
62
|
* Gets an observable stream of partial task results
|
|
63
63
|
*/
|
|
64
64
|
asObservable(): Observable<PartialDeep<TTaskResult>>;
|
|
65
|
+
/**
|
|
66
|
+
* Gets just the current value which is mutated during the task processing
|
|
67
|
+
*/
|
|
68
|
+
currentValue: PartialDeep<TTaskResult>;
|
|
65
69
|
};
|
|
66
70
|
export type Task = ExecutionTask | PreparationTask;
|
|
67
71
|
export {};
|
|
@@ -11,8 +11,7 @@ import type { RemoteServerOptions } from './types/RemoteServerOptions';
|
|
|
11
11
|
*/
|
|
12
12
|
export declare function startRemoteServer<TCustomOptions = undefined>(options: RemoteServerOptions<TCustomOptions>): IDestroyable;
|
|
13
13
|
/**
|
|
14
|
-
* TODO:
|
|
15
|
-
* TODO: !!!!!!! Allow to pass tokem here
|
|
14
|
+
* TODO: !! Add CORS and security - probbably via `helmet`
|
|
16
15
|
* TODO: [👩🏾🤝🧑🏾] Allow to pass custom fetch function here - PromptbookFetch
|
|
17
16
|
* TODO: Split this file into multiple functions - handler for each request
|
|
18
17
|
* TODO: Maybe use `$exportJson`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/legacy-documents",
|
|
3
|
-
"version": "0.85.0-
|
|
3
|
+
"version": "0.85.0-10",
|
|
4
4
|
"description": "It's time for a paradigm shift. The future of software in plain English, French or Latin",
|
|
5
5
|
"private": false,
|
|
6
6
|
"sideEffects": false,
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"module": "./esm/index.es.js",
|
|
48
48
|
"typings": "./esm/typings/src/_packages/legacy-documents.index.d.ts",
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"@promptbook/core": "0.85.0-
|
|
50
|
+
"@promptbook/core": "0.85.0-10"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"colors": "1.4.0",
|
package/umd/index.umd.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', '
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-legacy-documents"] = {}, global.promises, global.
|
|
5
|
-
})(this, (function (exports, promises,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('fs/promises'), require('path'), require('spacetrim'), require('child_process'), require('colors'), require('waitasecond'), require('crypto-js'), require('crypto-js/enc-hex'), require('prettier'), require('prettier/parser-html'), require('rxjs'), require('crypto'), require('crypto-js/sha256'), require('mime-types'), require('papaparse')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'fs/promises', 'path', 'spacetrim', 'child_process', 'colors', 'waitasecond', 'crypto-js', 'crypto-js/enc-hex', 'prettier', 'prettier/parser-html', 'rxjs', 'crypto', 'crypto-js/sha256', 'mime-types', 'papaparse'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-legacy-documents"] = {}, global.promises, global.path, global.spaceTrim, global.child_process, global.colors, global.waitasecond, global.cryptoJs, global.hexEncoder, global.prettier, global.parserHtml, global.rxjs, global.crypto, global.sha256, global.mimeTypes, global.papaparse));
|
|
5
|
+
})(this, (function (exports, promises, path, spaceTrim, child_process, colors, waitasecond, cryptoJs, hexEncoder, prettier, parserHtml, rxjs, crypto, sha256, mimeTypes, papaparse) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* @generated
|
|
27
27
|
* @see https://github.com/webgptorg/promptbook
|
|
28
28
|
*/
|
|
29
|
-
var PROMPTBOOK_ENGINE_VERSION = '0.85.0-
|
|
29
|
+
var PROMPTBOOK_ENGINE_VERSION = '0.85.0-9';
|
|
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
|
|
@@ -508,7 +508,7 @@
|
|
|
508
508
|
console.info(colors__default["default"].yellow(cwd) + ' ' + colors__default["default"].green(command) + ' ' + colors__default["default"].blue(args.join(' ')));
|
|
509
509
|
}
|
|
510
510
|
try {
|
|
511
|
-
var commandProcess =
|
|
511
|
+
var commandProcess = child_process.spawn(command, args, { cwd: cwd, shell: true });
|
|
512
512
|
if (isVerbose) {
|
|
513
513
|
commandProcess.on('message', function (message) {
|
|
514
514
|
console.info({ message: message });
|
|
@@ -1058,7 +1058,7 @@
|
|
|
1058
1058
|
value = value.replace(/\.html$/, '');
|
|
1059
1059
|
}
|
|
1060
1060
|
else if (isValidFilePath(value)) {
|
|
1061
|
-
value =
|
|
1061
|
+
value = path.basename(value);
|
|
1062
1062
|
// Note: Keeping extension in the name
|
|
1063
1063
|
}
|
|
1064
1064
|
value = value.split('/').join('-');
|
|
@@ -1091,12 +1091,12 @@
|
|
|
1091
1091
|
semanticName = normalizeToKebabCase(titleToName((sourceFilename || url || '').split('intermediate').join(''))).substring(0, 20);
|
|
1092
1092
|
pieces = ['intermediate', semanticName, hash].filter(function (piece) { return piece !== ''; });
|
|
1093
1093
|
name = pieces.join('-').split('--').join('-');
|
|
1094
|
-
cacheFilename =
|
|
1094
|
+
cacheFilename = path.join.apply(void 0, __spreadArray(__spreadArray([process.cwd(),
|
|
1095
1095
|
cacheDirname], __read(nameToSubfolderPath(hash /* <- TODO: [🎎] Maybe add some SHA256 prefix */)), false), [name], false)).split('\\')
|
|
1096
1096
|
.join('/') +
|
|
1097
1097
|
'.' +
|
|
1098
1098
|
extension;
|
|
1099
|
-
return [4 /*yield*/, promises.mkdir(
|
|
1099
|
+
return [4 /*yield*/, promises.mkdir(path.dirname(cacheFilename), { recursive: true })];
|
|
1100
1100
|
case 1:
|
|
1101
1101
|
_a.sent();
|
|
1102
1102
|
isDestroyed = true;
|
|
@@ -2686,11 +2686,27 @@
|
|
|
2686
2686
|
*/
|
|
2687
2687
|
function createTask(options) {
|
|
2688
2688
|
var taskType = options.taskType, taskProcessCallback = options.taskProcessCallback;
|
|
2689
|
-
var taskId = "".concat(taskType.toLowerCase(), "-").concat($randomToken(
|
|
2689
|
+
var taskId = "".concat(taskType.toLowerCase().substring(0, 4), "-").concat($randomToken(8 /* <- TODO: To global config + Use Base58 to avoid simmilar char conflicts */));
|
|
2690
2690
|
var partialResultSubject = new rxjs.BehaviorSubject({});
|
|
2691
2691
|
var finalResultPromise = /* not await */ taskProcessCallback(function (newOngoingResult) {
|
|
2692
2692
|
partialResultSubject.next(newOngoingResult);
|
|
2693
2693
|
});
|
|
2694
|
+
finalResultPromise
|
|
2695
|
+
.catch(function (error) {
|
|
2696
|
+
partialResultSubject.error(error);
|
|
2697
|
+
})
|
|
2698
|
+
.then(function (value) {
|
|
2699
|
+
if (value) {
|
|
2700
|
+
try {
|
|
2701
|
+
assertsTaskSuccessful(value);
|
|
2702
|
+
partialResultSubject.next(value);
|
|
2703
|
+
}
|
|
2704
|
+
catch (error) {
|
|
2705
|
+
partialResultSubject.error(error);
|
|
2706
|
+
}
|
|
2707
|
+
}
|
|
2708
|
+
partialResultSubject.complete();
|
|
2709
|
+
});
|
|
2694
2710
|
function asPromise(options) {
|
|
2695
2711
|
return __awaiter(this, void 0, void 0, function () {
|
|
2696
2712
|
var _a, isCrashedOnError, finalResult;
|
|
@@ -2714,9 +2730,10 @@
|
|
|
2714
2730
|
taskId: taskId,
|
|
2715
2731
|
asPromise: asPromise,
|
|
2716
2732
|
asObservable: function () {
|
|
2717
|
-
return
|
|
2718
|
-
|
|
2719
|
-
|
|
2733
|
+
return partialResultSubject.asObservable();
|
|
2734
|
+
},
|
|
2735
|
+
get currentValue() {
|
|
2736
|
+
return partialResultSubject.value;
|
|
2720
2737
|
},
|
|
2721
2738
|
};
|
|
2722
2739
|
}
|
|
@@ -3834,9 +3851,9 @@
|
|
|
3834
3851
|
}
|
|
3835
3852
|
basename = url.split('/').pop() || titleToName(url);
|
|
3836
3853
|
hash = sha256__default["default"](hexEncoder__default["default"].parse(url)).toString( /* hex */);
|
|
3837
|
-
rootDirname_1 =
|
|
3838
|
-
filepath =
|
|
3839
|
-
return [4 /*yield*/, tools.fs.mkdir(
|
|
3854
|
+
rootDirname_1 = path.join(process.cwd(), DEFAULT_DOWNLOAD_CACHE_DIRNAME);
|
|
3855
|
+
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));
|
|
3856
|
+
return [4 /*yield*/, tools.fs.mkdir(path.dirname(path.join(rootDirname_1, filepath)), { recursive: true })];
|
|
3840
3857
|
case 2:
|
|
3841
3858
|
_h.sent();
|
|
3842
3859
|
_g = (_f = Buffer).from;
|
|
@@ -3846,7 +3863,7 @@
|
|
|
3846
3863
|
if (fileContent.length > DEFAULT_MAX_FILE_SIZE /* <- TODO: Allow to pass different value to remote server */) {
|
|
3847
3864
|
throw new LimitReachedError("File is too large (".concat(Math.round(fileContent.length / 1024 / 1024), "MB). Maximum allowed size is ").concat(Math.round(DEFAULT_MAX_FILE_SIZE / 1024 / 1024), "MB."));
|
|
3848
3865
|
}
|
|
3849
|
-
return [4 /*yield*/, tools.fs.writeFile(
|
|
3866
|
+
return [4 /*yield*/, tools.fs.writeFile(path.join(rootDirname_1, filepath), fileContent)];
|
|
3850
3867
|
case 4:
|
|
3851
3868
|
_h.sent();
|
|
3852
3869
|
// TODO: [💵] Check the file security
|
|
@@ -3862,7 +3879,7 @@
|
|
|
3862
3879
|
throw new EnvironmentMismatchError('Can not import file knowledge in non-file pipeline');
|
|
3863
3880
|
// <- TODO: [🧠] What is the best error type here`
|
|
3864
3881
|
}
|
|
3865
|
-
filename_1 =
|
|
3882
|
+
filename_1 = path.join(rootDirname, knowledgeSourceContent).split('\\').join('/');
|
|
3866
3883
|
fileExtension = getFileExtension(filename_1);
|
|
3867
3884
|
mimeType = extensionToMimeType(fileExtension || '');
|
|
3868
3885
|
return [4 /*yield*/, isFileExisting(filename_1, tools.fs)];
|
|
@@ -6788,7 +6805,7 @@
|
|
|
6788
6805
|
return [4 /*yield*/, isFileExisting(cacheFilehandler.filename, this.tools.fs)];
|
|
6789
6806
|
case 2:
|
|
6790
6807
|
if (!!(_g.sent())) return [3 /*break*/, 8];
|
|
6791
|
-
documentSourceOutdirPathForLibreOffice_1 =
|
|
6808
|
+
documentSourceOutdirPathForLibreOffice_1 = path.join(path.dirname(cacheFilehandler.filename), 'libreoffice')
|
|
6792
6809
|
.split('\\')
|
|
6793
6810
|
.join('/');
|
|
6794
6811
|
command_1 = "\"".concat(this.tools.executables.libreOfficePath, "\" --headless --convert-to docx \"").concat(source.filename, "\" --outdir \"").concat(documentSourceOutdirPathForLibreOffice_1, "\"");
|
|
@@ -6802,7 +6819,7 @@
|
|
|
6802
6819
|
throw new UnexpectedError(spaceTrim__default["default"](function (block) { return "\n Expected exactly 1 file in the LibreOffice output directory, got ".concat(files_1.length, "\n\n The temporary folder:\n ").concat(block(documentSourceOutdirPathForLibreOffice_1), "\n\n Command:\n > ").concat(block(command_1), "\n "); }));
|
|
6803
6820
|
}
|
|
6804
6821
|
file = files_1[0];
|
|
6805
|
-
return [4 /*yield*/, promises.rename(
|
|
6822
|
+
return [4 /*yield*/, promises.rename(path.join(documentSourceOutdirPathForLibreOffice_1, file), cacheFilehandler.filename)];
|
|
6806
6823
|
case 5:
|
|
6807
6824
|
_g.sent();
|
|
6808
6825
|
return [4 /*yield*/, promises.rmdir(documentSourceOutdirPathForLibreOffice_1)];
|