@lokascript/vite-plugin 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1489,19 +1489,31 @@ function selectBundleType(options, languages) {
1489
1489
  return selectOptimalBundle(languages);
1490
1490
  }
1491
1491
  var SINGLE_LANGUAGE_BUNDLES = [
1492
+ "ar",
1493
+ "bn",
1494
+ "de",
1492
1495
  "en",
1493
1496
  "es",
1497
+ "es-MX",
1498
+ "fr",
1499
+ "he",
1500
+ "hi",
1501
+ "id",
1502
+ "it",
1494
1503
  "ja",
1495
- "ar",
1496
1504
  "ko",
1497
- "zh",
1498
- "tr",
1505
+ "ms",
1506
+ "pl",
1499
1507
  "pt",
1500
- "fr",
1501
- "de",
1502
- "id",
1503
1508
  "qu",
1504
- "sw"
1509
+ "ru",
1510
+ "sw",
1511
+ "th",
1512
+ "tl",
1513
+ "tr",
1514
+ "uk",
1515
+ "vi",
1516
+ "zh"
1505
1517
  ];
1506
1518
  function selectOptimalBundle(languages) {
1507
1519
  if (languages.size === 0) {
@@ -1529,20 +1541,32 @@ function selectOptimalBundle(languages) {
1529
1541
  return "all";
1530
1542
  }
1531
1543
  var SEMANTIC_BUNDLE_SIZES = {
1532
- // Single-language bundles (all 13 languages)
1544
+ // Single-language bundles (all 25 languages)
1545
+ ar: { raw: "66 KB", gzip: "~17 KB" },
1546
+ bn: { raw: "56 KB", gzip: "~14 KB" },
1547
+ de: { raw: "57 KB", gzip: "~14 KB" },
1533
1548
  en: { raw: "82 KB", gzip: "~20 KB" },
1534
1549
  es: { raw: "64 KB", gzip: "~16 KB" },
1550
+ "es-MX": { raw: "64 KB", gzip: "~16 KB" },
1551
+ fr: { raw: "57 KB", gzip: "~14 KB" },
1552
+ he: { raw: "56 KB", gzip: "~14 KB" },
1553
+ hi: { raw: "56 KB", gzip: "~14 KB" },
1554
+ id: { raw: "57 KB", gzip: "~14 KB" },
1555
+ it: { raw: "57 KB", gzip: "~14 KB" },
1535
1556
  ja: { raw: "67 KB", gzip: "~17 KB" },
1536
- ar: { raw: "66 KB", gzip: "~17 KB" },
1537
1557
  ko: { raw: "69 KB", gzip: "~18 KB" },
1538
- zh: { raw: "58 KB", gzip: "~15 KB" },
1539
- tr: { raw: "73 KB", gzip: "~18 KB" },
1558
+ ms: { raw: "56 KB", gzip: "~14 KB" },
1559
+ pl: { raw: "56 KB", gzip: "~14 KB" },
1540
1560
  pt: { raw: "56 KB", gzip: "~14 KB" },
1541
- fr: { raw: "57 KB", gzip: "~14 KB" },
1542
- de: { raw: "57 KB", gzip: "~14 KB" },
1543
- id: { raw: "57 KB", gzip: "~14 KB" },
1544
1561
  qu: { raw: "56 KB", gzip: "~14 KB" },
1562
+ ru: { raw: "56 KB", gzip: "~14 KB" },
1545
1563
  sw: { raw: "56 KB", gzip: "~14 KB" },
1564
+ th: { raw: "56 KB", gzip: "~14 KB" },
1565
+ tl: { raw: "56 KB", gzip: "~14 KB" },
1566
+ tr: { raw: "73 KB", gzip: "~18 KB" },
1567
+ uk: { raw: "56 KB", gzip: "~14 KB" },
1568
+ vi: { raw: "56 KB", gzip: "~14 KB" },
1569
+ zh: { raw: "58 KB", gzip: "~15 KB" },
1546
1570
  // Regional bundles
1547
1571
  "es-en": { raw: "99 KB", gzip: "~25 KB" },
1548
1572
  western: { raw: "127 KB", gzip: "~30 KB" },
@@ -1553,26 +1577,97 @@ var SEMANTIC_BUNDLE_SIZES = {
1553
1577
  function getSemanticBundleSize(bundleType) {
1554
1578
  return SEMANTIC_BUNDLE_SIZES[bundleType] ?? SEMANTIC_BUNDLE_SIZES.all;
1555
1579
  }
1556
- function getSemanticBundleImport(_bundleType) {
1557
- return "@lokascript/semantic";
1580
+ var LANGUAGES_WITH_ESM_EXPORTS = /* @__PURE__ */ new Set([
1581
+ "ar",
1582
+ "bn",
1583
+ "de",
1584
+ "en",
1585
+ "es",
1586
+ "es-MX",
1587
+ "fr",
1588
+ "he",
1589
+ "hi",
1590
+ "id",
1591
+ "it",
1592
+ "ja",
1593
+ "ko",
1594
+ "ms",
1595
+ "pl",
1596
+ "pt",
1597
+ "qu",
1598
+ "ru",
1599
+ "sw",
1600
+ "th",
1601
+ "tl",
1602
+ "tr",
1603
+ "uk",
1604
+ "vi",
1605
+ "zh"
1606
+ ]);
1607
+ function getLanguagesForBundleType(bundleType, configLanguages) {
1608
+ const languages = new Set(configLanguages);
1609
+ switch (bundleType) {
1610
+ case "western":
1611
+ REGIONS.western.forEach((l) => languages.add(l));
1612
+ break;
1613
+ case "east-asian":
1614
+ REGIONS["east-asian"].forEach((l) => languages.add(l));
1615
+ break;
1616
+ case "priority":
1617
+ REGIONS.priority.forEach((l) => languages.add(l));
1618
+ break;
1619
+ case "all":
1620
+ REGIONS.all.forEach((l) => languages.add(l));
1621
+ break;
1622
+ case "es-en":
1623
+ languages.add("en");
1624
+ languages.add("es");
1625
+ break;
1626
+ default:
1627
+ if (typeof bundleType === "string" && bundleType.length <= 3) {
1628
+ languages.add(bundleType);
1629
+ }
1630
+ break;
1631
+ }
1632
+ languages.add("en");
1633
+ return languages;
1634
+ }
1635
+ function filterToAvailableLanguages(languages) {
1636
+ const available = /* @__PURE__ */ new Set();
1637
+ for (const lang of languages) {
1638
+ if (LANGUAGES_WITH_ESM_EXPORTS.has(lang)) {
1639
+ available.add(lang);
1640
+ }
1641
+ }
1642
+ available.add("en");
1643
+ return available;
1558
1644
  }
1559
1645
  function generateSemanticIntegrationCode(config) {
1560
1646
  if (!config.enabled || !config.bundleType) {
1561
1647
  return "";
1562
1648
  }
1563
- const bundleImport = getSemanticBundleImport(config.bundleType);
1649
+ const resolvedLanguages = getLanguagesForBundleType(config.bundleType, config.languages);
1650
+ const availableLanguages = filterToAvailableLanguages(resolvedLanguages);
1564
1651
  const languages = [...config.languages].join("', '");
1565
1652
  let code = `
1566
1653
  // =============================================================================
1567
1654
  // SEMANTIC PARSER INTEGRATION
1568
1655
  // =============================================================================
1569
1656
 
1657
+ // Core infrastructure (no language data bundled)
1570
1658
  import {
1571
1659
  createSemanticAnalyzer,
1572
1660
  buildAST,
1573
1661
  isLanguageSupported,
1574
- } from '${bundleImport}';
1662
+ } from '@lokascript/semantic/core';
1663
+
1664
+ // Register required languages (self-registering side-effect imports)
1665
+ `;
1666
+ const sortedLangs = [...availableLanguages].sort();
1667
+ for (const lang of sortedLangs) {
1668
+ code += `import '@lokascript/semantic/languages/${lang}';
1575
1669
  `;
1670
+ }
1576
1671
  if (config.grammarEnabled) {
1577
1672
  code += `
1578
1673
  import { GrammarTransformer, translate } from '@lokascript/i18n';