{"_id":"template-format-core","_rev":"3-00ee44c6de9b91988d3e4c841c1ad44d","name":"template-format-core","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"template-format-core","version":"0.1.0","keywords":["template","formatter","prettier","handlebars","mustache","parser","printer"],"license":"MIT","_id":"template-format-core@0.1.0","maintainers":[{"name":"poliklot","email":"poliklot@vk.com"}],"homepage":"https://github.com/Poliklot/template-format-core#readme","bugs":{"url":"https://github.com/Poliklot/template-format-core/issues"},"dist":{"shasum":"de58b353884fd5e83d7a4c6902af277d85bc9922","tarball":"https://registry.npmjs.org/template-format-core/-/template-format-core-0.1.0.tgz","fileCount":16,"integrity":"sha512-AL8/VzPmaD3GA4NhaE2/1xXbRWNtpWGKs3gFp3ruTGQJcfUdTtMvCfACaFKWZxxTmd6rqmsfE/aLvmERKT6Sgw==","signatures":[{"sig":"MEYCIQCi7CPmmhU34im2mU2kjcCBKxeImz3xaw7ACSsKrCzmzwIhAMFMCL2z6oyL8ufbKkbEGS1ZVpOx1iTsILygxH1zi/kI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17618},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"},"./source":{"types":"./dist/source.d.ts","default":"./dist/source.js","require":"./dist/source.js"},"./html/tags":{"types":"./dist/html/tags.d.ts","default":"./dist/html/tags.js","require":"./dist/html/tags.js"},"./text/whitespace":{"types":"./dist/text/whitespace.d.ts","default":"./dist/text/whitespace.js","require":"./dist/text/whitespace.js"},"./template/dialect":{"types":"./dist/template/dialect.d.ts","default":"./dist/template/dialect.js","require":"./dist/template/dialect.js"},"./template/expression":{"types":"./dist/template/expression.d.ts","default":"./dist/template/expression.js","require":"./dist/template/expression.js"}},"gitHead":"3ce455f184fa94cbdd701d53516da8ce09e30015","scripts":{"test":"node --test test/*.test.mjs","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.json","check":"npm run build && npm test","prepublishOnly":"npm run check"},"_npmUser":{"name":"poliklot","email":"poliklot@vk.com"},"repository":{"url":"git+https://github.com/Poliklot/template-format-core.git","type":"git"},"_npmVersion":"11.13.0","description":"Shared core utilities for Prettier template formatting plugins.","directories":{},"_nodeVersion":"20.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/template-format-core_0.1.0_1780474313514_0.8286357298816915","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"template-format-core","version":"0.1.1","keywords":["template","formatter","prettier","handlebars","mustache","parser","printer"],"license":"MIT","_id":"template-format-core@0.1.1","maintainers":[{"name":"poliklot","email":"poliklot@vk.com"}],"homepage":"https://github.com/Poliklot/template-format-core#readme","bugs":{"url":"https://github.com/Poliklot/template-format-core/issues"},"dist":{"shasum":"26d1bd5ee3d5911a26e19a1e52e3c6cda3bf1c0d","tarball":"https://registry.npmjs.org/template-format-core/-/template-format-core-0.1.1.tgz","fileCount":16,"integrity":"sha512-+Ne2R/sFyP88JIStY3qy1KUD5A5rY8hIjRGC58KQlX7X80Lhc5FHNiD7hPEu5tF+tCszkJt/TTz9l123U6A33g==","signatures":[{"sig":"MEQCICEYu2ZRYhZyEy/osoFFiTJvNcCUMowGMsMaWS/dqnTTAiAHP3Q2riSF08/j0CLhJADS58tT19lLEVegWnGh0kV0+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18128},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js","require":"./dist/index.js"},"./source":{"types":"./dist/source.d.ts","default":"./dist/source.js","require":"./dist/source.js"},"./html/tags":{"types":"./dist/html/tags.d.ts","default":"./dist/html/tags.js","require":"./dist/html/tags.js"},"./text/whitespace":{"types":"./dist/text/whitespace.d.ts","default":"./dist/text/whitespace.js","require":"./dist/text/whitespace.js"},"./template/dialect":{"types":"./dist/template/dialect.d.ts","default":"./dist/template/dialect.js","require":"./dist/template/dialect.js"},"./template/expression":{"types":"./dist/template/expression.d.ts","default":"./dist/template/expression.js","require":"./dist/template/expression.js"}},"gitHead":"150231dad9aeec38bed63c6db49769c6c015ceb4","scripts":{"test":"node --test test/*.test.mjs","build":"node scripts/clean-dist.mjs && tsc -p tsconfig.json","check":"npm run build && npm test","prepublishOnly":"npm run check"},"_npmUser":{"name":"poliklot","email":"poliklot@vk.com"},"repository":{"url":"git+https://github.com/Poliklot/template-format-core.git","type":"git"},"_npmVersion":"11.13.0","description":"Shared core utilities for Prettier template formatting plugins.","directories":{},"_nodeVersion":"20.19.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"source":["dist/source.d.ts"],"html/tags":["dist/html/tags.d.ts"],"text/whitespace":["dist/text/whitespace.d.ts"],"template/dialect":["dist/template/dialect.d.ts"],"template/expression":["dist/template/expression.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/template-format-core_0.1.1_1780477127911_0.7559922488841475","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"template-format-core","version":"0.2.0","description":"Shared core utilities for Prettier template formatting plugins.","license":"MIT","type":"commonjs","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","require":"./dist/index.js","default":"./dist/index.js"},"./source":{"types":"./dist/source.d.ts","require":"./dist/source.js","default":"./dist/source.js"},"./html/tags":{"types":"./dist/html/tags.d.ts","require":"./dist/html/tags.js","default":"./dist/html/tags.js"},"./text/whitespace":{"types":"./dist/text/whitespace.d.ts","require":"./dist/text/whitespace.js","default":"./dist/text/whitespace.js"},"./template/expression":{"types":"./dist/template/expression.d.ts","require":"./dist/template/expression.js","default":"./dist/template/expression.js"},"./template/dialect":{"types":"./dist/template/dialect.d.ts","require":"./dist/template/dialect.js","default":"./dist/template/dialect.js"},"./html/embedded-language":{"types":"./dist/html/embedded-language.d.ts","require":"./dist/html/embedded-language.js","default":"./dist/html/embedded-language.js"},"./html/raw-regions":{"types":"./dist/html/raw-regions.d.ts","require":"./dist/html/raw-regions.js","default":"./dist/html/raw-regions.js"},"./embedding/placeholders":{"types":"./dist/embedding/placeholders.d.ts","require":"./dist/embedding/placeholders.js","default":"./dist/embedding/placeholders.js"},"./prettier":{"types":"./dist/prettier/index.d.ts","require":"./dist/prettier/index.js","default":"./dist/prettier/index.js"}},"repository":{"type":"git","url":"git+https://github.com/Poliklot/template-format-core.git"},"bugs":{"url":"https://github.com/Poliklot/template-format-core/issues"},"homepage":"https://github.com/Poliklot/template-format-core#readme","publishConfig":{"access":"public"},"keywords":["template","formatter","prettier","handlebars","mustache","parser","printer"],"engines":{"node":">=18"},"scripts":{"build":"node scripts/clean-dist.mjs && tsc -p tsconfig.json","test":"node --test test/*.test.mjs","check":"npm run build && npm test","prepublishOnly":"npm run check","prepare":"npm run build"},"devDependencies":{"@types/node":"^20.19.43","typescript":"^7.0.2","prettier":"^3.9.6"},"typesVersions":{"*":{"source":["dist/source.d.ts"],"html/tags":["dist/html/tags.d.ts"],"text/whitespace":["dist/text/whitespace.d.ts"],"template/expression":["dist/template/expression.d.ts"],"template/dialect":["dist/template/dialect.d.ts"],"html/embedded-language":["dist/html/embedded-language.d.ts"],"html/raw-regions":["dist/html/raw-regions.d.ts"],"embedding/placeholders":["dist/embedding/placeholders.d.ts"],"prettier":["dist/prettier/index.d.ts"]}},"peerDependencies":{"prettier":">=3.0.0"},"peerDependenciesMeta":{"prettier":{"optional":true}},"_id":"template-format-core@0.2.0","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-jdrBDhV7SW06qm8uL10PaU8yJchqCp22JIMNpJoW+SSiWhAyiqcBLkp1m+x1Ww7YzTtRhp01hmZ3XHmJje2BwQ==","shasum":"9cfc0b5fd41aaafdcf6f762ba0ddbe0f7670cce7","tarball":"https://registry.npmjs.org/template-format-core/-/template-format-core-0.2.0.tgz","fileCount":30,"unpackedSize":63320,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCv4JnS1KRK/bNqBAQ3cm6D/fILmoP+/bSnelPPZETsGAIhAM2AKG6Cm+3LPxGpikQezXM+QP5nIzajNU+dCXpuzZ4i"}]},"_npmUser":{"name":"poliklot","email":"poliklot@vk.com"},"directories":{},"maintainers":[{"name":"poliklot","email":"poliklot@vk.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/template-format-core_0.2.0_1789294288194_0.21531862067674745"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-03T08:11:53.289Z","modified":"2026-09-13T10:11:28.485Z","0.1.0":"2026-06-03T08:11:53.649Z","0.1.1":"2026-06-03T08:58:48.105Z","0.2.0":"2026-09-13T10:11:28.333Z"},"bugs":{"url":"https://github.com/Poliklot/template-format-core/issues"},"license":"MIT","homepage":"https://github.com/Poliklot/template-format-core#readme","keywords":["template","formatter","prettier","handlebars","mustache","parser","printer"],"repository":{"type":"git","url":"git+https://github.com/Poliklot/template-format-core.git"},"description":"Shared core utilities for Prettier template formatting plugins.","maintainers":[{"name":"poliklot","email":"poliklot@vk.com"}],"readme":"# template-format-core\n\nShared core utilities for template-formatting plugins.\n\nThis package is intentionally dialect-neutral. It provides source range helpers, HTML-ish tag metadata, whitespace helpers, template expression tokenization, and dialect contracts that formatter plugins can build on.\n\n## Install\n\n```sh\nnpm install template-format-core\n```\n\n## Modules\n\n```ts\nimport { normalizeInput, withRange } from 'template-format-core/source';\nimport { voidElements } from 'template-format-core/html/tags';\nimport { normalizeInlineText } from 'template-format-core/text/whitespace';\nimport { parseTemplateExpression } from 'template-format-core/template/expression';\nimport type { TemplateDialect } from 'template-format-core/template/dialect';\n```\n\nThe root export also re-exports all public modules:\n\n```ts\nimport { parseTemplateExpression, type TemplateDialect } from 'template-format-core';\n```\n\n## Intended consumers\n\n- `@poliklot/prettier-plugin-handlebars`\n- future `prettier-plugin-mustache`\n\n## Release\n\nPublishing is manual:\n\n```sh\nnpm publish --access public\n```\n\n## Shared embedding work\n\nSee [shared embedding architecture and cross-repository dependencies](docs/shared-embedding.md). This source work depends on [the core tracking issue](https://github.com/Poliklot/template-format-core/issues/2).\n","readmeFilename":"README.md"}