@breadstone-infrastructure/nx-tasks 0.0.256 → 0.0.258
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/LICENSE +21 -0
- package/dist/executors.json +149 -0
- package/dist/package.json +48 -0
- package/executors.json +87 -87
- package/package.json +76 -47
- package/readme.md +156 -0
- package/src/_legacy/_Lint.ts +40 -0
- package/src/_legacy/_LitAnalyzer.ts +163 -0
- package/src/_legacy/_Resources.ts +69 -0
- package/src/executors/alias-replace/executor.options.ts +10 -0
- package/src/executors/alias-replace/executor.task.ts +305 -0
- package/src/executors/alias-replace/executor.ts +35 -0
- package/src/executors/alias-replace/schema.json +1 -0
- package/src/executors/clean/executor.options.ts +10 -0
- package/src/executors/clean/executor.task.ts +49 -0
- package/src/executors/clean/executor.ts +28 -0
- package/src/executors/clean/schema.json +1 -0
- package/src/executors/copy/executor.options.ts +10 -0
- package/src/executors/copy/executor.task.ts +96 -0
- package/src/executors/copy/executor.ts +30 -0
- package/src/executors/copy/schema.json +1 -0
- package/src/executors/copy2/executor.options.ts +10 -0
- package/src/executors/copy2/executor.task.ts +115 -0
- package/src/executors/copy2/executor.ts +28 -0
- package/src/executors/copy2/schema.json +1 -0
- package/src/executors/docs/ApiDocumenter.ts +50 -0
- package/src/executors/docs/DocusaurusMarkdownFeature.ts +129 -0
- package/src/executors/docs/executor.options.ts +10 -0
- package/src/executors/docs/executor.task.ts +116 -0
- package/src/executors/docs/executor.ts +33 -0
- package/src/executors/docs/schema.json +1 -0
- package/src/executors/generate-package-docs/executor.options.ts +10 -0
- package/src/executors/generate-package-docs/executor.task.ts +381 -0
- package/src/executors/generate-package-docs/executor.ts +47 -0
- package/src/executors/generate-package-docs/schema.json +258 -0
- package/src/executors/icon-collection-builder/executor.options.ts +10 -0
- package/src/executors/icon-collection-builder/executor.task.ts +284 -0
- package/src/executors/icon-collection-builder/executor.ts +67 -0
- package/src/executors/icon-collection-builder/schema.json +1 -0
- package/src/executors/icon-collection-builder/svg.ts +406 -0
- package/src/executors/icon-collection-downloader/executor.options.ts +10 -0
- package/src/executors/icon-collection-downloader/executor.task.ts +409 -0
- package/src/executors/icon-collection-downloader/executor.ts +47 -0
- package/src/executors/icon-collection-downloader/schema.json +33 -0
- package/src/executors/lit-docs/ComponentDocFixer.ts +571 -0
- package/src/executors/lit-docs/JSDocChecker.ts +353 -0
- package/src/executors/lit-docs/executor.options.ts +10 -0
- package/src/executors/lit-docs/executor.task.ts +372 -0
- package/src/executors/lit-docs/executor.ts +31 -0
- package/src/executors/lit-docs/schema.json +1 -0
- package/src/executors/lit-style-transform/executor.options.ts +0 -0
- package/src/executors/lit-style-transform/executor.task.ts +433 -0
- package/src/executors/lit-style-transform/executor.ts +47 -0
- package/src/executors/lit-style-transform/schema.json +1 -0
- package/src/executors/localizator/executor.options.ts +11 -0
- package/src/executors/localizator/executor.task.ts +194 -0
- package/src/executors/localizator/executor.ts +45 -0
- package/src/executors/localizator/schema.json +10 -0
- package/src/executors/markdown-to-typescript-transform/MarkdownRenderer.ts +96 -0
- package/src/executors/markdown-to-typescript-transform/executor.options.ts +0 -0
- package/src/executors/markdown-to-typescript-transform/executor.task.ts +113 -0
- package/src/executors/markdown-to-typescript-transform/executor.ts +44 -0
- package/src/executors/markdown-to-typescript-transform/schema.json +1 -0
- package/src/executors/ng-api-extractor/executor.options.ts +10 -0
- package/src/executors/ng-api-extractor/executor.task.ts +157 -0
- package/src/executors/ng-api-extractor/executor.ts +27 -0
- package/src/executors/ng-api-extractor/schema.json +1 -0
- package/src/executors/ng-packagr-build/executor.options.ts +0 -0
- package/src/executors/ng-packagr-build/executor.task.ts +49 -0
- package/src/executors/ng-packagr-build/executor.ts +29 -0
- package/src/executors/ng-packagr-build/schema.json +1 -0
- package/src/executors/ng-proxy-transform/executor.options.ts +0 -0
- package/src/executors/ng-proxy-transform/executor.task.ts +675 -0
- package/src/executors/ng-proxy-transform/executor.ts +49 -0
- package/src/executors/ng-proxy-transform/schema.json +13 -0
- package/src/executors/openapi-generator/executor.options.ts +0 -0
- package/src/executors/openapi-generator/executor.task.ts +43 -0
- package/src/executors/openapi-generator/executor.ts +35 -0
- package/src/executors/openapi-generator/schema.json +1 -0
- package/src/executors/prisma-seeds/executor.options.ts +15 -0
- package/src/executors/prisma-seeds/executor.task.ts +63 -0
- package/src/executors/prisma-seeds/executor.ts +39 -0
- package/src/executors/prisma-seeds/schema.json +35 -0
- package/src/executors/react-proxy-transform/executor.options.ts +0 -0
- package/src/executors/react-proxy-transform/executor.task.ts +243 -0
- package/src/executors/react-proxy-transform/executor.ts +45 -0
- package/src/executors/react-proxy-transform/schema.json +1 -0
- package/src/executors/release-package/executor.options.ts +0 -0
- package/src/executors/release-package/executor.task.ts +212 -0
- package/src/executors/release-package/executor.ts +33 -0
- package/src/executors/release-package/schema.json +1 -0
- package/src/executors/release-package-json/executor.options.ts +0 -0
- package/src/executors/release-package-json/executor.task.ts +206 -0
- package/src/executors/release-package-json/executor.ts +37 -0
- package/src/executors/release-package-json/schema.json +1 -0
- package/src/executors/scss-style-bundle/executor.options.ts +0 -0
- package/src/executors/scss-style-bundle/executor.task.ts +123 -0
- package/src/executors/scss-style-bundle/executor.ts +37 -0
- package/src/executors/scss-style-bundle/schema.json +1 -0
- package/src/executors/scss-style-transform/executor.options.ts +0 -0
- package/src/executors/scss-style-transform/executor.task.ts +50 -0
- package/src/executors/scss-style-transform/executor.ts +38 -0
- package/src/executors/scss-style-transform/schema.json +1 -0
- package/src/executors/secrets-config-sync/executor.options.ts +10 -0
- package/src/executors/secrets-config-sync/executor.task.ts +163 -0
- package/src/executors/secrets-config-sync/executor.ts +32 -0
- package/src/executors/secrets-config-sync/providers/azure-keyvault.provider.ts +180 -0
- package/src/executors/secrets-config-sync/providers/doppler.provider.ts +84 -0
- package/src/executors/secrets-config-sync/providers/secrets-provider.factory.ts +33 -0
- package/src/executors/secrets-config-sync/providers/secrets-provider.interface.ts +34 -0
- package/src/executors/secrets-config-sync/schema.json +44 -0
- package/src/executors/secrets-vercel-sync/executor.options.ts +12 -0
- package/src/executors/secrets-vercel-sync/executor.task.ts +697 -0
- package/src/executors/secrets-vercel-sync/executor.ts +44 -0
- package/src/executors/secrets-vercel-sync/providers/azure-keyvault.provider.ts +173 -0
- package/src/executors/secrets-vercel-sync/providers/doppler.provider.ts +93 -0
- package/src/executors/secrets-vercel-sync/providers/secrets-provider.factory.ts +33 -0
- package/src/executors/secrets-vercel-sync/providers/secrets-provider.interface.ts +34 -0
- package/src/executors/secrets-vercel-sync/schema.json +112 -0
- package/src/executors/svelte-proxy-transform/executor.options.ts +0 -0
- package/src/executors/svelte-proxy-transform/executor.task.ts +187 -0
- package/src/executors/svelte-proxy-transform/executor.ts +45 -0
- package/src/executors/svelte-proxy-transform/schema.json +1 -0
- package/src/executors/token-linter/executor.options.ts +23 -0
- package/src/executors/token-linter/executor.task.ts +66 -0
- package/src/executors/token-linter/executor.ts +37 -0
- package/src/executors/token-linter/schema.json +63 -0
- package/src/executors/unrelease-package/executor.options.ts +0 -0
- package/src/executors/unrelease-package/executor.task.ts +138 -0
- package/src/executors/unrelease-package/executor.ts +33 -0
- package/src/executors/unrelease-package/schema.json +1 -0
- package/src/executors/vercel-edge-config-sync/executor.options.ts +0 -0
- package/src/executors/vercel-edge-config-sync/executor.task.ts +30 -0
- package/src/executors/vercel-edge-config-sync/executor.ts +25 -0
- package/src/executors/vercel-edge-config-sync/schema.json +1 -0
- package/src/executors/vue-proxy-transform/executor.options.ts +0 -0
- package/src/executors/vue-proxy-transform/executor.task.ts +226 -0
- package/src/executors/vue-proxy-transform/executor.ts +45 -0
- package/src/executors/vue-proxy-transform/schema.json +1 -0
- package/src/index.ts +31 -0
- package/src/types/svgpath.d.ts +13 -0
- package/src/utils/TaskBase.ts +42 -0
- package/src/utils/getProjectPackageJson.ts +22 -0
- package/src/utils/getProjectRoot.ts +14 -0
- package/src/utils/getProjectTsConfigJson.ts +29 -0
- package/src/utils/isVerbose.ts +24 -0
- package/src/utils/loadAndExpandDotEnvFile.ts +108 -0
- package/src/utils/markdown-processing.ts +174 -0
- package/src/utils/valid-html-tags.ts +79 -0
- package/src/utils/withCaching.ts +14 -0
- /package/{CHANGELOG.md → dist/CHANGELOG.md} +0 -0
- /package/{README.md → dist/README.md} +0 -0
- /package/{executors → dist/executors}/alias-replace/executor.d.ts +0 -0
- /package/{executors → dist/executors}/alias-replace/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/alias-replace/executor.js +0 -0
- /package/{executors → dist/executors}/alias-replace/executor.js.map +0 -0
- /package/{executors → dist/executors}/alias-replace/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/alias-replace/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/alias-replace/executor.options.js +0 -0
- /package/{executors → dist/executors}/alias-replace/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/alias-replace/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/alias-replace/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/alias-replace/executor.task.js +0 -0
- /package/{executors → dist/executors}/alias-replace/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/alias-replace/schema.json +0 -0
- /package/{executors → dist/executors}/clean/executor.d.ts +0 -0
- /package/{executors → dist/executors}/clean/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/clean/executor.js +0 -0
- /package/{executors → dist/executors}/clean/executor.js.map +0 -0
- /package/{executors → dist/executors}/clean/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/clean/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/clean/executor.options.js +0 -0
- /package/{executors → dist/executors}/clean/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/clean/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/clean/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/clean/executor.task.js +0 -0
- /package/{executors → dist/executors}/clean/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/clean/schema.json +0 -0
- /package/{executors → dist/executors}/copy/executor.d.ts +0 -0
- /package/{executors → dist/executors}/copy/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/copy/executor.js +0 -0
- /package/{executors → dist/executors}/copy/executor.js.map +0 -0
- /package/{executors → dist/executors}/copy/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/copy/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/copy/executor.options.js +0 -0
- /package/{executors → dist/executors}/copy/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/copy/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/copy/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/copy/executor.task.js +0 -0
- /package/{executors → dist/executors}/copy/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/copy/schema.json +0 -0
- /package/{executors → dist/executors}/copy2/executor.d.ts +0 -0
- /package/{executors → dist/executors}/copy2/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/copy2/executor.js +0 -0
- /package/{executors → dist/executors}/copy2/executor.js.map +0 -0
- /package/{executors → dist/executors}/copy2/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/copy2/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/copy2/executor.options.js +0 -0
- /package/{executors → dist/executors}/copy2/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/copy2/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/copy2/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/copy2/executor.task.js +0 -0
- /package/{executors → dist/executors}/copy2/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/copy2/schema.json +0 -0
- /package/{executors → dist/executors}/docs/ApiDocumenter.d.ts +0 -0
- /package/{executors → dist/executors}/docs/ApiDocumenter.d.ts.map +0 -0
- /package/{executors → dist/executors}/docs/ApiDocumenter.js +0 -0
- /package/{executors → dist/executors}/docs/ApiDocumenter.js.map +0 -0
- /package/{executors → dist/executors}/docs/DocusaurusMarkdownFeature.d.ts +0 -0
- /package/{executors → dist/executors}/docs/DocusaurusMarkdownFeature.d.ts.map +0 -0
- /package/{executors → dist/executors}/docs/DocusaurusMarkdownFeature.js +0 -0
- /package/{executors → dist/executors}/docs/DocusaurusMarkdownFeature.js.map +0 -0
- /package/{executors → dist/executors}/docs/executor.d.ts +0 -0
- /package/{executors → dist/executors}/docs/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/docs/executor.js +0 -0
- /package/{executors → dist/executors}/docs/executor.js.map +0 -0
- /package/{executors → dist/executors}/docs/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/docs/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/docs/executor.options.js +0 -0
- /package/{executors → dist/executors}/docs/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/docs/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/docs/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/docs/executor.task.js +0 -0
- /package/{executors → dist/executors}/docs/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/docs/schema.json +0 -0
- /package/{executors → dist/executors}/doppler-config-sync/executor.d.ts +0 -0
- /package/{executors → dist/executors}/doppler-config-sync/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/doppler-config-sync/executor.js +0 -0
- /package/{executors → dist/executors}/doppler-config-sync/executor.js.map +0 -0
- /package/{executors → dist/executors}/doppler-config-sync/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/doppler-config-sync/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/doppler-config-sync/executor.options.js +0 -0
- /package/{executors → dist/executors}/doppler-config-sync/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/doppler-config-sync/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/doppler-config-sync/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/doppler-config-sync/executor.task.js +0 -0
- /package/{executors → dist/executors}/doppler-config-sync/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/doppler-config-sync/schema.json +0 -0
- /package/{executors → dist/executors}/doppler-vercel-sync/executor.d.ts +0 -0
- /package/{executors → dist/executors}/doppler-vercel-sync/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/doppler-vercel-sync/executor.js +0 -0
- /package/{executors → dist/executors}/doppler-vercel-sync/executor.js.map +0 -0
- /package/{executors → dist/executors}/doppler-vercel-sync/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/doppler-vercel-sync/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/doppler-vercel-sync/executor.options.js +0 -0
- /package/{executors → dist/executors}/doppler-vercel-sync/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/doppler-vercel-sync/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/doppler-vercel-sync/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/doppler-vercel-sync/executor.task.js +0 -0
- /package/{executors → dist/executors}/doppler-vercel-sync/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/doppler-vercel-sync/schema.json +0 -0
- /package/{executors → dist/executors}/generate-package-docs/executor.d.ts +0 -0
- /package/{executors → dist/executors}/generate-package-docs/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/generate-package-docs/executor.js +0 -0
- /package/{executors → dist/executors}/generate-package-docs/executor.js.map +0 -0
- /package/{executors → dist/executors}/generate-package-docs/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/generate-package-docs/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/generate-package-docs/executor.options.js +0 -0
- /package/{executors → dist/executors}/generate-package-docs/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/generate-package-docs/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/generate-package-docs/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/generate-package-docs/executor.task.js +0 -0
- /package/{executors → dist/executors}/generate-package-docs/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/generate-package-docs/schema.json +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/executor.d.ts +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/executor.js +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/executor.js.map +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/executor.options.js +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/executor.task.js +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/schema.json +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/svg.d.ts +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/svg.d.ts.map +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/svg.js +0 -0
- /package/{executors → dist/executors}/icon-collection-builder/svg.js.map +0 -0
- /package/{executors → dist/executors}/icon-collection-downloader/executor.d.ts +0 -0
- /package/{executors → dist/executors}/icon-collection-downloader/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/icon-collection-downloader/executor.js +0 -0
- /package/{executors → dist/executors}/icon-collection-downloader/executor.js.map +0 -0
- /package/{executors → dist/executors}/icon-collection-downloader/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/icon-collection-downloader/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/icon-collection-downloader/executor.options.js +0 -0
- /package/{executors → dist/executors}/icon-collection-downloader/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/icon-collection-downloader/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/icon-collection-downloader/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/icon-collection-downloader/executor.task.js +0 -0
- /package/{executors → dist/executors}/icon-collection-downloader/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/icon-collection-downloader/schema.json +0 -0
- /package/{executors → dist/executors}/lit-docs/ComponentDocFixer.d.ts +0 -0
- /package/{executors → dist/executors}/lit-docs/ComponentDocFixer.d.ts.map +0 -0
- /package/{executors → dist/executors}/lit-docs/ComponentDocFixer.js +0 -0
- /package/{executors → dist/executors}/lit-docs/ComponentDocFixer.js.map +0 -0
- /package/{executors → dist/executors}/lit-docs/JSDocChecker.d.ts +0 -0
- /package/{executors → dist/executors}/lit-docs/JSDocChecker.d.ts.map +0 -0
- /package/{executors → dist/executors}/lit-docs/JSDocChecker.js +0 -0
- /package/{executors → dist/executors}/lit-docs/JSDocChecker.js.map +0 -0
- /package/{executors → dist/executors}/lit-docs/JSDocFixer.d.ts +0 -0
- /package/{executors → dist/executors}/lit-docs/JSDocFixer.d.ts.map +0 -0
- /package/{executors → dist/executors}/lit-docs/JSDocFixer.js +0 -0
- /package/{executors → dist/executors}/lit-docs/JSDocFixer.js.map +0 -0
- /package/{executors → dist/executors}/lit-docs/executor.d.ts +0 -0
- /package/{executors → dist/executors}/lit-docs/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/lit-docs/executor.js +0 -0
- /package/{executors → dist/executors}/lit-docs/executor.js.map +0 -0
- /package/{executors → dist/executors}/lit-docs/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/lit-docs/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/lit-docs/executor.options.js +0 -0
- /package/{executors → dist/executors}/lit-docs/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/lit-docs/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/lit-docs/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/lit-docs/executor.task.js +0 -0
- /package/{executors → dist/executors}/lit-docs/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/lit-docs/schema.json +0 -0
- /package/{executors → dist/executors}/lit-style-transform/executor.d.ts +0 -0
- /package/{executors → dist/executors}/lit-style-transform/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/lit-style-transform/executor.js +0 -0
- /package/{executors → dist/executors}/lit-style-transform/executor.js.map +0 -0
- /package/{executors → dist/executors}/lit-style-transform/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/lit-style-transform/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/lit-style-transform/executor.options.js +0 -0
- /package/{executors → dist/executors}/lit-style-transform/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/lit-style-transform/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/lit-style-transform/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/lit-style-transform/executor.task.js +0 -0
- /package/{executors → dist/executors}/lit-style-transform/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/lit-style-transform/schema.json +0 -0
- /package/{executors → dist/executors}/localizator/executor.d.ts +0 -0
- /package/{executors → dist/executors}/localizator/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/localizator/executor.js +0 -0
- /package/{executors → dist/executors}/localizator/executor.js.map +0 -0
- /package/{executors → dist/executors}/localizator/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/localizator/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/localizator/executor.options.js +0 -0
- /package/{executors → dist/executors}/localizator/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/localizator/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/localizator/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/localizator/executor.task.js +0 -0
- /package/{executors → dist/executors}/localizator/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/localizator/schema.json +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/MarkdownRenderer.d.ts +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/MarkdownRenderer.d.ts.map +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/MarkdownRenderer.js +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/MarkdownRenderer.js.map +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/executor.d.ts +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/executor.js +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/executor.js.map +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/executor.options.js +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/executor.task.js +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/markdown-to-typescript-transform/schema.json +0 -0
- /package/{executors → dist/executors}/ng-api-extractor/executor.d.ts +0 -0
- /package/{executors → dist/executors}/ng-api-extractor/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/ng-api-extractor/executor.js +0 -0
- /package/{executors → dist/executors}/ng-api-extractor/executor.js.map +0 -0
- /package/{executors → dist/executors}/ng-api-extractor/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/ng-api-extractor/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/ng-api-extractor/executor.options.js +0 -0
- /package/{executors → dist/executors}/ng-api-extractor/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/ng-api-extractor/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/ng-api-extractor/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/ng-api-extractor/executor.task.js +0 -0
- /package/{executors → dist/executors}/ng-api-extractor/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/ng-api-extractor/schema.json +0 -0
- /package/{executors → dist/executors}/ng-packagr-build/executor.d.ts +0 -0
- /package/{executors → dist/executors}/ng-packagr-build/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/ng-packagr-build/executor.js +0 -0
- /package/{executors → dist/executors}/ng-packagr-build/executor.js.map +0 -0
- /package/{executors → dist/executors}/ng-packagr-build/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/ng-packagr-build/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/ng-packagr-build/executor.options.js +0 -0
- /package/{executors → dist/executors}/ng-packagr-build/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/ng-packagr-build/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/ng-packagr-build/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/ng-packagr-build/executor.task.js +0 -0
- /package/{executors → dist/executors}/ng-packagr-build/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/ng-packagr-build/schema.json +0 -0
- /package/{executors → dist/executors}/ng-proxy-transform/executor.d.ts +0 -0
- /package/{executors → dist/executors}/ng-proxy-transform/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/ng-proxy-transform/executor.js +0 -0
- /package/{executors → dist/executors}/ng-proxy-transform/executor.js.map +0 -0
- /package/{executors → dist/executors}/ng-proxy-transform/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/ng-proxy-transform/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/ng-proxy-transform/executor.options.js +0 -0
- /package/{executors → dist/executors}/ng-proxy-transform/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/ng-proxy-transform/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/ng-proxy-transform/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/ng-proxy-transform/executor.task.js +0 -0
- /package/{executors → dist/executors}/ng-proxy-transform/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/ng-proxy-transform/schema.json +0 -0
- /package/{executors → dist/executors}/openapi-generator/executor.d.ts +0 -0
- /package/{executors → dist/executors}/openapi-generator/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/openapi-generator/executor.js +0 -0
- /package/{executors → dist/executors}/openapi-generator/executor.js.map +0 -0
- /package/{executors → dist/executors}/openapi-generator/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/openapi-generator/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/openapi-generator/executor.options.js +0 -0
- /package/{executors → dist/executors}/openapi-generator/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/openapi-generator/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/openapi-generator/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/openapi-generator/executor.task.js +0 -0
- /package/{executors → dist/executors}/openapi-generator/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/openapi-generator/schema.json +0 -0
- /package/{executors → dist/executors}/prisma-seeds/executor.d.ts +0 -0
- /package/{executors → dist/executors}/prisma-seeds/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/prisma-seeds/executor.js +0 -0
- /package/{executors → dist/executors}/prisma-seeds/executor.js.map +0 -0
- /package/{executors → dist/executors}/prisma-seeds/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/prisma-seeds/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/prisma-seeds/executor.options.js +0 -0
- /package/{executors → dist/executors}/prisma-seeds/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/prisma-seeds/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/prisma-seeds/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/prisma-seeds/executor.task.js +0 -0
- /package/{executors → dist/executors}/prisma-seeds/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/prisma-seeds/schema.json +0 -0
- /package/{executors → dist/executors}/react-proxy-transform/executor.d.ts +0 -0
- /package/{executors → dist/executors}/react-proxy-transform/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/react-proxy-transform/executor.js +0 -0
- /package/{executors → dist/executors}/react-proxy-transform/executor.js.map +0 -0
- /package/{executors → dist/executors}/react-proxy-transform/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/react-proxy-transform/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/react-proxy-transform/executor.options.js +0 -0
- /package/{executors → dist/executors}/react-proxy-transform/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/react-proxy-transform/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/react-proxy-transform/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/react-proxy-transform/executor.task.js +0 -0
- /package/{executors → dist/executors}/react-proxy-transform/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/react-proxy-transform/schema.json +0 -0
- /package/{executors → dist/executors}/release-package/executor.d.ts +0 -0
- /package/{executors → dist/executors}/release-package/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/release-package/executor.js +0 -0
- /package/{executors → dist/executors}/release-package/executor.js.map +0 -0
- /package/{executors → dist/executors}/release-package/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/release-package/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/release-package/executor.options.js +0 -0
- /package/{executors → dist/executors}/release-package/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/release-package/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/release-package/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/release-package/executor.task.js +0 -0
- /package/{executors → dist/executors}/release-package/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/release-package/schema.json +0 -0
- /package/{executors → dist/executors}/release-package-json/executor.d.ts +0 -0
- /package/{executors → dist/executors}/release-package-json/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/release-package-json/executor.js +0 -0
- /package/{executors → dist/executors}/release-package-json/executor.js.map +0 -0
- /package/{executors → dist/executors}/release-package-json/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/release-package-json/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/release-package-json/executor.options.js +0 -0
- /package/{executors → dist/executors}/release-package-json/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/release-package-json/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/release-package-json/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/release-package-json/executor.task.js +0 -0
- /package/{executors → dist/executors}/release-package-json/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/release-package-json/schema.json +0 -0
- /package/{executors → dist/executors}/scss-style-bundle/executor.d.ts +0 -0
- /package/{executors → dist/executors}/scss-style-bundle/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/scss-style-bundle/executor.js +0 -0
- /package/{executors → dist/executors}/scss-style-bundle/executor.js.map +0 -0
- /package/{executors → dist/executors}/scss-style-bundle/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/scss-style-bundle/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/scss-style-bundle/executor.options.js +0 -0
- /package/{executors → dist/executors}/scss-style-bundle/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/scss-style-bundle/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/scss-style-bundle/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/scss-style-bundle/executor.task.js +0 -0
- /package/{executors → dist/executors}/scss-style-bundle/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/scss-style-bundle/schema.json +0 -0
- /package/{executors → dist/executors}/scss-style-transform/executor.d.ts +0 -0
- /package/{executors → dist/executors}/scss-style-transform/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/scss-style-transform/executor.js +0 -0
- /package/{executors → dist/executors}/scss-style-transform/executor.js.map +0 -0
- /package/{executors → dist/executors}/scss-style-transform/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/scss-style-transform/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/scss-style-transform/executor.options.js +0 -0
- /package/{executors → dist/executors}/scss-style-transform/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/scss-style-transform/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/scss-style-transform/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/scss-style-transform/executor.task.js +0 -0
- /package/{executors → dist/executors}/scss-style-transform/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/scss-style-transform/schema.json +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/executor.d.ts +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/executor.js +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/executor.js.map +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/executor.options.js +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/executor.task.js +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/azure-keyvault.provider.d.ts +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/azure-keyvault.provider.d.ts.map +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/azure-keyvault.provider.js +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/azure-keyvault.provider.js.map +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/doppler.provider.d.ts +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/doppler.provider.d.ts.map +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/doppler.provider.js +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/doppler.provider.js.map +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/secrets-provider.factory.d.ts +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/secrets-provider.factory.d.ts.map +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/secrets-provider.factory.js +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/secrets-provider.factory.js.map +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/secrets-provider.interface.d.ts +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/secrets-provider.interface.d.ts.map +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/secrets-provider.interface.js +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/providers/secrets-provider.interface.js.map +0 -0
- /package/{executors → dist/executors}/secrets-config-sync/schema.json +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/executor.d.ts +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/executor.js +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/executor.js.map +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/executor.options.js +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/executor.task.js +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/azure-keyvault.provider.d.ts +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/azure-keyvault.provider.d.ts.map +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/azure-keyvault.provider.js +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/azure-keyvault.provider.js.map +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/doppler.provider.d.ts +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/doppler.provider.d.ts.map +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/doppler.provider.js +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/doppler.provider.js.map +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/secrets-provider.factory.d.ts +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/secrets-provider.factory.d.ts.map +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/secrets-provider.factory.js +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/secrets-provider.factory.js.map +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/secrets-provider.interface.d.ts +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/secrets-provider.interface.d.ts.map +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/secrets-provider.interface.js +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/providers/secrets-provider.interface.js.map +0 -0
- /package/{executors → dist/executors}/secrets-vercel-sync/schema.json +0 -0
- /package/{executors → dist/executors}/svelte-proxy-transform/executor.d.ts +0 -0
- /package/{executors → dist/executors}/svelte-proxy-transform/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/svelte-proxy-transform/executor.js +0 -0
- /package/{executors → dist/executors}/svelte-proxy-transform/executor.js.map +0 -0
- /package/{executors → dist/executors}/svelte-proxy-transform/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/svelte-proxy-transform/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/svelte-proxy-transform/executor.options.js +0 -0
- /package/{executors → dist/executors}/svelte-proxy-transform/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/svelte-proxy-transform/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/svelte-proxy-transform/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/svelte-proxy-transform/executor.task.js +0 -0
- /package/{executors → dist/executors}/svelte-proxy-transform/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/svelte-proxy-transform/schema.json +0 -0
- /package/{executors → dist/executors}/token-linter/executor.d.ts +0 -0
- /package/{executors → dist/executors}/token-linter/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/token-linter/executor.js +0 -0
- /package/{executors → dist/executors}/token-linter/executor.js.map +0 -0
- /package/{executors → dist/executors}/token-linter/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/token-linter/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/token-linter/executor.options.js +0 -0
- /package/{executors → dist/executors}/token-linter/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/token-linter/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/token-linter/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/token-linter/executor.task.js +0 -0
- /package/{executors → dist/executors}/token-linter/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/token-linter/schema.json +0 -0
- /package/{executors → dist/executors}/unrelease-package/executor.d.ts +0 -0
- /package/{executors → dist/executors}/unrelease-package/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/unrelease-package/executor.js +0 -0
- /package/{executors → dist/executors}/unrelease-package/executor.js.map +0 -0
- /package/{executors → dist/executors}/unrelease-package/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/unrelease-package/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/unrelease-package/executor.options.js +0 -0
- /package/{executors → dist/executors}/unrelease-package/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/unrelease-package/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/unrelease-package/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/unrelease-package/executor.task.js +0 -0
- /package/{executors → dist/executors}/unrelease-package/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/unrelease-package/schema.json +0 -0
- /package/{executors → dist/executors}/vercel-edge-config-sync/executor.d.ts +0 -0
- /package/{executors → dist/executors}/vercel-edge-config-sync/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/vercel-edge-config-sync/executor.js +0 -0
- /package/{executors → dist/executors}/vercel-edge-config-sync/executor.js.map +0 -0
- /package/{executors → dist/executors}/vercel-edge-config-sync/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/vercel-edge-config-sync/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/vercel-edge-config-sync/executor.options.js +0 -0
- /package/{executors → dist/executors}/vercel-edge-config-sync/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/vercel-edge-config-sync/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/vercel-edge-config-sync/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/vercel-edge-config-sync/executor.task.js +0 -0
- /package/{executors → dist/executors}/vercel-edge-config-sync/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/vercel-edge-config-sync/schema.json +0 -0
- /package/{executors → dist/executors}/vue-proxy-transform/executor.d.ts +0 -0
- /package/{executors → dist/executors}/vue-proxy-transform/executor.d.ts.map +0 -0
- /package/{executors → dist/executors}/vue-proxy-transform/executor.js +0 -0
- /package/{executors → dist/executors}/vue-proxy-transform/executor.js.map +0 -0
- /package/{executors → dist/executors}/vue-proxy-transform/executor.options.d.ts +0 -0
- /package/{executors → dist/executors}/vue-proxy-transform/executor.options.d.ts.map +0 -0
- /package/{executors → dist/executors}/vue-proxy-transform/executor.options.js +0 -0
- /package/{executors → dist/executors}/vue-proxy-transform/executor.options.js.map +0 -0
- /package/{executors → dist/executors}/vue-proxy-transform/executor.task.d.ts +0 -0
- /package/{executors → dist/executors}/vue-proxy-transform/executor.task.d.ts.map +0 -0
- /package/{executors → dist/executors}/vue-proxy-transform/executor.task.js +0 -0
- /package/{executors → dist/executors}/vue-proxy-transform/executor.task.js.map +0 -0
- /package/{executors → dist/executors}/vue-proxy-transform/schema.json +0 -0
- /package/{index.d.ts → dist/index.d.ts} +0 -0
- /package/{index.d.ts.map → dist/index.d.ts.map} +0 -0
- /package/{index.js → dist/index.js} +0 -0
- /package/{index.js.map → dist/index.js.map} +0 -0
- /package/{utils → dist/utils}/TaskBase.d.ts +0 -0
- /package/{utils → dist/utils}/TaskBase.d.ts.map +0 -0
- /package/{utils → dist/utils}/TaskBase.js +0 -0
- /package/{utils → dist/utils}/TaskBase.js.map +0 -0
- /package/{utils → dist/utils}/getProjectPackageJson.d.ts +0 -0
- /package/{utils → dist/utils}/getProjectPackageJson.d.ts.map +0 -0
- /package/{utils → dist/utils}/getProjectPackageJson.js +0 -0
- /package/{utils → dist/utils}/getProjectPackageJson.js.map +0 -0
- /package/{utils → dist/utils}/getProjectRoot.d.ts +0 -0
- /package/{utils → dist/utils}/getProjectRoot.d.ts.map +0 -0
- /package/{utils → dist/utils}/getProjectRoot.js +0 -0
- /package/{utils → dist/utils}/getProjectRoot.js.map +0 -0
- /package/{utils → dist/utils}/getProjectTsConfigJson.d.ts +0 -0
- /package/{utils → dist/utils}/getProjectTsConfigJson.d.ts.map +0 -0
- /package/{utils → dist/utils}/getProjectTsConfigJson.js +0 -0
- /package/{utils → dist/utils}/getProjectTsConfigJson.js.map +0 -0
- /package/{utils → dist/utils}/isVerbose.d.ts +0 -0
- /package/{utils → dist/utils}/isVerbose.d.ts.map +0 -0
- /package/{utils → dist/utils}/isVerbose.js +0 -0
- /package/{utils → dist/utils}/isVerbose.js.map +0 -0
- /package/{utils → dist/utils}/loadAndExpandDotEnvFile.d.ts +0 -0
- /package/{utils → dist/utils}/loadAndExpandDotEnvFile.d.ts.map +0 -0
- /package/{utils → dist/utils}/loadAndExpandDotEnvFile.js +0 -0
- /package/{utils → dist/utils}/loadAndExpandDotEnvFile.js.map +0 -0
- /package/{utils → dist/utils}/markdown-processing.d.ts +0 -0
- /package/{utils → dist/utils}/markdown-processing.d.ts.map +0 -0
- /package/{utils → dist/utils}/markdown-processing.js +0 -0
- /package/{utils → dist/utils}/markdown-processing.js.map +0 -0
- /package/{utils → dist/utils}/valid-html-tags.d.ts +0 -0
- /package/{utils → dist/utils}/valid-html-tags.d.ts.map +0 -0
- /package/{utils → dist/utils}/valid-html-tags.js +0 -0
- /package/{utils → dist/utils}/valid-html-tags.js.map +0 -0
- /package/{utils → dist/utils}/withCaching.d.ts +0 -0
- /package/{utils → dist/utils}/withCaching.d.ts.map +0 -0
- /package/{utils → dist/utils}/withCaching.js +0 -0
- /package/{utils → dist/utils}/withCaching.js.map +0 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
|
|
3
|
+
import { ConsoleLogger, logSeparator, Path, type IFileCacheOptions, File } from '@breadstone-infrastructure/utilities';
|
|
4
|
+
import { compile, type OutputStyle } from 'sass';
|
|
5
|
+
import type { PackageJson } from 'type-fest';
|
|
6
|
+
import { withCaching } from '../../utils/withCaching';
|
|
7
|
+
|
|
8
|
+
// #endregion
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @description Task to transform SCSS files to CSS.
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
export namespace StyleTransformTask {
|
|
15
|
+
|
|
16
|
+
export interface IStyleTransformTaskOptions {
|
|
17
|
+
cwd: string;
|
|
18
|
+
packageJson: PackageJson;
|
|
19
|
+
cache?: IFileCacheOptions;
|
|
20
|
+
outputStyle: OutputStyle;
|
|
21
|
+
files?: Array<{
|
|
22
|
+
src: string;
|
|
23
|
+
dest: string;
|
|
24
|
+
}>;
|
|
25
|
+
verbose?: boolean;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export async function run(options: IStyleTransformTaskOptions): Promise<void> {
|
|
29
|
+
const logger = new ConsoleLogger();
|
|
30
|
+
|
|
31
|
+
logSeparator(logger, 'Style Transform');
|
|
32
|
+
|
|
33
|
+
const fileCache = withCaching(options.cache);
|
|
34
|
+
|
|
35
|
+
for (const file of options.files ?? []) {
|
|
36
|
+
const src = Path.combine(options.cwd, file.src);
|
|
37
|
+
const dest = Path.combine(options.cwd, file.dest);
|
|
38
|
+
|
|
39
|
+
const result = compile(src, {
|
|
40
|
+
silenceDeprecations: ['mixed-decls'],
|
|
41
|
+
style: options.outputStyle
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
File.writeAllText(dest, result.css);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return Promise.resolve();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
|
|
2
|
+
// #region Imports
|
|
3
|
+
|
|
4
|
+
import { Path } from '@breadstone-infrastructure/utilities';
|
|
5
|
+
import type { ExecutorContext } from '@nx/devkit';
|
|
6
|
+
import { getProjectPackageJson } from '../../utils/getProjectPackageJson';
|
|
7
|
+
import { getProjectRoot } from '../../utils/getProjectRoot';
|
|
8
|
+
import { isVerbose } from '../../utils/isVerbose';
|
|
9
|
+
import type { StyleTransformTask } from './executor.task';
|
|
10
|
+
|
|
11
|
+
// #endregion
|
|
12
|
+
|
|
13
|
+
export type StyleTransformExecutorOptions = Omit<StyleTransformTask.IStyleTransformTaskOptions, 'cwd' | 'tsConfigJson' | 'packageJson'>;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
export default async function runExecutor(options: StyleTransformExecutorOptions, context: ExecutorContext): Promise<{ success: boolean }> {
|
|
19
|
+
try {
|
|
20
|
+
const task = (await import('./executor.task')).StyleTransformTask;
|
|
21
|
+
|
|
22
|
+
await task.run({
|
|
23
|
+
cwd: getProjectRoot(context),
|
|
24
|
+
packageJson: getProjectPackageJson(context),
|
|
25
|
+
cache: {
|
|
26
|
+
enabled: options.cache?.enabled ?? context.target?.cache ?? false,
|
|
27
|
+
dirPath: Path.combine(getProjectRoot(context), '.cache')
|
|
28
|
+
},
|
|
29
|
+
files: options.files,
|
|
30
|
+
outputStyle: options.outputStyle,
|
|
31
|
+
verbose: isVerbose(context, options),
|
|
32
|
+
});
|
|
33
|
+
return { success: true };
|
|
34
|
+
} catch (error) {
|
|
35
|
+
console.error(error);
|
|
36
|
+
return { success: false };
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
|
|
3
|
+
import { bold, ConsoleLogger, File, gray, green, type ILogger, logTree, Path, yellow } from '@breadstone-infrastructure/utilities';
|
|
4
|
+
import * as dotenv from 'dotenv';
|
|
5
|
+
import type { SecretsProviderType } from './providers/secrets-provider.factory';
|
|
6
|
+
import { createSecretsProvider } from './providers/secrets-provider.factory';
|
|
7
|
+
|
|
8
|
+
// #endregion
|
|
9
|
+
|
|
10
|
+
export namespace SecretsConfigSyncTask {
|
|
11
|
+
|
|
12
|
+
// #region Interfaces
|
|
13
|
+
|
|
14
|
+
export interface ISecretsConfigSyncTaskOptions {
|
|
15
|
+
cwd: string;
|
|
16
|
+
provider: SecretsProviderType;
|
|
17
|
+
project: string;
|
|
18
|
+
config: string;
|
|
19
|
+
envFile: string;
|
|
20
|
+
apiKey?: string;
|
|
21
|
+
vaultUrl?: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// #endregion
|
|
25
|
+
|
|
26
|
+
// #region Types
|
|
27
|
+
|
|
28
|
+
type SyncAction = 'added' | 'updated' | 'unchanged';
|
|
29
|
+
|
|
30
|
+
interface ISyncResult {
|
|
31
|
+
key: string;
|
|
32
|
+
action: SyncAction;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// #endregion
|
|
36
|
+
|
|
37
|
+
// #region Functions
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Loads the existing environment variables from the .env file.
|
|
41
|
+
*
|
|
42
|
+
* @param envFilePath - Path to the .env file.
|
|
43
|
+
* @param logger - Logger instance.
|
|
44
|
+
* @returns A record of environment variables.
|
|
45
|
+
*/
|
|
46
|
+
function loadEnvFile(envFilePath: string, logger: ILogger): Record<string, string> {
|
|
47
|
+
if (!File.exists(envFilePath)) {
|
|
48
|
+
return {};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
logger.log(`Loading .env file from: ${envFilePath}`);
|
|
52
|
+
const envConfig = dotenv.config({ path: envFilePath });
|
|
53
|
+
if (envConfig.error) {
|
|
54
|
+
throw new Error(`Error loading .env file: ${envConfig.error.message}`);
|
|
55
|
+
}
|
|
56
|
+
return envConfig.parsed ?? {};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Computes the diff between current env and fetched secrets.
|
|
61
|
+
*
|
|
62
|
+
* @param currentEnv - The current environment variables.
|
|
63
|
+
* @param secrets - The fetched secrets from the provider.
|
|
64
|
+
* @returns A list of sync results.
|
|
65
|
+
*/
|
|
66
|
+
function computeDiff(currentEnv: Record<string, string>, secrets: Record<string, string>): Array<ISyncResult> {
|
|
67
|
+
const results: Array<ISyncResult> = [];
|
|
68
|
+
|
|
69
|
+
for (const key of Object.keys(secrets)) {
|
|
70
|
+
if (!(key in currentEnv)) {
|
|
71
|
+
results.push({ key, action: 'added' });
|
|
72
|
+
} else if (currentEnv[key] !== secrets[key]) {
|
|
73
|
+
results.push({ key, action: 'updated' });
|
|
74
|
+
} else {
|
|
75
|
+
results.push({ key, action: 'unchanged' });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return results;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Returns a colored tag string for the given sync action.
|
|
84
|
+
*/
|
|
85
|
+
function formatActionTag(action: SyncAction): string {
|
|
86
|
+
switch (action) {
|
|
87
|
+
case 'added':
|
|
88
|
+
return green(bold('[added]'));
|
|
89
|
+
case 'updated':
|
|
90
|
+
return yellow(bold('[updated]'));
|
|
91
|
+
case 'unchanged':
|
|
92
|
+
return gray(bold('[unchanged]'));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Logs the sync results as a single alphabetically sorted tree with colored action tags.
|
|
98
|
+
*/
|
|
99
|
+
function logResults(logger: ILogger, results: Array<ISyncResult>): void {
|
|
100
|
+
const sorted = [...results].sort((a, b) => a.key.localeCompare(b.key));
|
|
101
|
+
|
|
102
|
+
logTree(logger, `Keys (${sorted.length})`, sorted.map(r => ({
|
|
103
|
+
label: `${r.key} ${formatActionTag(r.action)}`
|
|
104
|
+
})));
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Writes updated secrets to the .env file.
|
|
109
|
+
*
|
|
110
|
+
* @param envFilePath - Path to the .env file.
|
|
111
|
+
* @param updatedEnv - The updated environment variables.
|
|
112
|
+
*/
|
|
113
|
+
function updateEnvFile(envFilePath: string, updatedEnv: Record<string, string>): void {
|
|
114
|
+
const envContent = Object.entries(updatedEnv)
|
|
115
|
+
.map(([key, value]) => `${key}="${value}"`)
|
|
116
|
+
.join('\n');
|
|
117
|
+
File.writeAllText(envFilePath, envContent);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// #endregion
|
|
121
|
+
|
|
122
|
+
// #region Main Task
|
|
123
|
+
|
|
124
|
+
export async function run(options: ISecretsConfigSyncTaskOptions): Promise<void> {
|
|
125
|
+
const logger = new ConsoleLogger();
|
|
126
|
+
const providerType = options.provider ?? 'doppler';
|
|
127
|
+
|
|
128
|
+
try {
|
|
129
|
+
const provider = createSecretsProvider(providerType);
|
|
130
|
+
|
|
131
|
+
// Step 1: Authenticate with the provider
|
|
132
|
+
logger.log(`Authenticating with ${providerType}...`);
|
|
133
|
+
const token = await provider.authenticate(options.apiKey, true);
|
|
134
|
+
|
|
135
|
+
// Step 2: Fetch secrets from the provider
|
|
136
|
+
logger.log(`Fetching secrets from ${providerType}...`);
|
|
137
|
+
const secrets = await provider.fetchSecrets(token, options.project, options.config, logger, options.vaultUrl);
|
|
138
|
+
|
|
139
|
+
// Step 3: Load the current environment file
|
|
140
|
+
logger.log('Loading current .env file...');
|
|
141
|
+
const envPath = Path.combine(options.cwd, options.envFile);
|
|
142
|
+
const currentEnv = loadEnvFile(envPath, logger);
|
|
143
|
+
|
|
144
|
+
// Step 4: Compute and log the diff
|
|
145
|
+
const diff = computeDiff(currentEnv, secrets);
|
|
146
|
+
logResults(logger, diff);
|
|
147
|
+
|
|
148
|
+
// Step 5: Merge and update the .env file with new secrets
|
|
149
|
+
const mergedEnv = {
|
|
150
|
+
...currentEnv,
|
|
151
|
+
...secrets
|
|
152
|
+
};
|
|
153
|
+
updateEnvFile(envPath, mergedEnv);
|
|
154
|
+
|
|
155
|
+
logger.log('Successfully wrote updated secrets to .env file.');
|
|
156
|
+
} catch (error) {
|
|
157
|
+
logger.error(`Error: ${(error as Error).message}`);
|
|
158
|
+
throw error;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// #endregion
|
|
163
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
|
|
3
|
+
import type { ExecutorContext } from '@nx/devkit';
|
|
4
|
+
import { getProjectRoot } from '../../utils/getProjectRoot';
|
|
5
|
+
import type { SecretsConfigSyncExecutorOptions } from './executor.options';
|
|
6
|
+
|
|
7
|
+
// #endregion
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Nx executor that fetches secrets from a configurable provider and writes them to local .env files.
|
|
11
|
+
*
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
export default async function runExecutor(options: SecretsConfigSyncExecutorOptions, context: ExecutorContext): Promise<{ success: boolean }> {
|
|
15
|
+
try {
|
|
16
|
+
const task = (await import('./executor.task')).SecretsConfigSyncTask;
|
|
17
|
+
|
|
18
|
+
await task.run({
|
|
19
|
+
cwd: getProjectRoot(context),
|
|
20
|
+
provider: options.provider,
|
|
21
|
+
project: options.project,
|
|
22
|
+
config: options.config,
|
|
23
|
+
envFile: options.envFile,
|
|
24
|
+
apiKey: options.apiKey,
|
|
25
|
+
vaultUrl: options.vaultUrl
|
|
26
|
+
});
|
|
27
|
+
return { success: true };
|
|
28
|
+
} catch (error) {
|
|
29
|
+
console.error(error);
|
|
30
|
+
return { success: false };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
|
|
3
|
+
import type { ILogger } from '@breadstone-infrastructure/utilities';
|
|
4
|
+
import { prompt } from 'enquirer';
|
|
5
|
+
import type { ISecretsProvider } from './secrets-provider.interface';
|
|
6
|
+
|
|
7
|
+
// #endregion
|
|
8
|
+
|
|
9
|
+
// #region Interfaces
|
|
10
|
+
|
|
11
|
+
interface IAzureKeyVaultSecretItem {
|
|
12
|
+
id: string;
|
|
13
|
+
attributes: {
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
created: number;
|
|
16
|
+
updated: number;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
interface IAzureKeyVaultSecretListResponse {
|
|
21
|
+
value: Array<IAzureKeyVaultSecretItem>;
|
|
22
|
+
nextLink?: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
interface IAzureKeyVaultSecretValueResponse {
|
|
26
|
+
value: string;
|
|
27
|
+
id: string;
|
|
28
|
+
attributes: {
|
|
29
|
+
enabled: boolean;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// #endregion
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Secrets provider implementation for Azure Key Vault.
|
|
37
|
+
*
|
|
38
|
+
* Uses the Key Vault REST API with a Bearer token (e.g. from `az account get-access-token`
|
|
39
|
+
* or a service principal client credential flow). The token must be provided via `apiKey`
|
|
40
|
+
* or entered interactively.
|
|
41
|
+
*
|
|
42
|
+
* @public
|
|
43
|
+
*/
|
|
44
|
+
export class AzureKeyVaultSecretsProvider implements ISecretsProvider {
|
|
45
|
+
|
|
46
|
+
// #region Methods
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @inheritdoc
|
|
50
|
+
*/
|
|
51
|
+
public async authenticate(apiKey?: string, interactive?: boolean): Promise<string> {
|
|
52
|
+
if (apiKey) {
|
|
53
|
+
return apiKey;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (interactive) {
|
|
57
|
+
const credentials = await prompt<{ token: string }>([
|
|
58
|
+
{
|
|
59
|
+
type: 'input',
|
|
60
|
+
name: 'token',
|
|
61
|
+
message: 'Enter your Azure Key Vault access token:\nYou can obtain one via `az account get-access-token --resource https://vault.azure.net --query accessToken -o tsv`.'
|
|
62
|
+
}
|
|
63
|
+
]);
|
|
64
|
+
|
|
65
|
+
if (!credentials.token) {
|
|
66
|
+
throw new Error('No Azure Key Vault access token provided. Aborting.');
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return credentials.token;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
throw new Error('No Azure Key Vault access token provided and interactive mode is disabled.');
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Fetches all secrets from an Azure Key Vault.
|
|
77
|
+
*
|
|
78
|
+
* The `project` and `config` parameters are ignored. The vault is identified
|
|
79
|
+
* solely by `vaultUrl`.
|
|
80
|
+
*
|
|
81
|
+
* @inheritdoc
|
|
82
|
+
*/
|
|
83
|
+
public async fetchSecrets(token: string, _project: string, _config: string, logger: ILogger, vaultUrl?: string): Promise<Record<string, string>> {
|
|
84
|
+
if (!vaultUrl) {
|
|
85
|
+
throw new Error('vaultUrl is required for the azure-keyvault provider.');
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const normalizedVaultUrl = vaultUrl.endsWith('/') ? vaultUrl.slice(0, -1) : vaultUrl;
|
|
89
|
+
const secrets: Record<string, string> = {};
|
|
90
|
+
|
|
91
|
+
// Step 1: List all secrets (paged)
|
|
92
|
+
const secretItems = await this.listSecrets(token, normalizedVaultUrl);
|
|
93
|
+
logger.log(`Found ${secretItems.length} secrets in Key Vault.`);
|
|
94
|
+
|
|
95
|
+
// Step 2: Fetch each secret value
|
|
96
|
+
for (const item of secretItems) {
|
|
97
|
+
const secretName = this.extractSecretName(item.id);
|
|
98
|
+
const value = await this.getSecretValue(token, normalizedVaultUrl, secretName);
|
|
99
|
+
secrets[secretName] = value;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
logger.log(`Fetched ${Object.keys(secrets).length} secrets from Azure Key Vault [${normalizedVaultUrl}].`);
|
|
103
|
+
|
|
104
|
+
return secrets;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// #endregion
|
|
108
|
+
|
|
109
|
+
// #region Properties
|
|
110
|
+
|
|
111
|
+
// #endregion
|
|
112
|
+
|
|
113
|
+
// #region Fields
|
|
114
|
+
|
|
115
|
+
// #endregion
|
|
116
|
+
|
|
117
|
+
// #region Ctor
|
|
118
|
+
|
|
119
|
+
// #endregion
|
|
120
|
+
|
|
121
|
+
// #region Private Methods
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Lists all secrets in the vault (handles pagination).
|
|
125
|
+
*/
|
|
126
|
+
private async listSecrets(token: string, vaultUrl: string): Promise<Array<IAzureKeyVaultSecretItem>> {
|
|
127
|
+
const allItems: Array<IAzureKeyVaultSecretItem> = [];
|
|
128
|
+
let nextLink: string | undefined = `${vaultUrl}/secrets?api-version=7.4`;
|
|
129
|
+
|
|
130
|
+
while (nextLink) {
|
|
131
|
+
const response = await fetch(nextLink, {
|
|
132
|
+
headers: { Authorization: `Bearer ${token}` }
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
if (!response.ok) {
|
|
136
|
+
throw new Error(`Failed to list Azure Key Vault secrets (HTTP ${response.status}): ${response.statusText}`);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const data = await response.json() as IAzureKeyVaultSecretListResponse;
|
|
140
|
+
const enabledItems = data.value.filter(item => item.attributes.enabled);
|
|
141
|
+
allItems.push(...enabledItems);
|
|
142
|
+
nextLink = data.nextLink;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
return allItems;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Fetches the current value of a single secret.
|
|
150
|
+
*/
|
|
151
|
+
private async getSecretValue(token: string, vaultUrl: string, secretName: string): Promise<string> {
|
|
152
|
+
const url = `${vaultUrl}/secrets/${encodeURIComponent(secretName)}?api-version=7.4`;
|
|
153
|
+
|
|
154
|
+
const response = await fetch(url, {
|
|
155
|
+
headers: { Authorization: `Bearer ${token}` }
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
if (!response.ok) {
|
|
159
|
+
throw new Error(`Failed to fetch Azure Key Vault secret "${secretName}" (HTTP ${response.status}): ${response.statusText}`);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const data = await response.json() as IAzureKeyVaultSecretValueResponse;
|
|
163
|
+
|
|
164
|
+
return data.value;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Extracts the secret name from a Key Vault secret ID URL.
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* `https://my-vault.vault.azure.net/secrets/MY_SECRET` → `MY_SECRET`
|
|
172
|
+
*/
|
|
173
|
+
private extractSecretName(secretId: string): string {
|
|
174
|
+
const parts = secretId.split('/');
|
|
175
|
+
|
|
176
|
+
return parts[parts.length - 1];
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// #endregion
|
|
180
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
|
|
3
|
+
import type { ILogger } from '@breadstone-infrastructure/utilities';
|
|
4
|
+
import { prompt } from 'enquirer';
|
|
5
|
+
import type { ISecretsProvider } from './secrets-provider.interface';
|
|
6
|
+
|
|
7
|
+
// #endregion
|
|
8
|
+
|
|
9
|
+
// #region Interfaces
|
|
10
|
+
|
|
11
|
+
interface IDopplerSecretsResponse {
|
|
12
|
+
success: boolean;
|
|
13
|
+
secrets: Record<string, {
|
|
14
|
+
raw: string;
|
|
15
|
+
computed: string;
|
|
16
|
+
note: string;
|
|
17
|
+
rawVisibility: 'unmasked' | 'masked';
|
|
18
|
+
computedVisibility: 'unmasked' | 'masked';
|
|
19
|
+
rawValueType: object;
|
|
20
|
+
computedValueType: object;
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// #endregion
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Secrets provider implementation for Doppler.
|
|
28
|
+
*
|
|
29
|
+
* @public
|
|
30
|
+
*/
|
|
31
|
+
export class DopplerSecretsProvider implements ISecretsProvider {
|
|
32
|
+
|
|
33
|
+
// #region Methods
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @inheritdoc
|
|
37
|
+
*/
|
|
38
|
+
public async authenticate(apiKey?: string, interactive?: boolean): Promise<string> {
|
|
39
|
+
if (apiKey) {
|
|
40
|
+
return apiKey;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (interactive) {
|
|
44
|
+
const credentials = await prompt<{ apiKey: string }>([
|
|
45
|
+
{
|
|
46
|
+
type: 'input',
|
|
47
|
+
name: 'apiKey',
|
|
48
|
+
message: 'Enter your Doppler API key:\nYou can find it in your Doppler account settings.'
|
|
49
|
+
}
|
|
50
|
+
]);
|
|
51
|
+
|
|
52
|
+
if (!credentials.apiKey) {
|
|
53
|
+
throw new Error('No Doppler API key provided. Aborting.');
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return credentials.apiKey;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
throw new Error('No Doppler API key provided and interactive mode is disabled.');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @inheritdoc
|
|
64
|
+
*/
|
|
65
|
+
public async fetchSecrets(token: string, project: string, config: string, logger: ILogger): Promise<Record<string, string>> {
|
|
66
|
+
const apiUrl = `https://api.doppler.com/v3/configs/config/secrets?project=${encodeURIComponent(project)}&config=${encodeURIComponent(config)}&include_dynamic_secrets=false&include_managed_secrets=true`;
|
|
67
|
+
|
|
68
|
+
const response = await fetch(apiUrl, {
|
|
69
|
+
headers: { Authorization: `Bearer ${token}` }
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
if (!response.ok) {
|
|
73
|
+
throw new Error(`Failed to fetch Doppler secrets (HTTP ${response.status}): ${response.statusText}`);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const data = await response.json() as IDopplerSecretsResponse;
|
|
77
|
+
|
|
78
|
+
logger.log(`Fetched ${Object.keys(data.secrets).length} secrets from Doppler [${project}/${config}].`);
|
|
79
|
+
|
|
80
|
+
return Object.fromEntries(Object.entries(data.secrets).map(([key, value]) => [key, value.raw]));
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// #endregion
|
|
84
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
|
|
3
|
+
import { AzureKeyVaultSecretsProvider } from './azure-keyvault.provider';
|
|
4
|
+
import { DopplerSecretsProvider } from './doppler.provider';
|
|
5
|
+
import type { ISecretsProvider } from './secrets-provider.interface';
|
|
6
|
+
|
|
7
|
+
// #endregion
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* The supported secrets provider types.
|
|
11
|
+
*
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
export type SecretsProviderType = 'doppler' | 'azure-keyvault';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Creates an {@link ISecretsProvider} instance for the given provider type.
|
|
18
|
+
*
|
|
19
|
+
* @param type - The provider type to instantiate.
|
|
20
|
+
* @returns The corresponding secrets provider.
|
|
21
|
+
*
|
|
22
|
+
* @public
|
|
23
|
+
*/
|
|
24
|
+
export function createSecretsProvider(type: SecretsProviderType): ISecretsProvider {
|
|
25
|
+
switch (type) {
|
|
26
|
+
case 'doppler':
|
|
27
|
+
return new DopplerSecretsProvider();
|
|
28
|
+
case 'azure-keyvault':
|
|
29
|
+
return new AzureKeyVaultSecretsProvider();
|
|
30
|
+
default:
|
|
31
|
+
throw new Error(`Unknown secrets provider type: "${type}". Supported: doppler, azure-keyvault.`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
|
|
3
|
+
import type { ILogger } from '@breadstone-infrastructure/utilities';
|
|
4
|
+
|
|
5
|
+
// #endregion
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Abstraction for a secrets provider that can authenticate and fetch secrets.
|
|
9
|
+
*
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
export interface ISecretsProvider {
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Authenticates with the provider and returns an access token.
|
|
16
|
+
*
|
|
17
|
+
* @param apiKey - An optional API key or access token. If provided, it is used directly.
|
|
18
|
+
* @param interactive - Whether to prompt the user for credentials if none are provided.
|
|
19
|
+
* @returns The resolved access token.
|
|
20
|
+
*/
|
|
21
|
+
authenticate(apiKey?: string, interactive?: boolean): Promise<string>;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Fetches all secrets from the provider.
|
|
25
|
+
*
|
|
26
|
+
* @param token - The access token obtained from {@link authenticate}.
|
|
27
|
+
* @param project - The project identifier (Doppler project name, or ignored for Azure Key Vault).
|
|
28
|
+
* @param config - The config identifier (Doppler config name, or ignored for Azure Key Vault).
|
|
29
|
+
* @param logger - Logger instance for status output.
|
|
30
|
+
* @param vaultUrl - The Azure Key Vault URL (only used by the azure-keyvault provider).
|
|
31
|
+
* @returns A flat record of secret key-value pairs.
|
|
32
|
+
*/
|
|
33
|
+
fetchSecrets(token: string, project: string, config: string, logger: ILogger, vaultUrl?: string): Promise<Record<string, string>>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
|
+
"cli": "nx",
|
|
4
|
+
"title": "Secrets Config Sync",
|
|
5
|
+
"description": "Fetches secrets from a configurable provider (Doppler, Azure Key Vault) and writes them to local .env files.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"provider": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "The secrets provider to use.",
|
|
11
|
+
"enum": [
|
|
12
|
+
"doppler",
|
|
13
|
+
"azure-keyvault"
|
|
14
|
+
],
|
|
15
|
+
"default": "doppler"
|
|
16
|
+
},
|
|
17
|
+
"project": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "The project identifier (e.g. Doppler project name)."
|
|
20
|
+
},
|
|
21
|
+
"config": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"description": "The configuration identifier (e.g. Doppler config name: dev, prev, prod)."
|
|
24
|
+
},
|
|
25
|
+
"envFile": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "The relative path to the .env file to write secrets to."
|
|
28
|
+
},
|
|
29
|
+
"apiKey": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "The API key or access token for the secrets provider. If omitted, the user is prompted interactively."
|
|
32
|
+
},
|
|
33
|
+
"vaultUrl": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "The Azure Key Vault URL (e.g. https://my-vault.vault.azure.net). Required when provider is azure-keyvault."
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"required": [
|
|
39
|
+
"project",
|
|
40
|
+
"config",
|
|
41
|
+
"envFile"
|
|
42
|
+
],
|
|
43
|
+
"additionalProperties": false
|
|
44
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// #region Imports
|
|
2
|
+
|
|
3
|
+
import type { SecretsVercelSyncTask } from './executor.task';
|
|
4
|
+
|
|
5
|
+
// #endregion
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Executor options for the secrets-vercel-sync executor.
|
|
9
|
+
*
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
export type SecretsVercelSyncExecutorOptions = Omit<SecretsVercelSyncTask.ISecretsVercelSyncTaskOptions, 'cwd'>;
|