@deterministic-code/datasources-cli 0.0.0-stage → 0.1.2
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/bin/datasources.mjs +2 -0
- package/dist/catalog.js +60 -0
- package/dist/commands.js +51 -0
- package/dist/detect.js +23 -0
- package/dist/env.js +93 -0
- package/dist/generate/CSharpRepositories.js +134 -0
- package/dist/generate/CodeGenerationProvider.js +0 -0
- package/dist/generate/DeterministicProvider.js +53 -0
- package/dist/generate/GenerateRequest.js +6 -0
- package/dist/generate/RepositoryModel.js +64 -0
- package/dist/generate/RepositoryPlan.js +171 -0
- package/dist/generate/RustRepositories.js +270 -0
- package/dist/generate/TypeScriptRepositories.js +115 -0
- package/dist/generate/applyGenerate.js +28 -0
- package/dist/generate/applyMigrations.js +28 -0
- package/dist/generate/loadSpec.js +48 -0
- package/dist/generate/migrateUp.js +76 -0
- package/dist/generate/providers.js +10 -0
- package/dist/generate/settingsFlat.js +29 -0
- package/dist/generate/writeEntries.js +35 -0
- package/dist/index.js +10 -0
- package/dist/installed.js +14 -0
- package/dist/io.js +35 -0
- package/dist/main.js +10 -0
- package/dist/migrateInit.js +11 -0
- package/dist/parse.js +144 -0
- package/dist/run.js +197 -0
- package/dist/setup.js +54 -0
- package/dist/version/applyVersion.js +51 -0
- package/dist/version/delta.js +114 -0
- package/dist/version/render.js +38 -0
- package/dist/wireRegister.js +104 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/common/default-casing.js +44 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/common/view-shape.js +78 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/deterministic-type-converter.js +124 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/emit.js +20 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-backend-app.js +42 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-context.js +0 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-datasource-type-validators-tests.js +170 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-datasource-types-tests.js +127 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-datasource-types.d.ts +3 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-datasource-types.js +75 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-routes-tests.js +27 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-routes.js +93 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-service-tests.js +29 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-services.js +58 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-view-type-validators-tests.js +223 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-view-type-validators.js +92 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-view-types-tests.js +138 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-view-types.d.ts +3 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/generate-view-types.js +99 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/import-generator.js +167 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/resources/backend-app.js +34 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/resources/datasource-type-validators-tests.js +12 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/resources/datasource-type-validators.js +12 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/resources/datasource-types-tests.js +11 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/resources/datasource-types.js +9 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/resources/routes-tests.js +9 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/resources/routes.js +15 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/resources/service-tests.js +9 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/resources/services.js +13 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/resources/view-type-validators-tests.js +12 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/resources/view-type-validators.js +9 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/resources/view-types-tests.js +11 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/resources/view-types.js +9 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/specification-parser.js +20 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/Dockerfile.tmpl +23 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/csharp/App/App.csproj.tmpl +22 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/csharp/App/Program.cs.tmpl +28 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/csharp/App/appsettings.Development.json.tmpl +8 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/csharp/App/appsettings.json.tmpl +9 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/docker-compose.yml.tmpl +17 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/entrypoint.sh +7 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/env.tmpl +1 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-backend-app/gitignore.tmpl +18 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-datasource-type-validators/type.cs.tmpl +14 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-datasource-type-validators-tests/type.tests.cs.tmpl +20 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-datasource-types/type.cs.tmpl +15 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-datasource-types-tests/type.tests.cs.tmpl +44 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-routes/custom-stub.cs.tmpl +5 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-routes/name-enrichment.cs.tmpl +49 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-routes/router.cs.tmpl +15 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-routes-tests/generic.cs.tmpl +3 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-service-tests/generic.cs.tmpl +3 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-services/custom-stub.cs.tmpl +19 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-services/generic.cs.tmpl +9 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-view-type-validators/type.cs.tmpl +17 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-view-type-validators-tests/type.tests.cs.tmpl +30 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-view-types/type.cs.tmpl +20 -0
- package/node_modules/@deterministic-code/csharp-generators/dist/templates/create-view-types-tests/type.tests.cs.tmpl +60 -0
- package/node_modules/@deterministic-code/csharp-generators/package.json +86 -0
- package/node_modules/@deterministic-code/csharp-generators/src/common/default-casing.test.ts +73 -0
- package/node_modules/@deterministic-code/csharp-generators/src/common/default-casing.ts +79 -0
- package/node_modules/@deterministic-code/csharp-generators/src/common/view-shape.ts +124 -0
- package/node_modules/@deterministic-code/csharp-generators/src/deterministic-type-converter.ts +144 -0
- package/node_modules/@deterministic-code/csharp-generators/src/emit.ts +22 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-backend-app.ts +52 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-context.ts +1 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-datasource-type-validators-tests.ts +207 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-datasource-type-validators.ts +227 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-datasource-types-tests.ts +143 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-datasource-types.ts +86 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-routes-tests.ts +29 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-routes.ts +110 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-service-tests.ts +31 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-services.ts +69 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-view-type-validators-tests.ts +277 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-view-type-validators.ts +112 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-view-types-tests.ts +187 -0
- package/node_modules/@deterministic-code/csharp-generators/src/generate-view-types.ts +118 -0
- package/node_modules/@deterministic-code/csharp-generators/src/import-generator.test.ts +266 -0
- package/node_modules/@deterministic-code/csharp-generators/src/import-generator.ts +226 -0
- package/node_modules/@deterministic-code/csharp-generators/src/resources/backend-app.ts +26 -0
- package/node_modules/@deterministic-code/csharp-generators/src/resources/datasource-type-validators-tests.ts +12 -0
- package/node_modules/@deterministic-code/csharp-generators/src/resources/datasource-type-validators.ts +12 -0
- package/node_modules/@deterministic-code/csharp-generators/src/resources/datasource-types-tests.ts +11 -0
- package/node_modules/@deterministic-code/csharp-generators/src/resources/datasource-types.ts +9 -0
- package/node_modules/@deterministic-code/csharp-generators/src/resources/routes-tests.ts +9 -0
- package/node_modules/@deterministic-code/csharp-generators/src/resources/routes.ts +14 -0
- package/node_modules/@deterministic-code/csharp-generators/src/resources/service-tests.ts +9 -0
- package/node_modules/@deterministic-code/csharp-generators/src/resources/services.ts +12 -0
- package/node_modules/@deterministic-code/csharp-generators/src/resources/view-type-validators-tests.ts +12 -0
- package/node_modules/@deterministic-code/csharp-generators/src/resources/view-type-validators.ts +9 -0
- package/node_modules/@deterministic-code/csharp-generators/src/resources/view-types-tests.ts +11 -0
- package/node_modules/@deterministic-code/csharp-generators/src/resources/view-types.ts +9 -0
- package/node_modules/@deterministic-code/csharp-generators/src/specification-parser.ts +34 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/Dockerfile.tmpl +23 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/csharp/App/App.csproj.tmpl +22 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/csharp/App/Program.cs.tmpl +28 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/csharp/App/appsettings.Development.json.tmpl +8 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/csharp/App/appsettings.json.tmpl +9 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/docker-compose.yml.tmpl +17 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/entrypoint.sh +7 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/env.tmpl +1 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-backend-app/gitignore.tmpl +18 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-datasource-type-validators/type.cs.tmpl +14 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-datasource-type-validators-tests/type.tests.cs.tmpl +20 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-datasource-types/type.cs.tmpl +15 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-datasource-types-tests/type.tests.cs.tmpl +44 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-routes/custom-stub.cs.tmpl +5 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-routes/name-enrichment.cs.tmpl +49 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-routes/router.cs.tmpl +15 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-routes-tests/generic.cs.tmpl +3 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-service-tests/generic.cs.tmpl +3 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-services/custom-stub.cs.tmpl +19 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-services/generic.cs.tmpl +9 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-view-type-validators/type.cs.tmpl +17 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-view-type-validators-tests/type.tests.cs.tmpl +30 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-view-types/type.cs.tmpl +20 -0
- package/node_modules/@deterministic-code/csharp-generators/src/templates/create-view-types-tests/type.tests.cs.tmpl +60 -0
- package/node_modules/@deterministic-code/csharp-generators/tsconfig.build.json +10 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/generate-sql.d.ts +4 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/generate-sql.js +4 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/generate-stored-procedures.d.ts +4 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/generate-stored-procedures.js +4 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/generateSql.d.ts +1 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/generateSql.js +1 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/converter-field.d.ts +3 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/converter-field.js +6 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/custom-migrations-source.d.ts +9 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/custom-migrations-source.js +71 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/datasource-by-fields.d.ts +3 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/datasource-by-fields.js +38 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/default-casing.d.ts +20 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/default-casing.js +64 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/generate-custom-migrations.d.ts +6 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/generate-custom-migrations.js +25 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/generate-procedures.d.ts +14 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/generate-procedures.js +106 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/generate-sql.d.ts +5 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/generate-sql.js +116 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/procedures/driver.d.ts +9 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/procedures/driver.js +18 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/procedures/helpers.d.ts +25 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/procedures/helpers.js +39 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/schema-diff.d.ts +10 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/schema-diff.js +136 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/seed-generator.d.ts +6 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/seed-generator.js +82 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-dialect.d.ts +23 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-dialect.js +58 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-keywords.d.ts +4 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-keywords.js +140 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-mapping.d.ts +20 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-mapping.js +43 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-schema.d.ts +35 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/sql-schema.js +112 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/version-apply.d.ts +18 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/version-apply.js +83 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/version-migrations.d.ts +15 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/common/version-migrations.js +127 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/dialect-converters.d.ts +10 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/dialect-converters.js +16 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/generate-sql.d.ts +4 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/generate-sql.js +10 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/generate-stored-procedures.d.ts +4 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/generate-stored-procedures.js +10 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/resources/sql.d.ts +1 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/resources/sql.js +6 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/statements.d.ts +28 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/statements.js +81 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/templates/create-sql/migration-down.sql.tmpl +6 -0
- package/node_modules/@deterministic-code/datasources-code-generators/dist/sql/templates/create-sql/migration-up.sql.tmpl +18 -0
- package/node_modules/@deterministic-code/datasources-code-generators/package.json +24 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/README.md +22 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/package.json +40 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/datasource-type-tree.ts +330 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/deterministic-reader.ts +63 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/deterministic.ts +35 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/dist/specification-parser.js +1290 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/ensure-health.ts +57 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/parser/compile-filter.ts +90 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/parser/specification-parser.ts +1057 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/settings.ts +49 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/specification-parser.ts +24 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/specification.ts +383 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/vitest.config.ts +20 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/parser/yaml-node.ts +88 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/SpecValidator.ts +260 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/index.ts +12 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/types.ts +47 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/DatasourceSeedsValidator.test.ts +385 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/DatasourceSeedsValidator.ts +75 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/DatasourceValidator.ts +39 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/FrontendBindingsValidator.ts +11 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/RoutesApiValidator.test.ts +59 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/RoutesApiValidator.ts +18 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/RoutesValidator.ts +24 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/ServicesValidator.ts +24 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/TypesValidator.test.ts +140 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/TypesValidator.ts +31 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/engines.ts +7 -0
- package/node_modules/@deterministic-code/deterministic-generators-common/typescript/validator/validators/validator.test.ts +229 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/README.md +22 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/package.json +40 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/datasource-type-tree.ts +330 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/deterministic-reader.ts +63 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/deterministic.ts +35 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/ensure-health.ts +57 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/parser/compile-filter.ts +90 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/parser/specification-parser.ts +1056 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/settings.ts +49 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/specification-parser.ts +24 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/specification.ts +383 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/vitest.config.ts +20 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/parser/yaml-node.ts +88 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/SpecValidator.ts +260 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/index.ts +12 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/types.ts +47 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/DatasourceSeedsValidator.test.ts +385 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/DatasourceSeedsValidator.ts +75 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/DatasourceValidator.ts +39 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/FrontendBindingsValidator.ts +11 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/RoutesApiValidator.test.ts +59 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/RoutesApiValidator.ts +18 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/RoutesValidator.ts +24 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/ServicesValidator.ts +24 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/TypesValidator.test.ts +140 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/TypesValidator.ts +31 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/engines.ts +7 -0
- package/node_modules/@deterministic-code/deterministic-specifications-typescript/typescript/validator/validators/validator.test.ts +229 -0
- package/node_modules/@deterministic-code/generators-common/README.md +10 -0
- package/node_modules/@deterministic-code/generators-common/dist/casing-strategy.d.ts +10 -0
- package/node_modules/@deterministic-code/generators-common/dist/casing-strategy.js +167 -0
- package/node_modules/@deterministic-code/generators-common/dist/datasource-naming.d.ts +10 -0
- package/node_modules/@deterministic-code/generators-common/dist/datasource-naming.js +29 -0
- package/node_modules/@deterministic-code/generators-common/dist/datasource-type-tree.d.ts +42 -0
- package/node_modules/@deterministic-code/generators-common/dist/datasource-type-tree.js +240 -0
- package/node_modules/@deterministic-code/generators-common/dist/default-token.d.ts +7 -0
- package/node_modules/@deterministic-code/generators-common/dist/default-token.js +17 -0
- package/node_modules/@deterministic-code/generators-common/dist/deterministic-default-value-converter.d.ts +21 -0
- package/node_modules/@deterministic-code/generators-common/dist/deterministic-default-value-converter.js +128 -0
- package/node_modules/@deterministic-code/generators-common/dist/deterministic-reader.d.ts +7 -0
- package/node_modules/@deterministic-code/generators-common/dist/deterministic-reader.js +47 -0
- package/node_modules/@deterministic-code/generators-common/dist/deterministic-type-converter.d.ts +7 -0
- package/node_modules/@deterministic-code/generators-common/dist/deterministic-type-converter.js +35 -0
- package/node_modules/@deterministic-code/generators-common/dist/fill.d.ts +1 -0
- package/node_modules/@deterministic-code/generators-common/dist/fill.js +7 -0
- package/node_modules/@deterministic-code/generators-common/dist/generate-context.d.ts +5 -0
- package/node_modules/@deterministic-code/generators-common/dist/generate-context.js +0 -0
- package/node_modules/@deterministic-code/generators-common/dist/generate-entry.d.ts +17 -0
- package/node_modules/@deterministic-code/generators-common/dist/generate-entry.js +25 -0
- package/node_modules/@deterministic-code/generators-common/dist/import-generator.d.ts +35 -0
- package/node_modules/@deterministic-code/generators-common/dist/import-generator.js +0 -0
- package/node_modules/@deterministic-code/generators-common/dist/reference-verifier.d.ts +35 -0
- package/node_modules/@deterministic-code/generators-common/dist/reference-verifier.js +223 -0
- package/node_modules/@deterministic-code/generators-common/dist/routes-api-converter.d.ts +4 -0
- package/node_modules/@deterministic-code/generators-common/dist/routes-api-converter.js +528 -0
- package/node_modules/@deterministic-code/generators-common/dist/routes-api.d.ts +57 -0
- package/node_modules/@deterministic-code/generators-common/dist/routes-api.js +13 -0
- package/node_modules/@deterministic-code/generators-common/dist/settings.d.ts +20 -0
- package/node_modules/@deterministic-code/generators-common/dist/settings.js +47 -0
- package/node_modules/@deterministic-code/generators-common/dist/spec-types.d.ts +37 -0
- package/node_modules/@deterministic-code/generators-common/dist/spec-types.js +162 -0
- package/node_modules/@deterministic-code/generators-common/package.json +95 -0
- package/node_modules/@deterministic-code/generators-common/src/casing-strategy.test.ts +404 -0
- package/node_modules/@deterministic-code/generators-common/src/casing-strategy.ts +222 -0
- package/node_modules/@deterministic-code/generators-common/src/datasource-naming.test.ts +232 -0
- package/node_modules/@deterministic-code/generators-common/src/datasource-naming.ts +53 -0
- package/node_modules/@deterministic-code/generators-common/src/datasource-type-tree.test.ts +406 -0
- package/node_modules/@deterministic-code/generators-common/src/datasource-type-tree.ts +333 -0
- package/node_modules/@deterministic-code/generators-common/src/default-token.ts +17 -0
- package/node_modules/@deterministic-code/generators-common/src/deterministic-default-value-converter.test.ts +97 -0
- package/node_modules/@deterministic-code/generators-common/src/deterministic-default-value-converter.ts +148 -0
- package/node_modules/@deterministic-code/generators-common/src/deterministic-reader.ts +63 -0
- package/node_modules/@deterministic-code/generators-common/src/deterministic-type-converter.test.ts +34 -0
- package/node_modules/@deterministic-code/generators-common/src/deterministic-type-converter.ts +35 -0
- package/node_modules/@deterministic-code/generators-common/src/fill.ts +6 -0
- package/node_modules/@deterministic-code/generators-common/src/generate-context.ts +6 -0
- package/node_modules/@deterministic-code/generators-common/src/generate-entry.ts +54 -0
- package/node_modules/@deterministic-code/generators-common/src/import-generator.ts +39 -0
- package/node_modules/@deterministic-code/generators-common/src/mustache-module.d.ts +9 -0
- package/node_modules/@deterministic-code/generators-common/src/pluralize-module.d.ts +10 -0
- package/node_modules/@deterministic-code/generators-common/src/reference-verifier.test.ts +257 -0
- package/node_modules/@deterministic-code/generators-common/src/reference-verifier.ts +294 -0
- package/node_modules/@deterministic-code/generators-common/src/routes-api-converter.test.ts +454 -0
- package/node_modules/@deterministic-code/generators-common/src/routes-api-converter.ts +715 -0
- package/node_modules/@deterministic-code/generators-common/src/routes-api.ts +82 -0
- package/node_modules/@deterministic-code/generators-common/src/settings.test.ts +154 -0
- package/node_modules/@deterministic-code/generators-common/src/settings.ts +80 -0
- package/node_modules/@deterministic-code/generators-common/src/spec-types.test.ts +156 -0
- package/node_modules/@deterministic-code/generators-common/src/spec-types.ts +234 -0
- package/node_modules/@deterministic-code/generators-common/tsconfig.build.json +20 -0
- package/node_modules/@deterministic-code/generators-openapi/package.json +34 -0
- package/node_modules/@deterministic-code/generators-openapi/src/default-casing.ts +15 -0
- package/node_modules/@deterministic-code/generators-openapi/src/generate-openapi-docs.ts +1 -0
- package/node_modules/@deterministic-code/generators-openapi/src/generate-openapi.integration.test.ts +106 -0
- package/node_modules/@deterministic-code/generators-openapi/src/generate-openapi.samples.test.ts +279 -0
- package/node_modules/@deterministic-code/generators-openapi/src/generate-openapi.ts +20 -0
- package/node_modules/@deterministic-code/generators-openapi/src/openapi-converter.ts +37 -0
- package/node_modules/@deterministic-code/generators-openapi/src/openapi-document.ts +158 -0
- package/node_modules/@deterministic-code/generators-openapi/src/resources/openapi.ts +9 -0
- package/node_modules/@deterministic-code/generators-openapi/src/samples/01-simple/datasource.yaml +5 -0
- package/node_modules/@deterministic-code/generators-openapi/src/samples/01-simple/routes.yaml +5 -0
- package/node_modules/@deterministic-code/generators-openapi/src/samples/01-simple/types.yaml +8 -0
- package/node_modules/@deterministic-code/generators-openapi/src/samples/02-moderate/datasource.yaml +13 -0
- package/node_modules/@deterministic-code/generators-openapi/src/samples/02-moderate/routes.yaml +14 -0
- package/node_modules/@deterministic-code/generators-openapi/src/samples/02-moderate/types.yaml +21 -0
- package/node_modules/@deterministic-code/generators-openapi/src/samples/03-complex/datasource.yaml +13 -0
- package/node_modules/@deterministic-code/generators-openapi/src/samples/03-complex/routes.yaml +15 -0
- package/node_modules/@deterministic-code/generators-openapi/src/samples/03-complex/types.yaml +35 -0
- package/node_modules/@deterministic-code/generators-openapi/src/samples/04-complex-optimistic-concurrency/datasource.yaml +16 -0
- package/node_modules/@deterministic-code/generators-openapi/src/samples/04-complex-optimistic-concurrency/routes.yaml +15 -0
- package/node_modules/@deterministic-code/generators-openapi/src/samples/04-complex-optimistic-concurrency/types.yaml +35 -0
- package/node_modules/@deterministic-code/generators-openapi/src/templates/create-openapi/openapi.json.tmpl +32 -0
- package/node_modules/@deterministic-code/generators-openapi/src/templates/create-openapi/openapi.rs.tmpl +17 -0
- package/node_modules/@deterministic-code/generators-openapi/src/templates/create-openapi/openapi_conformance.rs.tmpl +56 -0
- package/node_modules/@deterministic-code/generators-openapi/src/templates/create-openapi/operation.json.tmpl +55 -0
- package/node_modules/@deterministic-code/generators-openapi/tsconfig.build.json +10 -0
- package/node_modules/@deterministic-code/patch-merger/README.md +170 -0
- package/node_modules/@deterministic-code/patch-merger/package.json +33 -0
- package/node_modules/@deterministic-code/patch-merger/typescript/dist/index.cjs +2 -0
- package/node_modules/@deterministic-code/patch-merger/typescript/dist/index.cjs.map +1 -0
- package/node_modules/@deterministic-code/patch-merger/typescript/dist/index.d.ts +75 -0
- package/node_modules/@deterministic-code/patch-merger/typescript/dist/index.js +18 -0
- package/node_modules/@deterministic-code/patch-merger/typescript/dist/index.js.map +1 -0
- package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger-CjtjSB9r.js +631 -0
- package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger-CjtjSB9r.js.map +1 -0
- package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger-CvVbM8X5.cjs +14 -0
- package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger-CvVbM8X5.cjs.map +1 -0
- package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger.cjs +2 -0
- package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger.cjs.map +1 -0
- package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger.d.ts +53 -0
- package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger.js +8 -0
- package/node_modules/@deterministic-code/patch-merger/typescript/dist/patch-merger.js.map +1 -0
- package/node_modules/@deterministic-code/rust-generators/dist/common/default-casing.js +32 -0
- package/node_modules/@deterministic-code/rust-generators/dist/common/dictionary-candidate.js +4 -0
- package/node_modules/@deterministic-code/rust-generators/dist/common/test-samples.js +77 -0
- package/node_modules/@deterministic-code/rust-generators/dist/common/view-shape.js +28 -0
- package/node_modules/@deterministic-code/rust-generators/dist/common/view-test-fixtures.js +105 -0
- package/node_modules/@deterministic-code/rust-generators/dist/deterministic-type-converter.js +134 -0
- package/node_modules/@deterministic-code/rust-generators/dist/emit.js +20 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-backend-app.js +39 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-context.js +0 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-datasource-type-validators-tests.js +106 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-datasource-types-tests.js +60 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-datasource-types.d.ts +3 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-datasource-types.js +70 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-openapi.js +32 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-perf-e2e-tests.js +6 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-perf-server.js +20 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-routes-e2e-test.js +102 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-routes-tests.js +118 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-routes.js +329 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-service-integration-tests.js +65 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-service-tests.js +51 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-services.js +75 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-view-type-validators-tests.js +93 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-view-type-validators.js +137 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-view-types-tests.js +81 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-view-types.d.ts +3 -0
- package/node_modules/@deterministic-code/rust-generators/dist/generate-view-types.js +142 -0
- package/node_modules/@deterministic-code/rust-generators/dist/import-generator.js +243 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/backend-app.js +31 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/datasource-type-validators-tests.js +12 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/datasource-type-validators.js +12 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/datasource-types-tests.js +11 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/datasource-types.js +9 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/openapi.js +13 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/perf-e2e.js +8 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/perf-server.js +8 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/routes-e2e.js +17 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/routes-tests.js +22 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/routes.js +46 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/service-integration-tests.js +12 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/service-tests.js +9 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/services.js +13 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/view-type-validators-tests.js +12 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/view-type-validators.js +25 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/view-types-tests.js +11 -0
- package/node_modules/@deterministic-code/rust-generators/dist/resources/view-types.js +9 -0
- package/node_modules/@deterministic-code/rust-generators/dist/rust-eager-service-graph.js +6 -0
- package/node_modules/@deterministic-code/rust-generators/dist/specification-parser.js +20 -0
- package/node_modules/@deterministic-code/rust-generators/dist/struct-default.js +70 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/Cargo.toml.tmpl +34 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/Dockerfile.tmpl +31 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/docker-compose.yml.tmpl +17 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/entrypoint.sh +7 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/env.tmpl +2 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/gitignore.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/rust/chunks/README.md +1 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/rust/chunks/lib.rs +2 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/rust/chunks/main.rs +4 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-backend-app/rust/health_check_service.rs +13 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-datasource-type-validators/type.rs.tmpl +8 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-datasource-type-validators-tests/type_tests.rs.tmpl +14 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-datasource-types/type.rs.tmpl +22 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-datasource-types-tests/type_tests.rs.tmpl +39 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-openapi/openapi.rs.tmpl +17 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-openapi/openapi_conformance.rs.tmpl +56 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-perf-e2e/app_perf_client.rs.tmpl +541 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-perf-server/perf_server.rs.tmpl +3 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/app-wiring-body.rs.tmpl +11 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/app-wiring.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/by-field-merge.rs.tmpl +10 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/check-eager-child.rs.tmpl +14 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/check-optional-typed.rs.tmpl +3 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/check-required-typed.rs.tmpl +5 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/check-required.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/coerce-row.rs.tmpl +62 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/crud.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/readonly.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/validator-empty.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes/validator.rs.tmpl +5 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-e2e/app_routes_e2e.rs.tmpl +2 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-e2e/crud-tests.rs.tmpl +66 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-e2e/readonly-tests.rs.tmpl +33 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-e2e/setup.rs.tmpl +52 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-tests/by-field-get-list.rs.tmpl +15 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-tests/by-field-get-unique.rs.tmpl +15 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-tests/crud.rs.tmpl +9 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-routes-tests/readonly.rs.tmpl +9 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-service-integration-tests/generic.rs.tmpl +9 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-service-tests/generic.rs.tmpl +9 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-services/custom-stub.rs.tmpl +13 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-services/generic.rs.tmpl +13 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-type-validators/check-array-nullable.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-type-validators/check-array.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-type-validators/check-nullable.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-type-validators/check-required.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-type-validators/type.rs.tmpl +20 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-type-validators-tests/type_tests.rs.tmpl +14 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-types/type.rs.tmpl +35 -0
- package/node_modules/@deterministic-code/rust-generators/dist/templates/create-view-types-tests/type_tests.rs.tmpl +48 -0
- package/node_modules/@deterministic-code/rust-generators/package.json +106 -0
- package/node_modules/@deterministic-code/rust-generators/src/common/default-casing.test.ts +60 -0
- package/node_modules/@deterministic-code/rust-generators/src/common/default-casing.ts +47 -0
- package/node_modules/@deterministic-code/rust-generators/src/common/dictionary-candidate.ts +4 -0
- package/node_modules/@deterministic-code/rust-generators/src/common/test-samples.ts +82 -0
- package/node_modules/@deterministic-code/rust-generators/src/common/view-shape.ts +46 -0
- package/node_modules/@deterministic-code/rust-generators/src/common/view-test-fixtures.ts +162 -0
- package/node_modules/@deterministic-code/rust-generators/src/deterministic-type-converter.ts +168 -0
- package/node_modules/@deterministic-code/rust-generators/src/emit.ts +22 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-backend-app.ts +45 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-context.ts +1 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-datasource-type-validators-tests.ts +142 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-datasource-type-validators.ts +182 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-datasource-types-tests.ts +63 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-datasource-types.ts +84 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-openapi.ts +40 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-perf-e2e-tests.ts +7 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-perf-server.ts +21 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-routes-e2e-test.ts +117 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-routes-tests.ts +153 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-routes.ts +465 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-service-integration-tests.ts +84 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-service-tests.ts +64 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-services.ts +86 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-view-type-validators-tests.ts +105 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-view-type-validators.ts +154 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-view-types-tests.ts +92 -0
- package/node_modules/@deterministic-code/rust-generators/src/generate-view-types.ts +168 -0
- package/node_modules/@deterministic-code/rust-generators/src/import-generator.test.ts +381 -0
- package/node_modules/@deterministic-code/rust-generators/src/import-generator.ts +341 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/backend-app.ts +24 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/datasource-type-validators-tests.ts +12 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/datasource-type-validators.ts +12 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/datasource-types-tests.ts +11 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/datasource-types.ts +9 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/openapi.ts +12 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/perf-e2e.ts +6 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/perf-server.ts +6 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/routes-e2e.ts +15 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/routes-tests.ts +19 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/routes.ts +35 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/service-integration-tests.ts +12 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/service-tests.ts +9 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/services.ts +12 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/view-type-validators-tests.ts +12 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/view-type-validators.ts +21 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/view-types-tests.ts +11 -0
- package/node_modules/@deterministic-code/rust-generators/src/resources/view-types.ts +9 -0
- package/node_modules/@deterministic-code/rust-generators/src/rust-eager-service-graph.ts +4 -0
- package/node_modules/@deterministic-code/rust-generators/src/specification-parser.ts +34 -0
- package/node_modules/@deterministic-code/rust-generators/src/struct-default.ts +99 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/Cargo.toml.tmpl +34 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/Dockerfile.tmpl +31 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/docker-compose.yml.tmpl +17 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/entrypoint.sh +7 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/env.tmpl +2 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/gitignore.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/rust/chunks/README.md +1 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/rust/chunks/lib.rs +2 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/rust/chunks/main.rs +4 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-backend-app/rust/health_check_service.rs +13 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-datasource-type-validators/type.rs.tmpl +8 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-datasource-type-validators-tests/type_tests.rs.tmpl +14 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-datasource-types/type.rs.tmpl +22 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-datasource-types-tests/type_tests.rs.tmpl +39 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-openapi/openapi.rs.tmpl +17 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-openapi/openapi_conformance.rs.tmpl +56 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-perf-e2e/app_perf_client.rs.tmpl +541 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-perf-server/perf_server.rs.tmpl +3 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/app-wiring-body.rs.tmpl +11 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/app-wiring.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/by-field-merge.rs.tmpl +10 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/check-eager-child.rs.tmpl +14 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/check-optional-typed.rs.tmpl +3 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/check-required-typed.rs.tmpl +5 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/check-required.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/coerce-row.rs.tmpl +62 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/crud.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/readonly.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/validator-empty.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes/validator.rs.tmpl +5 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-e2e/app_routes_e2e.rs.tmpl +2 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-e2e/crud-tests.rs.tmpl +66 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-e2e/readonly-tests.rs.tmpl +33 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-e2e/setup.rs.tmpl +52 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-tests/by-field-get-list.rs.tmpl +15 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-tests/by-field-get-unique.rs.tmpl +15 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-tests/crud.rs.tmpl +9 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-routes-tests/readonly.rs.tmpl +9 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-service-integration-tests/generic.rs.tmpl +9 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-service-tests/generic.rs.tmpl +9 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-services/custom-stub.rs.tmpl +13 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-services/generic.rs.tmpl +13 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-type-validators/check-array-nullable.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-type-validators/check-array.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-type-validators/check-nullable.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-type-validators/check-required.rs.tmpl +1 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-type-validators/type.rs.tmpl +20 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-type-validators-tests/type_tests.rs.tmpl +14 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-types/type.rs.tmpl +35 -0
- package/node_modules/@deterministic-code/rust-generators/src/templates/create-view-types-tests/type_tests.rs.tmpl +48 -0
- package/node_modules/@deterministic-code/rust-generators/tsconfig.build.json +10 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/client-binding-transport.js +15 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/client-bindings-ir.js +186 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/common/default-casing.js +53 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/common/dictionary-candidate.js +4 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/common/fake-test-data.js +88 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/common/http-path.js +8 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/common/type-converters/native-to-zod.js +118 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/common/view-shape.js +30 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/common/view-test-shape.js +238 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/deterministic-type-converter.js +110 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/emit-shaped-types.js +353 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/emit.js +43 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/frontend-bindings-routes.js +4 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-backend-app.js +105 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-client-bindings-live-tests.js +28 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-client-bindings-mock-tests.js +28 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-client-bindings.js +55 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-context.js +0 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-datasource-type-validators-tests.js +167 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-datasource-types-tests.js +83 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-datasource-types.d.ts +3 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-datasource-types.js +10 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-frontend-app.js +154 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-frontend-types-tests.js +14 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-frontend-types.js +18 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-frontend-validators-tests.js +14 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-frontend-validators.js +34 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-perf-e2e-tests.js +8 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-perf-server.js +31 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-routes-e2e-test.js +21 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-routes-tests.js +64 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-routes.js +172 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-service-integration-tests.js +282 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-service-tests.js +80 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-services.js +239 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-view-type-validators-tests.js +192 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-view-type-validators.js +308 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-view-types-tests.js +101 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-view-types.d.ts +3 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/generate-view-types.js +5 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/import-generator.js +241 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/inline-inherited.js +4 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/backend-app-minimal.js +25 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/backend-app.js +43 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/client-bindings-live-tests.js +16 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/client-bindings-mock-tests.js +16 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/client-bindings.js +31 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/datasource-type-validators-tests.js +14 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/datasource-type-validators.js +16 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/datasource-types-tests.js +11 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/frontend-app-angular.js +46 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/frontend-app-next.js +37 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/frontend-app-svelte.js +43 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/frontend-app.js +37 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/frontend-validators.js +28 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/perf-e2e.js +8 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/perf-server.js +18 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/routes-e2e.js +11 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/routes-tests.js +37 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/routes.js +40 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/service-integration-tests.js +11 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/service-tests.js +9 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/services.js +15 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/shaped-types.js +13 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/view-type-validators-tests.js +14 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/view-type-validators.js +28 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/resources/view-types-tests.js +15 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/Dockerfile.tmpl +19 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/app-boot.test.ts.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/docker-compose.yml.tmpl +18 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/entrypoint.sh +7 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/env.tmpl +1 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/gitignore.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/health-check-service.ts.tmpl +11 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/health.test.ts.tmpl +27 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/minimal/app.ts.tmpl +15 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/minimal/health.test.ts.tmpl +23 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/minimal/package.json.tmpl +14 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/minimal/server.ts.tmpl +20 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/minimal/tsconfig.json.tmpl +22 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/package.json.tmpl +30 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/tsconfig.json.tmpl +19 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/typescript/chunks/README.md +1 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/typescript/chunks/app.ts +24 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/typescript/chunks/server.ts +20 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/vitest.config.ts.tmpl +16 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-backend-app/vitest.perf.config.ts.tmpl +28 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings/axios-http.ts.tmpl +28 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings/entity.ts.tmpl +13 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings/fetch-http.ts.tmpl +33 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings/root-index.ts.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings/tanstack-index.ts.tmpl +7 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings/tanstack.ts.tmpl +28 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings/transport-index.ts.tmpl +4 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings-live-tests/http-entity.test.ts.tmpl +29 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings-live-tests/tanstack-entity.test.ts.tmpl +29 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings-mock-tests/http-entity.test.ts.tmpl +19 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-client-bindings-mock-tests/tanstack-entity.test.ts.tmpl +23 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-datasource-type-validators/index.ts.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-datasource-type-validators/type.ts.tmpl +12 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-datasource-type-validators-tests/type.test.ts.tmpl +12 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-datasource-types-tests/type.test.ts.tmpl +29 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/Dockerfile.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/Dockerfile.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/angular.json.tmpl +34 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/docker-compose-service.yml.tmpl +6 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/gitignore.tmpl +4 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/package.json.tmpl +38 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/src/app/app.config.ts.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/src/app/app.ts.tmpl +7 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/src/index.html.tmpl +12 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/src/main.ts.tmpl +6 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/src/styles.css.tmpl +1 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/tsconfig.app.json.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/angular/tsconfig.json.tmpl +22 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/docker-compose-service.yml.tmpl +6 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/gitignore.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/index.html.tmpl +12 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/Dockerfile.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/app/layout.tsx.tmpl +17 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/app/page.tsx.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/docker-compose-service.yml.tmpl +6 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/gitignore.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/next-env.d.ts.tmpl +2 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/next.config.ts.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/package.json.tmpl +33 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/next/tsconfig.json.tmpl +20 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/package.json.tmpl +35 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/src/App.tsx.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/src/main.tsx.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/Dockerfile.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/docker-compose-service.yml.tmpl +6 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/gitignore.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/index.html.tmpl +12 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/package.json.tmpl +32 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/src/App.svelte.tmpl +1 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/src/main.ts.tmpl +4 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/src/vite-env.d.ts.tmpl +2 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/svelte.config.js.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/tsconfig.json.tmpl +15 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/svelte/vite.config.ts.tmpl +10 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/tsconfig.json.tmpl +22 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-app/vite.config.ts.tmpl +10 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-validators/index.ts.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-validators/schema-inherit.ts.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-validators/schema-standalone.ts.tmpl +10 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-validators/schema-union.ts.tmpl +4 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-frontend-validators/type.ts.tmpl +11 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-migrate-scripts/setup-typescript.mjs.tmpl +89 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-perf-e2e/app.perf.client.test.ts.tmpl +257 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-perf-server/perf-server.ts.tmpl +19 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/by-field-delete-list.ts.tmpl +13 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/by-field-delete-unique.ts.tmpl +17 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/by-field-get-list.ts.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/by-field-get-unique.ts.tmpl +17 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/by-field-put-list.ts.tmpl +14 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/by-field-put-unique.ts.tmpl +23 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/crud.ts.tmpl +6 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/custom-stub.ts.tmpl +13 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/index.ts.tmpl +4 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes/readonly.ts.tmpl +6 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-e2e/app.integration.test.ts.tmpl +22 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/by-field-delete-list.ts.tmpl +7 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/by-field-delete-unique.ts.tmpl +14 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/by-field-get-list.ts.tmpl +10 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/by-field-get-unique.ts.tmpl +22 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/by-field-put-list.ts.tmpl +7 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/by-field-put-unique.ts.tmpl +17 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/crud.test.ts.tmpl +8 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/mock-factory.ts.tmpl +16 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-routes-tests/readonly.test.ts.tmpl +8 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-service-integration-tests/generic.integration.test.ts.tmpl +109 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-service-tests/generic.test.ts.tmpl +65 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-services/custom-stub.ts.tmpl +30 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-services/generic.ts.tmpl +114 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-services/index.ts.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-shaped-types/index.ts.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-shaped-types/type.ts.tmpl +25 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-type-validators/index.ts.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-type-validators/schema-inherit.ts.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-type-validators/schema-standalone.ts.tmpl +10 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-type-validators/schema-union.ts.tmpl +4 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-type-validators/type.ts.tmpl +11 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-type-validators-tests/type.test.ts.tmpl +12 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-types-tests/field-tests.ts.tmpl +26 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-types-tests/type.test.ts.tmpl +26 -0
- package/node_modules/@deterministic-code/typescript-generators/dist/templates/create-view-types-tests/value.ts.tmpl +1 -0
- package/node_modules/@deterministic-code/typescript-generators/package.json +133 -0
- package/node_modules/@deterministic-code/typescript-generators/src/client-binding-transport.ts +26 -0
- package/node_modules/@deterministic-code/typescript-generators/src/client-bindings-ir.ts +273 -0
- package/node_modules/@deterministic-code/typescript-generators/src/common/default-casing.test.ts +193 -0
- package/node_modules/@deterministic-code/typescript-generators/src/common/default-casing.ts +90 -0
- package/node_modules/@deterministic-code/typescript-generators/src/common/dictionary-candidate.ts +4 -0
- package/node_modules/@deterministic-code/typescript-generators/src/common/fake-test-data.ts +132 -0
- package/node_modules/@deterministic-code/typescript-generators/src/common/http-path.ts +12 -0
- package/node_modules/@deterministic-code/typescript-generators/src/common/type-converters/native-to-zod.ts +137 -0
- package/node_modules/@deterministic-code/typescript-generators/src/common/view-shape.ts +57 -0
- package/node_modules/@deterministic-code/typescript-generators/src/common/view-test-shape.ts +354 -0
- package/node_modules/@deterministic-code/typescript-generators/src/deterministic-type-converter.ts +134 -0
- package/node_modules/@deterministic-code/typescript-generators/src/emit-shaped-types.ts +541 -0
- package/node_modules/@deterministic-code/typescript-generators/src/emit.ts +67 -0
- package/node_modules/@deterministic-code/typescript-generators/src/frontend-bindings-routes.ts +3 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-backend-app.ts +116 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-client-bindings-live-tests.ts +29 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-client-bindings-mock-tests.ts +29 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-client-bindings.ts +56 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-context.ts +1 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-datasource-type-validators-tests.ts +203 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-datasource-type-validators.ts +191 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-datasource-types-tests.ts +97 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-datasource-types.ts +13 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-frontend-app.ts +180 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-frontend-types-tests.ts +17 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-frontend-types.ts +23 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-frontend-validators-tests.ts +17 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-frontend-validators.ts +39 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-perf-e2e-tests.ts +9 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-perf-server.ts +32 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-routes-e2e-test.ts +22 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-routes-tests.ts +75 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-routes.ts +196 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-service-integration-tests.ts +351 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-service-tests.ts +103 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-services.ts +287 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-view-type-validators-tests.ts +233 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-view-type-validators.ts +391 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-view-types-tests.ts +124 -0
- package/node_modules/@deterministic-code/typescript-generators/src/generate-view-types.ts +8 -0
- package/node_modules/@deterministic-code/typescript-generators/src/import-generator.test.ts +432 -0
- package/node_modules/@deterministic-code/typescript-generators/src/import-generator.ts +346 -0
- package/node_modules/@deterministic-code/typescript-generators/src/inline-inherited.ts +2 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/backend-app-minimal.ts +21 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/backend-app.ts +32 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/client-bindings-live-tests.ts +15 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/client-bindings-mock-tests.ts +15 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/client-bindings.ts +25 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/datasource-type-validators-tests.ts +14 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/datasource-type-validators.ts +15 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/datasource-types-tests.ts +11 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/frontend-app-angular.ts +35 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/frontend-app-next.ts +29 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/frontend-app-svelte.ts +33 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/frontend-app.ts +29 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/frontend-validators.ts +24 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/perf-e2e.ts +6 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/perf-server.ts +15 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/routes-e2e.ts +9 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/routes-tests.ts +29 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/routes.ts +31 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/service-integration-tests.ts +9 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/service-tests.ts +9 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/services.ts +13 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/shaped-types.ts +12 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/view-type-validators-tests.ts +14 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/view-type-validators.ts +24 -0
- package/node_modules/@deterministic-code/typescript-generators/src/resources/view-types-tests.ts +13 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/Dockerfile.tmpl +19 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/app-boot.test.ts.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/docker-compose.yml.tmpl +18 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/entrypoint.sh +7 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/env.tmpl +1 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/gitignore.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/health-check-service.ts.tmpl +11 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/health.test.ts.tmpl +27 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/minimal/app.ts.tmpl +15 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/minimal/health.test.ts.tmpl +23 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/minimal/package.json.tmpl +14 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/minimal/server.ts.tmpl +20 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/minimal/tsconfig.json.tmpl +22 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/package.json.tmpl +30 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/tsconfig.json.tmpl +19 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/typescript/chunks/README.md +1 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/typescript/chunks/app.ts +24 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/typescript/chunks/server.ts +20 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/vitest.config.ts.tmpl +16 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-backend-app/vitest.perf.config.ts.tmpl +28 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings/axios-http.ts.tmpl +28 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings/entity.ts.tmpl +13 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings/fetch-http.ts.tmpl +33 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings/root-index.ts.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings/tanstack-index.ts.tmpl +7 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings/tanstack.ts.tmpl +28 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings/transport-index.ts.tmpl +4 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings-live-tests/http-entity.test.ts.tmpl +29 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings-live-tests/tanstack-entity.test.ts.tmpl +29 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings-mock-tests/http-entity.test.ts.tmpl +19 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-client-bindings-mock-tests/tanstack-entity.test.ts.tmpl +23 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-datasource-type-validators/index.ts.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-datasource-type-validators/type.ts.tmpl +12 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-datasource-type-validators-tests/type.test.ts.tmpl +12 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-datasource-types-tests/type.test.ts.tmpl +29 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/Dockerfile.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/Dockerfile.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/angular.json.tmpl +34 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/docker-compose-service.yml.tmpl +6 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/gitignore.tmpl +4 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/package.json.tmpl +38 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/src/app/app.config.ts.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/src/app/app.ts.tmpl +7 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/src/index.html.tmpl +12 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/src/main.ts.tmpl +6 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/src/styles.css.tmpl +1 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/tsconfig.app.json.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/angular/tsconfig.json.tmpl +22 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/docker-compose-service.yml.tmpl +6 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/gitignore.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/index.html.tmpl +12 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/Dockerfile.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/app/layout.tsx.tmpl +17 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/app/page.tsx.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/docker-compose-service.yml.tmpl +6 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/gitignore.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/next-env.d.ts.tmpl +2 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/next.config.ts.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/package.json.tmpl +33 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/next/tsconfig.json.tmpl +20 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/package.json.tmpl +35 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/src/App.tsx.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/src/main.tsx.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/Dockerfile.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/docker-compose-service.yml.tmpl +6 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/gitignore.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/index.html.tmpl +12 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/package.json.tmpl +32 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/src/App.svelte.tmpl +1 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/src/main.ts.tmpl +4 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/src/vite-env.d.ts.tmpl +2 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/svelte.config.js.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/tsconfig.json.tmpl +15 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/svelte/vite.config.ts.tmpl +10 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/tsconfig.json.tmpl +22 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-app/vite.config.ts.tmpl +10 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-validators/index.ts.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-validators/schema-inherit.ts.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-validators/schema-standalone.ts.tmpl +10 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-validators/schema-union.ts.tmpl +4 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-frontend-validators/type.ts.tmpl +11 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-migrate-scripts/setup-typescript.mjs.tmpl +89 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-perf-e2e/app.perf.client.test.ts.tmpl +257 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-perf-server/perf-server.ts.tmpl +19 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/by-field-delete-list.ts.tmpl +13 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/by-field-delete-unique.ts.tmpl +17 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/by-field-get-list.ts.tmpl +9 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/by-field-get-unique.ts.tmpl +17 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/by-field-put-list.ts.tmpl +14 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/by-field-put-unique.ts.tmpl +23 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/crud.ts.tmpl +6 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/custom-stub.ts.tmpl +13 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/index.ts.tmpl +4 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes/readonly.ts.tmpl +6 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-e2e/app.integration.test.ts.tmpl +22 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/by-field-delete-list.ts.tmpl +7 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/by-field-delete-unique.ts.tmpl +14 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/by-field-get-list.ts.tmpl +10 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/by-field-get-unique.ts.tmpl +22 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/by-field-put-list.ts.tmpl +7 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/by-field-put-unique.ts.tmpl +17 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/crud.test.ts.tmpl +8 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/mock-factory.ts.tmpl +16 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-routes-tests/readonly.test.ts.tmpl +8 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-service-integration-tests/generic.integration.test.ts.tmpl +109 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-service-tests/generic.test.ts.tmpl +65 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-services/custom-stub.ts.tmpl +30 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-services/generic.ts.tmpl +114 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-services/index.ts.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-shaped-types/index.ts.tmpl +3 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-shaped-types/type.ts.tmpl +25 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-type-validators/index.ts.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-type-validators/schema-inherit.ts.tmpl +5 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-type-validators/schema-standalone.ts.tmpl +10 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-type-validators/schema-union.ts.tmpl +4 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-type-validators/type.ts.tmpl +11 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-type-validators-tests/type.test.ts.tmpl +12 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-types-tests/field-tests.ts.tmpl +26 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-types-tests/type.test.ts.tmpl +26 -0
- package/node_modules/@deterministic-code/typescript-generators/src/templates/create-view-types-tests/value.ts.tmpl +1 -0
- package/node_modules/@deterministic-code/typescript-generators/tsconfig.build.json +10 -0
- package/package.json +46 -4
- package/README.md +0 -3
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import { content } from "@deterministic-code/generators-common/generate-entry";
|
|
2
|
+
import { childField, children as childModels, isLinked, pluralSnake, repositoryFile } from "./RepositoryModel.js";
|
|
3
|
+
const rustString = (value) => `"${value.replaceAll("\\", "\\\\").replaceAll('"', '\\"')}"`;
|
|
4
|
+
const uses = `use datasources::{Association, Connection, CRUDRepository, CRUDRepositoryOptions, DictionaryMapper, Enrichment, EnrichmentPropertyType, ICRUDRepository, ReadonlyRepository, ReadonlyRepositoryMappingOptions, Result};
|
|
5
|
+
use std::sync::Arc;`;
|
|
6
|
+
const crudOptions = (model) => {
|
|
7
|
+
const mapping = model.propertyMappings.length === 0 ? "" : ` options.property_mappings = Some(Arc::new(DictionaryMapper::new([
|
|
8
|
+
${model.propertyMappings.map((pair) => ` (${rustString(pair.from)}.into(), ${rustString(pair.to)}.into()),`).join("\n")}
|
|
9
|
+
])));
|
|
10
|
+
`;
|
|
11
|
+
return ` let mut options = CRUDRepositoryOptions::default();
|
|
12
|
+
options.entity = ${rustString(model.entity)}.into();
|
|
13
|
+
options.entity_mapper = Some(Arc::new(DictionaryMapper::new([
|
|
14
|
+
(${rustString(model.entity)}.into(), ${rustString(model.table)}.into()),
|
|
15
|
+
])));
|
|
16
|
+
${mapping} options.ids = vec![${model.ids.map((id) => `${rustString(id)}.into()`).join(", ")}];
|
|
17
|
+
options.read_properties = vec![${model.readProperties.map((name) => `${rustString(name)}.into()`).join(", ")}];`;
|
|
18
|
+
};
|
|
19
|
+
const readonlyOptions = (model) => {
|
|
20
|
+
const mapping = model.propertyMappings.length === 0 ? "" : ` options.property_mappings = Some(Arc::new(DictionaryMapper::new([
|
|
21
|
+
${model.propertyMappings.map((pair) => ` (${rustString(pair.from)}.into(), ${rustString(pair.to)}.into()),`).join("\n")}
|
|
22
|
+
])));
|
|
23
|
+
`;
|
|
24
|
+
return ` let mut options = ReadonlyRepositoryMappingOptions::default();
|
|
25
|
+
options.entity = ${rustString(model.entity)}.into();
|
|
26
|
+
options.entity_mapper = Some(Arc::new(DictionaryMapper::new([
|
|
27
|
+
(${rustString(model.entity)}.into(), ${rustString(model.table)}.into()),
|
|
28
|
+
])));
|
|
29
|
+
${mapping} options.read_properties = vec![${model.readProperties.map((name) => `${rustString(name)}.into()`).join(", ")}];`;
|
|
30
|
+
};
|
|
31
|
+
const nestedOf = (models) => new Set(models.filter((model) => childModels(model).length > 0).map((model) => model.specName));
|
|
32
|
+
const viaClone = (name, specName, nested) => nested.has(specName) ? `Arc::clone(&${name}.repo)` : `Arc::clone(&${name})`;
|
|
33
|
+
const enrichment = (item, linked, nested) => {
|
|
34
|
+
const via = childField("rust", item.via, item.viaType);
|
|
35
|
+
if (linked && isLinked(item)) {
|
|
36
|
+
const link = childField("rust", item.link, item.linkType);
|
|
37
|
+
return `repo.add_linked(Enrichment::new(${rustString(item.destination)}, ${rustString(item.source)}, ${rustString(item.relatedKey)}, None, EnrichmentPropertyType::List).linked(Association::new(${rustString(item.parentFk)}, ${rustString(item.relatedFk)})), ${viaClone(via, item.via, nested)}, ${viaClone(link, item.link, nested)} as Arc<dyn ICRUDRepository>, None);`;
|
|
38
|
+
}
|
|
39
|
+
const related = item.relatedProperty === void 0 ? "None" : `Some(${rustString(item.relatedProperty)}.into())`;
|
|
40
|
+
const type = item.kind === "object" ? "EnrichmentPropertyType::Object" : item.kind === "dictionary" ? "EnrichmentPropertyType::Dictionary" : "EnrichmentPropertyType::List";
|
|
41
|
+
return `repo.add_enriched(Enrichment::new(${rustString(item.destination)}, ${rustString(item.source)}, ${rustString(item.relatedKey)}, ${related}, ${type}), ${viaClone(via, item.via, nested)}, None);`;
|
|
42
|
+
};
|
|
43
|
+
const childLets = (children, nested) => children.map(
|
|
44
|
+
(child) => nested.has(child.specName) ? ` let ${child.specName} = Arc::new(super::${child.specName}_repository::${child.typeName}Repository::new(Arc::clone(&connection))?);` : ` let ${child.specName} = Arc::new(super::${child.specName}_repository::${child.specName}_repository(Arc::clone(&connection))?);`
|
|
45
|
+
).join("\n");
|
|
46
|
+
const readonlyChildren = (model) => {
|
|
47
|
+
const rows = /* @__PURE__ */ new Map();
|
|
48
|
+
for (const item of model.enrichments) rows.set(item.via, item.viaType);
|
|
49
|
+
return [...rows].map(([specName, typeName]) => ({ specName, typeName }));
|
|
50
|
+
};
|
|
51
|
+
const readonlyFn = (model, nested) => {
|
|
52
|
+
const lets = childLets(readonlyChildren(model), nested);
|
|
53
|
+
const enrich = model.enrichments.map((item) => ` ${enrichment(item, false, nested)}`).join("\n");
|
|
54
|
+
const body = `${readonlyOptions(model)}
|
|
55
|
+
${lets}${lets.length === 0 ? "" : "\n"} let ${model.enrichments.length === 0 ? "repo" : "mut repo"} = ReadonlyRepository::new(connection, options)?;
|
|
56
|
+
${enrich}${enrich.length === 0 ? "" : "\n"} Ok(repo)`;
|
|
57
|
+
return `pub fn ${model.specName}_readonly_repository(connection: Arc<dyn Connection>) -> Result<ReadonlyRepository> {
|
|
58
|
+
${body}
|
|
59
|
+
}`;
|
|
60
|
+
};
|
|
61
|
+
const rustTokenWhere = (model, token) => {
|
|
62
|
+
const [first, ...rest] = [...model.ids, token.property];
|
|
63
|
+
const value = (name) => name === token.property ? "expected.clone()" : `item.get(${rustString(name)}).cloned().ok_or_else(|| DatasourceError::message(${rustString(name)}))?`;
|
|
64
|
+
return ` let expected = item.get(${rustString(token.property)}).cloned().ok_or_else(|| DatasourceError::message(${rustString(token.property)}))?;
|
|
65
|
+
let clause = Where::binary(${rustString(first)}, eq, ${value(first)})${rest.map((name) => `.and(${rustString(name)}, eq, ${value(name)})`).join("")};`;
|
|
66
|
+
};
|
|
67
|
+
const rustOcc = (model) => {
|
|
68
|
+
const token = model.optimisticConcurrency;
|
|
69
|
+
if (token === void 0) return "";
|
|
70
|
+
const name = `${model.typeName}Optimistic`;
|
|
71
|
+
const bump = token.increment ? ` if let Some(value) = item.get(${rustString(token.property)}).cloned() {
|
|
72
|
+
item.insert(${rustString(token.property)}.into(), match value {
|
|
73
|
+
Value::Int(n) => Value::Int(n + 1),
|
|
74
|
+
Value::Float(n) => Value::Float(n + 1.0),
|
|
75
|
+
other => other,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
` : "";
|
|
79
|
+
const where = rustTokenWhere(model, token);
|
|
80
|
+
return `
|
|
81
|
+
use datasources::{async_trait, CommandMiddleware, DatasourceError, IReadonlyRepository, IRepository, IdKey, IWhere, Parameter, ReadInput, Response, Value, Where, eq};
|
|
82
|
+
use futures_core::Stream;
|
|
83
|
+
use std::any::TypeId;
|
|
84
|
+
use std::pin::Pin;
|
|
85
|
+
|
|
86
|
+
pub struct ${name} {
|
|
87
|
+
repo: CRUDRepository,
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
impl ${name} {
|
|
91
|
+
pub fn new(repo: CRUDRepository) -> Self {
|
|
92
|
+
Self { repo }
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
impl IRepository for ${name} {
|
|
97
|
+
fn entity_type(&self) -> TypeId {
|
|
98
|
+
self.repo.entity_type()
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
#[async_trait]
|
|
103
|
+
impl IReadonlyRepository for ${name} {
|
|
104
|
+
fn to_crud(self: Arc<Self>) -> Option<Arc<dyn ICRUDRepository>> {
|
|
105
|
+
Some(self)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
async fn read_single(
|
|
109
|
+
&self,
|
|
110
|
+
query: Option<&dyn ReadInput>,
|
|
111
|
+
parameters: Option<&[Parameter]>,
|
|
112
|
+
options: Option<&ReadonlyRepositoryMappingOptions>,
|
|
113
|
+
) -> Result<Option<datasources::Row>> {
|
|
114
|
+
self.repo.read_single(query, parameters, options).await
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
fn read<'a>(
|
|
118
|
+
&'a self,
|
|
119
|
+
query: Option<&'a dyn ReadInput>,
|
|
120
|
+
parameters: Option<&'a [Parameter]>,
|
|
121
|
+
options: Option<&'a ReadonlyRepositoryMappingOptions>,
|
|
122
|
+
) -> Pin<Box<dyn Stream<Item = Result<datasources::Row>> + Send + 'a>> {
|
|
123
|
+
self.repo.read(query, parameters, options)
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
#[async_trait]
|
|
128
|
+
impl ICRUDRepository for ${name} {
|
|
129
|
+
async fn create(&self, item: &mut datasources::Row) -> Result<datasources::Row> {
|
|
130
|
+
self.repo.create(item).await
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
async fn update(&self, item: &mut datasources::Row, by_where: Option<&dyn IWhere>) -> Result<Response> {
|
|
134
|
+
${where}
|
|
135
|
+
${bump} let response = self.repo.update(item, Some(by_where.unwrap_or(&clause))).await?;
|
|
136
|
+
if response.rows_affected != 1 {
|
|
137
|
+
return Err(DatasourceError::message(format!("Update affected {} rows", response.rows_affected)));
|
|
138
|
+
}
|
|
139
|
+
Ok(response)
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
async fn delete(&self, item: &datasources::Row, by_where: Option<&dyn IWhere>) -> Result<Response> {
|
|
143
|
+
${where}
|
|
144
|
+
let response = self.repo.delete(item, Some(by_where.unwrap_or(&clause))).await?;
|
|
145
|
+
if response.rows_affected != 1 {
|
|
146
|
+
return Err(DatasourceError::message(format!("Delete affected {} rows", response.rows_affected)));
|
|
147
|
+
}
|
|
148
|
+
Ok(response)
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
async fn read_single_by_id(&self, id: &dyn IdKey) -> Result<Option<datasources::Row>> {
|
|
152
|
+
self.repo.read_single_by_id(id).await
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
fn id_names(&self) -> Vec<String> {
|
|
156
|
+
self.repo.id_names()
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
fn add_middleware(&self, middleware: Arc<dyn CommandMiddleware>) {
|
|
160
|
+
self.repo.add_middleware(middleware)
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
`;
|
|
164
|
+
};
|
|
165
|
+
const pad = (text) => text.split("\n").map((line) => ` ${line}`).join("\n");
|
|
166
|
+
const plain = (model, nested) => `${uses}
|
|
167
|
+
|
|
168
|
+
pub fn ${model.specName}_repository(connection: Arc<dyn Connection>) -> Result<CRUDRepository> {
|
|
169
|
+
${crudOptions(model)}
|
|
170
|
+
CRUDRepository::new(connection, options)
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
${readonlyFn(model, nested)}
|
|
174
|
+
${rustOcc(model)}`;
|
|
175
|
+
const wrapped = (model, nested) => {
|
|
176
|
+
const type = `${model.typeName}Repository`;
|
|
177
|
+
const children = childModels(model);
|
|
178
|
+
const fields = children.map(
|
|
179
|
+
(child) => nested.has(child.specName) ? ` pub ${child.specName}: Arc<super::${child.specName}_repository::${child.typeName}Repository>,` : ` pub ${child.specName}: Arc<CRUDRepository>,`
|
|
180
|
+
).join("\n");
|
|
181
|
+
const assign = children.map((child) => child.specName).join(", ");
|
|
182
|
+
const enrich = model.enrichments.map((item) => ` ${enrichment(item, true, nested)}`).join("\n");
|
|
183
|
+
return `${uses}
|
|
184
|
+
use std::ops::Deref;
|
|
185
|
+
|
|
186
|
+
pub struct ${type} {
|
|
187
|
+
pub repo: Arc<CRUDRepository>,
|
|
188
|
+
${fields}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
impl ${type} {
|
|
192
|
+
pub fn new(connection: Arc<dyn Connection>) -> Result<Self> {
|
|
193
|
+
${pad(crudOptions(model))}
|
|
194
|
+
${childLets(children, nested)}
|
|
195
|
+
let mut repo = CRUDRepository::new(Arc::clone(&connection), options)?;
|
|
196
|
+
${enrich}
|
|
197
|
+
Ok(Self { repo: Arc::new(repo), ${assign} })
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
impl Deref for ${type} {
|
|
202
|
+
type Target = CRUDRepository;
|
|
203
|
+
fn deref(&self) -> &Self::Target {
|
|
204
|
+
self.repo.as_ref()
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
pub fn ${model.specName}_repository(connection: Arc<dyn Connection>) -> Result<CRUDRepository> {
|
|
209
|
+
Arc::try_unwrap(${type}::new(connection)?.repo).map_err(|_| datasources::DatasourceError::message("repository"))
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
${readonlyFn(model, nested)}
|
|
213
|
+
${rustOcc(model)}`;
|
|
214
|
+
};
|
|
215
|
+
const rustRepositories = (models) => {
|
|
216
|
+
const nested = nestedOf(models);
|
|
217
|
+
const files = models.map(
|
|
218
|
+
(model) => content(repositoryFile("rust", model), childModels(model).length === 0 ? plain(model, nested) : wrapped(model, nested))
|
|
219
|
+
);
|
|
220
|
+
const register = models.map((model) => {
|
|
221
|
+
const module = `${model.specName}_repository`;
|
|
222
|
+
const crud = model.optimisticConcurrency === void 0 ? `Arc::new(super::${module}::${model.specName}_repository(connection).expect("repository")) as Arc<dyn ICRUDRepository>` : `Arc::new(super::${module}::${model.typeName}Optimistic::new(super::${module}::${model.specName}_repository(connection).expect("repository"))) as Arc<dyn ICRUDRepository>`;
|
|
223
|
+
return ` factory.register_named(
|
|
224
|
+
${rustString(model.entity)},
|
|
225
|
+
${rustString(pluralSnake(model.specName))},
|
|
226
|
+
|connection| ${crud},
|
|
227
|
+
|connection| Arc::new(super::${module}::${model.specName}_readonly_repository(connection).expect("repository")) as Arc<dyn IReadonlyRepository>,
|
|
228
|
+
);`;
|
|
229
|
+
});
|
|
230
|
+
const methods = models.map((model) => {
|
|
231
|
+
const name = pluralSnake(model.specName);
|
|
232
|
+
return ` fn ${name}(&self) -> Arc<dyn ICRUDRepository>;`;
|
|
233
|
+
});
|
|
234
|
+
const impls = models.map((model) => {
|
|
235
|
+
const name = pluralSnake(model.specName);
|
|
236
|
+
return ` fn ${name}(&self) -> Arc<dyn ICRUDRepository> {
|
|
237
|
+
self.create_repository_by_name(${rustString(name)}, None).expect(${rustString(name)})
|
|
238
|
+
}`;
|
|
239
|
+
});
|
|
240
|
+
const registry = `use datasources::{Datasource, ICRUDRepository, IReadonlyRepository, RepositoryFactory};
|
|
241
|
+
use std::sync::Arc;
|
|
242
|
+
|
|
243
|
+
pub fn register(factory: &RepositoryFactory) {
|
|
244
|
+
${register.join("\n")}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
#[ctor::ctor]
|
|
248
|
+
fn bind() {
|
|
249
|
+
RepositoryFactory::bind(register);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
pub trait Repositories {
|
|
253
|
+
${methods.join("\n")}
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
impl Repositories for dyn Datasource {
|
|
257
|
+
${impls.join("\n")}
|
|
258
|
+
}
|
|
259
|
+
`;
|
|
260
|
+
return [
|
|
261
|
+
...files,
|
|
262
|
+
content("repository_registry.rs", registry),
|
|
263
|
+
content("mod.rs", `${models.map((model) => `pub mod ${model.specName}_repository;`).join("\n")}
|
|
264
|
+
pub mod repository_registry;
|
|
265
|
+
`)
|
|
266
|
+
];
|
|
267
|
+
};
|
|
268
|
+
export {
|
|
269
|
+
rustRepositories
|
|
270
|
+
};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { createCasingStrategy } from "@deterministic-code/generators-common/casing-strategy";
|
|
2
|
+
import { content } from "@deterministic-code/generators-common/generate-entry";
|
|
3
|
+
import { childClass, childField, children as childModels, isLinked, pluralCamel, repositoryFile } from "./RepositoryModel.js";
|
|
4
|
+
const quote = (value) => value.replaceAll("\\", "\\\\").replaceAll('"', '\\"');
|
|
5
|
+
const enrichment = (item, host) => {
|
|
6
|
+
const via = host === "this" ? `this.${childField("typescript", item.via, item.viaType)}` : childField("typescript", item.via, item.viaType);
|
|
7
|
+
const related = item.relatedProperty === void 0 ? "" : `, relatedProperty: "${quote(item.relatedProperty)}"`;
|
|
8
|
+
const type = item.kind === "object" ? "object" : item.kind === "dictionary" ? "dictionary" : "list";
|
|
9
|
+
if (host === "this" && isLinked(item)) {
|
|
10
|
+
const link = `this.${childField("typescript", item.link, item.linkType)}`;
|
|
11
|
+
return `this.addLinked({ destinationProperty: "${quote(item.destination)}", sourceProperty: "${quote(item.source)}", relatedKey: "${quote(item.relatedKey)}"${related}, association: { parent: "${quote(item.parentFk)}", related: "${quote(item.relatedFk)}" }, type: "${type}" }, ${via}, ${link});`;
|
|
12
|
+
}
|
|
13
|
+
return `${host}.addEnriched({ destinationProperty: "${quote(item.destination)}", sourceProperty: "${quote(item.source)}", relatedKey: "${quote(item.relatedKey)}"${related}, type: "${type}" }, ${via});`;
|
|
14
|
+
};
|
|
15
|
+
const createReadonly = (model, options) => {
|
|
16
|
+
const children = childModels(model);
|
|
17
|
+
if (children.length === 0 && model.enrichments.length === 0)
|
|
18
|
+
return ` static createReadonly = (connection: IConnection) => new ReadonlyRepository<${model.typeName}>(connection, ${options});`;
|
|
19
|
+
const locals = children.map((child) => ` const ${childField("typescript", child.specName, child.typeName)} = new ${childClass(child.typeName)}(connection);`);
|
|
20
|
+
const enrich = model.enrichments.map((item) => ` ${enrichment(item, "repo")}`);
|
|
21
|
+
return ` static createReadonly(connection: IConnection) {
|
|
22
|
+
const repo = new ReadonlyRepository<${model.typeName}>(connection, ${options});
|
|
23
|
+
${locals.join("\n")}
|
|
24
|
+
${enrich.join("\n")}
|
|
25
|
+
return repo;
|
|
26
|
+
}`;
|
|
27
|
+
};
|
|
28
|
+
const tokenWhere = (model, token, expected) => {
|
|
29
|
+
const [first, ...rest] = [...model.ids, token.property];
|
|
30
|
+
const value = (name) => name === token.property ? expected : `item.${name}`;
|
|
31
|
+
return `new Where("${quote(first)}", eq, ${value(first)})${rest.map((name) => `.and("${quote(name)}", eq, ${value(name)})`).join("")}`;
|
|
32
|
+
};
|
|
33
|
+
const occWrap = (model) => {
|
|
34
|
+
const token = model.optimisticConcurrency;
|
|
35
|
+
if (token === void 0) return "";
|
|
36
|
+
const bump = token.increment ? ` item.${token.property} = Number(expected) + 1;
|
|
37
|
+
` : "";
|
|
38
|
+
return ` const update = this.update;
|
|
39
|
+
const remove = this.delete;
|
|
40
|
+
this.update = async (item, byWhere) => {
|
|
41
|
+
const expected = item.${token.property};
|
|
42
|
+
${bump} const response = await update(item, byWhere ?? ${tokenWhere(model, token, "expected")});
|
|
43
|
+
if (response.rowsAffected !== 1) throw new DatasourceError(\`Update affected \${response.rowsAffected} rows\`);
|
|
44
|
+
return response;
|
|
45
|
+
};
|
|
46
|
+
this.delete = async (item, byWhere) => {
|
|
47
|
+
const response = await remove(item, byWhere ?? ${tokenWhere(model, token, `item.${token.property}`)});
|
|
48
|
+
if (response.rowsAffected !== 1) throw new DatasourceError(\`Delete affected \${response.rowsAffected} rows\`);
|
|
49
|
+
return response;
|
|
50
|
+
};
|
|
51
|
+
`;
|
|
52
|
+
};
|
|
53
|
+
const repoImport = (specName) => `./${specName.replaceAll("_", "-")}-repository`;
|
|
54
|
+
const typescriptRepositories = (models, settings) => {
|
|
55
|
+
const casing = createCasingStrategy("typescript", settings);
|
|
56
|
+
const files = models.map((model) => {
|
|
57
|
+
const folder = model.typeHome === "view" ? "views" : "datasource";
|
|
58
|
+
const children = childModels(model);
|
|
59
|
+
const mapping = model.propertyMappings.length === 0 ? "" : `propertyMappings: new DictionaryMapper([${model.propertyMappings.map((pair) => `["${quote(pair.from)}", "${quote(pair.to)}"]`).join(", ")}]), `;
|
|
60
|
+
const head = `{ entity: "${quote(model.entity)}", entityMapper: new DictionaryMapper([["${quote(model.entity)}", "${quote(model.table)}"]]), ${mapping}`;
|
|
61
|
+
const read = `readProperties: [${model.readProperties.map((name) => `"${quote(name)}"`).join(", ")}] }`;
|
|
62
|
+
const crudOptions = `${head}ids: [${model.ids.map((id) => `"${quote(id)}"`).join(", ")}], ${read}`;
|
|
63
|
+
const readonlyOptions = `${head}${read}`;
|
|
64
|
+
const fields = children.map((child) => ` readonly ${childField("typescript", child.specName, child.typeName)}: ${childClass(child.typeName)};`);
|
|
65
|
+
const wrap = occWrap(model);
|
|
66
|
+
const lines = [
|
|
67
|
+
...children.map((child) => ` this.${childField("typescript", child.specName, child.typeName)} = new ${childClass(child.typeName)}(connection);`),
|
|
68
|
+
...model.enrichments.map((item) => ` ${enrichment(item, "this")}`)
|
|
69
|
+
];
|
|
70
|
+
const imports = children.map((child) => `import { ${childClass(child.typeName)} } from "${repoImport(child.specName)}";`);
|
|
71
|
+
const core = model.optimisticConcurrency === void 0 ? `import { CRUDRepository, DictionaryMapper, ReadonlyRepository, type IConnection } from "@deterministic-code/datasources";` : `import { CRUDRepository, DatasourceError, DictionaryMapper, eq, ReadonlyRepository, Where, type IConnection } from "@deterministic-code/datasources";`;
|
|
72
|
+
return content(
|
|
73
|
+
repositoryFile("typescript", model),
|
|
74
|
+
`import type { ${model.typeName} } from "../types/generated/${folder}/${casing.convertFileName(model.specName)}";
|
|
75
|
+
${core}
|
|
76
|
+
${imports.length === 0 ? "" : `${imports.join("\n")}
|
|
77
|
+
`}
|
|
78
|
+
export class ${model.typeName}Repository extends CRUDRepository<${model.typeName}> {
|
|
79
|
+
${fields.length === 0 ? "" : `${fields.join("\n")}
|
|
80
|
+
`} constructor(connection: IConnection) {
|
|
81
|
+
super(connection, ${crudOptions});
|
|
82
|
+
${wrap}${lines.length === 0 ? "" : `${lines.join("\n")}
|
|
83
|
+
`} }
|
|
84
|
+
${createReadonly(model, readonlyOptions)}
|
|
85
|
+
}
|
|
86
|
+
`
|
|
87
|
+
);
|
|
88
|
+
});
|
|
89
|
+
const registerImports = models.map((model) => `import { ${childClass(model.typeName)} } from "${repoImport(model.specName)}";`);
|
|
90
|
+
const registerCalls = models.map((model) => ` factory.register("${quote(model.entity)}", "${quote(pluralCamel(model.typeName))}", (connection) => new ${childClass(model.typeName)}(connection), (connection) => ${childClass(model.typeName)}.createReadonly(connection));`);
|
|
91
|
+
const props = models.map((model) => ` readonly ${pluralCamel(model.typeName)}: ${childClass(model.typeName)};`);
|
|
92
|
+
return [
|
|
93
|
+
...files,
|
|
94
|
+
content(
|
|
95
|
+
"repository-registry.ts",
|
|
96
|
+
`import { RepositoryFactory } from "@deterministic-code/datasources";
|
|
97
|
+
${registerImports.join("\n")}
|
|
98
|
+
|
|
99
|
+
export const register = (factory: RepositoryFactory): void => {
|
|
100
|
+
${registerCalls.join("\n")}
|
|
101
|
+
};
|
|
102
|
+
RepositoryFactory.bind(register);
|
|
103
|
+
|
|
104
|
+
declare module "@deterministic-code/datasources" {
|
|
105
|
+
interface Datasource {
|
|
106
|
+
${props.join("\n")}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
`
|
|
110
|
+
)
|
|
111
|
+
];
|
|
112
|
+
};
|
|
113
|
+
export {
|
|
114
|
+
typescriptRepositories
|
|
115
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { isAbsolute, join } from "node:path";
|
|
2
|
+
import { memoryReader } from "@deterministic-code/generators-common/deterministic-reader";
|
|
3
|
+
import { loadSpec } from "./loadSpec.js";
|
|
4
|
+
import { providerByName } from "./providers.js";
|
|
5
|
+
import { writeEntries } from "./writeEntries.js";
|
|
6
|
+
import { wireRegister } from "../wireRegister.js";
|
|
7
|
+
const at = (root, path) => isAbsolute(path) ? path : join(root, path);
|
|
8
|
+
const applyGenerate = async (command, flags, deps) => {
|
|
9
|
+
const provider = providerByName(command.provider);
|
|
10
|
+
const loaded = await loadSpec(deps.fs, at(flags.cwd, command.input));
|
|
11
|
+
const request = { dialect: command.dialect, reader: memoryReader(loaded.files), settings: loaded.settings };
|
|
12
|
+
const entries = await {
|
|
13
|
+
all: async () => [
|
|
14
|
+
...await provider.generateTypes(request),
|
|
15
|
+
...await provider.generateRepositories(request),
|
|
16
|
+
...await provider.generateDatasource(request)
|
|
17
|
+
],
|
|
18
|
+
types: () => provider.generateTypes(request),
|
|
19
|
+
repositories: () => provider.generateRepositories(request),
|
|
20
|
+
datasource: () => provider.generateDatasource(request)
|
|
21
|
+
}[command.target]();
|
|
22
|
+
for (const path of await writeEntries(deps.fs, at(flags.cwd, command.output), entries)) deps.log(path);
|
|
23
|
+
if (command.target === "all" || command.target === "repositories")
|
|
24
|
+
await wireRegister(flags.cwd, command.output, command.dialect, flags.dryRun, deps);
|
|
25
|
+
};
|
|
26
|
+
export {
|
|
27
|
+
applyGenerate
|
|
28
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { isAbsolute, join } from "node:path";
|
|
2
|
+
import { generate as generateSql } from "@deterministic-code/datasources-code-generators/generate-sql";
|
|
3
|
+
import { memoryReader } from "@deterministic-code/generators-common/deterministic-reader";
|
|
4
|
+
import { loadSpec } from "./loadSpec.js";
|
|
5
|
+
import { providerByName } from "./providers.js";
|
|
6
|
+
import { writeEntries } from "./writeEntries.js";
|
|
7
|
+
const at = (root, path) => isAbsolute(path) ? path : join(root, path);
|
|
8
|
+
const afterMigrations = (filename) => filename.replace(/^[^/]+\/migrations\//, "");
|
|
9
|
+
const dialectsOf = (entries) => [
|
|
10
|
+
...new Set(entries.map((entry) => entry.filename.split("/")[0]))
|
|
11
|
+
];
|
|
12
|
+
const applyMigrations = async (command, flags, deps) => {
|
|
13
|
+
providerByName(command.provider);
|
|
14
|
+
const loaded = await loadSpec(deps.fs, at(flags.cwd, command.input));
|
|
15
|
+
const entries = await generateSql({ reader: memoryReader(loaded.files), settings: loaded.settings });
|
|
16
|
+
if (command.migrationsPath !== void 0 && dialectsOf(entries).length > 1)
|
|
17
|
+
throw new Error("--migrations-path requires a single SQL dialect in backend.datasources");
|
|
18
|
+
const remapped = command.migrationsPath === void 0 ? entries : entries.map((entry) => ({ ...entry, filename: afterMigrations(entry.filename) }));
|
|
19
|
+
const root = at(flags.cwd, command.migrationsPath ?? command.migrationsRoot);
|
|
20
|
+
if (flags.dryRun) {
|
|
21
|
+
for (const entry of remapped) deps.log(join(root, entry.filename));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
for (const path of await writeEntries(deps.fs, root, remapped)) deps.log(path);
|
|
25
|
+
};
|
|
26
|
+
export {
|
|
27
|
+
applyMigrations
|
|
28
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { settingsFrom } from "./settingsFlat.js";
|
|
3
|
+
const specFiles = ["types.yaml", "datasource.yaml", "datasource_seeds.yaml", "services.yaml", "routes.yaml"];
|
|
4
|
+
const defaultDatasourceYaml = `version: 1.0.0
|
|
5
|
+
includes:
|
|
6
|
+
- types:
|
|
7
|
+
filter: tag == "datasource_type" || tag == "view_type"
|
|
8
|
+
types: []
|
|
9
|
+
`;
|
|
10
|
+
const readOptional = async (fs, path) => {
|
|
11
|
+
try {
|
|
12
|
+
return await fs.readFile(path);
|
|
13
|
+
} catch {
|
|
14
|
+
return void 0;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const versionDir = /^version-\d{8}T\d{6}Z-\d{3}$/;
|
|
18
|
+
const loadSpec = async (fs, dir) => {
|
|
19
|
+
const files = {};
|
|
20
|
+
for (const name of specFiles) {
|
|
21
|
+
const text = await readOptional(fs, join(dir, name));
|
|
22
|
+
if (text !== void 0) files[name] = text;
|
|
23
|
+
}
|
|
24
|
+
if (files["types.yaml"] === void 0) throw new Error(`missing types.yaml in ${dir}`);
|
|
25
|
+
files["datasource.yaml"] ??= defaultDatasourceYaml;
|
|
26
|
+
const names = await fs.readdir(dir).catch(() => []);
|
|
27
|
+
const diffs = names.filter((name) => versionDir.test(name)).sort();
|
|
28
|
+
const versionFiles = [];
|
|
29
|
+
for (const name of diffs) {
|
|
30
|
+
const path = `${name}/diff.yaml`;
|
|
31
|
+
const text = await readOptional(fs, join(dir, path));
|
|
32
|
+
if (text === void 0) continue;
|
|
33
|
+
files[path] = text;
|
|
34
|
+
versionFiles.push(path);
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
files,
|
|
38
|
+
settings: {
|
|
39
|
+
...settingsFrom(await readOptional(fs, join(dir, "settings.yaml"))),
|
|
40
|
+
"paths.deterministic": dir,
|
|
41
|
+
...versionFiles.length ? { "version.diffs": versionFiles.join("\n") } : {}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export {
|
|
46
|
+
defaultDatasourceYaml,
|
|
47
|
+
loadSpec
|
|
48
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { isAbsolute, join } from "node:path";
|
|
2
|
+
import { parseEnv, scheme } from "../env.js";
|
|
3
|
+
import { migrateProviders } from "../migrateInit.js";
|
|
4
|
+
import { loadSpec } from "./loadSpec.js";
|
|
5
|
+
const at = (root, path) => isAbsolute(path) ? path : join(root, path);
|
|
6
|
+
const aliases = {
|
|
7
|
+
sqlite3: "sqlite",
|
|
8
|
+
postgresql: "postgres",
|
|
9
|
+
pg: "postgres",
|
|
10
|
+
mariadb: "mysql",
|
|
11
|
+
mssql: "sqlserver",
|
|
12
|
+
mssqlserver: "sqlserver",
|
|
13
|
+
ora: "oracle"
|
|
14
|
+
};
|
|
15
|
+
const canonical = (name) => {
|
|
16
|
+
const key = name.trim().toLowerCase();
|
|
17
|
+
return aliases[key] ?? key;
|
|
18
|
+
};
|
|
19
|
+
const isSql = (name) => migrateProviders.includes(name);
|
|
20
|
+
const sqlDialects = (settings) => {
|
|
21
|
+
const out = [];
|
|
22
|
+
for (const name of settings["backend.datasources"].split(",")) {
|
|
23
|
+
const key = canonical(name);
|
|
24
|
+
if (key !== "" && isSql(key) && !out.includes(key)) out.push(key);
|
|
25
|
+
}
|
|
26
|
+
return out;
|
|
27
|
+
};
|
|
28
|
+
const readEnv = async (fs, cwd) => {
|
|
29
|
+
try {
|
|
30
|
+
return parseEnv(await fs.readFile(join(cwd, ".env")));
|
|
31
|
+
} catch {
|
|
32
|
+
return {};
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const merged = (file, env) => ({
|
|
36
|
+
...file,
|
|
37
|
+
...env.PROVIDER ? { PROVIDER: env.PROVIDER } : {},
|
|
38
|
+
...env.DATASOURCE_URL ? { DATASOURCE_URL: env.DATASOURCE_URL } : {}
|
|
39
|
+
});
|
|
40
|
+
const inMemory = (url) => url === ":memory:" || url.includes(":memory:");
|
|
41
|
+
const applyMigrateUp = async (command, flags, deps, env = process.env) => {
|
|
42
|
+
const loaded = await loadSpec(deps.fs, at(flags.cwd, command.input));
|
|
43
|
+
const dialects = sqlDialects(loaded.settings);
|
|
44
|
+
const values = merged(await readEnv(deps.fs, flags.cwd), env);
|
|
45
|
+
const connection = values.DATASOURCE_URL ?? "";
|
|
46
|
+
const provider = canonical(values.PROVIDER || scheme(connection) || "");
|
|
47
|
+
if (!provider || !connection) {
|
|
48
|
+
deps.log("migrate-up skipped: set PROVIDER and DATASOURCE_URL, or pass --no-migrate");
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (inMemory(connection)) {
|
|
52
|
+
deps.log("migrate-up skipped: DATASOURCE_URL is in-memory");
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (!isSql(provider)) {
|
|
56
|
+
deps.log(`migrate-up skipped: ${provider} has no SQL migrations`);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (!dialects.includes(provider))
|
|
60
|
+
throw new Error(
|
|
61
|
+
`migrate-up: provider ${provider} is not in backend.datasources (${dialects.join(", ") || "none"})`
|
|
62
|
+
);
|
|
63
|
+
const args = [
|
|
64
|
+
"migrate-up",
|
|
65
|
+
"--provider",
|
|
66
|
+
provider,
|
|
67
|
+
"--connection",
|
|
68
|
+
connection,
|
|
69
|
+
...command.migrationsPath ? ["--migrations-path", command.migrationsPath] : ["--migrations-root", command.migrationsRoot]
|
|
70
|
+
];
|
|
71
|
+
deps.log(`$ npx ${args.join(" ")}`);
|
|
72
|
+
if (!flags.dryRun) await deps.run("npx", args, flags.cwd);
|
|
73
|
+
};
|
|
74
|
+
export {
|
|
75
|
+
applyMigrateUp
|
|
76
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { deterministic } from "./DeterministicProvider.js";
|
|
2
|
+
const providers = { deterministic };
|
|
3
|
+
const providerByName = (name) => {
|
|
4
|
+
const provider = providers[name];
|
|
5
|
+
if (provider === void 0) throw new Error(`Unknown provider: ${name}`);
|
|
6
|
+
return provider;
|
|
7
|
+
};
|
|
8
|
+
export {
|
|
9
|
+
providerByName
|
|
10
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { parse } from "yaml";
|
|
2
|
+
const isMap = (node) => node !== null && typeof node === "object" && !Array.isArray(node);
|
|
3
|
+
const write = (node, prefix, out) => {
|
|
4
|
+
if (Array.isArray(node)) {
|
|
5
|
+
if (prefix) out[prefix] = node.map((item) => String(item)).join(",");
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
if (isMap(node)) {
|
|
9
|
+
for (const [key, value] of Object.entries(node)) write(value, prefix ? `${prefix}.${key}` : key, out);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (prefix) out[prefix] = String(node);
|
|
13
|
+
};
|
|
14
|
+
const flattenSettings = (text) => {
|
|
15
|
+
const parsed = parse(text);
|
|
16
|
+
const root = isMap(parsed) && isMap(parsed.settings) ? parsed.settings : parsed;
|
|
17
|
+
const out = {};
|
|
18
|
+
write(root, "", out);
|
|
19
|
+
return out;
|
|
20
|
+
};
|
|
21
|
+
const settingsFrom = (text) => ({
|
|
22
|
+
"backend.datasources": "sqlite",
|
|
23
|
+
"languages.typescript.casing.fields": "camel",
|
|
24
|
+
...text === void 0 ? {} : flattenSettings(text)
|
|
25
|
+
});
|
|
26
|
+
export {
|
|
27
|
+
flattenSettings,
|
|
28
|
+
settingsFrom
|
|
29
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { stripAttributes } from "@deterministic-code/generators-common/generate-entry";
|
|
3
|
+
const merge = (existing, entry) => {
|
|
4
|
+
if (entry.section !== void 0) {
|
|
5
|
+
const start = `// <${entry.section}>`;
|
|
6
|
+
const end = `// </${entry.section}>`;
|
|
7
|
+
const block = `${start}
|
|
8
|
+
${entry.content}
|
|
9
|
+
${end}
|
|
10
|
+
`;
|
|
11
|
+
const pattern = new RegExp(`${start}[\\s\\S]*?${end}\\n?`);
|
|
12
|
+
return pattern.test(existing) ? existing.replace(pattern, block) : `${existing}${block}`;
|
|
13
|
+
}
|
|
14
|
+
if (existing.includes(entry.content)) return existing;
|
|
15
|
+
if (entry.appendIfNotExists === "None") return existing;
|
|
16
|
+
if (entry.appendIfNotExists === "Start") return `${entry.content}${existing}`;
|
|
17
|
+
return `${existing}${entry.content}`;
|
|
18
|
+
};
|
|
19
|
+
const writeEntries = async (fs, root, entries) => {
|
|
20
|
+
const paths = [];
|
|
21
|
+
for (const entry of stripAttributes(entries)) {
|
|
22
|
+
const path = join(root, entry.filename);
|
|
23
|
+
if (entry.kind === "content") {
|
|
24
|
+
await fs.writeFile(path, entry.contents);
|
|
25
|
+
} else {
|
|
26
|
+
const existing = await fs.readFile(path).catch(() => "");
|
|
27
|
+
await fs.writeFile(path, merge(existing, entry));
|
|
28
|
+
}
|
|
29
|
+
paths.push(path);
|
|
30
|
+
}
|
|
31
|
+
return paths;
|
|
32
|
+
};
|
|
33
|
+
export {
|
|
34
|
+
writeEntries
|
|
35
|
+
};
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { catalog, providers } from "./catalog.js";
|
|
2
|
+
const npmProviders = (manifest) => {
|
|
3
|
+
const deps = { ...manifest.dependencies, ...manifest.devDependencies };
|
|
4
|
+
return providers.filter((name) => catalog[name].npm in deps);
|
|
5
|
+
};
|
|
6
|
+
const cargoProviders = (toml) => providers.filter((name) => hasCargoCrate(toml, catalog[name].cargo));
|
|
7
|
+
const csharpProviders = (csproj) => providers.filter((name) => hasCsharpPackage(csproj, catalog[name].nuget));
|
|
8
|
+
const hasCargoCrate = (toml, crate) => new RegExp(`(^|[\\s{,])${crate}\\s*=`, "m").test(toml) || new RegExp(`"${crate}"`).test(toml);
|
|
9
|
+
const hasCsharpPackage = (xml, id) => xml.includes(`"${id}"`) || xml.includes(`${id}.csproj`);
|
|
10
|
+
export {
|
|
11
|
+
cargoProviders,
|
|
12
|
+
csharpProviders,
|
|
13
|
+
npmProviders
|
|
14
|
+
};
|