@truto/truto-jsonata 1.0.44 → 1.0.45
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/README.md +38 -0
- package/dist/browser/index.js +265 -35
- package/dist/browser/index.js.map +18 -5
- package/dist/cjs/index.cjs +265 -35
- package/dist/cjs/index.cjs.map +18 -5
- package/dist/esm/index.js +129 -29
- package/dist/esm/index.js.map +7 -6
- package/dist/functions/convertMdToPdf.d.ts +23 -0
- package/dist/functions/convertNotionToMarkdown.d.ts +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -1532,6 +1532,44 @@ Output:
|
|
|
1532
1532
|
|
|
1533
1533
|
</details>
|
|
1534
1534
|
|
|
1535
|
+
<details>
|
|
1536
|
+
<summary>convertMdToPdf(markdown, options = { title: '', pageSize: 'a4', embedImages: false, pageMargins: [40, 60, 40, 60], defaultStyle: { fontSize: 12, lineHeight: 1.4 } })</summary>
|
|
1537
|
+
|
|
1538
|
+
Converts Markdown text to a PDF `Blob` using jsPDF.
|
|
1539
|
+
|
|
1540
|
+
**Example:**
|
|
1541
|
+
|
|
1542
|
+
```javascript
|
|
1543
|
+
import trutoJsonata from '@truto/truto-jsonata'
|
|
1544
|
+
|
|
1545
|
+
const markdown = `# Title\n\nThis is a paragraph.`
|
|
1546
|
+
const expression = trutoJsonata("$convertMdToPdf(markdown)")
|
|
1547
|
+
expression.evaluate({ markdown }).then(blob => {
|
|
1548
|
+
console.log(blob) // Blob { type: 'application/pdf' }
|
|
1549
|
+
})
|
|
1550
|
+
```
|
|
1551
|
+
|
|
1552
|
+
**Options:**
|
|
1553
|
+
- `title`: Optional document title
|
|
1554
|
+
- `pageSize`: jsPDF page size (e.g., `'a4'`, `'LETTER'`)
|
|
1555
|
+
- `embedImages`: Reserved for future use
|
|
1556
|
+
- `pageMargins`: `[left, top, right, bottom]` in points
|
|
1557
|
+
- `defaultStyle`: `{ fontSize: number, lineHeight: number }`
|
|
1558
|
+
|
|
1559
|
+
If your transport requires a JSON-serializable value, convert the PDF Blob to a data URI string and decode it later:
|
|
1560
|
+
|
|
1561
|
+
```javascript
|
|
1562
|
+
import trutoJsonata from '@truto/truto-jsonata'
|
|
1563
|
+
|
|
1564
|
+
const markdown = `# Report\nGenerated content`
|
|
1565
|
+
const expr = trutoJsonata("$getDataUri($convertMdToPdf(markdown), 'application/pdf')")
|
|
1566
|
+
expr.evaluate({ markdown }).then(dataUri => {
|
|
1567
|
+
// dataUri starts with 'data:application/pdf;base64,'
|
|
1568
|
+
console.log(typeof dataUri, dataUri.startsWith('data:application/pdf;base64,'))
|
|
1569
|
+
})
|
|
1570
|
+
```
|
|
1571
|
+
</details>
|
|
1572
|
+
|
|
1535
1573
|
---
|
|
1536
1574
|
|
|
1537
1575
|
### Array and Object Utilities (Lodash Enhancements)
|
package/dist/browser/index.js
CHANGED
|
@@ -23000,7 +23000,7 @@ var init_buffer = __esm(() => {
|
|
|
23000
23000
|
return 1;
|
|
23001
23001
|
return 0;
|
|
23002
23002
|
};
|
|
23003
|
-
Buffer4.prototype.includes = function
|
|
23003
|
+
Buffer4.prototype.includes = function includes2(val, byteOffset, encoding) {
|
|
23004
23004
|
return this.indexOf(val, byteOffset, encoding) !== -1;
|
|
23005
23005
|
};
|
|
23006
23006
|
Buffer4.prototype.indexOf = function indexOf(val, byteOffset, encoding) {
|
|
@@ -30337,7 +30337,7 @@ var require_object_inspect = __commonJS((exports, module) => {
|
|
|
30337
30337
|
}
|
|
30338
30338
|
return inspect_(value, opts, depth + 1, seen);
|
|
30339
30339
|
}
|
|
30340
|
-
if (typeof obj === "function" && !
|
|
30340
|
+
if (typeof obj === "function" && !isRegExp2(obj)) {
|
|
30341
30341
|
var name = nameOf(obj);
|
|
30342
30342
|
var keys2 = arrObjKeys(obj, inspect2);
|
|
30343
30343
|
return "[Function" + (name ? ": " + name : " (anonymous)") + "]" + (keys2.length > 0 ? " { " + $join.call(keys2, ", ") + " }" : "");
|
|
@@ -30431,7 +30431,7 @@ var require_object_inspect = __commonJS((exports, module) => {
|
|
|
30431
30431
|
if (typeof globalThis !== "undefined" && obj === globalThis || typeof global !== "undefined" && obj === global) {
|
|
30432
30432
|
return "{ [object globalThis] }";
|
|
30433
30433
|
}
|
|
30434
|
-
if (!isDate2(obj) && !
|
|
30434
|
+
if (!isDate2(obj) && !isRegExp2(obj)) {
|
|
30435
30435
|
var ys = arrObjKeys(obj, inspect2);
|
|
30436
30436
|
var isPlainObject3 = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
|
|
30437
30437
|
var protoTag = obj instanceof Object ? "" : "null prototype";
|
|
@@ -30465,7 +30465,7 @@ var require_object_inspect = __commonJS((exports, module) => {
|
|
|
30465
30465
|
function isDate2(obj) {
|
|
30466
30466
|
return toStr(obj) === "[object Date]" && canTrustToString(obj);
|
|
30467
30467
|
}
|
|
30468
|
-
function
|
|
30468
|
+
function isRegExp2(obj) {
|
|
30469
30469
|
return toStr(obj) === "[object RegExp]" && canTrustToString(obj);
|
|
30470
30470
|
}
|
|
30471
30471
|
function isError2(obj) {
|
|
@@ -31842,7 +31842,7 @@ var require_utils2 = __commonJS((exports, module) => {
|
|
|
31842
31842
|
compactQueue(queue);
|
|
31843
31843
|
return value;
|
|
31844
31844
|
};
|
|
31845
|
-
var
|
|
31845
|
+
var isRegExp2 = function isRegExp(obj) {
|
|
31846
31846
|
return Object.prototype.toString.call(obj) === "[object RegExp]";
|
|
31847
31847
|
};
|
|
31848
31848
|
var isBuffer3 = function isBuffer(obj) {
|
|
@@ -31872,7 +31872,7 @@ var require_utils2 = __commonJS((exports, module) => {
|
|
|
31872
31872
|
decode,
|
|
31873
31873
|
encode,
|
|
31874
31874
|
isBuffer: isBuffer3,
|
|
31875
|
-
isRegExp,
|
|
31875
|
+
isRegExp: isRegExp2,
|
|
31876
31876
|
maybeMap,
|
|
31877
31877
|
merge
|
|
31878
31878
|
};
|
|
@@ -36270,6 +36270,66 @@ function baseSlice(array, start, end) {
|
|
|
36270
36270
|
}
|
|
36271
36271
|
var _baseSlice_default = baseSlice;
|
|
36272
36272
|
|
|
36273
|
+
// node_modules/lodash-es/_castSlice.js
|
|
36274
|
+
function castSlice(array, start, end) {
|
|
36275
|
+
var length = array.length;
|
|
36276
|
+
end = end === undefined ? length : end;
|
|
36277
|
+
return !start && end >= length ? array : _baseSlice_default(array, start, end);
|
|
36278
|
+
}
|
|
36279
|
+
var _castSlice_default = castSlice;
|
|
36280
|
+
|
|
36281
|
+
// node_modules/lodash-es/_hasUnicode.js
|
|
36282
|
+
var rsAstralRange = "\\ud800-\\udfff";
|
|
36283
|
+
var rsComboMarksRange = "\\u0300-\\u036f";
|
|
36284
|
+
var reComboHalfMarksRange = "\\ufe20-\\ufe2f";
|
|
36285
|
+
var rsComboSymbolsRange = "\\u20d0-\\u20ff";
|
|
36286
|
+
var rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;
|
|
36287
|
+
var rsVarRange = "\\ufe0e\\ufe0f";
|
|
36288
|
+
var rsZWJ = "\\u200d";
|
|
36289
|
+
var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]");
|
|
36290
|
+
function hasUnicode(string) {
|
|
36291
|
+
return reHasUnicode.test(string);
|
|
36292
|
+
}
|
|
36293
|
+
var _hasUnicode_default = hasUnicode;
|
|
36294
|
+
|
|
36295
|
+
// node_modules/lodash-es/_asciiToArray.js
|
|
36296
|
+
function asciiToArray(string) {
|
|
36297
|
+
return string.split("");
|
|
36298
|
+
}
|
|
36299
|
+
var _asciiToArray_default = asciiToArray;
|
|
36300
|
+
|
|
36301
|
+
// node_modules/lodash-es/_unicodeToArray.js
|
|
36302
|
+
var rsAstralRange2 = "\\ud800-\\udfff";
|
|
36303
|
+
var rsComboMarksRange2 = "\\u0300-\\u036f";
|
|
36304
|
+
var reComboHalfMarksRange2 = "\\ufe20-\\ufe2f";
|
|
36305
|
+
var rsComboSymbolsRange2 = "\\u20d0-\\u20ff";
|
|
36306
|
+
var rsComboRange2 = rsComboMarksRange2 + reComboHalfMarksRange2 + rsComboSymbolsRange2;
|
|
36307
|
+
var rsVarRange2 = "\\ufe0e\\ufe0f";
|
|
36308
|
+
var rsAstral = "[" + rsAstralRange2 + "]";
|
|
36309
|
+
var rsCombo = "[" + rsComboRange2 + "]";
|
|
36310
|
+
var rsFitz = "\\ud83c[\\udffb-\\udfff]";
|
|
36311
|
+
var rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")";
|
|
36312
|
+
var rsNonAstral = "[^" + rsAstralRange2 + "]";
|
|
36313
|
+
var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}";
|
|
36314
|
+
var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]";
|
|
36315
|
+
var rsZWJ2 = "\\u200d";
|
|
36316
|
+
var reOptMod = rsModifier + "?";
|
|
36317
|
+
var rsOptVar = "[" + rsVarRange2 + "]?";
|
|
36318
|
+
var rsOptJoin = "(?:" + rsZWJ2 + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*";
|
|
36319
|
+
var rsSeq = rsOptVar + reOptMod + rsOptJoin;
|
|
36320
|
+
var rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")";
|
|
36321
|
+
var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g");
|
|
36322
|
+
function unicodeToArray(string) {
|
|
36323
|
+
return string.match(reUnicode) || [];
|
|
36324
|
+
}
|
|
36325
|
+
var _unicodeToArray_default = unicodeToArray;
|
|
36326
|
+
|
|
36327
|
+
// node_modules/lodash-es/_stringToArray.js
|
|
36328
|
+
function stringToArray(string) {
|
|
36329
|
+
return _hasUnicode_default(string) ? _unicodeToArray_default(string) : _asciiToArray_default(string);
|
|
36330
|
+
}
|
|
36331
|
+
var _stringToArray_default = stringToArray;
|
|
36332
|
+
|
|
36273
36333
|
// node_modules/lodash-es/_arrayReduce.js
|
|
36274
36334
|
function arrayReduce(array, iteratee, accumulator, initAccum) {
|
|
36275
36335
|
var index = -1, length = array == null ? 0 : array.length;
|
|
@@ -37503,6 +37563,18 @@ function values(object) {
|
|
|
37503
37563
|
}
|
|
37504
37564
|
var values_default = values;
|
|
37505
37565
|
|
|
37566
|
+
// node_modules/lodash-es/includes.js
|
|
37567
|
+
var nativeMax4 = Math.max;
|
|
37568
|
+
function includes(collection, value, fromIndex, guard) {
|
|
37569
|
+
collection = isArrayLike_default(collection) ? collection : values_default(collection);
|
|
37570
|
+
fromIndex = fromIndex && !guard ? toInteger_default(fromIndex) : 0;
|
|
37571
|
+
var length = collection.length;
|
|
37572
|
+
if (fromIndex < 0) {
|
|
37573
|
+
fromIndex = nativeMax4(length + fromIndex, 0);
|
|
37574
|
+
}
|
|
37575
|
+
return isString_default(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && _baseIndexOf_default(collection, value, fromIndex) > -1;
|
|
37576
|
+
}
|
|
37577
|
+
var includes_default = includes;
|
|
37506
37578
|
// node_modules/lodash-es/_parent.js
|
|
37507
37579
|
function parent(object, path) {
|
|
37508
37580
|
return path.length < 2 ? object : _baseGet_default(object, _baseSlice_default(path, 0, -1));
|
|
@@ -37545,6 +37617,17 @@ function isNil(value) {
|
|
|
37545
37617
|
return value == null;
|
|
37546
37618
|
}
|
|
37547
37619
|
var isNil_default = isNil;
|
|
37620
|
+
// node_modules/lodash-es/_baseIsRegExp.js
|
|
37621
|
+
var regexpTag5 = "[object RegExp]";
|
|
37622
|
+
function baseIsRegExp(value) {
|
|
37623
|
+
return isObjectLike_default(value) && _baseGetTag_default(value) == regexpTag5;
|
|
37624
|
+
}
|
|
37625
|
+
var _baseIsRegExp_default = baseIsRegExp;
|
|
37626
|
+
|
|
37627
|
+
// node_modules/lodash-es/isRegExp.js
|
|
37628
|
+
var nodeIsRegExp = _nodeUtil_default && _nodeUtil_default.isRegExp;
|
|
37629
|
+
var isRegExp = nodeIsRegExp ? _baseUnary_default(nodeIsRegExp) : _baseIsRegExp_default;
|
|
37630
|
+
var isRegExp_default = isRegExp;
|
|
37548
37631
|
// node_modules/lodash-es/join.js
|
|
37549
37632
|
var arrayProto2 = Array.prototype;
|
|
37550
37633
|
var nativeJoin = arrayProto2.join;
|
|
@@ -37830,6 +37913,55 @@ var sortBy = _baseRest_default(function(collection, iteratees) {
|
|
|
37830
37913
|
return _baseOrderBy_default(collection, _baseFlatten_default(iteratees, 1), []);
|
|
37831
37914
|
});
|
|
37832
37915
|
var sortBy_default = sortBy;
|
|
37916
|
+
// node_modules/lodash-es/split.js
|
|
37917
|
+
var MAX_ARRAY_LENGTH = 4294967295;
|
|
37918
|
+
function split(string, separator, limit) {
|
|
37919
|
+
if (limit && typeof limit != "number" && _isIterateeCall_default(string, separator, limit)) {
|
|
37920
|
+
separator = limit = undefined;
|
|
37921
|
+
}
|
|
37922
|
+
limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;
|
|
37923
|
+
if (!limit) {
|
|
37924
|
+
return [];
|
|
37925
|
+
}
|
|
37926
|
+
string = toString_default(string);
|
|
37927
|
+
if (string && (typeof separator == "string" || separator != null && !isRegExp_default(separator))) {
|
|
37928
|
+
separator = _baseToString_default(separator);
|
|
37929
|
+
if (!separator && _hasUnicode_default(string)) {
|
|
37930
|
+
return _castSlice_default(_stringToArray_default(string), 0, limit);
|
|
37931
|
+
}
|
|
37932
|
+
}
|
|
37933
|
+
return string.split(separator, limit);
|
|
37934
|
+
}
|
|
37935
|
+
var split_default = split;
|
|
37936
|
+
// node_modules/lodash-es/_charsEndIndex.js
|
|
37937
|
+
function charsEndIndex(strSymbols, chrSymbols) {
|
|
37938
|
+
var index = strSymbols.length;
|
|
37939
|
+
while (index-- && _baseIndexOf_default(chrSymbols, strSymbols[index], 0) > -1) {}
|
|
37940
|
+
return index;
|
|
37941
|
+
}
|
|
37942
|
+
var _charsEndIndex_default = charsEndIndex;
|
|
37943
|
+
|
|
37944
|
+
// node_modules/lodash-es/_charsStartIndex.js
|
|
37945
|
+
function charsStartIndex(strSymbols, chrSymbols) {
|
|
37946
|
+
var index = -1, length = strSymbols.length;
|
|
37947
|
+
while (++index < length && _baseIndexOf_default(chrSymbols, strSymbols[index], 0) > -1) {}
|
|
37948
|
+
return index;
|
|
37949
|
+
}
|
|
37950
|
+
var _charsStartIndex_default = charsStartIndex;
|
|
37951
|
+
|
|
37952
|
+
// node_modules/lodash-es/trim.js
|
|
37953
|
+
function trim(string, chars, guard) {
|
|
37954
|
+
string = toString_default(string);
|
|
37955
|
+
if (string && (guard || chars === undefined)) {
|
|
37956
|
+
return _baseTrim_default(string);
|
|
37957
|
+
}
|
|
37958
|
+
if (!string || !(chars = _baseToString_default(chars))) {
|
|
37959
|
+
return string;
|
|
37960
|
+
}
|
|
37961
|
+
var strSymbols = _stringToArray_default(string), chrSymbols = _stringToArray_default(chars), start = _charsStartIndex_default(strSymbols, chrSymbols), end = _charsEndIndex_default(strSymbols, chrSymbols) + 1;
|
|
37962
|
+
return _castSlice_default(strSymbols, start, end).join("");
|
|
37963
|
+
}
|
|
37964
|
+
var trim_default = trim;
|
|
37833
37965
|
// src/functions/base64decode.ts
|
|
37834
37966
|
function base64decode(base64, urlSafe = false) {
|
|
37835
37967
|
if (urlSafe) {
|
|
@@ -45468,7 +45600,7 @@ var formatPlainText = (x) => {
|
|
|
45468
45600
|
return textToReturn;
|
|
45469
45601
|
}
|
|
45470
45602
|
};
|
|
45471
|
-
var convertNotionToMd = function(block3, level = 1) {
|
|
45603
|
+
var convertNotionToMd = function(block3, level = 1, linkChildPages = false) {
|
|
45472
45604
|
const n = `
|
|
45473
45605
|
|
|
45474
45606
|
`;
|
|
@@ -45480,16 +45612,16 @@ var convertNotionToMd = function(block3, level = 1) {
|
|
|
45480
45612
|
case "bookmark":
|
|
45481
45613
|
return `[${data.url}](data.url)${n}`;
|
|
45482
45614
|
case "bulleted_list_item":
|
|
45483
|
-
childData = map_default(block3.children, (child) => convertNotionToMd(child, level + 1))
|
|
45484
|
-
return `- ${plainText
|
|
45615
|
+
childData = join_default(map_default(block3.children, (child) => convertNotionToMd(child, level + 1, linkChildPages)), repeat_default("\t", level));
|
|
45616
|
+
return `- ${join_default(plainText, "")}
|
|
45485
45617
|
` + (childData ? `${repeat_default("\t", level)}${childData}` : "");
|
|
45486
45618
|
case "numbered_list_item":
|
|
45487
|
-
childData = map_default(block3.children, (child) => convertNotionToMd(child, level + 1))
|
|
45488
|
-
return `${block3.number}. ${plainText
|
|
45619
|
+
childData = join_default(map_default(block3.children, (child) => convertNotionToMd(child, level + 1, linkChildPages)), repeat_default("\t", level));
|
|
45620
|
+
return `${block3.number}. ${join_default(plainText, "")}
|
|
45489
45621
|
` + (childData ? `${repeat_default("\t", level)}${childData}` : "");
|
|
45490
45622
|
case "quote":
|
|
45491
45623
|
case "callout":
|
|
45492
|
-
return `> ${plainText
|
|
45624
|
+
return `> ${join_default(plainText, "")}${n}`;
|
|
45493
45625
|
case "code":
|
|
45494
45626
|
return `\`\`\`${data.language}
|
|
45495
45627
|
${plainText}
|
|
@@ -45501,51 +45633,60 @@ ${plainText}
|
|
|
45501
45633
|
case "equation":
|
|
45502
45634
|
return data.expression;
|
|
45503
45635
|
case "paragraph":
|
|
45504
|
-
return plainText
|
|
45636
|
+
return join_default(plainText, "") + n;
|
|
45505
45637
|
case "video":
|
|
45506
45638
|
case "pdf":
|
|
45507
45639
|
case "file":
|
|
45508
45640
|
return `[${caption.length ? caption : "File"}](${data.file ? data.file.url : data.external ? data.external.url : ""})${n}`;
|
|
45509
45641
|
case "heading_1":
|
|
45510
|
-
return `# ${plainText
|
|
45642
|
+
return `# ${join_default(plainText, "")}${n}`;
|
|
45511
45643
|
case "heading_2":
|
|
45512
|
-
return `## ${plainText
|
|
45644
|
+
return `## ${join_default(plainText, "")}${n}`;
|
|
45513
45645
|
case "heading_3":
|
|
45514
|
-
return `### ${plainText
|
|
45646
|
+
return `### ${join_default(plainText, "")}${n}`;
|
|
45515
45647
|
case "heading_4":
|
|
45516
|
-
return `#### ${plainText
|
|
45648
|
+
return `#### ${join_default(plainText, "")}${n}`;
|
|
45517
45649
|
case "heading_5":
|
|
45518
|
-
return `##### ${plainText
|
|
45650
|
+
return `##### ${join_default(plainText, "")}${n}`;
|
|
45519
45651
|
case "heading_6":
|
|
45520
|
-
return `###### ${plainText
|
|
45652
|
+
return `###### ${join_default(plainText, "")}${n}`;
|
|
45521
45653
|
case "image":
|
|
45522
45654
|
return `${n}`;
|
|
45655
|
+
case "child_page":
|
|
45656
|
+
if (linkChildPages) {
|
|
45657
|
+
const pageTitle = data.title || "Untitled Page";
|
|
45658
|
+
const pageUrl = `https://www.notion.so/${block3.id.replace(/-/g, "")}`;
|
|
45659
|
+
return `[${pageTitle}](${pageUrl})${n}`;
|
|
45660
|
+
} else {
|
|
45661
|
+
childData = join_default(map_default(block3.children, (child) => convertNotionToMd(child, level, linkChildPages)), "");
|
|
45662
|
+
return (data.title || "Untitled Page") + n + childData;
|
|
45663
|
+
}
|
|
45523
45664
|
case "table":
|
|
45524
45665
|
if (block3.children) {
|
|
45525
45666
|
const firstChild = block3.children[0];
|
|
45526
45667
|
const remainingChildren = block3.children.slice(1);
|
|
45527
|
-
const header = `| ${firstChild.table_row.cells.map((x) => x.map((y) => formatPlainText(y))
|
|
45668
|
+
const header = `| ${join_default(firstChild.table_row.cells.map((x) => join_default(x.map((y) => formatPlainText(y)), "")), " | ")} |
|
|
45528
45669
|
`;
|
|
45529
45670
|
const divider = `|${repeat_default("---|", data.table_width)}
|
|
45530
45671
|
`;
|
|
45531
|
-
const rows = remainingChildren.map((row) => {
|
|
45532
|
-
return `| ${row.table_row.cells.map((x) => x.map((y) => formatPlainText(y))
|
|
45533
|
-
})
|
|
45672
|
+
const rows = join_default(remainingChildren.map((row) => {
|
|
45673
|
+
return `| ${join_default(row.table_row.cells.map((x) => join_default(x.map((y) => formatPlainText(y)), "")), " | ")} |`;
|
|
45674
|
+
}), `
|
|
45534
45675
|
`);
|
|
45535
45676
|
return `${header}${divider}${rows}${n}`;
|
|
45536
45677
|
}
|
|
45537
45678
|
return `Table as CSV
|
|
45538
45679
|
`;
|
|
45539
45680
|
case "table_row":
|
|
45540
|
-
return `| ${data.cells.map((x) => x.map((y) => formatPlainText(y))
|
|
45681
|
+
return `| ${join_default(data.cells.map((x) => join_default(x.map((y) => formatPlainText(y)), "")), " | ")} |
|
|
45541
45682
|
`;
|
|
45542
45683
|
case "to_do":
|
|
45543
|
-
childData = map_default(block3.children, (child) => convertNotionToMd(child, level + 1))
|
|
45544
|
-
return `- [${data.checked ? "X" : " "}] ${plainText
|
|
45684
|
+
childData = join_default(map_default(block3.children, (child) => convertNotionToMd(child, level + 1, linkChildPages)), repeat_default("\t", level));
|
|
45685
|
+
return `- [${data.checked ? "X" : " "}] ${join_default(plainText, "")}
|
|
45545
45686
|
` + (childData ? `${repeat_default("\t", level)}${childData}` : "");
|
|
45546
45687
|
default:
|
|
45547
|
-
childData = map_default(block3.children, (child) => convertNotionToMd(child))
|
|
45548
|
-
return plainText
|
|
45688
|
+
childData = join_default(map_default(block3.children, (child) => convertNotionToMd(child, level, linkChildPages)), "");
|
|
45689
|
+
return join_default(plainText, "") + n + childData;
|
|
45549
45690
|
}
|
|
45550
45691
|
};
|
|
45551
45692
|
var resolveChildren = function(block3, blocks) {
|
|
@@ -45595,13 +45736,13 @@ var insertNewLinesBetweenLists = function(blocks) {
|
|
|
45595
45736
|
return block3;
|
|
45596
45737
|
}));
|
|
45597
45738
|
};
|
|
45598
|
-
var convertNotionToMarkdown = function(blocks) {
|
|
45739
|
+
var convertNotionToMarkdown = function(blocks, linkChildPages = false) {
|
|
45599
45740
|
const arrayBlocks = insertNewLinesBetweenLists(castArray_default(blocks));
|
|
45600
45741
|
const parentBlocks = reject_default(arrayBlocks, (block3) => block3.parent?.type === "block_id");
|
|
45601
45742
|
const blocksWithChildren = numberOrderedLists(parentBlocks.map((block3) => {
|
|
45602
45743
|
return resolveChildren(block3, arrayBlocks);
|
|
45603
45744
|
}));
|
|
45604
|
-
return blocksWithChildren.map((block3) => convertNotionToMd(block3))
|
|
45745
|
+
return join_default(blocksWithChildren.map((block3) => convertNotionToMd(block3, 1, linkChildPages)), "");
|
|
45605
45746
|
};
|
|
45606
45747
|
var convertNotionToMarkdown_default = convertNotionToMarkdown;
|
|
45607
45748
|
|
|
@@ -56894,7 +57035,7 @@ Message: ${result.detail.join(`
|
|
|
56894
57035
|
const result = await response.json();
|
|
56895
57036
|
return result["examples"];
|
|
56896
57037
|
}
|
|
56897
|
-
async createExample(inputs, outputs, { datasetId, datasetName, createdAt, exampleId, metadata, split, sourceRunId }) {
|
|
57038
|
+
async createExample(inputs, outputs, { datasetId, datasetName, createdAt, exampleId, metadata, split: split2, sourceRunId }) {
|
|
56898
57039
|
let datasetId_ = datasetId;
|
|
56899
57040
|
if (datasetId_ === undefined && datasetName === undefined) {
|
|
56900
57041
|
throw new Error("Must provide either datasetName or datasetId");
|
|
@@ -56912,7 +57053,7 @@ Message: ${result.detail.join(`
|
|
|
56912
57053
|
created_at: createdAt_?.toISOString(),
|
|
56913
57054
|
id: exampleId,
|
|
56914
57055
|
metadata,
|
|
56915
|
-
split,
|
|
57056
|
+
split: split2,
|
|
56916
57057
|
source_run_id: sourceRunId
|
|
56917
57058
|
};
|
|
56918
57059
|
const response = await this.caller.call(_getFetchImplementation(), `${this.apiUrl}/examples`, {
|
|
@@ -57014,8 +57155,8 @@ Message: ${result.detail.join(`
|
|
|
57014
57155
|
}
|
|
57015
57156
|
}
|
|
57016
57157
|
if (splits !== undefined) {
|
|
57017
|
-
for (const
|
|
57018
|
-
params.append("splits",
|
|
57158
|
+
for (const split2 of splits) {
|
|
57159
|
+
params.append("splits", split2);
|
|
57019
57160
|
}
|
|
57020
57161
|
}
|
|
57021
57162
|
if (metadata !== undefined) {
|
|
@@ -67177,6 +67318,94 @@ function zipSqlResponse(columns, data, key) {
|
|
|
67177
67318
|
}
|
|
67178
67319
|
var zipSqlResponse_default = zipSqlResponse;
|
|
67179
67320
|
|
|
67321
|
+
// src/functions/convertMdToPdf.ts
|
|
67322
|
+
function getFilenameFromHeaders(resp, fallback) {
|
|
67323
|
+
const cd = resp.headers.get("content-disposition") || "";
|
|
67324
|
+
const matchStar = cd.match(/filename\*=([^;]+)/i);
|
|
67325
|
+
if (matchStar) {
|
|
67326
|
+
const value = trim_default(matchStar[1]);
|
|
67327
|
+
const parts = split_default(value, "''");
|
|
67328
|
+
if (parts.length === 2) {
|
|
67329
|
+
try {
|
|
67330
|
+
return decodeURIComponent(parts[1]);
|
|
67331
|
+
} catch {
|
|
67332
|
+
return parts[1];
|
|
67333
|
+
}
|
|
67334
|
+
}
|
|
67335
|
+
return trim_default(value, `'"`);
|
|
67336
|
+
}
|
|
67337
|
+
const match2 = cd.match(/filename="?([^";]+)"?/i);
|
|
67338
|
+
if (match2)
|
|
67339
|
+
return match2[1];
|
|
67340
|
+
return fallback || "document.pdf";
|
|
67341
|
+
}
|
|
67342
|
+
async function convertMdToPdf(markdown, options3 = {}, assetHeaders = {}) {
|
|
67343
|
+
const documentParserApiUrl = this.environment.lookup("documentParserApiUrl");
|
|
67344
|
+
const documentParserApiKey = this.environment.lookup("documentParserApiKey");
|
|
67345
|
+
if (!documentParserApiKey) {
|
|
67346
|
+
throw new Error("Document parser API key not found in environment");
|
|
67347
|
+
}
|
|
67348
|
+
if (!documentParserApiUrl) {
|
|
67349
|
+
throw new Error("Document parser API URL not found in environment");
|
|
67350
|
+
}
|
|
67351
|
+
if (!markdown || typeof markdown !== "string") {
|
|
67352
|
+
throw new AbortError("Markdown content is required and must be a string");
|
|
67353
|
+
}
|
|
67354
|
+
const requestBody = {
|
|
67355
|
+
markdown,
|
|
67356
|
+
options: options3,
|
|
67357
|
+
assetHeaders
|
|
67358
|
+
};
|
|
67359
|
+
return await pRetry(async () => {
|
|
67360
|
+
const response = await fetch(`${documentParserApiUrl}/md-to-pdf`, {
|
|
67361
|
+
method: "POST",
|
|
67362
|
+
headers: {
|
|
67363
|
+
Authorization: `Bearer ${documentParserApiKey}`,
|
|
67364
|
+
"Content-Type": "application/json",
|
|
67365
|
+
Accept: "application/pdf",
|
|
67366
|
+
"User-Agent": "truto"
|
|
67367
|
+
},
|
|
67368
|
+
body: JSON.stringify(requestBody)
|
|
67369
|
+
});
|
|
67370
|
+
if (!response.ok) {
|
|
67371
|
+
if (response.status === 429) {
|
|
67372
|
+
throw new Error("Rate limit exceeded");
|
|
67373
|
+
}
|
|
67374
|
+
if (response.status >= 500) {
|
|
67375
|
+
throw new Error(`Server error: ${response.status}`);
|
|
67376
|
+
}
|
|
67377
|
+
const errorText = await response.text();
|
|
67378
|
+
let errorMessage = `PDF conversion failed (${response.status})`;
|
|
67379
|
+
try {
|
|
67380
|
+
const errorData = JSON.parse(errorText);
|
|
67381
|
+
errorMessage = errorData.error || errorMessage;
|
|
67382
|
+
if (errorData.details) {
|
|
67383
|
+
errorMessage += `: ${errorData.details}`;
|
|
67384
|
+
}
|
|
67385
|
+
} catch {
|
|
67386
|
+
errorMessage += `: ${errorText}`;
|
|
67387
|
+
}
|
|
67388
|
+
throw new AbortError(errorMessage);
|
|
67389
|
+
}
|
|
67390
|
+
const contentType = response.headers.get("content-type");
|
|
67391
|
+
if (!contentType || !includes_default(contentType, "application/pdf")) {
|
|
67392
|
+
throw new AbortError(`Expected PDF but received: ${contentType}`);
|
|
67393
|
+
}
|
|
67394
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
67395
|
+
const filename = getFilenameFromHeaders(response, options3.filename);
|
|
67396
|
+
const blob2 = new Blob([arrayBuffer], { type: "application/pdf" });
|
|
67397
|
+
blob2.name = filename;
|
|
67398
|
+
return blob2;
|
|
67399
|
+
}, {
|
|
67400
|
+
retries: 5,
|
|
67401
|
+
maxTimeout: 30000,
|
|
67402
|
+
minTimeout: 2500,
|
|
67403
|
+
onFailedAttempt: (error) => {
|
|
67404
|
+
console.warn(`PDF conversion attempt ${error.attemptNumber} failed:`, error.message);
|
|
67405
|
+
}
|
|
67406
|
+
});
|
|
67407
|
+
}
|
|
67408
|
+
|
|
67180
67409
|
// src/registerJsonataExtensions.ts
|
|
67181
67410
|
function registerJsonataExtensions(expression) {
|
|
67182
67411
|
expression.registerFunction("dtFromIso", dtFromIso_default);
|
|
@@ -67202,6 +67431,7 @@ function registerJsonataExtensions(expression) {
|
|
|
67202
67431
|
expression.registerFunction("difference", function(arr1, arr2) {
|
|
67203
67432
|
return difference_default(arr1, arr2);
|
|
67204
67433
|
});
|
|
67434
|
+
expression.registerFunction("convertMdToPdf", convertMdToPdf);
|
|
67205
67435
|
expression.registerFunction("toNumber", toNumber_default2);
|
|
67206
67436
|
expression.registerFunction("jsonParse", jsonParse_default);
|
|
67207
67437
|
expression.registerFunction("getMimeType", getMimeType_default);
|
|
@@ -67280,4 +67510,4 @@ export {
|
|
|
67280
67510
|
trutoJsonata as default
|
|
67281
67511
|
};
|
|
67282
67512
|
|
|
67283
|
-
//# debugId=
|
|
67513
|
+
//# debugId=B3F4257EBAFAE85064756E2164756E21
|