@ingeno/pipedream-services 1.0.55
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/LICENSE +21 -0
- package/README.md +102 -0
- package/dist/aws/apn/index.d.ts +3 -0
- package/dist/aws/apn/index.d.ts.map +1 -0
- package/dist/aws/apn/index.js +3 -0
- package/dist/aws/apn/index.js.map +1 -0
- package/dist/aws/apn/partner-central-client.d.ts +39 -0
- package/dist/aws/apn/partner-central-client.d.ts.map +1 -0
- package/dist/aws/apn/partner-central-client.js +135 -0
- package/dist/aws/apn/partner-central-client.js.map +1 -0
- package/dist/aws/apn/zoho-crm/apn-opportunities-sync-step.d.ts +20 -0
- package/dist/aws/apn/zoho-crm/apn-opportunities-sync-step.d.ts.map +1 -0
- package/dist/aws/apn/zoho-crm/apn-opportunities-sync-step.js +51 -0
- package/dist/aws/apn/zoho-crm/apn-opportunities-sync-step.js.map +1 -0
- package/dist/aws/apn/zoho-crm/apn-opportunities-sync.d.ts +42 -0
- package/dist/aws/apn/zoho-crm/apn-opportunities-sync.d.ts.map +1 -0
- package/dist/aws/apn/zoho-crm/apn-opportunities-sync.js +147 -0
- package/dist/aws/apn/zoho-crm/apn-opportunities-sync.js.map +1 -0
- package/dist/aws/apn/zoho-crm/index.d.ts +7 -0
- package/dist/aws/apn/zoho-crm/index.d.ts.map +1 -0
- package/dist/aws/apn/zoho-crm/index.js +7 -0
- package/dist/aws/apn/zoho-crm/index.js.map +1 -0
- package/dist/aws/apn/zoho-crm/opportunity-matcher.d.ts +38 -0
- package/dist/aws/apn/zoho-crm/opportunity-matcher.d.ts.map +1 -0
- package/dist/aws/apn/zoho-crm/opportunity-matcher.js +93 -0
- package/dist/aws/apn/zoho-crm/opportunity-matcher.js.map +1 -0
- package/dist/aws/apn/zoho-crm/opportunity-transformer.d.ts +35 -0
- package/dist/aws/apn/zoho-crm/opportunity-transformer.d.ts.map +1 -0
- package/dist/aws/apn/zoho-crm/opportunity-transformer.js +139 -0
- package/dist/aws/apn/zoho-crm/opportunity-transformer.js.map +1 -0
- package/dist/aws/apn/zoho-crm/sync-orchestrator.d.ts +34 -0
- package/dist/aws/apn/zoho-crm/sync-orchestrator.d.ts.map +1 -0
- package/dist/aws/apn/zoho-crm/sync-orchestrator.js +104 -0
- package/dist/aws/apn/zoho-crm/sync-orchestrator.js.map +1 -0
- package/dist/aws/apn/zoho-crm/types.d.ts +22 -0
- package/dist/aws/apn/zoho-crm/types.d.ts.map +1 -0
- package/dist/aws/apn/zoho-crm/types.js +2 -0
- package/dist/aws/apn/zoho-crm/types.js.map +1 -0
- package/dist/aws/aws-cost.d.ts +33 -0
- package/dist/aws/aws-cost.d.ts.map +1 -0
- package/dist/aws/aws-cost.js +88 -0
- package/dist/aws/aws-cost.js.map +1 -0
- package/dist/aws/commands.d.ts +12 -0
- package/dist/aws/commands.d.ts.map +1 -0
- package/dist/aws/commands.js +52 -0
- package/dist/aws/commands.js.map +1 -0
- package/dist/aws/execute-as.d.ts +42 -0
- package/dist/aws/execute-as.d.ts.map +1 -0
- package/dist/aws/execute-as.js +85 -0
- package/dist/aws/execute-as.js.map +1 -0
- package/dist/aws/index.d.ts +4 -0
- package/dist/aws/index.d.ts.map +1 -0
- package/dist/aws/index.js +4 -0
- package/dist/aws/index.js.map +1 -0
- package/dist/collections/collections-summary.d.ts +3 -0
- package/dist/collections/collections-summary.d.ts.map +1 -0
- package/dist/collections/collections-summary.js +7 -0
- package/dist/collections/collections-summary.js.map +1 -0
- package/dist/collections/collections-to-table.d.ts +6 -0
- package/dist/collections/collections-to-table.d.ts.map +1 -0
- package/dist/collections/collections-to-table.js +80 -0
- package/dist/collections/collections-to-table.js.map +1 -0
- package/dist/collections/index.d.ts +4 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/collections/index.js +4 -0
- package/dist/collections/index.js.map +1 -0
- package/dist/collections/types.d.ts +23 -0
- package/dist/collections/types.d.ts.map +1 -0
- package/dist/collections/types.js +2 -0
- package/dist/collections/types.js.map +1 -0
- package/dist/date/date-range.d.ts +7 -0
- package/dist/date/date-range.d.ts.map +1 -0
- package/dist/date/date-range.js +16 -0
- package/dist/date/date-range.js.map +1 -0
- package/dist/date/index.d.ts +2 -0
- package/dist/date/index.d.ts.map +1 -0
- package/dist/date/index.js +2 -0
- package/dist/date/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/postgres/index.d.ts +2 -0
- package/dist/postgres/index.d.ts.map +1 -0
- package/dist/postgres/index.js +2 -0
- package/dist/postgres/index.js.map +1 -0
- package/dist/postgres/postgres.d.ts +15 -0
- package/dist/postgres/postgres.d.ts.map +1 -0
- package/dist/postgres/postgres.js +92 -0
- package/dist/postgres/postgres.js.map +1 -0
- package/dist/streams/list-stream.d.ts +12 -0
- package/dist/streams/list-stream.d.ts.map +1 -0
- package/dist/streams/list-stream.js +14 -0
- package/dist/streams/list-stream.js.map +1 -0
- package/dist/temporary-files.d.ts +3 -0
- package/dist/temporary-files.d.ts.map +1 -0
- package/dist/temporary-files.js +14 -0
- package/dist/temporary-files.js.map +1 -0
- package/dist/zoho-crm/index.d.ts +7 -0
- package/dist/zoho-crm/index.d.ts.map +1 -0
- package/dist/zoho-crm/index.js +7 -0
- package/dist/zoho-crm/index.js.map +1 -0
- package/dist/zoho-crm/module-processor.d.ts +8 -0
- package/dist/zoho-crm/module-processor.d.ts.map +1 -0
- package/dist/zoho-crm/module-processor.js +118 -0
- package/dist/zoho-crm/module-processor.js.map +1 -0
- package/dist/zoho-crm/zoho-auth.d.ts +22 -0
- package/dist/zoho-crm/zoho-auth.d.ts.map +1 -0
- package/dist/zoho-crm/zoho-auth.js +92 -0
- package/dist/zoho-crm/zoho-auth.js.map +1 -0
- package/dist/zoho-crm/zoho-crm-client.d.ts +76 -0
- package/dist/zoho-crm/zoho-crm-client.d.ts.map +1 -0
- package/dist/zoho-crm/zoho-crm-client.js +303 -0
- package/dist/zoho-crm/zoho-crm-client.js.map +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/postgres/postgres.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
export interface PaginationOptions {
|
|
3
|
+
pageSize?: number;
|
|
4
|
+
nextPageToken?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface PaginatedResult<T> {
|
|
7
|
+
items: T[];
|
|
8
|
+
nextPageToken?: string;
|
|
9
|
+
}
|
|
10
|
+
export type PaginatedFunction<T> = (options: PaginationOptions) => Promise<PaginatedResult<T>>;
|
|
11
|
+
export declare const createPaginatedStream: <T>(fn: PaginatedFunction<T>, options: Omit<PaginationOptions, "nextPageToken">) => Observable<T>;
|
|
12
|
+
//# sourceMappingURL=list-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-stream.d.ts","sourceRoot":"","sources":["../../src/streams/list-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,MAAM,MAAM,CAAC;AAG/C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAC7B,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAM9D,eAAO,MAAM,qBAAqB,GAAI,CAAC,EACrC,IAAI,iBAAiB,CAAC,CAAC,CAAC,EACxB,SAAS,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,KAChD,UAAU,CAAC,CAAC,CAYd,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { from, EMPTY } from 'rxjs';
|
|
2
|
+
import { expand, concatMap } from 'rxjs/operators';
|
|
3
|
+
const asOptions = (baseOptions, nextPageToken) => {
|
|
4
|
+
return { ...baseOptions, nextPageToken };
|
|
5
|
+
};
|
|
6
|
+
export const createPaginatedStream = (fn, options) => {
|
|
7
|
+
const initialOptions = asOptions(options);
|
|
8
|
+
return from(fn(initialOptions)).pipe(expand((result) => {
|
|
9
|
+
return result.nextPageToken
|
|
10
|
+
? from(fn(asOptions(options, result.nextPageToken)))
|
|
11
|
+
: EMPTY;
|
|
12
|
+
}), concatMap((result) => from(result.items)));
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=list-stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-stream.js","sourceRoot":"","sources":["../../src/streams/list-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAc,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAenD,MAAM,SAAS,GAAG,CAAC,WAAqD,EAAE,aAAsB,EAAqB,EAAE;IACrH,OAAO,EAAE,GAAG,WAAW,EAAE,aAAa,EAAE,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,EAAwB,EACxB,OAAiD,EAClC,EAAE;IAEjB,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAE1C,OAAO,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAClC,MAAM,CAAC,CAAC,MAA0B,EAAE,EAAE;QACpC,OAAO,MAAM,CAAC,aAAa;YACzB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC,CAAC,EACF,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1C,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporary-files.d.ts","sourceRoot":"","sources":["../src/temporary-files.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,GAAU,MAAM,MAAM,iBAKvD,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAU,QAAQ,GAAG,oBAIpD,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { file } from 'tmp-promise';
|
|
3
|
+
export const readObjectFromTmpFile = async (path) => {
|
|
4
|
+
console.log(`Reading file: ${path}`);
|
|
5
|
+
const buffer = await fs.promises.readFile(path);
|
|
6
|
+
const content = buffer.toString();
|
|
7
|
+
return JSON.parse(content);
|
|
8
|
+
};
|
|
9
|
+
export const saveObjectToTmpFile = async (object) => {
|
|
10
|
+
const { path } = await file({ postfix: '.json' });
|
|
11
|
+
await fs.promises.appendFile(path, Buffer.from(JSON.stringify(object, null, 2)));
|
|
12
|
+
return path;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=temporary-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporary-files.js","sourceRoot":"","sources":["../src/temporary-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IAC1D,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;IACpC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,MAAW,EAAE,EAAE;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IACjD,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAChF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/zoho-crm/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/zoho-crm/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ZohoCRMClient, ZohoCRMRecord } from './zoho-crm-client.js';
|
|
2
|
+
import { Collection, CollectionSchema } from '../collections/types.js';
|
|
3
|
+
export interface ModuleProcessorOptions {
|
|
4
|
+
maxRecords?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function generateSchemaFromRecords(records: ZohoCRMRecord[], schemaName: string): CollectionSchema;
|
|
7
|
+
export declare function processModule(moduleName: string, client: ZohoCRMClient, options?: ModuleProcessorOptions): Promise<Collection>;
|
|
8
|
+
//# sourceMappingURL=module-processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-processor.d.ts","sourceRoot":"","sources":["../../src/zoho-crm/module-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAsB,MAAM,yBAAyB,CAAA;AAE1F,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAGD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAiGxG;AAGD,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,UAAU,CAAC,CA+BrB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
// Helper function to dynamically generate schema from Zoho CRM records
|
|
2
|
+
export function generateSchemaFromRecords(records, schemaName) {
|
|
3
|
+
if (!records || records.length === 0) {
|
|
4
|
+
return {
|
|
5
|
+
name: schemaName,
|
|
6
|
+
prepareMode: 'drop',
|
|
7
|
+
columns: [
|
|
8
|
+
{ name: "id", type: "id" },
|
|
9
|
+
{ name: "raw_data", transform: (record) => JSON.stringify(record) }
|
|
10
|
+
]
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
const allFields = new Set();
|
|
14
|
+
// Collect all field names from all records
|
|
15
|
+
records.forEach(record => {
|
|
16
|
+
Object.keys(record).forEach(key => {
|
|
17
|
+
allFields.add(key);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
// Convert field names to database column definitions
|
|
21
|
+
const columns = [
|
|
22
|
+
{ name: "id", type: "id" }
|
|
23
|
+
];
|
|
24
|
+
// Sort fields for consistent ordering
|
|
25
|
+
const sortedFields = Array.from(allFields).sort();
|
|
26
|
+
sortedFields.forEach(field => {
|
|
27
|
+
// Skip the 'id' field from Zoho as we handle it separately
|
|
28
|
+
if (field === 'id') {
|
|
29
|
+
columns.push({ name: "record_id", path: "id" });
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const columnName = field.toLowerCase().replace(/[^a-z0-9_]/g, '_');
|
|
33
|
+
// Determine data type based on field name patterns and sample data
|
|
34
|
+
let type = "text";
|
|
35
|
+
// Check field name patterns
|
|
36
|
+
if (field.includes('Date') || field.includes('Time') || field.includes('_time')) {
|
|
37
|
+
type = field.includes('Date') && !field.includes('Time') ? "date" : "datetime";
|
|
38
|
+
}
|
|
39
|
+
else if (field.includes('Amount') || field.includes('Revenue') || field.includes('_amount')) {
|
|
40
|
+
type = "currency";
|
|
41
|
+
}
|
|
42
|
+
else if (field.includes('Probability') || field.includes('Rate') || field.includes('_rate') || field.includes('_number')) {
|
|
43
|
+
type = "number";
|
|
44
|
+
}
|
|
45
|
+
else if (field.includes('Opt_Out') || field.includes('_opt_out') || field.includes('converted')) {
|
|
46
|
+
type = "bool";
|
|
47
|
+
}
|
|
48
|
+
// Sample the data to refine type detection
|
|
49
|
+
const sampleValues = records.slice(0, 10).map(record => record[field]).filter(val => val !== null && val !== undefined && val !== '');
|
|
50
|
+
if (sampleValues.length > 0) {
|
|
51
|
+
const sampleValue = sampleValues[0];
|
|
52
|
+
if (typeof sampleValue === 'boolean') {
|
|
53
|
+
type = "bool";
|
|
54
|
+
}
|
|
55
|
+
else if (typeof sampleValue === 'number') {
|
|
56
|
+
type = "number";
|
|
57
|
+
}
|
|
58
|
+
else if (typeof sampleValue === 'object' && sampleValue !== null) {
|
|
59
|
+
// Handle nested objects (like Owner, Account_Name, etc.)
|
|
60
|
+
if (sampleValue.name) {
|
|
61
|
+
columns.push({ name: `${columnName}_name`, path: `${field}.name` });
|
|
62
|
+
}
|
|
63
|
+
if (sampleValue.id) {
|
|
64
|
+
columns.push({ name: `${columnName}_id`, path: `${field}.id` });
|
|
65
|
+
}
|
|
66
|
+
if (sampleValue.email) {
|
|
67
|
+
columns.push({ name: `${columnName}_email`, path: `${field}.email` });
|
|
68
|
+
}
|
|
69
|
+
return; // Skip adding the main field since we're handling nested properties
|
|
70
|
+
}
|
|
71
|
+
else if (typeof sampleValue === 'string') {
|
|
72
|
+
// Check if it's a valid date/timestamp string
|
|
73
|
+
if (type === 'date' || type === 'datetime') {
|
|
74
|
+
// Try to parse the date to validate it's a proper timestamp
|
|
75
|
+
const date = new Date(sampleValue);
|
|
76
|
+
if (isNaN(date.getTime())) {
|
|
77
|
+
// Invalid date, treat as text
|
|
78
|
+
type = "text";
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
columns.push({ name: columnName, path: field, type });
|
|
84
|
+
});
|
|
85
|
+
// Always add raw_data column for full JSON
|
|
86
|
+
columns.push({ name: "raw_data", transform: (record) => JSON.stringify(record) });
|
|
87
|
+
return {
|
|
88
|
+
name: schemaName,
|
|
89
|
+
prepareMode: 'drop',
|
|
90
|
+
columns
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
// Generic function to process any Zoho CRM module
|
|
94
|
+
export async function processModule(moduleName, client, options = {}) {
|
|
95
|
+
const { maxRecords } = options;
|
|
96
|
+
console.log(`Processing module: ${moduleName}`);
|
|
97
|
+
// Get the appropriate method for this module
|
|
98
|
+
const methodName = `get${moduleName}`;
|
|
99
|
+
const method = client[methodName];
|
|
100
|
+
if (!method || typeof method !== 'function') {
|
|
101
|
+
throw new Error(`No method found for module: ${moduleName}`);
|
|
102
|
+
}
|
|
103
|
+
// Fetch records using the client method
|
|
104
|
+
const records = await method.call(client, { maxRecords: maxRecords || undefined });
|
|
105
|
+
// Generate schema from the records
|
|
106
|
+
const schema = generateSchemaFromRecords(records, moduleName.toLowerCase());
|
|
107
|
+
// Create collection with manually assigned IDs
|
|
108
|
+
const collection = {
|
|
109
|
+
schema,
|
|
110
|
+
objects: records.map((record, index) => ({
|
|
111
|
+
id: index + 1,
|
|
112
|
+
...record
|
|
113
|
+
}))
|
|
114
|
+
};
|
|
115
|
+
console.log(`Processed ${records.length} records for module: ${moduleName}`);
|
|
116
|
+
return collection;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=module-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-processor.js","sourceRoot":"","sources":["../../src/zoho-crm/module-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface ZohoCredentials {
|
|
2
|
+
base_api_uri: string;
|
|
3
|
+
accounts_server: string;
|
|
4
|
+
api_domain: string;
|
|
5
|
+
oauth_client_id: string;
|
|
6
|
+
oauth_access_token: string;
|
|
7
|
+
oauth_refresh_token: string;
|
|
8
|
+
oauth_uid: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class ZohoAuth {
|
|
11
|
+
private credentials;
|
|
12
|
+
private cachedToken;
|
|
13
|
+
constructor(credentials: ZohoCredentials);
|
|
14
|
+
getAccessToken(): Promise<string>;
|
|
15
|
+
private refreshAccessToken;
|
|
16
|
+
private makeTokenRequest;
|
|
17
|
+
forceRefreshToken(): Promise<string>;
|
|
18
|
+
getTokenInfo(): any;
|
|
19
|
+
isCurrentTokenValid(): boolean;
|
|
20
|
+
getApiDomain(): string;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=zoho-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zoho-auth.d.ts","sourceRoot":"","sources":["../../src/zoho-crm/zoho-auth.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAA;CAClB;AAQD,qBAAa,QAAQ;IACnB,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,WAAW,CAA2B;gBAElC,WAAW,EAAE,eAAe;IAKlC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;YAczB,kBAAkB;YAsBlB,gBAAgB;IA0CxB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAS1C,YAAY,IAAI,GAAG;IAKnB,mBAAmB,IAAI,OAAO;IAK9B,YAAY,IAAI,MAAM;CAGvB"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export class ZohoAuth {
|
|
2
|
+
credentials;
|
|
3
|
+
cachedToken = null;
|
|
4
|
+
constructor(credentials) {
|
|
5
|
+
this.credentials = credentials;
|
|
6
|
+
}
|
|
7
|
+
// Get a fresh access token using refresh token
|
|
8
|
+
async getAccessToken() {
|
|
9
|
+
// Check if we have a cached token that's still valid
|
|
10
|
+
if (this.cachedToken && this.cachedToken.expires_at > new Date()) {
|
|
11
|
+
const expiresIn = Math.floor((this.cachedToken.expires_at.getTime() - Date.now()) / (60 * 1000));
|
|
12
|
+
console.log(`✅ Using cached access token (expires in ${expiresIn} minutes)`);
|
|
13
|
+
return this.cachedToken.access_token;
|
|
14
|
+
}
|
|
15
|
+
// Use the existing access token from credentials
|
|
16
|
+
console.log(`✅ Using existing access token from credentials`);
|
|
17
|
+
return this.credentials.oauth_access_token;
|
|
18
|
+
}
|
|
19
|
+
// Refresh the access token using refresh token
|
|
20
|
+
async refreshAccessToken() {
|
|
21
|
+
console.log(`🚀 Requesting new access token via Zoho OAuth2...`);
|
|
22
|
+
console.log(`🔧 Using refresh token: ${this.credentials.oauth_refresh_token.substring(0, 20)}...`);
|
|
23
|
+
const url = `${this.credentials.accounts_server}/oauth/v2/token`;
|
|
24
|
+
// Try first with client secret if available
|
|
25
|
+
let params = new URLSearchParams({
|
|
26
|
+
refresh_token: this.credentials.oauth_refresh_token,
|
|
27
|
+
client_id: this.credentials.oauth_client_id,
|
|
28
|
+
grant_type: 'refresh_token'
|
|
29
|
+
});
|
|
30
|
+
try {
|
|
31
|
+
return await this.makeTokenRequest(url, params);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
console.error(`❌ Error refreshing token with client secret: ${error.message}`);
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Helper method to make token request
|
|
39
|
+
async makeTokenRequest(url, params) {
|
|
40
|
+
console.log(`🔧 Making POST request to: ${url}`);
|
|
41
|
+
console.log(`🔧 Request params: ${params.toString()}`);
|
|
42
|
+
const response = await fetch(url, {
|
|
43
|
+
method: 'POST',
|
|
44
|
+
headers: {
|
|
45
|
+
'Content-Type': 'application/x-www-form-urlencoded'
|
|
46
|
+
},
|
|
47
|
+
body: params.toString()
|
|
48
|
+
});
|
|
49
|
+
const responseText = await response.text();
|
|
50
|
+
console.log(`🔧 Raw response: ${responseText}`);
|
|
51
|
+
if (!response.ok) {
|
|
52
|
+
throw new Error(`HTTP ${response.status}: ${responseText}`);
|
|
53
|
+
}
|
|
54
|
+
const data = JSON.parse(responseText);
|
|
55
|
+
console.log(`🔧 Parsed response:`, data);
|
|
56
|
+
if (data.error) {
|
|
57
|
+
throw new Error(`Zoho OAuth error: ${data.error}`);
|
|
58
|
+
}
|
|
59
|
+
if (!data.access_token) {
|
|
60
|
+
throw new Error(`No access token received: ${JSON.stringify(data)}`);
|
|
61
|
+
}
|
|
62
|
+
// Cache the token
|
|
63
|
+
this.cachedToken = {
|
|
64
|
+
access_token: data.access_token,
|
|
65
|
+
expires_at: new Date(Date.now() + (data.expires_in ? data.expires_in * 1000 : 3600000)),
|
|
66
|
+
token_type: data.token_type || 'Bearer'
|
|
67
|
+
};
|
|
68
|
+
console.log(`✅ Token refresh successful via Zoho API`);
|
|
69
|
+
return data.access_token;
|
|
70
|
+
}
|
|
71
|
+
// Force refresh the token (ignores cache)
|
|
72
|
+
async forceRefreshToken() {
|
|
73
|
+
console.log(`🔄 Force refreshing access token...`);
|
|
74
|
+
this.cachedToken = null; // Clear cache
|
|
75
|
+
const token = await this.getAccessToken();
|
|
76
|
+
console.log(`🔄 Force refresh completed, token: ${token.substring(0, 20)}...`);
|
|
77
|
+
return token;
|
|
78
|
+
}
|
|
79
|
+
// Get token info (for debugging)
|
|
80
|
+
getTokenInfo() {
|
|
81
|
+
return this.cachedToken || null;
|
|
82
|
+
}
|
|
83
|
+
// Check if current token is valid
|
|
84
|
+
isCurrentTokenValid() {
|
|
85
|
+
return this.cachedToken ? this.cachedToken.expires_at > new Date() : false;
|
|
86
|
+
}
|
|
87
|
+
// Get the API domain for CRM requests
|
|
88
|
+
getApiDomain() {
|
|
89
|
+
return this.credentials.api_domain;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=zoho-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zoho-auth.js","sourceRoot":"","sources":["../../src/zoho-crm/zoho-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { AxiosRequestConfig } from 'axios';
|
|
2
|
+
export interface ZohoCRMConfig {
|
|
3
|
+
accessToken: string;
|
|
4
|
+
apiDomain: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ZohoCRMRecord {
|
|
7
|
+
id: string;
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
}
|
|
10
|
+
export interface ZohoCRMResponse<T = any> {
|
|
11
|
+
data: T[];
|
|
12
|
+
info: {
|
|
13
|
+
count: number;
|
|
14
|
+
page: number;
|
|
15
|
+
per_page: number;
|
|
16
|
+
more_records: boolean;
|
|
17
|
+
next_page_token?: string;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export declare class ZohoCRMClient {
|
|
21
|
+
private accessToken;
|
|
22
|
+
private baseURL;
|
|
23
|
+
private limiter;
|
|
24
|
+
constructor(config: ZohoCRMConfig);
|
|
25
|
+
makeRequest<T>(endpoint: string, options?: AxiosRequestConfig, operationName?: string): Promise<T>;
|
|
26
|
+
getRecord(module: string, recordId: string): Promise<ZohoCRMRecord>;
|
|
27
|
+
getRecords(module: string, options?: {
|
|
28
|
+
page?: number;
|
|
29
|
+
per_page?: number;
|
|
30
|
+
sort_order?: 'asc' | 'desc';
|
|
31
|
+
sort_by?: string;
|
|
32
|
+
fields?: string[];
|
|
33
|
+
criteria?: string;
|
|
34
|
+
}): Promise<ZohoCRMResponse<ZohoCRMRecord>>;
|
|
35
|
+
getAllRecords(module: string, options?: {
|
|
36
|
+
per_page?: number;
|
|
37
|
+
sort_order?: 'asc' | 'desc';
|
|
38
|
+
sort_by?: string;
|
|
39
|
+
fields?: string[];
|
|
40
|
+
criteria?: string;
|
|
41
|
+
maxRecords?: number;
|
|
42
|
+
}): Promise<ZohoCRMRecord[]>;
|
|
43
|
+
createRecord(module: string, data: Partial<ZohoCRMRecord>): Promise<ZohoCRMRecord>;
|
|
44
|
+
updateRecord(module: string, recordId: string, data: Partial<ZohoCRMRecord>): Promise<ZohoCRMRecord>;
|
|
45
|
+
deleteRecord(module: string, recordId: string): Promise<boolean>;
|
|
46
|
+
searchRecords(module: string, criteria: string, options?: {
|
|
47
|
+
page?: number;
|
|
48
|
+
per_page?: number;
|
|
49
|
+
fields?: string[];
|
|
50
|
+
}): Promise<ZohoCRMResponse<ZohoCRMRecord>>;
|
|
51
|
+
getModuleMetadata(module: string): Promise<any>;
|
|
52
|
+
getModuleFields(module: string): Promise<any>;
|
|
53
|
+
getModules(): Promise<any[]>;
|
|
54
|
+
getAllFieldNames(module: string): Promise<string[]>;
|
|
55
|
+
getLeads(options?: Parameters<typeof this.getAllRecords>[1]): Promise<ZohoCRMRecord[]>;
|
|
56
|
+
getContacts(options?: Parameters<typeof this.getAllRecords>[1]): Promise<ZohoCRMRecord[]>;
|
|
57
|
+
getAccounts(options?: Parameters<typeof this.getAllRecords>[1]): Promise<ZohoCRMRecord[]>;
|
|
58
|
+
getDeals(options?: Parameters<typeof this.getAllRecords>[1]): Promise<ZohoCRMRecord[]>;
|
|
59
|
+
getTasks(options?: Parameters<typeof this.getAllRecords>[1]): Promise<ZohoCRMRecord[]>;
|
|
60
|
+
getEvents(options?: Parameters<typeof this.getAllRecords>[1]): Promise<ZohoCRMRecord[]>;
|
|
61
|
+
getCalls(options?: Parameters<typeof this.getAllRecords>[1]): Promise<ZohoCRMRecord[]>;
|
|
62
|
+
getAPNOpportunities(options?: Parameters<typeof this.getAllRecords>[1]): Promise<ZohoCRMRecord[]>;
|
|
63
|
+
getAPNOpportunity(opportunityId: string): Promise<ZohoCRMRecord>;
|
|
64
|
+
createAPNOpportunity(data: Partial<ZohoCRMRecord>): Promise<ZohoCRMRecord>;
|
|
65
|
+
updateAPNOpportunity(opportunityId: string, data: Partial<ZohoCRMRecord>): Promise<ZohoCRMRecord>;
|
|
66
|
+
deleteAPNOpportunity(opportunityId: string): Promise<boolean>;
|
|
67
|
+
searchAPNOpportunities(criteria: string, options?: Parameters<typeof this.searchRecords>[2]): Promise<ZohoCRMResponse<ZohoCRMRecord>>;
|
|
68
|
+
getAPNOpportunitiesByStatus(status: string, options?: Parameters<typeof this.getAllRecords>[1]): Promise<ZohoCRMRecord[]>;
|
|
69
|
+
getAPNOpportunitiesByType(type: string, options?: Parameters<typeof this.getAllRecords>[1]): Promise<ZohoCRMRecord[]>;
|
|
70
|
+
getAPNOpportunitiesByDateRange(startDate: string, endDate: string, options?: Parameters<typeof this.getAllRecords>[1]): Promise<ZohoCRMRecord[]>;
|
|
71
|
+
getAPNOpportunitiesByCustomerName(customerName: string, options?: Parameters<typeof this.getAllRecords>[1]): Promise<ZohoCRMRecord[]>;
|
|
72
|
+
getRecentAPNOpportunities(days?: number, options?: Parameters<typeof this.getAllRecords>[1]): Promise<ZohoCRMRecord[]>;
|
|
73
|
+
bulkCreateAPNOpportunities(opportunities: Partial<ZohoCRMRecord>[]): Promise<ZohoCRMRecord[]>;
|
|
74
|
+
bulkUpdateAPNOpportunities(opportunities: Partial<ZohoCRMRecord>[]): Promise<ZohoCRMRecord[]>;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=zoho-crm-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zoho-crm-client.d.ts","sourceRoot":"","sources":["../../src/zoho-crm/zoho-crm-client.ts"],"names":[],"mappings":"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"}
|