@haustle/notion-orm 0.0.44 → 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 (406) 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 +86 -32
  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
@@ -0,0 +1,454 @@
1
+ import generate from "@babel/generator";
2
+ import * as parser from "@babel/parser";
3
+ import * as t from "@babel/types";
4
+ import * as ts from "typescript";
5
+ import { NOTION_CONFIG_BASENAME } from "../../../config/notion-config-filenames.js";
6
+ import { codegenArtifactFileName } from "../codegen-environment.js";
7
+ import { createEmitContext, printTsNodes, } from "./ts-emit-core.js";
8
+ function createAuthVariableStatement() {
9
+ const statement = ts.factory.createVariableStatement(undefined, ts.factory.createVariableDeclarationList([
10
+ ts.factory.createVariableDeclaration(ts.factory.createIdentifier("auth"), undefined, undefined, ts.factory.createBinaryExpression(ts.factory.createPropertyAccessExpression(ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier("process"), ts.factory.createIdentifier("env")), ts.factory.createIdentifier("NOTION_KEY")), ts.factory.createToken(ts.SyntaxKind.BarBarToken), ts.factory.createStringLiteral("your-notion-api-key-here"))),
11
+ ], ts.NodeFlags.Const));
12
+ ts.addSyntheticLeadingComment(statement, ts.SyntaxKind.SingleLineCommentTrivia, " Be sure to create a .env file and add your NOTION_KEY", true);
13
+ ts.addSyntheticLeadingComment(statement, ts.SyntaxKind.SingleLineCommentTrivia, " If you don't have an API key, sign up for free", true);
14
+ ts.addSyntheticLeadingComment(statement, ts.SyntaxKind.SingleLineCommentTrivia, " [here](https://developers.notion.com)", true);
15
+ return statement;
16
+ }
17
+ function createConfigProperty(args) {
18
+ const property = ts.factory.createPropertyAssignment(ts.factory.createIdentifier(args.name), ts.factory.createArrayLiteralExpression([], true));
19
+ if (args.helpText) {
20
+ ts.addSyntheticLeadingComment(property, ts.SyntaxKind.SingleLineCommentTrivia, ` ${args.helpText}`, true);
21
+ }
22
+ return property;
23
+ }
24
+ /**
25
+ * Builds AST nodes for a starter `notion.config` module.
26
+ *
27
+ * Example:
28
+ * `buildConfigTemplateModuleAst({ isTS: true })`
29
+ * builds:
30
+ * - `const auth = process.env.NOTION_KEY || "...";`
31
+ * - `const NotionConfig = { auth, databases: [], agents: [] };`
32
+ * - `export default NotionConfig`
33
+ */
34
+ export function buildConfigTemplateModuleAst(args) {
35
+ const { isTS } = args;
36
+ const authVariable = createAuthVariableStatement();
37
+ const notionConfigVariable = ts.factory.createVariableStatement(undefined, ts.factory.createVariableDeclarationList([
38
+ ts.factory.createVariableDeclaration(ts.factory.createIdentifier("NotionConfig"), undefined, undefined, ts.factory.createObjectLiteralExpression([
39
+ ts.factory.createShorthandPropertyAssignment(ts.factory.createIdentifier("auth")),
40
+ createConfigProperty({
41
+ name: "databases",
42
+ helpText: "Use: notion add <database-id> --type database",
43
+ }),
44
+ createConfigProperty({
45
+ name: "agents",
46
+ helpText: "Agents are auto-populated by: notion sync",
47
+ }),
48
+ ], true)),
49
+ ], ts.NodeFlags.Const));
50
+ const exportStatement = isTS
51
+ ? ts.factory.createExportAssignment(undefined, false, ts.factory.createIdentifier("NotionConfig"))
52
+ : ts.factory.createExpressionStatement(ts.factory.createBinaryExpression(ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier("module"), ts.factory.createIdentifier("exports")), ts.factory.createToken(ts.SyntaxKind.EqualsToken), ts.factory.createIdentifier("NotionConfig")));
53
+ return [authVariable, notionConfigVariable, exportStatement];
54
+ }
55
+ /**
56
+ * Renders the starter `notion.config` module to source code text.
57
+ *
58
+ * Example:
59
+ * `renderConfigTemplateModule({ isTS: false })`
60
+ * returns CommonJS config source.
61
+ */
62
+ export function renderConfigTemplateModule(args) {
63
+ const { isTS, context = createEmitContext({
64
+ fileName: codegenArtifactFileName(NOTION_CONFIG_BASENAME, "typescript"),
65
+ }), } = args;
66
+ return printTsNodes({
67
+ nodes: buildConfigTemplateModuleAst({ isTS }),
68
+ context,
69
+ });
70
+ }
71
+ /**
72
+ * Parses notion.config source into a Babel AST so list updates can preserve
73
+ * surrounding formatting and syntax style (TS/CJS/ESM).
74
+ */
75
+ function parseConfigSource(args) {
76
+ const { sourceCode, isTS } = args;
77
+ return parser.parse(sourceCode, {
78
+ sourceType: "module",
79
+ allowImportExportEverywhere: true,
80
+ plugins: isTS ? ["typescript"] : [],
81
+ });
82
+ }
83
+ /**
84
+ * Walks through TS wrappers (`as`, `satisfies`, non-null) until an object
85
+ * literal is found. This keeps updates robust against typed config patterns.
86
+ */
87
+ function unwrapExpressionToObjectLiteral(expression) {
88
+ let currentExpression = expression;
89
+ while (currentExpression) {
90
+ if (t.isObjectExpression(currentExpression)) {
91
+ return currentExpression;
92
+ }
93
+ if (t.isTSSatisfiesExpression(currentExpression) ||
94
+ t.isTSAsExpression(currentExpression) ||
95
+ t.isTSNonNullExpression(currentExpression)) {
96
+ currentExpression = currentExpression.expression;
97
+ continue;
98
+ }
99
+ return undefined;
100
+ }
101
+ return undefined;
102
+ }
103
+ /**
104
+ * Narrow unknown values to Babel nodes for generic AST traversal.
105
+ */
106
+ function isNode(value) {
107
+ if (typeof value !== "object" || value === null || !("type" in value)) {
108
+ return false;
109
+ }
110
+ const nodeType = Reflect.get(value, "type");
111
+ return typeof nodeType === "string";
112
+ }
113
+ /**
114
+ * Minimal recursive AST walker used to find/update config lists without
115
+ * introducing a heavier traversal dependency.
116
+ */
117
+ function traverseAst(node, visitor) {
118
+ visitor(node);
119
+ const visitorKeys = t.VISITOR_KEYS[node.type] ?? [];
120
+ for (const key of visitorKeys) {
121
+ const value = Reflect.get(node, key);
122
+ if (Array.isArray(value)) {
123
+ for (const childNode of value) {
124
+ if (isNode(childNode)) {
125
+ traverseAst(childNode, visitor);
126
+ }
127
+ }
128
+ continue;
129
+ }
130
+ if (isNode(value)) {
131
+ traverseAst(value, visitor);
132
+ }
133
+ }
134
+ }
135
+ /**
136
+ * Finds object literal initialized by a given variable name.
137
+ */
138
+ function findObjectLiteralFromNamedVariable(args) {
139
+ const { ast, variableName } = args;
140
+ let objectLiteral;
141
+ traverseAst(ast, (node) => {
142
+ if (objectLiteral) {
143
+ return;
144
+ }
145
+ if (!t.isVariableDeclarator(node) ||
146
+ !t.isIdentifier(node.id) ||
147
+ node.id.name !== variableName) {
148
+ return;
149
+ }
150
+ objectLiteral = unwrapExpressionToObjectLiteral(node.init);
151
+ });
152
+ return objectLiteral;
153
+ }
154
+ function resolveObjectLiteralFromExpressionOrIdentifier(args) {
155
+ if (!args.expression) {
156
+ return undefined;
157
+ }
158
+ if (!t.isExpression(args.expression) && !t.isPrivateName(args.expression)) {
159
+ return undefined;
160
+ }
161
+ const directObjectLiteral = unwrapExpressionToObjectLiteral(args.expression);
162
+ if (directObjectLiteral) {
163
+ return directObjectLiteral;
164
+ }
165
+ if (args.expression && t.isIdentifier(args.expression)) {
166
+ return findObjectLiteralFromNamedVariable({
167
+ ast: args.ast,
168
+ variableName: args.expression.name,
169
+ });
170
+ }
171
+ return undefined;
172
+ }
173
+ /**
174
+ * Finds config object from `module.exports = ...` assignment.
175
+ * Supports both direct object literals and identifier references.
176
+ */
177
+ function findObjectLiteralFromModuleExports(ast) {
178
+ let objectLiteral;
179
+ traverseAst(ast, (node) => {
180
+ if (objectLiteral) {
181
+ return;
182
+ }
183
+ if (!t.isAssignmentExpression(node) ||
184
+ !t.isMemberExpression(node.left) ||
185
+ node.left.computed ||
186
+ !t.isIdentifier(node.left.object) ||
187
+ node.left.object.name !== "module" ||
188
+ !t.isIdentifier(node.left.property) ||
189
+ node.left.property.name !== "exports") {
190
+ return;
191
+ }
192
+ objectLiteral = resolveObjectLiteralFromExpressionOrIdentifier({
193
+ ast,
194
+ expression: node.right,
195
+ });
196
+ });
197
+ return objectLiteral;
198
+ }
199
+ /**
200
+ * Finds config object from `export default ...`.
201
+ * Supports direct object literals and identifier references.
202
+ */
203
+ function findObjectLiteralFromExportDefault(ast) {
204
+ let objectLiteral;
205
+ traverseAst(ast, (node) => {
206
+ if (objectLiteral || !t.isExportDefaultDeclaration(node)) {
207
+ return;
208
+ }
209
+ objectLiteral = resolveObjectLiteralFromExpressionOrIdentifier({
210
+ ast,
211
+ expression: node.declaration,
212
+ });
213
+ });
214
+ return objectLiteral;
215
+ }
216
+ /**
217
+ * Finds the root Notion config object literal using explicit supported shapes.
218
+ * Resolution order:
219
+ * 1) `const NotionConfig = { ... }`
220
+ * 2) `module.exports = ...`
221
+ * 3) `export default ...`
222
+ */
223
+ function findConfigObjectLiteral(ast) {
224
+ return (findObjectLiteralFromNamedVariable({
225
+ ast,
226
+ variableName: "NotionConfig",
227
+ }) ??
228
+ findObjectLiteralFromModuleExports(ast) ??
229
+ findObjectLiteralFromExportDefault(ast));
230
+ }
231
+ /**
232
+ * Creates a string literal item and optionally attaches a trailing comment
233
+ * so generated config entries stay human-readable.
234
+ */
235
+ function createConfigListLiteral(args) {
236
+ const literal = t.stringLiteral(args.value);
237
+ if (args.comment) {
238
+ t.addComment(literal, "trailing", ` ${args.comment} `, false);
239
+ }
240
+ return literal;
241
+ }
242
+ /**
243
+ * Preserves first-seen ordering while removing duplicate list entries.
244
+ */
245
+ function dedupeListItems(values) {
246
+ const seen = new Set();
247
+ const normalized = [];
248
+ for (const value of values) {
249
+ if (seen.has(value.value)) {
250
+ continue;
251
+ }
252
+ seen.add(value.value);
253
+ normalized.push(value);
254
+ }
255
+ return normalized;
256
+ }
257
+ /**
258
+ * Type guard for config list properties (`databases`/`agents`) in object
259
+ * literals, supporting identifier and string keys.
260
+ */
261
+ function isConfigListProperty(property, key) {
262
+ if (!t.isObjectProperty(property)) {
263
+ return false;
264
+ }
265
+ if (t.isIdentifier(property.key)) {
266
+ return property.key.name === key;
267
+ }
268
+ if (t.isStringLiteral(property.key)) {
269
+ return property.key.value === key;
270
+ }
271
+ return false;
272
+ }
273
+ /**
274
+ * Reads plain string values from an array literal, skipping non-string entries.
275
+ */
276
+ function extractStringLiteralValues(arrayExpression) {
277
+ return arrayExpression.elements
278
+ .filter((element) => t.isStringLiteral(element))
279
+ .map((element) => element.value);
280
+ }
281
+ /**
282
+ * Order-sensitive equality used to avoid rewriting unchanged config arrays.
283
+ */
284
+ function areEqualStringLists(left, right) {
285
+ if (left.length !== right.length) {
286
+ return false;
287
+ }
288
+ for (let index = 0; index < left.length; index += 1) {
289
+ if (left[index] !== right[index]) {
290
+ return false;
291
+ }
292
+ }
293
+ return true;
294
+ }
295
+ function detectIndentUnit(sourceCode) {
296
+ const tabIndentedLine = sourceCode.match(/^\t+/m);
297
+ if (tabIndentedLine) {
298
+ return "\t";
299
+ }
300
+ const spaceIndentedLine = sourceCode.match(/^( +)\S/m);
301
+ if (!spaceIndentedLine || spaceIndentedLine[1].length < 2) {
302
+ return " ";
303
+ }
304
+ return spaceIndentedLine[1];
305
+ }
306
+ function getLineIndentAtIndex(args) {
307
+ const { sourceCode, index } = args;
308
+ const lineStartIndex = sourceCode.lastIndexOf("\n", index - 1) + 1;
309
+ let cursor = lineStartIndex;
310
+ while (cursor < sourceCode.length) {
311
+ const char = sourceCode[cursor];
312
+ if (char !== " " && char !== "\t") {
313
+ break;
314
+ }
315
+ cursor += 1;
316
+ }
317
+ return sourceCode.slice(lineStartIndex, cursor);
318
+ }
319
+ function formatConfigListArraysToMultiline(args) {
320
+ const { sourceCode, isTS } = args;
321
+ const ast = parseConfigSource({ sourceCode, isTS });
322
+ const configObject = findConfigObjectLiteral(ast);
323
+ if (!configObject) {
324
+ return sourceCode;
325
+ }
326
+ const indentUnit = detectIndentUnit(sourceCode);
327
+ const replacements = [];
328
+ for (const property of configObject.properties) {
329
+ if (!isConfigListProperty(property, "databases") &&
330
+ !isConfigListProperty(property, "agents")) {
331
+ continue;
332
+ }
333
+ if (!t.isArrayExpression(property.value)) {
334
+ continue;
335
+ }
336
+ const arrayValue = property.value;
337
+ if (arrayValue.elements.length === 0) {
338
+ continue;
339
+ }
340
+ if (arrayValue.start == null ||
341
+ arrayValue.end == null ||
342
+ property.start == null) {
343
+ continue;
344
+ }
345
+ const propertyIndent = getLineIndentAtIndex({
346
+ sourceCode,
347
+ index: property.start,
348
+ });
349
+ const elementIndent = `${propertyIndent}${indentUnit}`;
350
+ const formattedElements = arrayValue.elements
351
+ .filter((element) => element !== null)
352
+ .map((element) => `${elementIndent}${generate(element, { concise: false }).code},`)
353
+ .join("\n");
354
+ replacements.push({
355
+ start: arrayValue.start,
356
+ end: arrayValue.end,
357
+ nextText: `[\n${formattedElements}\n${propertyIndent}]`,
358
+ });
359
+ }
360
+ if (replacements.length === 0) {
361
+ return sourceCode;
362
+ }
363
+ let formattedCode = sourceCode;
364
+ for (const replacement of replacements.sort((left, right) => right.start - left.start)) {
365
+ formattedCode =
366
+ formattedCode.slice(0, replacement.start) +
367
+ replacement.nextText +
368
+ formattedCode.slice(replacement.end);
369
+ }
370
+ return formattedCode;
371
+ }
372
+ /**
373
+ * Applies append/replace semantics for one config list key and reports whether
374
+ * source code should be re-emitted.
375
+ */
376
+ function applyListUpdateToObjectLiteral(args) {
377
+ const { configObject, key, values, strategy } = args;
378
+ const normalizedValues = dedupeListItems(values);
379
+ const arrayProperty = configObject.properties.find((property) => isConfigListProperty(property, key));
380
+ if (!arrayProperty) {
381
+ const createdArrayProperty = t.objectProperty(t.identifier(key), t.arrayExpression(normalizedValues.map((value) => createConfigListLiteral(value))));
382
+ configObject.properties.push(createdArrayProperty);
383
+ return normalizedValues.length > 0;
384
+ }
385
+ if (!t.isObjectProperty(arrayProperty) ||
386
+ !t.isArrayExpression(arrayProperty.value)) {
387
+ const replacementProperty = t.objectProperty(t.identifier(key), t.arrayExpression(normalizedValues.map((value) => createConfigListLiteral(value))));
388
+ const propertyIndex = configObject.properties.findIndex((property) => isConfigListProperty(property, key));
389
+ if (propertyIndex >= 0) {
390
+ configObject.properties[propertyIndex] = replacementProperty;
391
+ }
392
+ return true;
393
+ }
394
+ const existingValues = extractStringLiteralValues(arrayProperty.value);
395
+ if (strategy === "replaceAll") {
396
+ const nextValues = normalizedValues.map((value) => value.value);
397
+ if (areEqualStringLists(existingValues, nextValues)) {
398
+ return false;
399
+ }
400
+ arrayProperty.value.elements = normalizedValues.map((value) => createConfigListLiteral(value));
401
+ return true;
402
+ }
403
+ const existingValueSet = new Set(existingValues);
404
+ let modified = false;
405
+ for (const value of normalizedValues) {
406
+ if (existingValueSet.has(value.value)) {
407
+ continue;
408
+ }
409
+ arrayProperty.value.elements.push(createConfigListLiteral(value));
410
+ modified = true;
411
+ }
412
+ return modified;
413
+ }
414
+ /**
415
+ * Updates one config list (`databases` or `agents`) inside module source code.
416
+ *
417
+ * Example (append only new IDs):
418
+ * `updateConfigListInConfigModule({ sourceCode, isTS: true, key: "databases", strategy: "appendUnique", items: [...] })`
419
+ *
420
+ * Example (replace entire list):
421
+ * `updateConfigListInConfigModule({ sourceCode, isTS: true, key: "agents", strategy: "replaceAll", items: [...] })`
422
+ */
423
+ export function updateConfigListInConfigModule(args) {
424
+ const { sourceCode, isTS, key, items, strategy } = args;
425
+ const ast = parseConfigSource({ sourceCode, isTS });
426
+ const configObject = findConfigObjectLiteral(ast);
427
+ if (!configObject) {
428
+ throw new Error("Could not locate a config object in notion.config file");
429
+ }
430
+ const modified = applyListUpdateToObjectLiteral({
431
+ configObject,
432
+ key,
433
+ values: items,
434
+ strategy,
435
+ });
436
+ if (!modified) {
437
+ return {
438
+ modified: false,
439
+ code: sourceCode,
440
+ };
441
+ }
442
+ const output = generate(ast, {
443
+ retainLines: true,
444
+ concise: false,
445
+ });
446
+ return {
447
+ modified: true,
448
+ code: formatConfigListArraysToMultiline({
449
+ sourceCode: output.code,
450
+ isTS,
451
+ }),
452
+ };
453
+ }
454
+ //# sourceMappingURL=config-emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-emitter.js","sourceRoot":"","sources":["../../../../../src/ast/shared/emit/config-emitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Converts runtime JSON-like values into TypeScript AST expressions.
3
+ * Used by codegen when writing literal data into emitted files.
4
+ */
5
+ import * as ts from "typescript";
6
+ /**
7
+ * Returns a `ts.Expression` for string/number/boolean/null/array/plain-object values.
8
+ */
9
+ export declare function emitValueAsExpression(value: unknown): ts.Expression;
10
+ //# sourceMappingURL=emit-value-as-expression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-value-as-expression.d.ts","sourceRoot":"","sources":["../../../../../src/ast/shared/emit/emit-value-as-expression.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAsCjC;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,EAAE,CAAC,UAAU,CAEnE"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Converts runtime JSON-like values into TypeScript AST expressions.
3
+ * Used by codegen when writing literal data into emitted files.
4
+ */
5
+ import * as ts from "typescript";
6
+ function valueToExpression(value) {
7
+ if (value === null) {
8
+ return ts.factory.createNull();
9
+ }
10
+ if (typeof value === "string") {
11
+ return ts.factory.createStringLiteral(value);
12
+ }
13
+ if (typeof value === "number") {
14
+ return ts.factory.createNumericLiteral(String(value));
15
+ }
16
+ if (typeof value === "boolean") {
17
+ return value ? ts.factory.createTrue() : ts.factory.createFalse();
18
+ }
19
+ if (typeof value === "object" &&
20
+ value !== null &&
21
+ !Array.isArray(value) &&
22
+ Object.getPrototypeOf(value) === Object.prototype) {
23
+ const props = Object.entries(value).map(([key, v]) => ts.factory.createPropertyAssignment(ts.factory.createIdentifier(key), valueToExpression(v)));
24
+ return ts.factory.createObjectLiteralExpression(props, true);
25
+ }
26
+ if (Array.isArray(value)) {
27
+ return ts.factory.createArrayLiteralExpression(value.map((v) => valueToExpression(v)), true);
28
+ }
29
+ throw new Error(`Cannot emit value as expression: ${typeof value}`);
30
+ }
31
+ /**
32
+ * Returns a `ts.Expression` for string/number/boolean/null/array/plain-object values.
33
+ */
34
+ export function emitValueAsExpression(value) {
35
+ return valueToExpression(value);
36
+ }
37
+ //# sourceMappingURL=emit-value-as-expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-value-as-expression.js","sourceRoot":"","sources":["../../../../../src/ast/shared/emit/emit-value-as-expression.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,SAAS,iBAAiB,CAAC,KAAc;IACxC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACnE,CAAC;IACD,IACC,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,EAChD,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CACpD,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAClC,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAChC,iBAAiB,CAAC,CAAC,CAAC,CACpB,CACD,CAAC;QACF,OAAO,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAC7C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EACtC,IAAI,CACJ,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,OAAO,KAAK,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc;IACnD,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,61 @@
1
+ import * as ts from "typescript";
2
+ import type { CachedEntityMetadata } from "../cached-metadata";
3
+ import { type CodegenEnvironment } from "../codegen-environment";
4
+ import { type TsEmitContext } from "./ts-emit-core";
5
+ /**
6
+ * Minimal metadata needed to wire generated databases/agents into NotionORM.
7
+ *
8
+ * `name` must be an identifier-safe lower camelCase symbol
9
+ * (for example: `coffeeShopDirectory`, `foodManager`).
10
+ * It is used as:
11
+ * - the registry property key; import paths use PascalCase file stems (`./databases/<PascalName>`, `./agents/<PascalName>`)
12
+ * - database and agent factory exports are PascalCase (`CustomerOrders`, `FoodManager`)
13
+ */
14
+ export interface OrmEntityMetadata {
15
+ name: string;
16
+ }
17
+ /**
18
+ * Produces runtime module statements for `notion/index.ts` (import as `./notion/` from app code).
19
+ */
20
+ export declare function buildOrmIndexModuleAst(args: {
21
+ databases: OrmEntityMetadata[];
22
+ agents: OrmEntityMetadata[];
23
+ syncCommand: string;
24
+ environment?: CodegenEnvironment;
25
+ importPaths?: {
26
+ databaseClass?: (name: string) => string;
27
+ agentClass?: (name: string) => string;
28
+ };
29
+ }): ts.Statement[];
30
+ /**
31
+ * Produces declaration module statements for `notion/index.d.ts`.
32
+ */
33
+ export declare function buildOrmIndexDeclarationAst(args: {
34
+ databases: OrmEntityMetadata[];
35
+ agents: OrmEntityMetadata[];
36
+ syncCommand?: string;
37
+ }): ts.Statement[];
38
+ /**
39
+ * Emits all NotionORM index artifacts (runtime TS/JS + declaration .d.ts).
40
+ * This glues generated `databases/*` and `agents/*` factory modules into one entrypoint.
41
+ */
42
+ export declare function emitOrmIndexArtifacts(args: {
43
+ databases: OrmEntityMetadata[];
44
+ agents: OrmEntityMetadata[];
45
+ buildIndexPath: string;
46
+ buildIndexDtsPath: string;
47
+ buildIndexDtsMapPath?: string;
48
+ syncCommand: string;
49
+ environment: CodegenEnvironment;
50
+ context?: TsEmitContext;
51
+ }): {
52
+ code: string;
53
+ dtsCode: string;
54
+ };
55
+ /**
56
+ * Rebuilds the generated root `notion/index` artifacts that wire all
57
+ * database/agent factories into the exported NotionORM class.
58
+ * Use this from both database and agent CLI entry points.
59
+ */
60
+ export declare function updateSourceIndexFile(databasesMetadata: CachedEntityMetadata[], agentsMetadata: CachedEntityMetadata[], environment: CodegenEnvironment): void;
61
+ //# sourceMappingURL=orm-index-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orm-index-emitter.d.ts","sourceRoot":"","sources":["../../../../../src/ast/shared/emit/orm-index-emitter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAQ/D,OAAO,EACN,KAAK,kBAAkB,EAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAKN,KAAK,aAAa,EAGlB,MAAM,gBAAgB,CAAC;AAGxB;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAC;CACb;AA2hBD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC5C,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,WAAW,CAAC,EAAE;QACb,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QACzC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;KACtC,CAAC;CACF,GAAG,EAAE,CAAC,SAAS,EAAE,CAEjB;AAuED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IACjD,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,EAAE,CAAC,SAAS,EAAE,CAEjB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC3C,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,kBAAkB,CAAC;IAChC,OAAO,CAAC,EAAE,aAAa,CAAC;CACxB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAoDpC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACpC,iBAAiB,EAAE,oBAAoB,EAAE,EACzC,cAAc,EAAE,oBAAoB,EAAE,EACtC,WAAW,EAAE,kBAAkB,GAC7B,IAAI,CAUN"}