@apps-in-toss/cli 1.0.0 → 1.0.1

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
@@ -1440,7 +1440,7 @@ var UNSUPPORTED_LIBRARIES = [
1440
1440
  "@react-native-bedrock/babel-plugin-obfuscate"
1441
1441
  ];
1442
1442
  var TARGET_VERSION = {
1443
- granitePackages: "0.1.20",
1443
+ granitePackages: "0.1.21",
1444
1444
  appsInTossPackages: "^1.0.0",
1445
1445
  tossDesignSystem: "^1.0.4"
1446
1446
  };
@@ -1564,6 +1564,61 @@ var processPackageJson = async (cwd, config) => {
1564
1564
  }
1565
1565
  };
1566
1566
 
1567
+ // src/MigrateCommand/presets/granite/toAppsInTossFrameworkImport.ts
1568
+ init_cjs_shims();
1569
+ var APPS_IN_TOSS_FRAMEWORK_EXPORTS = [
1570
+ "closeView",
1571
+ "getLocale",
1572
+ "getSchemeUri",
1573
+ "generateHapticFeedback",
1574
+ "share",
1575
+ "setSecureScreen",
1576
+ "setScreenAwakeMode",
1577
+ "getNetworkStatus",
1578
+ "setIosSwipeGestureEnabled",
1579
+ "openURL",
1580
+ "getPlatformOS"
1581
+ ];
1582
+ var toAppsInTossFrameworkImport = (root, { j }, { fileName = "<unknown>" }) => {
1583
+ const appsInTossFrameworkMembers = [];
1584
+ root.find(j.ImportDeclaration).forEach((path5) => {
1585
+ const source = path5.node.source.value;
1586
+ if (typeof source !== "string") {
1587
+ return;
1588
+ }
1589
+ if (source === "@granite-js/react-native") {
1590
+ if (Array.isArray(path5.node.specifiers)) {
1591
+ path5.node.specifiers = path5.node.specifiers.filter((specifier) => {
1592
+ if (shouldImportFromAppsInTossFramework(fileName, specifier)) {
1593
+ appsInTossFrameworkMembers.push(specifier);
1594
+ return false;
1595
+ }
1596
+ return true;
1597
+ });
1598
+ }
1599
+ if (path5.node.specifiers?.length === 0) {
1600
+ j(path5).remove();
1601
+ }
1602
+ }
1603
+ });
1604
+ if (appsInTossFrameworkMembers.length > 0) {
1605
+ const importStatement = j.importDeclaration(appsInTossFrameworkMembers, j.literal("@apps-in-toss/framework"));
1606
+ root.find(j.Program).get("body", 0).insertBefore(importStatement);
1607
+ }
1608
+ return root;
1609
+ };
1610
+ function shouldImportFromAppsInTossFramework(fileName, specifier) {
1611
+ switch (specifier.type) {
1612
+ case "ImportSpecifier":
1613
+ return APPS_IN_TOSS_FRAMEWORK_EXPORTS.includes(String(specifier.imported.name));
1614
+ case "ImportDefaultSpecifier":
1615
+ case "ImportNamespaceSpecifier":
1616
+ default:
1617
+ logger.warn(`Unknown import specifier in ${fileName}`);
1618
+ return false;
1619
+ }
1620
+ }
1621
+
1567
1622
  // src/MigrateCommand/codemod/index.ts
1568
1623
  init_cjs_shims();
1569
1624
 
@@ -1608,7 +1663,12 @@ async function scanFiles(directory, options = {}) {
1608
1663
  }
1609
1664
 
1610
1665
  // src/MigrateCommand/presets/granite/migrateGranite.ts
1611
- var transformers = [configTransformer, identifierReplacementsTransformer, packageImportsTransformer];
1666
+ var transformers = [
1667
+ configTransformer,
1668
+ identifierReplacementsTransformer,
1669
+ packageImportsTransformer,
1670
+ toAppsInTossFrameworkImport
1671
+ ];
1612
1672
  var migrateGranite = async (cwd, config) => {
1613
1673
  (0, import_assert2.default)(isBedrockProject(cwd), "This is not a Bedrock project");
1614
1674
  let processedCount = 0;
package/dist/index.js CHANGED
@@ -1436,7 +1436,7 @@ var UNSUPPORTED_LIBRARIES = [
1436
1436
  "@react-native-bedrock/babel-plugin-obfuscate"
1437
1437
  ];
1438
1438
  var TARGET_VERSION = {
1439
- granitePackages: "0.1.20",
1439
+ granitePackages: "0.1.21",
1440
1440
  appsInTossPackages: "^1.0.0",
1441
1441
  tossDesignSystem: "^1.0.4"
1442
1442
  };
@@ -1560,6 +1560,61 @@ var processPackageJson = async (cwd, config) => {
1560
1560
  }
1561
1561
  };
1562
1562
 
1563
+ // src/MigrateCommand/presets/granite/toAppsInTossFrameworkImport.ts
1564
+ init_esm_shims();
1565
+ var APPS_IN_TOSS_FRAMEWORK_EXPORTS = [
1566
+ "closeView",
1567
+ "getLocale",
1568
+ "getSchemeUri",
1569
+ "generateHapticFeedback",
1570
+ "share",
1571
+ "setSecureScreen",
1572
+ "setScreenAwakeMode",
1573
+ "getNetworkStatus",
1574
+ "setIosSwipeGestureEnabled",
1575
+ "openURL",
1576
+ "getPlatformOS"
1577
+ ];
1578
+ var toAppsInTossFrameworkImport = (root, { j }, { fileName = "<unknown>" }) => {
1579
+ const appsInTossFrameworkMembers = [];
1580
+ root.find(j.ImportDeclaration).forEach((path5) => {
1581
+ const source = path5.node.source.value;
1582
+ if (typeof source !== "string") {
1583
+ return;
1584
+ }
1585
+ if (source === "@granite-js/react-native") {
1586
+ if (Array.isArray(path5.node.specifiers)) {
1587
+ path5.node.specifiers = path5.node.specifiers.filter((specifier) => {
1588
+ if (shouldImportFromAppsInTossFramework(fileName, specifier)) {
1589
+ appsInTossFrameworkMembers.push(specifier);
1590
+ return false;
1591
+ }
1592
+ return true;
1593
+ });
1594
+ }
1595
+ if (path5.node.specifiers?.length === 0) {
1596
+ j(path5).remove();
1597
+ }
1598
+ }
1599
+ });
1600
+ if (appsInTossFrameworkMembers.length > 0) {
1601
+ const importStatement = j.importDeclaration(appsInTossFrameworkMembers, j.literal("@apps-in-toss/framework"));
1602
+ root.find(j.Program).get("body", 0).insertBefore(importStatement);
1603
+ }
1604
+ return root;
1605
+ };
1606
+ function shouldImportFromAppsInTossFramework(fileName, specifier) {
1607
+ switch (specifier.type) {
1608
+ case "ImportSpecifier":
1609
+ return APPS_IN_TOSS_FRAMEWORK_EXPORTS.includes(String(specifier.imported.name));
1610
+ case "ImportDefaultSpecifier":
1611
+ case "ImportNamespaceSpecifier":
1612
+ default:
1613
+ logger.warn(`Unknown import specifier in ${fileName}`);
1614
+ return false;
1615
+ }
1616
+ }
1617
+
1563
1618
  // src/MigrateCommand/codemod/index.ts
1564
1619
  init_esm_shims();
1565
1620
 
@@ -1604,7 +1659,12 @@ async function scanFiles(directory, options = {}) {
1604
1659
  }
1605
1660
 
1606
1661
  // src/MigrateCommand/presets/granite/migrateGranite.ts
1607
- var transformers = [configTransformer, identifierReplacementsTransformer, packageImportsTransformer];
1662
+ var transformers = [
1663
+ configTransformer,
1664
+ identifierReplacementsTransformer,
1665
+ packageImportsTransformer,
1666
+ toAppsInTossFrameworkImport
1667
+ ];
1608
1668
  var migrateGranite = async (cwd, config) => {
1609
1669
  assert2(isBedrockProject(cwd), "This is not a Bedrock project");
1610
1670
  let processedCount = 0;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@apps-in-toss/cli",
3
3
  "type": "module",
4
- "version": "1.0.0",
4
+ "version": "1.0.1",
5
5
  "description": "CLI for Apps In Toss",
6
6
  "scripts": {
7
7
  "prepack": "yarn build",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@clack/prompts": "^0.10.0",
43
- "@granite-js/utils": "0.1.20",
43
+ "@granite-js/utils": "0.1.21",
44
44
  "@sentry/cli": "^2.46.0",
45
45
  "clipanion": "^4.0.0-rc.4",
46
46
  "dedent": "^1.6.0",
@@ -52,5 +52,5 @@
52
52
  "publishConfig": {
53
53
  "access": "public"
54
54
  },
55
- "gitHead": "1cf9898b323a17c789ff9f5d75e8c6ab68fe4a95"
55
+ "gitHead": "c117f889c8e029797ebff63000beef65c0597e6f"
56
56
  }