irgen 0.2.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/CHANGELOG.md +113 -0
- package/LICENSE +21 -0
- package/README.md +161 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +312 -0
- package/dist/cli.js.map +1 -0
- package/dist/dsl/aggregator.d.ts +8 -0
- package/dist/dsl/aggregator.d.ts.map +1 -0
- package/dist/dsl/aggregator.js +64 -0
- package/dist/dsl/aggregator.js.map +1 -0
- package/dist/dsl/frontend-runtime.d.ts +486 -0
- package/dist/dsl/frontend-runtime.d.ts.map +1 -0
- package/dist/dsl/frontend-runtime.js +232 -0
- package/dist/dsl/frontend-runtime.js.map +1 -0
- package/dist/dsl/runtime.d.ts +33 -0
- package/dist/dsl/runtime.d.ts.map +1 -0
- package/dist/dsl/runtime.js +120 -0
- package/dist/dsl/runtime.js.map +1 -0
- package/dist/emit/backend/adapters.d.ts +11 -0
- package/dist/emit/backend/adapters.d.ts.map +1 -0
- package/dist/emit/backend/adapters.js +374 -0
- package/dist/emit/backend/adapters.js.map +1 -0
- package/dist/emit/backend/backend-tsmorph.d.ts +5 -0
- package/dist/emit/backend/backend-tsmorph.d.ts.map +1 -0
- package/dist/emit/backend/backend-tsmorph.js +858 -0
- package/dist/emit/backend/backend-tsmorph.js.map +1 -0
- package/dist/emit/backend/fake-backend.d.ts +2 -0
- package/dist/emit/backend/fake-backend.d.ts.map +1 -0
- package/dist/emit/backend/fake-backend.js +19 -0
- package/dist/emit/backend/fake-backend.js.map +1 -0
- package/dist/emit/backend/packaging.d.ts +3 -0
- package/dist/emit/backend/packaging.d.ts.map +1 -0
- package/dist/emit/backend/packaging.js +71 -0
- package/dist/emit/backend/packaging.js.map +1 -0
- package/dist/emit/backend/server.d.ts +4 -0
- package/dist/emit/backend/server.d.ts.map +1 -0
- package/dist/emit/backend/server.js +169 -0
- package/dist/emit/backend/server.js.map +1 -0
- package/dist/emit/cli/cli-fake.d.ts +2 -0
- package/dist/emit/cli/cli-fake.d.ts.map +1 -0
- package/dist/emit/cli/cli-fake.js +33 -0
- package/dist/emit/cli/cli-fake.js.map +1 -0
- package/dist/emit/electron/electron-shell.d.ts +3 -0
- package/dist/emit/electron/electron-shell.d.ts.map +1 -0
- package/dist/emit/electron/electron-shell.js +454 -0
- package/dist/emit/electron/electron-shell.js.map +1 -0
- package/dist/emit/engine.d.ts +14 -0
- package/dist/emit/engine.d.ts.map +1 -0
- package/dist/emit/engine.js +25 -0
- package/dist/emit/engine.js.map +1 -0
- package/dist/emit/format.d.ts +2 -0
- package/dist/emit/format.d.ts.map +1 -0
- package/dist/emit/format.js +23 -0
- package/dist/emit/format.js.map +1 -0
- package/dist/emit/frontend/frontend-react.d.ts +4 -0
- package/dist/emit/frontend/frontend-react.d.ts.map +1 -0
- package/dist/emit/frontend/frontend-react.js +2021 -0
- package/dist/emit/frontend/frontend-react.js.map +1 -0
- package/dist/emit/frontend/registry.d.ts +20 -0
- package/dist/emit/frontend/registry.d.ts.map +1 -0
- package/dist/emit/frontend/registry.js +46 -0
- package/dist/emit/frontend/registry.js.map +1 -0
- package/dist/emit/frontend/runtime-emitter.d.ts +4 -0
- package/dist/emit/frontend/runtime-emitter.d.ts.map +1 -0
- package/dist/emit/frontend/runtime-emitter.js +435 -0
- package/dist/emit/frontend/runtime-emitter.js.map +1 -0
- package/dist/emit/frontend/runtime-template.d.ts +28 -0
- package/dist/emit/frontend/runtime-template.d.ts.map +1 -0
- package/dist/emit/frontend/runtime-template.js +218 -0
- package/dist/emit/frontend/runtime-template.js.map +1 -0
- package/dist/emit/frontend/ssg.d.ts +8 -0
- package/dist/emit/frontend/ssg.d.ts.map +1 -0
- package/dist/emit/frontend/ssg.js +219 -0
- package/dist/emit/frontend/ssg.js.map +1 -0
- package/dist/emit/registry.d.ts +17 -0
- package/dist/emit/registry.d.ts.map +1 -0
- package/dist/emit/registry.js +38 -0
- package/dist/emit/registry.js.map +1 -0
- package/dist/emit/static-site/css.d.ts +5 -0
- package/dist/emit/static-site/css.d.ts.map +1 -0
- package/dist/emit/static-site/css.js +872 -0
- package/dist/emit/static-site/css.js.map +1 -0
- package/dist/emit/static-site/enhancements.d.ts +11 -0
- package/dist/emit/static-site/enhancements.d.ts.map +1 -0
- package/dist/emit/static-site/enhancements.js +266 -0
- package/dist/emit/static-site/enhancements.js.map +1 -0
- package/dist/emit/static-site/static-site-html.d.ts +3 -0
- package/dist/emit/static-site/static-site-html.d.ts.map +1 -0
- package/dist/emit/static-site/static-site-html.js +1172 -0
- package/dist/emit/static-site/static-site-html.js.map +1 -0
- package/dist/emit/utils/sdk.d.ts +15 -0
- package/dist/emit/utils/sdk.d.ts.map +1 -0
- package/dist/emit/utils/sdk.js +34 -0
- package/dist/emit/utils/sdk.js.map +1 -0
- package/dist/extensions/context.d.ts +23 -0
- package/dist/extensions/context.d.ts.map +1 -0
- package/dist/extensions/context.js +43 -0
- package/dist/extensions/context.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +135 -0
- package/dist/index.js.map +1 -0
- package/dist/ir/decl/backend.raw.schema.d.ts +128 -0
- package/dist/ir/decl/backend.raw.schema.d.ts.map +1 -0
- package/dist/ir/decl/backend.raw.schema.js +24 -0
- package/dist/ir/decl/backend.raw.schema.js.map +1 -0
- package/dist/ir/decl/bundle.d.ts +15 -0
- package/dist/ir/decl/bundle.d.ts.map +1 -0
- package/dist/ir/decl/bundle.js +8 -0
- package/dist/ir/decl/bundle.js.map +1 -0
- package/dist/ir/decl/cli.raw.schema.d.ts +133 -0
- package/dist/ir/decl/cli.raw.schema.d.ts.map +1 -0
- package/dist/ir/decl/cli.raw.schema.js +20 -0
- package/dist/ir/decl/cli.raw.schema.js.map +1 -0
- package/dist/ir/decl/frontend.raw.schema.d.ts +6631 -0
- package/dist/ir/decl/frontend.raw.schema.d.ts.map +1 -0
- package/dist/ir/decl/frontend.raw.schema.js +272 -0
- package/dist/ir/decl/frontend.raw.schema.js.map +1 -0
- package/dist/ir/decl/index.d.ts +6 -0
- package/dist/ir/decl/index.d.ts.map +1 -0
- package/dist/ir/decl/index.js +6 -0
- package/dist/ir/decl/index.js.map +1 -0
- package/dist/ir/decl/normalize.schema.d.ts +9154 -0
- package/dist/ir/decl/normalize.schema.d.ts.map +1 -0
- package/dist/ir/decl/normalize.schema.js +71 -0
- package/dist/ir/decl/normalize.schema.js.map +1 -0
- package/dist/ir/domain/backend.d.ts +19 -0
- package/dist/ir/domain/backend.d.ts.map +1 -0
- package/dist/ir/domain/backend.js +3 -0
- package/dist/ir/domain/backend.js.map +1 -0
- package/dist/ir/domain/cli.d.ts +18 -0
- package/dist/ir/domain/cli.d.ts.map +1 -0
- package/dist/ir/domain/cli.js +2 -0
- package/dist/ir/domain/cli.js.map +1 -0
- package/dist/ir/domain/frontend/index.d.ts +190 -0
- package/dist/ir/domain/frontend/index.d.ts.map +1 -0
- package/dist/ir/domain/frontend/index.js +2 -0
- package/dist/ir/domain/frontend/index.js.map +1 -0
- package/dist/ir/domain/frontend.d.ts +2 -0
- package/dist/ir/domain/frontend.d.ts.map +1 -0
- package/dist/ir/domain/frontend.js +3 -0
- package/dist/ir/domain/frontend.js.map +1 -0
- package/dist/ir/frontend-contract.d.ts +187 -0
- package/dist/ir/frontend-contract.d.ts.map +1 -0
- package/dist/ir/frontend-contract.js +6 -0
- package/dist/ir/frontend-contract.js.map +1 -0
- package/dist/ir/target/backend.d.ts +11 -0
- package/dist/ir/target/backend.d.ts.map +1 -0
- package/dist/ir/target/backend.js +2 -0
- package/dist/ir/target/backend.js.map +1 -0
- package/dist/ir/target/backend.policy.d.ts +896 -0
- package/dist/ir/target/backend.policy.d.ts.map +1 -0
- package/dist/ir/target/backend.policy.js +106 -0
- package/dist/ir/target/backend.policy.js.map +1 -0
- package/dist/ir/target/cli.d.ts +3 -0
- package/dist/ir/target/cli.d.ts.map +1 -0
- package/dist/ir/target/cli.js +2 -0
- package/dist/ir/target/cli.js.map +1 -0
- package/dist/ir/target/electron.d.ts +99 -0
- package/dist/ir/target/electron.d.ts.map +1 -0
- package/dist/ir/target/electron.js +2 -0
- package/dist/ir/target/electron.js.map +1 -0
- package/dist/ir/target/electron.policy.d.ts +7015 -0
- package/dist/ir/target/electron.policy.d.ts.map +1 -0
- package/dist/ir/target/electron.policy.js +119 -0
- package/dist/ir/target/electron.policy.js.map +1 -0
- package/dist/ir/target/frontend.d.ts +12 -0
- package/dist/ir/target/frontend.d.ts.map +1 -0
- package/dist/ir/target/frontend.js +2 -0
- package/dist/ir/target/frontend.js.map +1 -0
- package/dist/ir/target/frontend.policy.d.ts +268 -0
- package/dist/ir/target/frontend.policy.d.ts.map +1 -0
- package/dist/ir/target/frontend.policy.js +33 -0
- package/dist/ir/target/frontend.policy.js.map +1 -0
- package/dist/ir/target/index.d.ts +6 -0
- package/dist/ir/target/index.d.ts.map +1 -0
- package/dist/ir/target/index.js +6 -0
- package/dist/ir/target/index.js.map +1 -0
- package/dist/ir/target/static-site.d.ts +18 -0
- package/dist/ir/target/static-site.d.ts.map +1 -0
- package/dist/ir/target/static-site.js +2 -0
- package/dist/ir/target/static-site.js.map +1 -0
- package/dist/ir/target/static-site.policy.d.ts +2911 -0
- package/dist/ir/target/static-site.policy.d.ts.map +1 -0
- package/dist/ir/target/static-site.policy.js +127 -0
- package/dist/ir/target/static-site.policy.js.map +1 -0
- package/dist/lowering/backend.d.ts +4 -0
- package/dist/lowering/backend.d.ts.map +1 -0
- package/dist/lowering/backend.js +57 -0
- package/dist/lowering/backend.js.map +1 -0
- package/dist/lowering/cli.d.ts +4 -0
- package/dist/lowering/cli.d.ts.map +1 -0
- package/dist/lowering/cli.js +22 -0
- package/dist/lowering/cli.js.map +1 -0
- package/dist/lowering/engine.d.ts +18 -0
- package/dist/lowering/engine.d.ts.map +1 -0
- package/dist/lowering/engine.js +47 -0
- package/dist/lowering/engine.js.map +1 -0
- package/dist/lowering/frontend.d.ts +9 -0
- package/dist/lowering/frontend.d.ts.map +1 -0
- package/dist/lowering/frontend.js +246 -0
- package/dist/lowering/frontend.js.map +1 -0
- package/dist/lowering/targets/to-backend.d.ts +9 -0
- package/dist/lowering/targets/to-backend.d.ts.map +1 -0
- package/dist/lowering/targets/to-backend.js +55 -0
- package/dist/lowering/targets/to-backend.js.map +1 -0
- package/dist/lowering/targets/to-cli.d.ts +4 -0
- package/dist/lowering/targets/to-cli.d.ts.map +1 -0
- package/dist/lowering/targets/to-cli.js +11 -0
- package/dist/lowering/targets/to-cli.js.map +1 -0
- package/dist/lowering/targets/to-electron.d.ts +30 -0
- package/dist/lowering/targets/to-electron.d.ts.map +1 -0
- package/dist/lowering/targets/to-electron.js +87 -0
- package/dist/lowering/targets/to-electron.js.map +1 -0
- package/dist/lowering/targets/to-frontend.d.ts +4 -0
- package/dist/lowering/targets/to-frontend.d.ts.map +1 -0
- package/dist/lowering/targets/to-frontend.js +30 -0
- package/dist/lowering/targets/to-frontend.js.map +1 -0
- package/dist/lowering/targets/to-static-site.d.ts +16 -0
- package/dist/lowering/targets/to-static-site.d.ts.map +1 -0
- package/dist/lowering/targets/to-static-site.js +30 -0
- package/dist/lowering/targets/to-static-site.js.map +1 -0
- package/dist/mappers/index.d.ts +12 -0
- package/dist/mappers/index.d.ts.map +1 -0
- package/dist/mappers/index.js +60 -0
- package/dist/mappers/index.js.map +1 -0
- package/dist/types/extension.d.ts +3 -0
- package/dist/types/extension.d.ts.map +1 -0
- package/dist/types/extension.js +2 -0
- package/dist/types/extension.js.map +1 -0
- package/dist/utils/array.d.ts +2 -0
- package/dist/utils/array.d.ts.map +1 -0
- package/dist/utils/array.js +4 -0
- package/dist/utils/array.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/string.d.ts +13 -0
- package/dist/utils/string.d.ts.map +1 -0
- package/dist/utils/string.js +56 -0
- package/dist/utils/string.js.map +1 -0
- package/package.json +112 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-site.policy.d.ts","sourceRoot":"","sources":["../../../src/ir/target/static-site.policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,4BAA4B;;;;;;;;;GAG3B,CAAC;AAGf,eAAO,MAAM,kCAAkC,mHAS7C,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;GAGjC,CAAC;AAGf,eAAO,MAAM,mCAAmC;;;;;;;;;;;;GAIlC,CAAC;AAGf,eAAO,MAAM,4BAA4B;;;;;;;;;GAG3B,CAAC;AAGf,eAAO,MAAM,6BAA6B;;;;;;GAE5B,CAAC;AAGf,eAAO,MAAM,4BAA4B;;;;;;GAE3B,CAAC;AAGf,eAAO,MAAM,+BAA+B;;;;;;GAE9B,CAAC;AAGf,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAQxB,CAAC;AAGf,eAAO,MAAM,2BAA2B;;;;;;;;;;;;GAI1B,CAAC;AAGf,eAAO,MAAM,yBAAyB;;;;;;;;;GAGxB,CAAC;AAGf,eAAO,MAAM,mCAAmC;;;;;;;;;GAGlC,CAAC;AAGf,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAG7B,CAAC;AAGf,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;GAK3B,CAAC;AAEf,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;GAK5B,CAAC;AAGf,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAerB,CAAC;AAGf,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAE7B,CAAC;AAGjB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAGtC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAC1F,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAM1E"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
// Static Site Assets Policy Schema
|
|
3
|
+
export const StaticSiteAssetsPolicySchema = z.object({
|
|
4
|
+
hashing: z.boolean().default(true),
|
|
5
|
+
publicDir: z.string().optional(),
|
|
6
|
+
}).default({});
|
|
7
|
+
// Static Site Enhancements Policy Schema
|
|
8
|
+
export const StaticSiteEnhancementFeatureSchema = z.enum([
|
|
9
|
+
"sidebarToggle",
|
|
10
|
+
"copyCode",
|
|
11
|
+
"themeToggle",
|
|
12
|
+
"tocScrollSpy",
|
|
13
|
+
"tabs",
|
|
14
|
+
"accordion",
|
|
15
|
+
"search",
|
|
16
|
+
"mermaid",
|
|
17
|
+
]);
|
|
18
|
+
export const StaticSiteEnhancementsPolicySchema = z.object({
|
|
19
|
+
enabled: z.boolean().default(true),
|
|
20
|
+
features: z.array(StaticSiteEnhancementFeatureSchema).default([]),
|
|
21
|
+
}).default({});
|
|
22
|
+
// Static Site Code Highlight Policy Schema
|
|
23
|
+
export const StaticSiteCodeHighlightPolicySchema = z.object({
|
|
24
|
+
mode: z.enum(["pre", "client", "none"]).default("pre"),
|
|
25
|
+
theme: z.string().optional(),
|
|
26
|
+
addCopyButton: z.boolean().default(true),
|
|
27
|
+
}).default({});
|
|
28
|
+
// Static Site Search Policy Schema
|
|
29
|
+
export const StaticSiteSearchPolicySchema = z.object({
|
|
30
|
+
mode: z.enum(["none", "client_index", "remote"]).default("none"),
|
|
31
|
+
indexFile: z.string().default("assets/search-index.json"),
|
|
32
|
+
}).default({});
|
|
33
|
+
// Static Site SEO Sitemap Policy Schema
|
|
34
|
+
export const StaticSiteSitemapPolicySchema = z.object({
|
|
35
|
+
enabled: z.boolean().default(true),
|
|
36
|
+
}).default({});
|
|
37
|
+
// Static Site SEO Robots Policy Schema
|
|
38
|
+
export const StaticSiteRobotsPolicySchema = z.object({
|
|
39
|
+
enabled: z.boolean().default(true),
|
|
40
|
+
}).default({});
|
|
41
|
+
// Static Site SEO OpenGraph Policy Schema
|
|
42
|
+
export const StaticSiteOpenGraphPolicySchema = z.object({
|
|
43
|
+
enabled: z.boolean().default(false),
|
|
44
|
+
}).default({});
|
|
45
|
+
// Static Site SEO Policy Schema
|
|
46
|
+
export const StaticSiteSeoPolicySchema = z.object({
|
|
47
|
+
defaultTitle: z.string().default("irgen Documentation"),
|
|
48
|
+
titleTemplate: z.string().default("%s · irgen"),
|
|
49
|
+
defaultDescription: z.string().default("Compiler-style code generation via Intermediate Representation (IR)."),
|
|
50
|
+
canonicalBaseUrl: z.string().nullable().default(null),
|
|
51
|
+
sitemap: StaticSiteSitemapPolicySchema,
|
|
52
|
+
robotsTxt: StaticSiteRobotsPolicySchema,
|
|
53
|
+
openGraph: StaticSiteOpenGraphPolicySchema,
|
|
54
|
+
}).default({});
|
|
55
|
+
// Static Site Theme Policy Schema
|
|
56
|
+
export const StaticSiteThemePolicySchema = z.object({
|
|
57
|
+
mode: z.enum(["light", "dark", "auto"]).default("auto"),
|
|
58
|
+
accentColor: z.string().default("#3b82f6"),
|
|
59
|
+
radius: z.enum(["sm", "md", "lg"]).default("md"),
|
|
60
|
+
}).default({});
|
|
61
|
+
// Static Site CSP Policy Schema
|
|
62
|
+
export const StaticSiteCspPolicySchema = z.object({
|
|
63
|
+
enabled: z.boolean().default(false),
|
|
64
|
+
value: z.string().optional(),
|
|
65
|
+
}).default({});
|
|
66
|
+
// Static Site External Links Policy Schema
|
|
67
|
+
export const StaticSiteExternalLinksPolicySchema = z.object({
|
|
68
|
+
noopener: z.boolean().default(true),
|
|
69
|
+
noreferrer: z.boolean().default(true),
|
|
70
|
+
}).default({});
|
|
71
|
+
// Static Site Security Policy Schema
|
|
72
|
+
export const StaticSiteSecurityPolicySchema = z.object({
|
|
73
|
+
csp: StaticSiteCspPolicySchema,
|
|
74
|
+
externalLinks: StaticSiteExternalLinksPolicySchema,
|
|
75
|
+
}).default({});
|
|
76
|
+
// Static Site Navbar Policy Schema
|
|
77
|
+
export const StaticSiteNavbarPolicySchema = z.object({
|
|
78
|
+
links: z.array(z.object({
|
|
79
|
+
label: z.string(),
|
|
80
|
+
href: z.string(),
|
|
81
|
+
})).default([]),
|
|
82
|
+
}).default({});
|
|
83
|
+
export const StaticSiteSidebarPolicySchema = z.object({
|
|
84
|
+
groups: z.array(z.object({
|
|
85
|
+
label: z.string(),
|
|
86
|
+
items: z.array(z.string()),
|
|
87
|
+
})).default([]),
|
|
88
|
+
}).default({});
|
|
89
|
+
// Main Static Site Policy Schema
|
|
90
|
+
export const StaticSitePolicySchema = z.object({
|
|
91
|
+
enabled: z.boolean().default(true),
|
|
92
|
+
baseUrl: z.string().default("/"),
|
|
93
|
+
trailingSlash: z.boolean().default(true),
|
|
94
|
+
outDir: z.string().default("."),
|
|
95
|
+
customCssPath: z.string().optional(),
|
|
96
|
+
assets: StaticSiteAssetsPolicySchema,
|
|
97
|
+
enhancements: StaticSiteEnhancementsPolicySchema,
|
|
98
|
+
codeHighlight: StaticSiteCodeHighlightPolicySchema,
|
|
99
|
+
search: StaticSiteSearchPolicySchema,
|
|
100
|
+
seo: StaticSiteSeoPolicySchema,
|
|
101
|
+
theme: StaticSiteThemePolicySchema,
|
|
102
|
+
security: StaticSiteSecurityPolicySchema,
|
|
103
|
+
navbar: StaticSiteNavbarPolicySchema,
|
|
104
|
+
sidebar: StaticSiteSidebarPolicySchema,
|
|
105
|
+
}).default({});
|
|
106
|
+
// Namespaced format for DSL usage
|
|
107
|
+
export const StaticSitePolicyNamespacedSchema = z.object({
|
|
108
|
+
staticSite: StaticSitePolicySchema,
|
|
109
|
+
}).passthrough();
|
|
110
|
+
// Union schema that accepts both formats (flat or namespaced)
|
|
111
|
+
export const StaticSitePolicyInputSchema = z.union([
|
|
112
|
+
StaticSitePolicySchema,
|
|
113
|
+
StaticSitePolicyNamespacedSchema,
|
|
114
|
+
]);
|
|
115
|
+
/**
|
|
116
|
+
* Normalize static-site policy input to StaticSitePolicy.
|
|
117
|
+
* Accepts both flat format ({ enabled: true, baseUrl: "/", ... })
|
|
118
|
+
* and namespaced format ({ staticSite: { enabled: true, ... } }).
|
|
119
|
+
*/
|
|
120
|
+
export function normalizeStaticSitePolicy(input) {
|
|
121
|
+
const parsed = StaticSitePolicyInputSchema.parse(input);
|
|
122
|
+
if ("staticSite" in parsed) {
|
|
123
|
+
return parsed.staticSite;
|
|
124
|
+
}
|
|
125
|
+
return parsed;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=static-site.policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-site.policy.js","sourceRoot":"","sources":["../../../src/ir/target/static-site.policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/lowering/backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAwB,MAAM,yBAAyB,CAAC;AAuB/E,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAkCvD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lowering rules:
|
|
3
|
+
* - Kita paksa konvensi canonical: CREATE/GET/LIST
|
|
4
|
+
* - Method name ditentukan deterministik:
|
|
5
|
+
* CREATE -> create<Entity>
|
|
6
|
+
* GET -> get<Entity>
|
|
7
|
+
* LIST -> list<Entity>s (sederhana; nanti bisa pluralization rules)
|
|
8
|
+
*/
|
|
9
|
+
import { pascal, camel, pluralize } from "../utils/string.js";
|
|
10
|
+
function opKind(kind) {
|
|
11
|
+
if (kind === "create")
|
|
12
|
+
return "CREATE";
|
|
13
|
+
if (kind === "get")
|
|
14
|
+
return "GET";
|
|
15
|
+
if (kind === "update")
|
|
16
|
+
return "UPDATE";
|
|
17
|
+
if (kind === "remove")
|
|
18
|
+
return "REMOVE";
|
|
19
|
+
return "LIST";
|
|
20
|
+
}
|
|
21
|
+
import { engine } from "./engine.js";
|
|
22
|
+
export function declToBackendIR(app) {
|
|
23
|
+
const appName = app.name ?? "app";
|
|
24
|
+
return {
|
|
25
|
+
domain: "backend",
|
|
26
|
+
appName,
|
|
27
|
+
entities: (app.entities ?? []).map(e => {
|
|
28
|
+
const entityName = pascal(e.name ?? e.id);
|
|
29
|
+
const ops = (e.operations ?? []).map(op => {
|
|
30
|
+
const K = opKind(op.kind);
|
|
31
|
+
const base = K === "CREATE" ? "create" :
|
|
32
|
+
K === "GET" ? "get" :
|
|
33
|
+
K === "UPDATE" ? "update" :
|
|
34
|
+
K === "REMOVE" ? "remove" :
|
|
35
|
+
"list";
|
|
36
|
+
const methodName = K === "LIST"
|
|
37
|
+
? camel(`${base} ${pluralize(entityName)}`)
|
|
38
|
+
: camel(`${base} ${entityName}`);
|
|
39
|
+
return { kind: K, entityName, methodName };
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
name: entityName,
|
|
43
|
+
id: e.id,
|
|
44
|
+
model: e.model ? Object.fromEntries(Object.entries(e.model).map(([k, t]) => [k, t])) : undefined,
|
|
45
|
+
operations: ops,
|
|
46
|
+
};
|
|
47
|
+
}),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// Register this backend lowering with the engine and a zod policy schema validator
|
|
51
|
+
try {
|
|
52
|
+
engine.registerTransform("backend", (decl) => declToBackendIR(decl));
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
// ignore if already registered (useful for repeated runs in test environment)
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/lowering/backend.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE9D,SAAS,MAAM,CAAC,IAAqD;IACnE,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACvC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC;IAElC,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,OAAO;QACP,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACrC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACxC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM,IAAI,GACR,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBACzB,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBACnB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;4BACzB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gCACzB,MAAM,CAAC;gBACjB,MAAM,UAAU,GACd,CAAC,KAAK,MAAM;oBACV,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC3C,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC;gBAErC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CACjC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAChD,CAAC,CAAC,CAAC,SAAS;gBACb,UAAU,EAAE,GAAG;aAChB,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,IAAI,CAAC;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,8EAA8E;AAChF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/lowering/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAIjD,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,KAAK,CAWnD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { engine } from "./engine.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
export function declToCliIR(decl) {
|
|
4
|
+
return {
|
|
5
|
+
domain: "cli",
|
|
6
|
+
name: decl.name,
|
|
7
|
+
commands: (decl.commands ?? []).map(cmd => ({
|
|
8
|
+
name: cmd.name,
|
|
9
|
+
description: cmd.description,
|
|
10
|
+
options: cmd.options,
|
|
11
|
+
action: cmd.action,
|
|
12
|
+
})),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
try {
|
|
16
|
+
engine.registerTransform("cli", (decl) => declToCliIR(decl));
|
|
17
|
+
engine.registerPolicySchema("cli", z.object({}).passthrough());
|
|
18
|
+
}
|
|
19
|
+
catch (e) {
|
|
20
|
+
// ignore double registration in repeated runs
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/lowering/cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,WAAW,CAAC,IAAgB;IAC1C,OAAO;QACL,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1C,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,IAAI,CAAC;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,IAAgB,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACjE,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,8CAA8C;AAChD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ZodTypeAny } from "zod";
|
|
2
|
+
export type LoweringTransform = (input: any, policies?: Record<string, any>) => Promise<any> | any;
|
|
3
|
+
export type PolicyValidator = (policies?: Record<string, any>) => void;
|
|
4
|
+
declare class LoweringEngine {
|
|
5
|
+
private transforms;
|
|
6
|
+
private validators;
|
|
7
|
+
private policySchemas;
|
|
8
|
+
registerTransform(name: string, fn: LoweringTransform): void;
|
|
9
|
+
unregisterTransform(name: string): void;
|
|
10
|
+
getTransform(name: string): LoweringTransform | undefined;
|
|
11
|
+
listTransforms(): string[];
|
|
12
|
+
registerPolicyValidator(name: string, v: PolicyValidator): void;
|
|
13
|
+
registerPolicySchema(name: string, schema: ZodTypeAny): void;
|
|
14
|
+
runTransform(name: string, input: any, policies?: Record<string, any>): any;
|
|
15
|
+
}
|
|
16
|
+
export declare const engine: LoweringEngine;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/lowering/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACtC,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACnG,MAAM,MAAM,eAAe,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;AAEvE,cAAM,cAAc;IAClB,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,aAAa,CAAiC;IAEtD,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB;IAKrD,mBAAmB,CAAC,IAAI,EAAE,MAAM;IAIhC,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB,cAAc;IAId,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe;IAKxD,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAKrD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CActE;AAED,eAAO,MAAM,MAAM,gBAAuB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
class LoweringEngine {
|
|
2
|
+
transforms = new Map();
|
|
3
|
+
validators = new Map();
|
|
4
|
+
policySchemas = new Map();
|
|
5
|
+
registerTransform(name, fn) {
|
|
6
|
+
if (this.transforms.has(name))
|
|
7
|
+
throw new Error(`transform already registered: ${name}`);
|
|
8
|
+
this.transforms.set(name, fn);
|
|
9
|
+
}
|
|
10
|
+
unregisterTransform(name) {
|
|
11
|
+
this.transforms.delete(name);
|
|
12
|
+
}
|
|
13
|
+
getTransform(name) {
|
|
14
|
+
return this.transforms.get(name);
|
|
15
|
+
}
|
|
16
|
+
listTransforms() {
|
|
17
|
+
return Array.from(this.transforms.keys());
|
|
18
|
+
}
|
|
19
|
+
registerPolicyValidator(name, v) {
|
|
20
|
+
if (this.validators.has(name))
|
|
21
|
+
throw new Error(`validator already registered: ${name}`);
|
|
22
|
+
this.validators.set(name, v);
|
|
23
|
+
}
|
|
24
|
+
registerPolicySchema(name, schema) {
|
|
25
|
+
if (this.policySchemas.has(name))
|
|
26
|
+
throw new Error(`policy schema already registered: ${name}`);
|
|
27
|
+
this.policySchemas.set(name, schema);
|
|
28
|
+
}
|
|
29
|
+
runTransform(name, input, policies) {
|
|
30
|
+
// Prefer zod schema validation if available for richer errors
|
|
31
|
+
const schema = this.policySchemas.get(name);
|
|
32
|
+
if (schema) {
|
|
33
|
+
schema.parse(policies ?? {});
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
const validator = this.validators.get(name);
|
|
37
|
+
if (validator)
|
|
38
|
+
validator(policies);
|
|
39
|
+
}
|
|
40
|
+
const fn = this.transforms.get(name);
|
|
41
|
+
if (!fn)
|
|
42
|
+
throw new Error(`transform not registered: ${name}`);
|
|
43
|
+
return fn(input, policies);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export const engine = new LoweringEngine();
|
|
47
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/lowering/engine.ts"],"names":[],"mappings":"AAIA,MAAM,cAAc;IACV,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;IAClD,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;IAChD,aAAa,GAAG,IAAI,GAAG,EAAsB,CAAC;IAEtD,iBAAiB,CAAC,IAAY,EAAE,EAAqB;QACnD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,mBAAmB,CAAC,IAAY;QAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,uBAAuB,CAAC,IAAY,EAAE,CAAkB;QACtD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,oBAAoB,CAAC,IAAY,EAAE,MAAkB;QACnD,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;QAC/F,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,KAAU,EAAE,QAA8B;QACnE,8DAA8D;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,SAAS;gBAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;QAC9D,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DeclFrontendApp } from "../ir/decl/frontend.raw.schema.js";
|
|
2
|
+
import type { FrontendIR, FrontendPwaConfig } from "../ir/domain/frontend.js";
|
|
3
|
+
export type FrontendPolicies = {
|
|
4
|
+
pwa?: Partial<FrontendPwaConfig> & {
|
|
5
|
+
enabled?: boolean;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
export declare function declToFrontendIR(decl: DeclFrontendApp, policies?: any): FrontendIR;
|
|
9
|
+
//# sourceMappingURL=frontend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend.d.ts","sourceRoot":"","sources":["../../src/lowering/frontend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAwC,MAAM,0BAA0B,CAAC;AAGpH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC1D,CAAC;AA+IF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,UAAU,CAiElF"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { pascal } from "../utils/index.js";
|
|
2
|
+
const DEFAULT_PWA = {
|
|
3
|
+
enabled: false,
|
|
4
|
+
name: "IR App",
|
|
5
|
+
shortName: "IRApp",
|
|
6
|
+
description: "Offline-ready web app",
|
|
7
|
+
startUrl: "/",
|
|
8
|
+
scope: "/",
|
|
9
|
+
display: "standalone",
|
|
10
|
+
backgroundColor: "#ffffff",
|
|
11
|
+
themeColor: "#0f172a",
|
|
12
|
+
};
|
|
13
|
+
function resolvePolicies(policies) {
|
|
14
|
+
if (!policies)
|
|
15
|
+
return {};
|
|
16
|
+
// allow namespaced policies.frontend or direct
|
|
17
|
+
return (policies.frontend ?? policies);
|
|
18
|
+
}
|
|
19
|
+
function resolvePwaConfig(decl, policies) {
|
|
20
|
+
const policy = resolvePolicies(policies);
|
|
21
|
+
const pwaInput = policy?.pwa ?? decl.pwa;
|
|
22
|
+
const enabled = pwaInput?.enabled ?? decl?.pwa?.enabled ?? false;
|
|
23
|
+
if (!enabled)
|
|
24
|
+
return undefined;
|
|
25
|
+
return {
|
|
26
|
+
...DEFAULT_PWA,
|
|
27
|
+
...pwaInput,
|
|
28
|
+
enabled: true,
|
|
29
|
+
name: pwaInput?.name ?? decl.name,
|
|
30
|
+
shortName: pwaInput?.shortName ?? pascal(decl.name).slice(0, 12),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function lowerValidators(f) {
|
|
34
|
+
const rules = [];
|
|
35
|
+
const v = f.validators;
|
|
36
|
+
if (!v)
|
|
37
|
+
return rules;
|
|
38
|
+
const label = f.label ?? f.name;
|
|
39
|
+
if (v.required) {
|
|
40
|
+
rules.push({ id: `${f.name}_required`, type: "required", message: `${label} is required` });
|
|
41
|
+
}
|
|
42
|
+
if (v.requiredIf) {
|
|
43
|
+
rules.push({ id: `${f.name}_requiredIf`, type: "requiredIf", message: `${label} is required`, logic: v.requiredIf });
|
|
44
|
+
}
|
|
45
|
+
if (typeof v.min !== "undefined") {
|
|
46
|
+
rules.push({ id: `${f.name}_min`, type: "min", message: `${label} must be >= ${v.min}`, params: { value: v.min } });
|
|
47
|
+
}
|
|
48
|
+
if (typeof v.max !== "undefined") {
|
|
49
|
+
rules.push({ id: `${f.name}_max`, type: "max", message: `${label} must be <= ${v.max}`, params: { value: v.max } });
|
|
50
|
+
}
|
|
51
|
+
if (v.minDate) {
|
|
52
|
+
rules.push({ id: `${f.name}_minDate`, type: "min", message: `${label} must be after ${v.minDate}`, params: { value: v.minDate, isDate: true } });
|
|
53
|
+
}
|
|
54
|
+
if (v.maxDate) {
|
|
55
|
+
rules.push({ id: `${f.name}_maxDate`, type: "max", message: `${label} must be before ${v.maxDate}`, params: { value: v.maxDate, isDate: true } });
|
|
56
|
+
}
|
|
57
|
+
if (typeof v.minLength !== "undefined") {
|
|
58
|
+
rules.push({ id: `${f.name}_minLength`, type: "minLength", message: `${label} must have length >= ${v.minLength}`, params: { value: v.minLength } });
|
|
59
|
+
}
|
|
60
|
+
if (typeof v.maxLength !== "undefined") {
|
|
61
|
+
rules.push({ id: `${f.name}_maxLength`, type: "maxLength", message: `${label} must have length <= ${v.maxLength}`, params: { value: v.maxLength } });
|
|
62
|
+
}
|
|
63
|
+
if (v.pattern) {
|
|
64
|
+
rules.push({ id: `${f.name}_pattern`, type: "pattern", message: `${label} is invalid`, params: { value: v.pattern } });
|
|
65
|
+
}
|
|
66
|
+
if (v.format === "email") {
|
|
67
|
+
rules.push({ id: `${f.name}_email`, type: "format", message: `${label} must be a valid email`, params: { value: "email" } });
|
|
68
|
+
}
|
|
69
|
+
if (v.format === "url") {
|
|
70
|
+
rules.push({ id: `${f.name}_url`, type: "format", message: `${label} must be a valid URL`, params: { value: "url" } });
|
|
71
|
+
}
|
|
72
|
+
if (v.equalsField) {
|
|
73
|
+
rules.push({ id: `${f.name}_equals`, type: "equalsField", message: `${label} must match ${v.equalsField}`, params: { value: v.equalsField } });
|
|
74
|
+
}
|
|
75
|
+
if (v.notEqualsField) {
|
|
76
|
+
rules.push({ id: `${f.name}_notEquals`, type: "notEqualsField", message: `${label} must differ from ${v.notEqualsField}`, params: { value: v.notEqualsField } });
|
|
77
|
+
}
|
|
78
|
+
if (v.greaterThanField) {
|
|
79
|
+
rules.push({ id: `${f.name}_gt`, type: "greaterThanField", message: `${label} must be greater than ${v.greaterThanField}`, params: { value: v.greaterThanField } });
|
|
80
|
+
}
|
|
81
|
+
if (v.lessThanField) {
|
|
82
|
+
rules.push({ id: `${f.name}_lt`, type: "lessThanField", message: `${label} must be less than ${v.lessThanField}`, params: { value: v.lessThanField } });
|
|
83
|
+
}
|
|
84
|
+
if (Array.isArray(v.custom)) {
|
|
85
|
+
v.custom.forEach((c, idx) => {
|
|
86
|
+
rules.push({ id: `${f.name}_custom_${idx}`, type: "custom", message: c.message ?? `${label} is invalid`, logic: c.logic });
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
if (Array.isArray(v.uniqueIn)) {
|
|
90
|
+
rules.push({ id: `${f.name}_unique`, type: "uniqueIn", message: `${label} must be unique`, params: { value: v.uniqueIn } });
|
|
91
|
+
}
|
|
92
|
+
return rules;
|
|
93
|
+
}
|
|
94
|
+
function extractLogicDependencies(logic) {
|
|
95
|
+
const deps = new Set();
|
|
96
|
+
const scan = (node) => {
|
|
97
|
+
if (!node)
|
|
98
|
+
return;
|
|
99
|
+
if (typeof node === "string") {
|
|
100
|
+
const trimmed = node.trim();
|
|
101
|
+
try {
|
|
102
|
+
const parsed = JSON.parse(trimmed);
|
|
103
|
+
if (parsed && typeof parsed === "object") {
|
|
104
|
+
scan(parsed);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (_) { }
|
|
109
|
+
const match = trimmed.match(/^([A-Za-z0-9_\\.]+)\\s*(==|===|!=|!==|>=|<=|>|<)\\s*(.+)$/);
|
|
110
|
+
if (match) {
|
|
111
|
+
deps.add(match[1]);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
deps.add(trimmed);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else if (Array.isArray(node)) {
|
|
118
|
+
node.forEach(scan);
|
|
119
|
+
}
|
|
120
|
+
else if (typeof node === "object") {
|
|
121
|
+
const entries = Object.entries(node);
|
|
122
|
+
if (entries.length > 0) {
|
|
123
|
+
const [op, val] = entries[0];
|
|
124
|
+
if (op === "var" && typeof val === "string") {
|
|
125
|
+
deps.add(val);
|
|
126
|
+
}
|
|
127
|
+
else if (Array.isArray(val)) {
|
|
128
|
+
val.forEach(scan);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
scan(val);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
scan(logic);
|
|
137
|
+
return Array.from(deps).map(d => d.split(".")[0]); // only top-level for state tracking
|
|
138
|
+
}
|
|
139
|
+
function lowerLogicExpression(logic) {
|
|
140
|
+
if (!logic)
|
|
141
|
+
return undefined;
|
|
142
|
+
let parsed = logic;
|
|
143
|
+
try {
|
|
144
|
+
parsed = JSON.parse(logic);
|
|
145
|
+
}
|
|
146
|
+
catch (_) { }
|
|
147
|
+
return {
|
|
148
|
+
logic: parsed,
|
|
149
|
+
dependencies: extractLogicDependencies(parsed)
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
export function declToFrontendIR(decl, policies) {
|
|
153
|
+
const mapComponent = (c) => ({
|
|
154
|
+
name: c.name,
|
|
155
|
+
props: c.props,
|
|
156
|
+
entityRef: c.entityRef,
|
|
157
|
+
agentChat: c.agentChat,
|
|
158
|
+
cliUsage: c.cliUsage,
|
|
159
|
+
form: c.form ? {
|
|
160
|
+
...c.form,
|
|
161
|
+
fields: (c.form.fields ?? []).map((f) => ({
|
|
162
|
+
...f,
|
|
163
|
+
loweredValidators: lowerValidators(f),
|
|
164
|
+
loweredVisibleIf: lowerLogicExpression(f.visibleIf),
|
|
165
|
+
loweredDisabledIf: lowerLogicExpression(f.disabledIf),
|
|
166
|
+
loweredDefaultValue: lowerLogicExpression(f.defaultValue),
|
|
167
|
+
loweredComputeValue: lowerLogicExpression(f.computeValue),
|
|
168
|
+
}))
|
|
169
|
+
} : undefined,
|
|
170
|
+
layout: c.layout,
|
|
171
|
+
content: c.content,
|
|
172
|
+
button: c.button,
|
|
173
|
+
themeToggle: c.themeToggle,
|
|
174
|
+
codeBlock: c.codeBlock,
|
|
175
|
+
marketing: c.marketing,
|
|
176
|
+
table: c.table,
|
|
177
|
+
});
|
|
178
|
+
const pages = (decl.pages ?? []).map((p) => ({
|
|
179
|
+
name: p.name,
|
|
180
|
+
path: p.path,
|
|
181
|
+
hideHeader: p.hideHeader,
|
|
182
|
+
description: p.description,
|
|
183
|
+
docsLayout: p.docsLayout,
|
|
184
|
+
docsGroupLabel: p.docsGroupLabel,
|
|
185
|
+
components: (p.components ?? []).map(mapComponent)
|
|
186
|
+
}));
|
|
187
|
+
const components = (decl.components ?? []).map(mapComponent);
|
|
188
|
+
return {
|
|
189
|
+
domain: "frontend",
|
|
190
|
+
appName: decl.name,
|
|
191
|
+
basePath: decl.basePath ?? "/",
|
|
192
|
+
pages,
|
|
193
|
+
components,
|
|
194
|
+
datasources: decl.datasources ?? [],
|
|
195
|
+
operations: (decl.operations ?? []).map((op) => ({
|
|
196
|
+
...op,
|
|
197
|
+
// In Phase 2, we might want to normalize logic expressions in operations too
|
|
198
|
+
pathParams: lowerLogicExpression(op.pathParams),
|
|
199
|
+
query: lowerLogicExpression(op.query),
|
|
200
|
+
headers: lowerLogicExpression(op.headers),
|
|
201
|
+
body: op.body ? {
|
|
202
|
+
...op.body,
|
|
203
|
+
build: lowerLogicExpression(op.body.build)
|
|
204
|
+
} : undefined,
|
|
205
|
+
resultHandling: op.resultHandling ? {
|
|
206
|
+
...op.resultHandling,
|
|
207
|
+
redirectTo: lowerLogicExpression(op.resultHandling.redirectTo),
|
|
208
|
+
openUrl: lowerLogicExpression(op.resultHandling.openUrl),
|
|
209
|
+
downloadAs: lowerLogicExpression(op.resultHandling.downloadAs),
|
|
210
|
+
} : undefined
|
|
211
|
+
})),
|
|
212
|
+
resources: decl.resources ?? [],
|
|
213
|
+
pwa: resolvePwaConfig(decl, policies),
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
// register with lowering engine
|
|
217
|
+
import { engine } from "./engine.js";
|
|
218
|
+
import { z } from "zod";
|
|
219
|
+
try {
|
|
220
|
+
engine.registerTransform("frontend", (decl, policies) => declToFrontendIR(decl, policies));
|
|
221
|
+
const schema = z.object({
|
|
222
|
+
pwa: z.object({
|
|
223
|
+
enabled: z.boolean().optional(),
|
|
224
|
+
name: z.string().optional(),
|
|
225
|
+
shortName: z.string().optional(),
|
|
226
|
+
description: z.string().optional(),
|
|
227
|
+
startUrl: z.string().optional(),
|
|
228
|
+
scope: z.string().optional(),
|
|
229
|
+
display: z.string().optional(),
|
|
230
|
+
backgroundColor: z.string().optional(),
|
|
231
|
+
themeColor: z.string().optional(),
|
|
232
|
+
orientation: z.string().optional(),
|
|
233
|
+
icons: z.array(z.object({
|
|
234
|
+
src: z.string(),
|
|
235
|
+
sizes: z.string(),
|
|
236
|
+
type: z.string(),
|
|
237
|
+
purpose: z.string().optional(),
|
|
238
|
+
})).optional(),
|
|
239
|
+
}).optional(),
|
|
240
|
+
}).passthrough();
|
|
241
|
+
engine.registerPolicySchema("frontend", schema);
|
|
242
|
+
}
|
|
243
|
+
catch (e) {
|
|
244
|
+
// ignore double registration in tests
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=frontend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend.js","sourceRoot":"","sources":["../../src/lowering/frontend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BackendIR } from "../../ir/domain/backend.js";
|
|
2
|
+
import type { BackendTargetIR } from "../../ir/target/backend.js";
|
|
3
|
+
export type BackendTargetPoliciesInput = {
|
|
4
|
+
backend?: unknown;
|
|
5
|
+
} | {
|
|
6
|
+
[key: string]: unknown;
|
|
7
|
+
};
|
|
8
|
+
export declare function backendDomainToTarget(ir: BackendIR, policies?: BackendTargetPoliciesInput): BackendTargetIR;
|
|
9
|
+
//# sourceMappingURL=to-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-backend.d.ts","sourceRoot":"","sources":["../../../src/lowering/targets/to-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAKlE,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,0BAA0B,GAAG,eAAe,CAmC3G"}
|