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.
Files changed (244) hide show
  1. package/CHANGELOG.md +113 -0
  2. package/LICENSE +21 -0
  3. package/README.md +161 -0
  4. package/dist/cli.d.ts +3 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +312 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/dsl/aggregator.d.ts +8 -0
  9. package/dist/dsl/aggregator.d.ts.map +1 -0
  10. package/dist/dsl/aggregator.js +64 -0
  11. package/dist/dsl/aggregator.js.map +1 -0
  12. package/dist/dsl/frontend-runtime.d.ts +486 -0
  13. package/dist/dsl/frontend-runtime.d.ts.map +1 -0
  14. package/dist/dsl/frontend-runtime.js +232 -0
  15. package/dist/dsl/frontend-runtime.js.map +1 -0
  16. package/dist/dsl/runtime.d.ts +33 -0
  17. package/dist/dsl/runtime.d.ts.map +1 -0
  18. package/dist/dsl/runtime.js +120 -0
  19. package/dist/dsl/runtime.js.map +1 -0
  20. package/dist/emit/backend/adapters.d.ts +11 -0
  21. package/dist/emit/backend/adapters.d.ts.map +1 -0
  22. package/dist/emit/backend/adapters.js +374 -0
  23. package/dist/emit/backend/adapters.js.map +1 -0
  24. package/dist/emit/backend/backend-tsmorph.d.ts +5 -0
  25. package/dist/emit/backend/backend-tsmorph.d.ts.map +1 -0
  26. package/dist/emit/backend/backend-tsmorph.js +858 -0
  27. package/dist/emit/backend/backend-tsmorph.js.map +1 -0
  28. package/dist/emit/backend/fake-backend.d.ts +2 -0
  29. package/dist/emit/backend/fake-backend.d.ts.map +1 -0
  30. package/dist/emit/backend/fake-backend.js +19 -0
  31. package/dist/emit/backend/fake-backend.js.map +1 -0
  32. package/dist/emit/backend/packaging.d.ts +3 -0
  33. package/dist/emit/backend/packaging.d.ts.map +1 -0
  34. package/dist/emit/backend/packaging.js +71 -0
  35. package/dist/emit/backend/packaging.js.map +1 -0
  36. package/dist/emit/backend/server.d.ts +4 -0
  37. package/dist/emit/backend/server.d.ts.map +1 -0
  38. package/dist/emit/backend/server.js +169 -0
  39. package/dist/emit/backend/server.js.map +1 -0
  40. package/dist/emit/cli/cli-fake.d.ts +2 -0
  41. package/dist/emit/cli/cli-fake.d.ts.map +1 -0
  42. package/dist/emit/cli/cli-fake.js +33 -0
  43. package/dist/emit/cli/cli-fake.js.map +1 -0
  44. package/dist/emit/electron/electron-shell.d.ts +3 -0
  45. package/dist/emit/electron/electron-shell.d.ts.map +1 -0
  46. package/dist/emit/electron/electron-shell.js +454 -0
  47. package/dist/emit/electron/electron-shell.js.map +1 -0
  48. package/dist/emit/engine.d.ts +14 -0
  49. package/dist/emit/engine.d.ts.map +1 -0
  50. package/dist/emit/engine.js +25 -0
  51. package/dist/emit/engine.js.map +1 -0
  52. package/dist/emit/format.d.ts +2 -0
  53. package/dist/emit/format.d.ts.map +1 -0
  54. package/dist/emit/format.js +23 -0
  55. package/dist/emit/format.js.map +1 -0
  56. package/dist/emit/frontend/frontend-react.d.ts +4 -0
  57. package/dist/emit/frontend/frontend-react.d.ts.map +1 -0
  58. package/dist/emit/frontend/frontend-react.js +2021 -0
  59. package/dist/emit/frontend/frontend-react.js.map +1 -0
  60. package/dist/emit/frontend/registry.d.ts +20 -0
  61. package/dist/emit/frontend/registry.d.ts.map +1 -0
  62. package/dist/emit/frontend/registry.js +46 -0
  63. package/dist/emit/frontend/registry.js.map +1 -0
  64. package/dist/emit/frontend/runtime-emitter.d.ts +4 -0
  65. package/dist/emit/frontend/runtime-emitter.d.ts.map +1 -0
  66. package/dist/emit/frontend/runtime-emitter.js +435 -0
  67. package/dist/emit/frontend/runtime-emitter.js.map +1 -0
  68. package/dist/emit/frontend/runtime-template.d.ts +28 -0
  69. package/dist/emit/frontend/runtime-template.d.ts.map +1 -0
  70. package/dist/emit/frontend/runtime-template.js +218 -0
  71. package/dist/emit/frontend/runtime-template.js.map +1 -0
  72. package/dist/emit/frontend/ssg.d.ts +8 -0
  73. package/dist/emit/frontend/ssg.d.ts.map +1 -0
  74. package/dist/emit/frontend/ssg.js +219 -0
  75. package/dist/emit/frontend/ssg.js.map +1 -0
  76. package/dist/emit/registry.d.ts +17 -0
  77. package/dist/emit/registry.d.ts.map +1 -0
  78. package/dist/emit/registry.js +38 -0
  79. package/dist/emit/registry.js.map +1 -0
  80. package/dist/emit/static-site/css.d.ts +5 -0
  81. package/dist/emit/static-site/css.d.ts.map +1 -0
  82. package/dist/emit/static-site/css.js +872 -0
  83. package/dist/emit/static-site/css.js.map +1 -0
  84. package/dist/emit/static-site/enhancements.d.ts +11 -0
  85. package/dist/emit/static-site/enhancements.d.ts.map +1 -0
  86. package/dist/emit/static-site/enhancements.js +266 -0
  87. package/dist/emit/static-site/enhancements.js.map +1 -0
  88. package/dist/emit/static-site/static-site-html.d.ts +3 -0
  89. package/dist/emit/static-site/static-site-html.d.ts.map +1 -0
  90. package/dist/emit/static-site/static-site-html.js +1172 -0
  91. package/dist/emit/static-site/static-site-html.js.map +1 -0
  92. package/dist/emit/utils/sdk.d.ts +15 -0
  93. package/dist/emit/utils/sdk.d.ts.map +1 -0
  94. package/dist/emit/utils/sdk.js +34 -0
  95. package/dist/emit/utils/sdk.js.map +1 -0
  96. package/dist/extensions/context.d.ts +23 -0
  97. package/dist/extensions/context.d.ts.map +1 -0
  98. package/dist/extensions/context.js +43 -0
  99. package/dist/extensions/context.js.map +1 -0
  100. package/dist/index.d.ts +32 -0
  101. package/dist/index.d.ts.map +1 -0
  102. package/dist/index.js +135 -0
  103. package/dist/index.js.map +1 -0
  104. package/dist/ir/decl/backend.raw.schema.d.ts +128 -0
  105. package/dist/ir/decl/backend.raw.schema.d.ts.map +1 -0
  106. package/dist/ir/decl/backend.raw.schema.js +24 -0
  107. package/dist/ir/decl/backend.raw.schema.js.map +1 -0
  108. package/dist/ir/decl/bundle.d.ts +15 -0
  109. package/dist/ir/decl/bundle.d.ts.map +1 -0
  110. package/dist/ir/decl/bundle.js +8 -0
  111. package/dist/ir/decl/bundle.js.map +1 -0
  112. package/dist/ir/decl/cli.raw.schema.d.ts +133 -0
  113. package/dist/ir/decl/cli.raw.schema.d.ts.map +1 -0
  114. package/dist/ir/decl/cli.raw.schema.js +20 -0
  115. package/dist/ir/decl/cli.raw.schema.js.map +1 -0
  116. package/dist/ir/decl/frontend.raw.schema.d.ts +6631 -0
  117. package/dist/ir/decl/frontend.raw.schema.d.ts.map +1 -0
  118. package/dist/ir/decl/frontend.raw.schema.js +272 -0
  119. package/dist/ir/decl/frontend.raw.schema.js.map +1 -0
  120. package/dist/ir/decl/index.d.ts +6 -0
  121. package/dist/ir/decl/index.d.ts.map +1 -0
  122. package/dist/ir/decl/index.js +6 -0
  123. package/dist/ir/decl/index.js.map +1 -0
  124. package/dist/ir/decl/normalize.schema.d.ts +9154 -0
  125. package/dist/ir/decl/normalize.schema.d.ts.map +1 -0
  126. package/dist/ir/decl/normalize.schema.js +71 -0
  127. package/dist/ir/decl/normalize.schema.js.map +1 -0
  128. package/dist/ir/domain/backend.d.ts +19 -0
  129. package/dist/ir/domain/backend.d.ts.map +1 -0
  130. package/dist/ir/domain/backend.js +3 -0
  131. package/dist/ir/domain/backend.js.map +1 -0
  132. package/dist/ir/domain/cli.d.ts +18 -0
  133. package/dist/ir/domain/cli.d.ts.map +1 -0
  134. package/dist/ir/domain/cli.js +2 -0
  135. package/dist/ir/domain/cli.js.map +1 -0
  136. package/dist/ir/domain/frontend/index.d.ts +190 -0
  137. package/dist/ir/domain/frontend/index.d.ts.map +1 -0
  138. package/dist/ir/domain/frontend/index.js +2 -0
  139. package/dist/ir/domain/frontend/index.js.map +1 -0
  140. package/dist/ir/domain/frontend.d.ts +2 -0
  141. package/dist/ir/domain/frontend.d.ts.map +1 -0
  142. package/dist/ir/domain/frontend.js +3 -0
  143. package/dist/ir/domain/frontend.js.map +1 -0
  144. package/dist/ir/frontend-contract.d.ts +187 -0
  145. package/dist/ir/frontend-contract.d.ts.map +1 -0
  146. package/dist/ir/frontend-contract.js +6 -0
  147. package/dist/ir/frontend-contract.js.map +1 -0
  148. package/dist/ir/target/backend.d.ts +11 -0
  149. package/dist/ir/target/backend.d.ts.map +1 -0
  150. package/dist/ir/target/backend.js +2 -0
  151. package/dist/ir/target/backend.js.map +1 -0
  152. package/dist/ir/target/backend.policy.d.ts +896 -0
  153. package/dist/ir/target/backend.policy.d.ts.map +1 -0
  154. package/dist/ir/target/backend.policy.js +106 -0
  155. package/dist/ir/target/backend.policy.js.map +1 -0
  156. package/dist/ir/target/cli.d.ts +3 -0
  157. package/dist/ir/target/cli.d.ts.map +1 -0
  158. package/dist/ir/target/cli.js +2 -0
  159. package/dist/ir/target/cli.js.map +1 -0
  160. package/dist/ir/target/electron.d.ts +99 -0
  161. package/dist/ir/target/electron.d.ts.map +1 -0
  162. package/dist/ir/target/electron.js +2 -0
  163. package/dist/ir/target/electron.js.map +1 -0
  164. package/dist/ir/target/electron.policy.d.ts +7015 -0
  165. package/dist/ir/target/electron.policy.d.ts.map +1 -0
  166. package/dist/ir/target/electron.policy.js +119 -0
  167. package/dist/ir/target/electron.policy.js.map +1 -0
  168. package/dist/ir/target/frontend.d.ts +12 -0
  169. package/dist/ir/target/frontend.d.ts.map +1 -0
  170. package/dist/ir/target/frontend.js +2 -0
  171. package/dist/ir/target/frontend.js.map +1 -0
  172. package/dist/ir/target/frontend.policy.d.ts +268 -0
  173. package/dist/ir/target/frontend.policy.d.ts.map +1 -0
  174. package/dist/ir/target/frontend.policy.js +33 -0
  175. package/dist/ir/target/frontend.policy.js.map +1 -0
  176. package/dist/ir/target/index.d.ts +6 -0
  177. package/dist/ir/target/index.d.ts.map +1 -0
  178. package/dist/ir/target/index.js +6 -0
  179. package/dist/ir/target/index.js.map +1 -0
  180. package/dist/ir/target/static-site.d.ts +18 -0
  181. package/dist/ir/target/static-site.d.ts.map +1 -0
  182. package/dist/ir/target/static-site.js +2 -0
  183. package/dist/ir/target/static-site.js.map +1 -0
  184. package/dist/ir/target/static-site.policy.d.ts +2911 -0
  185. package/dist/ir/target/static-site.policy.d.ts.map +1 -0
  186. package/dist/ir/target/static-site.policy.js +127 -0
  187. package/dist/ir/target/static-site.policy.js.map +1 -0
  188. package/dist/lowering/backend.d.ts +4 -0
  189. package/dist/lowering/backend.d.ts.map +1 -0
  190. package/dist/lowering/backend.js +57 -0
  191. package/dist/lowering/backend.js.map +1 -0
  192. package/dist/lowering/cli.d.ts +4 -0
  193. package/dist/lowering/cli.d.ts.map +1 -0
  194. package/dist/lowering/cli.js +22 -0
  195. package/dist/lowering/cli.js.map +1 -0
  196. package/dist/lowering/engine.d.ts +18 -0
  197. package/dist/lowering/engine.d.ts.map +1 -0
  198. package/dist/lowering/engine.js +47 -0
  199. package/dist/lowering/engine.js.map +1 -0
  200. package/dist/lowering/frontend.d.ts +9 -0
  201. package/dist/lowering/frontend.d.ts.map +1 -0
  202. package/dist/lowering/frontend.js +246 -0
  203. package/dist/lowering/frontend.js.map +1 -0
  204. package/dist/lowering/targets/to-backend.d.ts +9 -0
  205. package/dist/lowering/targets/to-backend.d.ts.map +1 -0
  206. package/dist/lowering/targets/to-backend.js +55 -0
  207. package/dist/lowering/targets/to-backend.js.map +1 -0
  208. package/dist/lowering/targets/to-cli.d.ts +4 -0
  209. package/dist/lowering/targets/to-cli.d.ts.map +1 -0
  210. package/dist/lowering/targets/to-cli.js +11 -0
  211. package/dist/lowering/targets/to-cli.js.map +1 -0
  212. package/dist/lowering/targets/to-electron.d.ts +30 -0
  213. package/dist/lowering/targets/to-electron.d.ts.map +1 -0
  214. package/dist/lowering/targets/to-electron.js +87 -0
  215. package/dist/lowering/targets/to-electron.js.map +1 -0
  216. package/dist/lowering/targets/to-frontend.d.ts +4 -0
  217. package/dist/lowering/targets/to-frontend.d.ts.map +1 -0
  218. package/dist/lowering/targets/to-frontend.js +30 -0
  219. package/dist/lowering/targets/to-frontend.js.map +1 -0
  220. package/dist/lowering/targets/to-static-site.d.ts +16 -0
  221. package/dist/lowering/targets/to-static-site.d.ts.map +1 -0
  222. package/dist/lowering/targets/to-static-site.js +30 -0
  223. package/dist/lowering/targets/to-static-site.js.map +1 -0
  224. package/dist/mappers/index.d.ts +12 -0
  225. package/dist/mappers/index.d.ts.map +1 -0
  226. package/dist/mappers/index.js +60 -0
  227. package/dist/mappers/index.js.map +1 -0
  228. package/dist/types/extension.d.ts +3 -0
  229. package/dist/types/extension.d.ts.map +1 -0
  230. package/dist/types/extension.js +2 -0
  231. package/dist/types/extension.js.map +1 -0
  232. package/dist/utils/array.d.ts +2 -0
  233. package/dist/utils/array.d.ts.map +1 -0
  234. package/dist/utils/array.js +4 -0
  235. package/dist/utils/array.js.map +1 -0
  236. package/dist/utils/index.d.ts +3 -0
  237. package/dist/utils/index.d.ts.map +1 -0
  238. package/dist/utils/index.js +3 -0
  239. package/dist/utils/index.js.map +1 -0
  240. package/dist/utils/string.d.ts +13 -0
  241. package/dist/utils/string.d.ts.map +1 -0
  242. package/dist/utils/string.js +56 -0
  243. package/dist/utils/string.js.map +1 -0
  244. package/package.json +112 -0
@@ -0,0 +1,232 @@
1
+ import path from "node:path";
2
+ import { pathToFileURL } from "node:url";
3
+ import { DeclFrontendAppSchema } from "../ir/decl/frontend.raw.schema.js";
4
+ let CURRENT_FRONTEND = null;
5
+ function assert(cond, msg) {
6
+ if (!cond)
7
+ throw new Error(msg);
8
+ }
9
+ function mergePolicy(target, value) {
10
+ if (!CURRENT_FRONTEND)
11
+ return;
12
+ CURRENT_FRONTEND.meta = CURRENT_FRONTEND.meta ?? {};
13
+ const existing = (CURRENT_FRONTEND.meta.policies ?? {});
14
+ CURRENT_FRONTEND.meta.policies = { ...existing, [target]: { ...(existing[target] ?? {}), ...value } };
15
+ }
16
+ const RUNTIME_HELPERS = [
17
+ "field",
18
+ "prop",
19
+ "agentChat",
20
+ "cliUsage",
21
+ "hero",
22
+ "features",
23
+ "testimonials",
24
+ "faq",
25
+ "logos",
26
+ "cta",
27
+ "stats",
28
+ "timeline",
29
+ "enableThemeToggle",
30
+ "code",
31
+ "table",
32
+ ];
33
+ function stripRuntimeHelpers(comp) {
34
+ for (const key of RUNTIME_HELPERS) {
35
+ if (typeof comp[key] === "function") {
36
+ delete comp[key];
37
+ }
38
+ }
39
+ }
40
+ export function datasource(id, config) {
41
+ assert(CURRENT_FRONTEND, "datasource() harus di dalam frontend()");
42
+ CURRENT_FRONTEND.datasources.push({ id, ...config });
43
+ }
44
+ export function operation(id, config) {
45
+ assert(CURRENT_FRONTEND, "operation() harus di dalam frontend()");
46
+ CURRENT_FRONTEND.operations.push({ id, ...config });
47
+ }
48
+ export function resource(id, config) {
49
+ assert(CURRENT_FRONTEND, "resource() harus di dalam frontend()");
50
+ CURRENT_FRONTEND.resources.push({ id, ...config });
51
+ }
52
+ export function meta(key, value) {
53
+ assert(CURRENT_FRONTEND, "meta() harus di dalam frontend()");
54
+ CURRENT_FRONTEND.meta = CURRENT_FRONTEND.meta ?? {};
55
+ CURRENT_FRONTEND.meta[key] = value;
56
+ }
57
+ export function policy(target, value) {
58
+ assert(CURRENT_FRONTEND, "policy() harus di dalam frontend()");
59
+ mergePolicy(target, value);
60
+ }
61
+ export function page(pName, opts, cb) {
62
+ assert(CURRENT_FRONTEND, "page() harus di dalam frontend()");
63
+ const page = {
64
+ type: "page",
65
+ name: pName,
66
+ path: opts.path,
67
+ hideHeader: opts.hideHeader,
68
+ description: opts.description,
69
+ docsLayout: opts.docsLayout,
70
+ docsGroupLabel: opts.docsGroupLabel,
71
+ components: []
72
+ };
73
+ if (typeof cb === "function") {
74
+ cb({
75
+ component(cName, cCb) {
76
+ const comp = { type: "component", name: cName, props: {}, form: { fields: [] } };
77
+ // add convenience methods to the comp object for DSL users: field() and prop()
78
+ comp.field = function (fieldName, type, label, validators, config) {
79
+ comp.form = comp.form ?? { fields: [] };
80
+ comp.form.fields.push({ name: fieldName, type, label, validators, ...config });
81
+ };
82
+ comp.prop = function (key, value) {
83
+ comp.props = comp.props ?? {};
84
+ comp.props[key] = value;
85
+ };
86
+ comp.agentChat = function (data) {
87
+ comp.agentChat = data;
88
+ };
89
+ comp.cliUsage = function (data) {
90
+ comp.cliUsage = data;
91
+ };
92
+ comp.hero = function (data) { comp.marketing = { kind: "hero", ...data }; };
93
+ comp.features = function (items, opts) { comp.marketing = { kind: "features", items, ...opts }; };
94
+ comp.testimonials = function (items, opts) { comp.marketing = { kind: "testimonials", items, ...opts }; };
95
+ comp.faq = function (items, opts) { comp.marketing = { kind: "faq", items, ...opts }; };
96
+ comp.logos = function (items, opts) { comp.marketing = { kind: "logos", items, ...opts }; };
97
+ comp.cta = function (title, subtitle, actions) { comp.marketing = { kind: "cta", title, subtitle, actions }; };
98
+ comp.stats = function (items, opts) { comp.marketing = { kind: "stats", items, ...opts }; };
99
+ comp.timeline = function (items, opts) { comp.marketing = { kind: "timeline", items, ...opts }; };
100
+ comp.enableThemeToggle = function () { comp.themeToggle = true; };
101
+ comp.code = function (snippet, language = "typescript", options) {
102
+ comp.codeBlock = { snippet, language, showLineNumbers: options?.showLineNumbers ?? true };
103
+ };
104
+ comp.table = function (data) { comp.table = data; };
105
+ if (typeof cCb === "function")
106
+ cCb(comp);
107
+ stripRuntimeHelpers(comp);
108
+ if (comp.html) {
109
+ throw new Error(`component.html is not allowed (component: ${comp.name}). Use component.content with Markdown instead.`);
110
+ }
111
+ const finalized = comp;
112
+ page.components.push(finalized);
113
+ if (CURRENT_FRONTEND)
114
+ CURRENT_FRONTEND.components.push(finalized);
115
+ }
116
+ });
117
+ }
118
+ if (CURRENT_FRONTEND)
119
+ CURRENT_FRONTEND.pages.push(page);
120
+ }
121
+ export function component(name, cb) {
122
+ assert(CURRENT_FRONTEND, "component() harus di dalam frontend()");
123
+ const comp = { type: "component", name: name, props: {}, form: { fields: [] } };
124
+ // add convenience methods to the comp object for DSL users: field() and prop()
125
+ comp.field = function (fieldName, type, label, validators, config) {
126
+ comp.form = comp.form ?? { fields: [] };
127
+ comp.form.fields.push({ name: fieldName, type, label, validators, ...config });
128
+ };
129
+ comp.prop = function (key, value) {
130
+ comp.props = comp.props ?? {};
131
+ comp.props[key] = value;
132
+ };
133
+ comp.agentChat = function (data) {
134
+ comp.agentChat = data;
135
+ };
136
+ comp.cliUsage = function (data) {
137
+ comp.cliUsage = data;
138
+ };
139
+ comp.hero = function (data) { comp.marketing = { kind: "hero", ...data }; };
140
+ comp.features = function (items, opts) { comp.marketing = { kind: "features", items, ...opts }; };
141
+ comp.testimonials = function (items, opts) { comp.marketing = { kind: "testimonials", items, ...opts }; };
142
+ comp.faq = function (items, opts) { comp.marketing = { kind: "faq", items, ...opts }; };
143
+ comp.logos = function (items, opts) { comp.marketing = { kind: "logos", items, ...opts }; };
144
+ comp.cta = function (title, subtitle, actions) { comp.marketing = { kind: "cta", title, subtitle, actions }; };
145
+ comp.stats = function (items, opts) { comp.marketing = { kind: "stats", items, ...opts }; };
146
+ comp.timeline = function (items, opts) { comp.marketing = { kind: "timeline", items, ...opts }; };
147
+ comp.enableThemeToggle = function () { comp.themeToggle = true; };
148
+ comp.code = function (snippet, language = "typescript", options) {
149
+ comp.codeBlock = { snippet, language, showLineNumbers: options?.showLineNumbers ?? true };
150
+ };
151
+ comp.table = function (data) { comp.table = data; };
152
+ if (typeof cb === "function")
153
+ cb(comp);
154
+ stripRuntimeHelpers(comp);
155
+ if (comp.html) {
156
+ throw new Error(`component.html is not allowed (component: ${comp.name}). Use component.content with Markdown instead.`);
157
+ }
158
+ if (CURRENT_FRONTEND)
159
+ CURRENT_FRONTEND.components.push(comp);
160
+ }
161
+ export function frontend(name, optsOrFn, maybeFn) {
162
+ assert(typeof name === "string" && name.length > 0, "frontend(name) harus string");
163
+ const opts = (typeof optsOrFn === "function" ? {} : optsOrFn) ?? {};
164
+ const fn = (typeof optsOrFn === "function" ? optsOrFn : maybeFn);
165
+ assert(typeof fn === "function", "frontend(..., fn) fn harus function");
166
+ const baseMeta = opts?.meta ?? {};
167
+ CURRENT_FRONTEND = {
168
+ type: "frontend",
169
+ name,
170
+ basePath: opts?.basePath ?? "/",
171
+ pages: [],
172
+ components: [],
173
+ datasources: opts?.datasources ?? [],
174
+ operations: opts?.operations ?? [],
175
+ resources: opts?.resources ?? [],
176
+ ...(opts?.pwa ? { pwa: opts.pwa } : {}),
177
+ meta: { ...baseMeta },
178
+ };
179
+ if (opts?.policies) {
180
+ for (const [target, value] of Object.entries(opts.policies)) {
181
+ mergePolicy(target, value);
182
+ }
183
+ }
184
+ fn({
185
+ datasource,
186
+ operation,
187
+ resource,
188
+ page,
189
+ component,
190
+ meta,
191
+ policy,
192
+ });
193
+ const parsed = DeclFrontendAppSchema.parse(CURRENT_FRONTEND);
194
+ CURRENT_FRONTEND = parsed;
195
+ return parsed;
196
+ }
197
+ export async function loadFrontendDsl(entry) {
198
+ const abs = path.resolve(process.cwd(), entry);
199
+ const url = pathToFileURL(abs).href;
200
+ // reset
201
+ CURRENT_FRONTEND = null;
202
+ try {
203
+ await import(url);
204
+ }
205
+ catch (err) {
206
+ // Some environments (tsx ESM loader) may fail resolving .ts imports via file URL.
207
+ // Fall back to transpile the TypeScript file to a temporary .mjs and import that.
208
+ console.warn("frontend loader dynamic import failed, attempting transpile fallback:", err?.message ?? err);
209
+ try {
210
+ const ts = await import("typescript");
211
+ const src = await (await import("node:fs/promises")).readFile(abs, "utf-8");
212
+ const transpiled = ts.transpileModule(src, { compilerOptions: { module: ts.ModuleKind.ESNext, target: ts.ScriptTarget.ES2022, esModuleInterop: true } }).outputText;
213
+ // keep temp file in same dir so relative imports remain valid
214
+ const tmp = path.join(path.dirname(abs), `.dsl-tmp-${Date.now()}.mjs`);
215
+ await (await import("node:fs/promises")).writeFile(tmp, transpiled, "utf-8");
216
+ await import(pathToFileURL(tmp).href);
217
+ // best-effort cleanup
218
+ try {
219
+ await (await import("node:fs/promises")).unlink(tmp);
220
+ }
221
+ catch (_) { }
222
+ }
223
+ catch (err2) {
224
+ throw new Error(`Failed to load frontend DSL (${entry}): ${err2?.message ?? err2}`);
225
+ }
226
+ }
227
+ if (!CURRENT_FRONTEND)
228
+ throw new Error(`Frontend DSL did not call frontend(...)`);
229
+ const parsed = DeclFrontendAppSchema.parse(CURRENT_FRONTEND);
230
+ return parsed;
231
+ }
232
+ //# sourceMappingURL=frontend-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-runtime.js","sourceRoot":"","sources":["../../src/dsl/frontend-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { DeclApp } from "../ir/decl/backend.raw.schema.js";
2
+ type EntityBuilder = {
3
+ create(opName?: string): void;
4
+ get(opName?: string): void;
5
+ list(opName?: string): void;
6
+ update(opName?: string): void;
7
+ remove(opName?: string): void;
8
+ model(fields: Record<string, string>): void;
9
+ plural(p: string): void;
10
+ op(kind: "create" | "get" | "list" | "update" | "remove", options?: {
11
+ name?: string;
12
+ enabled?: boolean;
13
+ }): void;
14
+ };
15
+ type AppBuilder = {
16
+ entity(name: string, fn: (e: EntityBuilder) => void): void;
17
+ meta(key: string, value: unknown): void;
18
+ policy(target: string, value: Record<string, any>): void;
19
+ };
20
+ type AppOptions = {
21
+ meta?: Record<string, any>;
22
+ policies?: Record<string, any>;
23
+ };
24
+ export declare function app(name: string, fn: (a: AppBuilder) => void): void;
25
+ export declare function app(name: string, opts: AppOptions, fn: (a: AppBuilder) => void): void;
26
+ /**
27
+ * Load DSL file (TS/JS) by dynamic import.
28
+ * - Untuk proyek ini: jalankan CLI via `tsx` (default).
29
+ * - Jika ingin `node dist/cli.js`, file DSL tetap bisa TS karena tsconfig include, tapi runtime Node butuh JS/ESM.
30
+ */
31
+ export declare function loadDsl(entry: string): Promise<DeclApp>;
32
+ export {};
33
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/dsl/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAA6B,MAAM,kCAAkC,CAAC;AAEtF,KAAK,aAAa,GAAG;IACnB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAE5C,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACjH,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;CAC1D,CAAC;AAcF,KAAK,UAAU,GAAG;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC,CAAC;AASF,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;AACrE,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;AAmEvF;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA+B7D"}
@@ -0,0 +1,120 @@
1
+ import path from "node:path";
2
+ import { pathToFileURL } from "node:url";
3
+ import { DeclAppSchema } from "../ir/decl/backend.raw.schema.js";
4
+ let CURRENT = null;
5
+ function assert(cond, msg) {
6
+ if (!cond)
7
+ throw new Error(msg);
8
+ }
9
+ import { kebab } from "../utils/index.js";
10
+ function defaultEntityId(name) {
11
+ return `${kebab(name)}`;
12
+ }
13
+ function mergePolicy(target, value) {
14
+ if (!CURRENT)
15
+ return;
16
+ CURRENT.meta = CURRENT.meta ?? {};
17
+ const existing = (CURRENT.meta.policies ?? {});
18
+ CURRENT.meta.policies = { ...existing, [target]: { ...(existing[target] ?? {}), ...value } };
19
+ }
20
+ export function app(name, optsOrFn, maybeFn) {
21
+ assert(typeof name === "string" && name.length > 0, "app(name) harus string");
22
+ const opts = (typeof optsOrFn === "function" ? {} : optsOrFn) ?? {};
23
+ const fn = (typeof optsOrFn === "function" ? optsOrFn : maybeFn);
24
+ assert(typeof fn === "function", "app(..., fn) fn harus function");
25
+ CURRENT = { type: "app", name, entities: [], meta: { ...(opts.meta ?? {}) } };
26
+ if (opts.policies) {
27
+ for (const [target, value] of Object.entries(opts.policies)) {
28
+ mergePolicy(target, value);
29
+ }
30
+ }
31
+ fn({
32
+ entity(entityName, entityFn) {
33
+ assert(CURRENT, "entity() harus di dalam app()");
34
+ const entity = {
35
+ type: "entity",
36
+ name: entityName,
37
+ id: defaultEntityId(entityName),
38
+ operations: [],
39
+ };
40
+ const eb = {
41
+ create(opName) {
42
+ entity.operations.push({ kind: "create", name: opName ?? "create" });
43
+ },
44
+ get(opName) {
45
+ entity.operations.push({ kind: "get", name: opName ?? "get" });
46
+ },
47
+ list(opName) {
48
+ entity.operations.push({ kind: "list", name: opName ?? "list" });
49
+ },
50
+ update(opName) {
51
+ entity.operations.push({ kind: "update", name: opName ?? "update" });
52
+ },
53
+ remove(opName) {
54
+ entity.operations.push({ kind: "remove", name: opName ?? "remove" });
55
+ },
56
+ model(fields) {
57
+ // shallow copy
58
+ entity.model = { ...(entity.model ?? {}), ...fields };
59
+ },
60
+ plural(p) {
61
+ entity.plural = p;
62
+ },
63
+ op(kind, options) {
64
+ if (options?.enabled === false)
65
+ return;
66
+ entity.operations.push({ kind, name: options?.name ?? kind });
67
+ },
68
+ };
69
+ entityFn(eb);
70
+ CURRENT.entities.push(entity);
71
+ },
72
+ meta(key, value) {
73
+ assert(CURRENT, "meta() harus di dalam app()");
74
+ CURRENT.meta[key] = value;
75
+ },
76
+ policy(target, value) {
77
+ assert(CURRENT, "policy() harus di dalam app()");
78
+ mergePolicy(target, value);
79
+ },
80
+ });
81
+ }
82
+ /**
83
+ * Load DSL file (TS/JS) by dynamic import.
84
+ * - Untuk proyek ini: jalankan CLI via `tsx` (default).
85
+ * - Jika ingin `node dist/cli.js`, file DSL tetap bisa TS karena tsconfig include, tapi runtime Node butuh JS/ESM.
86
+ */
87
+ export async function loadDsl(entry) {
88
+ const abs = path.resolve(process.cwd(), entry);
89
+ const url = pathToFileURL(abs).href;
90
+ // reset
91
+ CURRENT = null;
92
+ try {
93
+ await import(url);
94
+ }
95
+ catch (err) {
96
+ const errMessage = err instanceof Error ? err.message : String(err);
97
+ console.warn("backend loader dynamic import failed, attempting transpile fallback:", errMessage);
98
+ try {
99
+ const ts = await import("typescript");
100
+ const src = await (await import("node:fs/promises")).readFile(abs, "utf-8");
101
+ const transpiled = ts.transpileModule(src, { compilerOptions: { module: ts.ModuleKind.ESNext, target: ts.ScriptTarget.ES2022, esModuleInterop: true } }).outputText;
102
+ const tmp = path.join(path.dirname(abs), `.dsl-tmp-${Date.now()}.mjs`);
103
+ await (await import("node:fs/promises")).writeFile(tmp, transpiled, "utf-8");
104
+ await import(pathToFileURL(tmp).href);
105
+ try {
106
+ await (await import("node:fs/promises")).unlink(tmp);
107
+ }
108
+ catch (_) { }
109
+ }
110
+ catch (err2) {
111
+ const errMessage2 = err2 instanceof Error ? err2.message : String(err2);
112
+ throw new Error(`Failed to load DSL (${entry}): ${errMessage2}`);
113
+ }
114
+ }
115
+ assert(CURRENT, `DSL tidak memanggil app(...) — file: ${entry}`);
116
+ // validate + normalize
117
+ const parsed = DeclAppSchema.parse(CURRENT);
118
+ return parsed;
119
+ }
120
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/dsl/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAiB,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAW,aAAa,EAAc,MAAM,kCAAkC,CAAC;AAsBtF,IAAI,OAAO,GAAmB,IAAI,CAAC;AAEnC,SAAS,MAAM,CAAC,IAAa,EAAE,GAAW;IACxC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1B,CAAC;AAOD,SAAS,WAAW,CAAC,MAAc,EAAE,KAA0B;IAC7D,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAwB,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC;AAC/F,CAAC;AAID,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,QAAgD,EAAE,OAAiC;IACnH,MAAM,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,wBAAwB,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACpE,MAAM,EAAE,GAAG,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAA4B,CAAC;IAC5F,MAAM,CAAC,OAAO,EAAE,KAAK,UAAU,EAAE,gCAAgC,CAAC,CAAC;IAEnE,OAAO,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;IAC9E,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,WAAW,CAAC,MAAM,EAAE,KAA4B,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,EAAE,CAAC;QACD,MAAM,CAAC,UAAU,EAAE,QAAQ;YACzB,MAAM,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;YACjD,MAAM,MAAM,GAAe;gBACzB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,EAAE,EAAE,eAAe,CAAC,UAAU,CAAC;gBAC/B,UAAU,EAAE,EAAE;aACf,CAAC;YAEF,MAAM,EAAE,GAAkB;gBACxB,MAAM,CAAC,MAAM;oBACX,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;gBACvE,CAAC;gBACD,GAAG,CAAC,MAAM;oBACR,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;gBACjE,CAAC;gBACD,IAAI,CAAC,MAAM;oBACT,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;gBACnE,CAAC;gBACD,MAAM,CAAC,MAAM;oBACX,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;gBACvE,CAAC;gBACD,MAAM,CAAC,MAAM;oBACX,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;gBACvE,CAAC;gBACD,KAAK,CAAC,MAAM;oBACV,eAAe;oBACf,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;gBACxD,CAAC;gBACD,MAAM,CAAC,CAAS;oBACd,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpB,CAAC;gBACD,EAAE,CAAC,IAAI,EAAE,OAAO;oBACd,IAAI,OAAO,EAAE,OAAO,KAAK,KAAK;wBAAE,OAAO;oBACvC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;gBAChE,CAAC;aACF,CAAC;YAEF,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,KAAK;YACb,MAAM,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC5B,CAAC;QACD,MAAM,CAAC,MAAM,EAAE,KAAK;YAClB,MAAM,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;YACjD,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAa;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IAEpC,QAAQ;IACR,OAAO,GAAG,IAAI,CAAC;IAEf,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,sEAAsE,EAAE,UAAU,CAAC,CAAC;QACjG,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC5E,MAAM,UAAU,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC;YACpK,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,YAAY,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACvE,MAAM,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAC7E,MAAM,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC;gBAAC,MAAM,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,IAAa,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,MAAM,WAAW,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,wCAAwC,KAAK,EAAE,CAAC,CAAC;IAEjE,uBAAuB;IACvB,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Project } from "ts-morph";
2
+ export declare function emitIdAdapter(project: Project, outDir: string, policies?: any): void;
3
+ export declare function emitLoggerAdapter(project: Project, outDir: string, policies?: any): void;
4
+ export declare function emitContextAdapter(project: Project, outDir: string, policies?: any): void;
5
+ export declare function emitHttpAdapter(project: Project, outDir: string, policies?: any): void;
6
+ export declare function emitErrorAdapter(project: Project, outDir: string, policies?: any): void;
7
+ export declare function emitPaginationAdapter(project: Project, outDir: string, policies?: any): void;
8
+ export declare function emitValidationAdapter(project: Project, outDir: string, policies?: any): void;
9
+ export declare function emitResponseAdapter(project: Project, outDir: string, policies?: any): void;
10
+ export declare function emitAuthAdapter(project: Project, outDir: string, policies?: any): void;
11
+ //# sourceMappingURL=adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../../src/emit/backend/adapters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,QAgC7E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,QAsCjF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,QA6BlF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,QA+C/E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,QAsChF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,QA4BrF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,QAiDrF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,QA0CnF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,QA8D/E"}