create-relkit 0.7.4 → 0.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/create-capabilities.d.ts +24 -33
- package/dist/create-capabilities.d.ts.map +1 -1
- package/dist/create-capabilities.js +52 -9
- package/dist/create-capabilities.js.map +1 -1
- package/dist/create-capabilities.types.d.ts +55 -0
- package/dist/create-capabilities.types.d.ts.map +1 -0
- package/dist/create-capabilities.types.js +2 -0
- package/dist/create-capabilities.types.js.map +1 -0
- package/dist/domain-artifact.d.ts.map +1 -1
- package/dist/domain-artifact.js +11 -3
- package/dist/domain-artifact.js.map +1 -1
- package/dist/domain-planning.d.ts +5 -0
- package/dist/domain-planning.d.ts.map +1 -1
- package/dist/domain-planning.js +25 -16
- package/dist/domain-planning.js.map +1 -1
- package/dist/generate-deployment-manifest.d.ts +10 -0
- package/dist/generate-deployment-manifest.d.ts.map +1 -0
- package/dist/generate-deployment-manifest.js +56 -0
- package/dist/generate-deployment-manifest.js.map +1 -0
- package/dist/generate-deployment.d.ts +2 -3
- package/dist/generate-deployment.d.ts.map +1 -1
- package/dist/generate-deployment.js +6 -47
- package/dist/generate-deployment.js.map +1 -1
- package/dist/generate-examples.d.ts +11 -0
- package/dist/generate-examples.d.ts.map +1 -0
- package/dist/generate-examples.js +28 -0
- package/dist/generate-examples.js.map +1 -0
- package/dist/generate-files-utilities.d.ts +1 -8
- package/dist/generate-files-utilities.d.ts.map +1 -1
- package/dist/generate-files-utilities.js +5 -19
- package/dist/generate-files-utilities.js.map +1 -1
- package/dist/project-discovery-artifacts.d.ts +15 -0
- package/dist/project-discovery-artifacts.d.ts.map +1 -0
- package/dist/project-discovery-artifacts.js +107 -0
- package/dist/project-discovery-artifacts.js.map +1 -0
- package/dist/project-discovery-artifacts.types.d.ts +22 -0
- package/dist/project-discovery-artifacts.types.d.ts.map +1 -0
- package/dist/project-discovery-artifacts.types.js +2 -0
- package/dist/project-discovery-artifacts.types.js.map +1 -0
- package/dist/project-discovery-facts.d.ts +8 -9
- package/dist/project-discovery-facts.d.ts.map +1 -1
- package/dist/project-discovery-facts.js +29 -135
- package/dist/project-discovery-facts.js.map +1 -1
- package/dist/project-discovery-members.d.ts +16 -0
- package/dist/project-discovery-members.d.ts.map +1 -0
- package/dist/project-discovery-members.js +57 -0
- package/dist/project-discovery-members.js.map +1 -0
- package/dist/project-discovery-types.d.ts +8 -0
- package/dist/project-discovery-types.d.ts.map +1 -1
- package/dist/render-auth-database.d.ts +33 -0
- package/dist/render-auth-database.d.ts.map +1 -0
- package/dist/render-auth-database.js +69 -0
- package/dist/render-auth-database.js.map +1 -0
- package/dist/render-auth-sources.d.ts +8 -2
- package/dist/render-auth-sources.d.ts.map +1 -1
- package/dist/render-auth-sources.js +9 -3
- package/dist/render-auth-sources.js.map +1 -1
- package/dist/render-auth.d.ts +14 -11
- package/dist/render-auth.d.ts.map +1 -1
- package/dist/render-auth.js +41 -108
- package/dist/render-auth.js.map +1 -1
- package/dist/render-database-sources.d.ts +7 -1
- package/dist/render-database-sources.d.ts.map +1 -1
- package/dist/render-database-sources.js +3 -2
- package/dist/render-database-sources.js.map +1 -1
- package/dist/render-database.d.ts +7 -10
- package/dist/render-database.d.ts.map +1 -1
- package/dist/render-database.js +12 -4
- package/dist/render-database.js.map +1 -1
- package/dist/render-database.types.d.ts +15 -0
- package/dist/render-database.types.d.ts.map +1 -0
- package/dist/render-database.types.js +2 -0
- package/dist/render-database.types.js.map +1 -0
- package/dist/render-route-sources.d.ts +3 -1
- package/dist/render-route-sources.d.ts.map +1 -1
- package/dist/render-route-sources.js +4 -2
- package/dist/render-route-sources.js.map +1 -1
- package/dist/render-routes.d.ts +1 -0
- package/dist/render-routes.d.ts.map +1 -1
- package/dist/render-routes.js +2 -1
- package/dist/render-routes.js.map +1 -1
- package/dist/render-service-members.d.ts +32 -0
- package/dist/render-service-members.d.ts.map +1 -0
- package/dist/render-service-members.js +61 -0
- package/dist/render-service-members.js.map +1 -0
- package/dist/render-service-requests.d.ts +35 -0
- package/dist/render-service-requests.d.ts.map +1 -0
- package/dist/render-service-requests.js +62 -0
- package/dist/render-service-requests.js.map +1 -0
- package/dist/render-service-support.d.ts +37 -0
- package/dist/render-service-support.d.ts.map +1 -0
- package/dist/render-service-support.js +74 -0
- package/dist/render-service-support.js.map +1 -0
- package/dist/render-service.d.ts +16 -13
- package/dist/render-service.d.ts.map +1 -1
- package/dist/render-service.js +33 -149
- package/dist/render-service.js.map +1 -1
- package/dist/render-service.types.d.ts +13 -0
- package/dist/render-service.types.d.ts.map +1 -0
- package/dist/render-service.types.js +2 -0
- package/dist/render-service.types.js.map +1 -0
- package/dist/scaffold-layout.d.ts +10 -0
- package/dist/scaffold-layout.d.ts.map +1 -0
- package/dist/scaffold-layout.js +29 -0
- package/dist/scaffold-layout.js.map +1 -0
- package/dist/templates/default/README.md +1 -1
- package/dist/templates/default/v1/agent/.agents/skills/relkit/SKILL.md +48 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/agent-apis.md +59 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/cli.md +63 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/config-environments.md +96 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/data-apis.md +74 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/domain-apis.md +92 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/http-apis.md +70 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/jobs-apis.md +49 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/layout-migration.md +35 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/observability-apis.md +53 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/realtime-apis.md +98 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/streaming-apis.md +75 -0
- package/dist/templates/default/v1/agent/.agents/skills/relkit/references/testing-apis.md +71 -0
- package/dist/templates/default/v1/agent/README.md +9 -0
- package/dist/templates/default/v1/agent/package.json +4 -4
- package/dist/templates/default/v1/agent/src/routes/hello/route.ts +2 -1
- package/dist/templates/default/v1/agent/src/{hello → services/hello}/agents/assistant.agent.ts +2 -1
- package/dist/templates/default/v1/agent/src/{hello → services/hello}/agents/review.agent.ts +1 -0
- package/dist/templates/default/v1/agent/src/{hello → services/hello}/functions/hello.function.ts +7 -0
- package/dist/templates/default/v1/agent/src/services/hello/service.ts +5 -0
- package/dist/templates/default/v1/agent/src/{hello → services/hello}/tools/lookup.tool.ts +2 -1
- package/dist/templates/default/v1/agent/tests/fixtures/lookup.tool.ts +2 -1
- package/dist/templates/default/v1/agent/tests/fixtures/mcp-options.ts +2 -1
- package/dist/templates/default/v1/agent/tests/unit/assistant.agent.test.ts +3 -2
- package/dist/templates/default/v1/agent/tests/unit/hello.function.test.ts +2 -1
- package/dist/templates/default/v1/agent/tests/unit/lookup.tool.test.ts +2 -1
- package/dist/templates/default/v1/agent/tests/unit/review.agent.test.ts +2 -1
- package/dist/templates/default/v1/agent/tsconfig.json +1 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/SKILL.md +48 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/agent-apis.md +59 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/cli.md +63 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/config-environments.md +96 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/data-apis.md +74 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/domain-apis.md +92 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/http-apis.md +70 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/jobs-apis.md +49 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/layout-migration.md +35 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/observability-apis.md +53 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/realtime-apis.md +98 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/streaming-apis.md +75 -0
- package/dist/templates/default/v1/api/.agents/skills/relkit/references/testing-apis.md +71 -0
- package/dist/templates/default/v1/api/README.md +10 -0
- package/dist/templates/default/v1/api/package.json +3 -3
- package/dist/templates/default/v1/api/src/routes/echo/route.ts +2 -1
- package/dist/templates/default/v1/api/src/routes/hello/route.ts +2 -1
- package/dist/templates/default/v1/api/src/routes/orders/route.ts +2 -1
- package/dist/templates/default/v1/api/src/{echo → services/echo}/functions/echo.function.ts +1 -0
- package/dist/templates/default/v1/api/src/services/echo/service.ts +5 -0
- package/dist/templates/default/v1/api/src/{hello → services/hello}/functions/hello.function.ts +7 -0
- package/dist/templates/default/v1/api/src/services/hello/service.ts +5 -0
- package/dist/templates/default/v1/api/src/{orders → services/orders}/functions/create-order.function.ts +2 -1
- package/dist/templates/default/v1/api/src/{orders → services/orders}/functions/price-order.function.ts +1 -0
- package/dist/templates/default/v1/api/src/services/orders/service.ts +8 -0
- package/dist/templates/default/v1/api/tests/unit/echo.function.test.ts +2 -1
- package/dist/templates/default/v1/api/tests/unit/hello.function.test.ts +2 -1
- package/dist/templates/default/v1/api/tests/unit/orders.function.test.ts +2 -1
- package/dist/templates/default/v1/api/tsconfig.json +1 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/SKILL.md +48 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/agent-apis.md +59 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/cli.md +63 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/config-environments.md +96 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/data-apis.md +74 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/domain-apis.md +92 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/http-apis.md +70 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/jobs-apis.md +49 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/layout-migration.md +35 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/observability-apis.md +53 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/realtime-apis.md +98 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/streaming-apis.md +75 -0
- package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/testing-apis.md +71 -0
- package/dist/templates/default/v1/fullstack/README.md +9 -0
- package/dist/templates/default/v1/fullstack/package.json +5 -5
- package/dist/templates/default/v1/fullstack/src/routes/hello/route.ts +2 -1
- package/dist/templates/default/v1/fullstack/src/{hello → services/hello}/agents/assistant.agent.ts +2 -1
- package/dist/templates/default/v1/fullstack/src/{hello → services/hello}/agents/review.agent.ts +1 -0
- package/dist/templates/default/v1/fullstack/src/{hello → services/hello}/functions/hello.function.ts +1 -0
- package/dist/templates/default/v1/fullstack/src/services/hello/service.ts +5 -0
- package/dist/templates/default/v1/fullstack/src/{hello → services/hello}/tools/lookup.tool.ts +2 -1
- package/dist/templates/default/v1/fullstack/tests/unit/assistant.agent.test.ts +3 -2
- package/dist/templates/default/v1/fullstack/tests/unit/hello.function.test.ts +2 -1
- package/dist/templates/default/v1/fullstack/tests/unit/review.agent.test.ts +2 -1
- package/dist/templates/default/v1/fullstack/tsconfig.json +1 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/SKILL.md +48 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/agent-apis.md +59 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/cli.md +63 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/config-environments.md +96 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/data-apis.md +74 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/domain-apis.md +92 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/http-apis.md +70 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/jobs-apis.md +49 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/layout-migration.md +35 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/observability-apis.md +53 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/realtime-apis.md +98 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/streaming-apis.md +75 -0
- package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/testing-apis.md +71 -0
- package/dist/templates/default/v1/minimal/README.md +10 -0
- package/dist/templates/default/v1/minimal/package.json +3 -3
- package/dist/templates/default/v1/minimal/src/routes/hello/route.ts +2 -1
- package/dist/templates/default/v1/minimal/src/{hello → services/hello}/functions/hello.function.ts +7 -0
- package/dist/templates/default/v1/minimal/src/services/hello/service.ts +5 -0
- package/dist/templates/default/v1/minimal/tests/unit/hello.function.test.ts +2 -1
- package/dist/templates/default/v1/minimal/tsconfig.json +1 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/SKILL.md +48 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/agent-apis.md +59 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/cli.md +63 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/config-environments.md +96 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/data-apis.md +74 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/domain-apis.md +92 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/http-apis.md +70 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/jobs-apis.md +49 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/layout-migration.md +35 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/observability-apis.md +53 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/realtime-apis.md +98 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/streaming-apis.md +75 -0
- package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/testing-apis.md +71 -0
- package/dist/templates/default/v1/tasks/README.md +8 -1
- package/dist/templates/default/v1/tasks/package.json +3 -3
- package/dist/templates/default/v1/tasks/src/routes/health/route.ts +2 -1
- package/dist/templates/default/v1/tasks/src/{orders → services/orders}/functions/health.function.ts +1 -0
- package/dist/templates/default/v1/tasks/src/{orders → services/orders}/jobs/export-orders.job.ts +2 -1
- package/dist/templates/default/v1/tasks/src/services/orders/service.ts +11 -0
- package/dist/templates/default/v1/tasks/src/{orders → services/orders}/tasks/export-orders.task.ts +1 -0
- package/dist/templates/default/v1/tasks/tests/unit/export-orders.task.test.ts +2 -1
- package/dist/templates/default/v1/tasks/tsconfig.json +2 -0
- package/package.json +3 -3
- package/dist/templates/default/v1/agent/src/hello/service.ts +0 -4
- package/dist/templates/default/v1/api/src/echo/service.ts +0 -4
- package/dist/templates/default/v1/api/src/hello/service.ts +0 -4
- package/dist/templates/default/v1/api/src/orders/service.ts +0 -7
- package/dist/templates/default/v1/fullstack/src/hello/service.ts +0 -4
- package/dist/templates/default/v1/minimal/src/hello/service.ts +0 -4
- package/dist/templates/default/v1/tasks/src/orders/service.ts +0 -10
|
@@ -1,147 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assembles declaration-only application discovery after compiler layout validation.
|
|
3
|
+
* The result keeps native specialized service metadata, actual boundaries and
|
|
4
|
+
* provider declarations; no user module or live client is imported.
|
|
5
|
+
*/
|
|
1
6
|
import { join } from "node:path";
|
|
2
|
-
import {
|
|
7
|
+
import { discoverApplicationLayout } from "@relkit/compiler";
|
|
3
8
|
import * as ts from "typescript";
|
|
4
9
|
import { readAppDiscovery } from "./project-discovery-app.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
10
|
+
import { collectProjectArtifacts } from "./project-discovery-artifacts.js";
|
|
11
|
+
import { ADD_FAILURE_CODES, AddScaffoldError } from "./add-types.js";
|
|
7
12
|
/**
|
|
8
|
-
* Converts
|
|
9
|
-
* @param root - Absolute
|
|
10
|
-
* @param appSource -
|
|
11
|
-
* @param modules -
|
|
12
|
-
* @returns
|
|
13
|
+
* Converts authored syntax into layout-aware scaffold discovery records.
|
|
14
|
+
* @param root - Absolute application root.
|
|
15
|
+
* @param appSource - Unevaluated configuration source.
|
|
16
|
+
* @param modules - Complete sorted authored TypeScript source collection.
|
|
17
|
+
* @returns Immutable service, artifact, provider and layout interpretation.
|
|
18
|
+
* @throws AddScaffoldError when mixed/invalid service roots make mutation unsafe.
|
|
13
19
|
*/
|
|
14
20
|
export function discoveryFacts(root, appSource, modules) {
|
|
21
|
+
const layout = discoverApplicationLayout(modules, root);
|
|
22
|
+
if (layout.issues.length)
|
|
23
|
+
throw new AddScaffoldError(ADD_FAILURE_CODES.invalidProject, layout.issues.map((issue) => `${issue.file}: ${issue.message}`).join("\n"));
|
|
15
24
|
const appPath = join(root, "relkit.config.ts");
|
|
16
|
-
const
|
|
17
|
-
const sourceByPath = new Map(modules.map((module) => [module.fileName, module.text]));
|
|
18
|
-
const services = [];
|
|
19
|
-
const artifacts = [];
|
|
20
|
-
for (const candidate of candidates) {
|
|
21
|
-
const domain = sourceDomain(candidate.fileName);
|
|
22
|
-
const source = sourceByPath.get(candidate.fileName);
|
|
23
|
-
// Compiler candidates are drawn only from the exact source module collection above.
|
|
24
|
-
if (source === undefined)
|
|
25
|
-
throw new Error("Compiler returned an unknown source module.");
|
|
26
|
-
for (const factory of candidate.facts.factoryBindings) {
|
|
27
|
-
const binding = factory.binding ?? fileBinding(candidate.fileName);
|
|
28
|
-
const exportedEntry = [...candidate.facts.exports.entries()].find(([, entry]) => entry.binding === factory.binding || entry.factory === factory);
|
|
29
|
-
const id = factory.id === "explicit"
|
|
30
|
-
? readFactoryStringProperty(source, candidate.fileName, factory.factory, "id", factory.factory === "definePrompt" || factory.factory === "defineConstants" ? 1 : 0)
|
|
31
|
-
: undefined;
|
|
32
|
-
artifacts.push({
|
|
33
|
-
kind: factory.kind,
|
|
34
|
-
path: candidate.fileName,
|
|
35
|
-
binding,
|
|
36
|
-
...(domain === undefined ? {} : { domain }),
|
|
37
|
-
...(id === undefined ? {} : { id }),
|
|
38
|
-
factory: factory.factory,
|
|
39
|
-
exported: exportedEntry !== undefined,
|
|
40
|
-
...(exportedEntry === undefined
|
|
41
|
-
? {}
|
|
42
|
-
: {
|
|
43
|
-
exportKind: exportedEntry[0] === "default" ? "default" : "named",
|
|
44
|
-
}),
|
|
45
|
-
options: factory.options,
|
|
46
|
-
});
|
|
47
|
-
if (factory.kind !== "service" || domain === undefined)
|
|
48
|
-
continue;
|
|
49
|
-
const database = factory.factory === "defineDrizzleService"
|
|
50
|
-
? discoverDatabaseDetails(modules, candidate.fileName, source)
|
|
51
|
-
: undefined;
|
|
52
|
-
services.push({
|
|
53
|
-
domain,
|
|
54
|
-
path: candidate.fileName,
|
|
55
|
-
binding,
|
|
56
|
-
capability: factory.factory === "defineDrizzleService"
|
|
57
|
-
? "database"
|
|
58
|
-
: factory.factory === "defineBetterAuthService"
|
|
59
|
-
? "auth"
|
|
60
|
-
: "generic",
|
|
61
|
-
...(database ?? {}),
|
|
62
|
-
members: serviceMembers(candidate.facts.serviceMembers.filter((member) => member.service === factory.binding), source, candidate.fileName, factory.factory),
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
}
|
|
25
|
+
const { services, artifacts } = collectProjectArtifacts(root, modules);
|
|
66
26
|
const app = readAppDiscovery(appSource, appPath, root);
|
|
67
27
|
return Object.freeze({
|
|
68
28
|
projectRoot: root,
|
|
29
|
+
layout,
|
|
69
30
|
packagePath: join(root, "package.json"),
|
|
70
31
|
appPath,
|
|
71
32
|
appFactory: app.factory,
|
|
72
33
|
...(app.envPath === undefined ? {} : { envPath: app.envPath }),
|
|
73
34
|
services: Object.freeze([...new Map(services.map((service) => [service.path, service])).values()].sort(byPath)),
|
|
74
|
-
artifacts: Object.freeze(artifacts.sort(byPath)),
|
|
35
|
+
artifacts: Object.freeze([...artifacts].sort(byPath)),
|
|
75
36
|
profiles: Object.freeze(app.profiles),
|
|
76
37
|
awsPulumiDeployment: importsPackage(appSource, appPath, "@relkit/aws") &&
|
|
77
38
|
importsPackage(appSource, appPath, "@relkit/pulumi"),
|
|
78
39
|
});
|
|
79
40
|
}
|
|
80
41
|
/**
|
|
81
|
-
*
|
|
82
|
-
* @param
|
|
83
|
-
* @param
|
|
84
|
-
* @param
|
|
85
|
-
* @
|
|
86
|
-
* @returns Declared public member bindings.
|
|
87
|
-
*/
|
|
88
|
-
function serviceMembers(facts, source, path, factory) {
|
|
89
|
-
if (facts.length > 0)
|
|
90
|
-
return facts.map((member) => ({
|
|
91
|
-
name: member.member,
|
|
92
|
-
...(member.targetBinding === undefined ? {} : { targetBinding: member.targetBinding }),
|
|
93
|
-
}));
|
|
94
|
-
const root = readFactoryObject(source, path, [factory]);
|
|
95
|
-
return ["functions", "events", "tasks", "jobs"].flatMap((category) => {
|
|
96
|
-
const item = root.properties.find((item) => staticPropertyName(item.name) === category);
|
|
97
|
-
if (!item || !ts.isPropertyAssignment(item))
|
|
98
|
-
return [];
|
|
99
|
-
const value = unwrap(item.initializer);
|
|
100
|
-
if (!value || !ts.isObjectLiteralExpression(value))
|
|
101
|
-
return [];
|
|
102
|
-
return value.properties.flatMap((member) => {
|
|
103
|
-
const name = staticPropertyName(member.name);
|
|
104
|
-
if (name === undefined)
|
|
105
|
-
return [];
|
|
106
|
-
const targetBinding = ts.isShorthandPropertyAssignment(member)
|
|
107
|
-
? member.name.text
|
|
108
|
-
: ts.isPropertyAssignment(member) && ts.isIdentifier(member.initializer)
|
|
109
|
-
? member.initializer.text
|
|
110
|
-
: undefined;
|
|
111
|
-
return [{ name, ...(targetBinding === undefined ? {} : { targetBinding }) }];
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Removes parentheses and TypeScript assertions from a source expression.
|
|
117
|
-
* @param value - AST expression whose static wrapper nodes are ignored.
|
|
118
|
-
* @returns The underlying expression, or undefined when no expression was supplied.
|
|
119
|
-
*/
|
|
120
|
-
function unwrap(value) {
|
|
121
|
-
return value &&
|
|
122
|
-
(ts.isAsExpression(value) ||
|
|
123
|
-
ts.isSatisfiesExpression(value) ||
|
|
124
|
-
ts.isParenthesizedExpression(value))
|
|
125
|
-
? unwrap(value.expression)
|
|
126
|
-
: value;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Extracts a canonical domain from a source-relative path.
|
|
130
|
-
* @param path - Path inside the current project or owned resource.
|
|
131
|
-
* @returns The owning src domain, excluding routes/platform, or undefined outside a domain.
|
|
132
|
-
*/
|
|
133
|
-
function sourceDomain(path) {
|
|
134
|
-
const [src, domain] = path.replaceAll("\\", "/").split("/");
|
|
135
|
-
return src === "src" && domain && domain !== "routes" && domain !== "platform"
|
|
136
|
-
? domain
|
|
137
|
-
: undefined;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Checks declaration-only imports for deployment ownership.
|
|
141
|
-
* @param source - Authored source text inspected or transformed without execution.
|
|
142
|
-
* @param path - Path inside the current project or owned resource.
|
|
143
|
-
* @param packageName - Dependency name matched in static source imports.
|
|
144
|
-
* @returns Whether source contains a static import for the named package.
|
|
42
|
+
* Checks explicit declaration imports used to recognize configured deployment roles.
|
|
43
|
+
* @param source - Unevaluated configuration module.
|
|
44
|
+
* @param path - Physical source filename used by TypeScript syntax parsing.
|
|
45
|
+
* @param packageName - Exact supported integration package to detect.
|
|
46
|
+
* @returns Whether the module contains its explicit static import.
|
|
145
47
|
*/
|
|
146
48
|
function importsPackage(source, path, packageName) {
|
|
147
49
|
return ts
|
|
@@ -151,18 +53,10 @@ function importsPackage(source, path, packageName) {
|
|
|
151
53
|
statement.moduleSpecifier.text === packageName);
|
|
152
54
|
}
|
|
153
55
|
/**
|
|
154
|
-
*
|
|
155
|
-
* @param
|
|
156
|
-
* @
|
|
157
|
-
|
|
158
|
-
function fileBinding(path) {
|
|
159
|
-
return (path.split("/").at(-1)?.split(".")[0] ?? "artifact").replace(/-([a-z0-9])/g, (_, value) => value.toUpperCase());
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Orders pure discovery facts by canonical source path.
|
|
163
|
-
* @param left - First value in deterministic comparison.
|
|
164
|
-
* @param right - Second value in deterministic comparison.
|
|
165
|
-
* @returns Negative, zero or positive ordering of source paths.
|
|
56
|
+
* Orders static records by their real portable source filenames.
|
|
57
|
+
* @param left - First record.
|
|
58
|
+
* @param right - Second record.
|
|
59
|
+
* @returns Stable path ordering without changing logical IDs.
|
|
166
60
|
*/
|
|
167
61
|
function byPath(left, right) {
|
|
168
62
|
return left.path.localeCompare(right.path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-discovery-facts.js","sourceRoot":"","sources":["../src/project-discovery-facts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"project-discovery-facts.js","sourceRoot":"","sources":["../src/project-discovery-facts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts callable/event/task/job member names from a service declaration.
|
|
3
|
+
* @param facts - Compiler-recognized member bindings, when available.
|
|
4
|
+
* @param source - Complete owning module source text.
|
|
5
|
+
* @param path - Physical module path supplying source coordinates.
|
|
6
|
+
* @param factory - Recognized service factory name.
|
|
7
|
+
* @returns Static member names and their optional identifiable target bindings.
|
|
8
|
+
*/
|
|
9
|
+
export declare function serviceMembers(facts: readonly {
|
|
10
|
+
readonly member: string;
|
|
11
|
+
readonly targetBinding?: string;
|
|
12
|
+
}[], source: string, path: string, factory: string): {
|
|
13
|
+
targetBinding?: string;
|
|
14
|
+
name: string;
|
|
15
|
+
}[];
|
|
16
|
+
//# sourceMappingURL=project-discovery-members.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-discovery-members.d.ts","sourceRoot":"","sources":["../src/project-discovery-members.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAC9E,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM;;;IAuBhB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reads public service member bindings from compiler facts or a compatible
|
|
3
|
+
* TypeScript object declaration. This pure syntax adapter never evaluates member
|
|
4
|
+
* expressions or creates a runtime service; ownership is resolved separately.
|
|
5
|
+
*/
|
|
6
|
+
import * as ts from "typescript";
|
|
7
|
+
import { readFactoryObject, staticPropertyName } from "./source-edit.js";
|
|
8
|
+
/**
|
|
9
|
+
* Extracts callable/event/task/job member names from a service declaration.
|
|
10
|
+
* @param facts - Compiler-recognized member bindings, when available.
|
|
11
|
+
* @param source - Complete owning module source text.
|
|
12
|
+
* @param path - Physical module path supplying source coordinates.
|
|
13
|
+
* @param factory - Recognized service factory name.
|
|
14
|
+
* @returns Static member names and their optional identifiable target bindings.
|
|
15
|
+
*/
|
|
16
|
+
export function serviceMembers(facts, source, path, factory) {
|
|
17
|
+
if (facts.length > 0)
|
|
18
|
+
return facts.map((member) => ({
|
|
19
|
+
name: member.member,
|
|
20
|
+
...(member.targetBinding === undefined ? {} : { targetBinding: member.targetBinding }),
|
|
21
|
+
}));
|
|
22
|
+
const root = readFactoryObject(source, path, [factory]);
|
|
23
|
+
return ["functions", "events", "tasks", "jobs"].flatMap((category) => {
|
|
24
|
+
const item = root.properties.find((item) => staticPropertyName(item.name) === category);
|
|
25
|
+
if (!item || !ts.isPropertyAssignment(item))
|
|
26
|
+
return [];
|
|
27
|
+
const value = unwrap(item.initializer);
|
|
28
|
+
if (!value || !ts.isObjectLiteralExpression(value))
|
|
29
|
+
return [];
|
|
30
|
+
return value.properties.flatMap((member) => {
|
|
31
|
+
const name = staticPropertyName(member.name);
|
|
32
|
+
if (name === undefined)
|
|
33
|
+
return [];
|
|
34
|
+
let targetBinding;
|
|
35
|
+
if (ts.isShorthandPropertyAssignment(member))
|
|
36
|
+
targetBinding = member.name.text;
|
|
37
|
+
else if (ts.isPropertyAssignment(member) && ts.isIdentifier(member.initializer))
|
|
38
|
+
targetBinding = member.initializer.text;
|
|
39
|
+
return [{ name, ...(targetBinding === undefined ? {} : { targetBinding }) }];
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Removes syntax-only wrappers while leaving expressions unevaluated.
|
|
45
|
+
* @param value - Optional source expression wrapped by assertions or parentheses.
|
|
46
|
+
* @returns Underlying expression, or absence when no expression was supplied.
|
|
47
|
+
*/
|
|
48
|
+
function unwrap(value) {
|
|
49
|
+
if (!value)
|
|
50
|
+
return undefined;
|
|
51
|
+
if (ts.isAsExpression(value) ||
|
|
52
|
+
ts.isSatisfiesExpression(value) ||
|
|
53
|
+
ts.isParenthesizedExpression(value))
|
|
54
|
+
return unwrap(value.expression);
|
|
55
|
+
return value;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=project-discovery-members.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-discovery-members.js","sourceRoot":"","sources":["../src/project-discovery-members.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEzE;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,KAA8E,EAC9E,MAAc,EACd,IAAY,EACZ,OAAe;IAEf,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAClB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC5B,IAAI,EAAE,MAAM,CAAC,MAAM;YACnB,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;SACvF,CAAC,CAAC,CAAC;IACN,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC;QACxF,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzC,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC;YAClC,IAAI,aAAiC,CAAC;YACtC,IAAI,EAAE,CAAC,6BAA6B,CAAC,MAAM,CAAC;gBAAE,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC1E,IAAI,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC7E,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;YAC1C,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,MAAM,CAAC,KAAgC;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IACE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;QACxB,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC;QAC/B,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC;QAEnC,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines immutable declaration-only scaffold discovery records. Compiler syntax
|
|
3
|
+
* supplies layout/ownership; renderers preserve logical identities and provider
|
|
4
|
+
* declarations while creating sources at their selected physical boundaries.
|
|
5
|
+
*/
|
|
1
6
|
import type { SourceFactoryKind } from "@relkit/compiler";
|
|
7
|
+
import type { ApplicationLayout } from "@relkit/contracts";
|
|
2
8
|
import type { DatabaseDialect } from "./add-types.js";
|
|
3
9
|
/**
|
|
4
10
|
* Statically discovered service member name and referenced binding.
|
|
@@ -47,6 +53,8 @@ export interface DiscoveredProfile {
|
|
|
47
53
|
* Deterministic source-only app, provider, service and artifact facts for one project.
|
|
48
54
|
*/
|
|
49
55
|
export interface ProjectDiscovery {
|
|
56
|
+
/** Present on compiler-backed discovery; older supplied planning fixtures may omit it. */
|
|
57
|
+
readonly layout?: ApplicationLayout;
|
|
50
58
|
readonly projectRoot: string;
|
|
51
59
|
readonly packagePath: string;
|
|
52
60
|
readonly appPath: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-discovery-types.d.ts","sourceRoot":"","sources":["../src/project-discovery-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,uBAAuB,EAAE,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,WAAW,GAAG,cAAc,CAAC;IAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;CACvC"}
|
|
1
|
+
{"version":3,"file":"project-discovery-types.d.ts","sourceRoot":"","sources":["../src/project-discovery-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,uBAAuB,EAAE,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,WAAW,GAAG,cAAc,CAAC;IAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;CACvC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validates an existing native database and adds Better Auth schema declarations
|
|
3
|
+
* without changing its owner or dialect. Generator filesystem authority inspects
|
|
4
|
+
* collisions; no client activation, migration, seed or credential edit occurs here.
|
|
5
|
+
*/
|
|
6
|
+
import { Effect } from "effect";
|
|
7
|
+
import { GeneratorFileSystem } from "./generator-filesystem.js";
|
|
8
|
+
import type { PlanBuilder } from "./plan-builder.js";
|
|
9
|
+
import type { DiscoveredService } from "./project-discovery-types.js";
|
|
10
|
+
import type { RenderedDatabase } from "./render-database.types.js";
|
|
11
|
+
/**
|
|
12
|
+
* Plans native auth tables and their export after checking existing schema collisions.
|
|
13
|
+
* @param builder - Per-request transaction planning owner.
|
|
14
|
+
* @param database - Existing native database's matching dialect and schema paths.
|
|
15
|
+
* @returns Lazy planned schema edits with typed filesystem/scaffold failures.
|
|
16
|
+
*/
|
|
17
|
+
export declare const addAuthSchemaEffect: (builder: PlanBuilder, database: RenderedDatabase) => Effect.Effect<void, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, GeneratorFileSystem>;
|
|
18
|
+
/**
|
|
19
|
+
* Checks discovered schema/dialect compatibility before planning native auth tables.
|
|
20
|
+
* @param service - Sole discovered native Drizzle service.
|
|
21
|
+
* @param requested - Supported dialect requested by the auth scaffold.
|
|
22
|
+
* @returns The existing service and schema paths with their validated dialect.
|
|
23
|
+
* @throws AddScaffoldError for ambiguous schema metadata or a different native dialect.
|
|
24
|
+
*/
|
|
25
|
+
export declare function existingDatabase(service: DiscoveredService, requested: RenderedDatabase["dialect"]): RenderedDatabase;
|
|
26
|
+
/**
|
|
27
|
+
* Requires a supported non-root static URL for the sole native auth mount.
|
|
28
|
+
* @param value - Requested auth base URL path.
|
|
29
|
+
* @returns Nothing when the mount can be represented by the existing route API.
|
|
30
|
+
* @throws AddScaffoldError when path parameters or a root mount make it unsupported.
|
|
31
|
+
*/
|
|
32
|
+
export declare function validateAuthBasePath(value: string): void;
|
|
33
|
+
//# sourceMappingURL=render-auth-database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-auth-database.d.ts","sourceRoot":"","sources":["../src/render-auth-database.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAKhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAInE;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,yMAU/B,CAAC;AA4BF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC,GACrC,gBAAgB,CAYlB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAIxD"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validates an existing native database and adds Better Auth schema declarations
|
|
3
|
+
* without changing its owner or dialect. Generator filesystem authority inspects
|
|
4
|
+
* collisions; no client activation, migration, seed or credential edit occurs here.
|
|
5
|
+
*/
|
|
6
|
+
import { Effect } from "effect";
|
|
7
|
+
import { dirname, posix } from "node:path";
|
|
8
|
+
import { observeExecution } from "@relkit/contracts/operation";
|
|
9
|
+
import { GeneratorFileSystem } from "./generator-filesystem.js";
|
|
10
|
+
import { scaffoldErrors, domainError } from "./generator-errors.js";
|
|
11
|
+
import { ADD_FAILURE_CODES, AddScaffoldError } from "./add-types.js";
|
|
12
|
+
import { authSchemaSource } from "./render-auth-schema.js";
|
|
13
|
+
import { addSourceExport } from "./source-edit.js";
|
|
14
|
+
const AUTH_TABLES = ["user", "session", "account", "verification"];
|
|
15
|
+
/**
|
|
16
|
+
* Plans native auth tables and their export after checking existing schema collisions.
|
|
17
|
+
* @param builder - Per-request transaction planning owner.
|
|
18
|
+
* @param database - Existing native database's matching dialect and schema paths.
|
|
19
|
+
* @returns Lazy planned schema edits with typed filesystem/scaffold failures.
|
|
20
|
+
*/
|
|
21
|
+
export const addAuthSchemaEffect = Effect.fn("Scaffold.addAuthSchema")(function* (builder, database) {
|
|
22
|
+
const directory = dirname(database.schemaPath).replaceAll("\\", "/");
|
|
23
|
+
yield* assertNoAuthTablesEffect(builder.discovery.projectRoot, directory);
|
|
24
|
+
yield* builder.createEffect(`${directory}/auth.ts`, authSchemaSource(database.dialect));
|
|
25
|
+
yield* builder.updateEffect(database.schemaPath, (source) => addSourceExport(source, database.schemaPath, 'export * from "./auth.js";'));
|
|
26
|
+
}, (effect) => observeExecution("generator", "planning.addAuthSchema", scaffoldErrors(effect)));
|
|
27
|
+
/**
|
|
28
|
+
* Stops at the first deterministic schema collision before planning any auth edits.
|
|
29
|
+
* @param root - Canonical application root.
|
|
30
|
+
* @param directory - Existing database's physical schema directory.
|
|
31
|
+
* @returns Lazy validation with GeneratorFileSystem required and typed collision failures.
|
|
32
|
+
*/
|
|
33
|
+
const assertNoAuthTablesEffect = Effect.fn("Scaffold.assertNoAuthTables")(function* (root, directory) {
|
|
34
|
+
const fs = yield* GeneratorFileSystem;
|
|
35
|
+
const files = yield* fs.glob(posix.join(root, directory), "**/*.ts");
|
|
36
|
+
// Preserve first-collision order and avoid reading later modules after a rejection.
|
|
37
|
+
for (const file of files) {
|
|
38
|
+
const source = yield* fs.readText(posix.join(root, directory, file));
|
|
39
|
+
if (AUTH_TABLES.some((name) => new RegExp(`\\bexport\\s+const\\s+${name}\\b`).test(source))) {
|
|
40
|
+
return yield* domainError(new AddScaffoldError(ADD_FAILURE_CODES.collision, `The database schema already exports Better Auth table names (${file}).`));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}, (effect) => observeExecution("generator", "planning.assertNoAuthTables", scaffoldErrors(effect)));
|
|
44
|
+
/**
|
|
45
|
+
* Checks discovered schema/dialect compatibility before planning native auth tables.
|
|
46
|
+
* @param service - Sole discovered native Drizzle service.
|
|
47
|
+
* @param requested - Supported dialect requested by the auth scaffold.
|
|
48
|
+
* @returns The existing service and schema paths with their validated dialect.
|
|
49
|
+
* @throws AddScaffoldError for ambiguous schema metadata or a different native dialect.
|
|
50
|
+
*/
|
|
51
|
+
export function existingDatabase(service, requested) {
|
|
52
|
+
if (!service.dialect || !service.schemaPath)
|
|
53
|
+
throw new AddScaffoldError(ADD_FAILURE_CODES.unsupportedSourceShape, "The existing database service has no statically discoverable dialect or schema import.");
|
|
54
|
+
if (service.dialect !== requested)
|
|
55
|
+
throw new AddScaffoldError(ADD_FAILURE_CODES.collision, `The existing database uses ${service.dialect}, not ${requested}.`);
|
|
56
|
+
return { dialect: service.dialect, servicePath: service.path, schemaPath: service.schemaPath };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Requires a supported non-root static URL for the sole native auth mount.
|
|
60
|
+
* @param value - Requested auth base URL path.
|
|
61
|
+
* @returns Nothing when the mount can be represented by the existing route API.
|
|
62
|
+
* @throws AddScaffoldError when path parameters or a root mount make it unsupported.
|
|
63
|
+
*/
|
|
64
|
+
export function validateAuthBasePath(value) {
|
|
65
|
+
if (!/^\/(?:[A-Za-z0-9._~-]+(?:\/[A-Za-z0-9._~-]+)*)?$/.test(value) || value === "/") {
|
|
66
|
+
throw new AddScaffoldError(ADD_FAILURE_CODES.usage, `Invalid auth base path: ${value}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=render-auth-database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-auth-database.js","sourceRoot":"","sources":["../src/render-auth-database.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Renders
|
|
2
|
+
* Renders native Better Auth declarations and the sole raw route mount. Layout
|
|
3
|
+
* planning supplies the physical service path; source rendering performs no live
|
|
4
|
+
* auth initialization and preserves borrowing of the native database owner.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Renders the native authentication service without executing user modules.
|
|
3
8
|
* @returns TypeScript declaring an email/password Better Auth service with a local URL fallback.
|
|
4
9
|
*/
|
|
5
10
|
export declare function authServiceSource(): string;
|
|
6
11
|
/**
|
|
7
12
|
* Renders auth Route Source as source text without executing user modules.
|
|
13
|
+
* @param servicePath - Selected grouped or compatible flat auth boundary.
|
|
8
14
|
* @returns TypeScript exporting the auth handler as an ALL route.
|
|
9
15
|
*/
|
|
10
|
-
export declare function authRouteSource(): string;
|
|
16
|
+
export declare function authRouteSource(servicePath: string): string;
|
|
11
17
|
//# sourceMappingURL=render-auth-sources.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-auth-sources.d.ts","sourceRoot":"","sources":["../src/render-auth-sources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAED
|
|
1
|
+
{"version":3,"file":"render-auth-sources.d.ts","sourceRoot":"","sources":["../src/render-auth-sources.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAM3D"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Renders
|
|
2
|
+
* Renders native Better Auth declarations and the sole raw route mount. Layout
|
|
3
|
+
* planning supplies the physical service path; source rendering performs no live
|
|
4
|
+
* auth initialization and preserves borrowing of the native database owner.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Renders the native authentication service without executing user modules.
|
|
3
8
|
* @returns TypeScript declaring an email/password Better Auth service with a local URL fallback.
|
|
4
9
|
*/
|
|
5
10
|
export function authServiceSource() {
|
|
@@ -13,11 +18,12 @@ export default defineBetterAuthService({
|
|
|
13
18
|
}
|
|
14
19
|
/**
|
|
15
20
|
* Renders auth Route Source as source text without executing user modules.
|
|
21
|
+
* @param servicePath - Selected grouped or compatible flat auth boundary.
|
|
16
22
|
* @returns TypeScript exporting the auth handler as an ALL route.
|
|
17
23
|
*/
|
|
18
|
-
export function authRouteSource() {
|
|
24
|
+
export function authRouteSource(servicePath) {
|
|
19
25
|
return `import { defineRoute } from "@relkit/app/routes";
|
|
20
|
-
import auth from "@app
|
|
26
|
+
import auth from "@app/${servicePath.replace(/^src\//, "").replace(/\.ts$/, ".js")}";
|
|
21
27
|
|
|
22
28
|
export const ALL = defineRoute({ handler: auth.handler });
|
|
23
29
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-auth-sources.js","sourceRoot":"","sources":["../src/render-auth-sources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;;;;;;CAMR,CAAC;AACF,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"render-auth-sources.js","sourceRoot":"","sources":["../src/render-auth-sources.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO;;;;;;CAMR,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO;yBACgB,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;;;CAGjF,CAAC;AACF,CAAC"}
|
package/dist/render-auth.d.ts
CHANGED
|
@@ -1,25 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plans the sole native Better Auth service and route at the compiler-selected
|
|
3
|
+
* layout. Existing databases retain their owner/schema/dialect; the transaction
|
|
4
|
+
* owns source publication and no live client, migration or secret is created here.
|
|
5
|
+
*/
|
|
1
6
|
import { Effect } from "effect";
|
|
2
|
-
import { GeneratorFileSystem } from "./generator-filesystem.js";
|
|
3
|
-
import { type GeneratorDomainError, type GeneratorIoError } from "./generator-errors.js";
|
|
4
7
|
import { type AddRequest } from "./add-types.js";
|
|
5
|
-
import { PlanBuilder } from "./plan-builder.js";
|
|
8
|
+
import type { PlanBuilder } from "./plan-builder.js";
|
|
6
9
|
/**
|
|
7
|
-
* Plans auth
|
|
8
|
-
* @param builder - Per-request planning owner.
|
|
9
|
-
* @param request -
|
|
10
|
-
* @returns
|
|
10
|
+
* Plans native auth/database composition and one raw catch-all mount.
|
|
11
|
+
* @param builder - Per-request planning owner with declaration-only discovery.
|
|
12
|
+
* @param request - Native dialect and static auth mount configuration.
|
|
13
|
+
* @returns Lazy completion with typed scaffold/filesystem failures; no resource activation.
|
|
11
14
|
*/
|
|
12
15
|
export declare const renderAuthEffect: (builder: PlanBuilder, request: import("./add-types.js").AddRequestBase & {
|
|
13
16
|
readonly kind: "auth";
|
|
14
17
|
readonly adapter: "better-auth";
|
|
15
18
|
readonly databaseDialect: import("./add-types.js").DatabaseDialect;
|
|
16
19
|
readonly basePath: string;
|
|
17
|
-
}) => Effect.Effect<
|
|
20
|
+
}) => Effect.Effect<undefined, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, import("./generator-filesystem.js").GeneratorFileSystem>;
|
|
18
21
|
/**
|
|
19
|
-
*
|
|
22
|
+
* Runs the existing Promise compatibility boundary after all source planning settles.
|
|
20
23
|
* @param builder - Per-request planning owner.
|
|
21
|
-
* @param request -
|
|
22
|
-
* @returns
|
|
24
|
+
* @param request - Complete native authentication scaffold request.
|
|
25
|
+
* @returns After planning, rejecting the preserved native scaffold error constructor.
|
|
23
26
|
*/
|
|
24
27
|
export declare function renderAuth(builder: PlanBuilder, request: Extract<AddRequest, {
|
|
25
28
|
kind: "auth";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-auth.d.ts","sourceRoot":"","sources":["../src/render-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"render-auth.d.ts","sourceRoot":"","sources":["../src/render-auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,OAAO,EAAuC,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAYrD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;gMA2C5B,CAAC;AA0BF;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC,CAEf"}
|