@social-mail/social-mail-web-server 1.8.394 → 1.8.396

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@social-mail/social-mail-web-server",
3
- "version": "1.8.394",
3
+ "version": "1.8.396",
4
4
  "description": "## Phase 1",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -93,8 +93,9 @@ export default class WebSiteContentService
93
93
  @cacheFor()
94
94
  async getFileInfo(folderID, ... segments: string[]): Promise<IFileInfo> {
95
95
  const [top, ... paths] = segments;
96
+ const eTop = top.replace(/(\%|\_)/i, (x) => "\\" + x);
96
97
  const child = await this.db.appFiles
97
- .where({ folderID, top },(p) => (x) => x.parentID === p.folderID && Sql.text.iLike(x.name, p.top))
98
+ .where({ folderID, eTop },(p) => (x) => x.parentID === p.folderID && Sql.text.iLike(x.name, p.eTop))
98
99
  .orderBy(void 0, (p) => (x) => x.isDeleted)
99
100
  .thenByDescending({ top }, (p) => (x) => x.name === p.top)
100
101
  .first();
@@ -13,7 +13,7 @@ import DateTime from "@entity-access/entity-access/dist/types/DateTime.js";
13
13
  // import UpdateEmailReferences from "./incoming/UpdateEmailReferences.js";
14
14
  import BroadcastEmail from "./channel/BroadcastEmail.js";
15
15
  import ClearEmailHtmlBody from "./email/ClearEmailHtmlBody.js";
16
- import IndexAppFilesWorkflow from "./search/IndexAppFilesWorkflow.js";
16
+ import IndexFileContentsWorkflow from "./search/IndexFileContentsWorkflow.js";
17
17
  import RepairConversationWorkflow from "./repair/conversations/RepairConversationWorkflow.js";
18
18
  // import PostReceiveWorkflow from "./post-receive/PostReceiveWorkflow.js";
19
19
  import SendChannelInvitation from "./channel/invite/SendChannelInvitation.js";
@@ -71,7 +71,7 @@ export default class SocialWorkflowContext extends AppWorkflowContext {
71
71
  this.register(UpdateFolderSize);
72
72
  this.register(UpdateUserStorage);
73
73
  this.register(DailyWorkflow);
74
- this.register(IndexAppFilesWorkflow);
74
+ this.register(IndexFileContentsWorkflow);
75
75
  this.register(BroadcastEmail);
76
76
  this.register(DispatchEmailToMX);
77
77
  this.register(DispatchNotificationToMX);
@@ -7,7 +7,7 @@ import DateTime from "@entity-access/entity-access/dist/types/DateTime.js";
7
7
  // import IndexMailboxWorkflow from "../search/IndexMailboxWorkflow.js";
8
8
  import Sql from "@entity-access/entity-access/dist/sql/Sql.js";
9
9
  import ClearEmailHtmlBody from "../email/ClearEmailHtmlBody.js";
10
- import IndexAppFilesWorkflow from "../search/IndexAppFilesWorkflow.js";
10
+ import IndexFileContentsWorkflow from "../search/IndexFileContentsWorkflow.js";
11
11
  import DbLockService from "../../services/db-lock/DbLockService.js";
12
12
  import PendingPostReceiveWorkflow from "../pending/PendingPostReceiveWorkflow.js";
13
13
  import PendingReferencesWorkflow from "../pending/PendingReferencesWorkflow.js";
@@ -109,6 +109,6 @@ export default class DailyWorkflow extends Workflow<any,any> {
109
109
 
110
110
  await this.context.queue(ClearEmailHtmlBody, "1", { id : "clean-email-html-body" });
111
111
 
112
- await IndexAppFilesWorkflow.startIndexing(this.context);
112
+ await IndexFileContentsWorkflow.startIndexing(this.context);
113
113
  }
114
114
  }
@@ -6,7 +6,6 @@ import TempFileService from "../../storage/TempFileService.js";
6
6
  import { LocalFile } from "@entity-access/server-pages/dist/core/LocalFile.js";
7
7
  import { FileType } from "../../../common/FileType.js";
8
8
  import FileContent from "../../model/entities/FileContent.js";
9
- import AppFile from "../../model/entities/AppFile.js";
10
9
  import EmailParserService from "../../smtp/services/EmailParserService.js";
11
10
  import { parse } from "path";
12
11
  import { Extract } from "../../services/extract/Extract.js";
@@ -15,12 +14,12 @@ import { appendFile } from "fs/promises";
15
14
  import BufferHelper from "../../../common/BufferHelper.js";
16
15
  import sleep from "../../../common/sleep.js";
17
16
 
18
- export default class IndexAppFilesWorkflow extends Workflow {
17
+ export default class IndexFileContentsWorkflow extends Workflow {
19
18
 
20
19
  static taskGroup = "batch";
21
20
 
22
21
  static startIndexing(context: AppWorkflowContext) {
23
- return context.queue(IndexAppFilesWorkflow, 0, {
22
+ return context.queue(IndexFileContentsWorkflow, 0, {
24
23
  id: `index-app-files`
25
24
  });
26
25
  }
@@ -45,17 +44,16 @@ export default class IndexAppFilesWorkflow extends Workflow {
45
44
  db.verifyFilters = false;
46
45
  db.raiseEvents = false;
47
46
 
48
- let q = db.appFiles
49
- .where(void 0, (p) => (x) => x.fileContentID !== null && x.fileContent.textDocumentID === null);
47
+ let q = db.fileContents
48
+ .where(void 0, (p) => (x) => x.textDocumentID === null);
50
49
 
51
50
  if (BigInt(start) > 0) {
52
- q = q.where({ start }, (p) => (x) => x.appFileID < p.start);
51
+ q = q.where({ start }, (p) => (x) => x.fileContentID < p.start);
53
52
  }
54
53
 
55
54
  const files = await q
56
- .orderByDescending(void 0, (p) => (x) => x.appFileID)
55
+ .orderByDescending(void 0, (p) => (x) => x.fileContentID)
57
56
  .limit(100)
58
- .include((x) => x.fileContent)
59
57
  .toArray();
60
58
 
61
59
  if (!files.length) {
@@ -63,7 +61,7 @@ export default class IndexAppFilesWorkflow extends Workflow {
63
61
  }
64
62
 
65
63
  for (const iterator of files) {
66
- start = iterator.appFileID;
64
+ start = iterator.fileContentID;
67
65
  try {
68
66
  await this.saveTextContent(iterator, tempFileService, db);
69
67
  } catch (error) {
@@ -109,25 +107,28 @@ export default class IndexAppFilesWorkflow extends Workflow {
109
107
  }
110
108
 
111
109
 
112
- private async saveTextContent(appFile: AppFile, tempFileService: TempFileService, db: SocialMailContext) {
110
+ private async saveTextContent(fileContent: FileContent, tempFileService: TempFileService, db: SocialMailContext) {
113
111
 
114
112
  let searchable = "";
115
113
 
116
114
  // check if file content already has text content to remove duplicates
117
- const has = await db.textDocuments.statements.select({}, { textDocumentID: appFile.fileContentID });
115
+ const has = await db.textDocuments.statements.select({}, { textDocumentID: fileContent.fileContentID });
118
116
  if(has) {
119
117
  return;
120
118
  }
121
119
 
122
120
  const changes: Partial<FileContent> = {
123
121
  textDocumentID: 0,
124
- fileContentID: appFile.fileContentID
122
+ fileContentID: fileContent.fileContentID
125
123
  };
126
124
 
127
125
  let file: LocalFile = null;
128
126
 
129
127
  for(let i=0;i<3;i++) {
130
128
  try {
129
+
130
+ // get file
131
+ const appFile = await db.appFiles.where(fileContent, (p) => (x) => x.fileContentID === p.fileContentID).first();
131
132
  file = await tempFileService.downloadAppFile(appFile);
132
133
  break;
133
134
  } catch (error) {
@@ -1 +0,0 @@
1
- {"version":3,"file":"IndexAppFilesWorkflow.d.ts","sourceRoot":"","sources":["../../../../src/server/workflows/search/IndexAppFilesWorkflow.ts"],"names":[],"mappings":"AACA,OAAO,QAA4B,MAAM,yDAAyD,CAAC;AAEnG,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAQ/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAK9D,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,QAAQ;IAEvD,MAAM,CAAC,SAAS,SAAW;IAE3B,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,kBAAkB;IAM1C,GAAG;IAWH,KAAK,CACP,KAAK,KAAA,EACG,EAAE,CAAC,EAAE,iBAAiB,EACtB,eAAe,CAAC,EAAE,eAAe;YAmC/B,WAAW;YAmCX,eAAe;CA0DhC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IndexAppFilesWorkflow.js","sourceRoot":"","sources":["../../../../src/server/workflows/search/IndexAppFilesWorkflow.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+BAA+B;AAC/B,OAAO,QAAQ,EAAE,EAAE,cAAc,EAAE,MAAM,yDAAyD,CAAC;AACnG,OAAO,MAAM,EAAE,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGvD,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAC3D,OAAO,KAAK,MAAM,0BAA0B,CAAC;AAE7C,MAAqB,qBAAsB,SAAQ,QAAQ;IAIvD,MAAM,CAAC,aAAa,CAAC,OAA2B;QAC5C,OAAO,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,EAAE;YAC3C,EAAE,EAAE,iBAAiB;SACxB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,GAAG;QACL,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QACf,SAAQ,CAAC;YACL,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjB,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAGK,AAAN,KAAK,CAAC,KAAK,CACP,KAAK,EACG,EAAsB,EACtB,eAAiC;QAGzC,EAAE,CAAC,aAAa,GAAG,KAAK,CAAC;QACzB,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ;aACd,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC;QAEpG,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC;aAChB,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;aACpD,KAAK,CAAC,GAAG,CAAC;aACV,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;aAC7B,OAAO,EAAE,CAAC;QAEf,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,CAAC;QACb,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC3B,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;YAC3B,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAe,EAAE,eAAgC,EAAE,EAAqB;QAG9F,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAEhE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,KAAK,gBAAgB,CAAC;QACtD,IAAG,OAAO,EAAE,CAAC;YACT,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;YACjE,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9C,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;gBAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC;gBACvD,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC9F,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;gBAC1D,IAAI,CAAC,EAAE,CAAC;oBACJ,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;gBACtD,CAAC;YACL,CAAC;YAED,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YAC3C,OAAO,UAAU,CAAC;QACtB,CAAC;QAAC,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACrC,OAAO,UAAU,CAAC;QACtB,CAAC;QACD,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAClC,OAAO,UAAU,CAAC;IACtB,CAAC;IAGO,KAAK,CAAC,eAAe,CAAC,OAAgB,EAAE,eAAgC,EAAE,EAAqB;QAEnG,IAAI,UAAU,GAAG,EAAE,CAAC;QAEpB,sEAAsE;QACtE,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QACpG,IAAG,GAAG,EAAE,CAAC;YACL,OAAO;QACX,CAAC;QAED,MAAM,OAAO,GAAyB;YAClC,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,OAAO,CAAC,aAAa;SACvC,CAAC;QAEF,IAAI,IAAI,GAAc,IAAI,CAAC;QAE3B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC;YAClB,IAAI,CAAC;gBACD,IAAI,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBACtD,MAAM;YACV,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,4BAA4B;gBAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrB,UAAU,GAAG,EAAE,CAAC;gBAChB,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACL,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;YAE7D,IAAI,EAAE,CAAC,WAAW,GAAG,EAAE,GAAC,IAAI,GAAC,IAAI,EAAE,CAAC;gBAEhC,8CAA8C;gBAC9C,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC1C,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBACtC,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC3C,CAAC;gBAED,UAAU,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5C,CAAC;QACL,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;YAChD,cAAc,EAAE,OAAO,CAAC,aAAa;YACrC,UAAU;SACb,CAAC,CAAC;QACH,OAAO,CAAC,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC;QAE3C,MAAM,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CACnC,OAAO,CACV,CAAC;QAEF,OAAO;IACX,CAAC;;AArJM,+BAAS,GAAG,OAAO,CAAC;eAFV,qBAAqB;AAqBhC;IADL,cAAc;IAGV,WAAA,MAAM,CAAA;IACN,WAAA,MAAM,CAAA;;6CADM,iBAAiB;QACJ,eAAe;;kDAiC5C"}