{"_id":"muggle-string","_rev":"3210762","name":"muggle-string","description":"This library aims to provide codegen helpers and data structure for Vue language plugin API v1.x that does not depend on Volar runtime.","dist-tags":{"latest":"0.4.1"},"maintainers":[{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"}],"time":{"modified":"2024-02-18T06:01:56.000Z","created":"2022-09-29T13:26:11.724Z","0.4.1":"2023-12-06T03:29:14.162Z","0.4.0":"2023-11-26T07:33:42.617Z","0.3.1":"2023-05-09T15:24:56.312Z","0.3.0":"2023-05-08T09:29:15.122Z","0.2.2":"2023-01-18T11:24:12.038Z","0.2.1":"2022-12-26T21:38:20.799Z","0.2.0":"2022-12-26T14:32:35.240Z","0.1.0":"2022-09-29T13:26:11.724Z"},"users":{},"repository":{"type":"git","url":"git+https://github.com/johnsoncodehk/muggle-string.git"},"versions":{"0.4.1":{"name":"muggle-string","version":"0.4.1","main":"out/index.js","license":"MIT","repository":{"type":"git","url":"git+https://github.com/johnsoncodehk/muggle-string.git"},"scripts":{"test":"vitest run"},"devDependencies":{"typescript":"latest","vitest":"latest","vite":"latest"},"_id":"muggle-string@0.4.1","gitHead":"2953aa8b6cc15cd024b3bfe4c1749dbf56b1e2f9","types":"./out/index.d.ts","description":"This library aims to provide codegen helpers and data structure for Vue language plugin API v1.x that does not depend on Volar runtime.","bugs":{"url":"https://github.com/johnsoncodehk/muggle-string/issues"},"homepage":"https://github.com/johnsoncodehk/muggle-string#readme","_nodeVersion":"20.6.1","_npmVersion":"9.8.1","dist":{"shasum":"3b366bd43b32f809dc20659534dd30e7c8a0d328","size":7359,"noattachment":false,"key":"/muggle-string/-/muggle-string-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/muggle-string/download/muggle-string-0.4.1.tgz"},"_npmUser":{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"},"directories":{},"maintainers":[{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/muggle-string_0.4.1_1701833353972_0.9618119350296348"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-12-06T03:29:14.162Z","publish_time":1701833354162,"_source_registry_name":"default","_cnpm_publish_time":1701833354162},"0.4.0":{"name":"muggle-string","version":"0.4.0","main":"out/index.js","license":"MIT","repository":{"type":"git","url":"git+https://github.com/johnsoncodehk/muggle-string.git"},"scripts":{"test":"vitest run"},"devDependencies":{"typescript":"latest","vitest":"latest","vite":"latest"},"_id":"muggle-string@0.4.0","gitHead":"d42eac330e238624f6472147cb21157ed9dcbc2a","types":"./out/index.d.ts","description":"This library aims to provide codegen helpers and data structure for Vue language plugin API v1.x that does not depend on Volar runtime.","bugs":{"url":"https://github.com/johnsoncodehk/muggle-string/issues"},"homepage":"https://github.com/johnsoncodehk/muggle-string#readme","_nodeVersion":"20.6.1","_npmVersion":"9.8.1","dist":{"shasum":"7dfe57b1a0cbfab08d0b9451d2a08e5c20d17c15","size":7344,"noattachment":false,"key":"/muggle-string/-/muggle-string-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/muggle-string/download/muggle-string-0.4.0.tgz"},"_npmUser":{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"},"directories":{},"maintainers":[{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/muggle-string_0.4.0_1700984022455_0.21032135233769678"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-11-26T07:33:42.617Z","publish_time":1700984022617,"_source_registry_name":"default","_cnpm_publish_time":1700984022617},"0.3.1":{"name":"muggle-string","version":"0.3.1","main":"out/index.js","license":"MIT","repository":{"type":"git","url":"git+https://github.com/johnsoncodehk/muggle-string.git"},"scripts":{"test":"vitest run"},"devDependencies":{"typescript":"latest","vitest":"latest","vite":"latest"},"types":"./out/index.d.ts","gitHead":"4e7bee5a85f4a68e7e3bd2f7b26173f31ea2b177","description":"This library aims to provide codegen helpers and data structure for Vue language plugin API v1.x that does not depend on Volar runtime.","bugs":{"url":"https://github.com/johnsoncodehk/muggle-string/issues"},"homepage":"https://github.com/johnsoncodehk/muggle-string#readme","_id":"muggle-string@0.3.1","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"shasum":"e524312eb1728c63dd0b2ac49e3282e6ed85963a","size":5049,"noattachment":false,"key":"/muggle-string/-/muggle-string-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/muggle-string/download/muggle-string-0.3.1.tgz"},"_npmUser":{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"},"directories":{},"maintainers":[{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/muggle-string_0.3.1_1683645896169_0.9480032942348682"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-05-09T15:24:56.312Z","publish_time":1683645896312,"_source_registry_name":"default","_cnpm_publish_time":1683645896312},"0.3.0":{"name":"muggle-string","version":"0.3.0","main":"out/index.js","license":"MIT","repository":{"type":"git","url":"git+https://github.com/johnsoncodehk/muggle-string.git"},"scripts":{"test":"vitest run"},"devDependencies":{"typescript":"latest","vitest":"latest","vite":"latest"},"types":"./out/index.d.ts","gitHead":"73dc9e2b7bf4b16a826a7dfcb6ad5be4a79d9a28","description":"This library aims to provide codegen helpers and data structure for Vue language plugin API v1.x that does not depend on Volar runtime.","bugs":{"url":"https://github.com/johnsoncodehk/muggle-string/issues"},"homepage":"https://github.com/johnsoncodehk/muggle-string#readme","_id":"muggle-string@0.3.0","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"shasum":"4d4872ae6b43a792d654607bc6d1ac91f3581ee5","size":4971,"noattachment":false,"key":"/muggle-string/-/muggle-string-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/muggle-string/download/muggle-string-0.3.0.tgz"},"_npmUser":{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"},"directories":{},"maintainers":[{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/muggle-string_0.3.0_1683538154927_0.3902439602045278"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-05-08T09:29:15.122Z","publish_time":1683538155122,"_source_registry_name":"default","_cnpm_publish_time":1683538155122},"0.2.2":{"name":"muggle-string","version":"0.2.2","main":"out/index.js","license":"MIT","repository":{"type":"git","url":"git+https://github.com/johnsoncodehk/muggle-string.git"},"scripts":{"test":"vitest run"},"devDependencies":{"typescript":"latest","vitest":"latest","vite":"latest"},"types":"./out/index.d.ts","gitHead":"d530d37c96a51a1eb528f234b1596b69900a8fca","description":"This library aims to provide codegen helpers and data structure for Vue language plugin API v1.x that does not depend on Volar runtime.","bugs":{"url":"https://github.com/johnsoncodehk/muggle-string/issues"},"homepage":"https://github.com/johnsoncodehk/muggle-string#readme","_id":"muggle-string@0.2.2","_nodeVersion":"18.13.0","_npmVersion":"8.19.3","dist":{"shasum":"786aa53fea1652c61c6a59e1f839292b262bc72a","size":3677,"noattachment":false,"key":"/muggle-string/-/muggle-string-0.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/muggle-string/download/muggle-string-0.2.2.tgz"},"_npmUser":{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"},"directories":{},"maintainers":[{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/muggle-string_0.2.2_1674041051880_0.7661828421121994"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-01-18T11:24:12.038Z","publish_time":1674041052038,"_cnpm_publish_time":1674041052038},"0.2.1":{"name":"muggle-string","version":"0.2.1","main":"out/index.js","license":"MIT","repository":{"type":"git","url":"git+https://github.com/johnsoncodehk/muggle-string.git"},"scripts":{"test":"vitest run"},"devDependencies":{"typescript":"latest","vitest":"latest","vite":"latest"},"types":"./out/index.d.ts","gitHead":"b89866d9ab15ea3635b8c374d8be3e4d1159cf27","description":"This library aims to provide codegen helpers and data structure for Vue language plugin API v1.x that does not depend on Volar runtime.","bugs":{"url":"https://github.com/johnsoncodehk/muggle-string/issues"},"homepage":"https://github.com/johnsoncodehk/muggle-string#readme","_id":"muggle-string@0.2.1","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"shasum":"a4d295a62fff363f70273aed502580c5c55cd530","size":3752,"noattachment":false,"key":"/muggle-string/-/muggle-string-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/muggle-string/download/muggle-string-0.2.1.tgz"},"_npmUser":{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"},"directories":{},"maintainers":[{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/muggle-string_0.2.1_1672090700646_0.8716538372543767"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-12-26T21:38:24.211Z","publish_time":1672090700799,"_cnpm_publish_time":1672090700799},"0.2.0":{"name":"muggle-string","version":"0.2.0","main":"out/index.js","license":"MIT","repository":{"type":"git","url":"git+https://github.com/johnsoncodehk/muggle-string.git"},"scripts":{"test":"vitest run"},"devDependencies":{"typescript":"latest","vitest":"latest","vite":"latest"},"types":"./out/index.d.ts","gitHead":"7ee979299811ba06d9fc425733af1892a011694d","description":"This library aims to provide codegen helpers and data structure for Vue language plugin API v1.x that does not depend on Volar runtime.","bugs":{"url":"https://github.com/johnsoncodehk/muggle-string/issues"},"homepage":"https://github.com/johnsoncodehk/muggle-string#readme","_id":"muggle-string@0.2.0","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"shasum":"97809f3def50ca44a615e4086c92aa6b115fd6df","size":3126,"noattachment":false,"key":"/muggle-string/-/muggle-string-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/muggle-string/download/muggle-string-0.2.0.tgz"},"_npmUser":{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"},"directories":{},"maintainers":[{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/muggle-string_0.2.0_1672065155041_0.1315905920945959"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-12-26T14:32:39.444Z","publish_time":1672065155240,"_cnpm_publish_time":1672065155240},"0.1.0":{"name":"muggle-string","version":"0.1.0","main":"out/index.js","license":"MIT","repository":{"type":"git","url":"git+https://github.com/johnsoncodehk/muggle-string.git"},"devDependencies":{"typescript":"latest"},"types":"./out/index.d.ts","description":"This library aims to provide codegen helpers and data structure for Vue language plugin API v1.x that does not depend on Volar runtime.","bugs":{"url":"https://github.com/johnsoncodehk/muggle-string/issues"},"homepage":"https://github.com/johnsoncodehk/muggle-string#readme","_id":"muggle-string@0.1.0","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"shasum":"1fda8a281c8b27bb8b70466dbc9f27586a8baa6c","size":2224,"noattachment":false,"key":"/muggle-string/-/muggle-string-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/muggle-string/download/muggle-string-0.1.0.tgz"},"_npmUser":{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"},"directories":{},"maintainers":[{"name":"johnsoncodehk","email":"johnsoncodehk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/muggle-string_0.1.0_1664457971600_0.7064659334938932"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-09-29T21:31:48.524Z","publish_time":1664457971724,"_cnpm_publish_time":1664457971724}},"readme":"This library aims to provide codegen helpers and data structure for Vue language plugin API v1.x that does not depend on Volar runtime.\n\n## Why \"Muggle\"?\n\nA better situation is Volar can use magic-string on the Vue plugin API, but currently can't do this easily.\n\nThis solution is just for Vue language plugin API v1.x and planned to be deprecate in v2.\n\n## Usage\n\nThe example is base-on [magic-string readme](https://github.com/rich-harris/magic-string#usage).\n\n```html\n<script>problems = 99</script>\n\n<more-script lang=\"js\">console.log( answer )</more-script>\n```\n\n```ts\nimport {\n\ttoString,\n\treplace,\n} from 'muggle-string';\n\n/** @type {import('@volar/vue-language-core').VueLanguagePlugin} */\nconst plugin = () => {\n\treturn {\n\t\tname: 'example-vue-language-plugin',\n\t\tversion: 1,\n\t\tresolveEmbeddedFile(fileName, sfc, embeddedFile) {\n\t\t\tif (embeddedFile.fileName.replace(fileName, '').match(/^\\.(js|ts|jsx|tsx)$/)) {\n\n\t\t\t\tconst s = embeddedFile.content;\n\t\t\t\ttoString(s); // 'problems = 99'\n\n\t\t\t\treplace(s, 'problems', 'answer');\n\t\t\t\ttoString(s); // 'answer = 99'\n\n\t\t\t\treplace(s, '99', '42');\n\t\t\t\ttoString(s); // 'answer = 42'\n\n\t\t\t\t// add string by Array method directly\n\t\t\t\ts.unshift('var ');\n\t\t\t\ts.push(';');\n\t\t\t\ttoString(s); // 'var answer = 42;'\n\n\t\t\t\tfor (const block of sfc.customBlocks) {\n\t\t\t\t\tif (block.type === 'more-script') {\n\t\t\t\t\t\ts.push([\n\t\t\t\t\t\t\tblock.content, // text to add\n\t\t\t\t\t\t\tblock.name, // source\n\t\t\t\t\t\t\t0, // content offset in source\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t// language capabilities to enable in this segment\n\t\t\t\t\t\t\t\thover: true,\n\t\t\t\t\t\t\t\treferences: true,\n\t\t\t\t\t\t\t\tdefinition: true,\n\t\t\t\t\t\t\t\tdiagnostic: true,\n\t\t\t\t\t\t\t\trename: true,\n\t\t\t\t\t\t\t\tcompletion: true,\n\t\t\t\t\t\t\t\tsemanticTokens: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t]);\n\t\t\t\t\t\ttoString(s); // 'var answer = 42;console.log( answer )'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n};\nmodule.exports = plugin;\n```\n","_attachments":{},"homepage":"https://github.com/johnsoncodehk/muggle-string#readme","bugs":{"url":"https://github.com/johnsoncodehk/muggle-string/issues"},"license":"MIT"}