@el-j/google-sheet-translations 2.2.0 → 3.0.0-beta.13

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 (122) hide show
  1. package/README.md +44 -1
  2. package/dist/action-entrypoint.d.ts.map +1 -1
  3. package/dist/core/rowTransformer.d.ts +26 -0
  4. package/dist/core/rowTransformer.d.ts.map +1 -0
  5. package/dist/esm/index.js +9549 -2524
  6. package/dist/getMultipleSpreadSheetsData.d.ts.map +1 -1
  7. package/dist/getSpreadSheetData.d.ts +3 -3
  8. package/dist/getSpreadSheetData.d.ts.map +1 -1
  9. package/dist/index.d.ts +13 -8
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +9656 -2611
  12. package/dist/migration/migrateV3.d.ts +60 -0
  13. package/dist/migration/migrateV3.d.ts.map +1 -0
  14. package/dist/providers/assetContracts.d.ts +88 -0
  15. package/dist/providers/assetContracts.d.ts.map +1 -0
  16. package/dist/providers/capabilities.d.ts +50 -0
  17. package/dist/providers/capabilities.d.ts.map +1 -0
  18. package/dist/providers/catalog.d.ts +73 -0
  19. package/dist/providers/catalog.d.ts.map +1 -0
  20. package/dist/providers/config.d.ts +56 -0
  21. package/dist/providers/config.d.ts.map +1 -0
  22. package/dist/providers/contracts.d.ts +138 -0
  23. package/dist/providers/contracts.d.ts.map +1 -0
  24. package/dist/providers/cryptpad/assetProvider.d.ts +37 -0
  25. package/dist/providers/cryptpad/assetProvider.d.ts.map +1 -0
  26. package/dist/providers/cryptpad/chainpad.d.ts +15 -0
  27. package/dist/providers/cryptpad/chainpad.d.ts.map +1 -0
  28. package/dist/providers/cryptpad/client.d.ts +195 -0
  29. package/dist/providers/cryptpad/client.d.ts.map +1 -0
  30. package/dist/providers/cryptpad/crypto.d.ts +46 -0
  31. package/dist/providers/cryptpad/crypto.d.ts.map +1 -0
  32. package/dist/providers/cryptpad/driveCatalogProvider.d.ts +23 -0
  33. package/dist/providers/cryptpad/driveCatalogProvider.d.ts.map +1 -0
  34. package/dist/providers/cryptpad/driveClient.d.ts +42 -0
  35. package/dist/providers/cryptpad/driveClient.d.ts.map +1 -0
  36. package/dist/providers/cryptpad/fullProvider.d.ts +48 -0
  37. package/dist/providers/cryptpad/fullProvider.d.ts.map +1 -0
  38. package/dist/providers/cryptpad/index.d.ts +25 -0
  39. package/dist/providers/cryptpad/index.d.ts.map +1 -0
  40. package/dist/providers/cryptpad/netflux.d.ts +27 -0
  41. package/dist/providers/cryptpad/netflux.d.ts.map +1 -0
  42. package/dist/providers/cryptpad/provider.d.ts +37 -0
  43. package/dist/providers/cryptpad/provider.d.ts.map +1 -0
  44. package/dist/providers/cryptpad/sheetOutputProvider.d.ts +46 -0
  45. package/dist/providers/cryptpad/sheetOutputProvider.d.ts.map +1 -0
  46. package/dist/providers/cryptpad/sheetParser.d.ts +196 -0
  47. package/dist/providers/cryptpad/sheetParser.d.ts.map +1 -0
  48. package/dist/providers/cryptpad/sheetProvider.d.ts +38 -0
  49. package/dist/providers/cryptpad/sheetProvider.d.ts.map +1 -0
  50. package/dist/providers/cryptpad/sheetSyncProvider.d.ts +46 -0
  51. package/dist/providers/cryptpad/sheetSyncProvider.d.ts.map +1 -0
  52. package/dist/providers/google/index.d.ts +4 -0
  53. package/dist/providers/google/index.d.ts.map +1 -0
  54. package/dist/providers/google/providers.d.ts +106 -0
  55. package/dist/providers/google/providers.d.ts.map +1 -0
  56. package/dist/providers/index.d.ts +25 -0
  57. package/dist/providers/index.d.ts.map +1 -0
  58. package/dist/providers/orchestrator.d.ts +74 -0
  59. package/dist/providers/orchestrator.d.ts.map +1 -0
  60. package/dist/providers/runtime.d.ts +30 -0
  61. package/dist/providers/runtime.d.ts.map +1 -0
  62. package/dist/providers/syncEngine.d.ts +107 -0
  63. package/dist/providers/syncEngine.d.ts.map +1 -0
  64. package/dist/setup/cryptpadCli.d.ts +2 -0
  65. package/dist/setup/cryptpadCli.d.ts.map +1 -0
  66. package/dist/setup/gcpTransport.d.ts +25 -0
  67. package/dist/setup/gcpTransport.d.ts.map +1 -1
  68. package/dist/setup/migrateV3Cli.d.ts +2 -0
  69. package/dist/setup/migrateV3Cli.d.ts.map +1 -0
  70. package/dist/setup/providerCli.d.ts +2 -0
  71. package/dist/setup/providerCli.d.ts.map +1 -0
  72. package/dist/setup/wifSetup.d.ts +1 -1
  73. package/dist/setup/wifSetup.d.ts.map +1 -1
  74. package/dist/types.d.ts.map +1 -1
  75. package/dist/utils/auth.d.ts +1 -1
  76. package/dist/utils/auth.d.ts.map +1 -1
  77. package/dist/utils/configurationHandler.d.ts.map +1 -1
  78. package/dist/utils/dataConverter/convertFromDataJsonFormat.d.ts +1 -1
  79. package/dist/utils/dataConverter/convertFromDataJsonFormat.d.ts.map +1 -1
  80. package/dist/utils/dataConverter/convertToDataJsonFormat.d.ts +1 -1
  81. package/dist/utils/dataConverter/convertToDataJsonFormat.d.ts.map +1 -1
  82. package/dist/utils/dataConverter/findLocalChanges.d.ts +1 -1
  83. package/dist/utils/dataConverter/findLocalChanges.d.ts.map +1 -1
  84. package/dist/utils/docIngester.d.ts.map +1 -1
  85. package/dist/utils/docParser.d.ts.map +1 -1
  86. package/dist/utils/driveDocScanner.d.ts.map +1 -1
  87. package/dist/utils/driveFolderScanner.d.ts.map +1 -1
  88. package/dist/utils/driveImageSync.d.ts.map +1 -1
  89. package/dist/utils/driveSpreadsheetBootstrap.d.ts.map +1 -1
  90. package/dist/utils/fileWriter.d.ts +1 -1
  91. package/dist/utils/fileWriter.d.ts.map +1 -1
  92. package/dist/utils/getDriveTranslations.d.ts.map +1 -1
  93. package/dist/utils/isDataJsonNewer.d.ts.map +1 -1
  94. package/dist/utils/localImageUtils.d.ts.map +1 -1
  95. package/dist/utils/localeFilter.d.ts.map +1 -1
  96. package/dist/utils/localeNormalizer.d.ts.map +1 -1
  97. package/dist/utils/multiSpreadsheetMerger.d.ts.map +1 -1
  98. package/dist/utils/publicSheetReader.d.ts +1 -1
  99. package/dist/utils/publicSheetReader.d.ts.map +1 -1
  100. package/dist/utils/rateLimiter.d.ts.map +1 -1
  101. package/dist/utils/readDataJson.d.ts +1 -1
  102. package/dist/utils/sheetProcessor.d.ts +4 -9
  103. package/dist/utils/sheetProcessor.d.ts.map +1 -1
  104. package/dist/utils/spreadsheetCreator.d.ts +1 -1
  105. package/dist/utils/spreadsheetCreator.d.ts.map +1 -1
  106. package/dist/utils/spreadsheetFormulas.d.ts +1 -1
  107. package/dist/utils/spreadsheetFormulas.d.ts.map +1 -1
  108. package/dist/utils/spreadsheetUpdater.d.ts +3 -3
  109. package/dist/utils/spreadsheetUpdater.d.ts.map +1 -1
  110. package/dist/utils/syncManager.d.ts +2 -2
  111. package/dist/utils/syncManager.d.ts.map +1 -1
  112. package/dist/utils/translationDataStats.d.ts +13 -0
  113. package/dist/utils/translationDataStats.d.ts.map +1 -0
  114. package/dist/utils/translationHelpers.d.ts.map +1 -1
  115. package/dist/utils/validateEnv.d.ts +1 -1
  116. package/dist/utils/validateEnv.d.ts.map +1 -1
  117. package/dist/utils/wait.d.ts.map +1 -1
  118. package/dist-cli/cryptpad.mjs +6363 -0
  119. package/dist-cli/migrate-v3.mjs +406 -0
  120. package/dist-cli/run-provider.mjs +7441 -0
  121. package/dist-cli/setup-wif.mjs +334 -18949
  122. package/package.json +47 -24
package/README.md CHANGED
@@ -15,7 +15,7 @@ A Node.js package for managing translations stored in Google Sheets.
15
15
  - ✅ **Smart Locale Filtering**: Only locales with actual translations in content sheets are included in output files
16
16
  - ✅ **TypeScript Support**: Full TypeScript definitions included
17
17
  - ✅ **Modular Architecture**: Well-tested, maintainable codebase with clear separation of concerns
18
- - ✅ **Next.js Integration**: Built-in support for Next.js static export workflows
18
+ - ✅ **Next.js & Astro Integration**: Built-in support for Next.js static export workflows and Astro build-time hooks
19
19
  - ✅ **Flexible Configuration**: Customizable paths, wait times, and processing options
20
20
  - ✅ **GitHub Action**: One-step CI integration via `el-j/google-sheet-translations@v2` — see [GitHub Action](#github-action)
21
21
 
@@ -291,6 +291,7 @@ For more detailed examples, check out the [examples directory](examples) where y
291
291
  - Bidirectional sync
292
292
  - Auto-translation
293
293
  - Next.js integration
294
+ - Astro integration
294
295
 
295
296
  ## GitHub Action
296
297
 
@@ -383,6 +384,8 @@ jobs:
383
384
  | `spreadsheet-ids` | ❌ | `''` | Optional extra spreadsheet IDs to merge with any IDs discovered in Drive |
384
385
  | `sync-images` | ❌ | `false` | Download Drive images alongside translation sync |
385
386
  | `image-output-path` | ❌ | `./public/remote-images` | Output directory for downloaded Drive images when `sync-images` is enabled |
387
+ | `provider-config` | ❌ | `''` | Inline JSON for v3 provider runtime config (mutually exclusive with `provider-config-path`) |
388
+ | `provider-config-path` | ❌ | `''` | Path to provider runtime config JSON file in the repo (mutually exclusive with `provider-config`) |
386
389
 
387
390
  ### Drive Folder Mode
388
391
 
@@ -404,6 +407,46 @@ See the full Drive Folder guide in `website/guide/drive-folder.md` for the compl
404
407
  | `locales-file` | Absolute path of the generated `locales.ts` |
405
408
  | `data-json-file` | Absolute path of the `languageData.json` snapshot |
406
409
 
410
+ ## Provider Runtime CLI (v3)
411
+
412
+ In addition to `gst-setup-wif`, the package ships `gst-run-provider` for provider-config driven execution:
413
+
414
+ ```bash
415
+ gst-run-provider --config=provider.config.json --sheet-titles=home,about
416
+ ```
417
+
418
+ For existing workflows, use `gst-migrate-v3` to generate provider config from legacy action inputs:
419
+
420
+ ```bash
421
+ gst-migrate-v3 --dry-run
422
+ gst-migrate-v3 --dry-run --parity-check
423
+ gst-migrate-v3 --write-workflows --provider-config-path=.github/provider.config.json
424
+ ```
425
+
426
+ If a config already exists and should be replaced:
427
+
428
+ ```bash
429
+ gst-migrate-v3 --force --provider-config-path=.github/provider.config.json
430
+ ```
431
+
432
+ Example `provider.config.json` for CryptPad CSV input:
433
+
434
+ ```json
435
+ {
436
+ "input": {
437
+ "provider": "cryptpad-csv",
438
+ "options": {
439
+ "sources": [
440
+ {
441
+ "tableName": "home",
442
+ "url": "https://cryptpad.fr/.../export.csv"
443
+ }
444
+ ]
445
+ }
446
+ }
447
+ }
448
+ ```
449
+
407
450
  ### Auto-Create Feature
408
451
 
409
452
  If `google-spreadsheet-id` is left empty and `auto-create` is `true` (the default), the action will automatically create a new Google Spreadsheet using your service-account credentials. The spreadsheet is pre-populated with an `i18n` starter sheet containing `GOOGLETRANSLATE` formulas for every locale listed in `target-locales`. The new spreadsheet ID is printed to the workflow log and written to your `.env` file (if one exists in the repository root), allowing you to commit it and reuse it in future runs.
@@ -1 +1 @@
1
- {"version":3,"file":"action-entrypoint.d.ts","sourceRoot":"","sources":["../src/action-entrypoint.ts"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AACH,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA8GzC"}
1
+ {"version":3,"file":"action-entrypoint.d.ts","sourceRoot":"","sources":["../src/action-entrypoint.ts"],"names":[],"mappings":"AAeA;;;;;;;;;GASG;AACH,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAmMzC"}
@@ -0,0 +1,26 @@
1
+ import type { SheetRow, TranslationData } from '../types';
2
+ /**
3
+ * Result of processing a single sheet.
4
+ */
5
+ export interface SheetProcessingResult {
6
+ translations: TranslationData;
7
+ locales: string[];
8
+ localeMapping: Record<string, string>;
9
+ originalMapping: Record<string, string>;
10
+ success: boolean;
11
+ }
12
+ export interface LocaleMappingResult {
13
+ normalizedLocales: string[];
14
+ localeMapping: Record<string, string>;
15
+ originalMapping: Record<string, string>;
16
+ }
17
+ export interface RowTransformerDependencies {
18
+ filterValidLocales: (headerRow: string[], keyColumn: string) => string[];
19
+ createLocaleMapping: (originalHeaders: string[], keyColumn: string) => LocaleMappingResult;
20
+ logger?: Pick<Console, 'warn' | 'error' | 'log'>;
21
+ }
22
+ /**
23
+ * Pure transformation core: converts canonical rows into TranslationData for one sheet.
24
+ */
25
+ export declare function transformRowsToSheetData(rows: SheetRow[], sheetTitle: string, deps: RowTransformerDependencies): SheetProcessingResult;
26
+ //# sourceMappingURL=rowTransformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rowTransformer.d.ts","sourceRoot":"","sources":["../../src/core/rowTransformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,eAAe,CAAC;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,0BAA0B;IACzC,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACzE,mBAAmB,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,KAAK,mBAAmB,CAAC;IAC3F,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC;CAClD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,QAAQ,EAAE,EAChB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,0BAA0B,GAC/B,qBAAqB,CA8EvB"}