instasave-sdk 1.2.7 → 1.2.9

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 (46) hide show
  1. package/CHANGELOG.md +148 -0
  2. package/README.md +219 -2
  3. package/dist/browser/crawler-manager.d.ts +6 -0
  4. package/dist/browser/crawler-manager.d.ts.map +1 -1
  5. package/dist/browser/crawler-manager.js +29 -1
  6. package/dist/browser/crawler-manager.js.map +1 -1
  7. package/dist/core/media-scraper.d.ts +6 -0
  8. package/dist/core/media-scraper.d.ts.map +1 -1
  9. package/dist/core/media-scraper.js +16 -2
  10. package/dist/core/media-scraper.js.map +1 -1
  11. package/dist/download/download-engine.d.ts +32 -0
  12. package/dist/download/download-engine.d.ts.map +1 -0
  13. package/dist/download/download-engine.js +177 -0
  14. package/dist/download/download-engine.js.map +1 -0
  15. package/dist/download/download-manager.d.ts +18 -0
  16. package/dist/download/download-manager.d.ts.map +1 -0
  17. package/dist/download/download-manager.js +232 -0
  18. package/dist/download/download-manager.js.map +1 -0
  19. package/dist/download/download-scrape.d.ts +32 -0
  20. package/dist/download/download-scrape.d.ts.map +1 -0
  21. package/dist/download/download-scrape.js +159 -0
  22. package/dist/download/download-scrape.js.map +1 -0
  23. package/dist/download/index.d.ts +4 -0
  24. package/dist/download/index.d.ts.map +1 -0
  25. package/dist/download/index.js +25 -0
  26. package/dist/download/index.js.map +1 -0
  27. package/dist/download/types.d.ts +48 -0
  28. package/dist/download/types.d.ts.map +1 -0
  29. package/dist/download/types.js +6 -0
  30. package/dist/download/types.js.map +1 -0
  31. package/dist/index.d.ts +3 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +7 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/platforms/instagram/index.d.ts.map +1 -1
  36. package/dist/platforms/instagram/index.js +48 -0
  37. package/dist/platforms/instagram/index.js.map +1 -1
  38. package/dist/utils/browser/browser-path-resolver.d.ts +29 -0
  39. package/dist/utils/browser/browser-path-resolver.d.ts.map +1 -0
  40. package/dist/utils/browser/browser-path-resolver.js +76 -0
  41. package/dist/utils/browser/browser-path-resolver.js.map +1 -0
  42. package/dist/utils/config/config-parser.d.ts +2 -0
  43. package/dist/utils/config/config-parser.d.ts.map +1 -1
  44. package/dist/utils/config/config-parser.js.map +1 -1
  45. package/instasave.config.example +18 -20
  46. package/package.json +6 -3
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ /**
3
+ * Download Scrape API
4
+ * Download image from URL with optional Base64 conversion
5
+ *
6
+ * Flow:
7
+ * - useBase64 = true: Download → Base64 → File
8
+ * - useBase64 = false: Direct Download → File
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
43
+ var __importDefault = (this && this.__importDefault) || function (mod) {
44
+ return (mod && mod.__esModule) ? mod : { "default": mod };
45
+ };
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.DownloadScrapeEngine = void 0;
48
+ exports.downloadScrape = downloadScrape;
49
+ const axios_1 = __importDefault(require("axios"));
50
+ const fs = __importStar(require("fs"));
51
+ const path = __importStar(require("path"));
52
+ const logger_1 = require("../utils/logger");
53
+ function detectFormat(contentType) {
54
+ if (!contentType)
55
+ return 'jpg';
56
+ const mimeMap = {
57
+ 'image/jpeg': 'jpg',
58
+ 'image/jpg': 'jpg',
59
+ 'image/png': 'png',
60
+ 'image/webp': 'webp',
61
+ 'image/gif': 'gif',
62
+ 'image/bmp': 'bmp',
63
+ 'image/svg+xml': 'svg'
64
+ };
65
+ const mime = contentType.split(';')[0].toLowerCase().trim();
66
+ return mimeMap[mime] || 'jpg';
67
+ }
68
+ function generateFilename(format) {
69
+ const timestamp = Date.now();
70
+ const random = Math.random().toString(36).substring(2, 8);
71
+ return `img_${timestamp}_${random}.${format}`;
72
+ }
73
+ async function sleep(ms) {
74
+ return new Promise(resolve => setTimeout(resolve, ms));
75
+ }
76
+ async function downloadScrape(url, options = {}) {
77
+ const { useBase64 = true, outputPath = './downloads', filename, timeout = 30000, retries = 3 } = options;
78
+ let attempt = 0;
79
+ let lastError = null;
80
+ while (attempt < retries) {
81
+ attempt++;
82
+ const retryDelay = Math.pow(2, attempt - 1) * 1000;
83
+ try {
84
+ logger_1.log.debug(`⬇️ DownloadScrape: ${url} (attempt ${attempt}/${retries})`);
85
+ // 1. Download image as buffer
86
+ const response = await axios_1.default.get(url, {
87
+ responseType: 'arraybuffer',
88
+ timeout: timeout,
89
+ headers: {
90
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
91
+ 'Accept': 'image/webp,image/apng,image/*,*/*;q=0.8',
92
+ 'Referer': 'https://www.instagram.com/'
93
+ }
94
+ });
95
+ // 2. Detect format
96
+ const format = detectFormat(response.headers['content-type']);
97
+ const actualFilename = filename || generateFilename(format);
98
+ const destPath = path.join(outputPath, actualFilename);
99
+ // 3. Ensure output directory exists
100
+ if (!fs.existsSync(outputPath)) {
101
+ fs.mkdirSync(outputPath, { recursive: true });
102
+ }
103
+ // 4. Save file
104
+ if (useBase64) {
105
+ // Download → Base64 → File
106
+ const base64 = Buffer.from(response.data).toString('base64');
107
+ fs.writeFileSync(destPath, base64, 'base64');
108
+ logger_1.log.debug(`⬇️ Saved (Base64): ${destPath}`);
109
+ }
110
+ else {
111
+ // Direct Download → File
112
+ fs.writeFileSync(destPath, response.data);
113
+ logger_1.log.debug(`⬇️ Saved (Direct): ${destPath}`);
114
+ }
115
+ // 5. Get file stats
116
+ const stats = fs.statSync(destPath);
117
+ return {
118
+ success: true,
119
+ url: url,
120
+ localPath: destPath,
121
+ filename: actualFilename,
122
+ format: format,
123
+ bytes: stats.size
124
+ };
125
+ }
126
+ catch (error) {
127
+ lastError = error;
128
+ logger_1.log.warn(`⬇️ DownloadScrape attempt ${attempt} failed: ${lastError.message}`);
129
+ if (attempt < retries) {
130
+ logger_1.log.debug(`⬇️ Retrying in ${retryDelay}ms...`);
131
+ await sleep(retryDelay);
132
+ }
133
+ }
134
+ }
135
+ // All retries failed
136
+ return {
137
+ success: false,
138
+ url: url,
139
+ localPath: '',
140
+ filename: filename || '',
141
+ format: '',
142
+ bytes: 0,
143
+ error: lastError?.message || 'Unknown error'
144
+ };
145
+ }
146
+ // Export class for advanced usage
147
+ class DownloadScrapeEngine {
148
+ constructor(defaultOptions = {}) {
149
+ this.defaultOptions = defaultOptions;
150
+ }
151
+ async download(url, options = {}) {
152
+ return downloadScrape(url, { ...this.defaultOptions, ...options });
153
+ }
154
+ async downloadBatch(urls, options = {}) {
155
+ return Promise.all(urls.map(url => this.download(url, options)));
156
+ }
157
+ }
158
+ exports.DownloadScrapeEngine = DownloadScrapeEngine;
159
+ //# sourceMappingURL=download-scrape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download-scrape.js","sourceRoot":"","sources":["../../src/download/download-scrape.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './types';
2
+ export { DownloadManager, downloadImages } from './download-manager';
3
+ export { downloadScrape, DownloadScrapeEngine, DownloadScrapeOptions, DownloadScrapeResult } from './download-scrape';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/download/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.DownloadScrapeEngine = exports.downloadScrape = exports.downloadImages = exports.DownloadManager = void 0;
18
+ __exportStar(require("./types"), exports);
19
+ var download_manager_1 = require("./download-manager");
20
+ Object.defineProperty(exports, "DownloadManager", { enumerable: true, get: function () { return download_manager_1.DownloadManager; } });
21
+ Object.defineProperty(exports, "downloadImages", { enumerable: true, get: function () { return download_manager_1.downloadImages; } });
22
+ var download_scrape_1 = require("./download-scrape");
23
+ Object.defineProperty(exports, "downloadScrape", { enumerable: true, get: function () { return download_scrape_1.downloadScrape; } });
24
+ Object.defineProperty(exports, "DownloadScrapeEngine", { enumerable: true, get: function () { return download_scrape_1.DownloadScrapeEngine; } });
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/download/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,uDAAqE;AAA5D,mHAAA,eAAe,OAAA;AAAE,kHAAA,cAAc,OAAA;AACxC,qDAAsH;AAA7G,iHAAA,cAAc,OAAA;AAAE,uHAAA,oBAAoB,OAAA"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Download module types
3
+ */
4
+ export interface DownloadOptions {
5
+ savePath: string;
6
+ getFile: 'download' | 'save' | boolean;
7
+ filename?: string;
8
+ format?: 'original';
9
+ quality?: number;
10
+ overwrite?: boolean;
11
+ skipDuplicates?: boolean;
12
+ createSubfolders?: boolean;
13
+ onProgress?: (percent: number, current: number, total: number) => void;
14
+ timeout?: number;
15
+ }
16
+ export interface DownloadResult {
17
+ success: boolean;
18
+ total: number;
19
+ downloaded: number;
20
+ failed: number;
21
+ skipped: number;
22
+ files: DownloadedFile[];
23
+ errors: DownloadError[];
24
+ totalBytes: number;
25
+ duration: number;
26
+ }
27
+ export interface DownloadedFile {
28
+ index: number;
29
+ url: string;
30
+ path: string;
31
+ filename: string;
32
+ bytes: number;
33
+ format: string;
34
+ }
35
+ export interface DownloadError {
36
+ index: number;
37
+ url: string;
38
+ code: string;
39
+ message: string;
40
+ }
41
+ export interface DownloadFileParams {
42
+ url: string;
43
+ destPath: string;
44
+ filename: string;
45
+ onProgress?: (percent: number) => void;
46
+ timeout?: number;
47
+ }
48
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/download/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Download module types
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/download/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
package/dist/index.d.ts CHANGED
@@ -11,6 +11,9 @@ export { URLNormalizer } from './utils/url-normalizer';
11
11
  export { CrawlerManager } from './browser/crawler-manager';
12
12
  export { BrowserPool } from './browser/browser-pool';
13
13
  export { ConsoleMode, log } from './utils/logger';
14
+ export { DownloadManager, downloadImages } from './download';
15
+ export { downloadScrape, DownloadScrapeEngine, DownloadScrapeOptions, DownloadScrapeResult } from './download';
16
+ export type { DownloadOptions, DownloadResult, DownloadedFile, DownloadError } from './download';
14
17
  export * from './types';
15
18
  export * from './platforms';
16
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAChH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAGlD,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAChH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/G,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGjG,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.log = exports.BrowserPool = exports.CrawlerManager = exports.URLNormalizer = exports.ConfigParser = exports.FileManager = exports.ProgressTracker = exports.BUILTIN_PLATFORMS = exports.HealthChecker = exports.MetricsCollector = exports.PluginManager = exports.FastAuthManager = exports.WorkflowExecutor = exports.MediaScraper = void 0;
17
+ exports.DownloadScrapeEngine = exports.downloadScrape = exports.downloadImages = exports.DownloadManager = exports.log = exports.BrowserPool = exports.CrawlerManager = exports.URLNormalizer = exports.ConfigParser = exports.FileManager = exports.ProgressTracker = exports.BUILTIN_PLATFORMS = exports.HealthChecker = exports.MetricsCollector = exports.PluginManager = exports.FastAuthManager = exports.WorkflowExecutor = exports.MediaScraper = void 0;
18
18
  // Main SDK exports - backward compatibility maintained
19
19
  var core_1 = require("./core");
20
20
  Object.defineProperty(exports, "MediaScraper", { enumerable: true, get: function () { return core_1.MediaScraper; } });
@@ -43,6 +43,12 @@ var browser_pool_1 = require("./browser/browser-pool");
43
43
  Object.defineProperty(exports, "BrowserPool", { enumerable: true, get: function () { return browser_pool_1.BrowserPool; } });
44
44
  var logger_1 = require("./utils/logger");
45
45
  Object.defineProperty(exports, "log", { enumerable: true, get: function () { return logger_1.log; } });
46
+ var download_1 = require("./download");
47
+ Object.defineProperty(exports, "DownloadManager", { enumerable: true, get: function () { return download_1.DownloadManager; } });
48
+ Object.defineProperty(exports, "downloadImages", { enumerable: true, get: function () { return download_1.downloadImages; } });
49
+ var download_2 = require("./download");
50
+ Object.defineProperty(exports, "downloadScrape", { enumerable: true, get: function () { return download_2.downloadScrape; } });
51
+ Object.defineProperty(exports, "DownloadScrapeEngine", { enumerable: true, get: function () { return download_2.DownloadScrapeEngine; } });
46
52
  // Re-export all types for backward compatibility
47
53
  __exportStar(require("./types"), exports);
48
54
  // Re-export platforms
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uDAAuD;AACvD,+BAAwD;AAA/C,oGAAA,YAAY,OAAA;AAAE,wGAAA,gBAAgB,OAAA;AACvC,+BAAwE;AAA/D,uGAAA,eAAe,OAAA;AACxB,qCAAgH;AAAvG,wGAAA,aAAa,OAAA;AACtB,2CAAmD;AAA1C,2GAAA,gBAAgB,OAAA;AACzB,yCAA+C;AAAtC,uGAAA,aAAa,OAAA;AACtB,yCAAgD;AAAvC,8GAAA,iBAAiB,OAAA;AAC1B,6DAA4F;AAAnF,mHAAA,eAAe,OAAA;AACxB,qDAAmD;AAA1C,2GAAA,WAAW,OAAA;AACpB,yCAA+D;AAAtD,sGAAA,YAAY,OAAA;AACrB,yDAAuD;AAA9C,+GAAA,aAAa,OAAA;AACtB,6DAA2D;AAAlD,iHAAA,cAAc,OAAA;AACvB,uDAAqD;AAA5C,2GAAA,WAAW,OAAA;AACpB,yCAAkD;AAA5B,6FAAA,GAAG,OAAA;AAEzB,iDAAiD;AACjD,0CAAwB;AAExB,sBAAsB;AACtB,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uDAAuD;AACvD,+BAAwD;AAA/C,oGAAA,YAAY,OAAA;AAAE,wGAAA,gBAAgB,OAAA;AACvC,+BAAwE;AAA/D,uGAAA,eAAe,OAAA;AACxB,qCAAgH;AAAvG,wGAAA,aAAa,OAAA;AACtB,2CAAmD;AAA1C,2GAAA,gBAAgB,OAAA;AACzB,yCAA+C;AAAtC,uGAAA,aAAa,OAAA;AACtB,yCAAgD;AAAvC,8GAAA,iBAAiB,OAAA;AAC1B,6DAA4F;AAAnF,mHAAA,eAAe,OAAA;AACxB,qDAAmD;AAA1C,2GAAA,WAAW,OAAA;AACpB,yCAA+D;AAAtD,sGAAA,YAAY,OAAA;AACrB,yDAAuD;AAA9C,+GAAA,aAAa,OAAA;AACtB,6DAA2D;AAAlD,iHAAA,cAAc,OAAA;AACvB,uDAAqD;AAA5C,2GAAA,WAAW,OAAA;AACpB,yCAAkD;AAA5B,6FAAA,GAAG,OAAA;AACzB,uCAA6D;AAApD,2GAAA,eAAe,OAAA;AAAE,0GAAA,cAAc,OAAA;AACxC,uCAA+G;AAAtG,0GAAA,cAAc,OAAA;AAAE,gHAAA,oBAAoB,OAAA;AAG7C,iDAAiD;AACjD,0CAAwB;AAExB,sBAAsB;AACtB,8CAA4B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platforms/instagram/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOrD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,cAmD7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platforms/instagram/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAwDrD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,cAsD7B,CAAC"}
@@ -6,6 +6,52 @@ const constants_1 = require("./constants");
6
6
  const profile_1 = require("./extractors/profile");
7
7
  const carousel_1 = require("./extractors/carousel");
8
8
  const metadata_1 = require("./extractors/metadata");
9
+ /**
10
+ * Handle Instagram inappropriate content warning
11
+ */
12
+ async function handleInappropriateContentWarning(page) {
13
+ try {
14
+ // Check for inappropriate content warning text
15
+ const warningTexts = [
16
+ 'This content may be inappropriate',
17
+ 'unavailable for certain audiences',
18
+ 'Log in to continue'
19
+ ];
20
+ for (const text of warningTexts) {
21
+ const warningElement = await page.$(`*::-p-text(${text})`);
22
+ if (warningElement) {
23
+ logger_1.log.warn('⚠️ Detected inappropriate content warning, looking for login button...');
24
+ // Look for login button/link
25
+ const loginSelectors = [
26
+ 'button::-p-text(Log in)',
27
+ 'a::-p-text(Log in)',
28
+ '[role="button"]::-p-text(Log in)',
29
+ 'button::-p-text(Log In)',
30
+ 'a::-p-text(Log In)'
31
+ ];
32
+ for (const selector of loginSelectors) {
33
+ try {
34
+ const loginButton = await page.$(selector);
35
+ if (loginButton) {
36
+ logger_1.log.info('🔐 Clicking login button to bypass inappropriate content warning...');
37
+ await loginButton.click();
38
+ await page.waitForTimeout(2000);
39
+ return;
40
+ }
41
+ }
42
+ catch (error) {
43
+ // Continue to next selector
44
+ }
45
+ }
46
+ logger_1.log.warn('⚠️ Could not find login button, content may remain blocked');
47
+ break;
48
+ }
49
+ }
50
+ }
51
+ catch (error) {
52
+ logger_1.log.debug('Error checking for inappropriate content warning:', error);
53
+ }
54
+ }
9
55
  /**
10
56
  * Instagram platform plugin - built-in support for Instagram
11
57
  */
@@ -24,6 +70,8 @@ exports.InstagramPlugin = {
24
70
  logger_1.log.info('🔍 Target post ID from URL:', postId);
25
71
  // Wait for page to fully load
26
72
  await page.waitForTimeout(3000);
73
+ // Check for inappropriate content warning
74
+ await handleInappropriateContentWarning(page);
27
75
  // Initialize extractors
28
76
  const profileExtractor = new profile_1.ProfileExtractor();
29
77
  const carouselExtractor = new carousel_1.CarouselExtractor();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/platforms/instagram/index.ts"],"names":[],"mappings":";;;AAAA,+CAAyC;AAIzC,2CAA2D;AAC3D,kDAAwD;AACxD,oDAA0D;AAC1D,oDAA0D;AAE1D;;GAEG;AACU,QAAA,eAAe,GAAmB;IAC7C,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,OAAO;IAEhB,WAAW,EAAE,wBAAY;IAEzB,WAAW,CAAC,GAAW;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAU,EAAE,GAAW;QAClC,2BAA2B;QAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,0BAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEhE,YAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;QAEhD,8BAA8B;QAC9B,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEhC,wBAAwB;QACxB,MAAM,gBAAgB,GAAG,IAAI,0BAAgB,EAAE,CAAC;QAChD,MAAM,iBAAiB,GAAG,IAAI,4BAAiB,EAAE,CAAC;QAClD,MAAM,iBAAiB,GAAG,IAAI,4BAAiB,EAAE,CAAC;QAElD,+BAA+B;QAC/B,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9D,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9B,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;YAC/B,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;SAChC,CAAC,CAAC;QAEH,YAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QAC1C,YAAG,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,KAAK,cAAc,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAc;YAC3B,GAAG;YACH,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,WAAW;YACrB,YAAY,EAAE,WAAW,CAAC,WAAW;YACrC,gBAAgB,EAAE,WAAW,CAAC,eAAe;YAC7C,WAAW,EAAE,WAAW,CAAC,UAAU;YACnC,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,QAAQ;SACT,CAAC;QAEF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,QAAQ,EAAE,cAAc;CACzB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/platforms/instagram/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Browser path resolver for macOS system browsers
3
+ */
4
+ import { BrowserType } from '../config/config-parser';
5
+ export interface BrowserInfo {
6
+ type: BrowserType;
7
+ path: string;
8
+ available: boolean;
9
+ }
10
+ export declare class BrowserPathResolver {
11
+ private static readonly BROWSER_PATHS;
12
+ /**
13
+ * Resolve browser executable path
14
+ */
15
+ static resolveBrowserPath(browserType: BrowserType): string | null;
16
+ /**
17
+ * Get browser info with availability check
18
+ */
19
+ static getBrowserInfo(browserType: BrowserType): BrowserInfo;
20
+ /**
21
+ * Find first available browser with fallback
22
+ */
23
+ static findAvailableBrowser(preferredType?: BrowserType): string | null;
24
+ /**
25
+ * Get all available browsers
26
+ */
27
+ static getAvailableBrowsers(): BrowserInfo[];
28
+ }
29
+ //# sourceMappingURL=browser-path-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-path-resolver.d.ts","sourceRoot":"","sources":["../../../src/utils/browser/browser-path-resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CASnC;IAEF;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAYlE;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW;IAW5D;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAwBvE;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI,WAAW,EAAE;CAK7C"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ /**
3
+ * Browser path resolver for macOS system browsers
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BrowserPathResolver = void 0;
7
+ const fs_1 = require("fs");
8
+ const logger_1 = require("../logger");
9
+ class BrowserPathResolver {
10
+ /**
11
+ * Resolve browser executable path
12
+ */
13
+ static resolveBrowserPath(browserType) {
14
+ const path = this.BROWSER_PATHS[browserType];
15
+ if ((0, fs_1.existsSync)(path)) {
16
+ logger_1.log.info(`✓ Found ${browserType} at: ${path}`);
17
+ return path;
18
+ }
19
+ logger_1.log.warn(`⚠️ Browser ${browserType} not found at: ${path}`);
20
+ return null;
21
+ }
22
+ /**
23
+ * Get browser info with availability check
24
+ */
25
+ static getBrowserInfo(browserType) {
26
+ const path = this.BROWSER_PATHS[browserType];
27
+ const available = (0, fs_1.existsSync)(path);
28
+ return {
29
+ type: browserType,
30
+ path,
31
+ available
32
+ };
33
+ }
34
+ /**
35
+ * Find first available browser with fallback
36
+ */
37
+ static findAvailableBrowser(preferredType) {
38
+ // Try preferred browser first
39
+ if (preferredType) {
40
+ const path = this.resolveBrowserPath(preferredType);
41
+ if (path)
42
+ return path;
43
+ }
44
+ // Fallback order: chrome -> chromium -> edge -> brave -> others
45
+ const fallbackOrder = ['chrome', 'chromium', 'edge', 'brave', 'opera', 'vivaldi', 'arc', 'comet'];
46
+ for (const browserType of fallbackOrder) {
47
+ if (browserType === preferredType)
48
+ continue; // Already tried
49
+ const path = this.resolveBrowserPath(browserType);
50
+ if (path) {
51
+ logger_1.log.warn(`⚠️ Using fallback browser: ${browserType}`);
52
+ return path;
53
+ }
54
+ }
55
+ logger_1.log.warn('⚠️ No supported browsers found, using default Puppeteer Chromium');
56
+ return null;
57
+ }
58
+ /**
59
+ * Get all available browsers
60
+ */
61
+ static getAvailableBrowsers() {
62
+ return Object.keys(this.BROWSER_PATHS).map(type => this.getBrowserInfo(type)).filter(info => info.available);
63
+ }
64
+ }
65
+ exports.BrowserPathResolver = BrowserPathResolver;
66
+ BrowserPathResolver.BROWSER_PATHS = {
67
+ chrome: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
68
+ chromium: '/Applications/Chromium.app/Contents/MacOS/Chromium',
69
+ edge: '/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge',
70
+ brave: '/Applications/Brave Browser.app/Contents/MacOS/Brave Browser',
71
+ opera: '/Applications/Opera.app/Contents/MacOS/Opera',
72
+ vivaldi: '/Applications/Vivaldi.app/Contents/MacOS/Vivaldi',
73
+ arc: '/Applications/Arc.app/Contents/MacOS/Arc',
74
+ comet: '/Applications/Comet.app/Contents/MacOS/Comet'
75
+ };
76
+ //# sourceMappingURL=browser-path-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-path-resolver.js","sourceRoot":"","sources":["../../../src/utils/browser/browser-path-resolver.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,2BAAgC;AAEhC,sCAAgC;AAQhC,MAAa,mBAAmB;IAY9B;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,WAAwB;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAE7C,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE,CAAC;YACrB,YAAG,CAAC,IAAI,CAAC,WAAW,WAAW,QAAQ,IAAI,EAAE,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,YAAG,CAAC,IAAI,CAAC,cAAc,WAAW,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,WAAwB;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAA,eAAU,EAAC,IAAI,CAAC,CAAC;QAEnC,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,IAAI;YACJ,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,aAA2B;QACrD,8BAA8B;QAC9B,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;YACpD,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;QACxB,CAAC;QAED,gEAAgE;QAChE,MAAM,aAAa,GAAkB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAEjH,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;YACxC,IAAI,WAAW,KAAK,aAAa;gBAAE,SAAS,CAAC,gBAAgB;YAE7D,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,IAAI,EAAE,CAAC;gBACT,YAAG,CAAC,IAAI,CAAC,8BAA8B,WAAW,EAAE,CAAC,CAAC;gBACtD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,YAAG,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,oBAAoB;QACzB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAChD,IAAI,CAAC,cAAc,CAAC,IAAmB,CAAC,CACzC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;;AA3EH,kDA4EC;AA3EyB,iCAAa,GAAgC;IACnE,MAAM,EAAE,8DAA8D;IACtE,QAAQ,EAAE,oDAAoD;IAC9D,IAAI,EAAE,gEAAgE;IACtE,KAAK,EAAE,8DAA8D;IACrE,KAAK,EAAE,8CAA8C;IACrD,OAAO,EAAE,kDAAkD;IAC3D,GAAG,EAAE,0CAA0C;IAC/C,KAAK,EAAE,8CAA8C;CACtD,CAAC"}
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * Configuration parser for instasave.config file
3
3
  */
4
+ export type BrowserType = 'chrome' | 'chromium' | 'edge' | 'brave' | 'opera' | 'vivaldi' | 'arc' | 'comet';
4
5
  export interface InstaSaveConfig {
5
6
  default: {
6
7
  puppeteer_executable_path?: string;
8
+ browser_type?: BrowserType;
7
9
  workflows_dir?: string;
8
10
  };
9
11
  account: {
@@ -1 +1 @@
1
- {"version":3,"file":"config-parser.d.ts","sourceRoot":"","sources":["../../../src/utils/config/config-parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE;QACP,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,OAAO,EAAE;QACP,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;KACpC,CAAC;CACH;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,KAAK,IAAI,CAAC;AAEpG,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAIZ;IACF,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,UAAU,CAAS;IAE3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAiDhB;;OAEG;IACH,UAAU,IAAI,eAAe;IAkC7B;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACI,YAAY,IAAI,IAAI;IAO3B;;OAEG;IACI,cAAc,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAI3D;;OAEG;IACI,0BAA0B,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAOvE;;OAEG;IACH,OAAO,CAAC,YAAY;IA8BpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH,SAAS,IAAI,eAAe;IAI5B;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAoB1B;;OAEG;IACI,OAAO,IAAI,IAAI;CAIvB"}
1
+ {"version":3,"file":"config-parser.d.ts","sourceRoot":"","sources":["../../../src/utils/config/config-parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAE3G,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE;QACP,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,YAAY,CAAC,EAAE,WAAW,CAAC;QAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,OAAO,EAAE;QACP,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;KACpC,CAAC;CACH;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,KAAK,IAAI,CAAC;AAEpG,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAIZ;IACF,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,UAAU,CAAS;IAE3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAiDhB;;OAEG;IACH,UAAU,IAAI,eAAe;IAkC7B;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACI,YAAY,IAAI,IAAI;IAO3B;;OAEG;IACI,cAAc,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAI3D;;OAEG;IACI,0BAA0B,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAOvE;;OAEG;IACH,OAAO,CAAC,YAAY;IA8BpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH,SAAS,IAAI,eAAe;IAI5B;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAoB1B;;OAEG;IACI,OAAO,IAAI,IAAI;CAIvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-parser.js","sourceRoot":"","sources":["../../../src/utils/config/config-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-parser.js","sourceRoot":"","sources":["../../../src/utils/config/config-parser.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,29 @@
1
- # InstaSave SDK Configuration File
2
- # Place this file in your project root (same directory as package.json)
1
+ # InstaSave SDK Configuration Example
2
+ # This file demonstrates browser_type configuration
3
3
 
4
4
  [DEFAULT]
5
- # Path to Chromium/Chrome executable (optional)
6
- # PUPPETEER_EXECUTABLE_PATH = /path/to/chrome
7
- # Path to Workflows directory
8
- # WORKFLOWS_DIR = ./workflows
5
+ # Option 1: Use explicit path (highest priority)
6
+ # PUPPETEER_EXECUTABLE_PATH = /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
9
7
 
8
+ # Option 2: Use browser type (automatic path resolution)
9
+ BROWSER_TYPE = chrome
10
+
11
+ # Workflows directory
12
+ WORKFLOWS_DIR = ./workflows
10
13
 
11
14
  [ACCOUNT]
12
- # Instagram login credentials (optional)
13
- # Auto login to Instagram (if enable , on start server auto login to instagram)
14
- # AUTO_LOGIN = true
15
- # USERNAME = your_username
16
- # PASSWORD = your_password
15
+ # Auto-login on startup
16
+ AUTO_LOGIN = true
17
+ USERNAME = your_username
18
+ PASSWORD = your_password
17
19
 
18
20
  [SETTINGS]
19
- # Output directory for downloaded files
21
+ # Output directory for downloads
20
22
  OUTPUT_DIR = ./downloads
21
23
 
22
- # Run browser in headless mode (true/false)
23
- # HEADLESS = true
24
-
25
- # Timeout in seconds for scraping operations
26
- # TIMEOUT = 60
24
+ # Browser settings
25
+ HEADLESS = true
26
+ TIMEOUT = 60
27
27
 
28
- # Console output mode (Classic/Debug)
28
+ # Console output mode
29
29
  CONSOLE_MODE = Classic
30
-
31
-