@mathrunet/masamune_firebase_workflow_marketing 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/CHANGELOG.md +361 -0
  2. package/LICENSE +21 -0
  3. package/README.md +70 -0
  4. package/assets/fonts/NotoSans-Bold.ttf +1439 -0
  5. package/assets/fonts/NotoSans-Regular.ttf +1439 -0
  6. package/assets/fonts/NotoSans.ttf +0 -0
  7. package/assets/fonts/NotoSansJP-Bold.ttf +0 -0
  8. package/assets/fonts/NotoSansJP-Regular.ttf +0 -0
  9. package/assets/fonts/NotoSansKR-Bold.ttf +1439 -0
  10. package/assets/fonts/NotoSansKR-Regular.ttf +1439 -0
  11. package/assets/fonts/NotoSansKR.ttf +0 -0
  12. package/assets/fonts/NotoSansSC-Bold.ttf +1439 -0
  13. package/assets/fonts/NotoSansSC-Regular.ttf +1439 -0
  14. package/assets/fonts/NotoSansSC.ttf +0 -0
  15. package/dist/clients/app_store_client.d.ts +54 -0
  16. package/dist/clients/app_store_client.js +280 -0
  17. package/dist/clients/app_store_client.js.map +1 -0
  18. package/dist/clients/firebase_analytics_client.d.ts +67 -0
  19. package/dist/clients/firebase_analytics_client.js +411 -0
  20. package/dist/clients/firebase_analytics_client.js.map +1 -0
  21. package/dist/clients/github_content_client.d.ts +83 -0
  22. package/dist/clients/github_content_client.js +443 -0
  23. package/dist/clients/github_content_client.js.map +1 -0
  24. package/dist/clients/google_play_client.d.ts +49 -0
  25. package/dist/clients/google_play_client.js +275 -0
  26. package/dist/clients/google_play_client.js.map +1 -0
  27. package/dist/functions/analyze_github_init.d.ts +37 -0
  28. package/dist/functions/analyze_github_init.js +299 -0
  29. package/dist/functions/analyze_github_init.js.map +1 -0
  30. package/dist/functions/analyze_github_process.d.ts +25 -0
  31. package/dist/functions/analyze_github_process.js +268 -0
  32. package/dist/functions/analyze_github_process.js.map +1 -0
  33. package/dist/functions/analyze_github_summary.d.ts +32 -0
  34. package/dist/functions/analyze_github_summary.js +270 -0
  35. package/dist/functions/analyze_github_summary.js.map +1 -0
  36. package/dist/functions/analyze_market_research.d.ts +40 -0
  37. package/dist/functions/analyze_market_research.js +346 -0
  38. package/dist/functions/analyze_market_research.js.map +1 -0
  39. package/dist/functions/analyze_marketing_data.d.ts +96 -0
  40. package/dist/functions/analyze_marketing_data.js +990 -0
  41. package/dist/functions/analyze_marketing_data.js.map +1 -0
  42. package/dist/functions/collect_from_app_store.d.ts +25 -0
  43. package/dist/functions/collect_from_app_store.js +148 -0
  44. package/dist/functions/collect_from_app_store.js.map +1 -0
  45. package/dist/functions/collect_from_firebase_analytics.d.ts +25 -0
  46. package/dist/functions/collect_from_firebase_analytics.js +142 -0
  47. package/dist/functions/collect_from_firebase_analytics.js.map +1 -0
  48. package/dist/functions/collect_from_google_play_console.d.ts +25 -0
  49. package/dist/functions/collect_from_google_play_console.js +142 -0
  50. package/dist/functions/collect_from_google_play_console.js.map +1 -0
  51. package/dist/functions/generate_marketing_markdown.d.ts +89 -0
  52. package/dist/functions/generate_marketing_markdown.js +653 -0
  53. package/dist/functions/generate_marketing_markdown.js.map +1 -0
  54. package/dist/functions/generate_marketing_pdf.d.ts +25 -0
  55. package/dist/functions/generate_marketing_pdf.js +175 -0
  56. package/dist/functions/generate_marketing_pdf.js.map +1 -0
  57. package/dist/functions/research_market.d.ts +56 -0
  58. package/dist/functions/research_market.js +434 -0
  59. package/dist/functions/research_market.js.map +1 -0
  60. package/dist/functions.d.ts +571 -0
  61. package/dist/functions.js +648 -0
  62. package/dist/functions.js.map +1 -0
  63. package/dist/index.d.ts +13 -0
  64. package/dist/index.js +30 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/locales/de_DE.d.ts +5 -0
  67. package/dist/locales/de_DE.js +111 -0
  68. package/dist/locales/de_DE.js.map +1 -0
  69. package/dist/locales/en.d.ts +5 -0
  70. package/dist/locales/en.js +111 -0
  71. package/dist/locales/en.js.map +1 -0
  72. package/dist/locales/es_ES.d.ts +5 -0
  73. package/dist/locales/es_ES.js +111 -0
  74. package/dist/locales/es_ES.js.map +1 -0
  75. package/dist/locales/fr_FR.d.ts +5 -0
  76. package/dist/locales/fr_FR.js +111 -0
  77. package/dist/locales/fr_FR.js.map +1 -0
  78. package/dist/locales/id_ID.d.ts +5 -0
  79. package/dist/locales/id_ID.js +111 -0
  80. package/dist/locales/id_ID.js.map +1 -0
  81. package/dist/locales/index.d.ts +59 -0
  82. package/dist/locales/index.js +155 -0
  83. package/dist/locales/index.js.map +1 -0
  84. package/dist/locales/ja.d.ts +5 -0
  85. package/dist/locales/ja.js +111 -0
  86. package/dist/locales/ja.js.map +1 -0
  87. package/dist/locales/ko_KR.d.ts +5 -0
  88. package/dist/locales/ko_KR.js +111 -0
  89. package/dist/locales/ko_KR.js.map +1 -0
  90. package/dist/locales/pt_PT.d.ts +5 -0
  91. package/dist/locales/pt_PT.js +111 -0
  92. package/dist/locales/pt_PT.js.map +1 -0
  93. package/dist/locales/ru_RU.d.ts +5 -0
  94. package/dist/locales/ru_RU.js +111 -0
  95. package/dist/locales/ru_RU.js.map +1 -0
  96. package/dist/locales/types.d.ts +105 -0
  97. package/dist/locales/types.js +8 -0
  98. package/dist/locales/types.js.map +1 -0
  99. package/dist/locales/zh_CN.d.ts +5 -0
  100. package/dist/locales/zh_CN.js +111 -0
  101. package/dist/locales/zh_CN.js.map +1 -0
  102. package/dist/models/app_store_data.d.ts +87 -0
  103. package/dist/models/app_store_data.js +8 -0
  104. package/dist/models/app_store_data.js.map +1 -0
  105. package/dist/models/chart_data.d.ts +104 -0
  106. package/dist/models/chart_data.js +8 -0
  107. package/dist/models/chart_data.js.map +1 -0
  108. package/dist/models/common.d.ts +42 -0
  109. package/dist/models/common.js +8 -0
  110. package/dist/models/common.js.map +1 -0
  111. package/dist/models/firebase_analytics_data.d.ts +134 -0
  112. package/dist/models/firebase_analytics_data.js +8 -0
  113. package/dist/models/firebase_analytics_data.js.map +1 -0
  114. package/dist/models/github_analysis_data.d.ts +266 -0
  115. package/dist/models/github_analysis_data.js +101 -0
  116. package/dist/models/github_analysis_data.js.map +1 -0
  117. package/dist/models/google_play_data.d.ts +115 -0
  118. package/dist/models/google_play_data.js +8 -0
  119. package/dist/models/google_play_data.js.map +1 -0
  120. package/dist/models/index.d.ts +14 -0
  121. package/dist/models/index.js +36 -0
  122. package/dist/models/index.js.map +1 -0
  123. package/dist/models/market_research_data.d.ts +259 -0
  124. package/dist/models/market_research_data.js +8 -0
  125. package/dist/models/market_research_data.js.map +1 -0
  126. package/dist/models/marketing_analysis_data.d.ts +200 -0
  127. package/dist/models/marketing_analysis_data.js +8 -0
  128. package/dist/models/marketing_analysis_data.js.map +1 -0
  129. package/dist/models/pdf_data.d.ts +112 -0
  130. package/dist/models/pdf_data.js +8 -0
  131. package/dist/models/pdf_data.js.map +1 -0
  132. package/dist/services/chart_service.d.ts +54 -0
  133. package/dist/services/chart_service.js +436 -0
  134. package/dist/services/chart_service.js.map +1 -0
  135. package/dist/services/github_analysis_service.d.ts +73 -0
  136. package/dist/services/github_analysis_service.js +488 -0
  137. package/dist/services/github_analysis_service.js.map +1 -0
  138. package/dist/services/pdf_service.d.ts +112 -0
  139. package/dist/services/pdf_service.js +1397 -0
  140. package/dist/services/pdf_service.js.map +1 -0
  141. package/dist/utils/github_analysis_storage.d.ts +88 -0
  142. package/dist/utils/github_analysis_storage.js +154 -0
  143. package/dist/utils/github_analysis_storage.js.map +1 -0
  144. package/package.json +64 -0
  145. package/scripts/cleanup_test_data.ts +304 -0
  146. package/scripts/list_test_data.ts +85 -0
@@ -0,0 +1,443 @@
1
+ "use strict";
2
+ /**
3
+ * GitHub Content API Client
4
+ *
5
+ * Fetches repository contents for code analysis:
6
+ * - Directory listings
7
+ * - File contents
8
+ * - Repository tree structure
9
+ *
10
+ * @see https://docs.github.com/en/rest/repos/contents
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.GitHubContentClient = void 0;
14
+ const models_1 = require("../models");
15
+ /**
16
+ * Maximum retries for API calls.
17
+ */
18
+ const MAX_RETRIES = 3;
19
+ /**
20
+ * Initial retry delay in milliseconds.
21
+ */
22
+ const INITIAL_RETRY_DELAY = 1000;
23
+ /**
24
+ * GitHub API base URL.
25
+ */
26
+ const GITHUB_API_BASE = "https://api.github.com";
27
+ /**
28
+ * GitHub API error class.
29
+ */
30
+ class GitHubApiError extends Error {
31
+ status;
32
+ headers;
33
+ constructor(message, status, headers) {
34
+ super(message);
35
+ this.status = status;
36
+ this.headers = headers;
37
+ this.name = "GitHubApiError";
38
+ }
39
+ }
40
+ /**
41
+ * GitHub Content API Client for repository analysis.
42
+ */
43
+ class GitHubContentClient {
44
+ token;
45
+ owner;
46
+ repo;
47
+ constructor(config) {
48
+ this.token = config.token;
49
+ const [owner, repo] = config.repo.split("/");
50
+ if (!owner || !repo) {
51
+ throw new Error(`Invalid repository format: ${config.repo}. Expected "owner/repo"`);
52
+ }
53
+ this.owner = owner;
54
+ this.repo = repo;
55
+ }
56
+ /**
57
+ * Make a GitHub API request.
58
+ */
59
+ async request(endpoint) {
60
+ const response = await fetch(`${GITHUB_API_BASE}${endpoint}`, {
61
+ headers: {
62
+ "Authorization": `Bearer ${this.token}`,
63
+ "Accept": "application/vnd.github.v3+json",
64
+ "X-GitHub-Api-Version": "2022-11-28",
65
+ },
66
+ });
67
+ if (!response.ok) {
68
+ throw new GitHubApiError(`GitHub API error: ${response.status} ${response.statusText}`, response.status, response.headers);
69
+ }
70
+ return response.json();
71
+ }
72
+ /**
73
+ * Execute with retry logic.
74
+ */
75
+ async withRetry(operation, retries = MAX_RETRIES) {
76
+ let lastError = null;
77
+ for (let i = 0; i < retries; i++) {
78
+ try {
79
+ return await operation();
80
+ }
81
+ catch (error) {
82
+ lastError = error;
83
+ // Don't retry on 404 (not found)
84
+ if (error.status === 404) {
85
+ throw error;
86
+ }
87
+ // Rate limit - wait longer
88
+ if (error.status === 403 && error.headers?.get?.("x-ratelimit-remaining") === "0") {
89
+ const resetTime = parseInt(error.headers?.get?.("x-ratelimit-reset") || "0", 10);
90
+ const waitTime = resetTime ? (resetTime * 1000 - Date.now()) : 60000;
91
+ console.warn(`Rate limited. Waiting ${Math.ceil(waitTime / 1000)}s before retry...`);
92
+ await new Promise(resolve => setTimeout(resolve, Math.min(waitTime, 60000)));
93
+ continue;
94
+ }
95
+ // Exponential backoff for other errors
96
+ if (i < retries - 1) {
97
+ const delay = INITIAL_RETRY_DELAY * Math.pow(2, i);
98
+ await new Promise(resolve => setTimeout(resolve, delay));
99
+ }
100
+ }
101
+ }
102
+ throw lastError || new Error("Operation failed after retries");
103
+ }
104
+ /**
105
+ * Get repository information.
106
+ */
107
+ async getRepositoryInfo() {
108
+ return this.withRetry(async () => {
109
+ const data = await this.request(`/repos/${this.owner}/${this.repo}`);
110
+ return {
111
+ defaultBranch: data.default_branch,
112
+ fullName: data.full_name,
113
+ description: data.description,
114
+ };
115
+ });
116
+ }
117
+ /**
118
+ * Get directory contents at a specific path.
119
+ */
120
+ async getDirectoryContents(path = "") {
121
+ return this.withRetry(async () => {
122
+ const endpoint = path
123
+ ? `/repos/${this.owner}/${this.repo}/contents/${path}`
124
+ : `/repos/${this.owner}/${this.repo}/contents`;
125
+ const data = await this.request(endpoint);
126
+ if (!Array.isArray(data)) {
127
+ throw new Error(`Path is not a directory: ${path}`);
128
+ }
129
+ return data.map(item => ({
130
+ name: item.name,
131
+ path: item.path,
132
+ sha: item.sha,
133
+ size: item.size || 0,
134
+ type: item.type,
135
+ url: item.url,
136
+ downloadUrl: item.download_url || undefined,
137
+ }));
138
+ });
139
+ }
140
+ /**
141
+ * Get file content (for files under 1MB).
142
+ */
143
+ async getFileContent(path) {
144
+ return this.withRetry(async () => {
145
+ const data = await this.request(`/repos/${this.owner}/${this.repo}/contents/${path}`);
146
+ if (Array.isArray(data)) {
147
+ throw new Error(`Path is a directory: ${path}`);
148
+ }
149
+ if (data.type !== "file") {
150
+ throw new Error(`Path is not a file: ${path} (type: ${data.type})`);
151
+ }
152
+ if (!data.content) {
153
+ throw new Error(`No content available for: ${path}`);
154
+ }
155
+ // Content is base64 encoded
156
+ return Buffer.from(data.content, "base64").toString("utf-8");
157
+ });
158
+ }
159
+ /**
160
+ * Get file content via Blob API (for larger files).
161
+ */
162
+ async getFileContentViaBlob(sha) {
163
+ return this.withRetry(async () => {
164
+ const data = await this.request(`/repos/${this.owner}/${this.repo}/git/blobs/${sha}`);
165
+ if (data.encoding === "base64") {
166
+ return Buffer.from(data.content, "base64").toString("utf-8");
167
+ }
168
+ return data.content;
169
+ });
170
+ }
171
+ /**
172
+ * Get repository tree recursively.
173
+ */
174
+ async getRepositoryTree(basePath = "") {
175
+ return this.withRetry(async () => {
176
+ const repoInfo = await this.getRepositoryInfo();
177
+ const data = await this.request(`/repos/${this.owner}/${this.repo}/git/trees/${repoInfo.defaultBranch}?recursive=1`);
178
+ let items = data.tree.map(item => ({
179
+ path: item.path || "",
180
+ mode: item.mode || "",
181
+ type: item.type,
182
+ sha: item.sha || "",
183
+ size: item.size,
184
+ url: item.url || "",
185
+ }));
186
+ // Filter by base path if specified
187
+ if (basePath) {
188
+ const normalizedBase = basePath.endsWith("/") ? basePath : basePath + "/";
189
+ items = items.filter(item => item.path.startsWith(normalizedBase) || item.path === basePath);
190
+ }
191
+ return items;
192
+ });
193
+ }
194
+ /**
195
+ * Get filtered file list for analysis.
196
+ * Excludes binary files, generated files, and common non-source directories.
197
+ */
198
+ async getFilteredFileList(basePath = "") {
199
+ const tree = await this.getRepositoryTree(basePath);
200
+ return tree
201
+ .filter(item => item.type === "blob")
202
+ .map(item => item.path)
203
+ .filter(path => this.shouldIncludeFile(path));
204
+ }
205
+ /**
206
+ * Check if a file should be included in analysis.
207
+ */
208
+ shouldIncludeFile(path) {
209
+ const parts = path.split("/");
210
+ // Check excluded directories
211
+ for (const part of parts) {
212
+ if (models_1.EXCLUDED_PATHS.includes(part)) {
213
+ return false;
214
+ }
215
+ }
216
+ // Check excluded patterns
217
+ for (const pattern of models_1.EXCLUDED_PATTERNS) {
218
+ if (pattern.test(path)) {
219
+ return false;
220
+ }
221
+ }
222
+ // Check binary extensions
223
+ const ext = this.getExtension(path);
224
+ if (models_1.BINARY_EXTENSIONS.includes(ext.toLowerCase())) {
225
+ return false;
226
+ }
227
+ return true;
228
+ }
229
+ /**
230
+ * Get file extension.
231
+ */
232
+ getExtension(path) {
233
+ const lastDot = path.lastIndexOf(".");
234
+ if (lastDot === -1)
235
+ return "";
236
+ return path.substring(lastDot);
237
+ }
238
+ /**
239
+ * Get folder paths from file list.
240
+ */
241
+ getFolderPaths(filePaths) {
242
+ const folders = new Set();
243
+ for (const filePath of filePaths) {
244
+ const parts = filePath.split("/");
245
+ // Build all parent folder paths
246
+ for (let i = 1; i < parts.length; i++) {
247
+ folders.add(parts.slice(0, i).join("/"));
248
+ }
249
+ }
250
+ // Sort by depth (deepest first for bottom-up processing)
251
+ return Array.from(folders).sort((a, b) => {
252
+ const depthA = a.split("/").length;
253
+ const depthB = b.split("/").length;
254
+ return depthB - depthA;
255
+ });
256
+ }
257
+ /**
258
+ * Get files in a specific folder.
259
+ */
260
+ getFilesInFolder(filePaths, folderPath) {
261
+ const prefix = folderPath ? folderPath + "/" : "";
262
+ return filePaths.filter(path => {
263
+ if (!path.startsWith(prefix))
264
+ return false;
265
+ // Only direct children (no nested folders)
266
+ const relativePath = path.substring(prefix.length);
267
+ return !relativePath.includes("/");
268
+ });
269
+ }
270
+ /**
271
+ * Detect framework from repository.
272
+ */
273
+ async detectFramework(basePath = "") {
274
+ const tree = await this.getRepositoryTree(basePath);
275
+ const files = tree.filter(t => t.type === "blob").map(t => t.path);
276
+ const dirs = tree.filter(t => t.type === "tree").map(t => t.path);
277
+ const prefix = basePath ? basePath + "/" : "";
278
+ // Check for Flutter (pubspec.yaml)
279
+ const pubspecPath = files.find(f => f === prefix + "pubspec.yaml" || f === "pubspec.yaml");
280
+ if (pubspecPath) {
281
+ const platforms = [];
282
+ if (dirs.some(d => d === prefix + "android" || d === "android"))
283
+ platforms.push("android");
284
+ if (dirs.some(d => d === prefix + "ios" || d === "ios"))
285
+ platforms.push("ios");
286
+ if (dirs.some(d => d === prefix + "web" || d === "web"))
287
+ platforms.push("web");
288
+ if (dirs.some(d => d === prefix + "macos" || d === "macos"))
289
+ platforms.push("macos");
290
+ if (dirs.some(d => d === prefix + "windows" || d === "windows"))
291
+ platforms.push("windows");
292
+ if (dirs.some(d => d === prefix + "linux" || d === "linux"))
293
+ platforms.push("linux");
294
+ try {
295
+ const content = await this.getFileContent(pubspecPath);
296
+ return {
297
+ framework: "flutter",
298
+ platforms: platforms.length > 0 ? platforms : ["android", "ios"],
299
+ configFile: pubspecPath,
300
+ configContent: content,
301
+ };
302
+ }
303
+ catch {
304
+ return {
305
+ framework: "flutter",
306
+ platforms: platforms.length > 0 ? platforms : ["android", "ios"],
307
+ configFile: pubspecPath,
308
+ };
309
+ }
310
+ }
311
+ // Check for Node.js (package.json)
312
+ const packagePath = files.find(f => f === prefix + "package.json" || f === "package.json");
313
+ if (packagePath) {
314
+ try {
315
+ const content = await this.getFileContent(packagePath);
316
+ const pkg = JSON.parse(content);
317
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
318
+ // React Native / Expo
319
+ if (deps["react-native"] || deps["expo"]) {
320
+ return {
321
+ framework: deps["expo"] ? "expo" : "react-native",
322
+ platforms: ["android", "ios"],
323
+ configFile: packagePath,
324
+ configContent: content,
325
+ };
326
+ }
327
+ // Next.js
328
+ if (deps["next"]) {
329
+ return {
330
+ framework: "nextjs",
331
+ platforms: ["web"],
332
+ configFile: packagePath,
333
+ configContent: content,
334
+ };
335
+ }
336
+ // React
337
+ if (deps["react"]) {
338
+ return {
339
+ framework: "react",
340
+ platforms: ["web"],
341
+ configFile: packagePath,
342
+ configContent: content,
343
+ };
344
+ }
345
+ // Vue
346
+ if (deps["vue"]) {
347
+ return {
348
+ framework: "vue",
349
+ platforms: ["web"],
350
+ configFile: packagePath,
351
+ configContent: content,
352
+ };
353
+ }
354
+ // Generic Node.js
355
+ return {
356
+ framework: "nodejs",
357
+ platforms: ["server"],
358
+ configFile: packagePath,
359
+ configContent: content,
360
+ };
361
+ }
362
+ catch {
363
+ return {
364
+ framework: "nodejs",
365
+ platforms: ["server"],
366
+ configFile: packagePath,
367
+ };
368
+ }
369
+ }
370
+ // Check for Python
371
+ const pythonConfig = files.find(f => f === prefix + "pyproject.toml" ||
372
+ f === prefix + "setup.py" ||
373
+ f === prefix + "requirements.txt" ||
374
+ f === "pyproject.toml" ||
375
+ f === "setup.py" ||
376
+ f === "requirements.txt");
377
+ if (pythonConfig) {
378
+ try {
379
+ const content = await this.getFileContent(pythonConfig);
380
+ return {
381
+ framework: "python",
382
+ platforms: ["server"],
383
+ configFile: pythonConfig,
384
+ configContent: content,
385
+ };
386
+ }
387
+ catch {
388
+ return {
389
+ framework: "python",
390
+ platforms: ["server"],
391
+ configFile: pythonConfig,
392
+ };
393
+ }
394
+ }
395
+ // Check for Rust
396
+ const cargoPath = files.find(f => f === prefix + "Cargo.toml" || f === "Cargo.toml");
397
+ if (cargoPath) {
398
+ try {
399
+ const content = await this.getFileContent(cargoPath);
400
+ return {
401
+ framework: "rust",
402
+ platforms: ["native"],
403
+ configFile: cargoPath,
404
+ configContent: content,
405
+ };
406
+ }
407
+ catch {
408
+ return {
409
+ framework: "rust",
410
+ platforms: ["native"],
411
+ configFile: cargoPath,
412
+ };
413
+ }
414
+ }
415
+ // Check for Go
416
+ const goModPath = files.find(f => f === prefix + "go.mod" || f === "go.mod");
417
+ if (goModPath) {
418
+ try {
419
+ const content = await this.getFileContent(goModPath);
420
+ return {
421
+ framework: "go",
422
+ platforms: ["server"],
423
+ configFile: goModPath,
424
+ configContent: content,
425
+ };
426
+ }
427
+ catch {
428
+ return {
429
+ framework: "go",
430
+ platforms: ["server"],
431
+ configFile: goModPath,
432
+ };
433
+ }
434
+ }
435
+ // Unknown framework
436
+ return {
437
+ framework: "unknown",
438
+ platforms: [],
439
+ };
440
+ }
441
+ }
442
+ exports.GitHubContentClient = GitHubContentClient;
443
+ //# sourceMappingURL=github_content_client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github_content_client.js","sourceRoot":"","sources":["../../src/clients/github_content_client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Google Play Developer API Client
3
+ *
4
+ * Collects app statistics from Google Play Console:
5
+ * - Install/uninstall statistics
6
+ * - Ratings and reviews
7
+ * - Revenue data
8
+ *
9
+ * @see https://developers.google.com/android-publisher
10
+ */
11
+ import { DateRange, GooglePlayData, GooglePlayClientConfig, GooglePlayAppInfo, GooglePlayInstallStats, GooglePlayRatings, GooglePlayReviewsResponse, GooglePlayRevenueStats, GetReviewsOptions } from "../models/google_play_data";
12
+ /**
13
+ * Google Play Developer API Client.
14
+ */
15
+ export declare class GooglePlayClient {
16
+ private androidPublisher;
17
+ private packageName;
18
+ constructor(config: GooglePlayClientConfig);
19
+ /**
20
+ * Get app information.
21
+ */
22
+ getAppInfo(): Promise<GooglePlayAppInfo>;
23
+ /**
24
+ * Get install statistics for a date range.
25
+ *
26
+ * Note: Google Play Console API doesn't directly provide install stats via API.
27
+ * This requires using Google Play Console Reports (CSV) or Cloud Storage exports.
28
+ * For now, we return placeholder data structure.
29
+ */
30
+ getInstallStats(dateRange: DateRange): Promise<GooglePlayInstallStats>;
31
+ /**
32
+ * Get ratings summary.
33
+ */
34
+ getRatings(): Promise<GooglePlayRatings>;
35
+ /**
36
+ * Get reviews.
37
+ */
38
+ getReviews(options?: GetReviewsOptions): Promise<GooglePlayReviewsResponse>;
39
+ /**
40
+ * Get revenue statistics for a date range.
41
+ *
42
+ * Note: Revenue data requires Google Play Console Reports or BigQuery exports.
43
+ */
44
+ getRevenueStats(dateRange: DateRange): Promise<GooglePlayRevenueStats>;
45
+ /**
46
+ * Collect all Google Play data for a date range.
47
+ */
48
+ collectAllData(dateRange: DateRange): Promise<GooglePlayData>;
49
+ }