@party-stack/ontology 0.20.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/README.md +31 -0
  2. package/lib/OntologyPullConfig.d.ts +4 -17
  3. package/lib/OntologyPullConfig.d.ts.map +1 -1
  4. package/lib/authentication.d.ts +1068 -0
  5. package/lib/authentication.d.ts.map +1 -0
  6. package/lib/authentication.js +55 -0
  7. package/lib/authentication.js.map +1 -0
  8. package/lib/cli/index.js +19 -45
  9. package/lib/cli/index.js.map +1 -1
  10. package/lib/cli/pull.d.ts.map +1 -1
  11. package/lib/cli/pull.js +16 -29
  12. package/lib/cli/pull.js.map +1 -1
  13. package/lib/client.d.ts +11 -0
  14. package/lib/client.d.ts.map +1 -0
  15. package/lib/client.js +21 -0
  16. package/lib/client.js.map +1 -0
  17. package/lib/examples/blog.d.ts +2 -387
  18. package/lib/examples/blog.js +1 -353
  19. package/lib/examples/blog.live-queries.d.ts +1 -1
  20. package/lib/examples/blog.live-queries.d.ts.map +1 -1
  21. package/lib/examples/blog.live-queries.js +1 -1
  22. package/lib/examples/blog.live-queries.js.map +1 -1
  23. package/lib/examples/generated/collections.d.ts +7 -0
  24. package/lib/examples/generated/collections.d.ts.map +1 -0
  25. package/lib/examples/generated/collections.js +12 -0
  26. package/lib/examples/generated/collections.js.map +1 -0
  27. package/lib/examples/generated/live.d.ts +2 -2
  28. package/lib/examples/generated/live.d.ts.map +1 -1
  29. package/lib/examples/generated/live.js.map +1 -1
  30. package/lib/http.d.ts +13 -0
  31. package/lib/http.d.ts.map +1 -0
  32. package/lib/http.js +29 -0
  33. package/lib/http.js.map +1 -0
  34. package/lib/index.d.ts +19 -25
  35. package/lib/index.js +9 -15
  36. package/lib/json/index.d.ts +1 -16
  37. package/lib/json/index.js +2 -132
  38. package/lib/live/LiveOntology.d.ts +114 -50
  39. package/lib/live/LiveOntology.d.ts.map +1 -1
  40. package/lib/live/LiveOntology.js +23 -103
  41. package/lib/live/LiveOntology.js.map +1 -1
  42. package/lib/live/actions/createLiveOntologyAction.d.ts +15 -16
  43. package/lib/live/actions/createLiveOntologyAction.d.ts.map +1 -1
  44. package/lib/live/actions/createLiveOntologyAction.js +3 -11
  45. package/lib/live/actions/createLiveOntologyAction.js.map +1 -1
  46. package/lib/live/actions/types.d.ts +21 -0
  47. package/lib/live/actions/types.d.ts.map +1 -0
  48. package/lib/live/attachments/createLiveOntologyAttachments.d.ts +29 -19
  49. package/lib/live/attachments/createLiveOntologyAttachments.d.ts.map +1 -1
  50. package/lib/live/attachments/createLiveOntologyAttachments.js +43 -60
  51. package/lib/live/attachments/createLiveOntologyAttachments.js.map +1 -1
  52. package/lib/live/attachments/types.d.ts +3 -3
  53. package/lib/live/index.d.ts +10 -10
  54. package/lib/live/index.js +5 -6
  55. package/lib/live/mutators/createReadTx.d.ts +5 -0
  56. package/lib/live/mutators/createReadTx.d.ts.map +1 -0
  57. package/lib/live/mutators/createReadTx.js +19 -0
  58. package/lib/live/mutators/createReadTx.js.map +1 -0
  59. package/lib/live/mutators/types.d.ts +7 -2
  60. package/lib/live/mutators/types.d.ts.map +1 -1
  61. package/lib/live/objects/types.d.ts +6 -0
  62. package/lib/live/objects/types.d.ts.map +1 -0
  63. package/lib/live/outbox/types.d.ts +24 -15
  64. package/lib/live/outbox/types.d.ts.map +1 -1
  65. package/lib/live/outbox/types.js +1 -11
  66. package/lib/live/pins.d.ts +51 -0
  67. package/lib/live/pins.d.ts.map +1 -0
  68. package/lib/live/pins.js +113 -0
  69. package/lib/live/pins.js.map +1 -0
  70. package/lib/live/storageBackend.d.ts +50 -0
  71. package/lib/live/storageBackend.d.ts.map +1 -0
  72. package/lib/live/storageBackend.js +42 -0
  73. package/lib/live/storageBackend.js.map +1 -0
  74. package/lib/local.d.ts +15 -0
  75. package/lib/local.d.ts.map +1 -0
  76. package/lib/local.js +19 -0
  77. package/lib/local.js.map +1 -0
  78. package/lib/meta/generated/collections.d.ts +7 -0
  79. package/lib/meta/generated/collections.d.ts.map +1 -0
  80. package/lib/meta/generated/collections.js +15 -0
  81. package/lib/meta/generated/collections.js.map +1 -0
  82. package/lib/meta/generated/live.d.ts +3 -3
  83. package/lib/meta/generated/live.d.ts.map +1 -1
  84. package/lib/meta/generated/live.js +2 -2
  85. package/lib/meta/generated/live.js.map +1 -1
  86. package/lib/meta/pull.d.ts +5 -9
  87. package/lib/meta/pull.d.ts.map +1 -1
  88. package/lib/meta/pull.js +5 -43
  89. package/lib/meta/pull.js.map +1 -1
  90. package/lib/query.d.ts +1 -0
  91. package/lib/query.js +2 -0
  92. package/lib/runtime/host.d.ts +35 -0
  93. package/lib/runtime/host.d.ts.map +1 -0
  94. package/lib/runtime/host.js +39 -0
  95. package/lib/runtime/host.js.map +1 -0
  96. package/lib/runtime/index.d.ts +2 -0
  97. package/lib/runtime/index.js +1 -0
  98. package/lib/runtime/live.d.ts +25 -0
  99. package/lib/runtime/live.d.ts.map +1 -0
  100. package/lib/runtime/live.js +31 -0
  101. package/lib/runtime/live.js.map +1 -0
  102. package/lib/runtime/resource.d.ts +24 -0
  103. package/lib/runtime/resource.d.ts.map +1 -0
  104. package/lib/runtime/resource.js +127 -0
  105. package/lib/runtime/resource.js.map +1 -0
  106. package/lib/runtime/transactions.d.ts +27 -0
  107. package/lib/runtime/transactions.d.ts.map +1 -0
  108. package/lib/runtime/transactions.js +188 -0
  109. package/lib/runtime/transactions.js.map +1 -0
  110. package/lib/runtime/view.d.ts +25 -0
  111. package/lib/runtime/view.d.ts.map +1 -0
  112. package/lib/runtime/view.js +256 -0
  113. package/lib/runtime/view.js.map +1 -0
  114. package/lib/tanstack/collections.d.ts +73 -0
  115. package/lib/tanstack/collections.d.ts.map +1 -0
  116. package/lib/tanstack/collections.js +495 -0
  117. package/lib/tanstack/collections.js.map +1 -0
  118. package/lib/tanstack/createLocalCollection.d.ts +14 -0
  119. package/lib/tanstack/createLocalCollection.d.ts.map +1 -0
  120. package/lib/tanstack/createLocalCollection.js +9 -0
  121. package/lib/tanstack/createLocalCollection.js.map +1 -0
  122. package/lib/tanstack/descriptors.d.ts +33 -0
  123. package/lib/tanstack/descriptors.d.ts.map +1 -0
  124. package/lib/tanstack/descriptors.js +38 -0
  125. package/lib/tanstack/descriptors.js.map +1 -0
  126. package/lib/tanstack/diagnostics.d.ts +23 -0
  127. package/lib/tanstack/diagnostics.d.ts.map +1 -0
  128. package/lib/tanstack/diagnostics.js +14 -0
  129. package/lib/tanstack/diagnostics.js.map +1 -0
  130. package/lib/tanstack/index.d.ts +6 -0
  131. package/lib/tanstack/index.js +6 -0
  132. package/lib/tanstack/localCollection.d.ts +14 -0
  133. package/lib/tanstack/localCollection.d.ts.map +1 -0
  134. package/lib/tanstack/localCollection.js +73 -0
  135. package/lib/tanstack/localCollection.js.map +1 -0
  136. package/lib/tanstack/subset.d.ts +28 -0
  137. package/lib/tanstack/subset.d.ts.map +1 -0
  138. package/lib/tanstack/subset.js +290 -0
  139. package/lib/tanstack/subset.js.map +1 -0
  140. package/lib/testing/sqlite.d.ts +40 -0
  141. package/lib/testing/sqlite.d.ts.map +1 -0
  142. package/lib/testing/sqlite.js +409 -0
  143. package/lib/testing/sqlite.js.map +1 -0
  144. package/lib/testing/sqliteBackend.d.ts +68 -0
  145. package/lib/testing/sqliteBackend.d.ts.map +1 -0
  146. package/lib/testing/sqliteBackend.js +34 -0
  147. package/lib/testing/sqliteBackend.js.map +1 -0
  148. package/lib/utils/index.d.ts +1 -8
  149. package/lib/utils/index.js +2 -5
  150. package/lib/utils/values.d.ts +1 -30
  151. package/lib/worker.d.ts +19 -0
  152. package/lib/worker.d.ts.map +1 -0
  153. package/lib/worker.js +46 -0
  154. package/lib/worker.js.map +1 -0
  155. package/package.json +53 -18
  156. package/lib/cli/format.d.ts +0 -4
  157. package/lib/cli/format.d.ts.map +0 -1
  158. package/lib/cli/format.js +0 -19
  159. package/lib/cli/format.js.map +0 -1
  160. package/lib/cli/generate.d.ts +0 -10
  161. package/lib/cli/generate.d.ts.map +0 -1
  162. package/lib/cli/generate.js +0 -108
  163. package/lib/cli/generate.js.map +0 -1
  164. package/lib/examples/blog.d.ts.map +0 -1
  165. package/lib/examples/blog.js.map +0 -1
  166. package/lib/generate/builders.d.ts +0 -12
  167. package/lib/generate/builders.d.ts.map +0 -1
  168. package/lib/generate/builders.js +0 -58
  169. package/lib/generate/builders.js.map +0 -1
  170. package/lib/generate/constants.d.ts +0 -5
  171. package/lib/generate/constants.d.ts.map +0 -1
  172. package/lib/generate/constants.js +0 -28
  173. package/lib/generate/constants.js.map +0 -1
  174. package/lib/generate/index.d.ts +0 -6
  175. package/lib/generate/index.js +0 -6
  176. package/lib/generate/live.d.ts +0 -12
  177. package/lib/generate/live.d.ts.map +0 -1
  178. package/lib/generate/live.js +0 -48
  179. package/lib/generate/live.js.map +0 -1
  180. package/lib/generate/ontology.d.ts +0 -8
  181. package/lib/generate/ontology.d.ts.map +0 -1
  182. package/lib/generate/ontology.js +0 -501
  183. package/lib/generate/ontology.js.map +0 -1
  184. package/lib/generate/types.d.ts +0 -18
  185. package/lib/generate/types.d.ts.map +0 -1
  186. package/lib/generate/types.js +0 -216
  187. package/lib/generate/types.js.map +0 -1
  188. package/lib/generate/utils/buildJsDocs.d.ts +0 -10
  189. package/lib/generate/utils/buildJsDocs.d.ts.map +0 -1
  190. package/lib/generate/utils/buildJsDocs.js +0 -16
  191. package/lib/generate/utils/buildJsDocs.js.map +0 -1
  192. package/lib/infer.d.ts +0 -223
  193. package/lib/infer.d.ts.map +0 -1
  194. package/lib/infer.js +0 -14
  195. package/lib/infer.js.map +0 -1
  196. package/lib/installation/createMetaOntologyConfiguration.d.ts +0 -10
  197. package/lib/installation/createMetaOntologyConfiguration.d.ts.map +0 -1
  198. package/lib/installation/createMetaOntologyConfiguration.js +0 -16
  199. package/lib/installation/createMetaOntologyConfiguration.js.map +0 -1
  200. package/lib/installation/createOntologyBackendInstallation.d.ts +0 -5
  201. package/lib/installation/createOntologyBackendInstallation.d.ts.map +0 -1
  202. package/lib/installation/createOntologyBackendInstallation.js +0 -221
  203. package/lib/installation/createOntologyBackendInstallation.js.map +0 -1
  204. package/lib/installation/index.d.ts +0 -4
  205. package/lib/installation/index.js +0 -3
  206. package/lib/installation/types.d.ts +0 -94
  207. package/lib/installation/types.d.ts.map +0 -1
  208. package/lib/ir/generated/builders.d.ts +0 -380
  209. package/lib/ir/generated/builders.d.ts.map +0 -1
  210. package/lib/ir/generated/builders.js +0 -186
  211. package/lib/ir/generated/builders.js.map +0 -1
  212. package/lib/ir/generated/constants.d.ts +0 -265
  213. package/lib/ir/generated/constants.d.ts.map +0 -1
  214. package/lib/ir/generated/constants.js +0 -165
  215. package/lib/ir/generated/constants.js.map +0 -1
  216. package/lib/ir/generated/types.d.ts +0 -413
  217. package/lib/ir/generated/types.d.ts.map +0 -1
  218. package/lib/ir/index.d.ts +0 -4
  219. package/lib/ir/index.js +0 -3
  220. package/lib/ir/schema.d.ts +0 -2246
  221. package/lib/ir/schema.d.ts.map +0 -1
  222. package/lib/ir/schema.js +0 -1187
  223. package/lib/ir/schema.js.map +0 -1
  224. package/lib/ir/validate.d.ts +0 -8
  225. package/lib/ir/validate.d.ts.map +0 -1
  226. package/lib/ir/validate.js +0 -623
  227. package/lib/ir/validate.js.map +0 -1
  228. package/lib/json/index.d.ts.map +0 -1
  229. package/lib/json/index.js.map +0 -1
  230. package/lib/lenses.d.ts +0 -21
  231. package/lib/lenses.d.ts.map +0 -1
  232. package/lib/lenses.js +0 -110
  233. package/lib/lenses.js.map +0 -1
  234. package/lib/live/OntologyBackendAdapter.d.ts +0 -104
  235. package/lib/live/OntologyBackendAdapter.d.ts.map +0 -1
  236. package/lib/live/OntologyBackendAdapter.js +0 -1
  237. package/lib/live/actions/createLiveOntologyActions.d.ts +0 -28
  238. package/lib/live/actions/createLiveOntologyActions.d.ts.map +0 -1
  239. package/lib/live/actions/createLiveOntologyActions.js +0 -139
  240. package/lib/live/actions/createLiveOntologyActions.js.map +0 -1
  241. package/lib/live/actions/prepareActionParameters.d.ts +0 -19
  242. package/lib/live/actions/prepareActionParameters.d.ts.map +0 -1
  243. package/lib/live/actions/prepareActionParameters.js +0 -213
  244. package/lib/live/actions/prepareActionParameters.js.map +0 -1
  245. package/lib/live/attachments/attachmentSources.d.ts +0 -10
  246. package/lib/live/attachments/attachmentSources.d.ts.map +0 -1
  247. package/lib/live/attachments/attachmentSources.js +0 -64
  248. package/lib/live/attachments/attachmentSources.js.map +0 -1
  249. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.d.ts +0 -5
  250. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.d.ts.map +0 -1
  251. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.js +0 -6
  252. package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.js.map +0 -1
  253. package/lib/live/expression.d.ts +0 -24
  254. package/lib/live/expression.d.ts.map +0 -1
  255. package/lib/live/expression.js +0 -160
  256. package/lib/live/expression.js.map +0 -1
  257. package/lib/live/mutators/OntologyEdits.d.ts +0 -15
  258. package/lib/live/mutators/OntologyEdits.d.ts.map +0 -1
  259. package/lib/live/mutators/OntologyEdits.js +0 -65
  260. package/lib/live/mutators/OntologyEdits.js.map +0 -1
  261. package/lib/live/mutators/createMutatorTx.d.ts +0 -11
  262. package/lib/live/mutators/createMutatorTx.d.ts.map +0 -1
  263. package/lib/live/mutators/createMutatorTx.js +0 -61
  264. package/lib/live/mutators/createMutatorTx.js.map +0 -1
  265. package/lib/live/mutators/runOptimisticAction.d.ts +0 -19
  266. package/lib/live/mutators/runOptimisticAction.d.ts.map +0 -1
  267. package/lib/live/mutators/runOptimisticAction.js +0 -30
  268. package/lib/live/mutators/runOptimisticAction.js.map +0 -1
  269. package/lib/live/objects/OntologyObject.d.ts +0 -4
  270. package/lib/live/objects/OntologyObject.d.ts.map +0 -1
  271. package/lib/live/objects/OntologyObject.js +0 -1
  272. package/lib/live/objects/createLiveOntologyObjectCollection.d.ts +0 -17
  273. package/lib/live/objects/createLiveOntologyObjectCollection.d.ts.map +0 -1
  274. package/lib/live/objects/createLiveOntologyObjectCollection.js +0 -69
  275. package/lib/live/objects/createLiveOntologyObjectCollection.js.map +0 -1
  276. package/lib/live/objects/ontologyObjectCollectionId.d.ts +0 -4
  277. package/lib/live/objects/ontologyObjectCollectionId.d.ts.map +0 -1
  278. package/lib/live/objects/ontologyObjectCollectionId.js +0 -8
  279. package/lib/live/objects/ontologyObjectCollectionId.js.map +0 -1
  280. package/lib/live/outbox/createOntologyOutbox.d.ts +0 -23
  281. package/lib/live/outbox/createOntologyOutbox.d.ts.map +0 -1
  282. package/lib/live/outbox/createOntologyOutbox.js +0 -292
  283. package/lib/live/outbox/createOntologyOutbox.js.map +0 -1
  284. package/lib/live/outbox/leaderExecutor.d.ts +0 -20
  285. package/lib/live/outbox/leaderExecutor.d.ts.map +0 -1
  286. package/lib/live/outbox/leaderExecutor.js +0 -130
  287. package/lib/live/outbox/leaderExecutor.js.map +0 -1
  288. package/lib/live/outbox/outboxService.d.ts +0 -7
  289. package/lib/live/outbox/outboxService.d.ts.map +0 -1
  290. package/lib/live/outbox/outboxService.js +0 -68
  291. package/lib/live/outbox/outboxService.js.map +0 -1
  292. package/lib/live/outbox/projectionManager.d.ts +0 -31
  293. package/lib/live/outbox/projectionManager.d.ts.map +0 -1
  294. package/lib/live/outbox/projectionManager.js +0 -127
  295. package/lib/live/outbox/projectionManager.js.map +0 -1
  296. package/lib/live/outbox/repository.d.ts +0 -31
  297. package/lib/live/outbox/repository.d.ts.map +0 -1
  298. package/lib/live/outbox/repository.js +0 -196
  299. package/lib/live/outbox/repository.js.map +0 -1
  300. package/lib/live/outbox/service.d.ts +0 -61
  301. package/lib/live/outbox/service.d.ts.map +0 -1
  302. package/lib/live/outbox/service.js +0 -6
  303. package/lib/live/outbox/service.js.map +0 -1
  304. package/lib/live/outbox/types.js.map +0 -1
  305. package/lib/live/waitForCollectionReady.d.ts +0 -5
  306. package/lib/live/waitForCollectionReady.d.ts.map +0 -1
  307. package/lib/live/waitForCollectionReady.js +0 -49
  308. package/lib/live/waitForCollectionReady.js.map +0 -1
  309. package/lib/meta/createLocalMetaOntologyBackendAdapter.d.ts +0 -7
  310. package/lib/meta/createLocalMetaOntologyBackendAdapter.d.ts.map +0 -1
  311. package/lib/meta/createLocalMetaOntologyBackendAdapter.js +0 -44
  312. package/lib/meta/createLocalMetaOntologyBackendAdapter.js.map +0 -1
  313. package/lib/meta/generated/constants.d.ts +0 -265
  314. package/lib/meta/generated/constants.d.ts.map +0 -1
  315. package/lib/meta/generated/constants.js +0 -165
  316. package/lib/meta/generated/constants.js.map +0 -1
  317. package/lib/meta/generated/types.d.ts +0 -417
  318. package/lib/meta/generated/types.d.ts.map +0 -1
  319. package/lib/meta/generated/types.js +0 -1
  320. package/lib/meta/ontology.d.ts +0 -26
  321. package/lib/meta/ontology.d.ts.map +0 -1
  322. package/lib/meta/ontology.js +0 -111
  323. package/lib/meta/ontology.js.map +0 -1
  324. package/lib/utils/links.d.ts +0 -50
  325. package/lib/utils/links.d.ts.map +0 -1
  326. package/lib/utils/links.js +0 -13
  327. package/lib/utils/links.js.map +0 -1
  328. package/lib/utils/paths.d.ts +0 -6
  329. package/lib/utils/paths.d.ts.map +0 -1
  330. package/lib/utils/paths.js +0 -42
  331. package/lib/utils/paths.js.map +0 -1
  332. package/lib/utils/provide.d.ts +0 -4
  333. package/lib/utils/provide.d.ts.map +0 -1
  334. package/lib/utils/provide.js +0 -9
  335. package/lib/utils/provide.js.map +0 -1
  336. package/lib/utils/targets.d.ts +0 -37
  337. package/lib/utils/targets.d.ts.map +0 -1
  338. package/lib/utils/targets.js +0 -1
  339. package/lib/utils/typeNames.d.ts +0 -28
  340. package/lib/utils/typeNames.d.ts.map +0 -1
  341. package/lib/utils/typeNames.js +0 -1
  342. package/lib/utils/types.d.ts +0 -12
  343. package/lib/utils/types.d.ts.map +0 -1
  344. package/lib/utils/types.js +0 -48
  345. package/lib/utils/types.js.map +0 -1
  346. package/lib/utils/uncertain.d.ts +0 -11
  347. package/lib/utils/uncertain.d.ts.map +0 -1
  348. package/lib/utils/uncertain.js +0 -14
  349. package/lib/utils/uncertain.js.map +0 -1
  350. package/lib/utils/validation.d.ts +0 -7
  351. package/lib/utils/validation.d.ts.map +0 -1
  352. package/lib/utils/validation.js +0 -1
  353. package/lib/utils/values.d.ts.map +0 -1
  354. /package/lib/{installation → live/actions}/types.js +0 -0
  355. /package/lib/{ir/generated → live/objects}/types.js +0 -0
@@ -1,28 +0,0 @@
1
- import { Project, VariableDeclarationKind } from "ts-morph";
2
- //#region src/generate/constants.ts
3
- function isNamedStringEnum(type) {
4
- return type.type.kind === "string" && type.type.value.constraint?.kind === "enum";
5
- }
6
- function generateConstants(schema) {
7
- const sourceFile = new Project({ useInMemoryFileSystem: true }).createSourceFile("constants.ts", "");
8
- const enumTypes = schema.types.filter(isNamedStringEnum);
9
- for (const type of enumTypes) {
10
- const optionsName = `${type.name}Options`;
11
- sourceFile.addVariableStatement({
12
- isExported: true,
13
- declarationKind: VariableDeclarationKind.Const,
14
- declarations: [{
15
- name: optionsName,
16
- initializer: `${JSON.stringify(type.type.value.constraint.value.options)} as const`
17
- }]
18
- });
19
- }
20
- if (enumTypes.length === 0) sourceFile.addExportDeclaration({});
21
- const declarations = sourceFile.getVariableStatements();
22
- for (const declaration of declarations.slice(0, -1)) declaration.appendWhitespace("\n");
23
- return sourceFile.getFullText().trim();
24
- }
25
- //#endregion
26
- export { generateConstants };
27
-
28
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","names":[],"sources":["../../src/generate/constants.ts"],"sourcesContent":["import { Project, VariableDeclarationKind } from \"ts-morph\";\nimport type { OntologyIR } from \"../ir/generated/types.js\";\n\nfunction isNamedStringEnum(type: OntologyIR[\"types\"][number]): type is OntologyIR[\"types\"][number] & {\n type: {\n kind: \"string\";\n value: {\n constraint: {\n kind: \"enum\";\n value: {\n options: Array<{ value: string; label?: string }>;\n };\n };\n };\n };\n} {\n return type.type.kind === \"string\" && type.type.value.constraint?.kind === \"enum\";\n}\n\nexport function generateConstants(schema: Pick<OntologyIR, \"types\">): string {\n const project = new Project({ useInMemoryFileSystem: true });\n const sourceFile = project.createSourceFile(\"constants.ts\", \"\");\n const enumTypes = schema.types.filter(isNamedStringEnum);\n\n for (const type of enumTypes) {\n const optionsName = `${type.name}Options`;\n sourceFile.addVariableStatement({\n isExported: true,\n declarationKind: VariableDeclarationKind.Const,\n declarations: [\n {\n name: optionsName,\n initializer: `${JSON.stringify(type.type.value.constraint.value.options)} as const`,\n },\n ],\n });\n }\n\n if (enumTypes.length === 0) {\n sourceFile.addExportDeclaration({});\n }\n\n const declarations = sourceFile.getVariableStatements();\n for (const declaration of declarations.slice(0, -1)) {\n declaration.appendWhitespace(\"\\n\");\n }\n\n return sourceFile.getFullText().trim();\n}\n"],"mappings":";;AAGA,SAAS,kBAAkB,MAYzB;CACE,OAAO,KAAK,KAAK,SAAS,YAAY,KAAK,KAAK,MAAM,YAAY,SAAS;AAC/E;AAEA,SAAgB,kBAAkB,QAA2C;CAEzE,MAAM,aAAa,IADC,QAAQ,EAAE,uBAAuB,KAAK,CACjC,CAAC,CAAC,iBAAiB,gBAAgB,EAAE;CAC9D,MAAM,YAAY,OAAO,MAAM,OAAO,iBAAiB;CAEvD,KAAK,MAAM,QAAQ,WAAW;EAC1B,MAAM,cAAc,GAAG,KAAK,KAAK;EACjC,WAAW,qBAAqB;GAC5B,YAAY;GACZ,iBAAiB,wBAAwB;GACzC,cAAc,CACV;IACI,MAAM;IACN,aAAa,GAAG,KAAK,UAAU,KAAK,KAAK,MAAM,WAAW,MAAM,OAAO,EAAE;GAC7E,CACJ;EACJ,CAAC;CACL;CAEA,IAAI,UAAU,WAAW,GACrB,WAAW,qBAAqB,CAAC,CAAC;CAGtC,MAAM,eAAe,WAAW,sBAAsB;CACtD,KAAK,MAAM,eAAe,aAAa,MAAM,GAAG,EAAE,GAC9C,YAAY,iBAAiB,IAAI;CAGrC,OAAO,WAAW,YAAY,CAAC,CAAC,KAAK;AACzC"}
@@ -1,6 +0,0 @@
1
- import { GenerateBuildersOpts, generateBuilders } from "./builders.js";
2
- import { generateConstants } from "./constants.js";
3
- import { GenerateLiveOpts, generateLive } from "./live.js";
4
- import { GenerateOntologyOpts, generateOntology } from "./ontology.js";
5
- import { GenerateTypeDefinitionsOpts, GenerateTypesOpts, generateForTypeDef, generateTypeDefinitions, generateTypes } from "./types.js";
6
- export { GenerateBuildersOpts, GenerateLiveOpts, GenerateOntologyOpts, GenerateTypeDefinitionsOpts, GenerateTypesOpts, generateBuilders, generateConstants, generateForTypeDef, generateLive, generateOntology, generateTypeDefinitions, generateTypes };
@@ -1,6 +0,0 @@
1
- import { generateBuilders } from "./builders.js";
2
- import { generateConstants } from "./constants.js";
3
- import { generateLive } from "./live.js";
4
- import { generateForTypeDef, generateTypeDefinitions, generateTypes } from "./types.js";
5
- import { generateOntology } from "./ontology.js";
6
- export { generateBuilders, generateConstants, generateForTypeDef, generateLive, generateOntology, generateTypeDefinitions, generateTypes };
@@ -1,12 +0,0 @@
1
- import { OntologyIR } from "../ir/generated/types.js";
2
- //#region src/generate/live.d.ts
3
- export interface GenerateLiveOpts {
4
- ontologyImportPath: string;
5
- ontologyTypesImportPath: string;
6
- ontologyRuntimeImportPath: string;
7
- ontologyTypeName: string;
8
- outputFactoryName: string;
9
- }
10
- export declare function generateLive(ir: OntologyIR, opts: GenerateLiveOpts): string;
11
- //#endregion
12
- //# sourceMappingURL=live.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"live.d.ts","names":[],"sources":["../../src/generate/live.ts"],"mappings":";;iBAGiB;EACb;EACA;EACA;EACA;EACA;;wBAGY,aAAa,IAAI,YAAY,MAAM"}
@@ -1,48 +0,0 @@
1
- import { Project } from "ts-morph";
2
- //#region src/generate/live.ts
3
- function generateLive(ir, opts) {
4
- const ontologyImportName = "ontology";
5
- const sourceFile = new Project({ useInMemoryFileSystem: true }).createSourceFile("live.ts", "");
6
- sourceFile.addImportDeclaration({
7
- moduleSpecifier: opts.ontologyRuntimeImportPath,
8
- namedImports: [
9
- { name: "createLiveOntology" },
10
- {
11
- name: "CreateLiveOntologyOpts",
12
- isTypeOnly: true
13
- },
14
- {
15
- name: "LiveOntology",
16
- isTypeOnly: true
17
- }
18
- ]
19
- });
20
- sourceFile.addImportDeclaration({
21
- moduleSpecifier: opts.ontologyImportPath,
22
- defaultImport: ontologyImportName
23
- });
24
- sourceFile.addImportDeclaration({
25
- moduleSpecifier: opts.ontologyTypesImportPath,
26
- namedImports: [opts.ontologyTypeName, `${opts.ontologyTypeName}Context`],
27
- isTypeOnly: true
28
- });
29
- sourceFile.addFunction({
30
- name: opts.outputFactoryName,
31
- isExported: true,
32
- isAsync: true,
33
- parameters: [{
34
- name: "opts",
35
- type: `Omit<CreateLiveOntologyOpts<${opts.ontologyTypeName}Context>, "ir">`
36
- }],
37
- returnType: `Promise<LiveOntology<${opts.ontologyTypeName}>>`,
38
- statements: `return createLiveOntology<${opts.ontologyTypeName}, ${opts.ontologyTypeName}Context>({
39
- ...opts,
40
- ir: ${ontologyImportName},
41
- });`
42
- });
43
- return sourceFile.getFullText().trim();
44
- }
45
- //#endregion
46
- export { generateLive };
47
-
48
- //# sourceMappingURL=live.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"live.js","names":[],"sources":["../../src/generate/live.ts"],"sourcesContent":["import { Project } from \"ts-morph\";\nimport type { OntologyIR } from \"../ir/generated/types.js\";\n\nexport interface GenerateLiveOpts {\n ontologyImportPath: string;\n ontologyTypesImportPath: string;\n ontologyRuntimeImportPath: string;\n ontologyTypeName: string;\n outputFactoryName: string;\n}\n\nexport function generateLive(ir: OntologyIR, opts: GenerateLiveOpts): string {\n const ontologyImportName = \"ontology\";\n const project = new Project({ useInMemoryFileSystem: true });\n const sourceFile = project.createSourceFile(\"live.ts\", \"\");\n\n sourceFile.addImportDeclaration({\n moduleSpecifier: opts.ontologyRuntimeImportPath,\n namedImports: [\n { name: \"createLiveOntology\" },\n {\n name: \"CreateLiveOntologyOpts\",\n isTypeOnly: true,\n },\n {\n name: \"LiveOntology\",\n isTypeOnly: true,\n },\n ],\n });\n sourceFile.addImportDeclaration({\n moduleSpecifier: opts.ontologyImportPath,\n defaultImport: ontologyImportName,\n });\n sourceFile.addImportDeclaration({\n moduleSpecifier: opts.ontologyTypesImportPath,\n namedImports: [opts.ontologyTypeName, `${opts.ontologyTypeName}Context`],\n isTypeOnly: true,\n });\n sourceFile.addFunction({\n name: opts.outputFactoryName,\n isExported: true,\n isAsync: true,\n parameters: [\n {\n name: \"opts\",\n type: `Omit<CreateLiveOntologyOpts<${opts.ontologyTypeName}Context>, \"ir\">`,\n },\n ],\n returnType: `Promise<LiveOntology<${opts.ontologyTypeName}>>`,\n statements: `return createLiveOntology<${opts.ontologyTypeName}, ${opts.ontologyTypeName}Context>({\n ...opts,\n ir: ${ontologyImportName},\n });`,\n });\n\n return sourceFile.getFullText().trim();\n}\n"],"mappings":";;AAWA,SAAgB,aAAa,IAAgB,MAAgC;CACzE,MAAM,qBAAqB;CAE3B,MAAM,aAAa,IADC,QAAQ,EAAE,uBAAuB,KAAK,CACjC,CAAC,CAAC,iBAAiB,WAAW,EAAE;CAEzD,WAAW,qBAAqB;EAC5B,iBAAiB,KAAK;EACtB,cAAc;GACV,EAAE,MAAM,qBAAqB;GAC7B;IACI,MAAM;IACN,YAAY;GAChB;GACA;IACI,MAAM;IACN,YAAY;GAChB;EACJ;CACJ,CAAC;CACD,WAAW,qBAAqB;EAC5B,iBAAiB,KAAK;EACtB,eAAe;CACnB,CAAC;CACD,WAAW,qBAAqB;EAC5B,iBAAiB,KAAK;EACtB,cAAc,CAAC,KAAK,kBAAkB,GAAG,KAAK,iBAAiB,QAAQ;EACvE,YAAY;CAChB,CAAC;CACD,WAAW,YAAY;EACnB,MAAM,KAAK;EACX,YAAY;EACZ,SAAS;EACT,YAAY,CACR;GACI,MAAM;GACN,MAAM,+BAA+B,KAAK,iBAAiB;EAC/D,CACJ;EACA,YAAY,wBAAwB,KAAK,iBAAiB;EAC1D,YAAY,6BAA6B,KAAK,iBAAiB,IAAI,KAAK,iBAAiB;;kBAE/E,mBAAmB;;CAEjC,CAAC;CAED,OAAO,WAAW,YAAY,CAAC,CAAC,KAAK;AACzC"}
@@ -1,8 +0,0 @@
1
- import { OntologyIR } from "../ir/generated/types.js";
2
- //#region src/generate/ontology.d.ts
3
- export interface GenerateOntologyOpts {
4
- ontologyImportPath?: string;
5
- }
6
- export declare function generateOntology(ir: OntologyIR, opts?: GenerateOntologyOpts): string;
7
- //#endregion
8
- //# sourceMappingURL=ontology.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ontology.d.ts","names":[],"sources":["../../src/generate/ontology.ts"],"mappings":";;iBAoBiB;EACb;;wBAibY,iBAAiB,IAAI,YAAY,OAAM"}
@@ -1,501 +0,0 @@
1
- import { Temporal } from "temporal-polyfill";
2
- import { CodeBlockWriter, Project } from "ts-morph";
3
- //#region src/generate/ontology.ts
4
- function withWriter(fn) {
5
- const writer = new CodeBlockWriter();
6
- fn(writer);
7
- return writer.toString();
8
- }
9
- function isIdentifier(value) {
10
- return /^[$A-Z_a-z][$\w]*$/.test(value);
11
- }
12
- function writePropertyName(writer, name) {
13
- writer.write(isIdentifier(name) ? name : JSON.stringify(name));
14
- }
15
- function writeArray(writer, values) {
16
- if (values.length === 0) {
17
- writer.write("[]");
18
- return;
19
- }
20
- writer.write("[");
21
- writer.newLine();
22
- writer.indent(() => {
23
- for (const value of values) {
24
- writer.write(value);
25
- writer.write(",");
26
- writer.newLine();
27
- }
28
- });
29
- writer.write("]");
30
- }
31
- function writeObject(writer, entries) {
32
- const definedEntries = entries.filter((entry) => entry.value !== void 0);
33
- if (definedEntries.length === 0) {
34
- writer.write("{}");
35
- return;
36
- }
37
- writer.write("{");
38
- writer.newLine();
39
- writer.indent(() => {
40
- for (const entry of definedEntries) {
41
- writePropertyName(writer, entry.name);
42
- writer.write(": ");
43
- writer.write(entry.value);
44
- writer.write(",");
45
- writer.newLine();
46
- }
47
- });
48
- writer.write("}");
49
- }
50
- function renderObject(entries) {
51
- return withWriter((writer) => writeObject(writer, entries));
52
- }
53
- function renderPlainValue(value, ctx) {
54
- return withWriter((writer) => writePlainValue(writer, value, ctx));
55
- }
56
- function writePlainValue(writer, value, ctx) {
57
- if (value === null) {
58
- writer.write("null");
59
- return;
60
- }
61
- if (value === void 0) {
62
- writer.write("undefined");
63
- return;
64
- }
65
- if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
66
- writer.write(JSON.stringify(value));
67
- return;
68
- }
69
- if (value instanceof Temporal.Instant) {
70
- ctx?.markTemporalUsed();
71
- writer.write(`Temporal.Instant.from(${JSON.stringify(value.toString())})`);
72
- return;
73
- }
74
- if (value instanceof Temporal.PlainDate) {
75
- ctx?.markTemporalUsed();
76
- writer.write(`Temporal.PlainDate.from(${JSON.stringify(value.toString())})`);
77
- return;
78
- }
79
- if (Array.isArray(value)) {
80
- writeArray(writer, value.map((entry) => renderPlainValue(entry, ctx)));
81
- return;
82
- }
83
- writeObject(writer, Object.entries(value).map(([name, entryValue]) => ({
84
- name,
85
- value: entryValue === void 0 ? void 0 : renderPlainValue(entryValue, ctx)
86
- })));
87
- }
88
- function renderDeprecation(value) {
89
- return value === void 0 ? void 0 : renderPlainValue(value);
90
- }
91
- function renderStringConstraint(constraint) {
92
- switch (constraint.kind) {
93
- case "enum": return `o.StringConstraint.enum(${renderPlainValue(constraint.value)})`;
94
- case "regex": return `o.StringConstraint.regex(${renderPlainValue(constraint.value)})`;
95
- }
96
- }
97
- function renderType(type) {
98
- switch (type.kind) {
99
- case "string": return `o.string(${renderObject([{
100
- name: "constraint",
101
- value: type.value.constraint ? renderStringConstraint(type.value.constraint) : void 0
102
- }, {
103
- name: "suggestions",
104
- value: type.value.suggestions ? renderPlainValue(type.value.suggestions) : void 0
105
- }])})`;
106
- case "boolean": return `o.boolean(${renderPlainValue(type.value)})`;
107
- case "integer": return `o.integer(${renderPlainValue(type.value)})`;
108
- case "float": return `o.float(${renderPlainValue(type.value)})`;
109
- case "double": return `o.double(${renderPlainValue(type.value)})`;
110
- case "date": return `o.date(${renderPlainValue(type.value)})`;
111
- case "timestamp": return `o.timestamp(${renderPlainValue(type.value)})`;
112
- case "geopoint": return `o.geopoint(${renderPlainValue(type.value)})`;
113
- case "attachment": return `o.attachment(${renderPlainValue(type.value)})`;
114
- case "objectReference": return `o.objectReference(${renderPlainValue(type.value)})`;
115
- case "unknown": return `o.unknown(${renderPlainValue(type.value)})`;
116
- case "list": return `o.list(${renderObject([{
117
- name: "elementType",
118
- value: renderType(type.value.elementType)
119
- }])})`;
120
- case "map": return `o.map(${renderObject([{
121
- name: "keyType",
122
- value: renderType(type.value.keyType)
123
- }, {
124
- name: "valueType",
125
- value: renderType(type.value.valueType)
126
- }])})`;
127
- case "struct": return `o.struct(${renderObject([{
128
- name: "fields",
129
- value: withWriter((writer) => writeArray(writer, type.value.fields.map((field) => renderField(field))))
130
- }])})`;
131
- case "union": return `o.union(${renderObject([{
132
- name: "variants",
133
- value: withWriter((writer) => writeArray(writer, type.value.variants.map((variant) => renderVariant(variant))))
134
- }])})`;
135
- case "optional": return `o.optional(${renderObject([{
136
- name: "type",
137
- value: renderType(type.value.type)
138
- }])})`;
139
- case "result": return `o.result(${renderObject([{
140
- name: "okType",
141
- value: renderType(type.value.okType)
142
- }, {
143
- name: "errType",
144
- value: renderType(type.value.errType)
145
- }])})`;
146
- case "ref": return `o.ref(${renderPlainValue(type.value)})`;
147
- }
148
- }
149
- function renderField(field) {
150
- return renderObject([
151
- {
152
- name: "name",
153
- value: renderPlainValue(field.name)
154
- },
155
- {
156
- name: "displayName",
157
- value: renderPlainValue(field.displayName)
158
- },
159
- {
160
- name: "type",
161
- value: renderType(field.type)
162
- },
163
- {
164
- name: "description",
165
- value: field.description ? renderPlainValue(field.description) : void 0
166
- },
167
- {
168
- name: "deprecated",
169
- value: renderDeprecation(field.deprecated)
170
- }
171
- ]);
172
- }
173
- function renderVariant(variant) {
174
- return renderObject([{
175
- name: "name",
176
- value: renderPlainValue(variant.name)
177
- }, {
178
- name: "type",
179
- value: renderType(variant.type)
180
- }]);
181
- }
182
- function renderNamedType(type) {
183
- return renderObject([
184
- {
185
- name: "name",
186
- value: renderPlainValue(type.name)
187
- },
188
- {
189
- name: "description",
190
- value: type.description ? renderPlainValue(type.description) : void 0
191
- },
192
- {
193
- name: "deprecated",
194
- value: renderDeprecation(type.deprecated)
195
- },
196
- {
197
- name: "type",
198
- value: renderType(type.type)
199
- }
200
- ]);
201
- }
202
- function renderProperty(property) {
203
- return renderObject([
204
- {
205
- name: "name",
206
- value: renderPlainValue(property.name)
207
- },
208
- {
209
- name: "displayName",
210
- value: renderPlainValue(property.displayName)
211
- },
212
- {
213
- name: "type",
214
- value: renderType(property.type)
215
- },
216
- {
217
- name: "description",
218
- value: property.description ? renderPlainValue(property.description) : void 0
219
- },
220
- {
221
- name: "deprecated",
222
- value: renderDeprecation(property.deprecated)
223
- }
224
- ]);
225
- }
226
- function renderObjectType(objectType) {
227
- return renderObject([
228
- {
229
- name: "name",
230
- value: renderPlainValue(objectType.name)
231
- },
232
- {
233
- name: "displayName",
234
- value: renderPlainValue(objectType.displayName)
235
- },
236
- {
237
- name: "pluralDisplayName",
238
- value: renderPlainValue(objectType.pluralDisplayName)
239
- },
240
- {
241
- name: "primaryKey",
242
- value: renderPlainValue(objectType.primaryKey)
243
- },
244
- {
245
- name: "title",
246
- value: objectType.title ? renderPlainValue(objectType.title) : void 0
247
- },
248
- {
249
- name: "icon",
250
- value: objectType.icon ? renderPlainValue(objectType.icon) : void 0
251
- },
252
- {
253
- name: "color",
254
- value: objectType.color ? renderPlainValue(objectType.color) : void 0
255
- },
256
- {
257
- name: "properties",
258
- value: withWriter((writer) => writeArray(writer, objectType.properties.map((property) => renderProperty(property))))
259
- },
260
- {
261
- name: "description",
262
- value: objectType.description ? renderPlainValue(objectType.description) : void 0
263
- },
264
- {
265
- name: "deprecated",
266
- value: renderDeprecation(objectType.deprecated)
267
- }
268
- ]);
269
- }
270
- function renderLinkTypeSide(side) {
271
- return renderObject([
272
- {
273
- name: "objectType",
274
- value: renderPlainValue(side.objectType)
275
- },
276
- {
277
- name: "name",
278
- value: renderPlainValue(side.name)
279
- },
280
- {
281
- name: "displayName",
282
- value: renderPlainValue(side.displayName)
283
- }
284
- ]);
285
- }
286
- function renderLinkType(linkType) {
287
- return renderObject([
288
- {
289
- name: "id",
290
- value: renderPlainValue(linkType.id)
291
- },
292
- {
293
- name: "source",
294
- value: renderLinkTypeSide(linkType.source)
295
- },
296
- {
297
- name: "target",
298
- value: renderLinkTypeSide(linkType.target)
299
- },
300
- {
301
- name: "foreignKey",
302
- value: renderPlainValue(linkType.foreignKey)
303
- },
304
- {
305
- name: "cardinality",
306
- value: renderPlainValue(linkType.cardinality)
307
- }
308
- ]);
309
- }
310
- function renderExpression(expression, ctx) {
311
- return `o.Expression.${expression.kind}(${renderPlainValue(expression.value, ctx)})`;
312
- }
313
- function renderActionPropertyAssignment(assignment, ctx) {
314
- return renderObject([{
315
- name: "property",
316
- value: renderPlainValue(assignment.property)
317
- }, {
318
- name: "value",
319
- value: renderExpression(assignment.value, ctx)
320
- }]);
321
- }
322
- function renderActionType(actionType, ctx) {
323
- return renderObject([
324
- {
325
- name: "meta",
326
- value: actionType.meta ? renderPlainValue(actionType.meta) : void 0
327
- },
328
- {
329
- name: "name",
330
- value: renderPlainValue(actionType.name)
331
- },
332
- {
333
- name: "displayName",
334
- value: renderPlainValue(actionType.displayName)
335
- },
336
- {
337
- name: "icon",
338
- value: actionType.icon ? renderPlainValue(actionType.icon) : void 0
339
- },
340
- {
341
- name: "color",
342
- value: actionType.color ? renderPlainValue(actionType.color) : void 0
343
- },
344
- {
345
- name: "parameters",
346
- value: withWriter((writer) => writeArray(writer, actionType.parameters.map((parameter) => renderObject([
347
- {
348
- name: "name",
349
- value: renderPlainValue(parameter.name)
350
- },
351
- {
352
- name: "displayName",
353
- value: renderPlainValue(parameter.displayName)
354
- },
355
- {
356
- name: "type",
357
- value: renderType(parameter.type)
358
- },
359
- {
360
- name: "description",
361
- value: parameter.description ? renderPlainValue(parameter.description) : void 0
362
- },
363
- {
364
- name: "deprecated",
365
- value: renderDeprecation(parameter.deprecated)
366
- },
367
- {
368
- name: "defaultValue",
369
- value: parameter.defaultValue ? renderExpression(parameter.defaultValue, ctx) : void 0
370
- }
371
- ]))))
372
- },
373
- {
374
- name: "logic",
375
- value: withWriter((writer) => writeArray(writer, actionType.logic.map((step) => `o.ActionLogicStep.${step.kind}(${renderObject([
376
- {
377
- name: "objectType",
378
- value: "objectType" in step.value ? renderPlainValue(step.value.objectType) : void 0
379
- },
380
- {
381
- name: "object",
382
- value: "object" in step.value ? renderPlainValue(step.value.object) : void 0
383
- },
384
- {
385
- name: "values",
386
- value: "values" in step.value ? withWriter((arrayWriter) => writeArray(arrayWriter, ("values" in step.value ? step.value.values : []).map((value) => renderActionPropertyAssignment(value, ctx)))) : void 0
387
- }
388
- ])})`)))
389
- },
390
- {
391
- name: "description",
392
- value: actionType.description ? renderPlainValue(actionType.description) : void 0
393
- },
394
- {
395
- name: "deprecated",
396
- value: renderDeprecation(actionType.deprecated)
397
- }
398
- ]);
399
- }
400
- function renderQueryFunctionType(queryFunctionType) {
401
- return renderObject([
402
- {
403
- name: "name",
404
- value: renderPlainValue(queryFunctionType.name)
405
- },
406
- {
407
- name: "displayName",
408
- value: renderPlainValue(queryFunctionType.displayName)
409
- },
410
- {
411
- name: "parameters",
412
- value: withWriter((writer) => writeArray(writer, queryFunctionType.parameters.map((parameter) => renderObject([
413
- {
414
- name: "name",
415
- value: renderPlainValue(parameter.name)
416
- },
417
- {
418
- name: "displayName",
419
- value: renderPlainValue(parameter.displayName)
420
- },
421
- {
422
- name: "type",
423
- value: renderType(parameter.type)
424
- },
425
- {
426
- name: "description",
427
- value: parameter.description ? renderPlainValue(parameter.description) : void 0
428
- },
429
- {
430
- name: "deprecated",
431
- value: renderDeprecation(parameter.deprecated)
432
- }
433
- ]))))
434
- },
435
- {
436
- name: "returnType",
437
- value: renderType(queryFunctionType.returnType)
438
- },
439
- {
440
- name: "description",
441
- value: queryFunctionType.description ? renderPlainValue(queryFunctionType.description) : void 0
442
- },
443
- {
444
- name: "deprecated",
445
- value: renderDeprecation(queryFunctionType.deprecated)
446
- }
447
- ]);
448
- }
449
- function generateOntology(ir, opts = {}) {
450
- const ontologyImportPath = opts.ontologyImportPath ?? "@party-stack/ontology";
451
- const sourceFile = new Project({ useInMemoryFileSystem: true }).createSourceFile("ontology.ts", "");
452
- let usesTemporalTypes = false;
453
- const ctx = { markTemporalUsed() {
454
- usesTemporalTypes = true;
455
- } };
456
- const renderedActionTypes = ir.actionTypes.map((actionType) => renderActionType(actionType, ctx));
457
- sourceFile.addImportDeclaration({
458
- moduleSpecifier: ontologyImportPath,
459
- namedImports: ["defineOntology", "o"]
460
- });
461
- if (usesTemporalTypes) sourceFile.addImportDeclaration({
462
- moduleSpecifier: "temporal-polyfill",
463
- namedImports: ["Temporal"]
464
- });
465
- sourceFile.addStatements((writer) => {
466
- writer.write("export default defineOntology(");
467
- writeObject(writer, [
468
- {
469
- name: "types",
470
- value: withWriter((arrayWriter) => writeArray(arrayWriter, ir.types.map((type) => renderNamedType(type))))
471
- },
472
- {
473
- name: "objectTypes",
474
- value: withWriter((arrayWriter) => writeArray(arrayWriter, ir.objectTypes.map((objectType) => renderObjectType(objectType))))
475
- },
476
- {
477
- name: "linkTypes",
478
- value: withWriter((arrayWriter) => writeArray(arrayWriter, ir.linkTypes.map((linkType) => renderLinkType(linkType))))
479
- },
480
- {
481
- name: "actionTypes",
482
- value: withWriter((arrayWriter) => writeArray(arrayWriter, renderedActionTypes))
483
- },
484
- {
485
- name: "queryFunctionTypes",
486
- value: withWriter((arrayWriter) => writeArray(arrayWriter, ir.queryFunctionTypes.map((queryFunctionType) => renderQueryFunctionType(queryFunctionType))))
487
- },
488
- ...ir.contextType ? [{
489
- name: "contextType",
490
- value: renderType(ir.contextType)
491
- }] : []
492
- ]);
493
- writer.write(");");
494
- writer.newLine();
495
- });
496
- return sourceFile.getFullText().trim();
497
- }
498
- //#endregion
499
- export { generateOntology };
500
-
501
- //# sourceMappingURL=ontology.js.map