@ingeno/pipedream-services 1.0.61 → 1.0.62

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.
Files changed (59) hide show
  1. package/README.md +39 -0
  2. package/dist/aws/aws-cost.d.ts +1 -1
  3. package/dist/aws/aws-cost.d.ts.map +1 -1
  4. package/dist/aws/aws-cost.js +26 -16
  5. package/dist/aws/aws-cost.js.map +1 -1
  6. package/dist/aws/commands.d.ts.map +1 -1
  7. package/dist/aws/commands.js +2 -3
  8. package/dist/aws/commands.js.map +1 -1
  9. package/dist/aws/execute-as.d.ts.map +1 -1
  10. package/dist/aws/execute-as.js +8 -12
  11. package/dist/aws/execute-as.js.map +1 -1
  12. package/dist/collections/collections-summary.d.ts +2 -2
  13. package/dist/collections/collections-summary.d.ts.map +1 -1
  14. package/dist/collections/collections-summary.js +1 -1
  15. package/dist/collections/collections-summary.js.map +1 -1
  16. package/dist/collections/collections-to-table.d.ts +2 -1
  17. package/dist/collections/collections-to-table.d.ts.map +1 -1
  18. package/dist/collections/collections-to-table.js +33 -98
  19. package/dist/collections/collections-to-table.js.map +1 -1
  20. package/dist/collections/converter.d.ts +3 -0
  21. package/dist/collections/converter.d.ts.map +1 -0
  22. package/dist/collections/converter.js +119 -0
  23. package/dist/collections/converter.js.map +1 -0
  24. package/dist/collections/index.d.ts +1 -0
  25. package/dist/collections/index.d.ts.map +1 -1
  26. package/dist/collections/index.js +1 -0
  27. package/dist/collections/index.js.map +1 -1
  28. package/dist/collections/types.d.ts +5 -5
  29. package/dist/collections/types.d.ts.map +1 -1
  30. package/dist/date/date-range.js +1 -1
  31. package/dist/date/date-range.js.map +1 -1
  32. package/dist/postgres/postgres.d.ts +1 -1
  33. package/dist/postgres/postgres.d.ts.map +1 -1
  34. package/dist/postgres/postgres.js +8 -6
  35. package/dist/postgres/postgres.js.map +1 -1
  36. package/dist/postgres/test-config.d.ts +16 -0
  37. package/dist/postgres/test-config.d.ts.map +1 -0
  38. package/dist/postgres/test-config.js +15 -0
  39. package/dist/postgres/test-config.js.map +1 -0
  40. package/dist/streams/list-stream.d.ts +1 -1
  41. package/dist/streams/list-stream.d.ts.map +1 -1
  42. package/dist/streams/list-stream.js +1 -3
  43. package/dist/streams/list-stream.js.map +1 -1
  44. package/dist/zoho-crm/module-processor.d.ts +2 -2
  45. package/dist/zoho-crm/module-processor.d.ts.map +1 -1
  46. package/dist/zoho-crm/module-processor.js +28 -24
  47. package/dist/zoho-crm/module-processor.js.map +1 -1
  48. package/dist/zoho-crm/zoho-auth.d.ts.map +1 -1
  49. package/dist/zoho-crm/zoho-auth.js +8 -8
  50. package/dist/zoho-crm/zoho-auth.js.map +1 -1
  51. package/dist/zoho-crm/zoho-crm-client.d.ts +4 -4
  52. package/dist/zoho-crm/zoho-crm-client.d.ts.map +1 -1
  53. package/dist/zoho-crm/zoho-crm-client.js +37 -37
  54. package/dist/zoho-crm/zoho-crm-client.js.map +1 -1
  55. package/dist/zoho-crm/zoho-crm-fetcher.d.ts +1 -1
  56. package/dist/zoho-crm/zoho-crm-fetcher.d.ts.map +1 -1
  57. package/dist/zoho-crm/zoho-crm-fetcher.js +5 -5
  58. package/dist/zoho-crm/zoho-crm-fetcher.js.map +1 -1
  59. package/package.json +11 -1
package/README.md CHANGED
@@ -72,6 +72,21 @@ pnpm build
72
72
  # Run tests
73
73
  pnpm test
74
74
 
75
+ # Run tests with coverage
76
+ pnpm test:coverage
77
+
78
+ # Run tests in watch mode
79
+ pnpm test:watch
80
+
81
+ # Run tests with UI
82
+ pnpm test:ui
83
+
84
+ # Run tests with coverage and UI
85
+ pnpm test:coverage:ui
86
+
87
+ # Run tests with coverage and open report
88
+ pnpm test:coverage:open
89
+
75
90
  # Lint code
76
91
  pnpm lint
77
92
 
@@ -79,6 +94,30 @@ pnpm lint
79
94
  pnpm pub
80
95
  ```
81
96
 
97
+ ## Code Coverage
98
+
99
+ The project includes comprehensive code coverage reporting with:
100
+
101
+ - **HTML Reports**: Navigate to `./coverage/index.html` after running `pnpm test:coverage`
102
+ - **Multiple Formats**: Text, HTML, JSON, and JSON-summary reports
103
+ - **Coverage Thresholds**: 70% minimum for branches, functions, lines, and statements
104
+ - **Detailed Analysis**: Line-by-line coverage information
105
+ - **Visual Interface**: Use `pnpm test:coverage:ui` for interactive coverage exploration
106
+
107
+ ### Current Coverage Highlights
108
+
109
+ - **Collections Module**: 90.32% statement coverage with excellent test coverage
110
+ - **Converter Module**: 93.18% statement coverage with comprehensive type conversion tests
111
+ - **Collections-to-Table**: 100% statement coverage with complete edge case testing
112
+
113
+ ### Coverage Configuration
114
+
115
+ Coverage is configured to:
116
+ - Use V8 coverage provider for accurate reporting
117
+ - Exclude test files, type definitions, and index files
118
+ - Generate reports in the `./coverage` directory
119
+ - Enforce quality thresholds to maintain code quality
120
+
82
121
  ## Architecture
83
122
 
84
123
  This package contains only production code and is designed to be:
@@ -1,4 +1,4 @@
1
- import { DateRange } from '../date/date-range.js';
1
+ import type { DateRange } from '../date/date-range.js';
2
2
  export interface AwsCostData {
3
3
  date: string;
4
4
  account_id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"aws-cost.d.ts","sourceRoot":"","sources":["../../src/aws/aws-cost.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAa,MAAM,uBAAuB,CAAA;AAE5D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,WAAW,EAAE,CAAA;IAC7B,QAAQ,EAAE,UAAU,EAAE,CAAA;CACvB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsI;IAE3J,YAAY,IAAI,SAAS;IAInB,cAAc,CAAC,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,uBAAuB,CAAC;YAoCjE,eAAe;YAmBf,WAAW;CAuC1B"}
1
+ {"version":3,"file":"aws-cost.d.ts","sourceRoot":"","sources":["../../src/aws/aws-cost.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEtD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,WAAW,EAAE,CAAA;IAC7B,QAAQ,EAAE,UAAU,EAAE,CAAA;CACvB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAQ3B;IAEM,YAAY,IAAI,SAAS;IAInB,cAAc,CAAC,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,uBAAuB,CAAC;YA0CjE,eAAe;YAmBf,WAAW;CAqC1B"}
@@ -2,23 +2,32 @@ import { CostExplorerClient, GetCostAndUsageCommand } from '@aws-sdk/client-cost
2
2
  import { OrganizationsClient, ListAccountsCommand } from '@aws-sdk/client-organizations';
3
3
  import { monthsAgo } from '../date/date-range.js';
4
4
  export class AwsCostService {
5
- costMetrics = ['BlendedCost', 'UnblendedCost', 'UsageQuantity', 'NormalizedUsageAmount', 'AmortizedCost', 'NetUnblendedCost', 'NetAmortizedCost'];
5
+ costMetrics = [
6
+ 'BlendedCost',
7
+ 'UnblendedCost',
8
+ 'UsageQuantity',
9
+ 'NormalizedUsageAmount',
10
+ 'AmortizedCost',
11
+ 'NetUnblendedCost',
12
+ 'NetAmortizedCost',
13
+ ];
6
14
  getDateRange() {
7
15
  return monthsAgo(1);
8
16
  }
9
17
  async getCollections(credentials) {
10
18
  const costExplorer = new CostExplorerClient({
11
19
  credentials,
12
- region: 'us-east-1'
20
+ region: 'us-east-1',
13
21
  });
14
22
  const organizations = new OrganizationsClient({
15
23
  credentials,
16
- region: 'us-east-1'
24
+ region: 'us-east-1',
17
25
  });
18
26
  const dateRange = this.getDateRange();
19
27
  const accounts = await this.listAWSAccounts(organizations);
20
28
  const costs = await this.getAwsCosts(costExplorer, dateRange);
21
- const costsAndUsages = costs.map(month => month.Groups?.map((group) => {
29
+ const costsAndUsages = costs
30
+ .map((month) => month.Groups?.map((group) => {
22
31
  const date = month.TimePeriod?.Start || '';
23
32
  const account_id = group.Keys?.[0] || '';
24
33
  const service = group.Keys?.[1] || '';
@@ -28,10 +37,11 @@ export class AwsCostService {
28
37
  service,
29
38
  ...this.costMetrics.reduce((acc, metric) => ({
30
39
  ...acc,
31
- [metric]: group.Metrics?.[metric]?.Amount || '0'
32
- }), {})
40
+ [metric]: group.Metrics?.[metric]?.Amount || '0',
41
+ }), {}),
33
42
  };
34
- }) || []).flat();
43
+ }) || [])
44
+ .flat();
35
45
  return { costsAndUsages, accounts };
36
46
  }
37
47
  async listAWSAccounts(organizations) {
@@ -41,7 +51,7 @@ export class AwsCostService {
41
51
  do {
42
52
  const command = new ListAccountsCommand({ NextToken: nextToken });
43
53
  const data = await organizations.send(command);
44
- accounts = accounts.concat(data.Accounts || []);
54
+ accounts = accounts.concat(data.Accounts != null || []);
45
55
  nextToken = data.NextToken;
46
56
  } while (nextToken);
47
57
  return accounts;
@@ -52,34 +62,34 @@ export class AwsCostService {
52
62
  }
53
63
  }
54
64
  async getAwsCosts(costExplorer, dateRange) {
55
- const paramMetrics = this.costMetrics.map(metric => metric.replace(/([a-z])([A-Z])/g, '$1_$2').toUpperCase());
65
+ const paramMetrics = this.costMetrics.map((metric) => metric.replace(/([a-z])([A-Z])/g, '$1_$2').toUpperCase());
56
66
  const input = {
57
67
  TimePeriod: {
58
68
  Start: dateRange.startDate,
59
- End: dateRange.endDate
69
+ End: dateRange.endDate,
60
70
  },
61
71
  Granularity: 'DAILY',
62
72
  Metrics: paramMetrics,
63
73
  GroupBy: [
64
74
  {
65
75
  Type: 'DIMENSION',
66
- Key: 'LINKED_ACCOUNT'
76
+ Key: 'LINKED_ACCOUNT',
67
77
  },
68
78
  {
69
79
  Type: 'DIMENSION',
70
- Key: 'SERVICE'
71
- }
72
- ]
80
+ Key: 'SERVICE',
81
+ },
82
+ ],
73
83
  };
74
84
  let allResults = [];
75
85
  let nextPageToken;
76
86
  do {
77
87
  const command = new GetCostAndUsageCommand({
78
88
  ...input,
79
- NextPageToken: nextPageToken
89
+ NextPageToken: nextPageToken,
80
90
  });
81
91
  const data = await costExplorer.send(command);
82
- allResults = allResults.concat(data.ResultsByTime || []);
92
+ allResults = allResults.concat(data.ResultsByTime != null || []);
83
93
  nextPageToken = data.NextPageToken;
84
94
  } while (nextPageToken);
85
95
  return allResults;
@@ -1 +1 @@
1
- {"version":3,"file":"aws-cost.js","sourceRoot":"","sources":["../../src/aws/aws-cost.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aws-cost.js","sourceRoot":"","sources":["../../src/aws/aws-cost.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/aws/commands.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,GAAG,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,eAAO,MAAM,iBAAiB,GAAI,OAAO,GAAG,KAAG,OAS9C,CAAA;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAM;gBAET,OAAO,EAAE,sBAAsB;IAO9B,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAqChF"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/aws/commands.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,GAAG,CAAA;IACX,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAGD,eAAO,MAAM,iBAAiB,GAAI,OAAO,GAAG,KAAG,OAS9C,CAAA;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAK;gBAER,OAAO,EAAE,sBAAsB;IAO9B,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAqChF"}
@@ -1,6 +1,5 @@
1
- import pRetry from 'p-retry';
2
1
  import pLimiter from 'p-limit';
3
- import { AbortError } from 'p-retry';
2
+ import pRetry, { AbortError } from 'p-retry';
4
3
  // Helper function to detect throttling errors
5
4
  export const isThrottlingError = (error) => {
6
5
  return (error.name === 'ThrottlingException' ||
@@ -20,7 +19,7 @@ export class CommandExecutor {
20
19
  }
21
20
  async executeCommand(command, operationName) {
22
21
  return this.limiter(async () => {
23
- return pRetry(async (attemptNumber) => {
22
+ return await pRetry(async (attemptNumber) => {
24
23
  try {
25
24
  if (attemptNumber > 1) {
26
25
  console.log(`🔄 Retrying ${operationName} (attempt ${attemptNumber})`);
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/aws/commands.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,QAAQ,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAOrC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAU,EAAW,EAAE;IACvD,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,qBAAqB;QACpC,KAAK,CAAC,IAAI,KAAK,0BAA0B;QACzC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC;QAClC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC;QACrC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC;QAC5C,KAAK,CAAC,SAAS,EAAE,cAAc,KAAK,GAAG,CACxC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,OAAO,eAAe;IAClB,MAAM,CAAM;IACZ,OAAO,CAAM;IAErB,YAAY,OAA+B;QACzC,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAEhD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAEM,KAAK,CAAC,cAAc,CAAI,OAAY,EAAE,aAAqB;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC7B,OAAO,MAAM,CACX,KAAK,EAAE,aAAa,EAAE,EAAE;gBACtB,IAAI,CAAC;oBACH,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;wBACtB,OAAO,CAAC,GAAG,CAAC,eAAe,aAAa,aAAa,aAAa,GAAG,CAAC,CAAA;oBACxE,CAAC;oBACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBAChD,OAAO,QAAQ,CAAA;gBACjB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC7B,OAAO,CAAC,GAAG,CACT,8BAA8B,aAAa,aAAa,aAAa,4BAA4B,CAClG,CAAA;wBACD,MAAM,KAAK,CAAA,CAAC,iCAAiC;oBAC/C,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,UAAU,CAAC,KAAc,CAAC,CAAA;oBACtC,CAAC;gBACH,CAAC;YACH,CAAC,EACD;gBACE,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,KAAK;gBACjB,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;oBACzB,OAAO,CAAC,GAAG,CACT,WAAW,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,aAC5D,QAAQ,aAAa,wBAAyB,KAAa,CAAC,OAAO,IAAI,CACxE,CAAA;gBACH,CAAC;aACF,CACF,CAAA;QACH,CAAC,CACA,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/aws/commands.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,SAAS,CAAA;AAC9B,OAAO,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAO5C,8CAA8C;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAU,EAAW,EAAE;IACvD,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,qBAAqB;QACpC,KAAK,CAAC,IAAI,KAAK,0BAA0B;QACzC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC;QAClC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC;QACrC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC;QAC5C,KAAK,CAAC,SAAS,EAAE,cAAc,KAAK,GAAG,CACxC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,OAAO,eAAe;IAClB,MAAM,CAAK;IACX,OAAO,CAAK;IAEpB,YAAY,OAA+B;QACzC,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,EAAE,EAAE,GAAG,OAAO,CAAA;QAE/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IACzC,CAAC;IAEM,KAAK,CAAC,cAAc,CAAI,OAAY,EAAE,aAAqB;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC7B,OAAO,MAAM,MAAM,CACjB,KAAK,EAAE,aAAa,EAAE,EAAE;gBACtB,IAAI,CAAC;oBACH,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;wBACtB,OAAO,CAAC,GAAG,CAAC,eAAe,aAAa,aAAa,aAAa,GAAG,CAAC,CAAA;oBACxE,CAAC;oBACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBAChD,OAAO,QAAQ,CAAA;gBACjB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC7B,OAAO,CAAC,GAAG,CACT,8BAA8B,aAAa,aAAa,aAAa,4BAA4B,CAClG,CAAA;wBACD,MAAM,KAAK,CAAA,CAAC,iCAAiC;oBAC/C,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,UAAU,CAAC,KAAc,CAAC,CAAA;oBACtC,CAAC;gBACH,CAAC;YACH,CAAC,EACD;gBACE,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,KAAK;gBACjB,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;oBACzB,OAAO,CAAC,GAAG,CACT,WAAW,KAAK,CAAC,aAAa,IAC5B,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,aAC5B,QAAQ,aAAa,wBAAyB,KAAa,CAAC,OAAO,IAAI,CACxE,CAAA;gBACH,CAAC;aACF,CACF,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"execute-as.d.ts","sourceRoot":"","sources":["../../src/aws/execute-as.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAA;AAE1F,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAC3C,WAAW,EAAE,qBAAqB,GAAG,CAAC,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAA;CAC5E;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,qBAAqB,CAAA;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,6BAA6B,GAAI,SAAS,iBAAiB,KAAG,6BAc1E,CAAA;AAED,eAAO,MAAM,0BAA0B,GACrC,SAAS,iBAAiB,KACzB,gBAUF,CAAA;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,qBAAqB,CAAA;IACtC,kCAAkC,CAAC,EAAE,OAAO,CAAA;IAC5C,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,2BAA2B,KAAG,gBAAgB,EA2B3F,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,OAAO,EAAE,gBAAgB,EACzB,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,GACxE,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAED,eAAO,MAAM,YAAY,GAAU,CAAC,EAClC,SAAS,gBAAgB,EAAE,EAC3B,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,KACxE,OAAO,CAAC,CAAC,EAAE,CAA0D,CAAA"}
1
+ {"version":3,"file":"execute-as.d.ts","sourceRoot":"","sources":["../../src/aws/execute-as.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAA;AAE1F,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAC3C,WAAW,EAAE,qBAAqB,GAAG,CAAC,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAA;CAC5E;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,qBAAqB,CAAA;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,6BAA6B,GAAI,SAAS,iBAAiB,KAAG,6BAc1E,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,SAAS,iBAAiB,KAAG,gBAUvE,CAAA;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,qBAAqB,CAAA;IACtC,kCAAkC,CAAC,EAAE,OAAO,CAAA;IAC5C,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,2BAA2B,KAAG,gBAAgB,EAiC3F,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,OAAO,EAAE,gBAAgB,EACzB,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,GACxE,OAAO,CAAC,CAAC,CAAC,CAWZ;AAED,eAAO,MAAM,YAAY,GAAU,CAAC,EAClC,SAAS,gBAAgB,EAAE,EAC3B,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,KACxE,OAAO,CAAC,CAAC,EAAE,CAA4E,CAAA"}
@@ -17,17 +17,17 @@ export const assumeRoleExecutionContext = (options) => {
17
17
  const { accountId } = options;
18
18
  const tempCredentialsProvider = assumeRoleCredentialsProvider(options);
19
19
  return {
20
- accountId: accountId,
20
+ accountId,
21
21
  credentials: async () => {
22
22
  return await tempCredentialsProvider();
23
- }
23
+ },
24
24
  };
25
25
  };
26
26
  export const allExecutionContexts = (options) => {
27
- const { mainAccountId, mainCredentials, includeMainAccountExecutionContext = true, accountIds, roleNameToAssume } = options;
27
+ const { mainAccountId, mainCredentials, includeMainAccountExecutionContext = true, accountIds, roleNameToAssume, } = options;
28
28
  const mainExecutionContext = {
29
29
  accountId: mainAccountId,
30
- credentials: mainCredentials
30
+ credentials: mainCredentials,
31
31
  };
32
32
  const assumedExecutionContexts = accountIds.map((accountId) => ({
33
33
  accountId: mainAccountId,
@@ -40,7 +40,7 @@ export const allExecutionContexts = (options) => {
40
40
  clientConfig: { credentials: mainCredentials },
41
41
  });
42
42
  return await tempCredentialsProvider();
43
- }
43
+ },
44
44
  }));
45
45
  const result = [
46
46
  ...(includeMainAccountExecutionContext ? [mainExecutionContext] : []),
@@ -68,12 +68,8 @@ export const allExecutionContexts = (options) => {
68
68
  */
69
69
  export async function executeAs(options, fn) {
70
70
  try {
71
- const accountId = typeof options.accountId === 'function'
72
- ? await options.accountId()
73
- : options.accountId;
74
- const credentials = typeof options.credentials === 'function'
75
- ? await options.credentials()
76
- : options.credentials;
71
+ const accountId = typeof options.accountId === 'function' ? await options.accountId() : options.accountId;
72
+ const credentials = typeof options.credentials === 'function' ? await options.credentials() : options.credentials;
77
73
  return await fn(accountId, credentials);
78
74
  }
79
75
  catch (error) {
@@ -81,5 +77,5 @@ export async function executeAs(options, fn) {
81
77
  throw error;
82
78
  }
83
79
  }
84
- export const executeAllAs = async (options, fn) => Promise.all(options.map((opt) => executeAs(opt, fn)));
80
+ export const executeAllAs = async (options, fn) => await Promise.all(options.map(async (opt) => await executeAs(opt, fn)));
85
81
  //# sourceMappingURL=execute-as.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute-as.js","sourceRoot":"","sources":["../../src/aws/execute-as.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute-as.js","sourceRoot":"","sources":["../../src/aws/execute-as.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { Collection } from "./types.js";
2
- export declare const collectionSummary: (collections: Array<Collection>) => void;
1
+ import type { Collection } from './types.js';
2
+ export declare const collectionSummary: (collections: Collection[]) => void;
3
3
  //# sourceMappingURL=collections-summary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collections-summary.d.ts","sourceRoot":"","sources":["../../src/collections/collections-summary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,iBAAiB,GAAI,aAAa,KAAK,CAAC,UAAU,CAAC,SAK/D,CAAA"}
1
+ {"version":3,"file":"collections-summary.d.ts","sourceRoot":"","sources":["../../src/collections/collections-summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,eAAO,MAAM,iBAAiB,GAAI,aAAa,UAAU,EAAE,SAK1D,CAAA"}
@@ -1,5 +1,5 @@
1
1
  export const collectionSummary = (collections) => {
2
- collections.forEach(collection => {
2
+ collections.forEach((collection) => {
3
3
  console.log(`${collection.schema.name} - ${collection.objects.length} objects`);
4
4
  console.log(`${collection.schema.name} - sample object: ${JSON.stringify(collection.objects[0], null, 2)}`);
5
5
  });
@@ -1 +1 @@
1
- {"version":3,"file":"collections-summary.js","sourceRoot":"","sources":["../../src/collections/collections-summary.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,WAA8B,EAAE,EAAE;IAClE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAA;QAC/E,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,qBAAqB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;IAC7G,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"collections-summary.js","sourceRoot":"","sources":["../../src/collections/collections-summary.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,WAAyB,EAAE,EAAE;IAC7D,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACjC,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAA;QAC/E,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,qBAAqB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;IAC7G,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
- import { Collection } from "./types.js";
1
+ import type { Collection } from './types.js';
2
+ export declare const deepFind: (obj: any, path: string) => any;
2
3
  export declare const collectionsToTables: (collections: Collection[]) => {
3
4
  schema: import("./types.js").CollectionSchema;
4
5
  rows: any[][];
@@ -1 +1 @@
1
- {"version":3,"file":"collections-to-table.d.ts","sourceRoot":"","sources":["../../src/collections/collections-to-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAU,MAAM,YAAY,CAAA;AAE/C,eAAO,MAAM,mBAAmB,GAAI,aAAa,UAAU,EAAE;;;GAoG5D,CAAA"}
1
+ {"version":3,"file":"collections-to-table.d.ts","sourceRoot":"","sources":["../../src/collections/collections-to-table.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,YAAY,CAAA;AAGpD,eAAO,MAAM,QAAQ,GAAI,KAAK,GAAG,EAAE,MAAM,MAAM,KAAG,GAMjD,CAAA;AA6BD,eAAO,MAAM,mBAAmB,GAAI,aAAa,UAAU,EAAE;;;GAE5D,CAAA"}
@@ -1,101 +1,36 @@
1
- export const collectionsToTables = (collections) => {
2
- const isString = (value) => typeof value === 'string' || value instanceof String;
3
- const convert = (column, value) => {
4
- const type = column.type || 'string';
5
- let result = value;
6
- try {
7
- // Handle JSON type specifically - serialize for PostgreSQL
8
- if (type === 'json') {
9
- if (value === undefined || value === null) {
10
- result = null;
11
- }
12
- else if (isString(value)) {
13
- // If it's a string, validate it's valid JSON
14
- try {
15
- JSON.parse(String(value));
16
- result = String(value); // Keep as valid JSON string
17
- }
18
- catch (jsonError) {
19
- console.error(`Invalid JSON string for column "${column.name}": ${value}`);
20
- result = null;
21
- }
22
- }
23
- else {
24
- // If it's an object/array, serialize to JSON string for PostgreSQL
25
- try {
26
- result = JSON.stringify(value);
27
- }
28
- catch (jsonError) {
29
- console.error(`Failed to serialize value to JSON for column "${column.name}": ${value}`);
30
- result = null;
31
- }
32
- }
33
- }
34
- else if (isString(value) && type !== 'string') {
35
- result = value.trim();
36
- result = result === '' ? undefined : result;
37
- if (['datetime', 'date'].includes(type)) {
38
- try {
39
- const dateObj = new Date(result);
40
- if (isNaN(dateObj.getTime())) {
41
- console.warn(`Invalid date "${result}" for column "${column.name}", setting to null`);
42
- result = null;
43
- }
44
- else {
45
- // Convert to ISO string for PostgreSQL compatibility
46
- result = dateObj.toISOString();
47
- }
48
- }
49
- catch (dateError) {
50
- console.error(`Date parsing error for "${result}" in column "${column.name}": ${dateError}`);
51
- result = null;
52
- }
53
- }
54
- else if (['number', 'currency'].includes(type)) {
55
- result = parseFloat(result);
56
- }
57
- else if ('bool' === type) {
58
- result = ['true', 'yes'].includes(result);
59
- }
60
- }
61
- }
62
- catch (error) {
63
- console.error(`Error while converting "${value}" to typed value for column "${column.name}" with type ${type}: ${error}`);
64
- result = undefined;
65
- }
66
- return result;
67
- };
68
- const deepFind = (obj, path) => {
69
- var paths = path.split('.'), current = obj, i;
70
- for (i = 0; i < paths.length; ++i) {
71
- if (current[paths[i]] == undefined) {
72
- return undefined;
73
- }
74
- else {
75
- current = current[paths[i]];
76
- }
77
- }
78
- return current;
79
- };
80
- const objectsToTable = (objects, columns) => {
81
- const rows = objects.map((element, index) => columns.map(column => {
82
- let value;
83
- // Handle transform function if present
84
- if (column.transform) {
85
- value = column.transform(element);
86
- }
87
- else {
88
- value = deepFind(element, column.path || column.name);
89
- }
90
- return convert(column, value);
91
- }));
92
- return rows;
93
- };
94
- const result = collections.map(collection => {
95
- const { objects, schema } = collection;
96
- const rows = objectsToTable(objects, schema.columns);
97
- return { schema, rows };
1
+ import { convert } from './converter.js';
2
+ // Path Navigation Functions
3
+ export const deepFind = (obj, path) => {
4
+ if (!path || !obj)
5
+ return undefined;
6
+ return path.split('.').reduce((current, key) => {
7
+ return current && key in current ? current[key] : undefined;
8
+ }, obj);
9
+ };
10
+ // Value Extraction Functions
11
+ const extractValue = (element, column) => {
12
+ if (column.transform != null) {
13
+ return column.transform(element);
14
+ }
15
+ return deepFind(element, column.path || column.name);
16
+ };
17
+ const convertRowValues = (element, columns) => {
18
+ return columns.map((column) => {
19
+ const rawValue = extractValue(element, column);
20
+ return convert(column, rawValue);
98
21
  });
99
- return result;
22
+ };
23
+ // Table Conversion Functions
24
+ const objectsToTable = (objects, columns) => {
25
+ return objects.map((element) => convertRowValues(element, columns));
26
+ };
27
+ const convertCollectionToTable = (collection) => {
28
+ const { objects, schema } = collection;
29
+ const rows = objectsToTable(objects, schema.columns);
30
+ return { schema, rows };
31
+ };
32
+ // Main Export Function
33
+ export const collectionsToTables = (collections) => {
34
+ return collections.map(convertCollectionToTable);
100
35
  };
101
36
  //# sourceMappingURL=collections-to-table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"collections-to-table.js","sourceRoot":"","sources":["../../src/collections/collections-to-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collections-to-table.js","sourceRoot":"","sources":["../../src/collections/collections-to-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAIxC,4BAA4B;AAC5B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAQ,EAAE,IAAY,EAAO,EAAE;IACtD,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAEnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QAC7C,OAAO,OAAO,IAAI,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7D,CAAC,EAAE,GAAG,CAAC,CAAA;AACT,CAAC,CAAA;AAED,6BAA6B;AAC7B,MAAM,YAAY,GAAG,CAAC,OAAY,EAAE,MAAc,EAAO,EAAE;IACzD,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;AACtD,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,OAAY,EAAE,OAAiB,EAAS,EAAE;IAClE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC9C,OAAO,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,6BAA6B;AAC7B,MAAM,cAAc,GAAG,CAAC,OAAc,EAAE,OAAiB,EAAW,EAAE;IACpE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;AACrE,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,CAAC,UAAsB,EAAE,EAAE;IAC1D,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;IACtC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IACpD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AACzB,CAAC,CAAA;AAED,uBAAuB;AACvB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAAyB,EAAE,EAAE;IAC/D,OAAO,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;AAClD,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Column } from './types.js';
2
+ export declare const convert: (column: Column, value: any) => any;
3
+ //# sourceMappingURL=converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/collections/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,YAAY,CAAA;AA2FpD,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,EAAE,OAAO,GAAG,KAAG,GAiDpD,CAAA"}
@@ -0,0 +1,119 @@
1
+ // Type Guards
2
+ const isString = (value) => typeof value === 'string' || value instanceof String;
3
+ const isNullOrUndefined = (value) => value === null || value === undefined;
4
+ const isDateType = (type) => ['datetime', 'date'].includes(type);
5
+ const isNumericType = (type) => ['number', 'currency'].includes(type);
6
+ // JSON Conversion Functions
7
+ const validateAndReturnJsonString = (value, columnName) => {
8
+ try {
9
+ JSON.parse(value);
10
+ return value;
11
+ }
12
+ catch (error) {
13
+ console.error(`Invalid JSON string for column "${columnName}": ${value}`);
14
+ return null;
15
+ }
16
+ };
17
+ const serializeToJson = (value, columnName) => {
18
+ try {
19
+ return JSON.stringify(value);
20
+ }
21
+ catch (error) {
22
+ console.error(`Failed to serialize value to JSON for column "${columnName}": ${value}`);
23
+ return null;
24
+ }
25
+ };
26
+ const convertJsonValue = (value, columnName) => {
27
+ if (isString(value)) {
28
+ return validateAndReturnJsonString(value, columnName);
29
+ }
30
+ return serializeToJson(value, columnName);
31
+ };
32
+ // Date Conversion Functions
33
+ const parseDate = (value, columnName) => {
34
+ try {
35
+ const dateObj = new Date(value);
36
+ if (isNaN(dateObj.getTime())) {
37
+ console.warn(`Invalid date "${value}" for column "${columnName}", setting to null`);
38
+ return null;
39
+ }
40
+ return dateObj;
41
+ }
42
+ catch (error) {
43
+ console.error(`Date parsing error for "${value}" in column "${columnName}": ${error}`);
44
+ return null;
45
+ }
46
+ };
47
+ const convertDateValue = (value, columnName) => {
48
+ // Handle Date objects - return as-is
49
+ if (value instanceof Date) {
50
+ return value;
51
+ }
52
+ // Handle non-string values
53
+ if (typeof value === 'number') {
54
+ // For numeric values, return null to avoid timestamp errors
55
+ console.warn(`Numeric value "${value}" found for date column "${columnName}", setting to null`);
56
+ return null;
57
+ }
58
+ if (!isString(value)) {
59
+ console.warn(`Non-string value "${value}" found for date column "${columnName}", setting to null`);
60
+ return null;
61
+ }
62
+ return parseDate(value, columnName);
63
+ };
64
+ // Numeric Conversion Functions
65
+ const convertNumericValue = (value) => {
66
+ return parseFloat(value);
67
+ };
68
+ // Boolean Conversion Functions
69
+ const convertBooleanValue = (value) => {
70
+ return ['true', 'yes'].includes(value.toLowerCase());
71
+ };
72
+ // String Preprocessing
73
+ const preprocessStringValue = (value) => {
74
+ const trimmed = value.trim();
75
+ return trimmed === '' ? undefined : trimmed;
76
+ };
77
+ // Main Conversion Function
78
+ export const convert = (column, value) => {
79
+ const type = column.type || 'string';
80
+ // Early return for null/undefined
81
+ if (isNullOrUndefined(value)) {
82
+ return value;
83
+ }
84
+ try {
85
+ // Handle JSON type
86
+ if (type === 'json') {
87
+ return convertJsonValue(value, column.name);
88
+ }
89
+ // Handle string types that need conversion
90
+ if (isString(value) && type !== 'string') {
91
+ const processedValue = preprocessStringValue(value);
92
+ // If preprocessing results in undefined, return it (empty string case)
93
+ if (processedValue === undefined) {
94
+ return undefined;
95
+ }
96
+ if (isDateType(type)) {
97
+ return convertDateValue(processedValue, column.name);
98
+ }
99
+ if (isNumericType(type)) {
100
+ return convertNumericValue(processedValue);
101
+ }
102
+ if (type === 'bool') {
103
+ return convertBooleanValue(processedValue);
104
+ }
105
+ return processedValue;
106
+ }
107
+ // Handle date types for non-string values (Date objects, numbers, etc.)
108
+ if (isDateType(type)) {
109
+ return convertDateValue(value, column.name);
110
+ }
111
+ // Return value as-is for other cases
112
+ return value;
113
+ }
114
+ catch (error) {
115
+ console.error(`Error converting "${value}" to ${type} for column "${column.name}": ${error}`);
116
+ return undefined;
117
+ }
118
+ };
119
+ //# sourceMappingURL=converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/collections/converter.ts"],"names":[],"mappings":"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"}