@happyvertical/smrt-core 0.46.0 → 0.47.0
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/AGENTS.md +38 -0
- package/dist/decorators/compatibility.d.ts +46 -0
- package/dist/decorators/compatibility.d.ts.map +1 -1
- package/dist/decorators/compatibility.js +48 -5
- package/dist/decorators/compatibility.js.map +1 -1
- package/dist/decorators/index.d.ts +119 -1
- package/dist/decorators/index.d.ts.map +1 -1
- package/dist/decorators/index.js +52 -8
- package/dist/decorators/index.js.map +1 -1
- package/dist/generators/custom-action.d.ts +379 -2
- package/dist/generators/custom-action.d.ts.map +1 -1
- package/dist/generators/custom-action.js +694 -17
- package/dist/generators/custom-action.js.map +1 -1
- package/dist/generators/index.d.ts +1 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +2 -2
- package/dist/generators/preflight-route.d.ts +12 -10
- package/dist/generators/preflight-route.d.ts.map +1 -1
- package/dist/generators/preflight-route.js +46 -14
- package/dist/generators/preflight-route.js.map +1 -1
- package/dist/generators/rest.d.ts +44 -0
- package/dist/generators/rest.d.ts.map +1 -1
- package/dist/generators/rest.js +84 -9
- package/dist/generators/rest.js.map +1 -1
- package/dist/generators.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/knowledge.d.ts.map +1 -1
- package/dist/knowledge.js +59 -15
- package/dist/knowledge.js.map +1 -1
- package/dist/manifest/static-manifest.d.ts.map +1 -1
- package/dist/manifest/static-manifest.js +125 -53
- package/dist/manifest/static-manifest.js.map +1 -1
- package/dist/manifest/store.js +1 -1
- package/dist/manifest/store.js.map +1 -1
- package/dist/manifest.json +184 -53
- package/dist/postgres-permissions.d.ts +6 -1
- package/dist/postgres-permissions.d.ts.map +1 -1
- package/dist/postgres-permissions.js +78 -7
- package/dist/postgres-permissions.js.map +1 -1
- package/dist/registry/index.d.ts +1 -1
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/shared-state.d.ts +19 -0
- package/dist/registry/shared-state.d.ts.map +1 -1
- package/dist/registry/shared-state.js +16 -1
- package/dist/registry/shared-state.js.map +1 -1
- package/dist/registry.d.ts +136 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +231 -1
- package/dist/registry.js.map +1 -1
- package/dist/scanner/manifest-generator.d.ts.map +1 -1
- package/dist/scanner/manifest-generator.js +18 -16
- package/dist/scanner/manifest-generator.js.map +1 -1
- package/dist/scanner/types.d.ts +59 -6
- package/dist/scanner/types.d.ts.map +1 -1
- package/dist/scanner/types.js.map +1 -1
- package/dist/smrt-knowledge.json +33 -32
- package/dist/vite-plugin/api-client-entries.d.ts.map +1 -1
- package/dist/vite-plugin/api-client-entries.js +10 -8
- package/dist/vite-plugin/api-client-entries.js.map +1 -1
- package/dist/vite-plugin/index.d.ts.map +1 -1
- package/dist/vite-plugin/index.js +1 -1
- package/dist/vite-plugin/index.js.map +1 -1
- package/dist/vite-plugin/sveltekit-generator.d.ts +28 -2
- package/dist/vite-plugin/sveltekit-generator.d.ts.map +1 -1
- package/dist/vite-plugin/sveltekit-generator.js +121 -51
- package/dist/vite-plugin/sveltekit-generator.js.map +1 -1
- package/dist/vite-plugin/web-collections.d.ts.map +1 -1
- package/dist/vite-plugin/web-collections.js +1 -1
- package/dist/vite-plugin/web-collections.js.map +1 -1
- package/package.json +10 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-generator.d.ts","sourceRoot":"","sources":["../../src/scanner/manifest-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"manifest-generator.d.ts","sourceRoot":"","sources":["../../src/scanner/manifest-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { classnameToTablename, toSnakeCase } from "../utils/naming.js";
|
|
|
3
3
|
import "./types.js";
|
|
4
4
|
import { createQualifiedName } from "../utils/qualified-names.js";
|
|
5
5
|
import { generateToolManifest } from "../tools/tool-generator.js";
|
|
6
|
-
import { resolveCustomActionMetadata } from "../generators/custom-action.js";
|
|
6
|
+
import { createManifestClassNamePredicate, resolveApiMethodExposure, resolveCustomActionMetadata, resolveEffectiveActionMetadata } from "../generators/custom-action.js";
|
|
7
7
|
import { defaultConflictColumns, resolveTenantColumn } from "../schema/conflict-target.js";
|
|
8
8
|
import { SchemaGenerator } from "../schema/generator.js";
|
|
9
9
|
import { isTestFile } from "./test-file-patterns.js";
|
|
@@ -1046,7 +1046,7 @@ ${fields}
|
|
|
1046
1046
|
*/
|
|
1047
1047
|
generateRestEndpoints(manifest) {
|
|
1048
1048
|
const endpoints = [];
|
|
1049
|
-
for (const [_name, obj] of Object.entries(manifest.objects)) if (obj.decoratorConfig.api !== false) endpoints.push(...this.getSimpleEndpoints(obj));
|
|
1049
|
+
for (const [_name, obj] of Object.entries(manifest.objects)) if (obj.decoratorConfig.api !== false) endpoints.push(...this.getSimpleEndpoints(obj, manifest));
|
|
1050
1050
|
return endpoints.join("\n");
|
|
1051
1051
|
}
|
|
1052
1052
|
/**
|
|
@@ -1062,8 +1062,12 @@ ${fields}
|
|
|
1062
1062
|
*/
|
|
1063
1063
|
getApiRouteMetadata(obj, actionName, actionDef) {
|
|
1064
1064
|
const config = obj.decoratorConfig.api && typeof obj.decoratorConfig.api === "object" ? obj.decoratorConfig.api : void 0;
|
|
1065
|
-
const
|
|
1066
|
-
|
|
1065
|
+
const effective = resolveEffectiveActionMetadata({
|
|
1066
|
+
actionName,
|
|
1067
|
+
method: actionDef,
|
|
1068
|
+
apiConfig: config
|
|
1069
|
+
});
|
|
1070
|
+
const normalizedPath = (effective.path || actionName).split("/").map((segment) => segment.trim()).filter(Boolean).join("/");
|
|
1067
1071
|
return {
|
|
1068
1072
|
scope: resolveCustomActionMetadata({
|
|
1069
1073
|
actionName,
|
|
@@ -1071,16 +1075,17 @@ ${fields}
|
|
|
1071
1075
|
apiConfig: config,
|
|
1072
1076
|
defaultScope: obj.extends === "SmrtCollection" || !!obj.extendsTypeArg || actionDef.isStatic ? "collection" : "item"
|
|
1073
1077
|
}).scope,
|
|
1074
|
-
method:
|
|
1078
|
+
method: effective.httpMethod ?? "POST",
|
|
1075
1079
|
path: normalizedPath || actionName
|
|
1076
1080
|
};
|
|
1077
1081
|
}
|
|
1078
|
-
getSimpleEndpoints(obj) {
|
|
1082
|
+
getSimpleEndpoints(obj, manifest) {
|
|
1079
1083
|
const { collection } = obj;
|
|
1080
1084
|
const config = obj.decoratorConfig.api;
|
|
1081
1085
|
const exclude = typeof config === "object" && config?.exclude || [];
|
|
1082
1086
|
const include = typeof config === "object" && config?.include || void 0;
|
|
1083
1087
|
const isCollectionClass = obj.extends === "SmrtCollection" || !!obj.extendsTypeArg;
|
|
1088
|
+
const isModelClassName = createManifestClassNamePredicate(manifest);
|
|
1084
1089
|
const endpoints = [];
|
|
1085
1090
|
const shouldInclude = (op) => {
|
|
1086
1091
|
if (include && !include.includes(op)) return false;
|
|
@@ -1094,18 +1099,15 @@ ${fields}
|
|
|
1094
1099
|
if (shouldInclude("update")) endpoints.push(`PUT /${collection}/:id`);
|
|
1095
1100
|
if (shouldInclude("delete")) endpoints.push(`DELETE /${collection}/:id`);
|
|
1096
1101
|
}
|
|
1097
|
-
const standardActions = [
|
|
1098
|
-
"list",
|
|
1099
|
-
"get",
|
|
1100
|
-
"create",
|
|
1101
|
-
"update",
|
|
1102
|
-
"delete"
|
|
1103
|
-
];
|
|
1104
1102
|
for (const [actionName, actionDef] of Object.entries(obj.methods)) {
|
|
1105
|
-
if (
|
|
1103
|
+
if (!resolveApiMethodExposure({
|
|
1104
|
+
actionName,
|
|
1105
|
+
method: actionDef,
|
|
1106
|
+
apiConfig: config,
|
|
1107
|
+
isCollectionClass,
|
|
1108
|
+
...isModelClassName ? { isModelClassName } : {}
|
|
1109
|
+
}).exposed) continue;
|
|
1106
1110
|
const route = this.getApiRouteMetadata(obj, actionName, actionDef);
|
|
1107
|
-
if (route.scope === "collection" && !isCollectionClass && !actionDef.isStatic) continue;
|
|
1108
|
-
if (route.scope === "item" && isCollectionClass) continue;
|
|
1109
1111
|
const suffix = route.scope === "collection" ? "" : "/:id";
|
|
1110
1112
|
endpoints.push(`${route.method} /${collection}${suffix}/${route.path}`);
|
|
1111
1113
|
}
|