@undefineds.co/drizzle-solid 0.2.6

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 (900) hide show
  1. package/CHANGELOG-DRAFT.md +444 -0
  2. package/LICENSE +21 -0
  3. package/README.md +563 -0
  4. package/dist/core/aggregates.d.ts +19 -0
  5. package/dist/core/aggregates.d.ts.map +1 -0
  6. package/dist/core/aggregates.js +51 -0
  7. package/dist/core/aggregates.js.map +1 -0
  8. package/dist/core/ast-to-sparql.d.ts +62 -0
  9. package/dist/core/ast-to-sparql.d.ts.map +1 -0
  10. package/dist/core/ast-to-sparql.js +107 -0
  11. package/dist/core/ast-to-sparql.js.map +1 -0
  12. package/dist/core/compile-time-types.d.ts +37 -0
  13. package/dist/core/compile-time-types.d.ts.map +1 -0
  14. package/dist/core/compile-time-types.js +71 -0
  15. package/dist/core/compile-time-types.js.map +1 -0
  16. package/dist/core/comunica-patch.d.ts +7 -0
  17. package/dist/core/comunica-patch.d.ts.map +1 -0
  18. package/dist/core/comunica-patch.js +76 -0
  19. package/dist/core/comunica-patch.js.map +1 -0
  20. package/dist/core/conflict-resolution.d.ts +110 -0
  21. package/dist/core/conflict-resolution.d.ts.map +1 -0
  22. package/dist/core/conflict-resolution.js +251 -0
  23. package/dist/core/conflict-resolution.js.map +1 -0
  24. package/dist/core/discovery/composite-discovery.d.ts +18 -0
  25. package/dist/core/discovery/composite-discovery.d.ts.map +1 -0
  26. package/dist/core/discovery/composite-discovery.js +118 -0
  27. package/dist/core/discovery/composite-discovery.js.map +1 -0
  28. package/dist/core/discovery/index.d.ts +7 -0
  29. package/dist/core/discovery/index.d.ts.map +1 -0
  30. package/dist/core/discovery/index.js +23 -0
  31. package/dist/core/discovery/index.js.map +1 -0
  32. package/dist/core/discovery/interop-discovery.d.ts +36 -0
  33. package/dist/core/discovery/interop-discovery.d.ts.map +1 -0
  34. package/dist/core/discovery/interop-discovery.js +646 -0
  35. package/dist/core/discovery/interop-discovery.js.map +1 -0
  36. package/dist/core/discovery/interop-tables.d.ts +37 -0
  37. package/dist/core/discovery/interop-tables.d.ts.map +1 -0
  38. package/dist/core/discovery/interop-tables.js +68 -0
  39. package/dist/core/discovery/interop-tables.js.map +1 -0
  40. package/dist/core/discovery/interop-types.d.ts +36 -0
  41. package/dist/core/discovery/interop-types.d.ts.map +1 -0
  42. package/dist/core/discovery/interop-types.js +42 -0
  43. package/dist/core/discovery/interop-types.js.map +1 -0
  44. package/dist/core/discovery/provider-cache.d.ts +99 -0
  45. package/dist/core/discovery/provider-cache.d.ts.map +1 -0
  46. package/dist/core/discovery/provider-cache.js +296 -0
  47. package/dist/core/discovery/provider-cache.js.map +1 -0
  48. package/dist/core/discovery/typeindex-discovery.d.ts +30 -0
  49. package/dist/core/discovery/typeindex-discovery.d.ts.map +1 -0
  50. package/dist/core/discovery/typeindex-discovery.js +136 -0
  51. package/dist/core/discovery/typeindex-discovery.js.map +1 -0
  52. package/dist/core/discovery/types.d.ts +128 -0
  53. package/dist/core/discovery/types.d.ts.map +1 -0
  54. package/dist/core/discovery/types.js +3 -0
  55. package/dist/core/discovery/types.js.map +1 -0
  56. package/dist/core/execution/index.d.ts +14 -0
  57. package/dist/core/execution/index.d.ts.map +1 -0
  58. package/dist/core/execution/index.js +20 -0
  59. package/dist/core/execution/index.js.map +1 -0
  60. package/dist/core/execution/ldp-executor.d.ts +66 -0
  61. package/dist/core/execution/ldp-executor.d.ts.map +1 -0
  62. package/dist/core/execution/ldp-executor.js +584 -0
  63. package/dist/core/execution/ldp-executor.js.map +1 -0
  64. package/dist/core/execution/ldp-strategy.d.ts +53 -0
  65. package/dist/core/execution/ldp-strategy.d.ts.map +1 -0
  66. package/dist/core/execution/ldp-strategy.js +104 -0
  67. package/dist/core/execution/ldp-strategy.js.map +1 -0
  68. package/dist/core/execution/pod-executor-types.d.ts +9 -0
  69. package/dist/core/execution/pod-executor-types.d.ts.map +1 -0
  70. package/dist/core/execution/pod-executor-types.js +3 -0
  71. package/dist/core/execution/pod-executor-types.js.map +1 -0
  72. package/dist/core/execution/pod-executor.d.ts +59 -0
  73. package/dist/core/execution/pod-executor.d.ts.map +1 -0
  74. package/dist/core/execution/pod-executor.js +221 -0
  75. package/dist/core/execution/pod-executor.js.map +1 -0
  76. package/dist/core/execution/sparql-strategy.d.ts +80 -0
  77. package/dist/core/execution/sparql-strategy.d.ts.map +1 -0
  78. package/dist/core/execution/sparql-strategy.js +306 -0
  79. package/dist/core/execution/sparql-strategy.js.map +1 -0
  80. package/dist/core/execution/strategy-factory.d.ts +54 -0
  81. package/dist/core/execution/strategy-factory.d.ts.map +1 -0
  82. package/dist/core/execution/strategy-factory.js +78 -0
  83. package/dist/core/execution/strategy-factory.js.map +1 -0
  84. package/dist/core/execution/types.d.ts +80 -0
  85. package/dist/core/execution/types.d.ts.map +1 -0
  86. package/dist/core/execution/types.js +8 -0
  87. package/dist/core/execution/types.js.map +1 -0
  88. package/dist/core/expressions.d.ts +35 -0
  89. package/dist/core/expressions.d.ts.map +1 -0
  90. package/dist/core/expressions.js +53 -0
  91. package/dist/core/expressions.js.map +1 -0
  92. package/dist/core/federated/executor.d.ts +95 -0
  93. package/dist/core/federated/executor.d.ts.map +1 -0
  94. package/dist/core/federated/executor.js +425 -0
  95. package/dist/core/federated/executor.js.map +1 -0
  96. package/dist/core/federated/index.d.ts +3 -0
  97. package/dist/core/federated/index.d.ts.map +1 -0
  98. package/dist/core/federated/index.js +19 -0
  99. package/dist/core/federated/index.js.map +1 -0
  100. package/dist/core/federated/types.d.ts +69 -0
  101. package/dist/core/federated/types.d.ts.map +1 -0
  102. package/dist/core/federated/types.js +8 -0
  103. package/dist/core/federated/types.js.map +1 -0
  104. package/dist/core/notifications/channels/base-channel.d.ts +29 -0
  105. package/dist/core/notifications/channels/base-channel.d.ts.map +1 -0
  106. package/dist/core/notifications/channels/base-channel.js +63 -0
  107. package/dist/core/notifications/channels/base-channel.js.map +1 -0
  108. package/dist/core/notifications/channels/index.d.ts +4 -0
  109. package/dist/core/notifications/channels/index.d.ts.map +1 -0
  110. package/dist/core/notifications/channels/index.js +11 -0
  111. package/dist/core/notifications/channels/index.js.map +1 -0
  112. package/dist/core/notifications/channels/sse-channel.d.ts +50 -0
  113. package/dist/core/notifications/channels/sse-channel.d.ts.map +1 -0
  114. package/dist/core/notifications/channels/sse-channel.js +210 -0
  115. package/dist/core/notifications/channels/sse-channel.js.map +1 -0
  116. package/dist/core/notifications/channels/websocket-channel.d.ts +16 -0
  117. package/dist/core/notifications/channels/websocket-channel.d.ts.map +1 -0
  118. package/dist/core/notifications/channels/websocket-channel.js +87 -0
  119. package/dist/core/notifications/channels/websocket-channel.js.map +1 -0
  120. package/dist/core/notifications/index.d.ts +3 -0
  121. package/dist/core/notifications/index.d.ts.map +1 -0
  122. package/dist/core/notifications/index.js +6 -0
  123. package/dist/core/notifications/index.js.map +1 -0
  124. package/dist/core/notifications/notifications-client.d.ts +87 -0
  125. package/dist/core/notifications/notifications-client.d.ts.map +1 -0
  126. package/dist/core/notifications/notifications-client.js +460 -0
  127. package/dist/core/notifications/notifications-client.js.map +1 -0
  128. package/dist/core/notifications/types.d.ts +228 -0
  129. package/dist/core/notifications/types.d.ts.map +1 -0
  130. package/dist/core/notifications/types.js +7 -0
  131. package/dist/core/notifications/types.js.map +1 -0
  132. package/dist/core/pod-database.d.ts +383 -0
  133. package/dist/core/pod-database.d.ts.map +1 -0
  134. package/dist/core/pod-database.js +1212 -0
  135. package/dist/core/pod-database.js.map +1 -0
  136. package/dist/core/pod-dialect.d.ts +294 -0
  137. package/dist/core/pod-dialect.d.ts.map +1 -0
  138. package/dist/core/pod-dialect.js +1300 -0
  139. package/dist/core/pod-dialect.js.map +1 -0
  140. package/dist/core/pod-discovery.d.ts +20 -0
  141. package/dist/core/pod-discovery.d.ts.map +1 -0
  142. package/dist/core/pod-discovery.js +115 -0
  143. package/dist/core/pod-discovery.js.map +1 -0
  144. package/dist/core/pod-session.d.ts +44 -0
  145. package/dist/core/pod-session.d.ts.map +1 -0
  146. package/dist/core/pod-session.js +116 -0
  147. package/dist/core/pod-session.js.map +1 -0
  148. package/dist/core/pod-table.d.ts +710 -0
  149. package/dist/core/pod-table.d.ts.map +1 -0
  150. package/dist/core/pod-table.js +1300 -0
  151. package/dist/core/pod-table.js.map +1 -0
  152. package/dist/core/profile-manager.d.ts +90 -0
  153. package/dist/core/profile-manager.d.ts.map +1 -0
  154. package/dist/core/profile-manager.js +168 -0
  155. package/dist/core/profile-manager.js.map +1 -0
  156. package/dist/core/publish-manager.d.ts +90 -0
  157. package/dist/core/publish-manager.d.ts.map +1 -0
  158. package/dist/core/publish-manager.js +147 -0
  159. package/dist/core/publish-manager.js.map +1 -0
  160. package/dist/core/query-builders/delete-query-builder.d.ts +36 -0
  161. package/dist/core/query-builders/delete-query-builder.d.ts.map +1 -0
  162. package/dist/core/query-builders/delete-query-builder.js +144 -0
  163. package/dist/core/query-builders/delete-query-builder.js.map +1 -0
  164. package/dist/core/query-builders/helpers.d.ts +4 -0
  165. package/dist/core/query-builders/helpers.d.ts.map +1 -0
  166. package/dist/core/query-builders/helpers.js +30 -0
  167. package/dist/core/query-builders/helpers.js.map +1 -0
  168. package/dist/core/query-builders/index.d.ts +6 -0
  169. package/dist/core/query-builders/index.d.ts.map +1 -0
  170. package/dist/core/query-builders/index.js +12 -0
  171. package/dist/core/query-builders/index.js.map +1 -0
  172. package/dist/core/query-builders/insert-query-builder.d.ts +27 -0
  173. package/dist/core/query-builders/insert-query-builder.d.ts.map +1 -0
  174. package/dist/core/query-builders/insert-query-builder.js +128 -0
  175. package/dist/core/query-builders/insert-query-builder.js.map +1 -0
  176. package/dist/core/query-builders/select-query-builder.d.ts +106 -0
  177. package/dist/core/query-builders/select-query-builder.d.ts.map +1 -0
  178. package/dist/core/query-builders/select-query-builder.js +1264 -0
  179. package/dist/core/query-builders/select-query-builder.js.map +1 -0
  180. package/dist/core/query-builders/types.d.ts +37 -0
  181. package/dist/core/query-builders/types.d.ts.map +1 -0
  182. package/dist/core/query-builders/types.js +3 -0
  183. package/dist/core/query-builders/types.js.map +1 -0
  184. package/dist/core/query-builders/update-query-builder.d.ts +38 -0
  185. package/dist/core/query-builders/update-query-builder.d.ts.map +1 -0
  186. package/dist/core/query-builders/update-query-builder.js +168 -0
  187. package/dist/core/query-builders/update-query-builder.js.map +1 -0
  188. package/dist/core/query-conditions.d.ts +52 -0
  189. package/dist/core/query-conditions.d.ts.map +1 -0
  190. package/dist/core/query-conditions.js +134 -0
  191. package/dist/core/query-conditions.js.map +1 -0
  192. package/dist/core/rdf-constants.d.ts +16 -0
  193. package/dist/core/rdf-constants.d.ts.map +1 -0
  194. package/dist/core/rdf-constants.js +38 -0
  195. package/dist/core/rdf-constants.js.map +1 -0
  196. package/dist/core/rdf-schema-parser.d.ts +34 -0
  197. package/dist/core/rdf-schema-parser.d.ts.map +1 -0
  198. package/dist/core/rdf-schema-parser.js +143 -0
  199. package/dist/core/rdf-schema-parser.js.map +1 -0
  200. package/dist/core/resource-resolver/base-resolver.d.ts +29 -0
  201. package/dist/core/resource-resolver/base-resolver.d.ts.map +1 -0
  202. package/dist/core/resource-resolver/base-resolver.js +82 -0
  203. package/dist/core/resource-resolver/base-resolver.js.map +1 -0
  204. package/dist/core/resource-resolver/document-resolver.d.ts +20 -0
  205. package/dist/core/resource-resolver/document-resolver.d.ts.map +1 -0
  206. package/dist/core/resource-resolver/document-resolver.js +105 -0
  207. package/dist/core/resource-resolver/document-resolver.js.map +1 -0
  208. package/dist/core/resource-resolver/factory.d.ts +27 -0
  209. package/dist/core/resource-resolver/factory.d.ts.map +1 -0
  210. package/dist/core/resource-resolver/factory.js +58 -0
  211. package/dist/core/resource-resolver/factory.js.map +1 -0
  212. package/dist/core/resource-resolver/fragment-resolver.d.ts +20 -0
  213. package/dist/core/resource-resolver/fragment-resolver.d.ts.map +1 -0
  214. package/dist/core/resource-resolver/fragment-resolver.js +60 -0
  215. package/dist/core/resource-resolver/fragment-resolver.js.map +1 -0
  216. package/dist/core/resource-resolver/index.d.ts +11 -0
  217. package/dist/core/resource-resolver/index.d.ts.map +1 -0
  218. package/dist/core/resource-resolver/index.js +18 -0
  219. package/dist/core/resource-resolver/index.js.map +1 -0
  220. package/dist/core/resource-resolver/types.d.ts +57 -0
  221. package/dist/core/resource-resolver/types.d.ts.map +1 -0
  222. package/dist/core/resource-resolver/types.js +9 -0
  223. package/dist/core/resource-resolver/types.js.map +1 -0
  224. package/dist/core/runtime/pod-runtime.d.ts +34 -0
  225. package/dist/core/runtime/pod-runtime.d.ts.map +1 -0
  226. package/dist/core/runtime/pod-runtime.js +125 -0
  227. package/dist/core/runtime/pod-runtime.js.map +1 -0
  228. package/dist/core/schema/columns.d.ts +74 -0
  229. package/dist/core/schema/columns.d.ts.map +1 -0
  230. package/dist/core/schema/columns.js +295 -0
  231. package/dist/core/schema/columns.js.map +1 -0
  232. package/dist/core/schema/defs.d.ts +92 -0
  233. package/dist/core/schema/defs.d.ts.map +1 -0
  234. package/dist/core/schema/defs.js +43 -0
  235. package/dist/core/schema/defs.js.map +1 -0
  236. package/dist/core/schema/factories.d.ts +29 -0
  237. package/dist/core/schema/factories.d.ts.map +1 -0
  238. package/dist/core/schema/factories.js +117 -0
  239. package/dist/core/schema/factories.js.map +1 -0
  240. package/dist/core/schema/index.d.ts +9 -0
  241. package/dist/core/schema/index.d.ts.map +1 -0
  242. package/dist/core/schema/index.js +25 -0
  243. package/dist/core/schema/index.js.map +1 -0
  244. package/dist/core/schema/pod-table.d.ts +93 -0
  245. package/dist/core/schema/pod-table.d.ts.map +1 -0
  246. package/dist/core/schema/pod-table.js +294 -0
  247. package/dist/core/schema/pod-table.js.map +1 -0
  248. package/dist/core/schema/relations.d.ts +26 -0
  249. package/dist/core/schema/relations.d.ts.map +1 -0
  250. package/dist/core/schema/relations.js +36 -0
  251. package/dist/core/schema/relations.js.map +1 -0
  252. package/dist/core/schema/solid-schema.d.ts +19 -0
  253. package/dist/core/schema/solid-schema.d.ts.map +1 -0
  254. package/dist/core/schema/solid-schema.js +93 -0
  255. package/dist/core/schema/solid-schema.js.map +1 -0
  256. package/dist/core/schema/types.d.ts +45 -0
  257. package/dist/core/schema/types.d.ts.map +1 -0
  258. package/dist/core/schema/types.js +3 -0
  259. package/dist/core/schema/types.js.map +1 -0
  260. package/dist/core/schema/utils.d.ts +15 -0
  261. package/dist/core/schema/utils.d.ts.map +1 -0
  262. package/dist/core/schema/utils.js +44 -0
  263. package/dist/core/schema/utils.js.map +1 -0
  264. package/dist/core/select-plan.d.ts +45 -0
  265. package/dist/core/select-plan.d.ts.map +1 -0
  266. package/dist/core/select-plan.js +3 -0
  267. package/dist/core/select-plan.js.map +1 -0
  268. package/dist/core/services/pod-services.d.ts +41 -0
  269. package/dist/core/services/pod-services.d.ts.map +1 -0
  270. package/dist/core/services/pod-services.js +79 -0
  271. package/dist/core/services/pod-services.js.map +1 -0
  272. package/dist/core/shape/generator.d.ts +12 -0
  273. package/dist/core/shape/generator.d.ts.map +1 -0
  274. package/dist/core/shape/generator.js +109 -0
  275. package/dist/core/shape/generator.js.map +1 -0
  276. package/dist/core/shape/index.d.ts +4 -0
  277. package/dist/core/shape/index.d.ts.map +1 -0
  278. package/dist/core/shape/index.js +20 -0
  279. package/dist/core/shape/index.js.map +1 -0
  280. package/dist/core/shape/manager.d.ts +45 -0
  281. package/dist/core/shape/manager.d.ts.map +1 -0
  282. package/dist/core/shape/manager.js +393 -0
  283. package/dist/core/shape/manager.js.map +1 -0
  284. package/dist/core/shape/shacl-parser.d.ts +19 -0
  285. package/dist/core/shape/shacl-parser.d.ts.map +1 -0
  286. package/dist/core/shape/shacl-parser.js +215 -0
  287. package/dist/core/shape/shacl-parser.js.map +1 -0
  288. package/dist/core/shape/shacl.d.ts +11 -0
  289. package/dist/core/shape/shacl.d.ts.map +1 -0
  290. package/dist/core/shape/shacl.js +130 -0
  291. package/dist/core/shape/shacl.js.map +1 -0
  292. package/dist/core/shape/types.d.ts +149 -0
  293. package/dist/core/shape/types.d.ts.map +1 -0
  294. package/dist/core/shape/types.js +45 -0
  295. package/dist/core/shape/types.js.map +1 -0
  296. package/dist/core/shape/validator.d.ts +11 -0
  297. package/dist/core/shape/validator.d.ts.map +1 -0
  298. package/dist/core/shape/validator.js +232 -0
  299. package/dist/core/shape/validator.js.map +1 -0
  300. package/dist/core/solid-n3-client.d.ts +86 -0
  301. package/dist/core/solid-n3-client.d.ts.map +1 -0
  302. package/dist/core/solid-n3-client.js +279 -0
  303. package/dist/core/solid-n3-client.js.map +1 -0
  304. package/dist/core/sparql/builder/expression-builder.d.ts +42 -0
  305. package/dist/core/sparql/builder/expression-builder.d.ts.map +1 -0
  306. package/dist/core/sparql/builder/expression-builder.js +259 -0
  307. package/dist/core/sparql/builder/expression-builder.js.map +1 -0
  308. package/dist/core/sparql/builder/select-builder.d.ts +35 -0
  309. package/dist/core/sparql/builder/select-builder.d.ts.map +1 -0
  310. package/dist/core/sparql/builder/select-builder.js +446 -0
  311. package/dist/core/sparql/builder/select-builder.js.map +1 -0
  312. package/dist/core/sparql/builder/update-builder.d.ts +33 -0
  313. package/dist/core/sparql/builder/update-builder.d.ts.map +1 -0
  314. package/dist/core/sparql/builder/update-builder.js +523 -0
  315. package/dist/core/sparql/builder/update-builder.js.map +1 -0
  316. package/dist/core/sparql/helpers.d.ts +19 -0
  317. package/dist/core/sparql/helpers.d.ts.map +1 -0
  318. package/dist/core/sparql/helpers.js +172 -0
  319. package/dist/core/sparql/helpers.js.map +1 -0
  320. package/dist/core/sparql/types.d.ts +10 -0
  321. package/dist/core/sparql/types.d.ts.map +1 -0
  322. package/dist/core/sparql/types.js +3 -0
  323. package/dist/core/sparql/types.js.map +1 -0
  324. package/dist/core/sparql-executor.d.ts +34 -0
  325. package/dist/core/sparql-executor.d.ts.map +1 -0
  326. package/dist/core/sparql-executor.js +712 -0
  327. package/dist/core/sparql-executor.js.map +1 -0
  328. package/dist/core/subject/index.d.ts +29 -0
  329. package/dist/core/subject/index.d.ts.map +1 -0
  330. package/dist/core/subject/index.js +51 -0
  331. package/dist/core/subject/index.js.map +1 -0
  332. package/dist/core/subject/resolver.d.ts +92 -0
  333. package/dist/core/subject/resolver.d.ts.map +1 -0
  334. package/dist/core/subject/resolver.js +359 -0
  335. package/dist/core/subject/resolver.js.map +1 -0
  336. package/dist/core/subject/types.d.ts +90 -0
  337. package/dist/core/subject/types.d.ts.map +1 -0
  338. package/dist/core/subject/types.js +8 -0
  339. package/dist/core/subject/types.js.map +1 -0
  340. package/dist/core/triple/builder.d.ts +86 -0
  341. package/dist/core/triple/builder.d.ts.map +1 -0
  342. package/dist/core/triple/builder.js +304 -0
  343. package/dist/core/triple/builder.js.map +1 -0
  344. package/dist/core/triple/handlers/array.d.ts +23 -0
  345. package/dist/core/triple/handlers/array.d.ts.map +1 -0
  346. package/dist/core/triple/handlers/array.js +119 -0
  347. package/dist/core/triple/handlers/array.js.map +1 -0
  348. package/dist/core/triple/handlers/default.d.ts +20 -0
  349. package/dist/core/triple/handlers/default.d.ts.map +1 -0
  350. package/dist/core/triple/handlers/default.js +96 -0
  351. package/dist/core/triple/handlers/default.js.map +1 -0
  352. package/dist/core/triple/handlers/index.d.ts +35 -0
  353. package/dist/core/triple/handlers/index.d.ts.map +1 -0
  354. package/dist/core/triple/handlers/index.js +67 -0
  355. package/dist/core/triple/handlers/index.js.map +1 -0
  356. package/dist/core/triple/handlers/inline.d.ts +35 -0
  357. package/dist/core/triple/handlers/inline.d.ts.map +1 -0
  358. package/dist/core/triple/handlers/inline.js +190 -0
  359. package/dist/core/triple/handlers/inline.js.map +1 -0
  360. package/dist/core/triple/handlers/inverse.d.ts +22 -0
  361. package/dist/core/triple/handlers/inverse.d.ts.map +1 -0
  362. package/dist/core/triple/handlers/inverse.js +68 -0
  363. package/dist/core/triple/handlers/inverse.js.map +1 -0
  364. package/dist/core/triple/handlers/uri.d.ts +28 -0
  365. package/dist/core/triple/handlers/uri.d.ts.map +1 -0
  366. package/dist/core/triple/handlers/uri.js +66 -0
  367. package/dist/core/triple/handlers/uri.js.map +1 -0
  368. package/dist/core/triple/index.d.ts +9 -0
  369. package/dist/core/triple/index.d.ts.map +1 -0
  370. package/dist/core/triple/index.js +21 -0
  371. package/dist/core/triple/index.js.map +1 -0
  372. package/dist/core/triple/types.d.ts +152 -0
  373. package/dist/core/triple/types.d.ts.map +1 -0
  374. package/dist/core/triple/types.js +8 -0
  375. package/dist/core/triple/types.js.map +1 -0
  376. package/dist/core/typeindex-manager.d.ts +124 -0
  377. package/dist/core/typeindex-manager.d.ts.map +1 -0
  378. package/dist/core/typeindex-manager.js +662 -0
  379. package/dist/core/typeindex-manager.js.map +1 -0
  380. package/dist/core/types.d.ts +57 -0
  381. package/dist/core/types.d.ts.map +1 -0
  382. package/dist/core/types.js +4 -0
  383. package/dist/core/types.js.map +1 -0
  384. package/dist/core/uri/index.d.ts +8 -0
  385. package/dist/core/uri/index.d.ts.map +1 -0
  386. package/dist/core/uri/index.js +12 -0
  387. package/dist/core/uri/index.js.map +1 -0
  388. package/dist/core/uri/resolver.d.ts +79 -0
  389. package/dist/core/uri/resolver.d.ts.map +1 -0
  390. package/dist/core/uri/resolver.js +458 -0
  391. package/dist/core/uri/resolver.js.map +1 -0
  392. package/dist/core/uri/types.d.ts +143 -0
  393. package/dist/core/uri/types.d.ts.map +1 -0
  394. package/dist/core/uri/types.js +8 -0
  395. package/dist/core/uri/types.js.map +1 -0
  396. package/dist/core/utils/origin-auth.d.ts +28 -0
  397. package/dist/core/utils/origin-auth.d.ts.map +1 -0
  398. package/dist/core/utils/origin-auth.js +46 -0
  399. package/dist/core/utils/origin-auth.js.map +1 -0
  400. package/dist/core/utils/pod-root.d.ts +15 -0
  401. package/dist/core/utils/pod-root.d.ts.map +1 -0
  402. package/dist/core/utils/pod-root.js +72 -0
  403. package/dist/core/utils/pod-root.js.map +1 -0
  404. package/dist/core/zod-integration.d.ts +95 -0
  405. package/dist/core/zod-integration.d.ts.map +1 -0
  406. package/dist/core/zod-integration.js +236 -0
  407. package/dist/core/zod-integration.js.map +1 -0
  408. package/dist/driver.d.ts +23 -0
  409. package/dist/driver.d.ts.map +1 -0
  410. package/dist/driver.js +34 -0
  411. package/dist/driver.js.map +1 -0
  412. package/dist/esm/core/aggregates.d.ts +19 -0
  413. package/dist/esm/core/aggregates.d.ts.map +1 -0
  414. package/dist/esm/core/aggregates.js +43 -0
  415. package/dist/esm/core/aggregates.js.map +1 -0
  416. package/dist/esm/core/ast-to-sparql.d.ts +62 -0
  417. package/dist/esm/core/ast-to-sparql.d.ts.map +1 -0
  418. package/dist/esm/core/ast-to-sparql.js +103 -0
  419. package/dist/esm/core/ast-to-sparql.js.map +1 -0
  420. package/dist/esm/core/compile-time-types.d.ts +37 -0
  421. package/dist/esm/core/compile-time-types.d.ts.map +1 -0
  422. package/dist/esm/core/compile-time-types.js +64 -0
  423. package/dist/esm/core/compile-time-types.js.map +1 -0
  424. package/dist/esm/core/comunica-patch.d.ts +7 -0
  425. package/dist/esm/core/comunica-patch.d.ts.map +1 -0
  426. package/dist/esm/core/comunica-patch.js +76 -0
  427. package/dist/esm/core/comunica-patch.js.map +1 -0
  428. package/dist/esm/core/conflict-resolution.d.ts +110 -0
  429. package/dist/esm/core/conflict-resolution.d.ts.map +1 -0
  430. package/dist/esm/core/conflict-resolution.js +245 -0
  431. package/dist/esm/core/conflict-resolution.js.map +1 -0
  432. package/dist/esm/core/discovery/composite-discovery.d.ts +18 -0
  433. package/dist/esm/core/discovery/composite-discovery.d.ts.map +1 -0
  434. package/dist/esm/core/discovery/composite-discovery.js +114 -0
  435. package/dist/esm/core/discovery/composite-discovery.js.map +1 -0
  436. package/dist/esm/core/discovery/index.d.ts +7 -0
  437. package/dist/esm/core/discovery/index.d.ts.map +1 -0
  438. package/dist/esm/core/discovery/index.js +7 -0
  439. package/dist/esm/core/discovery/index.js.map +1 -0
  440. package/dist/esm/core/discovery/interop-discovery.d.ts +36 -0
  441. package/dist/esm/core/discovery/interop-discovery.d.ts.map +1 -0
  442. package/dist/esm/core/discovery/interop-discovery.js +642 -0
  443. package/dist/esm/core/discovery/interop-discovery.js.map +1 -0
  444. package/dist/esm/core/discovery/interop-tables.d.ts +37 -0
  445. package/dist/esm/core/discovery/interop-tables.d.ts.map +1 -0
  446. package/dist/esm/core/discovery/interop-tables.js +65 -0
  447. package/dist/esm/core/discovery/interop-tables.js.map +1 -0
  448. package/dist/esm/core/discovery/interop-types.d.ts +36 -0
  449. package/dist/esm/core/discovery/interop-types.d.ts.map +1 -0
  450. package/dist/esm/core/discovery/interop-types.js +39 -0
  451. package/dist/esm/core/discovery/interop-types.js.map +1 -0
  452. package/dist/esm/core/discovery/provider-cache.d.ts +99 -0
  453. package/dist/esm/core/discovery/provider-cache.d.ts.map +1 -0
  454. package/dist/esm/core/discovery/provider-cache.js +292 -0
  455. package/dist/esm/core/discovery/provider-cache.js.map +1 -0
  456. package/dist/esm/core/discovery/typeindex-discovery.d.ts +30 -0
  457. package/dist/esm/core/discovery/typeindex-discovery.d.ts.map +1 -0
  458. package/dist/esm/core/discovery/typeindex-discovery.js +132 -0
  459. package/dist/esm/core/discovery/typeindex-discovery.js.map +1 -0
  460. package/dist/esm/core/discovery/types.d.ts +128 -0
  461. package/dist/esm/core/discovery/types.d.ts.map +1 -0
  462. package/dist/esm/core/discovery/types.js +2 -0
  463. package/dist/esm/core/discovery/types.js.map +1 -0
  464. package/dist/esm/core/execution/index.d.ts +14 -0
  465. package/dist/esm/core/execution/index.d.ts.map +1 -0
  466. package/dist/esm/core/execution/index.js +13 -0
  467. package/dist/esm/core/execution/index.js.map +1 -0
  468. package/dist/esm/core/execution/ldp-executor.d.ts +66 -0
  469. package/dist/esm/core/execution/ldp-executor.d.ts.map +1 -0
  470. package/dist/esm/core/execution/ldp-executor.js +580 -0
  471. package/dist/esm/core/execution/ldp-executor.js.map +1 -0
  472. package/dist/esm/core/execution/ldp-strategy.d.ts +53 -0
  473. package/dist/esm/core/execution/ldp-strategy.d.ts.map +1 -0
  474. package/dist/esm/core/execution/ldp-strategy.js +100 -0
  475. package/dist/esm/core/execution/ldp-strategy.js.map +1 -0
  476. package/dist/esm/core/execution/pod-executor-types.d.ts +9 -0
  477. package/dist/esm/core/execution/pod-executor-types.d.ts.map +1 -0
  478. package/dist/esm/core/execution/pod-executor-types.js +2 -0
  479. package/dist/esm/core/execution/pod-executor-types.js.map +1 -0
  480. package/dist/esm/core/execution/pod-executor.d.ts +59 -0
  481. package/dist/esm/core/execution/pod-executor.d.ts.map +1 -0
  482. package/dist/esm/core/execution/pod-executor.js +217 -0
  483. package/dist/esm/core/execution/pod-executor.js.map +1 -0
  484. package/dist/esm/core/execution/sparql-strategy.d.ts +80 -0
  485. package/dist/esm/core/execution/sparql-strategy.d.ts.map +1 -0
  486. package/dist/esm/core/execution/sparql-strategy.js +269 -0
  487. package/dist/esm/core/execution/sparql-strategy.js.map +1 -0
  488. package/dist/esm/core/execution/strategy-factory.d.ts +54 -0
  489. package/dist/esm/core/execution/strategy-factory.d.ts.map +1 -0
  490. package/dist/esm/core/execution/strategy-factory.js +74 -0
  491. package/dist/esm/core/execution/strategy-factory.js.map +1 -0
  492. package/dist/esm/core/execution/types.d.ts +80 -0
  493. package/dist/esm/core/execution/types.d.ts.map +1 -0
  494. package/dist/esm/core/execution/types.js +7 -0
  495. package/dist/esm/core/execution/types.js.map +1 -0
  496. package/dist/esm/core/expressions.d.ts +35 -0
  497. package/dist/esm/core/expressions.d.ts.map +1 -0
  498. package/dist/esm/core/expressions.js +45 -0
  499. package/dist/esm/core/expressions.js.map +1 -0
  500. package/dist/esm/core/federated/executor.d.ts +95 -0
  501. package/dist/esm/core/federated/executor.d.ts.map +1 -0
  502. package/dist/esm/core/federated/executor.js +421 -0
  503. package/dist/esm/core/federated/executor.js.map +1 -0
  504. package/dist/esm/core/federated/index.d.ts +3 -0
  505. package/dist/esm/core/federated/index.d.ts.map +1 -0
  506. package/dist/esm/core/federated/index.js +3 -0
  507. package/dist/esm/core/federated/index.js.map +1 -0
  508. package/dist/esm/core/federated/types.d.ts +69 -0
  509. package/dist/esm/core/federated/types.d.ts.map +1 -0
  510. package/dist/esm/core/federated/types.js +7 -0
  511. package/dist/esm/core/federated/types.js.map +1 -0
  512. package/dist/esm/core/notifications/channels/base-channel.d.ts +29 -0
  513. package/dist/esm/core/notifications/channels/base-channel.d.ts.map +1 -0
  514. package/dist/esm/core/notifications/channels/base-channel.js +58 -0
  515. package/dist/esm/core/notifications/channels/base-channel.js.map +1 -0
  516. package/dist/esm/core/notifications/channels/index.d.ts +4 -0
  517. package/dist/esm/core/notifications/channels/index.d.ts.map +1 -0
  518. package/dist/esm/core/notifications/channels/index.js +4 -0
  519. package/dist/esm/core/notifications/channels/index.js.map +1 -0
  520. package/dist/esm/core/notifications/channels/sse-channel.d.ts +50 -0
  521. package/dist/esm/core/notifications/channels/sse-channel.d.ts.map +1 -0
  522. package/dist/esm/core/notifications/channels/sse-channel.js +206 -0
  523. package/dist/esm/core/notifications/channels/sse-channel.js.map +1 -0
  524. package/dist/esm/core/notifications/channels/websocket-channel.d.ts +16 -0
  525. package/dist/esm/core/notifications/channels/websocket-channel.d.ts.map +1 -0
  526. package/dist/esm/core/notifications/channels/websocket-channel.js +83 -0
  527. package/dist/esm/core/notifications/channels/websocket-channel.js.map +1 -0
  528. package/dist/esm/core/notifications/index.d.ts +3 -0
  529. package/dist/esm/core/notifications/index.d.ts.map +1 -0
  530. package/dist/esm/core/notifications/index.js +2 -0
  531. package/dist/esm/core/notifications/index.js.map +1 -0
  532. package/dist/esm/core/notifications/notifications-client.d.ts +87 -0
  533. package/dist/esm/core/notifications/notifications-client.d.ts.map +1 -0
  534. package/dist/esm/core/notifications/notifications-client.js +456 -0
  535. package/dist/esm/core/notifications/notifications-client.js.map +1 -0
  536. package/dist/esm/core/notifications/types.d.ts +228 -0
  537. package/dist/esm/core/notifications/types.d.ts.map +1 -0
  538. package/dist/esm/core/notifications/types.js +6 -0
  539. package/dist/esm/core/notifications/types.js.map +1 -0
  540. package/dist/esm/core/pod-database.d.ts +383 -0
  541. package/dist/esm/core/pod-database.d.ts.map +1 -0
  542. package/dist/esm/core/pod-database.js +1175 -0
  543. package/dist/esm/core/pod-database.js.map +1 -0
  544. package/dist/esm/core/pod-dialect.d.ts +294 -0
  545. package/dist/esm/core/pod-dialect.d.ts.map +1 -0
  546. package/dist/esm/core/pod-dialect.js +1296 -0
  547. package/dist/esm/core/pod-dialect.js.map +1 -0
  548. package/dist/esm/core/pod-discovery.d.ts +20 -0
  549. package/dist/esm/core/pod-discovery.d.ts.map +1 -0
  550. package/dist/esm/core/pod-discovery.js +109 -0
  551. package/dist/esm/core/pod-discovery.js.map +1 -0
  552. package/dist/esm/core/pod-session.d.ts +44 -0
  553. package/dist/esm/core/pod-session.d.ts.map +1 -0
  554. package/dist/esm/core/pod-session.js +109 -0
  555. package/dist/esm/core/pod-session.js.map +1 -0
  556. package/dist/esm/core/pod-table.d.ts +710 -0
  557. package/dist/esm/core/pod-table.d.ts.map +1 -0
  558. package/dist/esm/core/pod-table.js +1249 -0
  559. package/dist/esm/core/pod-table.js.map +1 -0
  560. package/dist/esm/core/profile-manager.d.ts +90 -0
  561. package/dist/esm/core/profile-manager.d.ts.map +1 -0
  562. package/dist/esm/core/profile-manager.js +164 -0
  563. package/dist/esm/core/profile-manager.js.map +1 -0
  564. package/dist/esm/core/publish-manager.d.ts +90 -0
  565. package/dist/esm/core/publish-manager.d.ts.map +1 -0
  566. package/dist/esm/core/publish-manager.js +143 -0
  567. package/dist/esm/core/publish-manager.js.map +1 -0
  568. package/dist/esm/core/query-builders/delete-query-builder.d.ts +36 -0
  569. package/dist/esm/core/query-builders/delete-query-builder.d.ts.map +1 -0
  570. package/dist/esm/core/query-builders/delete-query-builder.js +140 -0
  571. package/dist/esm/core/query-builders/delete-query-builder.js.map +1 -0
  572. package/dist/esm/core/query-builders/helpers.d.ts +4 -0
  573. package/dist/esm/core/query-builders/helpers.d.ts.map +1 -0
  574. package/dist/esm/core/query-builders/helpers.js +26 -0
  575. package/dist/esm/core/query-builders/helpers.js.map +1 -0
  576. package/dist/esm/core/query-builders/index.d.ts +6 -0
  577. package/dist/esm/core/query-builders/index.d.ts.map +1 -0
  578. package/dist/esm/core/query-builders/index.js +5 -0
  579. package/dist/esm/core/query-builders/index.js.map +1 -0
  580. package/dist/esm/core/query-builders/insert-query-builder.d.ts +27 -0
  581. package/dist/esm/core/query-builders/insert-query-builder.d.ts.map +1 -0
  582. package/dist/esm/core/query-builders/insert-query-builder.js +124 -0
  583. package/dist/esm/core/query-builders/insert-query-builder.js.map +1 -0
  584. package/dist/esm/core/query-builders/select-query-builder.d.ts +106 -0
  585. package/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -0
  586. package/dist/esm/core/query-builders/select-query-builder.js +1260 -0
  587. package/dist/esm/core/query-builders/select-query-builder.js.map +1 -0
  588. package/dist/esm/core/query-builders/types.d.ts +37 -0
  589. package/dist/esm/core/query-builders/types.d.ts.map +1 -0
  590. package/dist/esm/core/query-builders/types.js +2 -0
  591. package/dist/esm/core/query-builders/types.js.map +1 -0
  592. package/dist/esm/core/query-builders/update-query-builder.d.ts +38 -0
  593. package/dist/esm/core/query-builders/update-query-builder.d.ts.map +1 -0
  594. package/dist/esm/core/query-builders/update-query-builder.js +164 -0
  595. package/dist/esm/core/query-builders/update-query-builder.js.map +1 -0
  596. package/dist/esm/core/query-conditions.d.ts +52 -0
  597. package/dist/esm/core/query-conditions.d.ts.map +1 -0
  598. package/dist/esm/core/query-conditions.js +111 -0
  599. package/dist/esm/core/query-conditions.js.map +1 -0
  600. package/dist/esm/core/rdf-constants.d.ts +16 -0
  601. package/dist/esm/core/rdf-constants.d.ts.map +1 -0
  602. package/dist/esm/core/rdf-constants.js +32 -0
  603. package/dist/esm/core/rdf-constants.js.map +1 -0
  604. package/dist/esm/core/rdf-schema-parser.d.ts +34 -0
  605. package/dist/esm/core/rdf-schema-parser.d.ts.map +1 -0
  606. package/dist/esm/core/rdf-schema-parser.js +136 -0
  607. package/dist/esm/core/rdf-schema-parser.js.map +1 -0
  608. package/dist/esm/core/resource-resolver/base-resolver.d.ts +29 -0
  609. package/dist/esm/core/resource-resolver/base-resolver.d.ts.map +1 -0
  610. package/dist/esm/core/resource-resolver/base-resolver.js +78 -0
  611. package/dist/esm/core/resource-resolver/base-resolver.js.map +1 -0
  612. package/dist/esm/core/resource-resolver/document-resolver.d.ts +20 -0
  613. package/dist/esm/core/resource-resolver/document-resolver.d.ts.map +1 -0
  614. package/dist/esm/core/resource-resolver/document-resolver.js +101 -0
  615. package/dist/esm/core/resource-resolver/document-resolver.js.map +1 -0
  616. package/dist/esm/core/resource-resolver/factory.d.ts +27 -0
  617. package/dist/esm/core/resource-resolver/factory.d.ts.map +1 -0
  618. package/dist/esm/core/resource-resolver/factory.js +53 -0
  619. package/dist/esm/core/resource-resolver/factory.js.map +1 -0
  620. package/dist/esm/core/resource-resolver/fragment-resolver.d.ts +20 -0
  621. package/dist/esm/core/resource-resolver/fragment-resolver.d.ts.map +1 -0
  622. package/dist/esm/core/resource-resolver/fragment-resolver.js +56 -0
  623. package/dist/esm/core/resource-resolver/fragment-resolver.js.map +1 -0
  624. package/dist/esm/core/resource-resolver/index.d.ts +11 -0
  625. package/dist/esm/core/resource-resolver/index.d.ts.map +1 -0
  626. package/dist/esm/core/resource-resolver/index.js +10 -0
  627. package/dist/esm/core/resource-resolver/index.js.map +1 -0
  628. package/dist/esm/core/resource-resolver/types.d.ts +57 -0
  629. package/dist/esm/core/resource-resolver/types.d.ts.map +1 -0
  630. package/dist/esm/core/resource-resolver/types.js +8 -0
  631. package/dist/esm/core/resource-resolver/types.js.map +1 -0
  632. package/dist/esm/core/runtime/pod-runtime.d.ts +34 -0
  633. package/dist/esm/core/runtime/pod-runtime.d.ts.map +1 -0
  634. package/dist/esm/core/runtime/pod-runtime.js +121 -0
  635. package/dist/esm/core/runtime/pod-runtime.js.map +1 -0
  636. package/dist/esm/core/schema/columns.d.ts +74 -0
  637. package/dist/esm/core/schema/columns.d.ts.map +1 -0
  638. package/dist/esm/core/schema/columns.js +282 -0
  639. package/dist/esm/core/schema/columns.js.map +1 -0
  640. package/dist/esm/core/schema/defs.d.ts +92 -0
  641. package/dist/esm/core/schema/defs.d.ts.map +1 -0
  642. package/dist/esm/core/schema/defs.js +36 -0
  643. package/dist/esm/core/schema/defs.js.map +1 -0
  644. package/dist/esm/core/schema/factories.d.ts +29 -0
  645. package/dist/esm/core/schema/factories.d.ts.map +1 -0
  646. package/dist/esm/core/schema/factories.js +89 -0
  647. package/dist/esm/core/schema/factories.js.map +1 -0
  648. package/dist/esm/core/schema/index.d.ts +9 -0
  649. package/dist/esm/core/schema/index.d.ts.map +1 -0
  650. package/dist/esm/core/schema/index.js +9 -0
  651. package/dist/esm/core/schema/index.js.map +1 -0
  652. package/dist/esm/core/schema/pod-table.d.ts +93 -0
  653. package/dist/esm/core/schema/pod-table.d.ts.map +1 -0
  654. package/dist/esm/core/schema/pod-table.js +289 -0
  655. package/dist/esm/core/schema/pod-table.js.map +1 -0
  656. package/dist/esm/core/schema/relations.d.ts +26 -0
  657. package/dist/esm/core/schema/relations.d.ts.map +1 -0
  658. package/dist/esm/core/schema/relations.js +33 -0
  659. package/dist/esm/core/schema/relations.js.map +1 -0
  660. package/dist/esm/core/schema/solid-schema.d.ts +19 -0
  661. package/dist/esm/core/schema/solid-schema.d.ts.map +1 -0
  662. package/dist/esm/core/schema/solid-schema.js +87 -0
  663. package/dist/esm/core/schema/solid-schema.js.map +1 -0
  664. package/dist/esm/core/schema/types.d.ts +45 -0
  665. package/dist/esm/core/schema/types.d.ts.map +1 -0
  666. package/dist/esm/core/schema/types.js +2 -0
  667. package/dist/esm/core/schema/types.js.map +1 -0
  668. package/dist/esm/core/schema/utils.d.ts +15 -0
  669. package/dist/esm/core/schema/utils.d.ts.map +1 -0
  670. package/dist/esm/core/schema/utils.js +40 -0
  671. package/dist/esm/core/schema/utils.js.map +1 -0
  672. package/dist/esm/core/select-plan.d.ts +45 -0
  673. package/dist/esm/core/select-plan.d.ts.map +1 -0
  674. package/dist/esm/core/select-plan.js +2 -0
  675. package/dist/esm/core/select-plan.js.map +1 -0
  676. package/dist/esm/core/services/pod-services.d.ts +41 -0
  677. package/dist/esm/core/services/pod-services.d.ts.map +1 -0
  678. package/dist/esm/core/services/pod-services.js +75 -0
  679. package/dist/esm/core/services/pod-services.js.map +1 -0
  680. package/dist/esm/core/shape/generator.d.ts +12 -0
  681. package/dist/esm/core/shape/generator.d.ts.map +1 -0
  682. package/dist/esm/core/shape/generator.js +106 -0
  683. package/dist/esm/core/shape/generator.js.map +1 -0
  684. package/dist/esm/core/shape/index.d.ts +4 -0
  685. package/dist/esm/core/shape/index.d.ts.map +1 -0
  686. package/dist/esm/core/shape/index.js +4 -0
  687. package/dist/esm/core/shape/index.js.map +1 -0
  688. package/dist/esm/core/shape/manager.d.ts +45 -0
  689. package/dist/esm/core/shape/manager.d.ts.map +1 -0
  690. package/dist/esm/core/shape/manager.js +389 -0
  691. package/dist/esm/core/shape/manager.js.map +1 -0
  692. package/dist/esm/core/shape/shacl-parser.d.ts +19 -0
  693. package/dist/esm/core/shape/shacl-parser.d.ts.map +1 -0
  694. package/dist/esm/core/shape/shacl-parser.js +210 -0
  695. package/dist/esm/core/shape/shacl-parser.js.map +1 -0
  696. package/dist/esm/core/shape/shacl.d.ts +11 -0
  697. package/dist/esm/core/shape/shacl.d.ts.map +1 -0
  698. package/dist/esm/core/shape/shacl.js +127 -0
  699. package/dist/esm/core/shape/shacl.js.map +1 -0
  700. package/dist/esm/core/shape/types.d.ts +149 -0
  701. package/dist/esm/core/shape/types.d.ts.map +1 -0
  702. package/dist/esm/core/shape/types.js +42 -0
  703. package/dist/esm/core/shape/types.js.map +1 -0
  704. package/dist/esm/core/shape/validator.d.ts +11 -0
  705. package/dist/esm/core/shape/validator.d.ts.map +1 -0
  706. package/dist/esm/core/shape/validator.js +229 -0
  707. package/dist/esm/core/shape/validator.js.map +1 -0
  708. package/dist/esm/core/solid-n3-client.d.ts +86 -0
  709. package/dist/esm/core/solid-n3-client.d.ts.map +1 -0
  710. package/dist/esm/core/solid-n3-client.js +275 -0
  711. package/dist/esm/core/solid-n3-client.js.map +1 -0
  712. package/dist/esm/core/sparql/builder/expression-builder.d.ts +42 -0
  713. package/dist/esm/core/sparql/builder/expression-builder.d.ts.map +1 -0
  714. package/dist/esm/core/sparql/builder/expression-builder.js +255 -0
  715. package/dist/esm/core/sparql/builder/expression-builder.js.map +1 -0
  716. package/dist/esm/core/sparql/builder/select-builder.d.ts +35 -0
  717. package/dist/esm/core/sparql/builder/select-builder.d.ts.map +1 -0
  718. package/dist/esm/core/sparql/builder/select-builder.js +409 -0
  719. package/dist/esm/core/sparql/builder/select-builder.js.map +1 -0
  720. package/dist/esm/core/sparql/builder/update-builder.d.ts +33 -0
  721. package/dist/esm/core/sparql/builder/update-builder.d.ts.map +1 -0
  722. package/dist/esm/core/sparql/builder/update-builder.js +486 -0
  723. package/dist/esm/core/sparql/builder/update-builder.js.map +1 -0
  724. package/dist/esm/core/sparql/helpers.d.ts +19 -0
  725. package/dist/esm/core/sparql/helpers.d.ts.map +1 -0
  726. package/dist/esm/core/sparql/helpers.js +165 -0
  727. package/dist/esm/core/sparql/helpers.js.map +1 -0
  728. package/dist/esm/core/sparql/types.d.ts +10 -0
  729. package/dist/esm/core/sparql/types.d.ts.map +1 -0
  730. package/dist/esm/core/sparql/types.js +2 -0
  731. package/dist/esm/core/sparql/types.js.map +1 -0
  732. package/dist/esm/core/sparql-executor.d.ts +34 -0
  733. package/dist/esm/core/sparql-executor.d.ts.map +1 -0
  734. package/dist/esm/core/sparql-executor.js +708 -0
  735. package/dist/esm/core/sparql-executor.js.map +1 -0
  736. package/dist/esm/core/subject/index.d.ts +29 -0
  737. package/dist/esm/core/subject/index.d.ts.map +1 -0
  738. package/dist/esm/core/subject/index.js +49 -0
  739. package/dist/esm/core/subject/index.js.map +1 -0
  740. package/dist/esm/core/subject/resolver.d.ts +92 -0
  741. package/dist/esm/core/subject/resolver.d.ts.map +1 -0
  742. package/dist/esm/core/subject/resolver.js +355 -0
  743. package/dist/esm/core/subject/resolver.js.map +1 -0
  744. package/dist/esm/core/subject/types.d.ts +90 -0
  745. package/dist/esm/core/subject/types.d.ts.map +1 -0
  746. package/dist/esm/core/subject/types.js +7 -0
  747. package/dist/esm/core/subject/types.js.map +1 -0
  748. package/dist/esm/core/triple/builder.d.ts +86 -0
  749. package/dist/esm/core/triple/builder.d.ts.map +1 -0
  750. package/dist/esm/core/triple/builder.js +300 -0
  751. package/dist/esm/core/triple/builder.js.map +1 -0
  752. package/dist/esm/core/triple/handlers/array.d.ts +23 -0
  753. package/dist/esm/core/triple/handlers/array.d.ts.map +1 -0
  754. package/dist/esm/core/triple/handlers/array.js +115 -0
  755. package/dist/esm/core/triple/handlers/array.js.map +1 -0
  756. package/dist/esm/core/triple/handlers/default.d.ts +20 -0
  757. package/dist/esm/core/triple/handlers/default.d.ts.map +1 -0
  758. package/dist/esm/core/triple/handlers/default.js +92 -0
  759. package/dist/esm/core/triple/handlers/default.js.map +1 -0
  760. package/dist/esm/core/triple/handlers/index.d.ts +35 -0
  761. package/dist/esm/core/triple/handlers/index.d.ts.map +1 -0
  762. package/dist/esm/core/triple/handlers/index.js +59 -0
  763. package/dist/esm/core/triple/handlers/index.js.map +1 -0
  764. package/dist/esm/core/triple/handlers/inline.d.ts +35 -0
  765. package/dist/esm/core/triple/handlers/inline.d.ts.map +1 -0
  766. package/dist/esm/core/triple/handlers/inline.js +186 -0
  767. package/dist/esm/core/triple/handlers/inline.js.map +1 -0
  768. package/dist/esm/core/triple/handlers/inverse.d.ts +22 -0
  769. package/dist/esm/core/triple/handlers/inverse.d.ts.map +1 -0
  770. package/dist/esm/core/triple/handlers/inverse.js +64 -0
  771. package/dist/esm/core/triple/handlers/inverse.js.map +1 -0
  772. package/dist/esm/core/triple/handlers/uri.d.ts +28 -0
  773. package/dist/esm/core/triple/handlers/uri.d.ts.map +1 -0
  774. package/dist/esm/core/triple/handlers/uri.js +62 -0
  775. package/dist/esm/core/triple/handlers/uri.js.map +1 -0
  776. package/dist/esm/core/triple/index.d.ts +9 -0
  777. package/dist/esm/core/triple/index.d.ts.map +1 -0
  778. package/dist/esm/core/triple/index.js +10 -0
  779. package/dist/esm/core/triple/index.js.map +1 -0
  780. package/dist/esm/core/triple/types.d.ts +152 -0
  781. package/dist/esm/core/triple/types.d.ts.map +1 -0
  782. package/dist/esm/core/triple/types.js +7 -0
  783. package/dist/esm/core/triple/types.js.map +1 -0
  784. package/dist/esm/core/typeindex-manager.d.ts +124 -0
  785. package/dist/esm/core/typeindex-manager.d.ts.map +1 -0
  786. package/dist/esm/core/typeindex-manager.js +658 -0
  787. package/dist/esm/core/typeindex-manager.js.map +1 -0
  788. package/dist/esm/core/types.d.ts +57 -0
  789. package/dist/esm/core/types.d.ts.map +1 -0
  790. package/dist/esm/core/types.js +3 -0
  791. package/dist/esm/core/types.js.map +1 -0
  792. package/dist/esm/core/uri/index.d.ts +8 -0
  793. package/dist/esm/core/uri/index.d.ts.map +1 -0
  794. package/dist/esm/core/uri/index.js +8 -0
  795. package/dist/esm/core/uri/index.js.map +1 -0
  796. package/dist/esm/core/uri/resolver.d.ts +79 -0
  797. package/dist/esm/core/uri/resolver.d.ts.map +1 -0
  798. package/dist/esm/core/uri/resolver.js +454 -0
  799. package/dist/esm/core/uri/resolver.js.map +1 -0
  800. package/dist/esm/core/uri/types.d.ts +143 -0
  801. package/dist/esm/core/uri/types.d.ts.map +1 -0
  802. package/dist/esm/core/uri/types.js +7 -0
  803. package/dist/esm/core/uri/types.js.map +1 -0
  804. package/dist/esm/core/utils/origin-auth.d.ts +28 -0
  805. package/dist/esm/core/utils/origin-auth.d.ts.map +1 -0
  806. package/dist/esm/core/utils/origin-auth.js +42 -0
  807. package/dist/esm/core/utils/origin-auth.js.map +1 -0
  808. package/dist/esm/core/utils/pod-root.d.ts +15 -0
  809. package/dist/esm/core/utils/pod-root.d.ts.map +1 -0
  810. package/dist/esm/core/utils/pod-root.js +69 -0
  811. package/dist/esm/core/utils/pod-root.js.map +1 -0
  812. package/dist/esm/core/zod-integration.d.ts +95 -0
  813. package/dist/esm/core/zod-integration.d.ts.map +1 -0
  814. package/dist/esm/core/zod-integration.js +227 -0
  815. package/dist/esm/core/zod-integration.js.map +1 -0
  816. package/dist/esm/driver.d.ts +23 -0
  817. package/dist/esm/driver.d.ts.map +1 -0
  818. package/dist/esm/driver.js +30 -0
  819. package/dist/esm/driver.js.map +1 -0
  820. package/dist/esm/index.d.ts +23 -0
  821. package/dist/esm/index.d.ts.map +1 -0
  822. package/dist/esm/index.js +44 -0
  823. package/dist/esm/index.js.map +1 -0
  824. package/dist/esm/solid.d.ts +21 -0
  825. package/dist/esm/solid.d.ts.map +1 -0
  826. package/dist/esm/solid.js +30 -0
  827. package/dist/esm/solid.js.map +1 -0
  828. package/dist/esm/test-utils/real-test-helpers.d.ts +5 -0
  829. package/dist/esm/test-utils/real-test-helpers.d.ts.map +1 -0
  830. package/dist/esm/test-utils/real-test-helpers.js +17 -0
  831. package/dist/esm/test-utils/real-test-helpers.js.map +1 -0
  832. package/dist/esm/types/sparql-types.d.ts +27 -0
  833. package/dist/esm/types/sparql-types.d.ts.map +1 -0
  834. package/dist/esm/types/sparql-types.js +3 -0
  835. package/dist/esm/types/sparql-types.js.map +1 -0
  836. package/dist/esm/utils/find-by-iri.d.ts +9 -0
  837. package/dist/esm/utils/find-by-iri.d.ts.map +1 -0
  838. package/dist/esm/utils/find-by-iri.js +22 -0
  839. package/dist/esm/utils/find-by-iri.js.map +1 -0
  840. package/dist/esm/utils/helpers.d.ts +17 -0
  841. package/dist/esm/utils/helpers.d.ts.map +1 -0
  842. package/dist/esm/utils/helpers.js +59 -0
  843. package/dist/esm/utils/helpers.js.map +1 -0
  844. package/dist/esm/utils/namespace.d.ts +4 -0
  845. package/dist/esm/utils/namespace.d.ts.map +1 -0
  846. package/dist/esm/utils/namespace.js +30 -0
  847. package/dist/esm/utils/namespace.js.map +1 -0
  848. package/dist/esm/utils/rdf-helpers.d.ts +17 -0
  849. package/dist/esm/utils/rdf-helpers.d.ts.map +1 -0
  850. package/dist/esm/utils/rdf-helpers.js +47 -0
  851. package/dist/esm/utils/rdf-helpers.js.map +1 -0
  852. package/dist/esm/utils/rdf-validation.d.ts +25 -0
  853. package/dist/esm/utils/rdf-validation.d.ts.map +1 -0
  854. package/dist/esm/utils/rdf-validation.js +288 -0
  855. package/dist/esm/utils/rdf-validation.js.map +1 -0
  856. package/dist/esm/utils/thing-operations.d.ts +28 -0
  857. package/dist/esm/utils/thing-operations.d.ts.map +1 -0
  858. package/dist/esm/utils/thing-operations.js +249 -0
  859. package/dist/esm/utils/thing-operations.js.map +1 -0
  860. package/dist/index.d.ts +23 -0
  861. package/dist/index.d.ts.map +1 -0
  862. package/dist/index.js +156 -0
  863. package/dist/index.js.map +1 -0
  864. package/dist/solid.d.ts +21 -0
  865. package/dist/solid.d.ts.map +1 -0
  866. package/dist/solid.js +35 -0
  867. package/dist/solid.js.map +1 -0
  868. package/dist/test-utils/real-test-helpers.d.ts +5 -0
  869. package/dist/test-utils/real-test-helpers.d.ts.map +1 -0
  870. package/dist/test-utils/real-test-helpers.js +22 -0
  871. package/dist/test-utils/real-test-helpers.js.map +1 -0
  872. package/dist/types/sparql-types.d.ts +27 -0
  873. package/dist/types/sparql-types.d.ts.map +1 -0
  874. package/dist/types/sparql-types.js +4 -0
  875. package/dist/types/sparql-types.js.map +1 -0
  876. package/dist/utils/find-by-iri.d.ts +9 -0
  877. package/dist/utils/find-by-iri.d.ts.map +1 -0
  878. package/dist/utils/find-by-iri.js +25 -0
  879. package/dist/utils/find-by-iri.js.map +1 -0
  880. package/dist/utils/helpers.d.ts +17 -0
  881. package/dist/utils/helpers.d.ts.map +1 -0
  882. package/dist/utils/helpers.js +65 -0
  883. package/dist/utils/helpers.js.map +1 -0
  884. package/dist/utils/namespace.d.ts +4 -0
  885. package/dist/utils/namespace.d.ts.map +1 -0
  886. package/dist/utils/namespace.js +33 -0
  887. package/dist/utils/namespace.js.map +1 -0
  888. package/dist/utils/rdf-helpers.d.ts +17 -0
  889. package/dist/utils/rdf-helpers.d.ts.map +1 -0
  890. package/dist/utils/rdf-helpers.js +53 -0
  891. package/dist/utils/rdf-helpers.js.map +1 -0
  892. package/dist/utils/rdf-validation.d.ts +25 -0
  893. package/dist/utils/rdf-validation.d.ts.map +1 -0
  894. package/dist/utils/rdf-validation.js +292 -0
  895. package/dist/utils/rdf-validation.js.map +1 -0
  896. package/dist/utils/thing-operations.d.ts +28 -0
  897. package/dist/utils/thing-operations.d.ts.map +1 -0
  898. package/dist/utils/thing-operations.js +256 -0
  899. package/dist/utils/thing-operations.js.map +1 -0
  900. package/package.json +98 -0
package/README.md ADDED
@@ -0,0 +1,563 @@
1
+ # Drizzle Solid
2
+
3
+ 一个为Solid Pod设计的类型安全ORM,基于Drizzle ORM构建,让您能够像操作传统数据库一样操作Solid Pod中的RDF数据。
4
+
5
+ ## ✨ 特性
6
+
7
+ - 🔒 **类型安全**: 完整的 TypeScript 支持与严格模式提示
8
+ - 🧭 **Drizzle 对齐**: 沿用 Drizzle ORM 的查询构建器与错误形态,降低迁移成本
9
+ - 🌐 **Solid 实测**: CSS 集成测试覆盖 CRUD、条件组合、聚合与联结场景
10
+ - 🔁 **智能回退**: SQL 查询自动转换为 SPARQL;当 CSS/Comunica 无法处理过滤器或聚合时由方言拉取数据并在内存中回放
11
+ - 🔧 **灵活映射**: 自定义命名空间、谓词和列类型(字符串、数字、布尔、时间、JSON/Object)
12
+
13
+ ## 🔋 服务器支持
14
+
15
+ drizzle-solid 支持两种 Solid 服务器:
16
+
17
+ ### 能力对比
18
+
19
+ | 能力 | 原生 CSS | xpod |
20
+ |------|----------|------|
21
+ | **基础 CRUD** | ✅ LDP 模式 | ✅ LDP 模式 |
22
+ | **SPARQL SELECT** | ❌ 不支持(Comunica 客户端执行) | ✅ 服务端索引下推 |
23
+ | **SPARQL UPDATE** | ⚠️ 仅 BGP 写入 | ✅ 完整支持 |
24
+ | **条件查询** (where) | Comunica 读文件到内存 | 索引下推(单 Pod) |
25
+ | **聚合函数** (count/sum/avg) | Comunica 读文件到内存 | 索引下推(单 Pod) |
26
+ | **GROUP BY / JOIN** | Comunica 读文件到内存 | 索引下推(单 Pod) |
27
+ | **联邦查询** (跨 Pod) | Comunica 内存处理 | Comunica 内存处理 |
28
+ | **SPARQL 端点** | ❌ 不支持 | ✅ `/-/sparql` Sidecar |
29
+ | **SPARQL 1.1 覆盖率** | - | ~90% |
30
+
31
+ ### 原生 Community Solid Server (CSS)
32
+
33
+ 原生 CSS **不支持 SPARQL SELECT**,drizzle-solid 通过 **Comunica 客户端**读取文件到内存后执行查询:
34
+ - ✅ 基本的 CRUD 操作(LDP)
35
+ - ⚠️ 写入仅支持 BGP(Basic Graph Pattern)
36
+ - ⚠️ 所有查询由 Comunica 客户端在内存中执行
37
+
38
+ ### xpod - 扩展的 CSS (推荐)
39
+
40
+ **xpod** 使用 **QuintStore**(五元组存储,GSPOV)替代文件存储,通过 6 组索引实现查询下推:
41
+
42
+ - ✅ **SPARQL SELECT 服务端执行**:查询下推到 QuintStore 索引
43
+ - ✅ **Sidecar API**:`/-/sparql` 端点,权限继承自资源路径
44
+ - ✅ **混合存储**:RDF → QuintStore 索引,非 RDF → 文件系统
45
+ - ⚠️ **联邦查询**:跨 Pod 查询仍需 Comunica 内存处理
46
+ - ⚠️ **SPARQL 覆盖**:约 90% W3C SPARQL 1.1 测试通过
47
+
48
+ **仓库**:https://github.com/undefinedsco/xpod | **详细对比**:[xpod 特性文档](./docs/xpod-features.md)
49
+
50
+ ## 🚀 快速开始
51
+
52
+ ### 安装
53
+
54
+ ```bash
55
+ yarn add drizzle-solid
56
+ ```
57
+
58
+ ### 基本用法
59
+
60
+ ```typescript
61
+ import { drizzle } from 'drizzle-solid';
62
+ import { podTable, string, int } from 'drizzle-solid';
63
+ import { Session } from '@inrupt/solid-client-authn-node';
64
+
65
+ // 定义表结构
66
+ const profileTable = podTable('profile', {
67
+ name: string('name'),
68
+ email: string('email'),
69
+ age: int('age')
70
+ }, {
71
+ // 相对 Pod 根的容器/资源路径,不需要 idp:// 前缀
72
+ base: '/profiles/',
73
+ type: 'https://schema.org/Person'
74
+ });
75
+
76
+ // 自定义 subject 模板示例:按年月目录、文件名是 id,仍指向单独文件
77
+ const logsTable = podTable('logs', {
78
+ id: string('id').primaryKey(),
79
+ message: string('message')
80
+ }, {
81
+ type: 'https://schema.org/DigitalDocument',
82
+ base: '/logs/',
83
+ subjectTemplate: '{yyyy}/{MM}/{dd}/{id}.ttl'
84
+ });
85
+
86
+ // subjectTemplate(选填):
87
+ // - 作用:控制每条记录主体 URI 的形态,支持占位符 {yyyy}/{MM}/{dd}/{HH}/{mm}/{ss}/{id}。
88
+ // - 推断:未指定时按 base 判断:base 是容器(以 / 结尾且包含表名)→ document 模式;base 是具体文件 → fragment 模式。模板含 #(如 '#{id}')也强制 fragment;其他模板按 document 处理,可用 {yyyy}/{MM}/{dd}/{id}.ttl 等。
89
+ // - document 模式:每条记录独立文件,URI 形如 .../users/{id}.ttl,SELECT/UPDATE/DELETE 由 Comunica dereference 目标文件后本地求值;适合记录级隔离/按目录分片。
90
+ // - fragment 模式:多条记录共享同一文件,主体是片段(.../file.ttl#{id}),SELECT 同样由 Comunica 拉取该文件求值;适合小表或聚合存放的数据。
91
+ // - 示例:subjectTemplate: '{yyyy}/{MM}/{dd}/{id}.ttl'(document 分日期分片);subjectTemplate: '#{id}'(fragment,共享文件)。
92
+
93
+ // 创建数据库连接
94
+ const session = new Session(); // 已认证的session
95
+ const db = drizzle(session);
96
+
97
+ // 初始化需要使用的表(创建容器、资源并注册 TypeIndex)
98
+ await db.init([profileTable]);
99
+
100
+ // 查询数据
101
+ const profiles = await db.select().from(profileTable);
102
+
103
+ // 插入数据
104
+ await db.insert(profileTable).values({
105
+ name: 'Alice',
106
+ email: 'alice@example.com',
107
+ age: 30
108
+ });
109
+
110
+ // 使用 SPARQL 端点(适用于 xpod)
111
+ const sparqlTable = podTable('posts', {
112
+ id: string('id').primaryKey(),
113
+ title: string('title'),
114
+ }, {
115
+ type: 'https://schema.org/CreativeWork',
116
+ base: '/data/posts.ttl', // 资源路径
117
+ sparqlEndpoint: '/data/posts.ttl/-/sparql' // xpod Sidecar 模式端点
118
+ // 💡 xpod 使用 Sidecar 模式:在资源路径后添加 /-/sparql 后缀
119
+ // - 文件资源: /data/posts.ttl/-/sparql
120
+ // - 容器: /data/users/-/sparql
121
+ });
122
+ await db.init([sparqlTable]); // 不会创建容器,直接使用端点执行 SPARQL UPDATE/SELECT
123
+ await db.insert(sparqlTable).values({ id: 'post-1', title: 'Hello SPARQL' });
124
+
125
+ ### SPARQL Endpoint 模式兼容性说明 (重要!)
126
+
127
+ 当 `podTable` 配置 `sparqlEndpoint` 时,Drizzle Solid 会直接使用该端点执行所有 CRUD 操作。理解其行为模式对于数据一致性至关重要:
128
+
129
+ 1. **Fragment Mode (聚合 Named Graph)**:
130
+ * **定义**: 当表的 `base` 指向一个具体资源 URL (例如 `/data/posts.ttl`),或者 `subjectTemplate` 使用片段 (例如 `'#{id}'`) 时,Drizzle Solid 会将所有数据操作集中在 `base` 对应的单一 Named Graph (`GRAPH <base_url>`) 中。
131
+ * **行为**: 在此模式下,LDP 读写与 SPARQL 读写**完全兼容且互操作**。LDP 对 `base` 资源的 PATCH/GET 操作,与 SPARQL 对 `GRAPH <base_url>` 的 DML/SELECT 操作,都作用于相同的数据集,并能互相可见。**这是 SPARQL Endpoint 模式下的推荐用法**。
132
+ * **示例**: `base: '/data/posts.ttl'`, `subjectTemplate: '#{id}'`。所有 posts 都存储在 `posts.ttl` 文件对应的 Named Graph 中。
133
+
134
+ 2. **Document Mode (聚合视图,写操作不兼容)**:
135
+ * **定义**: 当表的 `base` 指向一个容器 URL (例如 `/data/users/`),且 `subjectTemplate` 生成文件路径 (例如 `'{id}.ttl'`) 时。
136
+ * **读操作 (SELECT)**: SPARQL SELECT 查询指向容器的 `/sparql` 端点时,Community Solid Server (CSS) 会**聚合该容器内所有 LDP 子文件**的数据,形成一个统一的视图。因此,通过 LDP PUT 写入的子文件 (例如 `alice.ttl`),**可以被 SPARQL SELECT 查询到**。
137
+ * **写操作 (DML)**: SPARQL INSERT/UPDATE/DELETE 操作是针对**容器的聚合 Named Graph** (`GRAPH <container_url>`)。这些操作**不会**直接创建、修改或删除 LDP 子文件。
138
+ * 例如,通过 SPARQL INSERT 写入 `bob`,数据会存在容器 Graph 中,但**不会**创建 `bob.ttl` 文件 (LDP GET `/data/users/bob.ttl` 将返回 404)。
139
+ * 通过 SPARQL UPDATE `alice`,只会修改容器 Graph 中的 `alice` 数据(SPARQL 视图),而**不会**更新 `alice.ttl` 文件本身 (LDP GET `/data/users/alice.ttl` 将显示旧数据)。
140
+ * **结论**: 在 Document Mode 下,SPARQL 读操作可以兼容 LDP 资源(因为聚合),但 **写操作与 LDP 资源的物理文件视图不兼容**。这意味着 LDP 客户端可能无法看到 SPARQL DML 操作的影响,反之亦然。**不建议混合使用 LDP Document Mode 和 SPARQL DML 操作**,除非您明确理解其数据存储的视图差异,并仅利用 SPARQL 作为聚合查询工具。
141
+
142
+
143
+ ```
144
+
145
+ ## 📚 示例教程
146
+
147
+ 我们提供了完整的示例来帮助您快速上手:
148
+
149
+ ### 🏗️ 示例1: 快速开始
150
+
151
+ ```bash
152
+ yarn example:quick
153
+ ```
154
+
155
+ 这个示例展示:
156
+ - 如何连接到 Solid Pod 并定义表结构
157
+ - 使用 Drizzle 风格 API 执行插入、查询、更新、删除
158
+
159
+ ### 📖 示例2: 关系查询
160
+
161
+ ```bash
162
+ yarn example:query
163
+ ```
164
+
165
+ 这个示例展示:
166
+ - 如何定义表之间的关系
167
+ - 使用 `with` 进行关联查询
168
+ - 嵌套数据的加载方式
169
+
170
+ ### 🛠️ 示例3: 零配置数据发现
171
+
172
+ ```bash
173
+ yarn example:discovery
174
+ ```
175
+
176
+ 这个示例展示:
177
+ - 如何使用 TypeIndex 自动发现数据位置
178
+ - SAI (Solid Application Interoperability) 数据授权
179
+ - 无需硬编码路径的数据访问
180
+
181
+ ## 📖 详细文档
182
+
183
+ ### 表定义
184
+
185
+ ```typescript
186
+ import { podTable, string, int, boolean, date, uri, eq, gte, and } from 'drizzle-solid';
187
+
188
+ const userTable = podTable('users', {
189
+ name: string('name'), // foaf:name
190
+ email: string('email'), // foaf:mbox
191
+ age: int('age'), // foaf:age
192
+ verified: boolean('verified'), // 自定义谓词
193
+ createdAt: date('createdAt'), // dcterms:created
194
+ organization: uri('organization')
195
+ .predicate('https://schema.org/member') // <org> schema:member <person>
196
+ .inverse()
197
+ }, {
198
+ // 目标 Turtle 资源,必填,可以是相对 Pod 路径或绝对 URL
199
+ base: 'data/users.ttl',
200
+ // 主体类型
201
+ type: 'https://schema.org/Person',
202
+ // 可选:注册 TypeIndex(仅在提供 typeIndex 时才会尝试)
203
+ typeIndex: 'private' // 'public' | 'private' | undefined
204
+ });
205
+
206
+ // 初始化:在 CRUD 前确保容器/资源存在(会按 base 自动创建)
207
+ await db.init([userTable]);
208
+ ```
209
+
210
+ - 使用 `.inverse()` 可以把列映射为 `<object> predicate <subject>` 方向,适合例如 `<org> schema:member <person>` 这样的反向边;查询/写入都会自动交换 RDF 三元组的主体和宾语。
211
+
212
+ ### Drizzle 风格查询:`db.query` + `findByIRI`
213
+
214
+ 将 schema 传入 `drizzle(session, { schema })` 后,可通过 Drizzle 对齐的查询助手调用:
215
+
216
+ ```ts
217
+ import * as schema from './schema';
218
+ const db = drizzle(session, { schema });
219
+
220
+ const users = await db.query.users.findMany({
221
+ where: { verified: true },
222
+ orderBy: [{ column: schema.users.name, direction: 'asc' }],
223
+ with: {
224
+ posts: true // 根据子表 referenceTarget + @id 预加载关联行
225
+ }
226
+ });
227
+
228
+ // 通过 IRI 查找单条记录(推荐使用 db.findByIri)
229
+ const alice = await db.findByIri(schema.users, 'https://pod.example/data/users.ttl#alice');
230
+ ```
231
+
232
+ - `findMany/findFirst/findById/count` 与 Drizzle ORM 行为一致,复用现有 `select` 管道。
233
+ - `with` 支持基于 `reference(target)` 的引用外键(通过 `@id` 关联),结果会嵌套数组挂在相应键上。
234
+ - `db.findByIri(table, iri)` 可直接接受绝对 IRI 或 fragment(无协议时按 `id` 匹配),推荐使用此方法。
235
+ - TypeIndex 注册策略:仅当表配置了 `typeIndex: 'private' | 'public'` 时才会尝试写入 TypeIndex;未配置则跳过。
236
+
237
+ ### 支持的列类型
238
+
239
+ Drizzle Solid 完全兼容所有 Drizzle ORM 数据库方言的列类型:
240
+
241
+ #### 基础类型
242
+ ```typescript
243
+ // 字符串类型
244
+ string('name') // 通用字符串
245
+ text('content') // 文本内容
246
+ varchar('title') // 可变长度字符串
247
+ char('code') // 固定长度字符串
248
+
249
+ // 数字类型
250
+ int('count') // MySQL 风格整数
251
+ integer('id') // PostgreSQL 风格整数
252
+ bigint('large') // 大整数
253
+ smallint('small') // 小整数
254
+ tinyint('tiny') // 微整数 (MySQL)
255
+ mediumint('medium') // 中等整数 (MySQL)
256
+ serial('auto') // 自增序列
257
+
258
+ // 浮点数类型(内部映射为 xsd:decimal)
259
+ real('price') // 实数
260
+ decimal('amount') // 十进制数
261
+ numeric('value') // 数值
262
+ float('ratio') // 单精度浮点
263
+ double('precise') // 双精度浮点
264
+
265
+ // 布尔类型
266
+ boolean('active') // 布尔值
267
+
268
+ // 日期时间类型
269
+ date('birthday') // 日期
270
+ datetime('event') // 日期时间
271
+ timestamp('created') // 时间戳
272
+
273
+ // JSON 类型
274
+ json('data') // JSON 数据
275
+ jsonb('config') // 二进制 JSON (PostgreSQL)
276
+ object('metadata') // 对象类型 (扩展)
277
+ ```
278
+
279
+ ### 查询操作
280
+
281
+ ```typescript
282
+ // 查询所有记录
283
+ const users = await db.select().from(userTable);
284
+
285
+ // 条件查询
286
+ const adults = await db.select()
287
+ .from(userTable)
288
+ .where(gte(userTable.age, 18));
289
+
290
+ // 选择特定字段
291
+ const names = await db.select({ name: userTable.name })
292
+ .from(userTable);
293
+
294
+ // 使用条件构建器
295
+ const verifiedAdults = await db.select()
296
+ .from(userTable)
297
+ .where(and(gte(userTable.age, 18), eq(userTable.verified, true)));
298
+
299
+ // 排序、分页查询
300
+ const recentUsers = await db.select()
301
+ .from(userTable)
302
+ .orderBy(userTable.createdAt, 'desc') // 默认升序,可显式指定 'desc'
303
+ .limit(10) // 取前 10 条
304
+ .offset(10); // 跳过前 10 条,实现分页
305
+
306
+ // DISTINCT 查询,去重后返回唯一记录
307
+ const uniqueEmails = await db.select({ email: userTable.email })
308
+ .from(userTable)
309
+ .distinct();
310
+ ```
311
+
312
+ ### 聚合查询
313
+
314
+ ```typescript
315
+ import { count, max } from 'drizzle-solid';
316
+
317
+ const stats = await db
318
+ .select({
319
+ totalUsers: count(),
320
+ oldestAge: max(userTable.age)
321
+ })
322
+ .from(userTable)
323
+ .where(gte(userTable.age, 18));
324
+
325
+ console.log(stats[0]);
326
+ // { totalUsers: 42, oldestAge: 63 }
327
+ ```
328
+
329
+ > 当前聚合支持 `count/sum/avg/min/max`,由客户端在内存中计算,选择列表需全部为聚合字段;`JOIN` 与 `GROUP BY` 亦已通过客户端回放实现(在 CSS 升级至最新 Comunica 前仍保留此策略)。
330
+
331
+ ### 插入数据
332
+
333
+ ```typescript
334
+ // 插入单条记录
335
+ await db.insert(userTable).values({
336
+ name: 'Bob',
337
+ email: 'bob@example.com',
338
+ age: 25
339
+ });
340
+
341
+ // 批量插入
342
+ await db.insert(userTable).values([
343
+ { name: 'Alice', email: 'alice@example.com', age: 30 },
344
+ { name: 'Charlie', email: 'charlie@example.com', age: 35 }
345
+ ]);
346
+ ```
347
+
348
+ ### 更新数据
349
+
350
+ ```typescript
351
+ await db.update(userTable)
352
+ .set({ age: 26 })
353
+ .where(eq(userTable.name, 'Bob'));
354
+ ```
355
+
356
+ ### 删除数据
357
+
358
+ ```typescript
359
+ await db.delete(userTable)
360
+ .where(eq(userTable.name, 'Bob'));
361
+ ```
362
+
363
+ ## 🔍 数据发现与零配置访问 (Data Discovery & Interoperability)
364
+
365
+ Drizzle Solid 实现了 Solid 的 **TypeIndex** 和 **SAI (Application Interoperability)** 规范,这意味着您**不需要**硬编码数据的具体路径(`base`)。只要定义好 RDF 类型,Drizzle 就会自动帮您找到数据,无论它是在您自己的 Pod 里,还是别人通过 SAI 授权给您的。
366
+
367
+ ### 核心概念
368
+
369
+ - **TypeIndex**: 您的“个人数据索引”,记录了“我的笔记在哪里”、“我的联系人在哪里”。适合单用户场景。
370
+ - **SAI Discovery**: 一种更高级的发现机制,用于发现**跨 Pod** 共享的数据(例如 Alice 分享给 Bob 的聊天室)。适合社交、协作场景。
371
+
372
+ ### 如何启用自动发现?
373
+
374
+ 只需在定义表时,移除 `base` 属性,并设置 `typeIndex: 'private'`(或 `'public'`):
375
+
376
+ ```typescript
377
+ const messageTable = podTable('message', {
378
+ id: id(),
379
+ content: string('content').predicate('http://schema.org/text'),
380
+ }, {
381
+ type: 'http://schema.org/Message',
382
+ typeIndex: 'private' // ✨ 开启自动发现魔法
383
+ });
384
+
385
+ // 当您执行查询时,Drizzle 会自动:
386
+ // 1. 查您的 Private TypeIndex
387
+ // 2. 如果没找到,查 SAI Agent Registry (查看是否有授权给您的数据)
388
+ // 3. 找到数据位置后,自动定向查询
389
+ const messages = await db.select().from(messageTable);
390
+ ```
391
+
392
+ ### 跨 Pod 聊天应用示例 (SAI Chat)
393
+
394
+ 这是一个展示如何利用 SAI 发现机制构建“零配置”聊天应用的完整示例。Bob 不需要知道 Alice 的聊天室 URL,只要 Alice 授权了,Bob 的应用就能自动发现并加入聊天。
395
+
396
+ > 查看完整可运行代码:[`examples/04-sai-chat.ts`](examples/04-sai-chat.ts)
397
+
398
+ ```typescript
399
+ // 1. 定义通用的消息表(不绑定具体路径)
400
+ const messageTable = podTable('message', {
401
+ id: id(),
402
+ content: string('content').predicate('http://schema.org/text'),
403
+ author: uri('author').predicate('http://schema.org/author'),
404
+ createdAt: datetime('createdAt').predicate('http://schema.org/dateCreated')
405
+ }, {
406
+ type: 'http://schema.org/Message',
407
+ typeIndex: 'private', // 启用发现
408
+ autoRegister: false // 对于访客 Bob,不仅不需要注册,而且不能注册到自己的 TypeIndex
409
+ });
410
+
411
+ // 2. Alice (房主) 初始化聊天室
412
+ // Alice 需要明确指定存储位置 (base)
413
+ const aliceChatTable = podTable('message', { ...messageTable.columns }, {
414
+ ...messageTable.config,
415
+ base: 'https://alice.pod/data/chat/room.ttl',
416
+ subjectTemplate: '#{id}' // 强制单文件存储模式
417
+ });
418
+ await db.insert(aliceChatTable).values({ ... });
419
+
420
+ // ... (Alice 通过 SAI 授权给 Bob,此处省略 SAI 注册代码) ...
421
+
422
+ // 3. Bob (访客) 发现并回复
423
+ // Bob 初始化 Drizzle 时,完全不需要知道 room.ttl 的地址
424
+ const bobDb = drizzle(bobSession);
425
+
426
+ // 读取:自动发现 Alice 分享的数据
427
+ const messages = await bobDb.select().from(messageTable);
428
+ console.log(messages); // 包含 Alice 的消息
429
+
430
+ // 写入:自动向发现的地址写入回复
431
+ await bobDb.insert(messageTable).values({
432
+ content: 'Hi Alice! I found your chat room!',
433
+ author: bobSession.info.webId
434
+ });
435
+ ```
436
+
437
+ ### Discovery 策略
438
+
439
+ Drizzle Solid 使用组合策略 (`CompositeDiscovery`):
440
+ 1. **TypeIndex 优先**:检查用户的 `privateTypeIndex.ttl` 和 `publicTypeIndex.ttl`。
441
+ 2. **SAI 后备**:如果 TypeIndex 未命中,检查用户的 Profile -> RegistrySet -> Agent Registry,寻找匹配当前 ClientID 的 Data Grant。
442
+
443
+ 这种设计确保了既能兼容旧的 Solid 应用(基于 TypeIndex),又能支持未来的互操作性规范(SAI)。
444
+
445
+ 架构说明见 `docs/guides/architecture.md`。
446
+
447
+ ## ✅ 当前 SQL 支持范围
448
+
449
+ - 已实现:`select/insert/update/delete`、Drizzle 风格的 `where` 条件构建器(`eq/ne/lt/gte/like/inArray/not` 等)、`orderBy`、`limit/offset`、`distinct`、嵌套布尔组合,以及 `count/sum/avg/min/max` 聚合、`leftJoin/innerJoin` 和 `GROUP BY`。
450
+ - 运行策略:
451
+ - **xpod + 单 Pod**:查询下推到 QuintStore 索引执行
452
+ - **原生 CSS / 联邦查询**:Comunica 将数据读入内存后执行
453
+ - 未实现:`rightJoin`/`fullJoin`(待评估 xpod 支持情况)
454
+ - 未覆盖:`HAVING`、窗口函数、`UNION/UNION ALL`、子查询与跨容器联结;如需这些能力,请暂时改用手写 SPARQL 或拆分查询。
455
+
456
+ ## 🗺️ Roadmap
457
+
458
+ - **`rightJoin`/`fullJoin` 支持**: 待评估 xpod SPARQL 能力后实现,详见[设计方案](docs/guides/right-full-join-sparql-design.md)。
459
+
460
+ ## 🔧 配置
461
+
462
+ ### 自定义命名空间
463
+
464
+ Drizzle Solid 不再内置 vocab 常量,请从 RDF vocab 库(例如 `@inrupt/vocab-common-rdf`)导入需要的术语;若需要扩展缺失字段,可使用 `extendNamespace`:
465
+
466
+ ```typescript
467
+ import { podTable, string, extendNamespace } from 'drizzle-solid';
468
+ import { SCHEMA_INRUPT as SCHEMA } from '@inrupt/vocab-common-rdf';
469
+
470
+ const LINQ = extendNamespace(
471
+ { prefix: 'linq', uri: 'https://linq.dev/ns/' },
472
+ { favorite: 'profile#favorite' },
473
+ { namespace: 'https://linq.dev/ns/' }
474
+ );
475
+
476
+ const customTable = podTable('custom', {
477
+ title: string('title').predicate(`${SCHEMA.NAMESPACE}title`),
478
+ favorite: string('favorite').predicate(LINQ.favorite)
479
+ }, {
480
+ base: 'idp:///custom/index.ttl', // 目标资源
481
+ type: `${SCHEMA.NAMESPACE}CreativeWork`,
482
+ namespace: LINQ
483
+ });
484
+ ```
485
+
486
+ ### 认证配置
487
+
488
+ ```typescript
489
+ import { Session } from '@inrupt/solid-client-authn-node';
490
+
491
+ const session = new Session();
492
+ await session.login({
493
+ oidcIssuer: 'https://solidcommunity.net',
494
+ redirectUrl: 'http://localhost:3000/callback',
495
+ clientName: 'My Solid App'
496
+ });
497
+
498
+ const db = drizzle(session);
499
+ ```
500
+
501
+ ### `base` / `@id` / `id` 与 Pod 根的关系
502
+
503
+ - `podUrl`(Pod 根)由 WebID 推导,所有相对路径都基于它解析。
504
+ - `base` 是表的目标 Turtle 资源(必填),可为相对路径或绝对 URL。示例:`base: '/data/contacts.ttl'` → `https://pod.example/data/contacts.ttl`。
505
+ - 写入:
506
+ - 提供 `@id` 则直接作为 subject;
507
+ - 提供 `id`(或库自动生成)则 subject 形如 `base#<id>`(或按表的 subject 模板选择 `#`/`/`)。
508
+ - 查询:
509
+ - `where({ '@id': 'https://…#foo' })` 精确匹配该 subject;
510
+ - `where({ id: 'foo' })` 匹配 fragment 为 `foo` 且落在该表 `base` 下的 subject。
511
+ - `base` 同时决定存储地址(PUT/PATCH 目标)和 subject 生成;`podUrl` 只负责解析相对的 `base`。
512
+
513
+ ## 🏗️ 架构
514
+
515
+ Drizzle Solid基于以下组件构建:
516
+
517
+ - **PodDialect**: Solid Pod的Drizzle方言实现
518
+ - **SPARQL转换器**: 将Drizzle查询转换为SPARQL
519
+ - **Comunica执行器**: 执行SPARQL查询
520
+ - **类型系统**: 完整的TypeScript类型支持
521
+
522
+ ### Comunica CRUD 流程
523
+
524
+ - 查询会经过 AST → SPARQL 转换;若 Comunica 无法执行带过滤器/聚合的 `UPDATE`/`DELETE`,方言会先通过 `SELECT` 拉取命中的 subject,再以 PATCH 方式回写,实现与 SQL 行级操作一致的语义。
525
+ - `PodDialect` 会自动推导目标容器与 `.ttl` 资源文件路径,必要时发送 `HEAD`/`PUT` 请求确保容器和资源已经存在,再交由 Comunica 处理数据修改。
526
+ - 插入会预先读取现有资源以检测重复 subject,避免重复写入;删除或更新只针对匹配的 subject 生成最小化补丁。
527
+ - 对于 `JOIN`、`GROUP BY` 与聚合,选取的数据仍由 SPARQL 拉取,但结果会在内存中组合或聚合,直到 CSS 升级到支持完整 SPARQL 1.1 为止。
528
+
529
+ ## 🤝 贡献
530
+
531
+ 欢迎贡献代码!请阅读 [CONTRIBUTING.md](CONTRIBUTING.md) 了解测试要求、提交流程与验证内容。
532
+
533
+ 在提交 PR 之前,请同步运行完整的 CSS 集成测试(覆盖 CRUD、TypeIndex 等场景):
534
+
535
+ ```bash
536
+ SOLID_ENABLE_REAL_TESTS=true npx vitest run tests/integration/css --runInBand
537
+ ```
538
+
539
+ > `SOLID_ENABLE_REAL_TESTS=true` 会启用真实 Pod,`--runInBand` 保证所有 suite 共用一个会话并顺序执行,避免对 OIDC 服务造成并发压力。
540
+
541
+ ## 📄 许可证
542
+
543
+ MIT License - 查看[LICENSE](LICENSE)文件了解详情。
544
+
545
+ ## 🔗 相关链接
546
+
547
+ - [Drizzle ORM](https://orm.drizzle.team/)
548
+ - [Solid Project](https://solidproject.org/)
549
+ - [Community Solid Server](https://github.com/CommunitySolidServer/CommunitySolidServer)
550
+ - [Inrupt Solid Client](https://github.com/inrupt/solid-client-js)
551
+
552
+
553
+ ## 📞 支持
554
+
555
+ 如果遇到问题,可先查阅:
556
+
557
+ 1. `docs/quick-start-local.md` 获取本地 CSS 启动与疑难解答
558
+ 2. `examples/README.md` 了解脚本入口与运行方式
559
+ 3. [Issue 列表](https://github.com/undefinedsco/drizzle-solid/issues) 提交复现步骤与日志
560
+
561
+ ---
562
+
563
+ **开始您的 Solid 数据之旅!** 🚀
@@ -0,0 +1,19 @@
1
+ import { PodColumnBase } from './schema';
2
+ export type AggregateFunction = 'count' | 'sum' | 'avg' | 'min' | 'max';
3
+ export interface AggregateExpression {
4
+ kind: 'aggregate';
5
+ func: AggregateFunction;
6
+ column?: PodColumnBase | string;
7
+ distinct?: boolean;
8
+ }
9
+ interface AggregateOptions {
10
+ distinct?: boolean;
11
+ }
12
+ export declare function count(column?: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
13
+ export declare function sum(column: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
14
+ export declare function avg(column: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
15
+ export declare function min(column: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
16
+ export declare function max(column: PodColumnBase | string, options?: AggregateOptions): AggregateExpression;
17
+ export declare function isAggregateExpression(value: unknown): value is AggregateExpression;
18
+ export {};
19
+ //# sourceMappingURL=aggregates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregates.d.ts","sourceRoot":"","sources":["../../src/core/aggregates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA8BD,wBAAgB,KAAK,CACnB,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,EAC/B,OAAO,CAAC,EAAE,gBAAgB,GACzB,mBAAmB,CAErB;AAED,wBAAgB,GAAG,CACjB,MAAM,EAAE,aAAa,GAAG,MAAM,EAC9B,OAAO,CAAC,EAAE,gBAAgB,GACzB,mBAAmB,CAGrB;AAED,wBAAgB,GAAG,CACjB,MAAM,EAAE,aAAa,GAAG,MAAM,EAC9B,OAAO,CAAC,EAAE,gBAAgB,GACzB,mBAAmB,CAGrB;AAED,wBAAgB,GAAG,CACjB,MAAM,EAAE,aAAa,GAAG,MAAM,EAC9B,OAAO,CAAC,EAAE,gBAAgB,GACzB,mBAAmB,CAGrB;AAED,wBAAgB,GAAG,CACjB,MAAM,EAAE,aAAa,GAAG,MAAM,EAC9B,OAAO,CAAC,EAAE,gBAAgB,GACzB,mBAAmB,CAGrB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.count = count;
4
+ exports.sum = sum;
5
+ exports.avg = avg;
6
+ exports.min = min;
7
+ exports.max = max;
8
+ exports.isAggregateExpression = isAggregateExpression;
9
+ function normalizeOptions(options) {
10
+ return options ? { ...options } : {};
11
+ }
12
+ function toColumnName(column) {
13
+ return column;
14
+ }
15
+ function ensureColumn(func, column) {
16
+ if (!column) {
17
+ throw new Error(`${func.toUpperCase()} aggregate requires a column reference`);
18
+ }
19
+ }
20
+ function createAggregate(func, column, options) {
21
+ const normalized = normalizeOptions(options);
22
+ return {
23
+ kind: 'aggregate',
24
+ func,
25
+ column: toColumnName(column),
26
+ distinct: normalized.distinct
27
+ };
28
+ }
29
+ function count(column, options) {
30
+ return createAggregate('count', column, options);
31
+ }
32
+ function sum(column, options) {
33
+ ensureColumn('sum', column);
34
+ return createAggregate('sum', column, options);
35
+ }
36
+ function avg(column, options) {
37
+ ensureColumn('avg', column);
38
+ return createAggregate('avg', column, options);
39
+ }
40
+ function min(column, options) {
41
+ ensureColumn('min', column);
42
+ return createAggregate('min', column, options);
43
+ }
44
+ function max(column, options) {
45
+ ensureColumn('max', column);
46
+ return createAggregate('max', column, options);
47
+ }
48
+ function isAggregateExpression(value) {
49
+ return !!value && typeof value === 'object' && value.kind === 'aggregate';
50
+ }
51
+ //# sourceMappingURL=aggregates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregates.js","sourceRoot":"","sources":["../../src/core/aggregates.ts"],"names":[],"mappings":";;AA2CA,sBAKC;AAED,kBAMC;AAED,kBAMC;AAED,kBAMC;AAED,kBAMC;AAED,sDAEC;AArED,SAAS,gBAAgB,CAAC,OAA0B;IAClD,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,YAAY,CAAC,MAA+B;IACnD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,IAAyC,EAAE,MAA+B;IAC9F,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,wCAAwC,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,IAAuB,EACvB,MAA+B,EAC/B,OAA0B;IAE1B,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,IAAI;QACJ,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;QAC5B,QAAQ,EAAE,UAAU,CAAC,QAAQ;KAC9B,CAAC;AACJ,CAAC;AAED,SAAgB,KAAK,CACnB,MAA+B,EAC/B,OAA0B;IAE1B,OAAO,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,SAAgB,GAAG,CACjB,MAA8B,EAC9B,OAA0B;IAE1B,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,GAAG,CACjB,MAA8B,EAC9B,OAA0B;IAE1B,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,GAAG,CACjB,MAA8B,EAC9B,OAA0B;IAE1B,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,GAAG,CACjB,MAA8B,EAC9B,OAA0B;IAE1B,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5B,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,qBAAqB,CAAC,KAAc;IAClD,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAK,KAA6B,CAAC,IAAI,KAAK,WAAW,CAAC;AACrG,CAAC"}