@hasna/skills 0.1.21 → 0.1.23

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 (270) hide show
  1. package/bin/index.js +341 -287
  2. package/bin/mcp.js +297 -245
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.js +79 -24
  5. package/dist/lib/basic-skills.test.d.ts +1 -0
  6. package/dist/lib/registry.d.ts +5 -0
  7. package/dist/lib/search.d.ts +2 -2
  8. package/package.json +1 -1
  9. package/skills/skill-academic-journal-matcher/package.json +1 -7
  10. package/skills/skill-action-item-router/package.json +1 -7
  11. package/skills/skill-ad-creative-generator/package.json +1 -7
  12. package/skills/skill-advanced-math/package.json +1 -7
  13. package/skills/skill-anomaly-investigator/package.json +1 -7
  14. package/skills/skill-api-test-suite/package.json +1 -7
  15. package/skills/skill-apidocs/package.json +0 -6
  16. package/skills/skill-audio/SKILL.md +3 -1
  17. package/skills/skill-audio/package.json +0 -5
  18. package/skills/skill-audio/src/index-local.ts +4 -1
  19. package/skills/skill-audio/src/providers/minimax.ts +83 -0
  20. package/skills/skill-audio/src/types.ts +1 -1
  21. package/skills/skill-audio-cleanup-lab/package.json +1 -5
  22. package/skills/{skill-extract-audio → skill-audio-extract}/SKILL.md +3 -3
  23. package/skills/{skill-extract-audio → skill-audio-extract}/package.json +3 -7
  24. package/skills/skill-audiobook-chapter-proofer/package.json +1 -7
  25. package/skills/skill-banner-ad-suite/package.json +1 -7
  26. package/skills/skill-benchmark-finder/package.json +1 -7
  27. package/skills/skill-bio-sequence-tool/package.json +1 -7
  28. package/skills/skill-blog-topic-cluster/package.json +1 -7
  29. package/skills/skill-brand-voice-audit/package.json +1 -7
  30. package/skills/skill-browse/package.json +0 -5
  31. package/skills/skill-businessactivity/package.json +1 -3
  32. package/skills/skill-calendar-events/package.json +1 -7
  33. package/skills/skill-campaign-metric-brief/package.json +1 -7
  34. package/skills/skill-campaign-moodboard/package.json +1 -7
  35. package/skills/skill-caption-style-stylist/package.json +1 -7
  36. package/skills/skill-chemistry-calculator/package.json +1 -7
  37. package/skills/skill-churn-risk-notifier/package.json +1 -7
  38. package/skills/skill-citation-formatter/package.json +1 -7
  39. package/skills/skill-classroom-newsletter-kit/package.json +1 -7
  40. package/skills/skill-codefix/package.json +0 -4
  41. package/skills/skill-color-palette-harmonizer/package.json +1 -7
  42. package/skills/skill-colorextract/package.json +17 -5
  43. package/skills/skill-commitpush/package.json +0 -1
  44. package/skills/skill-commitpushpr/package.json +0 -1
  45. package/skills/skill-competitor-ad-analyzer/package.json +1 -7
  46. package/skills/skill-compliance-copy-check/package.json +1 -7
  47. package/skills/skill-compliance-report-pack/package.json +1 -7
  48. package/skills/skill-compress-video/package.json +1 -5
  49. package/skills/skill-consolelog/package.json +1 -7
  50. package/skills/skill-contract-plainlanguage/package.json +1 -7
  51. package/skills/skill-convert/SKILL.md +7 -0
  52. package/skills/skill-convert/package.json +0 -4
  53. package/skills/skill-copytone-translator/package.json +1 -7
  54. package/skills/skill-create-blog-article/package.json +1 -7
  55. package/skills/skill-create-ebook/package.json +1 -7
  56. package/skills/skill-crm-note-enhancer/package.json +1 -7
  57. package/skills/skill-customer-journey-mapper/package.json +1 -7
  58. package/skills/skill-dashboard-builder/package.json +1 -7
  59. package/skills/skill-dashboard-narrator/package.json +1 -7
  60. package/skills/skill-data-anonymizer/package.json +1 -7
  61. package/skills/skill-database-explorer/package.json +1 -7
  62. package/skills/skill-dataset-health-check/package.json +1 -7
  63. package/skills/skill-decision-journal/package.json +1 -7
  64. package/skills/skill-deepresearch/package.json +0 -5
  65. package/skills/skill-delegation-brief-writer/package.json +1 -7
  66. package/skills/skill-deploy/package.json +0 -4
  67. package/skills/skill-destination-briefing/package.json +1 -7
  68. package/skills/skill-diff-viewer/package.json +1 -7
  69. package/skills/{skill-generate-docx → skill-doc-generate}/SKILL.md +2 -2
  70. package/skills/{skill-generate-pdf → skill-doc-generate}/package.json +9 -4
  71. package/skills/{skill-generate-docx → skill-doc-generate}/src/index.ts +91 -28
  72. package/skills/skill-doc-read/SKILL.md +45 -0
  73. package/skills/skill-doc-read/package.json +29 -0
  74. package/skills/skill-doc-read/src/index.ts +324 -0
  75. package/skills/skill-doc-read/tsconfig.json +8 -0
  76. package/skills/skill-domainpurchase/package.json +1 -7
  77. package/skills/skill-domainsearch/package.json +1 -7
  78. package/skills/skill-e2bswarm/package.json +0 -6
  79. package/skills/skill-educational-resource-finder/package.json +1 -7
  80. package/skills/skill-email-campaign/package.json +1 -7
  81. package/skills/skill-emoji/package.json +0 -1
  82. package/skills/skill-exam-readiness-check/package.json +1 -7
  83. package/skills/skill-excel/SKILL.md +38 -0
  84. package/skills/skill-excel/package.json +30 -0
  85. package/skills/{skill-generate-excel → skill-excel}/src/index.ts +41 -14
  86. package/skills/skill-experiment-power-calculator/package.json +1 -7
  87. package/skills/skill-extract/package.json +0 -5
  88. package/skills/skill-extract-frames/package.json +1 -7
  89. package/skills/skill-extract-invoice/package.json +1 -7
  90. package/skills/skill-family-activity-curator/package.json +1 -7
  91. package/skills/skill-faq-packager/package.json +1 -7
  92. package/skills/skill-feedback-survey-designer/package.json +1 -7
  93. package/skills/skill-field-trip-planner/package.json +1 -7
  94. package/skills/skill-file-organizer/package.json +1 -7
  95. package/skills/skill-folder-tree/package.json +1 -7
  96. package/skills/skill-forecast-scenario-lab/package.json +1 -7
  97. package/skills/skill-form-filler/package.json +1 -7
  98. package/skills/skill-generate-api-client/package.json +1 -7
  99. package/skills/skill-generate-book-cover/package.json +1 -7
  100. package/skills/skill-generate-chart/package.json +1 -7
  101. package/skills/skill-generate-diagram/package.json +1 -7
  102. package/skills/skill-generate-dockerfile/package.json +1 -7
  103. package/skills/skill-generate-documentation/package.json +1 -7
  104. package/skills/skill-generate-env/package.json +1 -7
  105. package/skills/skill-generate-favicon/package.json +1 -7
  106. package/skills/skill-generate-mock-data/package.json +1 -7
  107. package/skills/skill-generate-pr-description/package.json +1 -7
  108. package/skills/skill-generate-presentation/package.json +1 -7
  109. package/skills/skill-generate-qrcode/package.json +1 -7
  110. package/skills/skill-generate-regex/package.json +1 -7
  111. package/skills/skill-generate-resume/package.json +1 -7
  112. package/skills/skill-generate-sitemap/package.json +1 -7
  113. package/skills/skill-generate-social-posts/package.json +1 -7
  114. package/skills/skill-generate-sql/package.json +1 -7
  115. package/skills/skill-gif-maker/package.json +1 -7
  116. package/skills/skill-github-manager/package.json +1 -7
  117. package/skills/skill-gmail/package.json +1 -7
  118. package/skills/skill-goal-quarterly-roadmap/package.json +1 -7
  119. package/skills/skill-grant-application-drafter/package.json +1 -7
  120. package/skills/skill-grocery-basket-optimizer/package.json +1 -7
  121. package/skills/skill-guest-communication-suite/package.json +1 -7
  122. package/skills/skill-habit-reflection-digest/package.json +1 -7
  123. package/skills/skill-highlight-reel-generator/package.json +1 -7
  124. package/skills/skill-homework-feedback-coach/package.json +1 -7
  125. package/skills/skill-hook/package.json +0 -6
  126. package/skills/skill-household-maintenance-mgr/package.json +1 -7
  127. package/skills/skill-http-server/package.json +1 -7
  128. package/skills/skill-image/SKILL.md +2 -0
  129. package/skills/skill-image/package.json +0 -5
  130. package/skills/skill-image/src/index-local.ts +5 -3
  131. package/skills/skill-image/src/providers/minimax.ts +94 -0
  132. package/skills/skill-image/src/types.ts +1 -1
  133. package/skills/skill-implementation/package.json +0 -6
  134. package/skills/skill-implementation-agent/package.json +1 -7
  135. package/skills/skill-implementation-plan/package.json +1 -7
  136. package/skills/skill-implementation-todo/package.json +1 -7
  137. package/skills/skill-inbox-priority-planner/package.json +1 -7
  138. package/skills/skill-invoice-dispute-helper/package.json +1 -7
  139. package/skills/skill-itinerary-architect/package.json +1 -7
  140. package/skills/skill-kpi-digest-generator/package.json +1 -7
  141. package/skills/skill-lab-notebook-formatter/package.json +1 -7
  142. package/skills/skill-landing-page-copy/package.json +1 -7
  143. package/skills/skill-latex-table-generator/package.json +1 -7
  144. package/skills/skill-learning-style-profiler/package.json +1 -7
  145. package/skills/skill-lesson-plan-customizer/package.json +1 -7
  146. package/skills/skill-livestream-runofshow/package.json +1 -7
  147. package/skills/skill-longform-structurer/package.json +1 -7
  148. package/skills/skill-lorem-generator/package.json +1 -7
  149. package/skills/skill-managehook/package.json +1 -3
  150. package/skills/skill-managemcp/package.json +1 -3
  151. package/skills/skill-manageskill/package.json +1 -3
  152. package/skills/skill-markdown-validator/package.json +1 -7
  153. package/skills/skill-mcp-builder/package.json +1 -7
  154. package/skills/skill-meal-plan-designer/package.json +1 -7
  155. package/skills/skill-meeting-insight-summarizer/package.json +1 -7
  156. package/skills/skill-merge-pdfs/package.json +1 -7
  157. package/skills/skill-microcopy-generator/package.json +1 -7
  158. package/skills/skill-mindfulness-prompt-cache/package.json +1 -7
  159. package/skills/skill-monitor/package.json +0 -1
  160. package/skills/skill-music/CLAUDE.md +9 -0
  161. package/skills/skill-music/SKILL.md +35 -0
  162. package/skills/{skill-generate-excel → skill-music}/package.json +4 -10
  163. package/skills/skill-music/src/index.ts +192 -0
  164. package/skills/skill-notion-manager/package.json +1 -7
  165. package/skills/skill-npmpublish/package.json +0 -5
  166. package/skills/skill-onboarding-sequence-builder/package.json +1 -7
  167. package/skills/skill-onsite-ops-checklist/package.json +1 -7
  168. package/skills/skill-outreach-cadence-designer/package.json +1 -7
  169. package/skills/skill-packaging-concept-studio/package.json +1 -7
  170. package/skills/skill-packing-plan-pro/package.json +1 -7
  171. package/skills/skill-parent-teacher-brief/package.json +1 -7
  172. package/skills/skill-partner-kit-assembler/package.json +1 -7
  173. package/skills/skill-payroll-change-prepper/package.json +1 -7
  174. package/skills/{skill-generate-pdf → skill-pdf-generate}/SKILL.md +2 -2
  175. package/skills/{skill-generate-docx → skill-pdf-generate}/package.json +6 -4
  176. package/skills/{skill-generate-pdf → skill-pdf-generate}/src/index.ts +109 -8
  177. package/skills/skill-pdf-read/SKILL.md +56 -0
  178. package/skills/skill-pdf-read/package.json +29 -0
  179. package/skills/skill-pdf-read/src/index.ts +320 -0
  180. package/skills/skill-pdf-read/tsconfig.json +8 -0
  181. package/skills/skill-persona-based-adwriter/package.json +1 -7
  182. package/skills/skill-persona-generator/package.json +1 -7
  183. package/skills/skill-personal-daily-ops/package.json +1 -7
  184. package/skills/skill-pet-care-scheduler/package.json +1 -7
  185. package/skills/skill-podcast-show-notes/package.json +1 -7
  186. package/skills/skill-presentation-theme-maker/package.json +1 -7
  187. package/skills/skill-press-release-drafter/package.json +1 -7
  188. package/skills/skill-print-collateral-designer/package.json +1 -7
  189. package/skills/skill-procurement-scorecard/package.json +1 -7
  190. package/skills/skill-product-demo-script/package.json +1 -7
  191. package/skills/skill-product-mockup/package.json +1 -7
  192. package/skills/skill-project-retro-companion/package.json +1 -7
  193. package/skills/skill-proposal-redline-advisor/package.json +1 -7
  194. package/skills/skill-read-csv/SKILL.md +1 -1
  195. package/skills/skill-read-csv/package.json +0 -1
  196. package/skills/skill-read-csv/src/index.ts +30 -5
  197. package/skills/skill-read-excel/SKILL.md +1 -1
  198. package/skills/skill-read-excel/package.json +0 -1
  199. package/skills/skill-read-excel/src/index.ts +21 -8
  200. package/skills/skill-read-image/SKILL.md +1 -1
  201. package/skills/skill-read-image/package.json +0 -1
  202. package/skills/skill-read-pdf/SKILL.md +1 -1
  203. package/skills/skill-read-pdf/package.json +0 -1
  204. package/skills/skill-read-pdf/src/index.ts +15 -3
  205. package/skills/skill-regex-tester/package.json +1 -7
  206. package/skills/skill-remove-background/package.json +1 -7
  207. package/skills/skill-risk-disclosure-kit/package.json +1 -7
  208. package/skills/skill-roi-comparison-tool/package.json +1 -7
  209. package/skills/skill-sales-call-recapper/package.json +1 -7
  210. package/skills/skill-scaffold-project/package.json +1 -7
  211. package/skills/skill-scancommitpr/package.json +0 -2
  212. package/skills/skill-scancommitpush/package.json +0 -2
  213. package/skills/skill-scholarship-tracker/package.json +1 -7
  214. package/skills/skill-scientific-figure-check/package.json +1 -7
  215. package/skills/skill-seating-chart-maker/package.json +1 -7
  216. package/skills/skill-security-audit/package.json +1 -7
  217. package/skills/skill-seo-brief-builder/package.json +1 -7
  218. package/skills/skill-siteanalyze/package.json +19 -5
  219. package/skills/skill-slack-assistant/package.json +1 -7
  220. package/skills/skill-sleep-routine-analyzer/package.json +1 -7
  221. package/skills/skill-sms/package.json +0 -1
  222. package/skills/skill-social-media-kit/package.json +1 -7
  223. package/skills/skill-sound-effects/SKILL.md +34 -0
  224. package/skills/{skill-jingle-composer → skill-sound-effects}/package.json +4 -10
  225. package/skills/skill-sound-effects/src/index.ts +172 -0
  226. package/skills/skill-sound-effects/tsconfig.json +8 -0
  227. package/skills/skill-split-pdf/package.json +1 -7
  228. package/skills/skill-sponsorship-proposal-lab/package.json +1 -7
  229. package/skills/skill-spreadsheet-cleanroom/package.json +1 -7
  230. package/skills/skill-statistical-test-selector/package.json +1 -7
  231. package/skills/skill-stress-relief-playbook/package.json +1 -7
  232. package/skills/skill-study-guide-builder/package.json +1 -7
  233. package/skills/skill-subscription-spend-watcher/package.json +1 -7
  234. package/skills/skill-subtitle/package.json +0 -6
  235. package/skills/skill-survey-insight-extractor/package.json +1 -7
  236. package/skills/skill-terraform-generator/package.json +1 -7
  237. package/skills/skill-testimonial-graphics/package.json +1 -7
  238. package/skills/skill-timesheet/package.json +0 -6
  239. package/skills/skill-tmux-session/package.json +0 -1
  240. package/skills/skill-transcript/SKILL.md +3 -1
  241. package/skills/skill-transcript/package.json +0 -5
  242. package/skills/skill-travel-budget-balancer/package.json +1 -7
  243. package/skills/skill-validate-config/package.json +1 -7
  244. package/skills/skill-video/SKILL.md +3 -1
  245. package/skills/skill-video/package.json +0 -5
  246. package/skills/skill-video/src/providers/index.ts +4 -1
  247. package/skills/skill-video/src/providers/minimax.ts +100 -0
  248. package/skills/skill-video/src/types.ts +1 -1
  249. package/skills/skill-video-cut-suggester/package.json +1 -7
  250. package/skills/skill-video-downloader/package.json +1 -7
  251. package/skills/skill-video-thumbnail/package.json +1 -7
  252. package/skills/skill-voiceover-casting-assistant/package.json +1 -7
  253. package/skills/skill-watermark/package.json +1 -7
  254. package/skills/skill-webcrawling/package.json +11 -8
  255. package/skills/skill-webinar-script-coach/package.json +1 -7
  256. package/skills/skill-wellness-progress-reporter/package.json +1 -7
  257. package/skills/skill-workout-cycle-planner/package.json +1 -7
  258. package/skills/skill-write/package.json +0 -5
  259. package/skills/skill-jingle-composer/CLAUDE.md +0 -19
  260. package/skills/skill-jingle-composer/src/index.ts +0 -250
  261. /package/skills/{skill-extract-audio → skill-audio-extract}/CLAUDE.md +0 -0
  262. /package/skills/{skill-extract-audio → skill-audio-extract}/src/index.ts +0 -0
  263. /package/skills/{skill-extract-audio → skill-audio-extract}/tsconfig.json +0 -0
  264. /package/skills/{skill-generate-docx → skill-doc-generate}/CLAUDE.md +0 -0
  265. /package/skills/{skill-generate-docx → skill-doc-generate}/tsconfig.json +0 -0
  266. /package/skills/{skill-generate-excel → skill-excel}/CLAUDE.md +0 -0
  267. /package/skills/{skill-generate-excel → skill-excel}/tsconfig.json +0 -0
  268. /package/skills/{skill-jingle-composer → skill-music}/tsconfig.json +0 -0
  269. /package/skills/{skill-generate-pdf → skill-pdf-generate}/CLAUDE.md +0 -0
  270. /package/skills/{skill-generate-pdf → skill-pdf-generate}/tsconfig.json +0 -0
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: excel
3
+ version: 0.1.0
4
+ description: Generate Excel spreadsheets with tables, formulas, multiple sheets, styling, and optional AI-generated data.
5
+ category: Content Generation
6
+ tags:
7
+ - excel
8
+ - spreadsheet
9
+ - xlsx
10
+ - generation
11
+ - data
12
+ ---
13
+
14
+ # Excel
15
+
16
+ Generate `.xlsx` spreadsheets or CSV exports from templates, prompt-provided data, or AI-generated sample data. Use this when the user needs a workbook, budget, invoice sheet, report table, tracker, or structured spreadsheet file.
17
+
18
+ ## Usage
19
+
20
+ ```bash
21
+ skill-excel --preset budget --rows 12 --output ./budget.xlsx
22
+ skill-excel --prompt "Create a weekly content calendar" --output ./calendar.xlsx
23
+ skill-excel --format csv --preset invoice --output ./invoice.csv
24
+ ```
25
+
26
+ ## Inputs
27
+
28
+ - `--preset <name>`: use a built-in workbook template such as `budget`, `invoice`, or `tracker`
29
+ - `--prompt <text>`: ask AI to generate spreadsheet data
30
+ - `--rows <n>`: number of rows to create
31
+ - `--sheets <names>`: comma-separated sheet names
32
+ - `--format <xlsx|csv>`: output format
33
+ - `--output <path>`: output file path
34
+
35
+ ## Requirements
36
+
37
+ - `OPENAI_API_KEY` is required only when using prompt-based AI data generation.
38
+ - Local template generation does not need network access.
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "@hasnaxyz/skill-excel",
3
+ "version": "0.1.0",
4
+ "description": "Generate Excel spreadsheets with data, formulas, and professional styling",
5
+ "type": "module",
6
+ "bin": {
7
+ "skill-excel": "./src/index.ts"
8
+ },
9
+ "scripts": {
10
+ "dev": "bun run src/index.ts",
11
+ "build": "bun build src/index.ts --outdir dist --target node",
12
+ "typecheck": "tsc --noEmit"
13
+ },
14
+ "dependencies": {
15
+ "openai": "^4.77.0",
16
+ "xlsx": "^0.18.5"
17
+ },
18
+ "devDependencies": {
19
+ "@types/bun": "latest",
20
+ "typescript": "^5.7.0"
21
+ },
22
+ "publishConfig": {
23
+ "access": "restricted",
24
+ "registry": "https://registry.npmjs.org/"
25
+ },
26
+ "files": [
27
+ "src",
28
+ "tsconfig.json"
29
+ ]
30
+ }
@@ -1,11 +1,15 @@
1
1
  #!/usr/bin/env bun
2
- import * as XLSX from "xlsx";
3
2
  import { parseArgs } from "util";
4
3
  import { existsSync, mkdirSync, appendFileSync } from "fs";
5
4
  import { join } from "path";
6
- import OpenAI from "openai";
7
5
  import { randomUUID } from "crypto";
8
6
 
7
+ type XlsxModule = typeof import("xlsx");
8
+ type WorkSheet = import("xlsx").WorkSheet;
9
+ type WorkBook = import("xlsx").WorkBook;
10
+
11
+ let XLSX: XlsxModule;
12
+
9
13
  const SKILL_NAME = "generate-excel";
10
14
  const SESSION_ID = randomUUID().slice(0, 8);
11
15
 
@@ -37,11 +41,6 @@ function log(message: string, level: "info" | "error" | "success" | "warn" = "in
37
41
  }
38
42
  }
39
43
 
40
- // OpenAI client
41
- const openai = new OpenAI({
42
- apiKey: process.env.OPENAI_API_KEY,
43
- });
44
-
45
44
  // Type definitions
46
45
  interface ExcelCell {
47
46
  v: any; // value
@@ -118,6 +117,23 @@ const TEMPLATES: Record<string, (rows: number) => SheetData> = {
118
117
  }),
119
118
  };
120
119
 
120
+ async function loadXlsx(): Promise<XlsxModule> {
121
+ try {
122
+ return await import("xlsx");
123
+ } catch {
124
+ throw new Error("Missing dependency 'xlsx'. Run bun install in this skill directory.");
125
+ }
126
+ }
127
+
128
+ async function createOpenAIClient() {
129
+ try {
130
+ const { default: OpenAI } = await import("openai");
131
+ return new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
132
+ } catch {
133
+ throw new Error("Missing dependency 'openai'. Run bun install in this skill directory.");
134
+ }
135
+ }
136
+
121
137
  // Data generators
122
138
  function generateBudgetData(rows: number): any[][] {
123
139
  const categories = [
@@ -297,6 +313,7 @@ Return a JSON object with:
297
313
 
298
314
  Generate exactly ${rows} rows of data. Make the data realistic and varied.`;
299
315
 
316
+ const openai = await createOpenAIClient();
300
317
  const response = await openai.chat.completions.create({
301
318
  model: "gpt-4o-mini",
302
319
  messages: [
@@ -341,7 +358,7 @@ function parseJsonData(jsonString: string): SheetData {
341
358
 
342
359
  // Apply styling to worksheet
343
360
  function applyStyles(
344
- ws: XLSX.WorkSheet,
361
+ ws: WorkSheet,
345
362
  sheetData: SheetData,
346
363
  styling: "none" | "basic" | "professional"
347
364
  ) {
@@ -401,7 +418,7 @@ function applyStyles(
401
418
 
402
419
  // Add formulas to worksheet
403
420
  function addFormulas(
404
- ws: XLSX.WorkSheet,
421
+ ws: WorkSheet,
405
422
  sheetData: SheetData,
406
423
  startRow: number = 2
407
424
  ) {
@@ -423,7 +440,7 @@ function addFormulas(
423
440
 
424
441
  // Add summary row with totals
425
442
  function addSummaryRow(
426
- ws: XLSX.WorkSheet,
443
+ ws: WorkSheet,
427
444
  sheetData: SheetData
428
445
  ): void {
429
446
  const lastRow = sheetData.rows.length + 1;
@@ -458,7 +475,7 @@ function addSummaryRow(
458
475
  function createWorkbook(
459
476
  sheets: SheetData[],
460
477
  options: GenerateOptions
461
- ): XLSX.WorkBook {
478
+ ): WorkBook {
462
479
  const wb = XLSX.utils.book_new();
463
480
 
464
481
  sheets.forEach((sheetData) => {
@@ -494,6 +511,12 @@ function createWorkbook(
494
511
 
495
512
  // Main function
496
513
  async function main() {
514
+ if (process.argv.includes("--help") || process.argv.includes("-h")) {
515
+ printHelpAndExit();
516
+ }
517
+
518
+ XLSX = await loadXlsx();
519
+
497
520
  const { values, positionals } = parseArgs({
498
521
  args: process.argv.slice(2),
499
522
  options: {
@@ -510,7 +533,11 @@ async function main() {
510
533
  });
511
534
 
512
535
  if (values.help) {
513
- console.log(`
536
+ printHelpAndExit();
537
+ }
538
+
539
+ function printHelpAndExit(): never {
540
+ console.log(`
514
541
  Generate Excel - Create Excel spreadsheets with data and formatting
515
542
 
516
543
  Usage:
@@ -526,8 +553,8 @@ Options:
526
553
  --output <path> Output file path
527
554
  --help, -h Show this help
528
555
  `);
529
- process.exit(0);
530
- }
556
+ process.exit(0);
557
+ }
531
558
 
532
559
  const prompt = positionals[0];
533
560
 
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-experiment-power-calculator.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -22,7 +22,6 @@
22
22
  "text-extraction"
23
23
  ],
24
24
  "author": "",
25
- "license": "Apache-2.0",
26
25
  "dependencies": {
27
26
  "pdf-parse": "^1.1.1"
28
27
  },
@@ -32,9 +31,5 @@
32
31
  },
33
32
  "peerDependencies": {
34
33
  "typescript": "^5.0.0"
35
- },
36
- "repository": {
37
- "type": "git",
38
- "url": "git+https://github.com/hasnaxyz/skill-extract.git"
39
34
  }
40
35
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-extract-frames.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-extract-invoice.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-family-activity-curator.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-faq-packager.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-feedback-survey-designer.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-field-trip-planner.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-file-organizer.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-folder-tree.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-forecast-scenario-lab.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-form-filler.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-api-client.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-book-cover.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-chart.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-diagram.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-dockerfile.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-documentation.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-env.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-favicon.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-mock-data.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-pr-description.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-presentation.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-qrcode.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-regex.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-resume.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-sitemap.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-social-posts.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-generate-sql.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-gif-maker.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-github-manager.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-compose-gmail.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }
@@ -23,11 +23,5 @@
23
23
  "files": [
24
24
  "src",
25
25
  "tsconfig.json"
26
- ],
27
- "repository": {
28
- "type": "git",
29
- "url": "https://github.com/hasnaxyz/skill-goal-quarterly-roadmap.git"
30
- },
31
- "author": "Hasna",
32
- "license": "Apache-2.0"
26
+ ]
33
27
  }