@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.js CHANGED
@@ -1451,19 +1451,31 @@ function selectBundleType(options, languages) {
1451
1451
  return selectOptimalBundle(languages);
1452
1452
  }
1453
1453
  var SINGLE_LANGUAGE_BUNDLES = [
1454
+ "ar",
1455
+ "bn",
1456
+ "de",
1454
1457
  "en",
1455
1458
  "es",
1459
+ "es-MX",
1460
+ "fr",
1461
+ "he",
1462
+ "hi",
1463
+ "id",
1464
+ "it",
1456
1465
  "ja",
1457
- "ar",
1458
1466
  "ko",
1459
- "zh",
1460
- "tr",
1467
+ "ms",
1468
+ "pl",
1461
1469
  "pt",
1462
- "fr",
1463
- "de",
1464
- "id",
1465
1470
  "qu",
1466
- "sw"
1471
+ "ru",
1472
+ "sw",
1473
+ "th",
1474
+ "tl",
1475
+ "tr",
1476
+ "uk",
1477
+ "vi",
1478
+ "zh"
1467
1479
  ];
1468
1480
  function selectOptimalBundle(languages) {
1469
1481
  if (languages.size === 0) {
@@ -1491,20 +1503,32 @@ function selectOptimalBundle(languages) {
1491
1503
  return "all";
1492
1504
  }
1493
1505
  var SEMANTIC_BUNDLE_SIZES = {
1494
- // Single-language bundles (all 13 languages)
1506
+ // Single-language bundles (all 25 languages)
1507
+ ar: { raw: "66 KB", gzip: "~17 KB" },
1508
+ bn: { raw: "56 KB", gzip: "~14 KB" },
1509
+ de: { raw: "57 KB", gzip: "~14 KB" },
1495
1510
  en: { raw: "82 KB", gzip: "~20 KB" },
1496
1511
  es: { raw: "64 KB", gzip: "~16 KB" },
1512
+ "es-MX": { raw: "64 KB", gzip: "~16 KB" },
1513
+ fr: { raw: "57 KB", gzip: "~14 KB" },
1514
+ he: { raw: "56 KB", gzip: "~14 KB" },
1515
+ hi: { raw: "56 KB", gzip: "~14 KB" },
1516
+ id: { raw: "57 KB", gzip: "~14 KB" },
1517
+ it: { raw: "57 KB", gzip: "~14 KB" },
1497
1518
  ja: { raw: "67 KB", gzip: "~17 KB" },
1498
- ar: { raw: "66 KB", gzip: "~17 KB" },
1499
1519
  ko: { raw: "69 KB", gzip: "~18 KB" },
1500
- zh: { raw: "58 KB", gzip: "~15 KB" },
1501
- tr: { raw: "73 KB", gzip: "~18 KB" },
1520
+ ms: { raw: "56 KB", gzip: "~14 KB" },
1521
+ pl: { raw: "56 KB", gzip: "~14 KB" },
1502
1522
  pt: { raw: "56 KB", gzip: "~14 KB" },
1503
- fr: { raw: "57 KB", gzip: "~14 KB" },
1504
- de: { raw: "57 KB", gzip: "~14 KB" },
1505
- id: { raw: "57 KB", gzip: "~14 KB" },
1506
1523
  qu: { raw: "56 KB", gzip: "~14 KB" },
1524
+ ru: { raw: "56 KB", gzip: "~14 KB" },
1507
1525
  sw: { raw: "56 KB", gzip: "~14 KB" },
1526
+ th: { raw: "56 KB", gzip: "~14 KB" },
1527
+ tl: { raw: "56 KB", gzip: "~14 KB" },
1528
+ tr: { raw: "73 KB", gzip: "~18 KB" },
1529
+ uk: { raw: "56 KB", gzip: "~14 KB" },
1530
+ vi: { raw: "56 KB", gzip: "~14 KB" },
1531
+ zh: { raw: "58 KB", gzip: "~15 KB" },
1508
1532
  // Regional bundles
1509
1533
  "es-en": { raw: "99 KB", gzip: "~25 KB" },
1510
1534
  western: { raw: "127 KB", gzip: "~30 KB" },
@@ -1515,26 +1539,97 @@ var SEMANTIC_BUNDLE_SIZES = {
1515
1539
  function getSemanticBundleSize(bundleType) {
1516
1540
  return SEMANTIC_BUNDLE_SIZES[bundleType] ?? SEMANTIC_BUNDLE_SIZES.all;
1517
1541
  }
1518
- function getSemanticBundleImport(_bundleType) {
1519
- return "@lokascript/semantic";
1542
+ var LANGUAGES_WITH_ESM_EXPORTS = /* @__PURE__ */ new Set([
1543
+ "ar",
1544
+ "bn",
1545
+ "de",
1546
+ "en",
1547
+ "es",
1548
+ "es-MX",
1549
+ "fr",
1550
+ "he",
1551
+ "hi",
1552
+ "id",
1553
+ "it",
1554
+ "ja",
1555
+ "ko",
1556
+ "ms",
1557
+ "pl",
1558
+ "pt",
1559
+ "qu",
1560
+ "ru",
1561
+ "sw",
1562
+ "th",
1563
+ "tl",
1564
+ "tr",
1565
+ "uk",
1566
+ "vi",
1567
+ "zh"
1568
+ ]);
1569
+ function getLanguagesForBundleType(bundleType, configLanguages) {
1570
+ const languages = new Set(configLanguages);
1571
+ switch (bundleType) {
1572
+ case "western":
1573
+ REGIONS.western.forEach((l) => languages.add(l));
1574
+ break;
1575
+ case "east-asian":
1576
+ REGIONS["east-asian"].forEach((l) => languages.add(l));
1577
+ break;
1578
+ case "priority":
1579
+ REGIONS.priority.forEach((l) => languages.add(l));
1580
+ break;
1581
+ case "all":
1582
+ REGIONS.all.forEach((l) => languages.add(l));
1583
+ break;
1584
+ case "es-en":
1585
+ languages.add("en");
1586
+ languages.add("es");
1587
+ break;
1588
+ default:
1589
+ if (typeof bundleType === "string" && bundleType.length <= 3) {
1590
+ languages.add(bundleType);
1591
+ }
1592
+ break;
1593
+ }
1594
+ languages.add("en");
1595
+ return languages;
1596
+ }
1597
+ function filterToAvailableLanguages(languages) {
1598
+ const available = /* @__PURE__ */ new Set();
1599
+ for (const lang of languages) {
1600
+ if (LANGUAGES_WITH_ESM_EXPORTS.has(lang)) {
1601
+ available.add(lang);
1602
+ }
1603
+ }
1604
+ available.add("en");
1605
+ return available;
1520
1606
  }
1521
1607
  function generateSemanticIntegrationCode(config) {
1522
1608
  if (!config.enabled || !config.bundleType) {
1523
1609
  return "";
1524
1610
  }
1525
- const bundleImport = getSemanticBundleImport(config.bundleType);
1611
+ const resolvedLanguages = getLanguagesForBundleType(config.bundleType, config.languages);
1612
+ const availableLanguages = filterToAvailableLanguages(resolvedLanguages);
1526
1613
  const languages = [...config.languages].join("', '");
1527
1614
  let code = `
1528
1615
  // =============================================================================
1529
1616
  // SEMANTIC PARSER INTEGRATION
1530
1617
  // =============================================================================
1531
1618
 
1619
+ // Core infrastructure (no language data bundled)
1532
1620
  import {
1533
1621
  createSemanticAnalyzer,
1534
1622
  buildAST,
1535
1623
  isLanguageSupported,
1536
- } from '${bundleImport}';
1624
+ } from '@lokascript/semantic/core';
1625
+
1626
+ // Register required languages (self-registering side-effect imports)
1627
+ `;
1628
+ const sortedLangs = [...availableLanguages].sort();
1629
+ for (const lang of sortedLangs) {
1630
+ code += `import '@lokascript/semantic/languages/${lang}';
1537
1631
  `;
1632
+ }
1538
1633
  if (config.grammarEnabled) {
1539
1634
  code += `
1540
1635
  import { GrammarTransformer, translate } from '@lokascript/i18n';