instasave-sdk 1.2.1 → 1.2.5
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/CHANGELOG.md +47 -0
- package/README.md +1 -1
- package/dist/{auth-fast.d.ts → auth/auth-manager.d.ts} +4 -12
- package/dist/auth/auth-manager.d.ts.map +1 -0
- package/dist/{auth-fast.js → auth/auth-manager.js} +26 -68
- package/dist/auth/auth-manager.js.map +1 -0
- package/dist/auth/index.d.ts +4 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +8 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/session-manager.d.ts +8 -0
- package/dist/auth/session-manager.d.ts.map +1 -0
- package/dist/auth/session-manager.js +57 -0
- package/dist/auth/session-manager.js.map +1 -0
- package/dist/browser/browser-pool.d.ts.map +1 -0
- package/dist/{browser-pool.js → browser/browser-pool.js} +1 -1
- package/dist/browser/browser-pool.js.map +1 -0
- package/dist/browser/crawler-manager.d.ts.map +1 -0
- package/dist/{crawler-manager.js → browser/crawler-manager.js} +6 -6
- package/dist/browser/crawler-manager.js.map +1 -0
- package/dist/browser/index.d.ts +3 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +8 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +8 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/media-scraper.d.ts +107 -0
- package/dist/core/media-scraper.d.ts.map +1 -0
- package/dist/core/media-scraper.js +496 -0
- package/dist/core/media-scraper.js.map +1 -0
- package/dist/core/workflow-executor.d.ts +17 -0
- package/dist/core/workflow-executor.d.ts.map +1 -0
- package/dist/core/workflow-executor.js +146 -0
- package/dist/core/workflow-executor.js.map +1 -0
- package/dist/index.d.ts +13 -132
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -635
- package/dist/index.js.map +1 -1
- package/dist/platforms/instagram/constants.d.ts +25 -0
- package/dist/platforms/instagram/constants.d.ts.map +1 -0
- package/dist/platforms/instagram/constants.js +34 -0
- package/dist/platforms/instagram/constants.js.map +1 -0
- package/dist/platforms/instagram/extractors/carousel.d.ts +21 -0
- package/dist/platforms/instagram/extractors/carousel.d.ts.map +1 -0
- package/dist/platforms/instagram/extractors/carousel.js +64 -0
- package/dist/platforms/instagram/extractors/carousel.js.map +1 -0
- package/dist/platforms/instagram/extractors/common.d.ts +17 -0
- package/dist/platforms/instagram/extractors/common.d.ts.map +1 -0
- package/dist/platforms/instagram/extractors/common.js +67 -0
- package/dist/platforms/instagram/extractors/common.js.map +1 -0
- package/dist/platforms/instagram/extractors/metadata.d.ts +24 -0
- package/dist/platforms/instagram/extractors/metadata.d.ts.map +1 -0
- package/dist/platforms/instagram/extractors/metadata.js +129 -0
- package/dist/platforms/instagram/extractors/metadata.js.map +1 -0
- package/dist/platforms/instagram/extractors/profile.d.ts +16 -0
- package/dist/platforms/instagram/extractors/profile.d.ts.map +1 -0
- package/dist/platforms/instagram/extractors/profile.js +54 -0
- package/dist/platforms/instagram/extractors/profile.js.map +1 -0
- package/dist/platforms/{instagram.d.ts → instagram/index.d.ts} +2 -2
- package/dist/platforms/instagram/index.d.ts.map +1 -0
- package/dist/platforms/instagram/index.js +53 -0
- package/dist/platforms/instagram/index.js.map +1 -0
- package/dist/plugins/index.d.ts +4 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +21 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/plugin-manager.d.ts +50 -0
- package/dist/plugins/plugin-manager.d.ts.map +1 -0
- package/dist/{plugins.js → plugins/plugin-manager.js} +4 -4
- package/dist/plugins/plugin-manager.js.map +1 -0
- package/dist/types/auth.d.ts +15 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +3 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/browser.d.ts +28 -0
- package/dist/types/browser.d.ts.map +1 -0
- package/dist/types/browser.js +3 -0
- package/dist/types/browser.js.map +1 -0
- package/dist/{types.d.ts → types/common.d.ts} +15 -15
- package/dist/types/common.d.ts.map +1 -0
- package/dist/{types.js → types/common.js} +1 -1
- package/dist/types/common.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +24 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/platform.d.ts +3 -0
- package/dist/types/platform.d.ts.map +1 -0
- package/dist/types/platform.js +20 -0
- package/dist/types/platform.js.map +1 -0
- package/dist/types/plugins.d.ts +61 -0
- package/dist/types/plugins.d.ts.map +1 -0
- package/dist/types/plugins.js +3 -0
- package/dist/types/plugins.js.map +1 -0
- package/dist/types/workflow.d.ts +17 -0
- package/dist/types/workflow.d.ts.map +1 -0
- package/dist/types/workflow.js +3 -0
- package/dist/types/workflow.js.map +1 -0
- package/dist/utils/config/config-parser.d.ts.map +1 -0
- package/dist/{config-parser.js → utils/config/config-parser.js} +5 -5
- package/dist/utils/config/config-parser.js.map +1 -0
- package/dist/utils/config/index.d.ts +2 -0
- package/dist/utils/config/index.d.ts.map +1 -0
- package/dist/utils/config/index.js +18 -0
- package/dist/utils/config/index.js.map +1 -0
- package/dist/{file-manager.d.ts → utils/file-manager.d.ts} +1 -1
- package/dist/utils/file-manager.d.ts.map +1 -0
- package/dist/utils/file-manager.js.map +1 -0
- package/dist/{health.d.ts → utils/health/health-checker.d.ts} +1 -1
- package/dist/utils/health/health-checker.d.ts.map +1 -0
- package/dist/{health.js → utils/health/health-checker.js} +1 -1
- package/dist/utils/health/health-checker.js.map +1 -0
- package/dist/utils/health/index.d.ts +2 -0
- package/dist/utils/health/index.d.ts.map +1 -0
- package/dist/utils/health/index.js +18 -0
- package/dist/utils/health/index.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +25 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger/index.d.ts +2 -0
- package/dist/utils/logger/index.d.ts.map +1 -0
- package/dist/utils/logger/index.js +18 -0
- package/dist/utils/logger/index.js.map +1 -0
- package/dist/utils/logger/logger.d.ts +44 -0
- package/dist/utils/logger/logger.d.ts.map +1 -0
- package/dist/utils/logger/logger.js +301 -0
- package/dist/utils/logger/logger.js.map +1 -0
- package/dist/utils/metrics/index.d.ts +2 -0
- package/dist/utils/metrics/index.d.ts.map +1 -0
- package/dist/utils/metrics/index.js +18 -0
- package/dist/utils/metrics/index.js.map +1 -0
- package/dist/{metrics.d.ts → utils/metrics/metrics-collector.d.ts} +1 -1
- package/dist/utils/metrics/metrics-collector.d.ts.map +1 -0
- package/dist/{metrics.js → utils/metrics/metrics-collector.js} +1 -1
- package/dist/utils/metrics/metrics-collector.js.map +1 -0
- package/dist/utils/progress-tracker.d.ts +11 -0
- package/dist/utils/progress-tracker.d.ts.map +1 -0
- package/dist/{progress-tracker.js → utils/progress-tracker.js} +0 -3
- package/dist/utils/progress-tracker.js.map +1 -0
- package/dist/utils/url-normalizer.d.ts.map +1 -0
- package/dist/utils/url-normalizer.js.map +1 -0
- package/package.json +1 -1
- package/dist/auth-fast.d.ts.map +0 -1
- package/dist/auth-fast.js.map +0 -1
- package/dist/auth.d.ts +0 -80
- package/dist/auth.d.ts.map +0 -1
- package/dist/auth.js +0 -370
- package/dist/auth.js.map +0 -1
- package/dist/benchmark.d.ts +0 -48
- package/dist/benchmark.d.ts.map +0 -1
- package/dist/benchmark.js +0 -125
- package/dist/benchmark.js.map +0 -1
- package/dist/browser-pool.d.ts.map +0 -1
- package/dist/browser-pool.js.map +0 -1
- package/dist/config-parser.d.ts.map +0 -1
- package/dist/config-parser.js.map +0 -1
- package/dist/crawler-manager.d.ts.map +0 -1
- package/dist/crawler-manager.js.map +0 -1
- package/dist/file-manager.d.ts.map +0 -1
- package/dist/file-manager.js.map +0 -1
- package/dist/health.d.ts.map +0 -1
- package/dist/health.js.map +0 -1
- package/dist/logger.d.ts +0 -22
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -151
- package/dist/logger.js.map +0 -1
- package/dist/memory.d.ts +0 -56
- package/dist/memory.d.ts.map +0 -1
- package/dist/memory.js +0 -144
- package/dist/memory.js.map +0 -1
- package/dist/metrics.d.ts.map +0 -1
- package/dist/metrics.js.map +0 -1
- package/dist/parallel.d.ts +0 -59
- package/dist/parallel.d.ts.map +0 -1
- package/dist/parallel.js +0 -202
- package/dist/parallel.js.map +0 -1
- package/dist/platforms/instagram.d.ts.map +0 -1
- package/dist/platforms/instagram.js +0 -263
- package/dist/platforms/instagram.js.map +0 -1
- package/dist/plugins.d.ts +0 -132
- package/dist/plugins.d.ts.map +0 -1
- package/dist/plugins.js.map +0 -1
- package/dist/progress-tracker.d.ts +0 -15
- package/dist/progress-tracker.d.ts.map +0 -1
- package/dist/progress-tracker.js.map +0 -1
- package/dist/smart-logger.d.ts +0 -64
- package/dist/smart-logger.d.ts.map +0 -1
- package/dist/smart-logger.js +0 -149
- package/dist/smart-logger.js.map +0 -1
- package/dist/test-integration.d.ts +0 -2
- package/dist/test-integration.d.ts.map +0 -1
- package/dist/test-integration.js +0 -46
- package/dist/test-integration.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/url-normalizer.d.ts.map +0 -1
- package/dist/url-normalizer.js.map +0 -1
- package/dist/worker.d.ts +0 -2
- package/dist/worker.d.ts.map +0 -1
- package/dist/worker.js +0 -23
- package/dist/worker.js.map +0 -1
- /package/dist/{browser-pool.d.ts → browser/browser-pool.d.ts} +0 -0
- /package/dist/{crawler-manager.d.ts → browser/crawler-manager.d.ts} +0 -0
- /package/dist/{config-parser.d.ts → utils/config/config-parser.d.ts} +0 -0
- /package/dist/{file-manager.js → utils/file-manager.js} +0 -0
- /package/dist/{url-normalizer.d.ts → utils/url-normalizer.d.ts} +0 -0
- /package/dist/{url-normalizer.js → utils/url-normalizer.js} +0 -0
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instagram plugin constants
|
|
3
|
+
*/
|
|
4
|
+
export declare const URL_PATTERNS: RegExp[];
|
|
5
|
+
export declare const META_SELECTORS: {
|
|
6
|
+
readonly TWITTER_TITLE: "meta[name=\"twitter:title\"]";
|
|
7
|
+
readonly OG_TITLE: "meta[property=\"og:title\"]";
|
|
8
|
+
readonly JSON_SCRIPTS: "script[type=\"application/json\"]";
|
|
9
|
+
};
|
|
10
|
+
export declare const REGEX_PATTERNS: {
|
|
11
|
+
readonly POST_ID: RegExp;
|
|
12
|
+
readonly TWITTER_TITLE_FORMAT1: RegExp;
|
|
13
|
+
readonly TWITTER_TITLE_FORMAT2: RegExp;
|
|
14
|
+
readonly OG_TITLE_INSTAGRAM: RegExp;
|
|
15
|
+
readonly PROFILE_LINK: RegExp;
|
|
16
|
+
readonly TIME_AGO: RegExp;
|
|
17
|
+
};
|
|
18
|
+
export declare const EXCLUDED_PATHS: readonly ["explore", "reels", "direct", "accounts"];
|
|
19
|
+
export declare const JSON_KEYS: {
|
|
20
|
+
readonly CAROUSEL_MEDIA: "carousel_media";
|
|
21
|
+
readonly EDGE_MEDIA_TO_CAPTION: "edge_media_to_caption";
|
|
22
|
+
readonly EDGE_MEDIA_PREVIEW_LIKE: "edge_media_preview_like";
|
|
23
|
+
readonly EDGE_MEDIA_TO_COMMENT: "edge_media_to_comment";
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/platforms/instagram/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,YAAY,UAIxB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,eAAO,MAAM,cAAc;;;;;;;CAOjB,CAAC;AAEX,eAAO,MAAM,cAAc,qDAEjB,CAAC;AAEX,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Instagram plugin constants
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.JSON_KEYS = exports.EXCLUDED_PATHS = exports.REGEX_PATTERNS = exports.META_SELECTORS = exports.URL_PATTERNS = void 0;
|
|
7
|
+
exports.URL_PATTERNS = [
|
|
8
|
+
/instagram\.com\/p\//,
|
|
9
|
+
/instagram\.com\/[^\/]+\/p\//,
|
|
10
|
+
/instagram\.com\/reel\//,
|
|
11
|
+
];
|
|
12
|
+
exports.META_SELECTORS = {
|
|
13
|
+
TWITTER_TITLE: 'meta[name="twitter:title"]',
|
|
14
|
+
OG_TITLE: 'meta[property="og:title"]',
|
|
15
|
+
JSON_SCRIPTS: 'script[type="application/json"]',
|
|
16
|
+
};
|
|
17
|
+
exports.REGEX_PATTERNS = {
|
|
18
|
+
POST_ID: /\/(p|reel)\/([^\/]+)/,
|
|
19
|
+
TWITTER_TITLE_FORMAT1: /^(.+?)\s+\((@[^)]+)\)/,
|
|
20
|
+
TWITTER_TITLE_FORMAT2: /^(@[a-zA-Z0-9._]+)/,
|
|
21
|
+
OG_TITLE_INSTAGRAM: /^(.+?)\s+on Instagram/,
|
|
22
|
+
PROFILE_LINK: /^\/[a-zA-Z0-9._]+\/$/,
|
|
23
|
+
TIME_AGO: /\d+\s+(hour|minute|day|week|month)s?\s+ago/i,
|
|
24
|
+
};
|
|
25
|
+
exports.EXCLUDED_PATHS = [
|
|
26
|
+
'explore', 'reels', 'direct', 'accounts'
|
|
27
|
+
];
|
|
28
|
+
exports.JSON_KEYS = {
|
|
29
|
+
CAROUSEL_MEDIA: 'carousel_media',
|
|
30
|
+
EDGE_MEDIA_TO_CAPTION: 'edge_media_to_caption',
|
|
31
|
+
EDGE_MEDIA_PREVIEW_LIKE: 'edge_media_preview_like',
|
|
32
|
+
EDGE_MEDIA_TO_COMMENT: 'edge_media_to_comment',
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/platforms/instagram/constants.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,YAAY,GAAG;IAC1B,qBAAqB;IACrB,6BAA6B;IAC7B,wBAAwB;CACzB,CAAC;AAEW,QAAA,cAAc,GAAG;IAC5B,aAAa,EAAE,4BAA4B;IAC3C,QAAQ,EAAE,2BAA2B;IACrC,YAAY,EAAE,iCAAiC;CACvC,CAAC;AAEE,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,sBAAsB;IAC/B,qBAAqB,EAAE,uBAAuB;IAC9C,qBAAqB,EAAE,oBAAoB;IAC3C,kBAAkB,EAAE,uBAAuB;IAC3C,YAAY,EAAE,sBAAsB;IACpC,QAAQ,EAAE,6CAA6C;CAC/C,CAAC;AAEE,QAAA,cAAc,GAAG;IAC5B,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU;CAChC,CAAC;AAEE,QAAA,SAAS,GAAG;IACvB,cAAc,EAAE,gBAAgB;IAChC,qBAAqB,EAAE,uBAAuB;IAC9C,uBAAuB,EAAE,yBAAyB;IAClD,qBAAqB,EAAE,uBAAuB;CACtC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Carousel extractor pro Instagram media
|
|
3
|
+
*/
|
|
4
|
+
import { Page } from 'puppeteer';
|
|
5
|
+
export interface CarouselItem {
|
|
6
|
+
index: number;
|
|
7
|
+
url: string;
|
|
8
|
+
width?: number;
|
|
9
|
+
height?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface CarouselData {
|
|
12
|
+
items: CarouselItem[];
|
|
13
|
+
count: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* CarouselExtractor pro extrakci media dat
|
|
17
|
+
*/
|
|
18
|
+
export declare class CarouselExtractor {
|
|
19
|
+
extract(page: Page): Promise<CarouselData>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=carousel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../../src/platforms/instagram/extractors/carousel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,iBAAiB;IACtB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;CA0DjD"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Carousel extractor pro Instagram media
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CarouselExtractor = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* CarouselExtractor pro extrakci media dat
|
|
9
|
+
*/
|
|
10
|
+
class CarouselExtractor {
|
|
11
|
+
async extract(page) {
|
|
12
|
+
// Původní funkční přístup z git historie
|
|
13
|
+
const result = await page.evaluate(() => {
|
|
14
|
+
const scripts = document.querySelectorAll('script[type="application/json"]');
|
|
15
|
+
for (const script of scripts) {
|
|
16
|
+
try {
|
|
17
|
+
const text = script.textContent;
|
|
18
|
+
if (!text?.includes('carousel_media'))
|
|
19
|
+
continue;
|
|
20
|
+
const json = JSON.parse(text);
|
|
21
|
+
// Recursively search for carousel_media
|
|
22
|
+
function findCarouselMedia(obj) {
|
|
23
|
+
if (!obj || typeof obj !== 'object')
|
|
24
|
+
return null;
|
|
25
|
+
if (obj.carousel_media && Array.isArray(obj.carousel_media)) {
|
|
26
|
+
return obj.carousel_media;
|
|
27
|
+
}
|
|
28
|
+
for (const key in obj) {
|
|
29
|
+
const result = findCarouselMedia(obj[key]);
|
|
30
|
+
if (result)
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const carouselMedia = findCarouselMedia(json);
|
|
36
|
+
if (carouselMedia) {
|
|
37
|
+
return carouselMedia;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
// Continue to next script
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
});
|
|
46
|
+
if (!result) {
|
|
47
|
+
return { items: [], count: 0 };
|
|
48
|
+
}
|
|
49
|
+
const items = result
|
|
50
|
+
.map((item, index) => ({
|
|
51
|
+
index,
|
|
52
|
+
url: item.image_versions2?.candidates?.[0]?.url || '',
|
|
53
|
+
width: item.original_width,
|
|
54
|
+
height: item.original_height,
|
|
55
|
+
}))
|
|
56
|
+
.filter((item) => item.url);
|
|
57
|
+
return {
|
|
58
|
+
items,
|
|
59
|
+
count: items.length
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.CarouselExtractor = CarouselExtractor;
|
|
64
|
+
//# sourceMappingURL=carousel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel.js","sourceRoot":"","sources":["../../../../src/platforms/instagram/extractors/carousel.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAkBH;;GAEG;AACH,MAAa,iBAAiB;IAC5B,KAAK,CAAC,OAAO,CAAC,IAAU;QACtB,yCAAyC;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;YAE7E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;oBAChC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC;wBAAE,SAAS;oBAEhD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAE9B,wCAAwC;oBACxC,SAAS,iBAAiB,CAAC,GAAQ;wBACjC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;4BAAE,OAAO,IAAI,CAAC;wBAEjD,IAAI,GAAG,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;4BAC5D,OAAO,GAAG,CAAC,cAAc,CAAC;wBAC5B,CAAC;wBAED,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;4BACtB,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC3C,IAAI,MAAM;gCAAE,OAAO,MAAM,CAAC;wBAC5B,CAAC;wBAED,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC9C,IAAI,aAAa,EAAE,CAAC;wBAClB,OAAO,aAAa,CAAC;oBACvB,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,0BAA0B;gBAC5B,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,KAAK,GAAmB,MAAM;aACjC,GAAG,CAAC,CAAC,IAAS,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;YAClC,KAAK;YACL,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE;YACrD,KAAK,EAAE,IAAI,CAAC,cAAc;YAC1B,MAAM,EAAE,IAAI,CAAC,eAAe;SAC7B,CAAC,CAAC;aACF,MAAM,CAAC,CAAC,IAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5C,OAAO;YACL,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;CACF;AA3DD,8CA2DC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sdílené utility pro Instagram extractory
|
|
3
|
+
*/
|
|
4
|
+
import { Page } from 'puppeteer';
|
|
5
|
+
/**
|
|
6
|
+
* Najde data v JSON skriptech pomocí predicate funkce
|
|
7
|
+
*/
|
|
8
|
+
export declare function findInJsonScripts<T>(page: Page, predicate: (obj: any) => T | null): Promise<T | null>;
|
|
9
|
+
/**
|
|
10
|
+
* Najde element podle selektoru s fallback
|
|
11
|
+
*/
|
|
12
|
+
export declare function findElement(page: Page, selector: string): Promise<string | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Najde meta tag content
|
|
15
|
+
*/
|
|
16
|
+
export declare function getMetaContent(page: Page, selector: string): Promise<string | null>;
|
|
17
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/platforms/instagram/extractors/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,GAChC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAsCnB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKxB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKxB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Sdílené utility pro Instagram extractory
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.findInJsonScripts = findInJsonScripts;
|
|
7
|
+
exports.findElement = findElement;
|
|
8
|
+
exports.getMetaContent = getMetaContent;
|
|
9
|
+
const constants_1 = require("../constants");
|
|
10
|
+
/**
|
|
11
|
+
* Najde data v JSON skriptech pomocí predicate funkce
|
|
12
|
+
*/
|
|
13
|
+
async function findInJsonScripts(page, predicate) {
|
|
14
|
+
return await page.evaluate((selectors) => {
|
|
15
|
+
const scripts = document.querySelectorAll(selectors.JSON_SCRIPTS);
|
|
16
|
+
for (const script of scripts) {
|
|
17
|
+
try {
|
|
18
|
+
const text = script.textContent;
|
|
19
|
+
if (!text)
|
|
20
|
+
continue;
|
|
21
|
+
const json = JSON.parse(text);
|
|
22
|
+
// Rekurzivní hledání v objektu
|
|
23
|
+
function searchRecursively(obj) {
|
|
24
|
+
if (!obj || typeof obj !== 'object')
|
|
25
|
+
return null;
|
|
26
|
+
// Zkusit predicate na aktuálním objektu
|
|
27
|
+
const result = predicate(obj);
|
|
28
|
+
if (result !== null)
|
|
29
|
+
return result;
|
|
30
|
+
// Rekurzivně prohledat všechny vlastnosti
|
|
31
|
+
for (const key in obj) {
|
|
32
|
+
const found = searchRecursively(obj[key]);
|
|
33
|
+
if (found !== null)
|
|
34
|
+
return found;
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
const result = searchRecursively(json);
|
|
39
|
+
if (result !== null)
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
// Pokračovat na další script
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
}, constants_1.META_SELECTORS);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Najde element podle selektoru s fallback
|
|
51
|
+
*/
|
|
52
|
+
async function findElement(page, selector) {
|
|
53
|
+
return await page.evaluate((sel) => {
|
|
54
|
+
const element = document.querySelector(sel);
|
|
55
|
+
return element?.textContent?.trim() || null;
|
|
56
|
+
}, selector);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Najde meta tag content
|
|
60
|
+
*/
|
|
61
|
+
async function getMetaContent(page, selector) {
|
|
62
|
+
return await page.evaluate((sel) => {
|
|
63
|
+
const meta = document.querySelector(sel);
|
|
64
|
+
return meta?.content || null;
|
|
65
|
+
}, selector);
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/platforms/instagram/extractors/common.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAQH,8CAyCC;AAKD,kCAQC;AAKD,wCAQC;AAxED,4CAA8C;AAE9C;;GAEG;AACI,KAAK,UAAU,iBAAiB,CACrC,IAAU,EACV,SAAiC;IAEjC,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAElE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;gBAChC,IAAI,CAAC,IAAI;oBAAE,SAAS;gBAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE9B,+BAA+B;gBAC/B,SAAS,iBAAiB,CAAC,GAAQ;oBACjC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;wBAAE,OAAO,IAAI,CAAC;oBAEjD,wCAAwC;oBACxC,MAAM,MAAM,GAAI,SAAiB,CAAC,GAAG,CAAC,CAAC;oBACvC,IAAI,MAAM,KAAK,IAAI;wBAAE,OAAO,MAAM,CAAC;oBAEnC,0CAA0C;oBAC1C,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;wBACtB,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC1C,IAAI,KAAK,KAAK,IAAI;4BAAE,OAAO,KAAK,CAAC;oBACnC,CAAC;oBAED,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,MAAM,KAAK,IAAI;oBAAE,OAAO,MAAM,CAAC;YAErC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,6BAA6B;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,0BAAc,CAAC,CAAC;AACrB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,WAAW,CAC/B,IAAU,EACV,QAAgB;IAEhB,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAgB,CAAC;QAC3D,OAAO,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;IAC9C,CAAC,EAAE,QAAQ,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc,CAClC,IAAU,EACV,QAAgB;IAEhB,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAoB,CAAC;QAC5D,OAAO,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC;IAC/B,CAAC,EAAE,QAAQ,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata extractor s oddělenými metodami
|
|
3
|
+
*/
|
|
4
|
+
import { Page } from 'puppeteer';
|
|
5
|
+
export interface PostMetadata {
|
|
6
|
+
likesCount: number | null;
|
|
7
|
+
commentsCount: number | null;
|
|
8
|
+
caption: string | null;
|
|
9
|
+
timestamp: string | null;
|
|
10
|
+
location: string | null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* MetadataExtractor s oddělenými metodami pro každý typ metadat
|
|
14
|
+
*/
|
|
15
|
+
export declare class MetadataExtractor {
|
|
16
|
+
extract(page: Page): Promise<PostMetadata>;
|
|
17
|
+
private extractCaption;
|
|
18
|
+
private extractLikesCount;
|
|
19
|
+
private extractCommentsCount;
|
|
20
|
+
private extractTimestamp;
|
|
21
|
+
private extractLocation;
|
|
22
|
+
private formatTimestamp;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../../src/platforms/instagram/extractors/metadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IACtB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;YAkBlC,cAAc;YAed,iBAAiB;YAejB,oBAAoB;YAepB,gBAAgB;YA2BhB,eAAe;IAe7B,OAAO,CAAC,eAAe;CAgBxB"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Metadata extractor s oddělenými metodami
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MetadataExtractor = void 0;
|
|
7
|
+
const common_1 = require("./common");
|
|
8
|
+
const constants_1 = require("../constants");
|
|
9
|
+
/**
|
|
10
|
+
* MetadataExtractor s oddělenými metodami pro každý typ metadat
|
|
11
|
+
*/
|
|
12
|
+
class MetadataExtractor {
|
|
13
|
+
async extract(page) {
|
|
14
|
+
const [caption, likesCount, commentsCount, timestamp, location] = await Promise.all([
|
|
15
|
+
this.extractCaption(page),
|
|
16
|
+
this.extractLikesCount(page),
|
|
17
|
+
this.extractCommentsCount(page),
|
|
18
|
+
this.extractTimestamp(page),
|
|
19
|
+
this.extractLocation(page)
|
|
20
|
+
]);
|
|
21
|
+
return {
|
|
22
|
+
caption,
|
|
23
|
+
likesCount,
|
|
24
|
+
commentsCount,
|
|
25
|
+
timestamp,
|
|
26
|
+
location
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
async extractCaption(page) {
|
|
30
|
+
return await (0, common_1.findInJsonScripts)(page, (obj) => {
|
|
31
|
+
if (obj.edge_media_to_caption?.edges?.[0]?.node?.text) {
|
|
32
|
+
return obj.edge_media_to_caption.edges[0].node.text;
|
|
33
|
+
}
|
|
34
|
+
if (obj.caption?.text) {
|
|
35
|
+
return obj.caption.text;
|
|
36
|
+
}
|
|
37
|
+
if (obj.accessibility_caption) {
|
|
38
|
+
return obj.accessibility_caption;
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
async extractLikesCount(page) {
|
|
44
|
+
return await (0, common_1.findInJsonScripts)(page, (obj) => {
|
|
45
|
+
if (obj.edge_media_preview_like?.count !== undefined) {
|
|
46
|
+
return obj.edge_media_preview_like.count;
|
|
47
|
+
}
|
|
48
|
+
if (obj.like_count !== undefined) {
|
|
49
|
+
return obj.like_count;
|
|
50
|
+
}
|
|
51
|
+
if (obj.edge_liked_by?.count !== undefined) {
|
|
52
|
+
return obj.edge_liked_by.count;
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
async extractCommentsCount(page) {
|
|
58
|
+
return await (0, common_1.findInJsonScripts)(page, (obj) => {
|
|
59
|
+
if (obj.edge_media_to_comment?.count !== undefined) {
|
|
60
|
+
return obj.edge_media_to_comment.count;
|
|
61
|
+
}
|
|
62
|
+
if (obj.comment_count !== undefined) {
|
|
63
|
+
return obj.comment_count;
|
|
64
|
+
}
|
|
65
|
+
if (obj.edge_media_to_parent_comment?.count !== undefined) {
|
|
66
|
+
return obj.edge_media_to_parent_comment.count;
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
async extractTimestamp(page) {
|
|
72
|
+
// Nejdřív zkusit najít relativní čas v DOM
|
|
73
|
+
const relativeTime = await page.evaluate((timeRegex) => {
|
|
74
|
+
const allElements = document.querySelectorAll('*');
|
|
75
|
+
for (const element of allElements) {
|
|
76
|
+
const text = element.textContent?.trim();
|
|
77
|
+
if (text?.match(timeRegex)) {
|
|
78
|
+
return text.match(timeRegex)?.[0] || null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
}, constants_1.REGEX_PATTERNS.TIME_AGO);
|
|
83
|
+
if (relativeTime)
|
|
84
|
+
return relativeTime;
|
|
85
|
+
// Fallback na absolutní čas z JSON
|
|
86
|
+
return await (0, common_1.findInJsonScripts)(page, (obj) => {
|
|
87
|
+
if (obj.taken_at_timestamp) {
|
|
88
|
+
return this.formatTimestamp(obj.taken_at_timestamp);
|
|
89
|
+
}
|
|
90
|
+
if (obj.created_time) {
|
|
91
|
+
return this.formatTimestamp(obj.created_time);
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
async extractLocation(page) {
|
|
97
|
+
return await (0, common_1.findInJsonScripts)(page, (obj) => {
|
|
98
|
+
if (obj.location?.name) {
|
|
99
|
+
return obj.location.name;
|
|
100
|
+
}
|
|
101
|
+
if (obj.venue?.name) {
|
|
102
|
+
return obj.venue.name;
|
|
103
|
+
}
|
|
104
|
+
if (obj.place?.name) {
|
|
105
|
+
return obj.place.name;
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
formatTimestamp(timestamp) {
|
|
111
|
+
const date = new Date(timestamp * 1000);
|
|
112
|
+
const now = new Date();
|
|
113
|
+
const diffMs = now.getTime() - date.getTime();
|
|
114
|
+
const diffHours = Math.floor(diffMs / (1000 * 60 * 60));
|
|
115
|
+
const diffDays = Math.floor(diffHours / 24);
|
|
116
|
+
if (diffDays > 0) {
|
|
117
|
+
return `${diffDays} day${diffDays > 1 ? 's' : ''} ago`;
|
|
118
|
+
}
|
|
119
|
+
else if (diffHours > 0) {
|
|
120
|
+
return `${diffHours} hour${diffHours > 1 ? 's' : ''} ago`;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
const diffMins = Math.floor(diffMs / (1000 * 60));
|
|
124
|
+
return `${diffMins} minute${diffMins > 1 ? 's' : ''} ago`;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.MetadataExtractor = MetadataExtractor;
|
|
129
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../src/platforms/instagram/extractors/metadata.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,qCAA0D;AAC1D,4CAA8C;AAU9C;;GAEG;AACH,MAAa,iBAAiB;IAC5B,KAAK,CAAC,OAAO,CAAC,IAAU;QACtB,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAClF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACzB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QAEH,OAAO;YACL,OAAO;YACP,UAAU;YACV,aAAa;YACb,SAAS;YACT,QAAQ;SACT,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,IAAU;QACrC,OAAO,MAAM,IAAA,0BAAiB,EAAC,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;YAChD,IAAI,GAAG,CAAC,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACtD,OAAO,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACtD,CAAC;YACD,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;gBACtB,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAC1B,CAAC;YACD,IAAI,GAAG,CAAC,qBAAqB,EAAE,CAAC;gBAC9B,OAAO,GAAG,CAAC,qBAAqB,CAAC;YACnC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAU;QACxC,OAAO,MAAM,IAAA,0BAAiB,EAAC,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;YAChD,IAAI,GAAG,CAAC,uBAAuB,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBACrD,OAAO,GAAG,CAAC,uBAAuB,CAAC,KAAK,CAAC;YAC3C,CAAC;YACD,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,GAAG,CAAC,UAAU,CAAC;YACxB,CAAC;YACD,IAAI,GAAG,CAAC,aAAa,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC3C,OAAO,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC;YACjC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,IAAU;QAC3C,OAAO,MAAM,IAAA,0BAAiB,EAAC,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;YAChD,IAAI,GAAG,CAAC,qBAAqB,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBACnD,OAAO,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC;YACzC,CAAC;YACD,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACpC,OAAO,GAAG,CAAC,aAAa,CAAC;YAC3B,CAAC;YACD,IAAI,GAAG,CAAC,4BAA4B,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1D,OAAO,GAAG,CAAC,4BAA4B,CAAC,KAAK,CAAC;YAChD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAU;QACvC,2CAA2C;QAC3C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE;YACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACnD,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;gBACzC,IAAI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;gBAC5C,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,0BAAc,CAAC,QAAQ,CAAC,CAAC;QAE5B,IAAI,YAAY;YAAE,OAAO,YAAY,CAAC;QAEtC,mCAAmC;QACnC,OAAO,MAAM,IAAA,0BAAiB,EAAC,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;YAChD,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAChD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAU;QACtC,OAAO,MAAM,IAAA,0BAAiB,EAAC,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;YAChD,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACvB,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3B,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;gBACpB,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACxB,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;gBACpB,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACxB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,SAAiB;QACvC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC;QAE5C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,GAAG,QAAQ,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QACzD,CAAC;aAAM,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,GAAG,SAAS,QAAQ,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YAClD,OAAO,GAAG,QAAQ,UAAU,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAC5D,CAAC;IACH,CAAC;CACF;AA1HD,8CA0HC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Profile extractor s strategy pattern
|
|
3
|
+
*/
|
|
4
|
+
import { Page } from 'puppeteer';
|
|
5
|
+
export interface ProfileInfo {
|
|
6
|
+
profileName: string;
|
|
7
|
+
profileUsername: string;
|
|
8
|
+
profileUrl: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* ProfileExtractor s pouze twitter:title strategií
|
|
12
|
+
*/
|
|
13
|
+
export declare class ProfileExtractor {
|
|
14
|
+
extract(page: Page): Promise<ProfileInfo>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../../src/platforms/instagram/extractors/profile.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAkCD;;GAEG;AACH,qBAAa,gBAAgB;IACrB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;CAchD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Profile extractor s strategy pattern
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ProfileExtractor = void 0;
|
|
7
|
+
const common_1 = require("./common");
|
|
8
|
+
const constants_1 = require("../constants");
|
|
9
|
+
/**
|
|
10
|
+
* Strategie 1: Extrakce z twitter:title meta tagu
|
|
11
|
+
*/
|
|
12
|
+
async function extractFromTwitterTitle(page) {
|
|
13
|
+
const content = await (0, common_1.getMetaContent)(page, constants_1.META_SELECTORS.TWITTER_TITLE);
|
|
14
|
+
if (!content)
|
|
15
|
+
return null;
|
|
16
|
+
const match1 = content.match(constants_1.REGEX_PATTERNS.TWITTER_TITLE_FORMAT1);
|
|
17
|
+
const match2 = content.match(constants_1.REGEX_PATTERNS.TWITTER_TITLE_FORMAT2);
|
|
18
|
+
if (match1) {
|
|
19
|
+
const profileName = match1[1].trim();
|
|
20
|
+
const profileUsername = match1[2].replace('@', '');
|
|
21
|
+
return {
|
|
22
|
+
profileName,
|
|
23
|
+
profileUsername,
|
|
24
|
+
profileUrl: `https://www.instagram.com/${profileUsername}/`
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (match2) {
|
|
28
|
+
const profileUsername = match2[1].replace('@', '');
|
|
29
|
+
return {
|
|
30
|
+
profileName: match2[1],
|
|
31
|
+
profileUsername,
|
|
32
|
+
profileUrl: `https://www.instagram.com/${profileUsername}/`
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* ProfileExtractor s pouze twitter:title strategií
|
|
39
|
+
*/
|
|
40
|
+
class ProfileExtractor {
|
|
41
|
+
async extract(page) {
|
|
42
|
+
const result = await extractFromTwitterTitle(page);
|
|
43
|
+
if (result && result.profileName && result.profileUsername && result.profileUrl) {
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
// Fallback hodnoty
|
|
47
|
+
const profileUsername = result?.profileUsername || 'unknown';
|
|
48
|
+
const profileName = result?.profileName || `@${profileUsername}`;
|
|
49
|
+
const profileUrl = result?.profileUrl || `https://www.instagram.com/${profileUsername}/`;
|
|
50
|
+
return { profileName, profileUsername, profileUrl };
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.ProfileExtractor = ProfileExtractor;
|
|
54
|
+
//# sourceMappingURL=profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../../src/platforms/instagram/extractors/profile.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,qCAA0C;AAC1C,4CAA8D;AAQ9D;;GAEG;AACH,KAAK,UAAU,uBAAuB,CAAC,IAAU;IAC/C,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAc,EAAC,IAAI,EAAE,0BAAc,CAAC,aAAa,CAAC,CAAC;IACzE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,0BAAc,CAAC,qBAAqB,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,0BAAc,CAAC,qBAAqB,CAAC,CAAC;IAEnE,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO;YACL,WAAW;YACX,eAAe;YACf,UAAU,EAAE,6BAA6B,eAAe,GAAG;SAC5D,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;YACtB,eAAe;YACf,UAAU,EAAE,6BAA6B,eAAe,GAAG;SAC5D,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAa,gBAAgB;IAC3B,KAAK,CAAC,OAAO,CAAC,IAAU;QACtB,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAEnD,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAChF,OAAO,MAAqB,CAAC;QAC/B,CAAC;QAED,mBAAmB;QACnB,MAAM,eAAe,GAAG,MAAM,EAAE,eAAe,IAAI,SAAS,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,IAAI,eAAe,EAAE,CAAC;QACjE,MAAM,UAAU,GAAG,MAAM,EAAE,UAAU,IAAI,6BAA6B,eAAe,GAAG,CAAC;QAEzF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;IACtD,CAAC;CACF;AAfD,4CAeC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { PlatformPlugin } from '
|
|
1
|
+
import { PlatformPlugin } from '../../types/plugins';
|
|
2
2
|
/**
|
|
3
3
|
* Instagram platform plugin - built-in support for Instagram
|
|
4
4
|
*/
|
|
5
5
|
export declare const InstagramPlugin: PlatformPlugin;
|
|
6
|
-
//# sourceMappingURL=
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InstagramPlugin = void 0;
|
|
4
|
+
const logger_1 = require("../../utils/logger");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
6
|
+
const profile_1 = require("./extractors/profile");
|
|
7
|
+
const carousel_1 = require("./extractors/carousel");
|
|
8
|
+
const metadata_1 = require("./extractors/metadata");
|
|
9
|
+
/**
|
|
10
|
+
* Instagram platform plugin - built-in support for Instagram
|
|
11
|
+
*/
|
|
12
|
+
exports.InstagramPlugin = {
|
|
13
|
+
type: 'platform',
|
|
14
|
+
name: 'instagram',
|
|
15
|
+
version: '1.0.0',
|
|
16
|
+
urlPatterns: constants_1.URL_PATTERNS,
|
|
17
|
+
validateUrl(url) {
|
|
18
|
+
return this.urlPatterns.some(pattern => pattern.test(url));
|
|
19
|
+
},
|
|
20
|
+
async scrape(page, url) {
|
|
21
|
+
// Extract post ID from URL
|
|
22
|
+
const urlPath = new URL(url).pathname;
|
|
23
|
+
const postId = urlPath.match(constants_1.REGEX_PATTERNS.POST_ID)?.[2] || '';
|
|
24
|
+
logger_1.log.info('🔍 Target post ID from URL:', postId);
|
|
25
|
+
// Wait for page to fully load
|
|
26
|
+
await page.waitForTimeout(3000);
|
|
27
|
+
// Initialize extractors
|
|
28
|
+
const profileExtractor = new profile_1.ProfileExtractor();
|
|
29
|
+
const carouselExtractor = new carousel_1.CarouselExtractor();
|
|
30
|
+
const metadataExtractor = new metadata_1.MetadataExtractor();
|
|
31
|
+
// Extract all data in parallel
|
|
32
|
+
const [profileInfo, carouselData, metadata] = await Promise.all([
|
|
33
|
+
profileExtractor.extract(page),
|
|
34
|
+
carouselExtractor.extract(page),
|
|
35
|
+
metadataExtractor.extract(page)
|
|
36
|
+
]);
|
|
37
|
+
logger_1.log.info('👤 Profile info:', profileInfo);
|
|
38
|
+
logger_1.log.info(`Found ${carouselData.count} media items`);
|
|
39
|
+
const mediaData = {
|
|
40
|
+
url,
|
|
41
|
+
post_id: postId,
|
|
42
|
+
platform: 'instagram',
|
|
43
|
+
profile_name: profileInfo.profileName,
|
|
44
|
+
profile_username: profileInfo.profileUsername,
|
|
45
|
+
profile_url: profileInfo.profileUrl,
|
|
46
|
+
media: carouselData.items,
|
|
47
|
+
metadata
|
|
48
|
+
};
|
|
49
|
+
return mediaData;
|
|
50
|
+
},
|
|
51
|
+
workflow: './src/core/workflows/instagram.wf'
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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,mCAAmC;CAC9C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AAEjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|