@promptbook/legacy-documents 0.85.0-3 → 0.85.0-5

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.
@@ -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: `execution-${task_id}`;
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: `preparation-${task_id}`;
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 {};
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import type fs from 'node:fs/promises';
2
+ import type fs from 'fs/promises';
3
3
  /**
4
4
  * Container for all the tools needed to manipulate with filesystem
5
5
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/legacy-documents",
3
- "version": "0.85.0-3",
3
+ "version": "0.85.0-5",
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-3"
50
+ "@promptbook/core": "0.85.0-5"
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('node:fs/promises'), require('node:path'), require('spacetrim'), require('colors'), require('node:child_process'), 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', 'node:fs/promises', 'node:path', 'spacetrim', 'colors', 'node:child_process', '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.node_path, global.spaceTrim, global.colors, global.node_child_process, 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, node_path, spaceTrim, colors, node_child_process, waitasecond, cryptoJs, hexEncoder, prettier, parserHtml, rxjs, crypto, sha256, mimeTypes, papaparse) { 'use strict';
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-2';
29
+ var PROMPTBOOK_ENGINE_VERSION = '0.85.0-4';
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 = node_child_process.spawn(command, args, { cwd: cwd, shell: true });
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 = node_path.basename(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 = node_path.join.apply(void 0, __spreadArray(__spreadArray([process.cwd(),
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(node_path.dirname(cacheFilename), { recursive: true })];
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,29 @@
2686
2686
  */
2687
2687
  function createTask(options) {
2688
2688
  var taskType = options.taskType, taskProcessCallback = options.taskProcessCallback;
2689
- var taskId = "".concat(taskType.toLowerCase(), "-").concat($randomToken(256 /* <- TODO: !!! To global config */));
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
+ // console.error('!!!!! Task failed:', error);
2697
+ partialResultSubject.error(error);
2698
+ })
2699
+ .then(function (value) {
2700
+ // console.error('!!!!! Task finished:', value);
2701
+ if (value) {
2702
+ try {
2703
+ assertsTaskSuccessful(value);
2704
+ partialResultSubject.next(value);
2705
+ }
2706
+ catch (error) {
2707
+ partialResultSubject.error(error);
2708
+ }
2709
+ }
2710
+ partialResultSubject.complete();
2711
+ });
2694
2712
  function asPromise(options) {
2695
2713
  return __awaiter(this, void 0, void 0, function () {
2696
2714
  var _a, isCrashedOnError, finalResult;
@@ -2701,7 +2719,9 @@
2701
2719
  return [4 /*yield*/, finalResultPromise];
2702
2720
  case 1:
2703
2721
  finalResult = _b.sent();
2722
+ console.error('!!!!! finalResult:', finalResult);
2704
2723
  if (isCrashedOnError) {
2724
+ console.error('!!!!! isCrashedOnError:', finalResult);
2705
2725
  assertsTaskSuccessful(finalResult);
2706
2726
  }
2707
2727
  return [2 /*return*/, finalResult];
@@ -2714,9 +2734,10 @@
2714
2734
  taskId: taskId,
2715
2735
  asPromise: asPromise,
2716
2736
  asObservable: function () {
2717
- return rxjs.concat(partialResultSubject.asObservable(), rxjs.from(asPromise({
2718
- isCrashedOnError: true,
2719
- })));
2737
+ return partialResultSubject.asObservable();
2738
+ },
2739
+ get currentValue() {
2740
+ return partialResultSubject.value;
2720
2741
  },
2721
2742
  };
2722
2743
  }
@@ -3834,9 +3855,9 @@
3834
3855
  }
3835
3856
  basename = url.split('/').pop() || titleToName(url);
3836
3857
  hash = sha256__default["default"](hexEncoder__default["default"].parse(url)).toString( /* hex */);
3837
- rootDirname_1 = node_path.join(process.cwd(), DEFAULT_DOWNLOAD_CACHE_DIRNAME);
3838
- filepath = node_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));
3839
- return [4 /*yield*/, tools.fs.mkdir(node_path.dirname(node_path.join(rootDirname_1, filepath)), { recursive: true })];
3858
+ rootDirname_1 = path.join(process.cwd(), DEFAULT_DOWNLOAD_CACHE_DIRNAME);
3859
+ 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));
3860
+ return [4 /*yield*/, tools.fs.mkdir(path.dirname(path.join(rootDirname_1, filepath)), { recursive: true })];
3840
3861
  case 2:
3841
3862
  _h.sent();
3842
3863
  _g = (_f = Buffer).from;
@@ -3846,7 +3867,7 @@
3846
3867
  if (fileContent.length > DEFAULT_MAX_FILE_SIZE /* <- TODO: Allow to pass different value to remote server */) {
3847
3868
  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
3869
  }
3849
- return [4 /*yield*/, tools.fs.writeFile(node_path.join(rootDirname_1, filepath), fileContent)];
3870
+ return [4 /*yield*/, tools.fs.writeFile(path.join(rootDirname_1, filepath), fileContent)];
3850
3871
  case 4:
3851
3872
  _h.sent();
3852
3873
  // TODO: [💵] Check the file security
@@ -3862,7 +3883,7 @@
3862
3883
  throw new EnvironmentMismatchError('Can not import file knowledge in non-file pipeline');
3863
3884
  // <- TODO: [🧠] What is the best error type here`
3864
3885
  }
3865
- filename_1 = node_path.join(rootDirname, knowledgeSourceContent).split('\\').join('/');
3886
+ filename_1 = path.join(rootDirname, knowledgeSourceContent).split('\\').join('/');
3866
3887
  fileExtension = getFileExtension(filename_1);
3867
3888
  mimeType = extensionToMimeType(fileExtension || '');
3868
3889
  return [4 /*yield*/, isFileExisting(filename_1, tools.fs)];
@@ -6788,7 +6809,7 @@
6788
6809
  return [4 /*yield*/, isFileExisting(cacheFilehandler.filename, this.tools.fs)];
6789
6810
  case 2:
6790
6811
  if (!!(_g.sent())) return [3 /*break*/, 8];
6791
- documentSourceOutdirPathForLibreOffice_1 = node_path.join(node_path.dirname(cacheFilehandler.filename), 'libreoffice')
6812
+ documentSourceOutdirPathForLibreOffice_1 = path.join(path.dirname(cacheFilehandler.filename), 'libreoffice')
6792
6813
  .split('\\')
6793
6814
  .join('/');
6794
6815
  command_1 = "\"".concat(this.tools.executables.libreOfficePath, "\" --headless --convert-to docx \"").concat(source.filename, "\" --outdir \"").concat(documentSourceOutdirPathForLibreOffice_1, "\"");
@@ -6802,7 +6823,7 @@
6802
6823
  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
6824
  }
6804
6825
  file = files_1[0];
6805
- return [4 /*yield*/, promises.rename(node_path.join(documentSourceOutdirPathForLibreOffice_1, file), cacheFilehandler.filename)];
6826
+ return [4 /*yield*/, promises.rename(path.join(documentSourceOutdirPathForLibreOffice_1, file), cacheFilehandler.filename)];
6806
6827
  case 5:
6807
6828
  _g.sent();
6808
6829
  return [4 /*yield*/, promises.rmdir(documentSourceOutdirPathForLibreOffice_1)];