@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
@@ -0,0 +1,1300 @@
1
+ "use strict";
2
+ var _a, _b;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.RDF_CLASSES = exports.RDF_PREDICATES = exports.PodTable = exports.SolidSchema = exports.PodArrayColumn = exports.PodUriColumn = exports.PodObjectColumn = exports.PodJsonColumn = exports.PodDateTimeColumn = exports.PodBooleanColumn = exports.PodIntegerColumn = exports.PodStringColumn = exports.PodColumnBase = exports.ColumnBuilder = void 0;
5
+ exports.solidSchema = solidSchema;
6
+ exports.isSolidSchema = isSolidSchema;
7
+ exports.boolean = boolean;
8
+ exports.timestamp = timestamp;
9
+ exports.json = json;
10
+ exports.object = object;
11
+ exports.uri = uri;
12
+ exports.iri = iri;
13
+ exports.podString = podString;
14
+ exports.podInteger = podInteger;
15
+ exports.podBoolean = podBoolean;
16
+ exports.podDateTime = podDateTime;
17
+ exports.podJson = podJson;
18
+ exports.podObject = podObject;
19
+ exports.id = id;
20
+ exports.string = string;
21
+ exports.int = int;
22
+ exports.integer = integer;
23
+ exports.date = date;
24
+ exports.datetime = datetime;
25
+ exports.text = text;
26
+ exports.varchar = varchar;
27
+ exports.char = char;
28
+ exports.bigint = bigint;
29
+ exports.smallint = smallint;
30
+ exports.tinyint = tinyint;
31
+ exports.mediumint = mediumint;
32
+ exports.serial = serial;
33
+ exports.real = real;
34
+ exports.decimal = decimal;
35
+ exports.numeric = numeric;
36
+ exports.float = float;
37
+ exports.double = double;
38
+ exports.jsonb = jsonb;
39
+ exports.podTable = podTable;
40
+ exports.relations = relations;
41
+ const drizzle_orm_1 = require("drizzle-orm");
42
+ // NanoID-like ID Generator (URL-friendly, cryptographically strong)
43
+ const urlAlphabet = 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';
44
+ const generateNanoId = (size = 21) => {
45
+ let id = '';
46
+ // Use crypto for randomness (browser & modern Node)
47
+ let bytes;
48
+ if (typeof globalThis.crypto !== 'undefined' && typeof globalThis.crypto.getRandomValues === 'function') {
49
+ bytes = globalThis.crypto.getRandomValues(new Uint8Array(size));
50
+ }
51
+ else {
52
+ // Fallback for older Node.js or environments without Web Crypto API (less secure)
53
+ // For Node.js, require('crypto') might be an option but we avoid dynamic require for bundling.
54
+ // This fallback is less secure but prevents crashes.
55
+ console.warn("Using Math.random fallback for NanoID generation. Consider polyfilling crypto or upgrading Node.js for production.");
56
+ bytes = new Uint8Array(size);
57
+ for (let i = 0; i < size; i++) {
58
+ bytes[i] = Math.floor(Math.random() * 256); // Fill with pseudo-random bytes
59
+ }
60
+ }
61
+ for (let i = 0; i < size; i++) {
62
+ id += urlAlphabet[bytes[i] % urlAlphabet.length];
63
+ }
64
+ return id;
65
+ };
66
+ const hasStringValue = (input) => typeof input === 'object' && input !== null && typeof input.value === 'string';
67
+ const hasTermValue = (input) => typeof input === 'object' && input !== null &&
68
+ typeof input.term === 'object' &&
69
+ input.term !== null &&
70
+ typeof input.term?.value === 'string';
71
+ const resolveTermIri = (input) => {
72
+ if (typeof input === 'string') {
73
+ return input;
74
+ }
75
+ if (hasStringValue(input)) {
76
+ return input.value;
77
+ }
78
+ if (hasTermValue(input)) {
79
+ return input.term.value;
80
+ }
81
+ throw new Error('Term must be a string or VocabTerm with a string value');
82
+ };
83
+ class ColumnBuilder {
84
+ constructor(name, dataType, options = {}, predicate, elementType) {
85
+ this.name = name;
86
+ this.dataType = dataType;
87
+ this.options = { ...options }; // 复制options避免引用问题
88
+ this._predicateUri = predicate;
89
+ this.elementType = elementType ?? null;
90
+ }
91
+ // 统一的值格式化方法 - Column 层负责类型转换
92
+ formatValue(value) {
93
+ if (value === null || value === undefined) {
94
+ throw new Error('Cannot format null or undefined value');
95
+ }
96
+ // 处理数组类型 - 使用多重属性
97
+ if (this.options.isArray) {
98
+ if (!Array.isArray(value)) {
99
+ throw new Error('Array column requires array value');
100
+ }
101
+ // 返回字符串数组,每个元素会作为单独的三元组
102
+ return value.map(item => this.formatSingleValue(item));
103
+ }
104
+ return this.formatSingleValue(value);
105
+ }
106
+ // 格式化单个值
107
+ formatSingleValue(value) {
108
+ const effectiveType = this.options.isArray && this.elementType ? this.elementType : this.dataType;
109
+ // 处理引用类型
110
+ if (this.options.referenceTarget && typeof value === 'string') {
111
+ return `<${value}>`;
112
+ }
113
+ // 根据数据类型格式化
114
+ switch (effectiveType) {
115
+ case 'string':
116
+ return `"${String(value).replace(/"/g, '\\"')}"`;
117
+ case 'integer':
118
+ return String(Number(value));
119
+ case 'boolean':
120
+ return `"${value}"^^<http://www.w3.org/2001/XMLSchema#boolean>`;
121
+ case 'datetime': {
122
+ const date = value instanceof Date ? value : new Date(value);
123
+ return `"${date.toISOString()}"^^<http://www.w3.org/2001/XMLSchema#dateTime>`;
124
+ }
125
+ case 'json':
126
+ case 'object': {
127
+ const jsonString = JSON.stringify(value);
128
+ return `"${jsonString.replace(/"/g, '\\"')}"^^<http://www.w3.org/2001/XMLSchema#json>`;
129
+ }
130
+ case 'uri':
131
+ // URI 类型直接作为 NamedNode,不需要引号
132
+ if (typeof value !== 'string' || (!value.startsWith('http://') && !value.startsWith('https://'))) {
133
+ throw new Error(`URI column requires valid HTTP(S) URL, got: ${value}`);
134
+ }
135
+ return `<${value}>`;
136
+ default:
137
+ return `"${String(value).replace(/"/g, '\\"')}"`;
138
+ }
139
+ }
140
+ // 统一的值解析方法 - Column 层负责类型解析
141
+ parseValue(rdfValue, datatypeIri) {
142
+ // 处理数组类型在 SPARQL 执行层会返回多个值的数组
143
+ if (this.options.isArray) {
144
+ // 这个方法主要用于解析单个 RDF 值,数组会在查询层处理
145
+ return this.parseSingleValue(rdfValue, datatypeIri);
146
+ }
147
+ return this.parseSingleValue(rdfValue, datatypeIri);
148
+ }
149
+ // 解析单个值
150
+ parseSingleValue(rdfValue, datatypeIri) {
151
+ if (!datatypeIri) {
152
+ return rdfValue;
153
+ }
154
+ // 根据数据类型和 RDF 类型解析
155
+ if (datatypeIri.includes('#integer') || datatypeIri.includes('#int')) {
156
+ return parseInt(rdfValue, 10);
157
+ }
158
+ else if (datatypeIri.includes('#decimal') || datatypeIri.includes('#double')) {
159
+ return parseFloat(rdfValue);
160
+ }
161
+ else if (datatypeIri.includes('#boolean')) {
162
+ return rdfValue === 'true';
163
+ }
164
+ else if (datatypeIri.includes('#dateTime')) {
165
+ return new Date(rdfValue);
166
+ }
167
+ else if (datatypeIri.includes('#json')) {
168
+ try {
169
+ return JSON.parse(rdfValue);
170
+ }
171
+ catch (error) {
172
+ console.warn('Failed to parse JSON value:', rdfValue);
173
+ return rdfValue;
174
+ }
175
+ }
176
+ // URI 类型检测 - 如果看起来像 URI 就直接返回
177
+ if (rdfValue.startsWith('http://') || rdfValue.startsWith('https://')) {
178
+ return rdfValue;
179
+ }
180
+ return rdfValue;
181
+ }
182
+ primaryKey() {
183
+ const predicate = this.name === 'id'
184
+ ? '@id'
185
+ : this.options.predicate;
186
+ this.options = {
187
+ ...this.options,
188
+ primaryKey: true,
189
+ required: true,
190
+ predicate
191
+ };
192
+ if (predicate) {
193
+ this._predicateUri = predicate;
194
+ }
195
+ return this;
196
+ }
197
+ notNull() {
198
+ this.options = { ...this.options, required: true, notNull: true };
199
+ return this;
200
+ }
201
+ predicate(uri) {
202
+ const resolved = resolveTermIri(uri);
203
+ this._predicateUri = resolved;
204
+ this.options = { ...this.options, predicate: resolved };
205
+ return this;
206
+ }
207
+ default(value) {
208
+ this.options = { ...this.options, defaultValue: value };
209
+ return this;
210
+ }
211
+ defaultNow() {
212
+ this.options = { ...this.options, defaultValue: () => new Date() };
213
+ return this;
214
+ }
215
+ inverse(value = true) {
216
+ this.options = { ...this.options, inverse: value };
217
+ return this;
218
+ }
219
+ /**
220
+ * 设置引用目标
221
+ *
222
+ * 支持三种输入格式:
223
+ * 1. class URI 字符串 (https://...) - 从 tableRegistry 按 class 查找
224
+ * 2. 表名字符串 (非 URL 格式) - 从 tableNameRegistry 按表名查找
225
+ * 3. PodTable 对象 - 直接使用,优先级最高
226
+ *
227
+ * @example
228
+ * // 使用 class URI(自动推导表)
229
+ * author: uri('author').reference('https://schema.org/Person')
230
+ *
231
+ * // 使用表名(解决同 class 多表歧义)
232
+ * author: uri('author').reference('users_public')
233
+ *
234
+ * // 使用表对象(类型安全,但注意循环依赖)
235
+ * author: uri('author').reference(usersTable)
236
+ */
237
+ reference(target) {
238
+ if (typeof target === 'string') {
239
+ // 字符串:根据格式判断是 class URI 还是表名
240
+ if (target.startsWith('http://') || target.startsWith('https://')) {
241
+ // class URI
242
+ this.options = { ...this.options, referenceTarget: target };
243
+ }
244
+ else {
245
+ // 表名
246
+ this.options = { ...this.options, referenceTableName: target };
247
+ }
248
+ }
249
+ else {
250
+ // PodTable 对象
251
+ this.options = { ...this.options, referenceTable: target };
252
+ }
253
+ return this;
254
+ }
255
+ // Array support - similar to Drizzle ORM PostgreSQL
256
+ array() {
257
+ const arrayBuilder = new ColumnBuilder(this.name, 'array', {
258
+ ...this.options,
259
+ baseType: this.dataType,
260
+ isArray: true
261
+ }, this._predicateUri, this.dataType);
262
+ return arrayBuilder;
263
+ }
264
+ // method to get predicate URI
265
+ getPredicateUri() {
266
+ return this._predicateUri;
267
+ }
268
+ }
269
+ exports.ColumnBuilder = ColumnBuilder;
270
+ // 列类型基类
271
+ class PodColumnBase {
272
+ constructor(name, dataType, options = {}, tableName) {
273
+ this.name = name;
274
+ this.dataType = dataType;
275
+ this.options = options;
276
+ this.tableName = tableName;
277
+ }
278
+ // 获取 RDF 谓词
279
+ getPredicate(tableNamespace) {
280
+ if (this.options.predicate) {
281
+ return this.options.predicate;
282
+ }
283
+ if (tableNamespace) {
284
+ return `${tableNamespace.uri}${this.name}`;
285
+ }
286
+ throw new Error(`Missing predicate for column "${this.name}"; please set namespace or predicate explicitly.`);
287
+ }
288
+ // 检查是否是引用类型
289
+ isReference() {
290
+ return !!(this.options.referenceTarget || this.options.referenceTableName || this.options.referenceTable);
291
+ }
292
+ // 获取引用目标 class URI
293
+ getReferenceTarget() {
294
+ return this.options.referenceTarget;
295
+ }
296
+ // 获取引用的目标表名
297
+ getReferenceTableName() {
298
+ return this.options.referenceTableName;
299
+ }
300
+ // 获取引用的目标表对象
301
+ getReferenceTable() {
302
+ return this.options.referenceTable;
303
+ }
304
+ // 链式方法 - 简化版本,直接返回 this
305
+ primaryKey() {
306
+ this.options.primaryKey = true;
307
+ this.options.required = true; // 主键自动为 required
308
+ if (!this.options.predicate && this.name === 'id') {
309
+ this.options.predicate = '@id';
310
+ }
311
+ return this;
312
+ }
313
+ notNull() {
314
+ this.options.required = true;
315
+ return this;
316
+ }
317
+ default(value) {
318
+ this.options.defaultValue = value;
319
+ return this;
320
+ }
321
+ predicate(uri) {
322
+ this.options.predicate = resolveTermIri(uri);
323
+ return this;
324
+ }
325
+ /**
326
+ * 设置引用目标
327
+ *
328
+ * 支持三种输入格式:
329
+ * 1. class URI 字符串 (https://...) - 从 tableRegistry 按 class 查找
330
+ * 2. 表名字符串 (非 URL 格式) - 从 tableNameRegistry 按表名查找
331
+ * 3. PodTable 对象 - 直接使用,优先级最高
332
+ */
333
+ reference(target) {
334
+ if (typeof target === 'string') {
335
+ if (target.startsWith('http://') || target.startsWith('https://')) {
336
+ this.options.referenceTarget = target;
337
+ }
338
+ else {
339
+ this.options.referenceTableName = target;
340
+ }
341
+ }
342
+ else {
343
+ this.options.referenceTable = target;
344
+ }
345
+ return this;
346
+ }
347
+ inverse(value = true) {
348
+ this.options.inverse = value;
349
+ return this;
350
+ }
351
+ isInverse() {
352
+ return this.options.inverse === true;
353
+ }
354
+ // 统一的值格式化方法 - Column 层负责类型转换
355
+ formatValue(value) {
356
+ if (value === null || value === undefined) {
357
+ throw new Error('Cannot format null or undefined value');
358
+ }
359
+ // 处理数组类型 - 使用多重属性
360
+ if (this.options.isArray) {
361
+ if (!Array.isArray(value)) {
362
+ throw new Error('Array column requires array value');
363
+ }
364
+ // 返回字符串数组,每个元素会作为单独的三元组
365
+ return value.map(item => this.formatSingleValue(item));
366
+ }
367
+ return this.formatSingleValue(value);
368
+ }
369
+ // 格式化单个值
370
+ formatSingleValue(value) {
371
+ // 处理引用类型
372
+ if (this.options.referenceTarget && typeof value === 'string') {
373
+ return `<${value}>`;
374
+ }
375
+ // 根据数据类型格式化
376
+ switch (this.dataType) {
377
+ case 'string':
378
+ return `"${String(value).replace(/"/g, '\\"')}"`;
379
+ case 'integer':
380
+ return `"${Number(value)}"^^<http://www.w3.org/2001/XMLSchema#integer>`;
381
+ case 'boolean':
382
+ return `"${value}"^^<http://www.w3.org/2001/XMLSchema#boolean>`;
383
+ case 'datetime': {
384
+ const date = value instanceof Date ? value : new Date(value);
385
+ return `"${date.toISOString()}"^^<http://www.w3.org/2001/XMLSchema#dateTime>`;
386
+ }
387
+ case 'json':
388
+ case 'object': {
389
+ const jsonString = JSON.stringify(value);
390
+ return `"${jsonString.replace(/"/g, '\\"')}"^^<http://www.w3.org/2001/XMLSchema#json>`;
391
+ }
392
+ case 'uri':
393
+ // URI 类型直接作为 NamedNode,不需要引号
394
+ // 简单的 URI 校验:必须包含 scheme (即包含冒号)
395
+ // 这可以排除像 "xpod_123" 这样的普通字符串,同时支持 http, https, urn, mailto 等
396
+ if (typeof value !== 'string' || !value.includes(':')) {
397
+ throw new Error(`URI column requires valid IRI (must contain scheme), got: ${value}`);
398
+ }
399
+ return `<${value}>`;
400
+ default:
401
+ return `"${String(value).replace(/"/g, '\\"')}"`;
402
+ }
403
+ }
404
+ }
405
+ exports.PodColumnBase = PodColumnBase;
406
+ _a = drizzle_orm_1.entityKind;
407
+ PodColumnBase[_a] = 'PodColumn';
408
+ // 具体的列类型
409
+ class PodStringColumn extends PodColumnBase {
410
+ constructor(name, options = {}) {
411
+ super(name, 'string', options);
412
+ }
413
+ }
414
+ exports.PodStringColumn = PodStringColumn;
415
+ class PodIntegerColumn extends PodColumnBase {
416
+ constructor(name, options = {}) {
417
+ super(name, 'integer', options);
418
+ }
419
+ }
420
+ exports.PodIntegerColumn = PodIntegerColumn;
421
+ class PodBooleanColumn extends PodColumnBase {
422
+ constructor(name, options = {}) {
423
+ super(name, 'boolean', options);
424
+ }
425
+ }
426
+ exports.PodBooleanColumn = PodBooleanColumn;
427
+ class PodDateTimeColumn extends PodColumnBase {
428
+ constructor(name, options = {}) {
429
+ super(name, 'datetime', options);
430
+ }
431
+ }
432
+ exports.PodDateTimeColumn = PodDateTimeColumn;
433
+ class PodJsonColumn extends PodColumnBase {
434
+ constructor(name, options = {}) {
435
+ super(name, 'json', options);
436
+ }
437
+ }
438
+ exports.PodJsonColumn = PodJsonColumn;
439
+ class PodObjectColumn extends PodColumnBase {
440
+ constructor(name, options = {}) {
441
+ super(name, 'object', options);
442
+ }
443
+ }
444
+ exports.PodObjectColumn = PodObjectColumn;
445
+ class PodUriColumn extends PodColumnBase {
446
+ constructor(name, options = {}) {
447
+ super(name, 'uri', options);
448
+ }
449
+ }
450
+ exports.PodUriColumn = PodUriColumn;
451
+ class PodArrayColumn extends PodColumnBase {
452
+ constructor(name, elementType, options = {}) {
453
+ super(name, 'array', options);
454
+ this.elementType = elementType;
455
+ }
456
+ }
457
+ exports.PodArrayColumn = PodArrayColumn;
458
+ // ============ Schema 继承工具函数 ============
459
+ /**
460
+ * 验证子类列不能修改父类的 predicate
461
+ * @internal
462
+ */
463
+ function validateColumnOverride(childColumn, parentColumn, columnName, childSchemaName, parentSchemaName) {
464
+ const childPredicate = childColumn.getPredicateUri?.() ?? childColumn.options?.predicate;
465
+ const parentPredicate = parentColumn.options?.predicate;
466
+ if (childPredicate && parentPredicate && childPredicate !== parentPredicate) {
467
+ throw new Error(`Schema 继承错误: 不能修改 "${columnName}" 列的 predicate。` +
468
+ `父 schema "${parentSchemaName}" 定义为 "${parentPredicate}",` +
469
+ `子 schema "${childSchemaName}" 尝试改为 "${childPredicate}"。` +
470
+ `子类只能添加约束(notNull, default),不能更改 predicate。`);
471
+ }
472
+ }
473
+ /**
474
+ * 合并父子 schema 的列定义
475
+ * @internal
476
+ */
477
+ function mergeSchemaColumns(parentSchema, childColumns, childSchemaName) {
478
+ const mergedColumns = {};
479
+ // 先复制父类所有列
480
+ for (const [name, col] of Object.entries(parentSchema.columns)) {
481
+ mergedColumns[name] = col;
482
+ }
483
+ // 处理子类列
484
+ for (const [name, childCol] of Object.entries(childColumns)) {
485
+ const parentCol = parentSchema.columns[name];
486
+ if (parentCol) {
487
+ // 覆盖父类列 - 验证 predicate 不变
488
+ if (!(childCol instanceof PodColumnBase)) {
489
+ validateColumnOverride(childCol, parentCol, name, childSchemaName, parentSchema.name);
490
+ // 继承父类的 predicate(如果子类没有指定)
491
+ const builder = childCol;
492
+ if (!builder.getPredicateUri?.() && !builder.options?.predicate) {
493
+ builder.options = { ...builder.options, predicate: parentCol.options?.predicate };
494
+ }
495
+ }
496
+ }
497
+ mergedColumns[name] = childCol;
498
+ }
499
+ return mergedColumns;
500
+ }
501
+ /**
502
+ * SolidSchema - 独立的 schema 定义类
503
+ *
504
+ * 只包含表的结构信息(列、类型、谓词映射),不包含 base。
505
+ * 可以通过 .at(base) 方法绑定到具体位置,生成 PodTable。
506
+ *
507
+ * @example
508
+ * // 定义 schema(不绑定位置)
509
+ * const profileSchema = solidSchema('profile', {
510
+ * name: string('name').predicate(FOAF.name),
511
+ * avatar: uri('avatar').predicate(FOAF.img),
512
+ * }, {
513
+ * type: FOAF.Person,
514
+ * });
515
+ *
516
+ * // 绑定到具体位置
517
+ * const myProfile = profileSchema.at('/profile/card.ttl');
518
+ * const aliceProfile = profileSchema.at('https://alice.pod/profile/card.ttl');
519
+ */
520
+ class SolidSchema {
521
+ constructor(name, columns, options) {
522
+ this.name = name;
523
+ this.columns = columns;
524
+ this.options = options;
525
+ this.$kind = 'SolidSchema';
526
+ this.namespace = options.namespace;
527
+ this.subjectTemplate = options.subjectTemplate;
528
+ this.subClassOf = options.subClassOf
529
+ ? (Array.isArray(options.subClassOf)
530
+ ? options.subClassOf.map(resolveTermIri)
531
+ : [resolveTermIri(options.subClassOf)])
532
+ : undefined;
533
+ }
534
+ /**
535
+ * 绑定到具体位置,生成 PodTable
536
+ *
537
+ * @param base 资源路径(相对路径或绝对 IRI)
538
+ * @example
539
+ * const myProfile = profileSchema.at('/profile/card.ttl');
540
+ * const aliceProfile = profileSchema.at('https://alice.pod/profile/card.ttl');
541
+ */
542
+ at(base) {
543
+ return new PodTable(this.name, this.columns, {
544
+ ...this.options,
545
+ base,
546
+ });
547
+ }
548
+ /**
549
+ * 创建继承当前 schema 的子 schema
550
+ *
551
+ * 子类会继承父类的所有列,并可以:
552
+ * - 添加新的属性
553
+ * - 给继承的属性添加约束(如 notNull、default)
554
+ * - 但不能修改继承属性的 predicate
555
+ *
556
+ * @param name - 子 schema 名称
557
+ * @param columns - 子类新增或覆盖的列
558
+ * @param options - 子 schema 选项(必须提供 type)
559
+ * @returns 包含所有继承列和新列的子 schema
560
+ *
561
+ * @example
562
+ * const secretSchema = solidSchema('secret', {
563
+ * id: id(),
564
+ * name: string('name').predicate(VOCAB.name),
565
+ * createdAt: datetime('createdAt').predicate(VOCAB.createdAt),
566
+ * }, {
567
+ * type: 'https://vocab.example/Secret',
568
+ * });
569
+ *
570
+ * // 创建子 schema
571
+ * const apiKeySchema = secretSchema.extend('apiKey', {
572
+ * // 新增属性
573
+ * apiKey: string('apiKey').notNull().predicate(VOCAB.apiKey),
574
+ * // 增强父类属性(添加约束,但不能改 predicate)
575
+ * name: string('name').notNull(),
576
+ * }, {
577
+ * type: 'https://vocab.example/APIKey',
578
+ * });
579
+ *
580
+ * // apiKeySchema 包含: id, name(notNull), createdAt, apiKey
581
+ * // apiKeySchema.subClassOf 自动包含 'https://vocab.example/Secret'
582
+ */
583
+ extend(name, columns, options) {
584
+ // 合并列
585
+ const mergedColumnDefs = mergeSchemaColumns(this, columns, name);
586
+ // 处理 subClassOf - 自动包含父类 type
587
+ const subClassOf = [this.type];
588
+ if (this.subClassOf) {
589
+ subClassOf.push(...this.subClassOf);
590
+ }
591
+ // 创建子 schema(使用 solidSchema 函数处理列转换)
592
+ return solidSchema(name, mergedColumnDefs, {
593
+ ...options,
594
+ subClassOf,
595
+ });
596
+ }
597
+ /**
598
+ * 获取 RDF 类型
599
+ */
600
+ get type() {
601
+ return resolveTermIri(this.options.type);
602
+ }
603
+ }
604
+ exports.SolidSchema = SolidSchema;
605
+ /**
606
+ * 创建 SolidSchema(不绑定位置的 schema 定义)
607
+ *
608
+ * @example
609
+ * const profileSchema = solidSchema('profile', {
610
+ * name: string('name').predicate(FOAF.name),
611
+ * }, {
612
+ * type: FOAF.Person,
613
+ * });
614
+ *
615
+ * // 使用时绑定位置
616
+ * const myProfile = profileSchema.at('/profile/card.ttl');
617
+ */
618
+ function solidSchema(name, columns, options) {
619
+ // 复用 podTable 的列处理逻辑
620
+ const processedColumns = {};
621
+ for (const [key, value] of Object.entries(columns)) {
622
+ if (value instanceof PodColumnBase) {
623
+ processedColumns[key] = value;
624
+ continue;
625
+ }
626
+ let column;
627
+ switch (value.dataType) {
628
+ case 'integer':
629
+ column = new PodIntegerColumn(value.name, value.options);
630
+ break;
631
+ case 'datetime':
632
+ column = new PodDateTimeColumn(value.name, value.options);
633
+ break;
634
+ case 'boolean':
635
+ column = new PodBooleanColumn(value.name, value.options);
636
+ break;
637
+ case 'json':
638
+ column = new PodJsonColumn(value.name, value.options);
639
+ break;
640
+ case 'object':
641
+ column = new PodObjectColumn(value.name, value.options);
642
+ break;
643
+ case 'array': {
644
+ const elementType = (value.elementType ?? value.options.baseType ?? 'string');
645
+ column = new PodArrayColumn(value.name, elementType, value.options);
646
+ break;
647
+ }
648
+ case 'uri':
649
+ column = new PodUriColumn(value.name, value.options);
650
+ break;
651
+ case 'string':
652
+ default:
653
+ column = new PodStringColumn(value.name, value.options);
654
+ break;
655
+ }
656
+ const predicateUri = value.getPredicateUri();
657
+ if (predicateUri) {
658
+ column.predicate(predicateUri);
659
+ }
660
+ processedColumns[key] = column;
661
+ }
662
+ return new SolidSchema(name, processedColumns, options);
663
+ }
664
+ /**
665
+ * 检查目标是否为 SolidSchema
666
+ */
667
+ function isSolidSchema(target) {
668
+ return target instanceof SolidSchema || target?.$kind === 'SolidSchema';
669
+ }
670
+ // 表定义类 - 支持泛型以进行类型推断
671
+ class PodTable {
672
+ constructor(name, columns, options) {
673
+ this.initialized = false;
674
+ const typeInput = options.type;
675
+ if (!typeInput) {
676
+ throw new Error('podTable requires a type (RDF class) via options.type');
677
+ }
678
+ const typeIndexOption = options.typeIndex;
679
+ const validTypeIndex = typeIndexOption === 'private' || typeIndexOption === 'public';
680
+ if (typeIndexOption && !validTypeIndex) {
681
+ console.warn(`Invalid typeIndex value "${typeIndexOption}", disabling TypeIndex registration.`);
682
+ }
683
+ const baseConfig = this.resolveBase(options.base, name);
684
+ this.resourcePath = baseConfig.resourcePath;
685
+ this.containerPath = baseConfig.containerPath;
686
+ const subjectTemplateInfo = this.resolveSubjectTemplate(options.subjectTemplate, baseConfig.resourcePath, baseConfig.containerPath, name);
687
+ this.subjectTemplate = subjectTemplateInfo.template;
688
+ this.hasCustomSubjectTemplate = subjectTemplateInfo.isCustom;
689
+ this.resourceMode = options.resourceMode ?? (options.sparqlEndpoint ? 'sparql' : undefined);
690
+ this.sparqlEndpoint = options.sparqlEndpoint;
691
+ // TypeIndex 注册默认取决于是否提供 typeIndex,且 autoRegister 未显式禁用
692
+ this.registerTypeIndexEnabled = validTypeIndex && options.autoRegister !== false;
693
+ this.config = {
694
+ name,
695
+ base: baseConfig.resourcePath,
696
+ type: resolveTermIri(typeInput),
697
+ namespace: options.namespace,
698
+ typeIndex: validTypeIndex ? typeIndexOption : undefined,
699
+ saiRegistryPath: options.saiRegistryPath,
700
+ subjectTemplate: this.subjectTemplate,
701
+ autoRegister: options.autoRegister,
702
+ containerPath: baseConfig.containerPath,
703
+ hooks: options.hooks,
704
+ };
705
+ this.parentClasses = this.normalizeParents(options.subClassOf ?? []);
706
+ if (this.parentClasses.length > 0) {
707
+ this.config.subClassOf = [...this.parentClasses];
708
+ }
709
+ this.columns = columns;
710
+ // 将列直接添加到表对象上,以便直接访问
711
+ Object.assign(this, columns);
712
+ // 记录列所属的表,便于 JOIN/分组等语义解析,并检查主键数量
713
+ let primaryKeyCount = 0;
714
+ for (const column of Object.values(columns)) {
715
+ if (column.options.primaryKey) {
716
+ primaryKeyCount++;
717
+ }
718
+ column.table = this;
719
+ column.tableName = name;
720
+ // 检查所有列是否都有有效的 predicate 或表级 namespace
721
+ if (!column.options.predicate && // 没有明确的 predicate
722
+ !(column._virtualId) && // 不是虚拟 ID 列 (@id)
723
+ !options.namespace // 表没有定义 namespace
724
+ ) {
725
+ throw new Error(`Column "${column.name}" in table "${name}" is missing a predicate. Please set a 'predicate' option for the column or a 'namespace' for the table.`);
726
+ }
727
+ }
728
+ if (primaryKeyCount !== 1) {
729
+ throw new Error(`PodTable "${name}" must have exactly one primary key column. Found ${primaryKeyCount}.`);
730
+ }
731
+ // 初始化 drizzle-zod 兼容的属性
732
+ this.$inferSelect = {};
733
+ this.$inferInsert = {};
734
+ this.$inferUpdate = {};
735
+ // 初始化 _ 属性
736
+ this._ = {
737
+ brand: 'Table',
738
+ config: this.config,
739
+ name,
740
+ schema: undefined,
741
+ columns,
742
+ inferSelect: {},
743
+ inferInsert: {},
744
+ inferUpdate: {}
745
+ };
746
+ this.mapping = this.buildTableMapping();
747
+ }
748
+ // 获取容器路径
749
+ getContainerPath() {
750
+ return this.containerPath;
751
+ }
752
+ // 获取 RDF 类
753
+ getType() {
754
+ return this.config.type;
755
+ }
756
+ /**
757
+ * @deprecated 使用 getType()
758
+ */
759
+ getRdfClass() {
760
+ return this.getType();
761
+ }
762
+ // 获取命名空间
763
+ getNamespace() {
764
+ return this.config.namespace;
765
+ }
766
+ getSubjectTemplate() {
767
+ return this.subjectTemplate;
768
+ }
769
+ /**
770
+ * 检查是否有用户提供的 subjectTemplate
771
+ */
772
+ hasCustomTemplate() {
773
+ return this.hasCustomSubjectTemplate;
774
+ }
775
+ getSubClassOf() {
776
+ return [...this.parentClasses];
777
+ }
778
+ getMapping() {
779
+ return this.mapping;
780
+ }
781
+ /**
782
+ * 获取表的 schema 定义(用于联邦查询)
783
+ *
784
+ * 返回只包含结构信息的 SolidSchema,不包含 base
785
+ * 用于 relations() 中的联邦查询,数据位置通过 discover 动态发现
786
+ *
787
+ * @example
788
+ * const friendsRelations = relations(friends, ({ many }) => ({
789
+ * posts: many(posts.$schema, {
790
+ * discover: (friend) => friend.webId,
791
+ * }),
792
+ * }));
793
+ */
794
+ get $schema() {
795
+ return new SolidSchema(this.config.name, this.columns, {
796
+ type: this.config.type,
797
+ namespace: this.config.namespace,
798
+ subjectTemplate: this.subjectTemplate,
799
+ subClassOf: this.parentClasses.length > 0 ? [...this.parentClasses] : undefined,
800
+ });
801
+ }
802
+ /**
803
+ * Generate a relative URI for a record by ID
804
+ *
805
+ * This returns a Pod-relative URI that drizzle-solid will automatically
806
+ * resolve to an absolute URI using the Pod URL at runtime.
807
+ *
808
+ * @param id - The record ID (typically a nanoid or user-defined identifier)
809
+ * @returns Relative URI like '/.data/agents/xK9mN2.ttl' or '/.data/tags.ttl#abc123'
810
+ *
811
+ * @example
812
+ * // Generate URI for a record by its ID
813
+ * const agentUri = agentTable.resolveUri('xK9mN2pL');
814
+ * // => '/.data/agents/xK9mN2pL.ttl'
815
+ *
816
+ * // Prefer using @id from query results when available
817
+ * const msg = { maker: existingAgent['@id'], content: 'Hello!' }
818
+ */
819
+ resolveUri(id) {
820
+ // Apply subjectTemplate
821
+ const template = this.subjectTemplate;
822
+ const resolved = template.replace(/\{id\}/g, id);
823
+ // Build relative URI based on mode
824
+ if (resolved.startsWith('#')) {
825
+ // Fragment mode: /.data/tags.ttl#id
826
+ const resourcePath = this.resourcePath;
827
+ return `${resourcePath}${resolved}`;
828
+ }
829
+ // Document mode: /.data/agents/openrouter.ttl
830
+ const normalizedContainer = this.containerPath.endsWith('/')
831
+ ? this.containerPath
832
+ : `${this.containerPath}/`;
833
+ return `${normalizedContainer}${resolved}`;
834
+ }
835
+ resolveBase(base, tableName) {
836
+ if (!base || base.trim().length === 0) {
837
+ throw new Error(`podTable '${tableName}' requires a 'base' option.\n` +
838
+ `Examples:\n` +
839
+ ` base: '/data/${tableName}.ttl' // relative path for your Pod\n` +
840
+ ` base: '/data/${tableName}/' // container path\n` +
841
+ ` base: 'https://other.pod/data/${tableName}.ttl' // absolute IRI for other Pods`);
842
+ }
843
+ const normalizedInput = this.normalizeBaseInput(base);
844
+ const normalizedPath = this.normalizeResourcePath(normalizedInput);
845
+ if (normalizedPath.endsWith('/')) {
846
+ // Container/directory path - for Document mode
847
+ const containerPath = this.ensureTrailingSlash(normalizedPath);
848
+ return {
849
+ resourcePath: containerPath,
850
+ containerPath
851
+ };
852
+ }
853
+ // File path - for Fragment mode
854
+ const containerPath = this.ensureTrailingSlash(this.deriveContainerPath(normalizedPath));
855
+ return {
856
+ resourcePath: normalizedPath,
857
+ containerPath,
858
+ };
859
+ }
860
+ normalizeBaseInput(rawBase) {
861
+ const trimmed = rawBase.trim();
862
+ if (trimmed.length === 0) {
863
+ throw new Error('podTable requires a non-empty base');
864
+ }
865
+ const schemeMatch = trimmed.match(/^([a-zA-Z][\w+.-]*):\/\/(.*)$/);
866
+ if (schemeMatch) {
867
+ const [, scheme, remainder] = schemeMatch;
868
+ const normalizedScheme = scheme.toLowerCase();
869
+ const remainderTrimmed = remainder.trim();
870
+ if (normalizedScheme === 'http' || normalizedScheme === 'https') {
871
+ const rest = remainderTrimmed.length === 0 ? '' : remainderTrimmed;
872
+ return `${normalizedScheme}://${rest}`;
873
+ }
874
+ const normalizedRemainder = remainderTrimmed.length === 0 ? '/' : remainderTrimmed;
875
+ return normalizedRemainder.startsWith('/') ? normalizedRemainder : `/${normalizedRemainder}`;
876
+ }
877
+ return trimmed;
878
+ }
879
+ normalizeResourcePath(resourcePath) {
880
+ if (typeof resourcePath !== 'string' || resourcePath.trim().length === 0) {
881
+ throw new Error('podTable requires a non-empty base');
882
+ }
883
+ if (/^[a-zA-Z][\w+.-]*:\/\//.test(resourcePath)) {
884
+ return resourcePath;
885
+ }
886
+ const trimmed = resourcePath.trim().replace(/^(\.\/)+/, '');
887
+ const normalized = trimmed.replace(/\/+/g, '/');
888
+ if (normalized.startsWith('/')) {
889
+ return normalized;
890
+ }
891
+ return `/${normalized}`;
892
+ }
893
+ deriveContainerPath(resourcePath) {
894
+ const withoutTrailingSlash = resourcePath.endsWith('/')
895
+ ? resourcePath.slice(0, -1)
896
+ : resourcePath;
897
+ const lastSlash = withoutTrailingSlash.lastIndexOf('/');
898
+ if (lastSlash === -1) {
899
+ return '/';
900
+ }
901
+ return withoutTrailingSlash.slice(0, lastSlash + 1);
902
+ }
903
+ ensureTrailingSlash(path) {
904
+ return path.endsWith('/') ? path : `${path}/`;
905
+ }
906
+ getResourcePath() {
907
+ return this.resourcePath;
908
+ }
909
+ getResourceMode() {
910
+ return this.resourceMode;
911
+ }
912
+ getSparqlEndpoint() {
913
+ return this.sparqlEndpoint;
914
+ }
915
+ shouldRegisterTypeIndex() {
916
+ return this.registerTypeIndexEnabled;
917
+ }
918
+ async init(initializer) {
919
+ await initializer.registerTable(this);
920
+ }
921
+ isInitialized() {
922
+ return this.initialized;
923
+ }
924
+ markInitialized(initialized = true) {
925
+ this.initialized = initialized;
926
+ }
927
+ /**
928
+ * 动态更新 base(TypeIndex 自动发现等场景)
929
+ */
930
+ setBase(base) {
931
+ const resolved = this.resolveBase(base, this.config.name);
932
+ this.resourcePath = resolved.resourcePath;
933
+ this.containerPath = resolved.containerPath;
934
+ this.config.base = resolved.resourcePath;
935
+ this.config.containerPath = resolved.containerPath; // Sync config.containerPath
936
+ if (this._?.config) {
937
+ this._.config.base = this.config.base;
938
+ this._.config.containerPath = this.config.containerPath;
939
+ }
940
+ if (!this.hasCustomSubjectTemplate) {
941
+ this.subjectTemplate = this.buildDefaultSubjectTemplate(this.config.base, this.config.containerPath, this.config.name);
942
+ this.config.subjectTemplate = this.subjectTemplate;
943
+ if (this._?.config) {
944
+ this._.config.subjectTemplate = this.subjectTemplate;
945
+ }
946
+ }
947
+ this.mapping = this.buildTableMapping();
948
+ }
949
+ /**
950
+ * 动态更新 subjectTemplate(SAI DataRegistration 自动发现等场景)
951
+ */
952
+ setSubjectTemplate(template) {
953
+ this.subjectTemplate = template;
954
+ this.hasCustomSubjectTemplate = true;
955
+ this.config.subjectTemplate = template;
956
+ if (this._?.config) {
957
+ this._.config.subjectTemplate = template;
958
+ }
959
+ this.mapping = this.buildTableMapping();
960
+ }
961
+ /**
962
+ * 动态设置 SPARQL endpoint(自动发现等场景)
963
+ */
964
+ setSparqlEndpoint(endpoint) {
965
+ this.sparqlEndpoint = endpoint;
966
+ if (!this.resourceMode) {
967
+ this.resourceMode = 'sparql';
968
+ }
969
+ }
970
+ // 获取所有列
971
+ getColumns() {
972
+ return this.columns;
973
+ }
974
+ getColumn(name) {
975
+ return this.columns[name];
976
+ }
977
+ // 检查列是否存在
978
+ hasColumn(name) {
979
+ return name in this.columns;
980
+ }
981
+ resolveSubjectTemplate(template, resourcePath, containerPath, tableName) {
982
+ if (template && template.trim().length > 0) {
983
+ return { template: template.trim(), isCustom: true };
984
+ }
985
+ return {
986
+ template: this.buildDefaultSubjectTemplate(resourcePath, containerPath, tableName),
987
+ isCustom: false
988
+ };
989
+ }
990
+ buildDefaultSubjectTemplate(resourcePath, containerPath, tableName = 'resource') {
991
+ const normalizedContainer = this.ensureTrailingSlash(containerPath || '');
992
+ // If the table base is a container (document mode), containerPath should end with `${tableName}/`.
993
+ // Otherwise, assume fragment mode.
994
+ const isDocumentMode = normalizedContainer.endsWith(`${tableName}/`);
995
+ if (isDocumentMode) {
996
+ return '{id}.ttl';
997
+ }
998
+ // Fragment mode: all rows in one resource, distinguished by fragment.
999
+ // resourcePath is expected to be the concrete document path (e.g. `/data/tags.ttl`).
1000
+ if (resourcePath && resourcePath.includes('{')) {
1001
+ return resourcePath;
1002
+ }
1003
+ return '#{id}';
1004
+ }
1005
+ buildTableMapping() {
1006
+ const mappedColumns = {};
1007
+ for (const column of Object.values(this.columns)) {
1008
+ mappedColumns[column.name] = this.buildColumnMapping(column);
1009
+ }
1010
+ return {
1011
+ name: this.config.name,
1012
+ type: this.config.type,
1013
+ subjectTemplate: this.subjectTemplate,
1014
+ namespace: this.config.namespace,
1015
+ subClassOf: this.parentClasses.length > 0 ? [...this.parentClasses] : undefined,
1016
+ columns: mappedColumns,
1017
+ relations: this.relations
1018
+ };
1019
+ }
1020
+ buildColumnMapping(column) {
1021
+ const predicate = column._virtualId
1022
+ ? '@id'
1023
+ : column.getPredicate(this.config.namespace);
1024
+ return {
1025
+ column: column.name,
1026
+ predicate,
1027
+ kind: column.isReference() ? 'object' : 'datatype',
1028
+ datatype: this.inferColumnDatatype(column),
1029
+ referenceTarget: column.getReferenceTarget(),
1030
+ isArray: column.options.isArray ?? false,
1031
+ inverse: column.isInverse()
1032
+ };
1033
+ }
1034
+ inferColumnDatatype(column) {
1035
+ switch (column.dataType) {
1036
+ case 'string':
1037
+ return 'http://www.w3.org/2001/XMLSchema#string';
1038
+ case 'integer':
1039
+ return 'http://www.w3.org/2001/XMLSchema#integer';
1040
+ case 'boolean':
1041
+ return 'http://www.w3.org/2001/XMLSchema#boolean';
1042
+ case 'datetime':
1043
+ return 'http://www.w3.org/2001/XMLSchema#dateTime';
1044
+ case 'json':
1045
+ case 'object':
1046
+ return 'http://www.w3.org/2001/XMLSchema#json';
1047
+ case 'uri':
1048
+ return undefined;
1049
+ default:
1050
+ return undefined;
1051
+ }
1052
+ }
1053
+ normalizeParents(value) {
1054
+ if (!value) {
1055
+ return [];
1056
+ }
1057
+ const entries = Array.isArray(value) ? value : [value];
1058
+ const normalized = entries
1059
+ .map((entry) => resolveTermIri(entry))
1060
+ .filter((entry) => entry && entry.length > 0);
1061
+ return Array.from(new Set(normalized));
1062
+ }
1063
+ }
1064
+ exports.PodTable = PodTable;
1065
+ _b = drizzle_orm_1.entityKind;
1066
+ PodTable[_b] = 'PodTable';
1067
+ function boolean(name, options = {}) {
1068
+ return new ColumnBuilder(name, 'boolean', options);
1069
+ }
1070
+ function timestamp(name, options = {}) {
1071
+ return new ColumnBuilder(name, 'datetime', options);
1072
+ }
1073
+ function json(name, options = {}) {
1074
+ return new ColumnBuilder(name, 'json', options);
1075
+ }
1076
+ function object(name, options = {}) {
1077
+ return new ColumnBuilder(name, 'object', options);
1078
+ }
1079
+ function uri(name, options = {}) {
1080
+ return new ColumnBuilder(name, 'uri', options);
1081
+ }
1082
+ // IRI 别名,方便习惯使用 IRI 术语的场景
1083
+ function iri(name, options = {}) {
1084
+ return uri(name, options);
1085
+ }
1086
+ // Pod 专用的列定义函数(保留向后兼容)
1087
+ function podString(name, options = {}) {
1088
+ return new PodStringColumn(name, options);
1089
+ }
1090
+ function podInteger(name, options = {}) {
1091
+ return new PodIntegerColumn(name, options);
1092
+ }
1093
+ function podBoolean(name, options = {}) {
1094
+ return new PodBooleanColumn(name, options);
1095
+ }
1096
+ function podDateTime(name, options = {}) {
1097
+ return new PodDateTimeColumn(name, options);
1098
+ }
1099
+ function podJson(name, options = {}) {
1100
+ return new PodJsonColumn(name, options);
1101
+ }
1102
+ function podObject(name, options = {}) {
1103
+ return new PodObjectColumn(name, options);
1104
+ }
1105
+ // 专用 ID 列,自动 predicate 为 @id,便于构造 subject IRI
1106
+ // 特殊 ID 列:不单独存储谓词,只用于生成/解析 subject/@id(最多一个)
1107
+ function id(name = 'id', options = {}) {
1108
+ const col = new PodStringColumn(name, {
1109
+ ...options,
1110
+ predicate: '@id',
1111
+ primaryKey: true,
1112
+ required: true,
1113
+ defaultValue: options.defaultValue ?? generateNanoId // Default to NanoID generation
1114
+ });
1115
+ // 标记为"虚拟 ID 列",生成/解析 subject 时使用,但不额外输出三元组
1116
+ col._virtualId = true;
1117
+ return col;
1118
+ }
1119
+ // 创建类型安全的builder函数
1120
+ function string(name, options = {}) {
1121
+ return new ColumnBuilder(name, 'string', options);
1122
+ }
1123
+ function int(name, options = {}) {
1124
+ return new ColumnBuilder(name, 'integer', options);
1125
+ }
1126
+ function integer(name, options = {}) {
1127
+ return new ColumnBuilder(name, 'integer', options);
1128
+ }
1129
+ function date(name, options = {}) {
1130
+ return new ColumnBuilder(name, 'datetime', options);
1131
+ }
1132
+ // 时间相关列类型别名
1133
+ function datetime(name, options = {}) {
1134
+ return new ColumnBuilder(name, 'datetime', options);
1135
+ }
1136
+ // 文本相关列类型别名
1137
+ function text(name, options = {}) {
1138
+ return new ColumnBuilder(name, 'string', options);
1139
+ }
1140
+ function varchar(name, options = {}) {
1141
+ return new ColumnBuilder(name, 'string', options);
1142
+ }
1143
+ function char(name, options = {}) {
1144
+ return new ColumnBuilder(name, 'string', options);
1145
+ }
1146
+ // 数字相关列类型别名
1147
+ function bigint(name, options = {}) {
1148
+ return new ColumnBuilder(name, 'integer', options);
1149
+ }
1150
+ function smallint(name, options = {}) {
1151
+ return new ColumnBuilder(name, 'integer', options);
1152
+ }
1153
+ function tinyint(name, options = {}) {
1154
+ return new ColumnBuilder(name, 'integer', options);
1155
+ }
1156
+ function mediumint(name, options = {}) {
1157
+ return new ColumnBuilder(name, 'integer', options);
1158
+ }
1159
+ function serial(name, options = {}) {
1160
+ return new ColumnBuilder(name, 'integer', options);
1161
+ }
1162
+ // 浮点数相关列类型别名
1163
+ function real(name, options = {}) {
1164
+ return new ColumnBuilder(name, 'integer', options);
1165
+ }
1166
+ function decimal(name, options = {}) {
1167
+ return new ColumnBuilder(name, 'integer', options);
1168
+ }
1169
+ function numeric(name, options = {}) {
1170
+ return new ColumnBuilder(name, 'integer', options);
1171
+ }
1172
+ function float(name, options = {}) {
1173
+ return new ColumnBuilder(name, 'integer', options);
1174
+ }
1175
+ function double(name, options = {}) {
1176
+ return new ColumnBuilder(name, 'integer', options);
1177
+ }
1178
+ // JSON相关别名
1179
+ function jsonb(name, options = {}) {
1180
+ return new ColumnBuilder(name, 'json', options);
1181
+ }
1182
+ function podTable(name, columns, options) {
1183
+ const processedColumns = {};
1184
+ for (const [key, value] of Object.entries(columns)) {
1185
+ if (value instanceof PodColumnBase) {
1186
+ processedColumns[key] = value;
1187
+ continue;
1188
+ }
1189
+ let column;
1190
+ switch (value.dataType) {
1191
+ case 'integer':
1192
+ column = new PodIntegerColumn(value.name, value.options);
1193
+ break;
1194
+ case 'datetime':
1195
+ column = new PodDateTimeColumn(value.name, value.options);
1196
+ break;
1197
+ case 'boolean':
1198
+ column = new PodBooleanColumn(value.name, value.options);
1199
+ break;
1200
+ case 'json':
1201
+ column = new PodJsonColumn(value.name, value.options);
1202
+ break;
1203
+ case 'object':
1204
+ column = new PodObjectColumn(value.name, value.options);
1205
+ break;
1206
+ case 'array': {
1207
+ const elementType = (value.elementType ?? value.options.baseType ?? 'string');
1208
+ column = new PodArrayColumn(value.name, elementType, value.options);
1209
+ break;
1210
+ }
1211
+ case 'uri':
1212
+ column = new PodUriColumn(value.name, value.options);
1213
+ break;
1214
+ case 'string':
1215
+ default:
1216
+ column = new PodStringColumn(value.name, value.options);
1217
+ break;
1218
+ }
1219
+ const predicateUri = value.getPredicateUri();
1220
+ if (predicateUri) {
1221
+ column.predicate(predicateUri);
1222
+ }
1223
+ processedColumns[key] = column;
1224
+ }
1225
+ return new PodTable(name, processedColumns, options);
1226
+ }
1227
+ function relations(table, builder) {
1228
+ const helpers = {
1229
+ one: (target, options = {}) => {
1230
+ const isFederated = isSolidSchema(target);
1231
+ return {
1232
+ type: 'one',
1233
+ table: target,
1234
+ fields: options.fields,
1235
+ references: options.references,
1236
+ relationName: options.relationName,
1237
+ discover: options.discover,
1238
+ isFederated,
1239
+ };
1240
+ },
1241
+ many: (target, options = {}) => {
1242
+ const isFederated = isSolidSchema(target);
1243
+ return {
1244
+ type: 'many',
1245
+ table: target,
1246
+ fields: options.fields,
1247
+ references: options.references,
1248
+ relationName: options.relationName,
1249
+ discover: options.discover,
1250
+ isFederated,
1251
+ };
1252
+ }
1253
+ };
1254
+ const defs = builder(helpers);
1255
+ table.relations = defs;
1256
+ return defs;
1257
+ }
1258
+ // 常用的 RDF 谓词常量
1259
+ exports.RDF_PREDICATES = {
1260
+ // Schema.org 常用谓词
1261
+ SCHEMA_NAME: 'https://schema.org/name',
1262
+ SCHEMA_EMAIL: 'https://schema.org/email',
1263
+ SCHEMA_IDENTIFIER: 'https://schema.org/identifier',
1264
+ SCHEMA_DATE_CREATED: 'https://schema.org/dateCreated',
1265
+ SCHEMA_DATE_MODIFIED: 'https://schema.org/dateModified',
1266
+ SCHEMA_DESCRIPTION: 'https://schema.org/description',
1267
+ SCHEMA_URL: 'https://schema.org/url',
1268
+ SCHEMA_TITLE: 'https://schema.org/title',
1269
+ SCHEMA_TEXT: 'https://schema.org/text',
1270
+ SCHEMA_AUTHOR: 'https://schema.org/author',
1271
+ SCHEMA_DATE_PUBLISHED: 'https://schema.org/datePublished',
1272
+ // FOAF 常用谓词
1273
+ FOAF_NAME: 'http://xmlns.com/foaf/0.1/name',
1274
+ FOAF_MBOX: 'http://xmlns.com/foaf/0.1/mbox',
1275
+ FOAF_HOMEPAGE: 'http://xmlns.com/foaf/0.1/homepage',
1276
+ // Dublin Core 常用谓词
1277
+ DC_TITLE: 'http://purl.org/dc/terms/title',
1278
+ DC_DESCRIPTION: 'http://purl.org/dc/terms/description',
1279
+ DC_CREATED: 'http://purl.org/dc/terms/created',
1280
+ DC_MODIFIED: 'http://purl.org/dc/terms/modified',
1281
+ };
1282
+ // 常用的 RDF 类型常量
1283
+ exports.RDF_CLASSES = {
1284
+ // Schema.org 常用类型
1285
+ SCHEMA_PERSON: 'https://schema.org/Person',
1286
+ SCHEMA_BLOG_POSTING: 'https://schema.org/BlogPosting',
1287
+ SCHEMA_ARTICLE: 'https://schema.org/Article',
1288
+ SCHEMA_ORGANIZATION: 'https://schema.org/Organization',
1289
+ SCHEMA_EVENT: 'https://schema.org/Event',
1290
+ SCHEMA_PLACE: 'https://schema.org/Place',
1291
+ // FOAF 常用类型
1292
+ FOAF_PERSON: 'http://xmlns.com/foaf/0.1/Person',
1293
+ FOAF_ORGANIZATION: 'http://xmlns.com/foaf/0.1/Organization',
1294
+ // 自定义应用类型示例
1295
+ APP_USER: 'https://myapp.com/vocab#User',
1296
+ APP_POST: 'https://myapp.com/vocab#Post',
1297
+ APP_COMMENT: 'https://myapp.com/vocab#Comment',
1298
+ APP_TAG: 'https://myapp.com/vocab#Tag',
1299
+ };
1300
+ //# sourceMappingURL=pod-table.js.map