From 4bc7e4aea3dbf4983422bfade793e9c09b40206b Mon Sep 17 00:00:00 2001 From: polsevev Date: Mon, 9 Oct 2023 20:00:22 +0200 Subject: [PATCH] Added submodule babel --- .gitmodules | 3 + babel | 1 + bun.lockb | Bin 69165 -> 71883 bytes package-lock.json | 424 ++++++++++++++++++++++++++++++++++++++- package.json | 4 +- src/index.js | 35 ++++ src/index.ts | 84 -------- src/index_babel.ts | 47 ----- src/patterns/patterns.ts | 76 ------- src/types.ts | 108 ---------- 10 files changed, 463 insertions(+), 319 deletions(-) create mode 100644 .gitmodules create mode 160000 babel create mode 100644 src/index.js delete mode 100644 src/index.ts delete mode 100644 src/index_babel.ts delete mode 100644 src/patterns/patterns.ts delete mode 100644 src/types.ts diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..5c49cfc --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "babel"] + path = babel + url = git@github.com:polsevev/babel.git diff --git a/babel b/babel new file mode 160000 index 0000000..3f66d23 --- /dev/null +++ b/babel @@ -0,0 +1 @@ +Subproject commit 3f66d23229dd68dfe18cc0edd92e46f30dd4f4f7 diff --git a/bun.lockb b/bun.lockb index fed73d64d6e5cb0c23297122b5c01aaaa5d1364f..4d1dedaa626ce1181e23eea8ef449748693cd709 100755 GIT binary patch delta 12437 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 Oqg?| diff --git a/package-lock.json b/package-lock.json index 6d86c62..4a6628c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,18 +6,185 @@ "packages": { "": { "name": "didactic-chainsaw", - "version": "1.0.0", - "license": "ISC", "dependencies": { + "@babel/generator": "^7.23.0", + "@babel/parser": "^7.23.0", + "@babel/traverse": "^7.23.0", + "babel": "^6.23.0", + "bun": "^1.0.4", "ts-node": "^10.9.1" }, "devDependencies": { "@swc/cli": "^0.1.62", "@swc/core": "^1.3.83", "@types/node": "^20.5.9", + "bun-types": "latest", "typescript": "^5.2.2" } }, + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "dependencies": { + "@babel/types": "^7.23.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.0.tgz", + "integrity": "sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -29,6 +196,19 @@ "node": ">=12" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", @@ -37,6 +217,14 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", @@ -105,6 +293,78 @@ "node": ">= 8" } }, + "node_modules/@oven/bun-darwin-aarch64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@oven/bun-darwin-aarch64/-/bun-darwin-aarch64-1.0.4.tgz", + "integrity": "sha512-HCfN2Uanf2eUU/CUbEJJFaeHoBgo/YGukt5V5keDRFSKALvdcITRbAPTZ1JjdRtul/ntue0oDMppJoHJEmzx+Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@oven/bun-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@oven/bun-darwin-x64/-/bun-darwin-x64-1.0.4.tgz", + "integrity": "sha512-nER/1gBJL/e4D4woGDq+GwPDhzVs3oaoVZ7I4jlKv/LGHWJE5RAjH3qT4gbh/zwHlHaHi5RQw1pbRFgdN7n9EQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@oven/bun-darwin-x64-baseline": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@oven/bun-darwin-x64-baseline/-/bun-darwin-x64-baseline-1.0.4.tgz", + "integrity": "sha512-+BSZ9EdfyIH+0zk48zm8fb0TvSdr1fxdPLV4wvofp+HNlkzPHt4745ibSLNGbOev/y6lwHrMNfbGoY9elCOtkw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@oven/bun-linux-aarch64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@oven/bun-linux-aarch64/-/bun-linux-aarch64-1.0.4.tgz", + "integrity": "sha512-tnZN2CTDqeHh0OdXpraKKzmidNidVrdZocLfppMZklvHpmsvr/MdK96lcj2o5LzrjwhVGJKOUol8N32B/C8MBQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oven/bun-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@oven/bun-linux-x64/-/bun-linux-x64-1.0.4.tgz", + "integrity": "sha512-yHk/ZALZR6Y7xgBW2Dhm6s+6NZ/HdhgByOPJmKbgFAt5ocuNpDRlEEhlLdaaxWwAL+RsG969OpV+bSzC9suCMw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oven/bun-linux-x64-baseline": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-baseline/-/bun-linux-x64-baseline-1.0.4.tgz", + "integrity": "sha512-OURqmY2Ln760KecV8I0taBMA/0LcmeMVGQXMh1hv5NZSfB9d6O/2LrHKv1zZfLRJm9hPjpPxxuqKWc46p95xZA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", @@ -449,6 +709,17 @@ "node": ">=0.4.0" } }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/arch": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", @@ -474,6 +745,17 @@ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" }, + "node_modules/babel": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel/-/babel-6.23.0.tgz", + "integrity": "sha512-ZDcCaI8Vlct8PJ3DvmyqUz+5X2Ylz3ZuuItBe/74yXosk2dwyVo/aN7MCJ8HJzhnnJ+6yP4o+lDgG9MBe91DLA==", + "deprecated": "In 6.x, the babel package has been deprecated in favor of babel-cli. Check https://opencollective.com/babel to support the Babel maintainers", + "bin": { + "babel": "lib/cli.js", + "babel-external-helpers": "lib/cli.js", + "babel-node": "lib/cli.js" + } + }, "node_modules/bin-check": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz", @@ -650,6 +932,38 @@ "node": ">=8" } }, + "node_modules/bun": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bun/-/bun-1.0.4.tgz", + "integrity": "sha512-gzMDYkfGYe8KWKUBZJKCFTHUlf1QJRSLyIiryi0atf/4tqPzMq3QDwAmBd/4CWjU5pWCJvPZxLPsAWxeQDayxw==", + "cpu": [ + "arm64", + "x64" + ], + "hasInstallScript": true, + "os": [ + "darwin", + "linux" + ], + "bin": { + "bun": "bin/bun", + "bunx": "bin/bun" + }, + "optionalDependencies": { + "@oven/bun-darwin-aarch64": "1.0.4", + "@oven/bun-darwin-x64": "1.0.4", + "@oven/bun-darwin-x64-baseline": "1.0.4", + "@oven/bun-linux-aarch64": "1.0.4", + "@oven/bun-linux-x64": "1.0.4", + "@oven/bun-linux-x64-baseline": "1.0.4" + } + }, + "node_modules/bun-types": { + "version": "1.0.5-canary.20231009T140142", + "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.0.5-canary.20231009T140142.tgz", + "integrity": "sha512-5hT8WBXZ2ozdJt6s0nnnh4iQXn6xp9a7spbRYjapNxKjR3ckS5U2V347H3+XpaMVzc/a7D2I2KnKqIPO1R82kg==", + "dev": true + }, "node_modules/cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -692,6 +1006,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -704,6 +1039,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, "node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", @@ -741,6 +1089,22 @@ "which": "^1.2.9" } }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -980,6 +1344,14 @@ "node": ">= 6" } }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, "node_modules/got": { "version": "11.8.6", "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", @@ -1005,6 +1377,14 @@ "url": "https://github.com/sindresorhus/got?sponsor=1" } }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, "node_modules/http-cache-semantics": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", @@ -1113,6 +1493,22 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -1207,6 +1603,11 @@ "node": ">=4" } }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "node_modules/normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", @@ -1662,6 +2063,25 @@ "url": "https://github.com/sponsors/Borewit" } }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", diff --git a/package.json b/package.json index 9400ff7..0119099 100644 --- a/package.json +++ b/package.json @@ -3,10 +3,9 @@ "module": "index.ts", "type": "module", "devDependencies": { - "bun-types": "latest", "@swc/cli": "^0.1.62", - "@swc/core": "^1.3.83", "@types/node": "^20.5.9", + "bun-types": "latest", "typescript": "^5.2.2" }, "dependencies": { @@ -14,6 +13,7 @@ "@babel/parser": "^7.23.0", "@babel/traverse": "^7.23.0", "babel": "^6.23.0", + "bun": "^1.0.4", "ts-node": "^10.9.1" } } diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..0dd5177 --- /dev/null +++ b/src/index.js @@ -0,0 +1,35 @@ +import * as babelparser from "../babel/packages/babel-parser/lib"; +import traverse from "@babel/traverse"; +import generate from "@babel/generator"; + +const main = () => { + + let code_To_Insert = "697 + 457"; + + let code = "1 + 1;"; + let ast = babelparser.parse(code); + console.log(ast); + let insert_ast = babelparser.parse(code); + + + traverse(ast, { + enter(path){ + if (path.isBinaryExpression({operator: "+"})){ + path.node.operator="@@@"; + } + }, + }) + + console.log(JSON.stringify(ast, null, 4)); + const out = generate(ast, {}, code); + console.log("input: " + code); + console.log("output: " + out.code); + let inout = babelparser.parse(out.code); + console.log(inout); + console.log(generate(inout, {}, code)); + + +} + + +main(); diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index df3e3d4..0000000 --- a/src/index.ts +++ /dev/null @@ -1,84 +0,0 @@ -import swc, { printSync } from "@swc/core"; -import { MatchScript } from "./types"; -import { from, to } from "./patterns/patterns"; - -const PATTERN_PATH = "src/patterns/test.json"; - -const main = async () => { - console.log(Bun.version); - - let inputFile = await Bun.file("src/test_files/simple.js").text(); - console.log("Hello!"); - - const hello = "lol"; - - console.log( - "=====================\nCurrent file to be transformed : \n" + - inputFile + - "\n====================", - ); - swc.parseFile("src/test_files/simple.js", { - syntax: "ecmascript", - jsx: false, - - target: "es2022", - - isModule: false, - }).then((module) => { - //console.log(module); - // swc.print(module).then((o: swc.Output) => { - // console.log(o); - // }); - -// console.log(module.body); - - matchStatements(module).then((a) => { - console.log( - "================\nOutput code: \n" + - a + - "\n========================", - ); - }); - }); -}; - -const matchStatements = async (module: swc.Script) => { - let fromLocal = from; - let toLocal = to; - let key: "body" = "body"; - module[key] - return match(fromLocal, toLocal, module.body); -}; - -enum MatchingResults{ - FULL, - PARTIAL, - SINGLE, - NONE -} - -const match = (from: any, to: any, module: swc.Statement[]): any => { - - let curMatchType = MatchingResults.NONE; - - for (const [key, value] of Object.entries(module)){ - if (from[key] && key != "span"){ - console.log(from[key] + " == " + value); - if (from[key as any] == value){ -console.log("Found valid key with " + key); - - let matchRes = match(from[key], to, value); - if (matchRes == MatchingResults.FULL){ - curMatchType = MatchingResults.FULL; - } - - } - } - } - - return curMatchType; -}; - - - -main(); diff --git a/src/index_babel.ts b/src/index_babel.ts deleted file mode 100644 index edcd88b..0000000 --- a/src/index_babel.ts +++ /dev/null @@ -1,47 +0,0 @@ -import * as babelparser from "@babel/parser"; -import traverse from "@babel/traverse"; -import generate from "@babel/generator"; - -const main = () => { - - let code_To_Insert = "697 + 457"; - - let code = "let n = 1 - 1;"; - let ast:babelparser.ParseResult = babelparser.parse(code); - console.log(ast); - let insert_ast = babelparser.parse(code); - - traverse(ast, { - enter(path:any) { - - if (path.isBinaryExpression({operator: "+"})){ - - } - } - }) - - traverse(ast, { - enter(path:any){ - if (path.isBinaryExpression({operator: "+"})){ - path.node.operator="@@@"; - } - }, - }) - - console.log(ast) - const output = generate(ast, {}, code); - console.log("input: " + code); - console.log("output: " + output.code); - //let inout = babelparser.parse(output.code); - //console.log(inout); - - let awaitex = babelparser.parse("async function a(){let b = await c();}async function c(){return 1; }"); - console.log(JSON.stringify(awaitex)); - - traverse(awaitex, { - - }) -} - - -main(); diff --git a/src/patterns/patterns.ts b/src/patterns/patterns.ts deleted file mode 100644 index 8d2ff76..0000000 --- a/src/patterns/patterns.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { Statement, VariableDeclarator } from "@swc/types"; -import { MatchStatement, WildCardType } from "../types"; - -export const from: MatchStatement = { - type: "VariableDeclaration", - span: { - start: 1, - end: 13, - ctxt: 0, - }, - kind: WildCardType.ANYTHING, - declare: false, - declarations: [ - { - type: "VariableDeclarator", - span: { - start: 5, - end: 12, - ctxt: 0, - }, - id: { - type: "Identifier", - span: { - start: 5, - end: 6, - ctxt: 2, - }, - value: "a", - optional: false, - }, - init: { - type: "NumericLiteral", - span: { - start: 9, - end: 12, - ctxt: 0, - }, - value: 100, - raw: "100", - }, - definite: false, - }, - ], -}; - -export const to: VariableDeclarator[] = [ - { - type: "VariableDeclarator", - span: { - start: 5, - end: 12, - ctxt: 0, - }, - id: { - type: "Identifier", - span: { - start: 5, - end: 6, - ctxt: 2, - }, - value: "Inserted_By_Program", - optional: false, - }, - init: { - type: "NumericLiteral", - span: { - start: 9, - end: 12, - ctxt: 0, - }, - value: 100, - raw: "InsertedValue!", - }, - definite: false, - }, -]; diff --git a/src/types.ts b/src/types.ts deleted file mode 100644 index 92dc2c8..0000000 --- a/src/types.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { - BinaryExpression, - BlockStatement, - BreakStatement, - ClassDeclaration, - ContinueStatement, - DebuggerStatement, - Declaration, - DoWhileStatement, - EmptyStatement, - Expression, - ExpressionStatement, - ForInStatement, - ForOfStatement, - ForStatement, - FunctionDeclaration, - IfStatement, - LabeledStatement, - ReturnStatement, - Script, - SwitchStatement, - ThrowStatement, - TryStatement, - VariableDeclaration, - VariableDeclarationKind, - WhileStatement, - WithStatement, -} from "@swc/core"; - -export type MatchStatement = - | MatchBlockSatement - | MatchEmptyStatement - | MatchDebuggerStatement - | MatchWithStatement - | MatchReturnStatement - | MatchLabeledStatement - | MatchBreakStatement - | MatchContinueStatement - | matchIfStatement - | MatchSwitchStatement - | MatchThrowStatement - | MatchTryStatement - | MatchWhileStatement - | MatchDoWhileStatement - | MatchForInStatement - | MatchForStatement - | MatchForOfStatement - | MatchDeclaration - | MatchExpressionStatement; - -type MatchDeclaration = - | MatchClassDeclaration - | MatchFunctionDeclaration - | MatchVariableDeclaration; - -export enum WildCardType { - ANYTHING, -} - -export interface MatchScript extends Script {} - -export interface MatchBlockSatement extends BlockStatement {} - -export interface MatchEmptyStatement extends EmptyStatement {} - -export interface MatchDebuggerStatement extends DebuggerStatement {} - -export interface MatchWithStatement extends WithStatement {} - -export interface MatchReturnStatement extends ReturnStatement {} - -export interface MatchLabeledStatement extends LabeledStatement {} - -export interface MatchBreakStatement extends BreakStatement {} - -export interface MatchContinueStatement extends ContinueStatement {} - -export interface MatchSwitchStatement extends SwitchStatement {} - -export interface MatchThrowStatement extends ThrowStatement {} - -export interface MatchTryStatement extends TryStatement {} - -export interface MatchWhileStatement extends WhileStatement {} - -export interface MatchDoWhileStatement extends DoWhileStatement {} - -export interface MatchForStatement extends ForStatement {} - -export interface MatchForInStatement extends ForInStatement {} - -export interface MatchForOfStatement extends ForOfStatement {} - -export interface MatchExpressionStatement extends ExpressionStatement {} - -export interface matchIfStatement extends IfStatement {} - -export interface matchBinaryExpression extends BlockStatement { - __stmts: WildCardType; -} - -export interface MatchClassDeclaration extends ClassDeclaration {} - -export interface MatchFunctionDeclaration extends FunctionDeclaration {} - -export interface MatchVariableDeclaration extends Omit { - kind : VariableDeclarationKind | WildCardType -}