@onereach/billing-shared 11.60.0 → 11.60.1-beta.3282.0
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/cjs/utils/build-csv-file-name.js +30 -0
- package/dist/cjs/utils/build-csv-file-name.js.map +1 -0
- package/dist/cjs/utils/build-csv-file-string.js +21 -0
- package/dist/cjs/utils/build-csv-file-string.js.map +1 -0
- package/dist/cjs/utils/escape-csv-value.js +14 -0
- package/dist/cjs/utils/escape-csv-value.js.map +1 -0
- package/dist/cjs/utils/format-date.js +25 -0
- package/dist/cjs/utils/format-date.js.map +1 -0
- package/dist/cjs/utils/index.js +4 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/esm/utils/build-csv-file-name.js +27 -0
- package/dist/esm/utils/build-csv-file-name.js.map +1 -0
- package/dist/esm/utils/build-csv-file-string.js +7 -0
- package/dist/esm/utils/build-csv-file-string.js.map +1 -0
- package/dist/esm/utils/escape-csv-value.js +11 -0
- package/dist/esm/utils/escape-csv-value.js.map +1 -0
- package/dist/esm/utils/format-date.js +22 -0
- package/dist/esm/utils/format-date.js.map +1 -0
- package/dist/esm/utils/index.js +4 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/types/utils/build-csv-file-name.d.ts +2 -0
- package/dist/types/utils/build-csv-file-name.d.ts.map +1 -0
- package/dist/types/utils/build-csv-file-string.d.ts +2 -0
- package/dist/types/utils/build-csv-file-string.d.ts.map +1 -0
- package/dist/types/utils/escape-csv-value.d.ts +2 -0
- package/dist/types/utils/escape-csv-value.d.ts.map +1 -0
- package/dist/types/utils/format-date.d.ts +2 -0
- package/dist/types/utils/format-date.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +4 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/utils/build-csv-file-name.ts +21 -0
- package/src/utils/build-csv-file-string.ts +11 -0
- package/src/utils/escape-csv-value.ts +13 -0
- package/src/utils/format-date.ts +52 -0
- package/src/utils/index.ts +4 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildCSVFileName = buildCSVFileName;
|
|
4
|
+
var format_date_1 = require("./format-date");
|
|
5
|
+
function buildCSVFileName(params) {
|
|
6
|
+
if (!params.dateFrom || !params.dateTo)
|
|
7
|
+
return 'unknown';
|
|
8
|
+
var parts = [
|
|
9
|
+
(0, format_date_1.formatDate)(new Date(params.dateFrom), 'YYYY-MM-DD'),
|
|
10
|
+
(0, format_date_1.formatDate)(new Date(params.dateTo), 'YYYY-MM-DD'),
|
|
11
|
+
];
|
|
12
|
+
if (params.customerId)
|
|
13
|
+
parts.push("customer-".concat(String(params.customerId)));
|
|
14
|
+
if (params.environmentId)
|
|
15
|
+
parts.push("env-".concat(String(params.environmentId)));
|
|
16
|
+
if (params.accountId)
|
|
17
|
+
parts.push("account-".concat(String(params.accountId)));
|
|
18
|
+
if (params.logicalCategory)
|
|
19
|
+
parts.push("logical-".concat(String(params.logicalCategory)));
|
|
20
|
+
if (params.businessCategory)
|
|
21
|
+
parts.push("business-".concat(String(params.businessCategory)));
|
|
22
|
+
if (params.flowId)
|
|
23
|
+
parts.push("flow-".concat(params.flowId));
|
|
24
|
+
if (params.dataSet)
|
|
25
|
+
parts.push("dataset-".concat(String(params.dataSet)));
|
|
26
|
+
if (params.completeDatasetGaps !== undefined)
|
|
27
|
+
parts.push("gaps-".concat(String(params.completeDatasetGaps)));
|
|
28
|
+
return parts.join('_');
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=build-csv-file-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-csv-file-name.js","sourceRoot":"","sources":["../../../src/utils/build-csv-file-name.ts"],"names":[],"mappings":";;AAEA,4CAkBC;AApBD,6CAA2C;AAE3C,SAAgB,gBAAgB,CAAC,MAA+B;IAE9D,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACzD,IAAM,KAAK,GAAa;QACtB,IAAA,wBAAU,EAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAgB,CAAC,EAAE,YAAY,CAAC;QAC3D,IAAA,wBAAU,EAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAc,CAAC,EAAE,YAAY,CAAC;KAC1D,CAAC;IAEF,IAAI,MAAM,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAY,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAE,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,cAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAE,CAAC,CAAC;IAC5E,IAAI,MAAM,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAW,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAE,CAAC,CAAC;IACxE,IAAI,MAAM,CAAC,eAAe;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAW,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAE,CAAC,CAAC;IACpF,IAAI,MAAM,CAAC,gBAAgB;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAY,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAE,CAAC,CAAC;IACvF,IAAI,MAAM,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,eAAQ,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAW,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAE,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,mBAAmB,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,eAAQ,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAE,CAAC,CAAC;IAEvG,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
+
if (ar || !(i in from)) {
|
|
5
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
+
ar[i] = from[i];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.buildCSVFileString = buildCSVFileString;
|
|
13
|
+
var escape_csv_value_1 = require("./escape-csv-value");
|
|
14
|
+
function buildCSVFileString(headers, data) {
|
|
15
|
+
var headerRow = headers.join(',');
|
|
16
|
+
var dataRows = data.map(function (entity) {
|
|
17
|
+
return headers.map(function (header) { return (0, escape_csv_value_1.escapeCsvValue)(entity[header]); }).join(',');
|
|
18
|
+
});
|
|
19
|
+
return __spreadArray([headerRow], dataRows, true).join('\n');
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=build-csv-file-string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-csv-file-string.js","sourceRoot":"","sources":["../../../src/utils/build-csv-file-string.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,gDAQC;AAVD,uDAAoD;AAEpD,SAAgB,kBAAkB,CAAC,OAAiB,EAAE,IAA+B;IACnF,IAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpC,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAC,MAAM;QAC/B,OAAA,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,IAAA,iCAAc,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAA9B,CAA8B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAAjE,CAAiE,CAClE,CAAC;IAEF,OAAO,eAAC,SAAS,GAAK,QAAQ,QAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.escapeCsvValue = escapeCsvValue;
|
|
4
|
+
function escapeCsvValue(value) {
|
|
5
|
+
if (value === null || value === undefined) {
|
|
6
|
+
return '';
|
|
7
|
+
}
|
|
8
|
+
var stringValue = String(value);
|
|
9
|
+
if (stringValue.includes(',') || stringValue.includes('"') || stringValue.includes('\n')) {
|
|
10
|
+
return "\"".concat(stringValue.replace(/"/g, '""'), "\"");
|
|
11
|
+
}
|
|
12
|
+
return stringValue;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=escape-csv-value.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escape-csv-value.js","sourceRoot":"","sources":["../../../src/utils/escape-csv-value.ts"],"names":[],"mappings":";;AAAA,wCAYC;AAZD,SAAgB,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAElC,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzF,OAAO,YAAI,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAG,CAAC;IAChD,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatDate = formatDate;
|
|
4
|
+
function formatDate(date, format) {
|
|
5
|
+
var d = date;
|
|
6
|
+
var tokens = {
|
|
7
|
+
'YYYY': d.getFullYear().toString(),
|
|
8
|
+
'YY': d.getFullYear().toString().slice(-2),
|
|
9
|
+
'MM': padZero(d.getMonth() + 1, 2),
|
|
10
|
+
'M': (d.getMonth() + 1).toString(),
|
|
11
|
+
'DD': padZero(d.getDate(), 2),
|
|
12
|
+
'D': d.getDate().toString(),
|
|
13
|
+
'hh': padZero(d.getHours(), 2),
|
|
14
|
+
'h': d.getHours().toString(),
|
|
15
|
+
'mm': padZero(d.getMinutes(), 2),
|
|
16
|
+
'm': d.getMinutes().toString(),
|
|
17
|
+
'ss': padZero(d.getSeconds(), 2),
|
|
18
|
+
's': d.getSeconds().toString(),
|
|
19
|
+
};
|
|
20
|
+
return format.replace(/YYYY|YY|MM|M|DD|D|hh|h|mm|m|ss|s/g, function (matched) { return tokens[matched]; });
|
|
21
|
+
}
|
|
22
|
+
function padZero(num, length) {
|
|
23
|
+
return num.toString().padStart(length, '0');
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=format-date.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-date.js","sourceRoot":"","sources":["../../../src/utils/format-date.ts"],"names":[],"mappings":";;AAqBA,gCAmBC;AAnBD,SAAgB,UAAU,CAAC,IAAU,EAAE,MAAc;IACnD,IAAM,CAAC,GAAG,IAAI,CAAC;IAEf,IAAM,MAAM,GAA+B;QACzC,MAAM,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QAClC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;QAClC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7B,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9B,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAChC,GAAG,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;QAC9B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAChC,GAAG,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC;IAEF,OAAO,MAAM,CAAC,OAAO,CAAC,mCAAmC,EAAE,UAAA,OAAO,IAAI,OAAA,MAAM,CAAC,OAAO,CAAC,EAAf,CAAe,CAAC,CAAC;AACzF,CAAC;AASD,SAAS,OAAO,CAAC,GAAW,EAAE,MAAc;IAC1C,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC"}
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -16,4 +16,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./math"), exports);
|
|
18
18
|
__exportStar(require("./date"), exports);
|
|
19
|
+
__exportStar(require("./format-date"), exports);
|
|
20
|
+
__exportStar(require("./escape-csv-value"), exports);
|
|
21
|
+
__exportStar(require("./build-csv-file-name"), exports);
|
|
22
|
+
__exportStar(require("./build-csv-file-string"), exports);
|
|
19
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,yCAAuB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,yCAAuB;AACvB,gDAA8B;AAC9B,qDAAmC;AACnC,wDAAsC;AACtC,0DAAwC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { formatDate } from './format-date';
|
|
2
|
+
export function buildCSVFileName(params) {
|
|
3
|
+
if (!params.dateFrom || !params.dateTo)
|
|
4
|
+
return 'unknown';
|
|
5
|
+
const parts = [
|
|
6
|
+
formatDate(new Date(params.dateFrom), 'YYYY-MM-DD'),
|
|
7
|
+
formatDate(new Date(params.dateTo), 'YYYY-MM-DD'),
|
|
8
|
+
];
|
|
9
|
+
if (params.customerId)
|
|
10
|
+
parts.push(`customer-${String(params.customerId)}`);
|
|
11
|
+
if (params.environmentId)
|
|
12
|
+
parts.push(`env-${String(params.environmentId)}`);
|
|
13
|
+
if (params.accountId)
|
|
14
|
+
parts.push(`account-${String(params.accountId)}`);
|
|
15
|
+
if (params.logicalCategory)
|
|
16
|
+
parts.push(`logical-${String(params.logicalCategory)}`);
|
|
17
|
+
if (params.businessCategory)
|
|
18
|
+
parts.push(`business-${String(params.businessCategory)}`);
|
|
19
|
+
if (params.flowId)
|
|
20
|
+
parts.push(`flow-${params.flowId}`);
|
|
21
|
+
if (params.dataSet)
|
|
22
|
+
parts.push(`dataset-${String(params.dataSet)}`);
|
|
23
|
+
if (params.completeDatasetGaps !== undefined)
|
|
24
|
+
parts.push(`gaps-${String(params.completeDatasetGaps)}`);
|
|
25
|
+
return parts.join('_');
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=build-csv-file-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-csv-file-name.js","sourceRoot":"","sources":["../../../src/utils/build-csv-file-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,UAAU,gBAAgB,CAAC,MAA+B;IAE9D,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACzD,MAAM,KAAK,GAAa;QACtB,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAgB,CAAC,EAAE,YAAY,CAAC;QAC3D,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAc,CAAC,EAAE,YAAY,CAAC;KAC1D,CAAC;IAEF,IAAI,MAAM,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5E,IAAI,MAAM,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACxE,IAAI,MAAM,CAAC,eAAe;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACpF,IAAI,MAAM,CAAC,gBAAgB;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACvF,IAAI,MAAM,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,mBAAmB,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAEvG,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { escapeCsvValue } from './escape-csv-value';
|
|
2
|
+
export function buildCSVFileString(headers, data) {
|
|
3
|
+
const headerRow = headers.join(',');
|
|
4
|
+
const dataRows = data.map((entity) => headers.map((header) => escapeCsvValue(entity[header])).join(','));
|
|
5
|
+
return [headerRow, ...dataRows].join('\n');
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=build-csv-file-string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-csv-file-string.js","sourceRoot":"","sources":["../../../src/utils/build-csv-file-string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,UAAU,kBAAkB,CAAC,OAAiB,EAAE,IAA+B;IACnF,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACnC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAClE,CAAC;IAEF,OAAO,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function escapeCsvValue(value) {
|
|
2
|
+
if (value === null || value === undefined) {
|
|
3
|
+
return '';
|
|
4
|
+
}
|
|
5
|
+
const stringValue = String(value);
|
|
6
|
+
if (stringValue.includes(',') || stringValue.includes('"') || stringValue.includes('\n')) {
|
|
7
|
+
return `"${stringValue.replace(/"/g, '""')}"`;
|
|
8
|
+
}
|
|
9
|
+
return stringValue;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=escape-csv-value.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escape-csv-value.js","sourceRoot":"","sources":["../../../src/utils/escape-csv-value.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAElC,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzF,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;IAChD,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export function formatDate(date, format) {
|
|
2
|
+
const d = date;
|
|
3
|
+
const tokens = {
|
|
4
|
+
'YYYY': d.getFullYear().toString(),
|
|
5
|
+
'YY': d.getFullYear().toString().slice(-2),
|
|
6
|
+
'MM': padZero(d.getMonth() + 1, 2),
|
|
7
|
+
'M': (d.getMonth() + 1).toString(),
|
|
8
|
+
'DD': padZero(d.getDate(), 2),
|
|
9
|
+
'D': d.getDate().toString(),
|
|
10
|
+
'hh': padZero(d.getHours(), 2),
|
|
11
|
+
'h': d.getHours().toString(),
|
|
12
|
+
'mm': padZero(d.getMinutes(), 2),
|
|
13
|
+
'm': d.getMinutes().toString(),
|
|
14
|
+
'ss': padZero(d.getSeconds(), 2),
|
|
15
|
+
's': d.getSeconds().toString(),
|
|
16
|
+
};
|
|
17
|
+
return format.replace(/YYYY|YY|MM|M|DD|D|hh|h|mm|m|ss|s/g, matched => tokens[matched]);
|
|
18
|
+
}
|
|
19
|
+
function padZero(num, length) {
|
|
20
|
+
return num.toString().padStart(length, '0');
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=format-date.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-date.js","sourceRoot":"","sources":["../../../src/utils/format-date.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,UAAU,CAAC,IAAU,EAAE,MAAc;IACnD,MAAM,CAAC,GAAG,IAAI,CAAC;IAEf,MAAM,MAAM,GAA+B;QACzC,MAAM,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QAClC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;QAClC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7B,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9B,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAChC,GAAG,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;QAC9B,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAChC,GAAG,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC;IAEF,OAAO,MAAM,CAAC,OAAO,CAAC,mCAAmC,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACzF,CAAC;AASD,SAAS,OAAO,CAAC,GAAW,EAAE,MAAc;IAC1C,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC"}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-csv-file-name.d.ts","sourceRoot":"","sources":["../../../src/utils/build-csv-file-name.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAkBxE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-csv-file-string.d.ts","sourceRoot":"","sources":["../../../src/utils/build-csv-file-string.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAQ7F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escape-csv-value.d.ts","sourceRoot":"","sources":["../../../src/utils/escape-csv-value.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAYrD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-date.d.ts","sourceRoot":"","sources":["../../../src/utils/format-date.ts"],"names":[],"mappings":"AAqBA,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAmB7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { formatDate } from './format-date';
|
|
2
|
+
|
|
3
|
+
export function buildCSVFileName(params: Record<string, unknown>): string {
|
|
4
|
+
|
|
5
|
+
if (!params.dateFrom || !params.dateTo) return 'unknown';
|
|
6
|
+
const parts: string[] = [
|
|
7
|
+
formatDate(new Date(params.dateFrom as Date), 'YYYY-MM-DD'),
|
|
8
|
+
formatDate(new Date(params.dateTo as Date), 'YYYY-MM-DD'),
|
|
9
|
+
];
|
|
10
|
+
|
|
11
|
+
if (params.customerId) parts.push(`customer-${String(params.customerId)}`);
|
|
12
|
+
if (params.environmentId) parts.push(`env-${String(params.environmentId)}`);
|
|
13
|
+
if (params.accountId) parts.push(`account-${String(params.accountId)}`);
|
|
14
|
+
if (params.logicalCategory) parts.push(`logical-${String(params.logicalCategory)}`);
|
|
15
|
+
if (params.businessCategory) parts.push(`business-${String(params.businessCategory)}`);
|
|
16
|
+
if (params.flowId) parts.push(`flow-${params.flowId}`);
|
|
17
|
+
if (params.dataSet) parts.push(`dataset-${String(params.dataSet)}`);
|
|
18
|
+
if (params.completeDatasetGaps !== undefined) parts.push(`gaps-${String(params.completeDatasetGaps)}`);
|
|
19
|
+
|
|
20
|
+
return parts.join('_');
|
|
21
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { escapeCsvValue } from './escape-csv-value';
|
|
2
|
+
|
|
3
|
+
export function buildCSVFileString(headers: string[], data: Record<string, unknown>[]): string {
|
|
4
|
+
const headerRow = headers.join(',');
|
|
5
|
+
|
|
6
|
+
const dataRows = data.map((entity) =>
|
|
7
|
+
headers.map((header) => escapeCsvValue(entity[header])).join(','),
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
return [headerRow, ...dataRows].join('\n');
|
|
11
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function escapeCsvValue(value: unknown): string {
|
|
2
|
+
if (value === null || value === undefined) {
|
|
3
|
+
return '';
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
const stringValue = String(value);
|
|
7
|
+
|
|
8
|
+
if (stringValue.includes(',') || stringValue.includes('"') || stringValue.includes('\n')) {
|
|
9
|
+
return `"${stringValue.replace(/"/g, '""')}"`;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return stringValue;
|
|
13
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formats a Date object into a string based on the provided format pattern.
|
|
3
|
+
*
|
|
4
|
+
* Supported tokens:
|
|
5
|
+
* - YYYY: 4-digit year (e.g., 2023)
|
|
6
|
+
* - YY: 2-digit year (e.g., 23)
|
|
7
|
+
* - MM: 2-digit month (01-12)
|
|
8
|
+
* - M: 1 or 2-digit month (1-12)
|
|
9
|
+
* - DD: 2-digit day of the month (01-31)
|
|
10
|
+
* - D: 1 or 2-digit day of the month (1-31)
|
|
11
|
+
* - hh: 2-digit hour in 24-hour format (00-23)
|
|
12
|
+
* - h: 1 or 2-digit hour in 24-hour format (0-23)
|
|
13
|
+
* - mm: 2-digit minutes (00-59)
|
|
14
|
+
* - m: 1 or 2-digit minutes (0-59)
|
|
15
|
+
* - ss: 2-digit seconds (00-59)
|
|
16
|
+
* - s: 1 or 2-digit seconds (0-59)
|
|
17
|
+
*
|
|
18
|
+
* @param date - The Date object to format.
|
|
19
|
+
* @param format - The format pattern string.
|
|
20
|
+
* @returns The formatted date string in local timezone.
|
|
21
|
+
*/
|
|
22
|
+
export function formatDate(date: Date, format: string): string {
|
|
23
|
+
const d = date;
|
|
24
|
+
|
|
25
|
+
const tokens: { [key: string]: string; } = {
|
|
26
|
+
'YYYY': d.getFullYear().toString(),
|
|
27
|
+
'YY': d.getFullYear().toString().slice(-2),
|
|
28
|
+
'MM': padZero(d.getMonth() + 1, 2),
|
|
29
|
+
'M': (d.getMonth() + 1).toString(),
|
|
30
|
+
'DD': padZero(d.getDate(), 2),
|
|
31
|
+
'D': d.getDate().toString(),
|
|
32
|
+
'hh': padZero(d.getHours(), 2),
|
|
33
|
+
'h': d.getHours().toString(),
|
|
34
|
+
'mm': padZero(d.getMinutes(), 2),
|
|
35
|
+
'm': d.getMinutes().toString(),
|
|
36
|
+
'ss': padZero(d.getSeconds(), 2),
|
|
37
|
+
's': d.getSeconds().toString(),
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
return format.replace(/YYYY|YY|MM|M|DD|D|hh|h|mm|m|ss|s/g, matched => tokens[matched]);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Pads a number with leading zeros to achieve the desired length.
|
|
45
|
+
*
|
|
46
|
+
* @param num - The number to pad.
|
|
47
|
+
* @param length - The desired string length.
|
|
48
|
+
* @returns The padded number as a string.
|
|
49
|
+
*/
|
|
50
|
+
function padZero(num: number, length: number): string {
|
|
51
|
+
return num.toString().padStart(length, '0');
|
|
52
|
+
}
|