{"_id":"@anthragz/quip-export","_rev":"5-3b66610aedc51886e0ec2f1d0aeda131","name":"@anthragz/quip-export","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.1":{"name":"@anthragz/quip-export","version":"1.0.1","keywords":["quip","export","backup","cli","documents","bulk-export","docx","html"],"author":{"name":"Quip Bulk Export Team"},"license":"MIT","_id":"@anthragz/quip-export@1.0.1","maintainers":[{"name":"anthragz","email":"raglinanthony@gmail.com"}],"homepage":"https://github.com/anthragz/quip-export#readme","bugs":{"url":"https://github.com/anthragz/quip-export/issues"},"bin":{"quip-export":"dist/cli/index.js"},"dist":{"shasum":"01e4c14038c8847653df85eea76f55dde77e74f4","tarball":"https://registry.npmjs.org/@anthragz/quip-export/-/quip-export-1.0.1.tgz","fileCount":317,"integrity":"sha512-BVRe75rfNSAoTuIiyxbJTNoYhVxkUU58K9uBysRIObkaklBO0IR7E1AiEVtJmo3zZeaLqfZ+GywBup/jZPwyOw==","signatures":[{"sig":"MEYCIQDWSYjdMIKbzSQf2SzBbmOJjTkCBFp0pBUfAD9e5+dhfAIhAIvRBK+sVK4misK4m62ajTar/vuf4RmI/unK2D+yG0xf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1801494},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"3aadf7ce5e911e273f575262e4cc4e51afeb69f0","scripts":{"dev":"ts-node src/cli/index.ts","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","start":"node dist/cli/index.js","format":"prettier --write src/**/*.ts","prepack":"npm run build","version":"npm run format && git add -A src","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:clean":"rm -rf dist && npm run build","postversion":"git push && git push --tags","format:check":"prettier --check src/**/*.ts","test:coverage":"jest --coverage","prepublishOnly":"npm run build:clean && npm run test && npm run lint"},"_npmUser":{"name":"anthragz","email":"raglinanthony@gmail.com"},"repository":{"url":"git+https://github.com/anthragz/quip-export.git","type":"git"},"_npmVersion":"11.5.1","description":"A command-line tool to export and download documents from Quip to local storage while preserving folder structure","directories":{},"_nodeVersion":"24.7.0","dependencies":{"docx":"^9.5.1","uuid":"^9.0.1","dotenv":"^16.3.1","keytar":"^7.9.0","cheerio":"^1.1.2","mammoth":"^1.11.0","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","ts-jest":"^29.1.1","ts-node":"^10.9.1","prettier":"^3.1.0","typescript":"^5.3.0","@types/jest":"^29.5.8","@types/node":"^20.10.0","@types/uuid":"^9.0.8","@types/cheerio":"^0.22.35","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/quip-export_1.0.1_1762770158202_0.05053418413819055","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@anthragz/quip-export","version":"1.0.2","keywords":["quip","export","backup","cli","documents","bulk-export","docx","html"],"author":{"name":"Quip Bulk Export Team"},"license":"MIT","_id":"@anthragz/quip-export@1.0.2","maintainers":[{"name":"anthragz","email":"raglinanthony@gmail.com"}],"homepage":"https://github.com/raglin/quip-export#readme","bugs":{"url":"https://github.com/raglin/quip-export/issues"},"bin":{"quip-export":"dist/cli/index.js"},"dist":{"shasum":"6e3a9bedddf21f3427488e23f24585854358a9c3","tarball":"https://registry.npmjs.org/@anthragz/quip-export/-/quip-export-1.0.2.tgz","fileCount":317,"integrity":"sha512-m9Vtxm/fX7i52ACKvge5zKfjuIQJA6fKdqyLlCyS2o+lg5/1m84qMhCqubE7ZTmPUiN5O7JjQwb75otX50+3Jg==","signatures":[{"sig":"MEUCIQCemMwmHtDX03p8ejFURnply32iMqlEocXuU7WjDrXMRwIgUyjsmjkFzLTUfbDgpo7wHtj5BaKlYo1go6Et4AWmiTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anthragz%2fquip-export@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1801488},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"4f5cfd1d0a8517eb25f70ca462c6338d2ea60ecf","scripts":{"dev":"ts-node src/cli/index.ts","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","start":"node dist/cli/index.js","format":"prettier --write src/**/*.ts","prepack":"npm run build","version":"npm run format && git add -A src","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:clean":"rm -rf dist && npm run build","postversion":"git push && git push --tags","format:check":"prettier --check src/**/*.ts","test:coverage":"jest --coverage","prepublishOnly":"npm run build:clean && npm run test && npm run lint"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f60abe8c-2447-40ef-85ce-3f8ef7cf1f4f"}},"repository":{"url":"git+https://github.com/raglin/quip-export.git","type":"git"},"_npmVersion":"11.6.2","description":"A command-line tool to export and download documents from Quip to local storage while preserving folder structure","directories":{},"_nodeVersion":"20.19.5","dependencies":{"docx":"^9.5.1","uuid":"^9.0.1","dotenv":"^16.3.1","keytar":"^7.9.0","cheerio":"^1.1.2","mammoth":"^1.11.0","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.54.0","ts-jest":"^29.1.1","ts-node":"^10.9.1","prettier":"^3.1.0","typescript":"^5.3.0","@types/jest":"^29.5.8","@types/node":"^20.10.0","@types/uuid":"^9.0.8","@types/cheerio":"^0.22.35","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/quip-export_1.0.2_1762771528294_0.9964008550442789","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@anthragz/quip-export","version":"1.1.0","description":"A command-line tool to export and download documents from Quip to local storage while preserving folder structure","main":"dist/index.js","bin":{"quip-export":"dist/cli/index.js"},"scripts":{"build":"tsc","build:clean":"rm -rf dist && npm run build","dev":"ts-node src/cli/index.ts","start":"node dist/cli/index.js","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","lint":"eslint src/**/*.ts","lint:fix":"eslint src/**/*.ts --fix","format":"prettier --write src/**/*.ts","format:check":"prettier --check src/**/*.ts","prepublishOnly":"npm run build:clean && npm run test && npm run lint","prepack":"npm run build","version":"npm run format && git add -A src","postversion":"git push && git push --tags"},"keywords":["quip","export","backup","cli","documents","bulk-export","docx","html"],"author":{"name":"Quip Bulk Export Team"},"homepage":"https://github.com/raglin/quip-export#readme","repository":{"type":"git","url":"git+https://github.com/raglin/quip-export.git"},"bugs":{"url":"https://github.com/raglin/quip-export/issues"},"license":"MIT","engines":{"node":">=16.0.0","npm":">=7.0.0"},"dependencies":{"cheerio":"^1.1.2","commander":"^11.1.0","docx":"^9.5.1","dotenv":"^16.3.1","keytar":"^7.9.0","mammoth":"^1.11.0","uuid":"^9.0.1"},"devDependencies":{"@types/cheerio":"^0.22.35","@types/jest":"^29.5.8","@types/node":"^20.10.0","@types/uuid":"^9.0.8","@typescript-eslint/eslint-plugin":"^6.13.0","@typescript-eslint/parser":"^6.13.0","eslint":"^8.54.0","jest":"^29.7.0","prettier":"^3.1.0","ts-jest":"^29.1.1","ts-node":"^10.9.1","typescript":"^5.3.0"},"gitHead":"44ed57f8d8f2e7bd6eabb12adcea833eade8c8f7","types":"./dist/index.d.ts","_id":"@anthragz/quip-export@1.1.0","_nodeVersion":"20.19.5","_npmVersion":"11.6.3","dist":{"integrity":"sha512-aOb7ojixBlUBmaFpbV9oY+UroiivlLNwT4btaVAcFcGpbpQI/x0XxodrMgJINWccOxhtZ1AWe5uOK5GasaQIlw==","shasum":"0d9528ecef63ad992f79500cba6b1ff6a2bdd347","tarball":"https://registry.npmjs.org/@anthragz/quip-export/-/quip-export-1.1.0.tgz","fileCount":321,"unpackedSize":1882006,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anthragz%2fquip-export@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBdQU8dJeEbbBwvWQ3nCxZ4ZXNCAL0LIhw4RvT0vfdTwAiEA7/gaPqATzGMnaBvPG7UfZLIG1uZQJriA34f8kgSUAKI="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f60abe8c-2447-40ef-85ce-3f8ef7cf1f4f"}},"directories":{},"maintainers":[{"name":"anthragz","email":"raglinanthony@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/quip-export_1.1.0_1763846566219_0.5877697695534441"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-10T10:22:38.083Z","modified":"2025-11-22T21:22:46.919Z","1.0.0":"2025-11-06T13:23:48.627Z","1.0.1":"2025-11-10T10:22:38.410Z","1.0.2":"2025-11-10T10:45:28.505Z","1.1.0":"2025-11-22T21:22:46.476Z"},"bugs":{"url":"https://github.com/raglin/quip-export/issues"},"author":{"name":"Quip Bulk Export Team"},"license":"MIT","homepage":"https://github.com/raglin/quip-export#readme","keywords":["quip","export","backup","cli","documents","bulk-export","docx","html"],"repository":{"type":"git","url":"git+https://github.com/raglin/quip-export.git"},"description":"A command-line tool to export and download documents from Quip to local storage while preserving folder structure","maintainers":[{"name":"anthragz","email":"raglinanthony@gmail.com"}],"readme":"# Quip Bulk Export Tool\n\nA command-line tool to export and download your documents from Quip to local storage while preserving folder structure and metadata. Perfect for backing up your Quip documents or preparing them for migration to other cloud services.\n\n## 🚀 Quick Start\n\n### 1. Installation\n\n```bash\n\n# Install globally via npm\nnpm install -g @anthragz/quip-export\n\n# OR Build locally and link\nnpm install\nnpm run build\nnpm link\n```\n\n### 2. First Time Setup\n\n```bash\n# Configure your Quip domain and authentication\nquip-export setup\n```\n\nThis interactive setup will guide you through:\n- Configuring your Quip domain (e.g., quip.com)\n- Testing your connection\n\n### 3. Browse Your Documents\n\n```bash\n# Lis documents\nquip-export list\n\n```\n\n### 4. Export Your Documents\n\n```bash\n# Option 1: Export from a URL (fastest for specific documents/folders)\nquip-export export start --url https://quip.com/AbC123XyZ456/Document-Title\n\n# Option 2: Export all documents (requires configuration)\nquip-export export configure\nquip-export export start\n```\n\n## ✨ Key Features\n\n- **🔗 URL-Based Export**: Export specific documents or folders by simply providing their Quip URLs from your browser\n- **📅 Automatic Date Prefixing**: Exported filenames are automatically prefixed with the document's last updated date (e.g., `2024-11-20 Meeting Notes.docx`) for easy chronological organization\n- **🗂️ Folder Structure Preservation**: Maintains your Quip folder hierarchy in the local export\n- **📄 Multiple Export Formats**: Support for native (DOCX/XLSX), HTML, and Markdown formats\n- **🔄 Batch Processing**: Efficient bulk export with configurable batch sizes and rate limiting\n- **🔒 Secure Authentication**: Uses Quip Personal Access Tokens for secure API access\n- **⚡ Resume Capability**: Automatically resumes interrupted exports from where they left off\n- **🎯 Flexible Configuration**: Customizable export settings including date formats, output directories, and format-specific options\n\n## 📋 Table of Contents\n\n- [Key Features](#key-features)\n- [Installation](#installation)\n- [Authentication Setup](#authentication-setup)\n- [Usage Guide](#usage-guide)\n- [URL-Based Export](#url-based-export)\n- [Export Configuration](#export-configuration)\n- [Folder Structure](#folder-structure)\n- [File Formats](#file-formats)\n- [Troubleshooting](#troubleshooting)\n- [Cloud Upload Guide](#cloud-upload-guide)\n- [Advanced Usage](#advanced-usage)\n\n## 🔧 Installation\n\n### Prerequisites\n\n- Node.js 18 or higher\n- npm or yarn package manager\n\n### Install Options\n\n#### Option 1: Global Installation (Recommended)\n```bash\nnpm install -g ./\nquip-exort --help\n```\n\n#### Option 2: Local Installation\n```bash\nnpm install ./\nnpx quip-export --help\n```\n\n#### Option 3: From Source\n```bash\ngit clone https://github.com/anthragz/quip-export.git\ncd quip-export\nnpm install\nnpm run build\nnpm link\n```\n\n## 🔐 Authentication Setup\n\n### Step 1: Run Interactive Setup\n\nThe tool supports both public Quip (quip.com) and enterprise instances:\n\n```bash\nquip-export setup\n```\n\nYou'll be prompted for:\n- **Quip Domain**: Enter your domain without http:// or trailing / (e.g., `quip.com` or `quip-enterprise.com`)\n- **Personal Access Token**: Your Quip API token\n- **Export Preferences**: Output directory, format, and other settings\n\n### Step 2: Get Your Personal Access Token\n\n1. **Generate Token**: Visit your domain's token page:\n   - Public Quip: https://quip.com/dev/token\n   - Enterprise: https://your-domain.com/dev/token\n\n2. **Copy Token**: Click \"Generate Token\" and copy the generated token\n\n3. **Configure Tool**: Paste the token when prompted during setup \n\n### Step 3: Verify Authentication\n\n```bash\n# Check authentication status\nquip-export auth status\n```\n\n## 📖 Usage Guide\n\n### Basic Commands\n\n| Command | Description |\n|---------|-------------|\n| `quip-export setup` | Interactive setup for authentication and export preferences |\n| `quip-export auth status` | Check authentication status |\n| `quip-export list` | List all accessible documents |\n| `quip-export list --url <url>` | List documents from a specific Quip URL |\n| `quip-export export configure` | Configure export preferences |\n| `quip-export export preview` | Preview what will be exported |\n| `quip-export export preview --url <url>` | Preview export from a specific Quip URL |\n| `quip-export export start` | Start the export process |\n| `quip-export export start --url <url>` | Export from a specific Quip URL |\n| `quip-export export check-formats` | Check available export formats and dependencies |\n| `quip-export --help` | Show all available commands |\n\n### Browsing Your Documents\n\n#### List Documents\n```bash\n# List all accessible documents\nquip-export list\n\n# List with detailed information\nquip-export list --verbose\n\n# List in CSV format\nquip-export list --format csv\n\n# Limit results\nquip-export list --limit 20\n```\n\nThe list command displays both created and updated dates for each document:\n\n```\nTitle                                              Type        Created      Updated      Folder\n──────────────────────────────────────────────────────────────────────────────────────────────\nMeeting Notes                                      DOCUMENT    2024-01-15   2024-11-20   Private\nProject Proposal                                   DOCUMENT    2024-03-10   2024-10-05   Shared\n```\n\n#### List Documents from URL\n```bash\n# List documents from a specific folder URL\nquip-export list --url https://quip.com/fNTdOlbHmWrW/Team-Documents\n\n# List a single document by URL\nquip-export list --url https://quip.com/AbC123XyZ456/Meeting-Notes\n\n# Combine with other options\nquip-export list --url https://quip.com/fNTdOlbHmWrW --verbose\n```\n\n### Exporting Documents\n\n#### Basic Export Workflow\n```bash\n# 1. Configure export preferences\nquip-export export configure\n\n# 2. Preview what will be exported\nquip-export export preview\n\n# 3. Start the export\nquip-export export start\n```\n\nThe preview command shows the exact filenames that will be created, including date prefixes:\n\n```\n1. 📄 Meeting Notes\n   Type: DOCUMENT\n   Folder: Private\n   Updated: 2024-11-20\n   Output: exported-documents/Private/2024-11-20 Meeting Notes.docx\n\n2. 📄 Project Proposal\n   Type: DOCUMENT\n   Folder: Shared\n   Updated: 2024-10-05\n   Output: exported-documents/Shared/2024-10-05 Project Proposal.docx\n```\n\n#### URL-Based Export\n\nExport specific documents or folders directly using their Quip URLs. This is perfect when you want to export a subset of documents without configuring complex filters.\n\n##### Export a Single Document\n```bash\n# Copy the URL from your browser and export it\nquip-export export start --url https://quip.com/AbC123XyZ456/Meeting-Notes\n```\n\n##### Export an Entire Folder\n```bash\n# Export all accessible documents from a folder\nquip-export export start --url https://quip.com/fNTdOlbHmWrW/Team-Documents\n```\n\n##### Preview Before Exporting\n```bash\n# Preview what will be exported from a URL\nquip-export export preview --url https://quip.com/fNTdOlbHmWrW/Team-Documents\n\n# Then export if it looks good\nquip-export export start --url https://quip.com/fNTdOlbHmWrW/Team-Documents\n```\n\n##### Supported URL Formats\n\nThe tool accepts various Quip URL formats:\n\n```bash\n# Standard format with title\nhttps://quip.com/AbC123XyZ456/Document-Title\n\n# Without title\nhttps://quip.com/AbC123XyZ456\n\n# With query parameters (ignored)\nhttps://quip.com/AbC123XyZ456/Document-Title?section=abc\n\n# Enterprise domains\nhttps://quip-company.com/AbC123XyZ456/Document-Title\n\n# Custom domains\nhttps://docs.company.com/AbC123XyZ456\n```\n\n##### How to Get a Quip URL\n\n1. Open the document or folder in your web browser\n2. Copy the URL from the address bar\n3. Paste it into the `--url` parameter\n\nExample workflow:\n```bash\n# 1. Browse to a folder in Quip: https://quip.com/fNTdOlbHmWrW/Q4-Planning\n# 2. Copy the URL\n# 3. Export it:\nquip-export export start --url https://quip.com/fNTdOlbHmWrW/Q4-Planning\n```\n\n##### URL Export Features\n\n- **Automatic Type Detection**: The tool automatically determines if the URL is a document or folder\n- **Permission Handling**: Skips documents you don't have access to (in folders) with clear warnings\n- **Progress Tracking**: Shows real-time progress for folder exports\n- **Folder Structure**: Preserves folder structure when exporting from folder URLs\n- **Date Prefixing**: Applies your configured date prefix settings to exported files\n\n## 🔗 URL-Based Export\n\nURL-based export allows you to export specific documents or folders by providing their Quip URLs directly from your web browser. This is the fastest way to export a subset of documents without configuring complex filters or navigating folder structures.\n\n### Quick Start\n\n```bash\n# 1. Open a document or folder in your browser\n# 2. Copy the URL from the address bar\n# 3. Export it:\nquip-export export start --url https://quip.com/AbC123XyZ456/Document-Title\n```\n\n### Supported URL Formats\n\nThe tool accepts Quip URLs in various formats and automatically extracts the thread ID:\n\n| Format | Example | Notes |\n|--------|---------|-------|\n| Standard with title | `https://quip.com/AbC123XyZ456/Document-Title` | Most common format |\n| Without title | `https://quip.com/AbC123XyZ456` | Also valid |\n| With query parameters | `https://quip.com/AbC123XyZ456?section=abc` | Query params ignored |\n| Enterprise domain | `https://quip-company.com/AbC123XyZ456` | Custom domains supported |\n| With path segments | `https://quip.com/AbC123XyZ456/Title/extra` | Only thread ID extracted |\n\n**Thread ID Requirements:**\n- Alphanumeric characters only\n- Minimum 8 characters (typically 12)\n- Case-sensitive\n- First path segment after domain\n\n### Use Cases\n\n#### Export a Single Document\n\nPerfect for backing up or sharing a specific document:\n\n```bash\n# Copy URL from browser\nquip-export export start --url https://quip.com/AbC123XyZ456/Meeting-Notes\n\n# Output:\n# 🚀 Starting export from URL: https://quip.com/AbC123XyZ456/Meeting-Notes\n# Export scope: URL: https://quip.com/AbC123XyZ456/Meeting-Notes\n# ✅ Exported: 2024-11-20 Meeting Notes.docx\n```\n\n#### Export an Entire Folder\n\nExport all accessible documents from a folder and its subfolders:\n\n```bash\n# Copy folder URL from browser\nquip-export export start --url https://quip.com/fNTdOlbHmWrW/Team-Documents\n\n# Output:\n# 🚀 Starting export from URL: https://quip.com/fNTdOlbHmWrW/Team-Documents\n# Export scope: URL: https://quip.com/fNTdOlbHmWrW/Team-Documents\n# \n# Exporting 15 documents...\n# [1/15] ✅ 2024-11-20 Meeting Notes.docx\n# [2/15] ✅ 2024-11-15 Project Plan.docx\n# ...\n# [15/15] ✅ 2024-10-01 Archive.docx\n# \n# ✅ Export complete! 15 documents exported in 45s\n```\n\n#### Preview Before Exporting\n\nCheck what will be exported before starting:\n\n```bash\n# Preview folder contents\nquip-export export preview --url https://quip.com/fNTdOlbHmWrW/Team-Documents\n\n# Output shows:\n# - Number of documents\n# - Document titles\n# - Output paths\n# - Folder structure\n\n# Then export if it looks good\nquip-export export start --url https://quip.com/fNTdOlbHmWrW/Team-Documents\n```\n\n#### List Documents from URL\n\nBrowse folder contents without exporting:\n\n```bash\n# List all documents in a folder\nquip-export list --url https://quip.com/fNTdOlbHmWrW/Team-Documents\n\n# List with details\nquip-export list --url https://quip.com/fNTdOlbHmWrW --verbose\n\n# List a single document\nquip-export list --url https://quip.com/AbC123XyZ456/Document\n```\n\n### How It Works\n\n1. **URL Parsing**: Extracts the thread ID from the URL\n2. **Resource Detection**: Determines if it's a document or folder\n3. **Permission Check**: Verifies you have access to the resource\n4. **Discovery**: \n   - For documents: Prepares single document for export\n   - For folders: Discovers all accessible documents recursively\n5. **Export**: Uses your configured export settings (format, date prefix, etc.)\n6. **Progress**: Shows real-time progress and summary\n\n### Permission Handling\n\nWhen exporting folders, you may not have access to all documents:\n\n```bash\nquip-export export start --url https://quip.com/fNTdOlbHmWrW/Shared-Folder\n\n# Output:\n# Exporting 20 documents...\n# [1/20] ✅ 2024-11-20 Document 1.docx\n# [2/20] ⚠️  Skipped: Document 2 (no access)\n# [3/20] ✅ 2024-11-19 Document 3.docx\n# ...\n# \n# ⚠️  Skipped 3 document(s) due to access permissions\n# ✅ Successfully exported 17 documents\n```\n\n**Permission Behavior:**\n- Documents you can access: Exported normally\n- Documents you can't access: Skipped with warning\n- Export continues without failing\n- Summary shows skipped count\n\n### Combining with Other Options\n\nURL-based export works with other CLI options:\n\n```bash\n# Use custom configuration file\nquip-export export start --url https://quip.com/AbC123XyZ456 --config ./my-config.json\n\n# Dry run (preview without downloading)\nquip-export export start --url https://quip.com/fNTdOlbHmWrW --dry-run\n\n# List with custom format\nquip-export list --url https://quip.com/fNTdOlbHmWrW --format csv\n\n# Preview with limit\nquip-export export preview --url https://quip.com/fNTdOlbHmWrW --limit 10\n```\n\n### Comparison: URL vs Full Export\n\n| Feature | URL-Based Export | Full Export |\n|---------|------------------|-------------|\n| **Speed** | Fast (specific subset) | Slower (all documents) |\n| **Setup** | No configuration needed | Requires filter configuration |\n| **Use Case** | Specific documents/folders | Complete backup |\n| **Discovery** | Single URL | All accessible documents |\n| **Filters** | URL defines scope | Configuration defines scope |\n| **Best For** | Ad-hoc exports, sharing | Scheduled backups, migrations |\n\n### Examples by Scenario\n\n#### Scenario 1: Export Project Documentation\n```bash\n# You're working on a project and want to backup its folder\n# 1. Open the project folder in Quip\n# 2. Copy URL: https://quip.com/fNTdOlbHmWrW/Q4-Project\n# 3. Export:\nquip-export export start --url https://quip.com/fNTdOlbHmWrW/Q4-Project\n```\n\n#### Scenario 2: Share a Single Document\n```bash\n# You need to send a document to someone outside Quip\n# 1. Open the document in Quip\n# 2. Copy URL: https://quip.com/AbC123XyZ456/Proposal\n# 3. Export:\nquip-export export start --url https://quip.com/AbC123XyZ456/Proposal\n# 4. Share the exported file\n```\n\n#### Scenario 3: Archive Team Documents\n```bash\n# Your team is moving to a new platform\n# 1. Get the team folder URL: https://quip.com/fNTdOlbHmWrW/Team-Docs\n# 2. Preview what will be exported:\nquip-export export preview --url https://quip.com/fNTdOlbHmWrW/Team-Docs\n# 3. Export everything:\nquip-export export start --url https://quip.com/fNTdOlbHmWrW/Team-Docs\n```\n\n#### Scenario 4: Verify Access Before Export\n```bash\n# You want to check what you can access in a shared folder\n# 1. List documents first:\nquip-export list --url https://quip.com/fNTdOlbHmWrW/Shared --verbose\n# 2. Preview export:\nquip-export export preview --url https://quip.com/fNTdOlbHmWrW/Shared\n# 3. Export if satisfied:\nquip-export export start --url https://quip.com/fNTdOlbHmWrW/Shared\n```\n\n### Tips and Best Practices\n\n1. **Always Preview First**: Use `export preview --url` to verify what will be exported\n2. **Test with List**: Use `list --url` to check access before exporting large folders\n3. **Copy from Browser**: Always copy URLs directly from your browser's address bar\n4. **Check Permissions**: Expect some documents to be skipped in shared folders\n5. **Use Verbose Mode**: Add `--verbose` to see detailed information about skipped documents\n6. **Verify in Browser**: If a URL doesn't work, verify it opens correctly in your browser first\n7. **Match Domains**: Ensure your configured domain matches the URL's domain\n\n## ⚙️ Export Configuration\n\n### Interactive Configuration\n\nRun the interactive configuration wizard:\n\n```bash\nquip-export export configure\n```\n\nThis will prompt you for:\n- **Output Directory**: Where to save exported files (default: `./exported-documents`)\n- **Export Format**: Choose from native (DOCX/XLSX), HTML, or Markdown\n- **Date Prefix**: Enable/disable date prefixing and choose date format pattern\n- **Format-Specific Options**: Additional options for selected format (e.g., markdown image handling)\n- **Document Selection**: Include shared documents, preserve folder structure\n- **Performance Settings**: Batch size, rate limiting, retry attempts\n\n### Configuration File\n\nThe tool creates a `.export-config.json` file with your settings:\n\n```json\n{\n  \"quip\": {\n    \"domain\": \"quip.com\",\n    \"baseUrl\": \"https://platform.quip.com\",\n    \"personalAccessToken\": \"your-token-here\"\n  },\n  \"export\": {\n    \"outputDirectory\": \"./exported-documents\",\n    \"exportFormat\": \"native\",\n    \"datePrefix\": {\n      \"enabled\": true,\n      \"format\": \"YYYY-MM-DD\"\n    },\n    \"formatSpecificOptions\": {\n      \"markdown\": {\n        \"imageHandling\": \"separate\",\n        \"preserveComments\": false,\n        \"frontMatter\": true\n      }\n    },\n    \"includeSharedDocuments\": true,\n    \"preserveFolderStructure\": true,\n    \"batchSize\": 10,\n    \"retryAttempts\": 3,\n    \"rateLimitDelay\": 1000\n  }\n}\n```\n\n### Date Prefix Configuration\n\nBy default, exported filenames are automatically prefixed with the document's last updated date in ISO 8601 format (YYYY-MM-DD). This provides chronological organization and makes it easy to identify when documents were last modified.\n\n#### Date Prefix Options\n\n- **enabled** (boolean, default: `true`): Enable or disable date prefixing\n- **format** (string, default: `\"YYYY-MM-DD\"`): Date format pattern\n\n#### Supported Date Formats\n\nThe date format pattern uses the following tokens:\n- `YYYY` - Four-digit year (e.g., 2024)\n- `MM` - Two-digit month (01-12)\n- `DD` - Two-digit day (01-31)\n\nCommon format patterns:\n- `YYYY-MM-DD` - ISO 8601 format (default): `2024-11-20 Document Title.docx`\n- `YYYY-DD-MM` - Year-day-month format: `2024-20-11 Document Title.docx`\n- `MM-DD-YYYY` - US format: `11-20-2024 Document Title.docx`\n- `DD-MM-YYYY` - European format: `20-11-2024 Document Title.docx`\n\n#### Example Filenames\n\nWith date prefixing enabled (default):\n```\n2024-11-20 Meeting Notes.docx\n2024-10-15 Project Proposal.docx\n2023-12-01 Annual Report.docx\n```\n\nWithout date prefixing (disabled):\n```\nMeeting Notes.docx\nProject Proposal.docx\nAnnual Report.docx\n```\n\n#### Configuring Date Prefix\n\nDuring interactive configuration:\n```bash\nquip-export export configure\n```\n\nYou'll be prompted:\n```\n📅 Date Prefix Configuration:\nEnable date prefix for filenames? (y/n, default: y): y\nDate format (YYYY-MM-DD, YYYY-DD-MM, MM-DD-YYYY, DD-MM-YYYY, default: YYYY-MM-DD): YYYY-MM-DD\n```\n\nOr manually edit `.export-config.json`:\n```json\n{\n  \"export\": {\n    \"datePrefix\": {\n      \"enabled\": false,\n      \"format\": \"YYYY-MM-DD\"\n    }\n  }\n}\n```\n\n### Available Export Formats\n\nCheck which formats are available on your system:\n\n```bash\nquip-export export check-formats\n```\n\nSupported formats:\n- **native**: Document-appropriate format (DOCX for documents, XLSX for spreadsheets)\n- **html**: Universal web format\n- **markdown**: Plain text markup (requires pandoc for full support)\n\n## 📁 Folder Structure\n\nThe tool preserves your Quip folder organization in the local export. By default, filenames are prefixed with the document's last updated date for easy chronological organization:\n\n```\nmy-quip-backup/\n├── Private/\n│   ├── Meeting Notes/\n│   │   ├── 2024-01-15 Team Standup.docx\n│   │   └── 2024-03-20 Project Review.docx\n│   └── Personal Documents/\n│       └── 2024-02-10 My Ideas.docx\n├── Shared/\n│   ├── Company Docs/\n│   │   ├── 2024-11-01 Employee Handbook.docx\n│   │   └── 2024-10-15 Policies.docx\n│   └── Team Projects/\n│       └── 2024-11-20 Q4 Planning.docx\n├── Starred/\n│   └── 2024-09-05 Important Reference.docx\n└── Archive/\n    └── Old Projects/\n        └── 2023-12-01 Legacy Document.docx\n```\n\n### Folder Types\n\n- **Private**: Your personal documents\n- **Shared**: Documents shared with you or that you've shared\n- **Starred**: Documents you've marked as favorites\n- **Archive**: Archived documents (if accessible)\n\n## 📄 File Formats\n\n### Native Format (Recommended)\n- **Best for**: Documents that will be edited in Microsoft Word or Google Docs\n- **Includes**: Full formatting, images, tables, comments\n- **File types**: DOCX for documents, XLSX for spreadsheets\n- **File size**: Smaller, compressed format\n- **Compatibility**: Works with most office applications\n  > ℹ️ **Note:** Embedded images in documents are not exported in this format\n\n### HTML Format\n- **Best for**: Web viewing, simple archival\n- **Includes**: Basic formatting, embedded images\n- **File size**: Larger due to embedded media\n- **Compatibility**: Opens in any web browser\n\n### Markdown Format\n- **Best for**: Version control, plain text editing\n- **Includes**: Text content, basic formatting, optional images\n- **Requirements**: Pandoc for full conversion support\n- **Options**: Configure image handling, comments, front matter\n- **Compatibility**: Works with any text editor\n\n## 🔍 Troubleshooting\n\n### Authentication Issues\n\n#### \"Invalid token\" or \"Authentication failed\"\n```bash\n# Check your token status\nquip-export auth status\n\n# Regenerate your personal access token\n# Visit: https://your-domain.com/dev/token\n# Then reconfigure:\nquip-export setup\n```\n\n#### \"Domain not configured\" or \"Invalid domain\"\n```bash\n# Reconfigure your domain and token\nquip-export setup\n\n# Verify domain format (no https://, just the domain like quip.com)\n```\n\n### Export Issues\n\n#### \"No documents found\"\n```bash\n# Check if you have access to documents\nquip-export list\n\n# List with verbose output to see details\nquip-export list --verbose\n\n# Check authentication\nquip-export auth status\n```\n\n#### \"Export failed\" or \"Rate limit exceeded\"\n```bash\n# Reconfigure with higher rate limit delay\nquip-export export configure\n# When prompted, set rate limit delay to 2000ms or higher\n\n# Reduce batch size in configuration\n# Set batch size to 5 or lower during configuration\n\n# Check available disk space\ndf -h\n```\n\n#### \"Permission denied\" or \"Cannot create directory\"\n```bash\n# Check output directory permissions\nls -la ./\n\n# Reconfigure with different output directory\nquip-export export configure\n# Choose a directory you have write access to\n\n# Create directory manually\nmkdir -p ./my-backup\n```\n\n### Network Issues\n\n#### \"Connection timeout\" or \"Network error\"\n```bash\n# Check internet connection\nping quip.com\n\n# Check authentication status\nquip-export auth status\n\n```\n\n### File System Issues\n\n#### \"Filename too long\" or \"Invalid characters\"\n- The tool automatically sanitizes filenames\n- If issues persist, try a shorter output path\n- Check available disk space: `df -h`\n\n#### \"Disk full\" or \"No space left\"\n```bash\n# Check available space\ndf -h\n\n# Reconfigure with different output directory\nquip-export export configure\n# Choose a directory on a drive with more space\n```\n\n### URL-Based Export Issues\n\n#### \"Invalid Quip URL\" or \"Cannot extract thread ID\"\n```bash\n# Verify the URL format is correct\n# Expected formats:\n#   https://quip.com/ThreadID/optional-title\n#   https://quip.com/ThreadID\n\n# Example of valid URL:\nquip-export export start --url https://quip.com/AbC123XyZ456/Document-Title\n\n# Common mistakes:\n# ❌ Missing https://\n# ❌ Incomplete URL (just the thread ID)\n# ❌ URL from a different service\n```\n\n#### \"Resource not found\" or \"Thread does not exist\"\n```bash\n# Verify the URL is correct by opening it in your browser first\n# Make sure you're logged into Quip in your browser\n\n# Check if you have access to the document/folder\n# Try listing it first:\nquip-export list --url https://quip.com/AbC123XyZ456\n\n# If the URL works in browser but not in the tool:\n# 1. Check your authentication\nquip-export auth status\n\n# 2. Verify you're using the correct domain\n# The domain in the URL should match your configured domain\n```\n\n#### \"Skipped documents due to permissions\"\n```bash\n# This is normal when exporting folders with mixed permissions\n# The tool will:\n# - Export documents you have access to\n# - Skip documents you don't have access to\n# - Show warnings for skipped documents\n# - Display a summary at the end\n\n# Example output:\n# ⚠️  Skipped 3 document(s) due to access permissions\n# ✅ Successfully exported 15 documents\n\n# To see which documents were skipped:\nquip-export export start --url https://quip.com/FolderID --verbose\n```\n\n#### \"Authentication required\" when using URL\n```bash\n# Make sure you're authenticated\nquip-export auth status\n\n# If not authenticated, run setup\nquip-export setup\n\n# Verify your token has the necessary permissions\n# Visit: https://your-domain.com/dev/token\n# Regenerate if needed\n```\n\n#### URL works in browser but not in tool\n```bash\n# 1. Verify domain configuration matches the URL\n#    If URL is https://quip-company.com/...\n#    Your configured domain should be quip-company.com\n\n# 2. Check authentication for that domain\nquip-export auth status\n\n# 3. Reconfigure if needed\nquip-export setup\n\n# 4. Test with list command first\nquip-export list --url https://your-url-here\n```\n\n#### Folder URL exports only some documents\n```bash\n# This is expected behavior - the tool only exports documents you have access to\n\n# To see what will be exported before starting:\nquip-export export preview --url https://quip.com/FolderID\n\n# To see detailed information about skipped documents:\nquip-export export start --url https://quip.com/FolderID --verbose\n\n# Note: Subfolders within the folder are also traversed\n# All accessible documents in the folder tree will be exported\n```\n\n### Common Issues\n\n1. **Authentication Problems**: Regenerate your personal access token\n2. **Export Failures**: Check network connection and disk space\n3. **Missing Documents**: Verify folder access and permissions\n4. **Slow Performance**: Increase rate limit delay or reduce batch size\n5. **Invalid URL**: Verify URL format and copy directly from browser\n6. **Resource Not Found**: Check URL in browser first and verify authentication\n7. **Partial Folder Export**: Normal when you don't have access to all documents in a folder\n\n### Reporting Issues\n\nWhen reporting issues, include:\n- Command used\n- Error message\n- Operating system\n- Node.js version (`node --version`)\n- Tool version (`quip-export --version`)\n\n## 📄 License\n\nMIT License - see LICENSE file for details.\n\n## 🤝 Contributing\n\nContributions welcome! Please see CONTRIBUTING.md for guidelines.","readmeFilename":"README.md"}