@mcpher/gas-fakes 2.3.18 → 2.5.2

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 (89) hide show
  1. package/README.md +15 -32
  2. package/package.json +1 -2
  3. package/src/cli/app.js +30 -2
  4. package/src/cli/server.js +32 -0
  5. package/src/cli/setup.js +24 -0
  6. package/src/cli/togas.js +176 -0
  7. package/src/index.js +2 -0
  8. package/src/services/common/fakeui.js +45 -0
  9. package/src/services/content/app.js +3 -0
  10. package/src/services/content/contentservice.js +14 -0
  11. package/src/services/content/textoutput.js +45 -0
  12. package/src/services/documentapp/fakedocumentapp.js +1 -1
  13. package/src/services/enums/contentenums.js +15 -0
  14. package/src/services/enums/htmlenums.js +13 -0
  15. package/src/services/enums/scriptenums.js +6 -0
  16. package/src/services/formapp/fakeformapp.js +5 -0
  17. package/src/services/html/app.js +9 -0
  18. package/src/services/html/consumerworker.js +129 -0
  19. package/src/services/html/googlescriptrun.js +91 -0
  20. package/src/services/html/htmloutput.js +127 -0
  21. package/src/services/html/htmloutputmetatag.js +14 -0
  22. package/src/services/html/htmlservice.js +94 -0
  23. package/src/services/html/htmltemplate.js +63 -0
  24. package/src/services/html/serverworker.js +135 -0
  25. package/src/services/html/webapp.js +266 -0
  26. package/src/services/html/worker.js +63 -0
  27. package/src/services/libhandlerapp/fakelibrary.js +2 -2
  28. package/src/services/scriptapp/app.js +44 -0
  29. package/src/services/scriptapp/fakeauthorizationinfo.js +22 -0
  30. package/src/services/slidesapp/fakeslidesapp.js +5 -0
  31. package/src/services/spreadsheetapp/fakebooleancondition.js +14 -2
  32. package/src/services/spreadsheetapp/fakegradientcondition.js +1 -1
  33. package/src/services/spreadsheetapp/fakeovergridimage.js +25 -0
  34. package/src/services/spreadsheetapp/fakesheet.js +23 -1
  35. package/src/services/spreadsheetapp/fakespreadsheet.js +68 -11
  36. package/src/services/spreadsheetapp/fakespreadsheetapp.js +70 -9
  37. package/src/services/stores/fakestores.js +7 -0
  38. package/src/support/auth.js +2 -0
  39. package/src/support/proxies.js +1 -1
  40. package/src/support/sxauth.js +20 -12
  41. package/src/support/utils.js +480 -200
  42. package/src/support/workersync/sxhtml.js +8 -0
  43. package/src/support/workersync/synchronizer.js +8 -1
  44. package/src/support/workersync/worker.js +5 -0
  45. package/api-docs/kdrive_api.json +0 -69958
  46. package/appsscript.json +0 -102
  47. package/gf_agent/README.md +0 -101
  48. package/gf_agent/SKILL.md +0 -484
  49. package/gf_agent/documentation.md +0 -105
  50. package/gf_agent/gf-agent-contributor/SKILL.md +0 -56
  51. package/gf_agent/index.md +0 -21
  52. package/gf_agent/knowledge/00-execution-context.md +0 -5
  53. package/gf_agent/knowledge/01-drive.md +0 -12
  54. package/gf_agent/knowledge/02-syntax.md +0 -14
  55. package/gf_agent/knowledge/03-auth.md +0 -15
  56. package/gf_agent/knowledge/04-advanced.md +0 -46
  57. package/gf_agent/knowledge/05-sheets-forms.md +0 -27
  58. package/gf_agent/knowledge/06-jdbc-cloudsql.md +0 -21
  59. package/gf_agent/knowledge/07-jdbc-auth-details.md +0 -30
  60. package/gf_agent/knowledge/08-docs-limitations.md +0 -4
  61. package/gf_agent/knowledge/09-orchestrator-pattern.md +0 -55
  62. package/gf_agent/knowledge/10-sandbox-security.md +0 -62
  63. package/gf_agent/knowledge/11-chart-builder-limitations.md +0 -15
  64. package/gf_agent/knowledge/12-gmail-eventual-consistency.md +0 -13
  65. package/gf_agent/knowledge/13-advanced-services-discovery.md +0 -29
  66. package/gf_agent/knowledge/14-utilities-parity.md +0 -13
  67. package/gf_agent/knowledge/15-logging-efficiency.md +0 -15
  68. package/gf_agent/knowledge/README.md +0 -16
  69. package/gf_agent/scripts/SKILL.template.md +0 -63
  70. package/gf_agent/scripts/builder.js +0 -118
  71. package/gf_agent/skills/base.md +0 -156
  72. package/gf_agent/skills/cache.md +0 -20
  73. package/gf_agent/skills/calendar.md +0 -780
  74. package/gf_agent/skills/charts.md +0 -127
  75. package/gf_agent/skills/document.md +0 -6752
  76. package/gf_agent/skills/drive.md +0 -423
  77. package/gf_agent/skills/forms.md +0 -4036
  78. package/gf_agent/skills/gmail.md +0 -576
  79. package/gf_agent/skills/jdbc.md +0 -3101
  80. package/gf_agent/skills/lock.md +0 -20
  81. package/gf_agent/skills/properties.md +0 -19
  82. package/gf_agent/skills/script.md +0 -50
  83. package/gf_agent/skills/slides.md +0 -5054
  84. package/gf_agent/skills/spreadsheet.md +0 -56075
  85. package/gf_agent/skills/urlfetch.md +0 -28
  86. package/gf_agent/skills/utilities.md +0 -50
  87. package/gf_agent/skills/xml.md +0 -270
  88. package/skills-lock.json +0 -10
  89. package/src/services/documentapp/fakeui.js +0 -27
@@ -1,118 +0,0 @@
1
- import fs from 'fs/promises';
2
- import path from 'path';
3
- import { fileURLToPath } from 'url';
4
-
5
- const __filename = fileURLToPath(import.meta.url);
6
- const __dirname = path.dirname(__filename);
7
-
8
- // The script is at gf_agent/scripts/builder.js, so the root is one level up
9
- const GF_AGENT_DIR = path.resolve(__dirname, '..');
10
-
11
- // Standardize paths relative to the gf_agent directory
12
- const SKILLS_DIR = path.join(GF_AGENT_DIR, 'skills');
13
- const INDEX_FILE = path.join(GF_AGENT_DIR, 'index.md');
14
- const TEMPLATE_FILE = path.join(__dirname, 'SKILL.template.md');
15
- const KNOWLEDGE_DIR = path.join(GF_AGENT_DIR, 'knowledge');
16
- const SKILL_OUTPUT = path.join(GF_AGENT_DIR, 'SKILL.md');
17
-
18
- // Use CWD for progress dir to allow user to provide it in a sparse clone/standalone env
19
- const PROGRESS_DIR = path.resolve(process.cwd(), 'progress');
20
-
21
- async function build() {
22
- // Cleanup potential junk from previous runs where paths were relative to CWD
23
- // (e.g. if run from within gf_agent/scripts, it might have created gf_agent/scripts/gf_agent)
24
- try {
25
- const junkDir = path.join(__dirname, 'gf_agent');
26
- await fs.rm(junkDir, { recursive: true, force: true });
27
- } catch (err) {
28
- // Ignore
29
- }
30
-
31
- await fs.mkdir(SKILLS_DIR, { recursive: true });
32
-
33
- let masterIndex = '# gf_agent Skills Index\n\nThis index lists all Google Apps Script services and classes supported by `gf_agent` via `gas-fakes`.\n\n';
34
-
35
- try {
36
- // Check if progress directory exists before attempting to read
37
- await fs.access(PROGRESS_DIR);
38
- const files = await fs.readdir(PROGRESS_DIR);
39
- const mdFiles = files.filter(f => f.endsWith('.md') || f.endsWith('.MD'));
40
-
41
- for (const file of mdFiles) {
42
- const content = await fs.readFile(path.join(PROGRESS_DIR, file), 'utf-8');
43
- const serviceName = file.replace(/\.md$/i, '');
44
-
45
- // Extract classes
46
- const classMatches = content.matchAll(/## Class: \[(.*?)\]/g);
47
- const classes = [];
48
-
49
- for (const match of classMatches) {
50
- const className = match[1];
51
- // Find the table for this class
52
- const classSection = content.slice(match.index);
53
- const tableEnd = classSection.indexOf('## Class:') > 0 ? classSection.indexOf('## Class:', 10) : classSection.length;
54
- const tableContent = classSection.slice(0, tableEnd);
55
-
56
- // Extract completed methods
57
- const methodMatches = tableContent.matchAll(/\| \[(.*?)\]\(.*?\) \| .*? \| .*? \| .*? \| (completed) \|/g);
58
- const methods = Array.from(methodMatches).map(m => m[1]);
59
-
60
- if (methods.length > 0) {
61
- classes.push({ name: className, methods });
62
- }
63
- }
64
-
65
- if (classes.length > 0) {
66
- const skillFile = `${serviceName.toLowerCase()}.md`;
67
- let skillContent = `# Service: ${serviceName}\n\n`;
68
-
69
- classes.forEach(c => {
70
- skillContent += `## Class: ${c.name}\n\n`;
71
- skillContent += `Supported Methods:\n`;
72
- c.methods.forEach(m => {
73
- skillContent += `- \`${m}\`\n`;
74
- });
75
- skillContent += '\n';
76
- });
77
-
78
- await fs.writeFile(path.join(SKILLS_DIR, skillFile), skillContent);
79
- masterIndex += `- [${serviceName}](skills/${skillFile})\n`;
80
- }
81
- }
82
-
83
- await fs.writeFile(INDEX_FILE, masterIndex);
84
- console.log(`Skills and Index generated from ${PROGRESS_DIR}`);
85
- } catch (err) {
86
- if (err.code === 'ENOENT') {
87
- console.log(`Skipping skills index generation: ${PROGRESS_DIR} not found.`);
88
- } else {
89
- console.log(`Skipping skills index generation: ${err.message}`);
90
- }
91
- console.log(`(This is expected in a sparse clone environment).`);
92
- }
93
-
94
- // Aggregate knowledge files into SKILL.md
95
- let skillMarkdown = await fs.readFile(TEMPLATE_FILE, 'utf-8');
96
-
97
- try {
98
- const knowledgeFiles = await fs.readdir(KNOWLEDGE_DIR);
99
- // Sort files to ensure deterministic aggregation (e.g., 01-drive.md, 02-syntax.md)
100
- knowledgeFiles.sort();
101
-
102
- for (const kFile of knowledgeFiles) {
103
- if (kFile.endsWith('.md')) {
104
- const kContent = await fs.readFile(path.join(KNOWLEDGE_DIR, kFile), 'utf-8');
105
- skillMarkdown += `\n${kContent}\n`;
106
- }
107
- }
108
- } catch (err) {
109
- console.log(`No knowledge directory found at ${KNOWLEDGE_DIR} or error reading it:`, err.message);
110
- }
111
-
112
- await fs.writeFile(SKILL_OUTPUT, skillMarkdown);
113
-
114
- console.log(`Build complete! Skills, Index, and monolithic SKILL.md generated at ${SKILL_OUTPUT}`);
115
- }
116
-
117
- build().catch(console.error);
118
-
@@ -1,156 +0,0 @@
1
- # Service: base
2
-
3
- ## Class: Blob
4
-
5
- Supported Methods:
6
- - `copyBlob()`
7
- - `getBytes()`
8
- - `getContentType()`
9
- - `getDataAsString()`
10
- - `getDataAsString(String)`
11
- - `getName()`
12
- - `isGoogleType()`
13
- - `setBytes(Byte)`
14
- - `setContentType(String)`
15
- - `setContentTypeFromExtension()`
16
- - `setDataFromString(String,String)`
17
- - `setDataFromString(String)`
18
- - `setName(String)`
19
- - `clear()`
20
- - `getLog()`
21
- - `log(Object)`
22
- - `log(String,Object...)`
23
- - `asHexString()`
24
- - `getBlue()`
25
- - `getColorType()`
26
- - `getGreen()`
27
- - `getRed()`
28
- - `getActiveUser()`
29
- - `getActiveUserLocale()`
30
- - `getEffectiveUser()`
31
- - `getScriptTimeZone()`
32
- - `getTemporaryActiveUserKey()`
33
- - `getEmail()`
34
-
35
- ## Class: Browser
36
-
37
- Supported Methods:
38
- - `clear()`
39
- - `getLog()`
40
- - `log(Object)`
41
- - `log(String,Object...)`
42
- - `asHexString()`
43
- - `getBlue()`
44
- - `getColorType()`
45
- - `getGreen()`
46
- - `getRed()`
47
- - `getActiveUser()`
48
- - `getActiveUserLocale()`
49
- - `getEffectiveUser()`
50
- - `getScriptTimeZone()`
51
- - `getTemporaryActiveUserKey()`
52
- - `getEmail()`
53
-
54
- ## Class: console
55
-
56
- Supported Methods:
57
- - `clear()`
58
- - `getLog()`
59
- - `log(Object)`
60
- - `log(String,Object...)`
61
- - `asHexString()`
62
- - `getBlue()`
63
- - `getColorType()`
64
- - `getGreen()`
65
- - `getRed()`
66
- - `getActiveUser()`
67
- - `getActiveUserLocale()`
68
- - `getEffectiveUser()`
69
- - `getScriptTimeZone()`
70
- - `getTemporaryActiveUserKey()`
71
- - `getEmail()`
72
-
73
- ## Class: Logger
74
-
75
- Supported Methods:
76
- - `clear()`
77
- - `getLog()`
78
- - `log(Object)`
79
- - `log(String,Object...)`
80
- - `asHexString()`
81
- - `getBlue()`
82
- - `getColorType()`
83
- - `getGreen()`
84
- - `getRed()`
85
- - `getActiveUser()`
86
- - `getActiveUserLocale()`
87
- - `getEffectiveUser()`
88
- - `getScriptTimeZone()`
89
- - `getTemporaryActiveUserKey()`
90
- - `getEmail()`
91
-
92
- ## Class: Menu
93
-
94
- Supported Methods:
95
- - `asHexString()`
96
- - `getBlue()`
97
- - `getColorType()`
98
- - `getGreen()`
99
- - `getRed()`
100
- - `getActiveUser()`
101
- - `getActiveUserLocale()`
102
- - `getEffectiveUser()`
103
- - `getScriptTimeZone()`
104
- - `getTemporaryActiveUserKey()`
105
- - `getEmail()`
106
-
107
- ## Class: PromptResponse
108
-
109
- Supported Methods:
110
- - `asHexString()`
111
- - `getBlue()`
112
- - `getColorType()`
113
- - `getGreen()`
114
- - `getRed()`
115
- - `getActiveUser()`
116
- - `getActiveUserLocale()`
117
- - `getEffectiveUser()`
118
- - `getScriptTimeZone()`
119
- - `getTemporaryActiveUserKey()`
120
- - `getEmail()`
121
-
122
- ## Class: RgbColor
123
-
124
- Supported Methods:
125
- - `asHexString()`
126
- - `getBlue()`
127
- - `getColorType()`
128
- - `getGreen()`
129
- - `getRed()`
130
- - `getActiveUser()`
131
- - `getActiveUserLocale()`
132
- - `getEffectiveUser()`
133
- - `getScriptTimeZone()`
134
- - `getTemporaryActiveUserKey()`
135
- - `getEmail()`
136
-
137
- ## Class: Session
138
-
139
- Supported Methods:
140
- - `getActiveUser()`
141
- - `getActiveUserLocale()`
142
- - `getEffectiveUser()`
143
- - `getScriptTimeZone()`
144
- - `getTemporaryActiveUserKey()`
145
- - `getEmail()`
146
-
147
- ## Class: Ui
148
-
149
- Supported Methods:
150
- - `getEmail()`
151
-
152
- ## Class: User
153
-
154
- Supported Methods:
155
- - `getEmail()`
156
-
@@ -1,20 +0,0 @@
1
- # Service: cache
2
-
3
- ## Class: Cache
4
-
5
- Supported Methods:
6
- - `get(String)`
7
- - `put(String,String,Integer)`
8
- - `put(String,String)`
9
- - `remove(String)`
10
- - `getDocumentCache()`
11
- - `getScriptCache()`
12
- - `getUserCache()`
13
-
14
- ## Class: CacheService
15
-
16
- Supported Methods:
17
- - `getDocumentCache()`
18
- - `getScriptCache()`
19
- - `getUserCache()`
20
-