@haustle/notion-orm 0.0.43 → 0.0.45

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 (412) hide show
  1. package/README.md +449 -109
  2. package/build/src/agents-sdk-resolver.d.ts +8 -0
  3. package/build/src/agents-sdk-resolver.d.ts.map +1 -0
  4. package/build/src/agents-sdk-resolver.js +23 -0
  5. package/build/src/agents-sdk-resolver.js.map +1 -0
  6. package/build/src/ast/agents/agent-file-writer.d.ts +21 -0
  7. package/build/src/ast/agents/agent-file-writer.d.ts.map +1 -0
  8. package/build/src/ast/agents/agent-file-writer.js +99 -0
  9. package/build/src/ast/agents/agent-file-writer.js.map +1 -0
  10. package/build/src/ast/agents/generate-agents-cli.d.ts +24 -0
  11. package/build/src/ast/agents/generate-agents-cli.d.ts.map +1 -0
  12. package/build/src/ast/agents/generate-agents-cli.js +193 -0
  13. package/build/src/ast/agents/generate-agents-cli.js.map +1 -0
  14. package/build/src/ast/database/database-file-writer.d.ts +37 -0
  15. package/build/src/ast/database/database-file-writer.d.ts.map +1 -0
  16. package/build/src/ast/database/database-file-writer.js +240 -0
  17. package/build/src/ast/database/database-file-writer.js.map +1 -0
  18. package/build/src/ast/database/generate-databases-cli.d.ts +27 -0
  19. package/build/src/ast/database/generate-databases-cli.d.ts.map +1 -0
  20. package/build/src/ast/database/generate-databases-cli.js +141 -0
  21. package/build/src/ast/database/generate-databases-cli.js.map +1 -0
  22. package/build/src/ast/database/notion-column-generators.d.ts +180 -0
  23. package/build/src/ast/database/notion-column-generators.d.ts.map +1 -0
  24. package/build/src/ast/database/notion-column-generators.js +269 -0
  25. package/build/src/ast/database/notion-column-generators.js.map +1 -0
  26. package/build/src/ast/database/zod-schema.d.ts +17 -0
  27. package/build/src/ast/database/zod-schema.d.ts.map +1 -0
  28. package/build/src/ast/database/zod-schema.js +5 -0
  29. package/build/src/ast/database/zod-schema.js.map +1 -0
  30. package/build/src/ast/demo/datasource-fixture-builder.d.ts +38 -0
  31. package/build/src/ast/demo/datasource-fixture-builder.d.ts.map +1 -0
  32. package/build/src/ast/demo/datasource-fixture-builder.js +274 -0
  33. package/build/src/ast/demo/datasource-fixture-builder.js.map +1 -0
  34. package/build/src/ast/demo/demo-entry-builders.d.ts +28 -0
  35. package/build/src/ast/demo/demo-entry-builders.d.ts.map +1 -0
  36. package/build/src/ast/demo/demo-entry-builders.js +133 -0
  37. package/build/src/ast/demo/demo-entry-builders.js.map +1 -0
  38. package/build/src/ast/demo/demo-playground-spec.d.ts +51 -0
  39. package/build/src/ast/demo/demo-playground-spec.d.ts.map +1 -0
  40. package/build/src/ast/demo/demo-playground-spec.js +91 -0
  41. package/build/src/ast/demo/demo-playground-spec.js.map +1 -0
  42. package/build/src/ast/demo/demo-workspace-builder.d.ts +24 -0
  43. package/build/src/ast/demo/demo-workspace-builder.d.ts.map +1 -0
  44. package/build/src/ast/demo/demo-workspace-builder.js +90 -0
  45. package/build/src/ast/demo/demo-workspace-builder.js.map +1 -0
  46. package/build/src/ast/shared/ast-builders.d.ts +112 -0
  47. package/build/src/ast/shared/ast-builders.d.ts.map +1 -0
  48. package/build/src/ast/shared/ast-builders.js +181 -0
  49. package/build/src/ast/shared/ast-builders.js.map +1 -0
  50. package/build/src/ast/shared/cached-metadata.d.ts +26 -0
  51. package/build/src/ast/shared/cached-metadata.d.ts.map +1 -0
  52. package/build/src/ast/shared/cached-metadata.js +76 -0
  53. package/build/src/ast/shared/cached-metadata.js.map +1 -0
  54. package/build/src/ast/shared/codegen-diagnostics.d.ts +23 -0
  55. package/build/src/ast/shared/codegen-diagnostics.d.ts.map +1 -0
  56. package/build/src/ast/shared/codegen-diagnostics.js +13 -0
  57. package/build/src/ast/shared/codegen-diagnostics.js.map +1 -0
  58. package/build/src/ast/shared/codegen-environment.d.ts +37 -0
  59. package/build/src/ast/shared/codegen-environment.d.ts.map +1 -0
  60. package/build/src/ast/shared/codegen-environment.js +53 -0
  61. package/build/src/ast/shared/codegen-environment.js.map +1 -0
  62. package/build/src/ast/shared/constants.d.ts +98 -0
  63. package/build/src/ast/shared/constants.d.ts.map +1 -0
  64. package/build/src/ast/shared/constants.js +145 -0
  65. package/build/src/ast/shared/constants.js.map +1 -0
  66. package/build/src/ast/shared/emit/config-emitter.d.ts +56 -0
  67. package/build/src/ast/shared/emit/config-emitter.d.ts.map +1 -0
  68. package/build/src/ast/shared/emit/config-emitter.js +454 -0
  69. package/build/src/ast/shared/emit/config-emitter.js.map +1 -0
  70. package/build/src/ast/shared/emit/emit-value-as-expression.d.ts +10 -0
  71. package/build/src/ast/shared/emit/emit-value-as-expression.d.ts.map +1 -0
  72. package/build/src/ast/shared/emit/emit-value-as-expression.js +37 -0
  73. package/build/src/ast/shared/emit/emit-value-as-expression.js.map +1 -0
  74. package/build/src/ast/shared/emit/orm-index-emitter.d.ts +61 -0
  75. package/build/src/ast/shared/emit/orm-index-emitter.d.ts.map +1 -0
  76. package/build/src/ast/shared/emit/orm-index-emitter.js +376 -0
  77. package/build/src/ast/shared/emit/orm-index-emitter.js.map +1 -0
  78. package/build/src/ast/shared/emit/registry-emitter.d.ts +35 -0
  79. package/build/src/ast/shared/emit/registry-emitter.d.ts.map +1 -0
  80. package/build/src/ast/shared/emit/registry-emitter.js +39 -0
  81. package/build/src/ast/shared/emit/registry-emitter.js.map +1 -0
  82. package/build/src/ast/shared/emit/ts-emit-core.d.ts +79 -0
  83. package/build/src/ast/shared/emit/ts-emit-core.d.ts.map +1 -0
  84. package/build/src/ast/shared/emit/ts-emit-core.js +135 -0
  85. package/build/src/ast/shared/emit/ts-emit-core.js.map +1 -0
  86. package/build/src/ast/shared/emit/ts-emit-options.d.ts +29 -0
  87. package/build/src/ast/shared/emit/ts-emit-options.d.ts.map +1 -0
  88. package/build/src/ast/shared/emit/ts-emit-options.js +29 -0
  89. package/build/src/ast/shared/emit/ts-emit-options.js.map +1 -0
  90. package/build/src/base.d.ts +21 -0
  91. package/build/src/base.d.ts.map +1 -0
  92. package/build/src/base.js +19 -0
  93. package/build/src/base.js.map +1 -0
  94. package/build/src/cli/agents-sdk-setup.d.ts +2 -0
  95. package/build/src/cli/agents-sdk-setup.d.ts.map +1 -0
  96. package/build/src/cli/agents-sdk-setup.js +107 -0
  97. package/build/src/cli/agents-sdk-setup.js.map +1 -0
  98. package/build/src/cli/helpers.d.ts +14 -0
  99. package/build/src/cli/helpers.d.ts.map +1 -0
  100. package/build/src/cli/helpers.js +125 -0
  101. package/build/src/cli/helpers.js.map +1 -0
  102. package/build/src/cli/index.d.ts +3 -0
  103. package/build/src/cli/index.d.ts.map +1 -0
  104. package/build/src/cli/index.js +244 -0
  105. package/build/src/cli/index.js.map +1 -0
  106. package/build/src/cli/sync-progress-renderer.d.ts +20 -0
  107. package/build/src/cli/sync-progress-renderer.d.ts.map +1 -0
  108. package/build/src/cli/sync-progress-renderer.js +79 -0
  109. package/build/src/cli/sync-progress-renderer.js.map +1 -0
  110. package/build/src/cli/sync-progress.d.ts +55 -0
  111. package/build/src/cli/sync-progress.d.ts.map +1 -0
  112. package/build/src/cli/sync-progress.js +120 -0
  113. package/build/src/cli/sync-progress.js.map +1 -0
  114. package/build/src/cli/sync-report.d.ts +17 -0
  115. package/build/src/cli/sync-report.d.ts.map +1 -0
  116. package/build/src/cli/sync-report.js +86 -0
  117. package/build/src/cli/sync-report.js.map +1 -0
  118. package/build/src/client/agent/AgentClient.d.ts +84 -0
  119. package/build/src/client/agent/AgentClient.d.ts.map +1 -0
  120. package/build/src/client/agent/AgentClient.js +118 -0
  121. package/build/src/client/agent/AgentClient.js.map +1 -0
  122. package/build/src/client/database/DatabaseClient.d.ts +37 -0
  123. package/build/src/client/database/DatabaseClient.d.ts.map +1 -0
  124. package/build/src/client/database/DatabaseClient.js +328 -0
  125. package/build/src/client/database/DatabaseClient.js.map +1 -0
  126. package/build/src/client/database/create/build-create-page-parameters.d.ts +9 -0
  127. package/build/src/client/database/create/build-create-page-parameters.d.ts.map +1 -0
  128. package/build/src/client/database/create/build-create-page-parameters.js +13 -0
  129. package/build/src/client/database/create/build-create-page-parameters.js.map +1 -0
  130. package/build/src/client/database/create/index.d.ts +4 -0
  131. package/build/src/client/database/create/index.d.ts.map +1 -0
  132. package/build/src/client/database/create/index.js +4 -0
  133. package/build/src/client/database/create/index.js.map +1 -0
  134. package/build/src/client/database/create/map-to-notion-properties.d.ts +14 -0
  135. package/build/src/client/database/create/map-to-notion-properties.d.ts.map +1 -0
  136. package/build/src/client/database/create/map-to-notion-properties.js +31 -0
  137. package/build/src/client/database/create/map-to-notion-properties.js.map +1 -0
  138. package/build/src/client/database/create/property-value.d.ts +16 -0
  139. package/build/src/client/database/create/property-value.d.ts.map +1 -0
  140. package/build/src/client/database/create/property-value.js +213 -0
  141. package/build/src/client/database/create/property-value.js.map +1 -0
  142. package/build/src/client/database/query/build-query-params.d.ts +11 -0
  143. package/build/src/client/database/query/build-query-params.d.ts.map +1 -0
  144. package/build/src/client/database/query/build-query-params.js +24 -0
  145. package/build/src/client/database/query/build-query-params.js.map +1 -0
  146. package/build/src/client/database/query/build-query-response.d.ts +23 -0
  147. package/build/src/client/database/query/build-query-response.d.ts.map +1 -0
  148. package/build/src/client/database/query/build-query-response.js +41 -0
  149. package/build/src/client/database/query/build-query-response.js.map +1 -0
  150. package/build/src/client/database/query/filter/builders.d.ts +4 -0
  151. package/build/src/client/database/query/filter/builders.d.ts.map +1 -0
  152. package/build/src/client/database/query/filter/builders.js +141 -0
  153. package/build/src/client/database/query/filter/builders.js.map +1 -0
  154. package/build/src/client/database/query/filter/compound.d.ts +3 -0
  155. package/build/src/client/database/query/filter/compound.d.ts.map +1 -0
  156. package/build/src/client/database/query/filter/compound.js +13 -0
  157. package/build/src/client/database/query/filter/compound.js.map +1 -0
  158. package/build/src/client/database/query/filter/index.d.ts +3 -0
  159. package/build/src/client/database/query/filter/index.d.ts.map +1 -0
  160. package/build/src/client/database/query/filter/index.js +89 -0
  161. package/build/src/client/database/query/filter/index.js.map +1 -0
  162. package/build/src/client/database/query/http-guards.d.ts +2 -0
  163. package/build/src/client/database/query/http-guards.d.ts.map +1 -0
  164. package/build/src/client/database/query/http-guards.js +10 -0
  165. package/build/src/client/database/query/http-guards.js.map +1 -0
  166. package/build/src/client/database/query/index.d.ts +5 -0
  167. package/build/src/client/database/query/index.d.ts.map +1 -0
  168. package/build/src/client/database/query/index.js +5 -0
  169. package/build/src/client/database/query/index.js.map +1 -0
  170. package/build/src/client/database/query/normalize-page-result.d.ts +15 -0
  171. package/build/src/client/database/query/normalize-page-result.d.ts.map +1 -0
  172. package/build/src/client/database/query/normalize-page-result.js +35 -0
  173. package/build/src/client/database/query/normalize-page-result.js.map +1 -0
  174. package/build/src/client/database/query/page-collection.d.ts +42 -0
  175. package/build/src/client/database/query/page-collection.d.ts.map +1 -0
  176. package/build/src/client/database/query/page-collection.js +71 -0
  177. package/build/src/client/database/query/page-collection.js.map +1 -0
  178. package/build/src/client/database/query/projection.d.ts +9 -0
  179. package/build/src/client/database/query/projection.d.ts.map +1 -0
  180. package/build/src/client/database/query/projection.js +43 -0
  181. package/build/src/client/database/query/projection.js.map +1 -0
  182. package/build/src/client/database/query/response/checkbox.d.ts +3 -0
  183. package/build/src/client/database/query/response/checkbox.d.ts.map +1 -0
  184. package/build/src/client/database/query/response/checkbox.js +7 -0
  185. package/build/src/client/database/query/response/checkbox.js.map +1 -0
  186. package/build/src/client/database/query/response/created_by.d.ts +3 -0
  187. package/build/src/client/database/query/response/created_by.d.ts.map +1 -0
  188. package/build/src/client/database/query/response/created_by.js +8 -0
  189. package/build/src/client/database/query/response/created_by.js.map +1 -0
  190. package/build/src/client/database/query/response/created_time.d.ts +3 -0
  191. package/build/src/client/database/query/response/created_time.d.ts.map +1 -0
  192. package/build/src/client/database/query/response/created_time.js +7 -0
  193. package/build/src/client/database/query/response/created_time.js.map +1 -0
  194. package/build/src/client/database/query/response/date.d.ts +6 -0
  195. package/build/src/client/database/query/response/date.d.ts.map +1 -0
  196. package/build/src/client/database/query/response/date.js +13 -0
  197. package/build/src/client/database/query/response/date.js.map +1 -0
  198. package/build/src/client/database/query/response/email.d.ts +3 -0
  199. package/build/src/client/database/query/response/email.d.ts.map +1 -0
  200. package/build/src/client/database/query/response/email.js +7 -0
  201. package/build/src/client/database/query/response/email.js.map +1 -0
  202. package/build/src/client/database/query/response/files.d.ts +6 -0
  203. package/build/src/client/database/query/response/files.d.ts.map +1 -0
  204. package/build/src/client/database/query/response/files.js +8 -0
  205. package/build/src/client/database/query/response/files.js.map +1 -0
  206. package/build/src/client/database/query/response/index.d.ts +53 -0
  207. package/build/src/client/database/query/response/index.d.ts.map +1 -0
  208. package/build/src/client/database/query/response/index.js +44 -0
  209. package/build/src/client/database/query/response/index.js.map +1 -0
  210. package/build/src/client/database/query/response/last_edited_by.d.ts +3 -0
  211. package/build/src/client/database/query/response/last_edited_by.d.ts.map +1 -0
  212. package/build/src/client/database/query/response/last_edited_by.js +8 -0
  213. package/build/src/client/database/query/response/last_edited_by.js.map +1 -0
  214. package/build/src/client/database/query/response/last_edited_time.d.ts +3 -0
  215. package/build/src/client/database/query/response/last_edited_time.d.ts.map +1 -0
  216. package/build/src/client/database/query/response/last_edited_time.js +7 -0
  217. package/build/src/client/database/query/response/last_edited_time.js.map +1 -0
  218. package/build/src/client/database/query/response/multi_select.d.ts +3 -0
  219. package/build/src/client/database/query/response/multi_select.d.ts.map +1 -0
  220. package/build/src/client/database/query/response/multi_select.js +10 -0
  221. package/build/src/client/database/query/response/multi_select.js.map +1 -0
  222. package/build/src/client/database/query/response/number.d.ts +3 -0
  223. package/build/src/client/database/query/response/number.d.ts.map +1 -0
  224. package/build/src/client/database/query/response/number.js +7 -0
  225. package/build/src/client/database/query/response/number.js.map +1 -0
  226. package/build/src/client/database/query/response/people.d.ts +3 -0
  227. package/build/src/client/database/query/response/people.d.ts.map +1 -0
  228. package/build/src/client/database/query/response/people.js +13 -0
  229. package/build/src/client/database/query/response/people.js.map +1 -0
  230. package/build/src/client/database/query/response/phone_number.d.ts +3 -0
  231. package/build/src/client/database/query/response/phone_number.d.ts.map +1 -0
  232. package/build/src/client/database/query/response/phone_number.js +7 -0
  233. package/build/src/client/database/query/response/phone_number.js.map +1 -0
  234. package/build/src/client/database/query/response/relation.d.ts +4 -0
  235. package/build/src/client/database/query/response/relation.d.ts.map +1 -0
  236. package/build/src/client/database/query/response/relation.js +14 -0
  237. package/build/src/client/database/query/response/relation.js.map +1 -0
  238. package/build/src/client/database/query/response/rich_text.d.ts +3 -0
  239. package/build/src/client/database/query/response/rich_text.d.ts.map +1 -0
  240. package/build/src/client/database/query/response/rich_text.js +12 -0
  241. package/build/src/client/database/query/response/rich_text.js.map +1 -0
  242. package/build/src/client/database/query/response/select.d.ts +3 -0
  243. package/build/src/client/database/query/response/select.d.ts.map +1 -0
  244. package/build/src/client/database/query/response/select.js +7 -0
  245. package/build/src/client/database/query/response/select.js.map +1 -0
  246. package/build/src/client/database/query/response/shared.d.ts +6 -0
  247. package/build/src/client/database/query/response/shared.d.ts.map +1 -0
  248. package/build/src/client/database/query/response/shared.js +41 -0
  249. package/build/src/client/database/query/response/shared.js.map +1 -0
  250. package/build/src/client/database/query/response/status.d.ts +3 -0
  251. package/build/src/client/database/query/response/status.d.ts.map +1 -0
  252. package/build/src/client/database/query/response/status.js +7 -0
  253. package/build/src/client/database/query/response/status.js.map +1 -0
  254. package/build/src/client/database/query/response/title.d.ts +3 -0
  255. package/build/src/client/database/query/response/title.d.ts.map +1 -0
  256. package/build/src/client/database/query/response/title.js +12 -0
  257. package/build/src/client/database/query/response/title.js.map +1 -0
  258. package/build/src/client/database/query/response/unique_id.d.ts +3 -0
  259. package/build/src/client/database/query/response/unique_id.d.ts.map +1 -0
  260. package/build/src/client/database/query/response/unique_id.js +14 -0
  261. package/build/src/client/database/query/response/unique_id.js.map +1 -0
  262. package/build/src/client/database/query/response/url.d.ts +3 -0
  263. package/build/src/client/database/query/response/url.d.ts.map +1 -0
  264. package/build/src/client/database/query/response/url.js +7 -0
  265. package/build/src/client/database/query/response/url.js.map +1 -0
  266. package/build/src/client/database/query/schema-drift-validation.d.ts +31 -0
  267. package/build/src/client/database/query/schema-drift-validation.d.ts.map +1 -0
  268. package/build/src/client/database/query/schema-drift-validation.js +68 -0
  269. package/build/src/client/database/query/schema-drift-validation.js.map +1 -0
  270. package/build/src/client/database/query/sort-transform.d.ts +6 -0
  271. package/build/src/client/database/query/sort-transform.d.ts.map +1 -0
  272. package/build/src/client/database/query/sort-transform.js +13 -0
  273. package/build/src/client/database/query/sort-transform.js.map +1 -0
  274. package/build/src/client/database/query/types.d.ts +42 -0
  275. package/build/src/client/database/query/types.d.ts.map +1 -0
  276. package/build/src/client/database/query/types.js +2 -0
  277. package/build/src/client/database/query/types.js.map +1 -0
  278. package/build/src/client/database/schema-builder.d.ts +8 -0
  279. package/build/src/client/database/schema-builder.d.ts.map +1 -0
  280. package/build/src/client/database/schema-builder.js +78 -0
  281. package/build/src/client/database/schema-builder.js.map +1 -0
  282. package/build/src/client/database/types/crud.d.ts +40 -0
  283. package/build/src/client/database/types/crud.d.ts.map +1 -0
  284. package/build/src/client/database/types/crud.js +5 -0
  285. package/build/src/client/database/types/crud.js.map +1 -0
  286. package/build/src/client/database/types/filter-capability.d.ts +30 -0
  287. package/build/src/client/database/types/filter-capability.d.ts.map +1 -0
  288. package/build/src/client/database/types/filter-capability.js +28 -0
  289. package/build/src/client/database/types/filter-capability.js.map +1 -0
  290. package/build/src/client/database/types/index.d.ts +16 -0
  291. package/build/src/client/database/types/index.d.ts.map +1 -0
  292. package/build/src/client/database/types/index.js +16 -0
  293. package/build/src/client/database/types/index.js.map +1 -0
  294. package/build/src/client/database/types/notion-database-id.d.ts +14 -0
  295. package/build/src/client/database/types/notion-database-id.d.ts.map +1 -0
  296. package/build/src/client/database/types/notion-database-id.js +9 -0
  297. package/build/src/client/database/types/notion-database-id.js.map +1 -0
  298. package/build/src/client/database/types/notion-filter-model.d.ts +98 -0
  299. package/build/src/client/database/types/notion-filter-model.d.ts.map +1 -0
  300. package/build/src/client/database/types/notion-filter-model.js +5 -0
  301. package/build/src/client/database/types/notion-filter-model.js.map +1 -0
  302. package/build/src/client/database/types/notion-id-brand.d.ts +27 -0
  303. package/build/src/client/database/types/notion-id-brand.d.ts.map +1 -0
  304. package/build/src/client/database/types/notion-id-brand.js +8 -0
  305. package/build/src/client/database/types/notion-id-brand.js.map +1 -0
  306. package/build/src/client/database/types/notion-page-id.d.ts +10 -0
  307. package/build/src/client/database/types/notion-page-id.d.ts.map +1 -0
  308. package/build/src/client/database/types/notion-page-id.js +6 -0
  309. package/build/src/client/database/types/notion-page-id.js.map +1 -0
  310. package/build/src/client/database/types/notion-user-id.d.ts +10 -0
  311. package/build/src/client/database/types/notion-user-id.d.ts.map +1 -0
  312. package/build/src/client/database/types/notion-user-id.js +6 -0
  313. package/build/src/client/database/types/notion-user-id.js.map +1 -0
  314. package/build/src/client/database/types/projection.d.ts +78 -0
  315. package/build/src/client/database/types/projection.d.ts.map +1 -0
  316. package/build/src/client/database/types/projection.js +6 -0
  317. package/build/src/client/database/types/projection.js.map +1 -0
  318. package/build/src/client/database/types/query-filter.d.ts +19 -0
  319. package/build/src/client/database/types/query-filter.d.ts.map +1 -0
  320. package/build/src/client/database/types/query-filter.js +5 -0
  321. package/build/src/client/database/types/query-filter.js.map +1 -0
  322. package/build/src/client/database/types/query-object.d.ts +42 -0
  323. package/build/src/client/database/types/query-object.d.ts.map +1 -0
  324. package/build/src/client/database/types/query-object.js +5 -0
  325. package/build/src/client/database/types/query-object.js.map +1 -0
  326. package/build/src/client/database/types/schema.d.ts +190 -0
  327. package/build/src/client/database/types/schema.d.ts.map +1 -0
  328. package/build/src/client/database/types/schema.js +41 -0
  329. package/build/src/client/database/types/schema.js.map +1 -0
  330. package/build/src/client/database/types/sort.d.ts +22 -0
  331. package/build/src/client/database/types/sort.d.ts.map +1 -0
  332. package/build/src/client/database/types/sort.js +5 -0
  333. package/build/src/client/database/types/sort.js.map +1 -0
  334. package/build/src/config/findConfigFile.d.ts +8 -0
  335. package/build/src/config/findConfigFile.d.ts.map +1 -0
  336. package/build/src/config/findConfigFile.js +18 -0
  337. package/build/src/config/findConfigFile.js.map +1 -0
  338. package/build/src/config/helpers.d.ts +7 -0
  339. package/build/src/config/helpers.d.ts.map +1 -0
  340. package/build/src/config/helpers.js +57 -0
  341. package/build/src/config/helpers.js.map +1 -0
  342. package/build/src/config/init.d.ts +7 -0
  343. package/build/src/config/init.d.ts.map +1 -0
  344. package/build/src/config/init.js +28 -0
  345. package/build/src/config/init.js.map +1 -0
  346. package/build/src/config/loadConfig.d.ts +11 -0
  347. package/build/src/config/loadConfig.d.ts.map +1 -0
  348. package/build/src/config/loadConfig.js +91 -0
  349. package/build/src/config/loadConfig.js.map +1 -0
  350. package/build/src/config/loadDotEnvFromCwd.d.ts +12 -0
  351. package/build/src/config/loadDotEnvFromCwd.d.ts.map +1 -0
  352. package/build/src/config/loadDotEnvFromCwd.js +47 -0
  353. package/build/src/config/loadDotEnvFromCwd.js.map +1 -0
  354. package/build/src/config/notion-config-filenames.d.ts +20 -0
  355. package/build/src/config/notion-config-filenames.d.ts.map +1 -0
  356. package/build/src/config/notion-config-filenames.js +24 -0
  357. package/build/src/config/notion-config-filenames.js.map +1 -0
  358. package/build/src/config/resolveNotionAuth.d.ts +18 -0
  359. package/build/src/config/resolveNotionAuth.d.ts.map +1 -0
  360. package/build/src/config/resolveNotionAuth.js +24 -0
  361. package/build/src/config/resolveNotionAuth.js.map +1 -0
  362. package/build/src/config/types.d.ts +16 -0
  363. package/build/src/config/types.d.ts.map +1 -0
  364. package/build/src/config/types.js +7 -0
  365. package/build/src/config/types.js.map +1 -0
  366. package/build/src/helpers.d.ts +22 -0
  367. package/build/src/helpers.d.ts.map +1 -0
  368. package/build/src/helpers.js +67 -0
  369. package/build/src/helpers.js.map +1 -0
  370. package/build/src/index.d.ts +15 -11
  371. package/build/src/index.d.ts.map +1 -1
  372. package/build/src/index.js +11 -116
  373. package/build/src/index.js.map +1 -1
  374. package/build/src/notion-id-patterns.d.ts +9 -0
  375. package/build/src/notion-id-patterns.d.ts.map +1 -0
  376. package/build/src/notion-id-patterns.js +9 -0
  377. package/build/src/notion-id-patterns.js.map +1 -0
  378. package/build/src/runtime-constants.d.ts +13 -0
  379. package/build/src/runtime-constants.d.ts.map +1 -0
  380. package/build/src/runtime-constants.js +13 -0
  381. package/build/src/runtime-constants.js.map +1 -0
  382. package/build/src/typeUtils.d.ts +77 -0
  383. package/build/src/typeUtils.d.ts.map +1 -0
  384. package/build/src/typeUtils.js +52 -0
  385. package/build/src/typeUtils.js.map +1 -0
  386. package/package.json +85 -30
  387. package/build/src/BuildCall.d.ts +0 -45
  388. package/build/src/BuildCall.d.ts.map +0 -1
  389. package/build/src/BuildCall.js +0 -114
  390. package/build/src/BuildCall.js.map +0 -1
  391. package/build/src/DatabaseActions.d.ts +0 -19
  392. package/build/src/DatabaseActions.d.ts.map +0 -1
  393. package/build/src/DatabaseActions.js +0 -158
  394. package/build/src/DatabaseActions.js.map +0 -1
  395. package/build/src/GenerateTypes.d.ts +0 -8
  396. package/build/src/GenerateTypes.d.ts.map +0 -1
  397. package/build/src/GenerateTypes.js +0 -257
  398. package/build/src/GenerateTypes.js.map +0 -1
  399. package/build/src/cli.d.ts +0 -3
  400. package/build/src/cli.d.ts.map +0 -1
  401. package/build/src/cli.js +0 -48
  402. package/build/src/cli.js.map +0 -1
  403. package/build/src/queryTypes.d.ts +0 -117
  404. package/build/src/queryTypes.d.ts.map +0 -1
  405. package/build/src/queryTypes.js +0 -7
  406. package/build/src/queryTypes.js.map +0 -1
  407. package/src/BuildCall.ts +0 -118
  408. package/src/DatabaseActions.ts +0 -227
  409. package/src/GenerateTypes.ts +0 -448
  410. package/src/cli.ts +0 -40
  411. package/src/index.ts +0 -136
  412. package/src/queryTypes.ts +0 -177
@@ -0,0 +1,24 @@
1
+ import { type DemoPlaygroundSpec } from "./demo-playground-spec";
2
+ export interface DemoPlaygroundWorkspaceResult {
3
+ files: Record<string, string>;
4
+ databaseEntryFile: string;
5
+ agentEntryFile: string;
6
+ }
7
+ /**
8
+ * Pure builder that produces the full demo playground virtual workspace.
9
+ *
10
+ * Accepts the demo spec and pre-read mock source file contents, then
11
+ * composes the existing ORM emitters (database, agent, index) with
12
+ * demo entry builders and static support files to produce the complete
13
+ * file map consumed by the browser-based TypeScript environment.
14
+ *
15
+ * No filesystem I/O — callers provide inputs and serialize the result.
16
+ */
17
+ export declare function buildDemoPlaygroundWorkspace(args: {
18
+ spec?: DemoPlaygroundSpec;
19
+ mockPackageSource: string;
20
+ mockBaseSource: string;
21
+ /** Same source as repo `src/notion-id-patterns.ts` (playground mock imports it). */
22
+ notionIdPatternsSource: string;
23
+ }): DemoPlaygroundWorkspaceResult;
24
+ //# sourceMappingURL=demo-workspace-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-workspace-builder.d.ts","sourceRoot":"","sources":["../../../../src/ast/demo/demo-workspace-builder.ts"],"names":[],"mappings":"AAaA,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,6BAA6B;IAC7C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACvB;AAkBD;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IAClD,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,oFAAoF;IACpF,sBAAsB,EAAE,MAAM,CAAC;CAC/B,GAAG,6BAA6B,CA+EhC"}
@@ -0,0 +1,90 @@
1
+ import { buildMockDataSourceResponse } from "./datasource-fixture-builder.js";
2
+ import { renderAgentModule } from "../agents/agent-file-writer.js";
3
+ import { renderDatabaseModule } from "../database/database-file-writer.js";
4
+ import { AST_RUNTIME_CONSTANTS, PLAYGROUND_PATHS } from "../shared/constants.js";
5
+ import { buildOrmIndexModuleAst, } from "../shared/emit/orm-index-emitter.js";
6
+ import { createEmitContext, printTsNodes } from "../shared/emit/ts-emit-core.js";
7
+ import { buildDemoAgentEntry, buildDemoDatabaseEntry, } from "./demo-entry-builders.js";
8
+ import { DEMO_PLAYGROUND_SPEC, } from "./demo-playground-spec.js";
9
+ const PLAYGROUND_TSCONFIG = JSON.stringify({
10
+ compilerOptions: {
11
+ target: "ES2022",
12
+ module: "ESNext",
13
+ moduleResolution: "bundler",
14
+ allowImportingTsExtensions: true,
15
+ noEmit: true,
16
+ strict: true,
17
+ esModuleInterop: true,
18
+ },
19
+ }, null, 2);
20
+ /**
21
+ * Pure builder that produces the full demo playground virtual workspace.
22
+ *
23
+ * Accepts the demo spec and pre-read mock source file contents, then
24
+ * composes the existing ORM emitters (database, agent, index) with
25
+ * demo entry builders and static support files to produce the complete
26
+ * file map consumed by the browser-based TypeScript environment.
27
+ *
28
+ * No filesystem I/O — callers provide inputs and serialize the result.
29
+ */
30
+ export function buildDemoPlaygroundWorkspace(args) {
31
+ const { spec = DEMO_PLAYGROUND_SPEC, mockPackageSource, mockBaseSource, notionIdPatternsSource, } = args;
32
+ const databaseModules = spec.databases.map((fixture) => renderDatabaseModule(buildMockDataSourceResponse(fixture)));
33
+ const agentModules = spec.agents.map((agent) => renderAgentModule({
34
+ agentId: agent.id,
35
+ agentName: agent.name,
36
+ agentIcon: agent.icon,
37
+ }));
38
+ const databaseMetadata = databaseModules.map((database) => ({ name: database.databaseModuleName }));
39
+ const agentMetadata = agentModules.map((agent) => ({
40
+ name: agent.agentModuleName,
41
+ }));
42
+ const generatedIndexTs = printTsNodes({
43
+ nodes: buildOrmIndexModuleAst({
44
+ databases: databaseMetadata,
45
+ agents: agentMetadata,
46
+ syncCommand: AST_RUNTIME_CONSTANTS.CLI_GENERATE_COMMAND,
47
+ importPaths: {
48
+ databaseClass: PLAYGROUND_PATHS.databaseImport,
49
+ agentClass: PLAYGROUND_PATHS.agentImport,
50
+ },
51
+ }),
52
+ context: createEmitContext({ fileName: "index.ts" }),
53
+ });
54
+ const databaseEntry = buildDemoDatabaseEntry({
55
+ spec,
56
+ databaseModules: databaseModules.map((m) => ({
57
+ moduleName: m.databaseModuleName,
58
+ databaseTitle: m.databaseName,
59
+ })),
60
+ });
61
+ const agentEntry = buildDemoAgentEntry({
62
+ spec,
63
+ agentModules: agentModules.map((m) => ({
64
+ moduleName: m.agentModuleName,
65
+ agentName: m.agentName,
66
+ })),
67
+ });
68
+ const files = {
69
+ [spec.databaseEntryFile]: databaseEntry,
70
+ [spec.agentEntryFile]: agentEntry,
71
+ [PLAYGROUND_PATHS.BUILD_INDEX]: generatedIndexTs,
72
+ [PLAYGROUND_PATHS.MOCK_PACKAGE_INDEX]: mockPackageSource,
73
+ [PLAYGROUND_PATHS.MOCK_PACKAGE_NOTION_ID_PATTERNS]: notionIdPatternsSource,
74
+ [PLAYGROUND_PATHS.MOCK_PACKAGE_BASE]: mockBaseSource,
75
+ };
76
+ for (const database of databaseModules) {
77
+ files[PLAYGROUND_PATHS.databaseModule(database.databaseModuleName)] =
78
+ database.tsCode;
79
+ }
80
+ for (const agent of agentModules) {
81
+ files[PLAYGROUND_PATHS.agentModule(agent.agentModuleName)] = agent.tsCode;
82
+ }
83
+ files["tsconfig.json"] = PLAYGROUND_TSCONFIG;
84
+ return {
85
+ files,
86
+ databaseEntryFile: spec.databaseEntryFile,
87
+ agentEntryFile: spec.agentEntryFile,
88
+ };
89
+ }
90
+ //# sourceMappingURL=demo-workspace-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-workspace-builder.js","sourceRoot":"","sources":["../../../../src/ast/demo/demo-workspace-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Reusable AST builder functions for generating TypeScript code.
3
+ * These functions create TypeScript AST nodes for properties, imports, exports, and types.
4
+ */
5
+ import * as ts from "typescript";
6
+ import type { ColumnTypesWithOptions, SupportedNotionColumnType } from "../../client/database/types";
7
+ import type { NotionDatabaseId } from "../../client/database/types/notion-database-id";
8
+ export { toPascalCase } from "../../helpers";
9
+ /**
10
+ * Plain column: emitted metadata has no `options` array (non–select-like types).
11
+ */
12
+ export type OptionlessColumnMetadataEntry = {
13
+ readonly columnName: string;
14
+ readonly type: Exclude<SupportedNotionColumnType, ColumnTypesWithOptions | "relation">;
15
+ };
16
+ /**
17
+ * Relation: emitted metadata includes the linked database id (undashed) from Notion.
18
+ */
19
+ export type RelationGeneratedColumnMetadataEntry = {
20
+ readonly columnName: string;
21
+ readonly type: "relation";
22
+ readonly relatedDatabaseId: NotionDatabaseId;
23
+ };
24
+ /**
25
+ * Select / status / multi_select: emitted metadata includes `options` pointing at a
26
+ * generated const; `type` discriminates this arm from {@link OptionlessColumnMetadataEntry}.
27
+ */
28
+ export type SelectLikeGeneratedColumnMetadataEntry = {
29
+ readonly columnName: string;
30
+ readonly type: ColumnTypesWithOptions;
31
+ readonly optionsIdentifier: string;
32
+ };
33
+ export type GeneratedColumnMetadataEntry = OptionlessColumnMetadataEntry | SelectLikeGeneratedColumnMetadataEntry | RelationGeneratedColumnMetadataEntry;
34
+ /** Lookup map used to generate the emitted `columns` object. */
35
+ export type GeneratedColumnMetadataMap = Record<string, GeneratedColumnMetadataEntry>;
36
+ /**
37
+ * Generate text property signature
38
+ * name: string (or name?: string if not title)
39
+ */
40
+ export declare function createTextProperty(args: {
41
+ name: string;
42
+ isTitle: boolean;
43
+ }): ts.PropertySignature;
44
+ /**
45
+ * Generate number property signature
46
+ * name?: number
47
+ */
48
+ export declare function createNumberProperty(name: string): ts.PropertySignature;
49
+ /**
50
+ * Generate date property signature
51
+ * name?: { start: string; end?: string }
52
+ */
53
+ export declare function createDateProperty(name: string): ts.PropertySignature;
54
+ /**
55
+ * Generate checkbox property signature
56
+ * name?: boolean
57
+ */
58
+ export declare function createCheckboxProperty(name: string): ts.PropertySignature;
59
+ /**
60
+ * For selects and multi-select collection properties
61
+ * array = true for multi-select
62
+ */
63
+ export declare function createMultiOptionProp(args: {
64
+ name: string;
65
+ arrayIdentifier: string;
66
+ isArray: boolean;
67
+ }): ts.PropertySignature;
68
+ /**
69
+ * Create a const array of property values for enum types
70
+ */
71
+ export declare function createPropertyValuesArray(args: {
72
+ identifier: string;
73
+ options: string[];
74
+ }): ts.VariableStatement;
75
+ /**
76
+ * Create import declaration
77
+ */
78
+ export declare function createNameImport(args: {
79
+ namedImport: string;
80
+ path: string;
81
+ typeOnly?: boolean;
82
+ }): ts.ImportDeclaration;
83
+ /**
84
+ * `import type { a, b } from "path"`
85
+ */
86
+ export declare function createTypeOnlyNamedImports(args: {
87
+ names: readonly string[];
88
+ path: string;
89
+ }): ts.ImportDeclaration;
90
+ /**
91
+ * Create column name to column properties mapping
92
+ * Maps camelCase property names to their original names and types
93
+ */
94
+ export declare function createColumnNameToColumnProperties(colMap: GeneratedColumnMetadataMap): ts.VariableDeclarationList;
95
+ /** `export type QuerySchema = Query<DatabaseDefinition<typeof columns>>` (name from `AST_TYPE_NAMES.QUERY_SCHEMA`). */
96
+ export declare function createQuerySchemaTypeExport(): ts.TypeAliasDeclaration;
97
+ /** `export type PageSchema = InferDatabaseSchema<typeof columns>` (name from `AST_TYPE_NAMES.PAGE_SCHEMA`). */
98
+ export declare function createPageSchemaTypeExport(): ts.TypeAliasDeclaration;
99
+ /** `export type CreateSchema = InferCreateSchema<typeof columns>` (name from `AST_TYPE_NAMES.CREATE_SCHEMA`). */
100
+ export declare function createCreateSchemaTypeExport(): ts.TypeAliasDeclaration;
101
+ /**
102
+ * Create export statement for the database constructor function.
103
+ * Uses a block body + multiline object literal so generated files stay readable.
104
+ * `databaseName` is the exported const identifier (PascalCase, e.g. `CustomerOrders`).
105
+ */
106
+ export declare function createDatabaseClassExport(args: {
107
+ databaseName: string;
108
+ schemaTitle: string;
109
+ /** Undashed Notion data source id, inlined on the client config object. */
110
+ databaseId: string;
111
+ }): ts.VariableStatement;
112
+ //# sourceMappingURL=ast-builders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-builders.d.ts","sourceRoot":"","sources":["../../../../src/ast/shared/ast-builders.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EACX,sBAAsB,EACtB,yBAAyB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAIvF,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,yBAAyB,EAAE,sBAAsB,GAAG,UAAU,CAAC,CAAC;CACvF,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oCAAoC,GAAG;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;CAC7C,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sCAAsC,GAAG;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GACrC,6BAA6B,GAC7B,sCAAsC,GACtC,oCAAoC,CAAC;AAExC,gEAAgE;AAChE,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAC9C,MAAM,EACN,4BAA4B,CAC5B,CAAC;AAoCF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,wBAS1E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,wBAQhD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,wBAoB9C;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,wBAQlD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB,wBAgBA;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,wBAyBA;AAyBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,wBAkBA;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAChD,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACb,GAAG,EAAE,CAAC,iBAAiB,CAmBvB;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,0BAA0B,8BAoDnC;AAED,uHAAuH;AACvH,wBAAgB,2BAA2B,4BAS1C;AAED,+GAA+G;AAC/G,wBAAgB,0BAA0B,4BAezC;AAED,iHAAiH;AACjH,wBAAgB,4BAA4B,4BAe3C;AAcD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;CACpB,wBA+DA"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Reusable AST builder functions for generating TypeScript code.
3
+ * These functions create TypeScript AST nodes for properties, imports, exports, and types.
4
+ */
5
+ import * as ts from "typescript";
6
+ import { objectEntries } from "../../typeUtils.js";
7
+ import { AST_TYPE_NAMES } from "./constants.js";
8
+ export { toPascalCase } from "../../helpers.js";
9
+ function optionsPropertyAssignmentsForSelectLikeMetadata(entry) {
10
+ return [
11
+ ts.factory.createPropertyAssignment(ts.factory.createIdentifier("options"), ts.factory.createIdentifier(entry.optionsIdentifier)),
12
+ ];
13
+ }
14
+ /** Emits `options` / `relatedDatabaseId` for column metadata beyond `columnName` + `type`. */
15
+ function extraMetadataPropertyAssignmentsForGeneratedColumn(value) {
16
+ switch (value.type) {
17
+ case "select":
18
+ case "status":
19
+ case "multi_select":
20
+ return optionsPropertyAssignmentsForSelectLikeMetadata(value);
21
+ case "relation":
22
+ return [
23
+ ts.factory.createPropertyAssignment(ts.factory.createIdentifier("relatedDatabaseId"), ts.factory.createStringLiteral(String(value.relatedDatabaseId))),
24
+ ];
25
+ default:
26
+ return [];
27
+ }
28
+ }
29
+ /**
30
+ * Generate text property signature
31
+ * name: string (or name?: string if not title)
32
+ */
33
+ export function createTextProperty(args) {
34
+ const { name, isTitle } = args;
35
+ const text = ts.factory.createPropertySignature(undefined, ts.factory.createIdentifier(name), !isTitle ? ts.factory.createToken(ts.SyntaxKind.QuestionToken) : undefined, ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));
36
+ return text;
37
+ }
38
+ /**
39
+ * Generate number property signature
40
+ * name?: number
41
+ */
42
+ export function createNumberProperty(name) {
43
+ const number = ts.factory.createPropertySignature(undefined, ts.factory.createIdentifier(name), ts.factory.createToken(ts.SyntaxKind.QuestionToken), ts.factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword));
44
+ return number;
45
+ }
46
+ /**
47
+ * Generate date property signature
48
+ * name?: { start: string; end?: string }
49
+ */
50
+ export function createDateProperty(name) {
51
+ return ts.factory.createPropertySignature(undefined, ts.factory.createIdentifier(name), ts.factory.createToken(ts.SyntaxKind.QuestionToken), ts.factory.createTypeLiteralNode([
52
+ ts.factory.createPropertySignature(undefined, ts.factory.createIdentifier("start"), undefined, ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword)),
53
+ ts.factory.createPropertySignature(undefined, ts.factory.createIdentifier("end"), ts.factory.createToken(ts.SyntaxKind.QuestionToken), ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword)),
54
+ ]));
55
+ }
56
+ /**
57
+ * Generate checkbox property signature
58
+ * name?: boolean
59
+ */
60
+ export function createCheckboxProperty(name) {
61
+ const checkbox = ts.factory.createPropertySignature(undefined, ts.factory.createIdentifier(name), ts.factory.createToken(ts.SyntaxKind.QuestionToken), ts.factory.createKeywordTypeNode(ts.SyntaxKind.BooleanKeyword));
62
+ return checkbox;
63
+ }
64
+ /**
65
+ * For selects and multi-select collection properties
66
+ * array = true for multi-select
67
+ */
68
+ export function createMultiOptionProp(args) {
69
+ const { arrayIdentifier, isArray, name } = args;
70
+ const propertyValueUnion = ts.factory.createUnionTypeNode([
71
+ createPropertyValuesElementType(arrayIdentifier),
72
+ createOtherStringProp(),
73
+ ]);
74
+ return ts.factory.createPropertySignature(undefined, ts.factory.createIdentifier(name), ts.factory.createToken(ts.SyntaxKind.QuestionToken), isArray
75
+ ? ts.factory.createArrayTypeNode(ts.factory.createParenthesizedType(propertyValueUnion))
76
+ : propertyValueUnion);
77
+ }
78
+ /**
79
+ * Create a const array of property values for enum types
80
+ */
81
+ export function createPropertyValuesArray(args) {
82
+ const { identifier, options } = args;
83
+ return ts.factory.createVariableStatement([ts.factory.createToken(ts.SyntaxKind.ExportKeyword)], ts.factory.createVariableDeclarationList([
84
+ ts.factory.createVariableDeclaration(ts.factory.createIdentifier(identifier), undefined, undefined, ts.factory.createAsExpression(ts.factory.createArrayLiteralExpression(options.map((option) => ts.factory.createStringLiteral(option)), true), ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("const"), undefined))),
85
+ ], ts.NodeFlags.Const));
86
+ }
87
+ /**
88
+ * string & {} - Allows users to pass in custom values
89
+ */
90
+ function createOtherStringProp() {
91
+ return ts.factory.createIntersectionTypeNode([
92
+ ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
93
+ ts.factory.createTypeLiteralNode([]),
94
+ ]);
95
+ }
96
+ /**
97
+ * Builds `<PropertyValuesConst>[number]` element type reference.
98
+ */
99
+ function createPropertyValuesElementType(arrayIdentifier) {
100
+ return ts.factory.createIndexedAccessTypeNode(ts.factory.createTypeQueryNode(ts.factory.createIdentifier(arrayIdentifier), undefined), ts.factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword));
101
+ }
102
+ /**
103
+ * Create import declaration
104
+ */
105
+ export function createNameImport(args) {
106
+ const { namedImport, path, typeOnly } = args;
107
+ return ts.factory.createImportDeclaration(undefined, ts.factory.createImportClause(typeOnly ?? false, undefined, ts.factory.createNamedImports([
108
+ ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier(namedImport)),
109
+ ])), ts.factory.createStringLiteral(path), undefined);
110
+ }
111
+ /**
112
+ * `import type { a, b } from "path"`
113
+ */
114
+ export function createTypeOnlyNamedImports(args) {
115
+ return ts.factory.createImportDeclaration(undefined, ts.factory.createImportClause(true, undefined, ts.factory.createNamedImports(args.names.map((name) => ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier(name))))), ts.factory.createStringLiteral(args.path), undefined);
116
+ }
117
+ /**
118
+ * Create column name to column properties mapping
119
+ * Maps camelCase property names to their original names and types
120
+ */
121
+ export function createColumnNameToColumnProperties(colMap) {
122
+ const metadataObjectLiteral = ts.factory.createObjectLiteralExpression([
123
+ ...objectEntries(colMap).map(([propName, value]) => ts.factory.createPropertyAssignment(ts.factory.createStringLiteral(propName), ts.factory.createObjectLiteralExpression([
124
+ ts.factory.createPropertyAssignment(ts.factory.createIdentifier("columnName"), ts.factory.createStringLiteral(value.columnName)),
125
+ ts.factory.createPropertyAssignment(ts.factory.createIdentifier("type"), ts.factory.createStringLiteral(value.type)),
126
+ ...extraMetadataPropertyAssignmentsForGeneratedColumn(value),
127
+ ], true))),
128
+ ], true);
129
+ const asConst = ts.factory.createAsExpression(metadataObjectLiteral, ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("const"), undefined));
130
+ const satisfiesTarget = ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("DatabaseColumns"), undefined);
131
+ const initializer = ts.factory.createSatisfiesExpression(asConst, satisfiesTarget);
132
+ return ts.factory.createVariableDeclarationList([
133
+ ts.factory.createVariableDeclaration(ts.factory.createIdentifier("columns"), undefined, undefined, initializer),
134
+ ], ts.NodeFlags.Const);
135
+ }
136
+ /** `export type QuerySchema = Query<DatabaseDefinition<typeof columns>>` (name from `AST_TYPE_NAMES.QUERY_SCHEMA`). */
137
+ export function createQuerySchemaTypeExport() {
138
+ return ts.factory.createTypeAliasDeclaration([ts.factory.createToken(ts.SyntaxKind.ExportKeyword)], ts.factory.createIdentifier(AST_TYPE_NAMES.QUERY_SCHEMA), undefined, ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("Query"), [
139
+ createDatabaseDefinitionOfColumnsTypeReference(),
140
+ ]));
141
+ }
142
+ /** `export type PageSchema = InferDatabaseSchema<typeof columns>` (name from `AST_TYPE_NAMES.PAGE_SCHEMA`). */
143
+ export function createPageSchemaTypeExport() {
144
+ return ts.factory.createTypeAliasDeclaration([ts.factory.createToken(ts.SyntaxKind.ExportKeyword)], ts.factory.createIdentifier(AST_TYPE_NAMES.PAGE_SCHEMA), undefined, ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("InferDatabaseSchema"), [
145
+ ts.factory.createTypeQueryNode(ts.factory.createIdentifier("columns"), undefined),
146
+ ]));
147
+ }
148
+ /** `export type CreateSchema = InferCreateSchema<typeof columns>` (name from `AST_TYPE_NAMES.CREATE_SCHEMA`). */
149
+ export function createCreateSchemaTypeExport() {
150
+ return ts.factory.createTypeAliasDeclaration([ts.factory.createToken(ts.SyntaxKind.ExportKeyword)], ts.factory.createIdentifier(AST_TYPE_NAMES.CREATE_SCHEMA), undefined, ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("InferCreateSchema"), [
151
+ ts.factory.createTypeQueryNode(ts.factory.createIdentifier("columns"), undefined),
152
+ ]));
153
+ }
154
+ function createDatabaseDefinitionOfColumnsTypeReference() {
155
+ return ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("DatabaseDefinition"), [
156
+ ts.factory.createTypeQueryNode(ts.factory.createIdentifier("columns"), undefined),
157
+ ]);
158
+ }
159
+ /**
160
+ * Create export statement for the database constructor function.
161
+ * Uses a block body + multiline object literal so generated files stay readable.
162
+ * `databaseName` is the exported const identifier (PascalCase, e.g. `CustomerOrders`).
163
+ */
164
+ export function createDatabaseClassExport(args) {
165
+ const { databaseName, schemaTitle, databaseId } = args;
166
+ const clientConfigObject = ts.factory.createObjectLiteralExpression([
167
+ ts.factory.createPropertyAssignment(ts.factory.createIdentifier("id"), ts.factory.createStringLiteral(databaseId)),
168
+ ts.factory.createPropertyAssignment(ts.factory.createIdentifier("columns"), ts.factory.createIdentifier("columns")),
169
+ ts.factory.createPropertyAssignment(ts.factory.createIdentifier("name"), ts.factory.createStringLiteral(schemaTitle)),
170
+ ts.factory.createShorthandPropertyAssignment(ts.factory.createIdentifier("auth"), undefined),
171
+ ], true);
172
+ const newDatabaseClient = ts.factory.createNewExpression(ts.factory.createIdentifier("DatabaseClient"), [
173
+ createDatabaseDefinitionOfColumnsTypeReference(),
174
+ ], [clientConfigObject]);
175
+ return ts.factory.createVariableStatement([ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], ts.factory.createVariableDeclarationList([
176
+ ts.factory.createVariableDeclaration(ts.factory.createIdentifier(databaseName), undefined, undefined, ts.factory.createArrowFunction(undefined, undefined, [
177
+ ts.factory.createParameterDeclaration(undefined, undefined, ts.factory.createIdentifier("auth"), undefined, ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword), undefined),
178
+ ], undefined, ts.factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), ts.factory.createBlock([ts.factory.createReturnStatement(newDatabaseClient)], true))),
179
+ ], ts.NodeFlags.Const));
180
+ }
181
+ //# sourceMappingURL=ast-builders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-builders.js","sourceRoot":"","sources":["../../../../src/ast/shared/ast-builders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Shared metadata schema and read helpers for database and agent caches.
3
+ * Keeps a single shape so index emission can treat both uniformly.
4
+ */
5
+ import { z } from "zod";
6
+ declare const cachedEntityMetadataSchema: z.ZodObject<{
7
+ id: z.ZodString;
8
+ name: z.ZodString;
9
+ displayName: z.ZodString;
10
+ }, "strip", z.ZodTypeAny, {
11
+ name: string;
12
+ id: string;
13
+ displayName: string;
14
+ }, {
15
+ name: string;
16
+ id: string;
17
+ displayName: string;
18
+ }>;
19
+ export type CachedEntityMetadata = z.infer<typeof cachedEntityMetadataSchema>;
20
+ export declare function parseMetadataArray(content: string): CachedEntityMetadata[];
21
+ /** Loads cached database metadata used for incremental generation and index emit. */
22
+ export declare function readDatabaseMetadata(): CachedEntityMetadata[];
23
+ /** Loads cached agent metadata so source index emission can include both databases and agents. */
24
+ export declare function readAgentMetadataFromDisk(): CachedEntityMetadata[];
25
+ export {};
26
+ //# sourceMappingURL=cached-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cached-metadata.d.ts","sourceRoot":"","sources":["../../../../src/ast/shared/cached-metadata.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,0BAA0B;;;;;;;;;;;;EAI9B,CAAC;AAWH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAmC9E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAa1E;AAeD,qFAAqF;AACrF,wBAAgB,oBAAoB,IAAI,oBAAoB,EAAE,CAE7D;AAED,kGAAkG;AAClG,wBAAgB,yBAAyB,IAAI,oBAAoB,EAAE,CAElE"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Shared metadata schema and read helpers for database and agent caches.
3
+ * Keeps a single shape so index emission can treat both uniformly.
4
+ */
5
+ import fs from "fs";
6
+ import { z } from "zod";
7
+ import { toUndashedNotionId } from "../../helpers.js";
8
+ import { AST_FS_PATHS } from "./constants.js";
9
+ const cachedEntityMetadataSchema = z.object({
10
+ id: z.string(),
11
+ name: z.string(),
12
+ displayName: z.string(),
13
+ });
14
+ const legacyCachedEntityMetadataSchema = z.object({
15
+ id: z.string(),
16
+ className: z.string().optional(),
17
+ displayName: z.string(),
18
+ camelCaseName: z.string(),
19
+ });
20
+ const cachedEntityMetadataArraySchema = z.array(z.union([cachedEntityMetadataSchema, legacyCachedEntityMetadataSchema]));
21
+ function toNormalizableEntry(entry) {
22
+ if ("name" in entry) {
23
+ return { kind: "current", ...entry };
24
+ }
25
+ return { kind: "legacy", ...entry };
26
+ }
27
+ function normalizeMetadataEntry(entry) {
28
+ if (entry.kind === "current") {
29
+ return {
30
+ id: toUndashedNotionId(entry.id),
31
+ name: entry.name,
32
+ displayName: entry.displayName,
33
+ };
34
+ }
35
+ return {
36
+ id: toUndashedNotionId(entry.id),
37
+ name: entry.camelCaseName,
38
+ displayName: entry.displayName,
39
+ };
40
+ }
41
+ export function parseMetadataArray(content) {
42
+ let parsedContent;
43
+ try {
44
+ parsedContent = JSON.parse(content);
45
+ }
46
+ catch {
47
+ return [];
48
+ }
49
+ const parseResult = cachedEntityMetadataArraySchema.safeParse(parsedContent);
50
+ if (!parseResult.success) {
51
+ return [];
52
+ }
53
+ return parseResult.data.map(toNormalizableEntry).map(normalizeMetadataEntry);
54
+ }
55
+ /** Reads metadata from disk; returns [] if file missing or unparseable. */
56
+ function readMetadataFromDisk(filePath) {
57
+ try {
58
+ if (!fs.existsSync(filePath)) {
59
+ return [];
60
+ }
61
+ const content = fs.readFileSync(filePath, "utf-8");
62
+ return parseMetadataArray(content);
63
+ }
64
+ catch {
65
+ return [];
66
+ }
67
+ }
68
+ /** Loads cached database metadata used for incremental generation and index emit. */
69
+ export function readDatabaseMetadata() {
70
+ return readMetadataFromDisk(AST_FS_PATHS.metadataFile);
71
+ }
72
+ /** Loads cached agent metadata so source index emission can include both databases and agents. */
73
+ export function readAgentMetadataFromDisk() {
74
+ return readMetadataFromDisk(AST_FS_PATHS.agentMetadataFile);
75
+ }
76
+ //# sourceMappingURL=cached-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cached-metadata.js","sourceRoot":"","sources":["../../../../src/ast/shared/cached-metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Optional sink for codegen warnings/errors so CLI can buffer output until
3
+ * progress UI is torn down.
4
+ */
5
+ export type CodegenDiagnosticLevel = "warn" | "error";
6
+ export type CodegenDiagnostic = {
7
+ level: CodegenDiagnosticLevel;
8
+ message: string;
9
+ };
10
+ export type CodegenDiagnosticSink = (diagnostic: CodegenDiagnostic) => void;
11
+ /** Human-readable line for skipped / unsupported columns (sync UX). */
12
+ export declare function formatCodegenSkippedPropertyLine(args: {
13
+ databaseDisplayName: string;
14
+ propertyName: string;
15
+ notionType: string;
16
+ }): string;
17
+ /** Select / multi_select column where the handler did not yield an options identifier. */
18
+ export declare function formatCodegenMissingOptionsIdentifierLine(args: {
19
+ databaseModuleName: string;
20
+ propertyName: string;
21
+ propertyType: string;
22
+ }): string;
23
+ //# sourceMappingURL=codegen-diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen-diagnostics.d.ts","sourceRoot":"","sources":["../../../../src/ast/shared/codegen-diagnostics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,sBAAsB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAE5E,uEAAuE;AACvE,wBAAgB,gCAAgC,CAAC,IAAI,EAAE;IACtD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAET;AAED,0FAA0F;AAC1F,wBAAgB,yCAAyC,CAAC,IAAI,EAAE;IAC/D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAET"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Optional sink for codegen warnings/errors so CLI can buffer output until
3
+ * progress UI is torn down.
4
+ */
5
+ /** Human-readable line for skipped / unsupported columns (sync UX). */
6
+ export function formatCodegenSkippedPropertyLine(args) {
7
+ return `[${args.databaseDisplayName}] \`${args.propertyName}\` (${args.notionType}) was skipped`;
8
+ }
9
+ /** Select / multi_select column where the handler did not yield an options identifier. */
10
+ export function formatCodegenMissingOptionsIdentifierLine(args) {
11
+ return `[${args.databaseModuleName}] Missing options identifier for \`${args.propertyName}\` (${args.propertyType}); skipping.`;
12
+ }
13
+ //# sourceMappingURL=codegen-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen-diagnostics.js","sourceRoot":"","sources":["../../../../src/ast/shared/codegen-diagnostics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,uEAAuE;AACvE,MAAM,UAAU,gCAAgC,CAAC,IAIhD;IACA,OAAO,IAAI,IAAI,CAAC,mBAAmB,OAAO,IAAI,CAAC,YAAY,OAAO,IAAI,CAAC,UAAU,eAAe,CAAC;AAClG,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,yCAAyC,CAAC,IAIzD;IACA,OAAO,IAAI,IAAI,CAAC,kBAAkB,sCAAsC,IAAI,CAAC,YAAY,OAAO,IAAI,CAAC,YAAY,cAAc,CAAC;AACjI,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Codegen extension rules (central source of truth for TS vs JS choices):
3
+ *
4
+ * Rule 1 (env-driven). Per-file ARTIFACT extension is `.ts` or `.js` based
5
+ * on the consumer project's environment. Compose filenames with
6
+ * `codegenArtifactFileName(basename, env)` (or
7
+ * `getCodegenArtifactExtension(env)` only when you need the raw
8
+ * extension) — never inline the TS/JS ternary.
9
+ * Rule 2 (constant). Relative IMPORT SPECIFIERS inside generated `.ts`
10
+ * and `.d.ts` modules are always `.js` (TS ESM NodeNext pattern
11
+ * so emitted JS and Node resolution line up). Use
12
+ * `getCodegenImportExtension()`.
13
+ * Rule 3 (constant). DECLARATION artifacts are always `.d.ts` /
14
+ * `.d.ts.map` regardless of environment (see
15
+ * `AST_FS_FILENAMES.INDEX_DTS` / `INDEX_DTS_MAP`).
16
+ *
17
+ * New env-dependent file locations should go through
18
+ * `codegenIndexSourcePath` (for `index.{ts,js}`-shaped outputs) rather than
19
+ * reintroducing `Ts`/`Js` paired constants.
20
+ */
21
+ export type CodegenEnvironment = "typescript" | "javascript";
22
+ type CodegenConfigRuntime = {
23
+ isTS: boolean;
24
+ };
25
+ export declare function resolveCodegenEnvironment(args?: {
26
+ projectRoot?: string;
27
+ configRuntime?: CodegenConfigRuntime;
28
+ }): CodegenEnvironment;
29
+ /**
30
+ * Environment-aware artifact filename: `{basename}.{ts|js}`.
31
+ * Use for on-disk module paths and relative `./Foo.{ts|js}` import paths in
32
+ * emitted registries — do not interpolate `getCodegenArtifactExtension` by hand.
33
+ */
34
+ export declare function codegenArtifactFileName(basename: string, environment: CodegenEnvironment): string;
35
+ export declare function getCodegenImportExtension(): "js";
36
+ export {};
37
+ //# sourceMappingURL=codegen-environment.d.ts.map