av6-core 1.7.5 → 1.7.6
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/dist/index.js +23 -1
- package/dist/index.mjs +23 -1
- package/package.json +38 -39
- package/prisma-client.d.ts +12 -0
- package/.cursor/debug-check-prisma.ts +0 -100
package/dist/index.js
CHANGED
|
@@ -3452,9 +3452,31 @@ function renderTemplate(tpl, data) {
|
|
|
3452
3452
|
function renderEmailTemplate(tpl, data) {
|
|
3453
3453
|
return {
|
|
3454
3454
|
subject: tpl.subject ? import_handlebars.default.compile(tpl.subject)(data) : void 0,
|
|
3455
|
-
body: import_handlebars.default.compile(tpl.body)(data)
|
|
3455
|
+
body: import_handlebars.default.compile(convertArrayPatternToEachBlocksGeneric(tpl.body))(data)
|
|
3456
3456
|
};
|
|
3457
3457
|
}
|
|
3458
|
+
var convertArrayPatternToEachBlocksGeneric = (html) => {
|
|
3459
|
+
if (!html) return "";
|
|
3460
|
+
const blockTags = ["tr", "div", "li", "section", "tbody"];
|
|
3461
|
+
let output = html;
|
|
3462
|
+
blockTags.forEach((tag) => {
|
|
3463
|
+
const regex = new RegExp(`<${tag}\\b[^>]*>[\\s\\S]*?<\\/${tag}>`, "g");
|
|
3464
|
+
output = output.replace(regex, (blockHtml) => {
|
|
3465
|
+
const matches = [...blockHtml.matchAll(/{{\s*([a-zA-Z0-9_.-]+)\[\]\.([a-zA-Z0-9_.-]+)\s*}}/g)];
|
|
3466
|
+
if (!matches.length) return blockHtml;
|
|
3467
|
+
const uniqueArrays = Array.from(new Set(matches.map((m) => m[1])));
|
|
3468
|
+
if (uniqueArrays.length !== 1) return blockHtml;
|
|
3469
|
+
const arrayName = uniqueArrays[0];
|
|
3470
|
+
const escapedArray = arrayName.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
3471
|
+
const cleanedBlock = blockHtml.replace(
|
|
3472
|
+
new RegExp(`{{\\s*${escapedArray}\\[\\]\\.([a-zA-Z0-9_.-]+)\\s*}}`, "g"),
|
|
3473
|
+
"{{$1}}"
|
|
3474
|
+
);
|
|
3475
|
+
return `{{#each ${arrayName}}}${cleanedBlock}{{/each}}`;
|
|
3476
|
+
});
|
|
3477
|
+
});
|
|
3478
|
+
return output;
|
|
3479
|
+
};
|
|
3458
3480
|
|
|
3459
3481
|
// src/services/notification.service.ts
|
|
3460
3482
|
var import_lodash = __toESM(require("lodash.merge"));
|
package/dist/index.mjs
CHANGED
|
@@ -3400,9 +3400,31 @@ function renderTemplate(tpl, data) {
|
|
|
3400
3400
|
function renderEmailTemplate(tpl, data) {
|
|
3401
3401
|
return {
|
|
3402
3402
|
subject: tpl.subject ? Handlebars.compile(tpl.subject)(data) : void 0,
|
|
3403
|
-
body: Handlebars.compile(tpl.body)(data)
|
|
3403
|
+
body: Handlebars.compile(convertArrayPatternToEachBlocksGeneric(tpl.body))(data)
|
|
3404
3404
|
};
|
|
3405
3405
|
}
|
|
3406
|
+
var convertArrayPatternToEachBlocksGeneric = (html) => {
|
|
3407
|
+
if (!html) return "";
|
|
3408
|
+
const blockTags = ["tr", "div", "li", "section", "tbody"];
|
|
3409
|
+
let output = html;
|
|
3410
|
+
blockTags.forEach((tag) => {
|
|
3411
|
+
const regex = new RegExp(`<${tag}\\b[^>]*>[\\s\\S]*?<\\/${tag}>`, "g");
|
|
3412
|
+
output = output.replace(regex, (blockHtml) => {
|
|
3413
|
+
const matches = [...blockHtml.matchAll(/{{\s*([a-zA-Z0-9_.-]+)\[\]\.([a-zA-Z0-9_.-]+)\s*}}/g)];
|
|
3414
|
+
if (!matches.length) return blockHtml;
|
|
3415
|
+
const uniqueArrays = Array.from(new Set(matches.map((m) => m[1])));
|
|
3416
|
+
if (uniqueArrays.length !== 1) return blockHtml;
|
|
3417
|
+
const arrayName = uniqueArrays[0];
|
|
3418
|
+
const escapedArray = arrayName.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
3419
|
+
const cleanedBlock = blockHtml.replace(
|
|
3420
|
+
new RegExp(`{{\\s*${escapedArray}\\[\\]\\.([a-zA-Z0-9_.-]+)\\s*}}`, "g"),
|
|
3421
|
+
"{{$1}}"
|
|
3422
|
+
);
|
|
3423
|
+
return `{{#each ${arrayName}}}${cleanedBlock}{{/each}}`;
|
|
3424
|
+
});
|
|
3425
|
+
});
|
|
3426
|
+
return output;
|
|
3427
|
+
};
|
|
3406
3428
|
|
|
3407
3429
|
// src/services/notification.service.ts
|
|
3408
3430
|
import merge from "lodash.merge";
|
package/package.json
CHANGED
|
@@ -1,39 +1,38 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "av6-core",
|
|
3
|
-
"version": "1.7.
|
|
4
|
-
"main": "dist/index.js",
|
|
5
|
-
"module": "dist/index.mjs",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"description": "All utility function for av6 node js projects.",
|
|
8
|
-
"author": "Aniket Sarkar",
|
|
9
|
-
"license": "ISC",
|
|
10
|
-
"scripts": {
|
|
11
|
-
"build": "npm run format && tsup",
|
|
12
|
-
"p:gen": "prisma generate",
|
|
13
|
-
"format": "prettier --write **/*.ts"
|
|
14
|
-
},
|
|
15
|
-
"devDependencies": {
|
|
16
|
-
"@
|
|
17
|
-
"@types/
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "av6-core",
|
|
3
|
+
"version": "1.7.6",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"module": "dist/index.mjs",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"description": "All utility function for av6 node js projects.",
|
|
8
|
+
"author": "Aniket Sarkar",
|
|
9
|
+
"license": "ISC",
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "npm run format && tsup",
|
|
12
|
+
"p:gen": "prisma generate",
|
|
13
|
+
"format": "prettier --write **/*.ts"
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@types/lodash.merge": "^4.6.9",
|
|
17
|
+
"@types/nodemailer": "^7.0.3",
|
|
18
|
+
"tsup": "^8.5.0",
|
|
19
|
+
"typescript": "^5.9.2"
|
|
20
|
+
},
|
|
21
|
+
"peerDependencies": {
|
|
22
|
+
"@prisma/client": "^6.19.0",
|
|
23
|
+
"winston": "^3.17.0"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"av6-utils": "^1.0.4",
|
|
27
|
+
"axios": "^1.11.0",
|
|
28
|
+
"dayjs": "^1.11.19",
|
|
29
|
+
"exceljs": "^4.4.0",
|
|
30
|
+
"handlebars": "^4.7.8",
|
|
31
|
+
"joi": "^17.13.3",
|
|
32
|
+
"lodash.merge": "^4.6.2",
|
|
33
|
+
"node-cron": "^4.2.1",
|
|
34
|
+
"nodemailer": "^7.0.10",
|
|
35
|
+
"prettier": "^3.6.2",
|
|
36
|
+
"prisma": "^6.19.0"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
declare module "@prisma/client" {
|
|
2
|
+
export class PrismaClient {
|
|
3
|
+
[key: string]: any;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export namespace Prisma {
|
|
7
|
+
export type TransactionClient = any;
|
|
8
|
+
export type JsonValue = any;
|
|
9
|
+
export type JsonObject = any;
|
|
10
|
+
export type JsonArray = any;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
// #region agent log
|
|
2
|
-
fetch('http://127.0.0.1:7244/ingest/0a9f7972-5d03-4255-b5c9-6164f846fb46',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'debug-check-prisma.ts:1',message:'Starting Prisma client check',data:{timestamp:Date.now()},sessionId:'debug-session',runId:'run1',hypothesisId:'A'})}).catch(()=>{});
|
|
3
|
-
// #endregion
|
|
4
|
-
|
|
5
|
-
import * as fs from 'fs';
|
|
6
|
-
import * as path from 'path';
|
|
7
|
-
|
|
8
|
-
const workspaceRoot = path.resolve(__dirname, '..');
|
|
9
|
-
const nodeModulesPath = path.join(workspaceRoot, 'node_modules');
|
|
10
|
-
const prismaClientPath = path.join(nodeModulesPath, '@prisma', 'client');
|
|
11
|
-
const prismaGeneratedPath = path.join(nodeModulesPath, '.prisma', 'client');
|
|
12
|
-
|
|
13
|
-
// #region agent log
|
|
14
|
-
fetch('http://127.0.0.1:7244/ingest/0a9f7972-5d03-4255-b5c9-6164f846fb46',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'debug-check-prisma.ts:10',message:'Checking paths',data:{workspaceRoot,prismaClientPath,prismaGeneratedPath,prismaClientExists:fs.existsSync(prismaClientPath),prismaGeneratedExists:fs.existsSync(prismaGeneratedPath)},sessionId:'debug-session',runId:'run1',hypothesisId:'A'})}).catch(()=>{});
|
|
15
|
-
// #endregion
|
|
16
|
-
|
|
17
|
-
// Check if @prisma/client package exists
|
|
18
|
-
const prismaClientExists = fs.existsSync(prismaClientPath);
|
|
19
|
-
const prismaGeneratedExists = fs.existsSync(prismaGeneratedPath);
|
|
20
|
-
|
|
21
|
-
// #region agent log
|
|
22
|
-
fetch('http://127.0.0.1:7244/ingest/0a9f7972-5d03-4255-b5c9-6164f846fb46',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'debug-check-prisma.ts:18',message:'Path check results',data:{prismaClientExists,prismaGeneratedExists},sessionId:'debug-session',runId:'run1',hypothesisId:'A'})}).catch(()=>{});
|
|
23
|
-
// #endregion
|
|
24
|
-
|
|
25
|
-
// Try to read package.json from @prisma/client
|
|
26
|
-
let prismaClientPackageJson: any = null;
|
|
27
|
-
if (prismaClientExists) {
|
|
28
|
-
try {
|
|
29
|
-
const packageJsonPath = path.join(prismaClientPath, 'package.json');
|
|
30
|
-
// #region agent log
|
|
31
|
-
fetch('http://127.0.0.1:7244/ingest/0a9f7972-5d03-4255-b5c9-6164f846fb46',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'debug-check-prisma.ts:26',message:'Reading @prisma/client package.json',data:{packageJsonPath,exists:fs.existsSync(packageJsonPath)},sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{});
|
|
32
|
-
// #endregion
|
|
33
|
-
if (fs.existsSync(packageJsonPath)) {
|
|
34
|
-
prismaClientPackageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
35
|
-
// #region agent log
|
|
36
|
-
fetch('http://127.0.0.1:7244/ingest/0a9f7972-5d03-4255-b5c9-6164f846fb46',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'debug-check-prisma.ts:30',message:'@prisma/client package.json content',data:{name:prismaClientPackageJson?.name,version:prismaClientPackageJson?.version,exports:prismaClientPackageJson?.exports},sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{});
|
|
37
|
-
// #endregion
|
|
38
|
-
}
|
|
39
|
-
} catch (e) {
|
|
40
|
-
// #region agent log
|
|
41
|
-
fetch('http://127.0.0.1:7244/ingest/0a9f7972-5d03-4255-b5c9-6164f846fb46',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'debug-check-prisma.ts:34',message:'Error reading package.json',data:{error:String(e)},sessionId:'debug-session',runId:'run1',hypothesisId:'B'})}).catch(()=>{});
|
|
42
|
-
// #endregion
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Check index.d.ts in @prisma/client
|
|
47
|
-
let indexDtsContent: string | null = null;
|
|
48
|
-
if (prismaClientExists) {
|
|
49
|
-
try {
|
|
50
|
-
const indexDtsPath = path.join(prismaClientPath, 'index.d.ts');
|
|
51
|
-
// #region agent log
|
|
52
|
-
fetch('http://127.0.0.1:7244/ingest/0a9f7972-5d03-4255-b5c9-6164f846fb46',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'debug-check-prisma.ts:43',message:'Reading index.d.ts',data:{indexDtsPath,exists:fs.existsSync(indexDtsPath)},sessionId:'debug-session',runId:'run1',hypothesisId:'C'})}).catch(()=>{});
|
|
53
|
-
// #endregion
|
|
54
|
-
if (fs.existsSync(indexDtsPath)) {
|
|
55
|
-
indexDtsContent = fs.readFileSync(indexDtsPath, 'utf-8');
|
|
56
|
-
// #region agent log
|
|
57
|
-
fetch('http://127.0.0.1:7244/ingest/0a9f7972-5d03-4255-b5c9-6164f846fb46',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'debug-check-prisma.ts:47',message:'index.d.ts content',data:{content:indexDtsContent.substring(0,200)},sessionId:'debug-session',runId:'run1',hypothesisId:'C'})}).catch(()=>{});
|
|
58
|
-
// #endregion
|
|
59
|
-
}
|
|
60
|
-
} catch (e) {
|
|
61
|
-
// #region agent log
|
|
62
|
-
fetch('http://127.0.0.1:7244/ingest/0a9f7972-5d03-4255-b5c9-6164f846fb46',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'debug-check-prisma.ts:51',message:'Error reading index.d.ts',data:{error:String(e)},sessionId:'debug-session',runId:'run1',hypothesisId:'C'})}).catch(()=>{});
|
|
63
|
-
// #endregion
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// Try to dynamically import PrismaClient
|
|
68
|
-
let prismaClientImportSuccess = false;
|
|
69
|
-
let prismaClientImportError: string | null = null;
|
|
70
|
-
try {
|
|
71
|
-
// #region agent log
|
|
72
|
-
fetch('http://127.0.0.1:7244/ingest/0a9f7972-5d03-4255-b5c9-6164f846fb46',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'debug-check-prisma.ts:60',message:'Attempting dynamic import of PrismaClient',data:{},sessionId:'debug-session',runId:'run1',hypothesisId:'D'})}).catch(()=>{});
|
|
73
|
-
// #endregion
|
|
74
|
-
const prismaModule = require('@prisma/client');
|
|
75
|
-
// #region agent log
|
|
76
|
-
fetch('http://127.0.0.1:7244/ingest/0a9f7972-5d03-4255-b5c9-6164f846fb46',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'debug-check-prisma.ts:63',message:'Module loaded',data:{hasPrismaClient:!!prismaModule.PrismaClient,exports:Object.keys(prismaModule)},sessionId:'debug-session',runId:'run1',hypothesisId:'D'})}).catch(()=>{});
|
|
77
|
-
// #endregion
|
|
78
|
-
if (prismaModule.PrismaClient) {
|
|
79
|
-
prismaClientImportSuccess = true;
|
|
80
|
-
} else {
|
|
81
|
-
prismaClientImportError = 'PrismaClient not found in exports: ' + Object.keys(prismaModule).join(', ');
|
|
82
|
-
}
|
|
83
|
-
} catch (e) {
|
|
84
|
-
prismaClientImportError = String(e);
|
|
85
|
-
// #region agent log
|
|
86
|
-
fetch('http://127.0.0.1:7244/ingest/0a9f7972-5d03-4255-b5c9-6164f846fb46',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'debug-check-prisma.ts:72',message:'Dynamic import failed',data:{error:prismaClientImportError},sessionId:'debug-session',runId:'run1',hypothesisId:'D'})}).catch(()=>{});
|
|
87
|
-
// #endregion
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// #region agent log
|
|
91
|
-
fetch('http://127.0.0.1:7244/ingest/0a9f7972-5d03-4255-b5c9-6164f846fb46',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({location:'debug-check-prisma.ts:76',message:'Final summary',data:{prismaClientExists,prismaGeneratedExists,prismaClientImportSuccess,prismaClientImportError,hasPackageJson:!!prismaClientPackageJson,hasIndexDts:!!indexDtsContent},sessionId:'debug-session',runId:'run1',hypothesisId:'ALL'})}).catch(()=>{});
|
|
92
|
-
// #endregion
|
|
93
|
-
|
|
94
|
-
console.log('Prisma Client Check Complete');
|
|
95
|
-
console.log('Prisma Client Package Exists:', prismaClientExists);
|
|
96
|
-
console.log('Prisma Generated Client Exists:', prismaGeneratedExists);
|
|
97
|
-
console.log('PrismaClient Import Success:', prismaClientImportSuccess);
|
|
98
|
-
if (prismaClientImportError) {
|
|
99
|
-
console.log('PrismaClient Import Error:', prismaClientImportError);
|
|
100
|
-
}
|