@undefineds.co/drizzle-solid 0.2.6 → 0.2.8

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 (172) hide show
  1. package/dist/core/ast-to-sparql.d.ts +1 -6
  2. package/dist/core/ast-to-sparql.d.ts.map +1 -1
  3. package/dist/core/ast-to-sparql.js +3 -22
  4. package/dist/core/ast-to-sparql.js.map +1 -1
  5. package/dist/core/execution/ldp-executor.d.ts +8 -7
  6. package/dist/core/execution/ldp-executor.d.ts.map +1 -1
  7. package/dist/core/execution/ldp-executor.js +165 -136
  8. package/dist/core/execution/ldp-executor.js.map +1 -1
  9. package/dist/core/execution/ldp-strategy.js +1 -1
  10. package/dist/core/execution/ldp-strategy.js.map +1 -1
  11. package/dist/core/execution/pod-executor.d.ts.map +1 -1
  12. package/dist/core/execution/pod-executor.js +9 -0
  13. package/dist/core/execution/pod-executor.js.map +1 -1
  14. package/dist/core/execution/sparql-strategy.d.ts +7 -26
  15. package/dist/core/execution/sparql-strategy.d.ts.map +1 -1
  16. package/dist/core/execution/sparql-strategy.js +65 -111
  17. package/dist/core/execution/sparql-strategy.js.map +1 -1
  18. package/dist/core/execution/types.d.ts +8 -8
  19. package/dist/core/execution/types.d.ts.map +1 -1
  20. package/dist/core/federated/executor.d.ts +3 -0
  21. package/dist/core/federated/executor.d.ts.map +1 -1
  22. package/dist/core/federated/executor.js +13 -8
  23. package/dist/core/federated/executor.js.map +1 -1
  24. package/dist/core/pod-database.d.ts +0 -4
  25. package/dist/core/pod-database.d.ts.map +1 -1
  26. package/dist/core/pod-database.js +10 -32
  27. package/dist/core/pod-database.js.map +1 -1
  28. package/dist/core/pod-dialect.d.ts +0 -24
  29. package/dist/core/pod-dialect.d.ts.map +1 -1
  30. package/dist/core/pod-dialect.js +0 -182
  31. package/dist/core/pod-dialect.js.map +1 -1
  32. package/dist/core/pod-session.d.ts +6 -2
  33. package/dist/core/pod-session.d.ts.map +1 -1
  34. package/dist/core/pod-session.js +8 -2
  35. package/dist/core/pod-session.js.map +1 -1
  36. package/dist/core/query-builders/select-query-builder.d.ts +7 -0
  37. package/dist/core/query-builders/select-query-builder.d.ts.map +1 -1
  38. package/dist/core/query-builders/select-query-builder.js +56 -14
  39. package/dist/core/query-builders/select-query-builder.js.map +1 -1
  40. package/dist/core/query-conditions.d.ts.map +1 -1
  41. package/dist/core/query-conditions.js.map +1 -1
  42. package/dist/core/resource-resolver/base-resolver.d.ts +74 -3
  43. package/dist/core/resource-resolver/base-resolver.d.ts.map +1 -1
  44. package/dist/core/resource-resolver/base-resolver.js +221 -0
  45. package/dist/core/resource-resolver/base-resolver.js.map +1 -1
  46. package/dist/core/resource-resolver/document-resolver.d.ts +19 -4
  47. package/dist/core/resource-resolver/document-resolver.d.ts.map +1 -1
  48. package/dist/core/resource-resolver/document-resolver.js +72 -34
  49. package/dist/core/resource-resolver/document-resolver.js.map +1 -1
  50. package/dist/core/resource-resolver/fragment-resolver.d.ts +17 -3
  51. package/dist/core/resource-resolver/fragment-resolver.d.ts.map +1 -1
  52. package/dist/core/resource-resolver/fragment-resolver.js +28 -16
  53. package/dist/core/resource-resolver/fragment-resolver.js.map +1 -1
  54. package/dist/core/resource-resolver/types.d.ts +1 -1
  55. package/dist/core/resource-resolver/types.d.ts.map +1 -1
  56. package/dist/core/schema/pod-table.d.ts +6 -0
  57. package/dist/core/schema/pod-table.d.ts.map +1 -1
  58. package/dist/core/schema/pod-table.js +18 -9
  59. package/dist/core/schema/pod-table.js.map +1 -1
  60. package/dist/core/sparql/builder/expression-builder.d.ts +1 -0
  61. package/dist/core/sparql/builder/expression-builder.d.ts.map +1 -1
  62. package/dist/core/sparql/builder/expression-builder.js +50 -7
  63. package/dist/core/sparql/builder/expression-builder.js.map +1 -1
  64. package/dist/core/subject/resolver.d.ts +19 -0
  65. package/dist/core/subject/resolver.d.ts.map +1 -1
  66. package/dist/core/subject/resolver.js +77 -21
  67. package/dist/core/subject/resolver.js.map +1 -1
  68. package/dist/core/subject/types.d.ts +8 -1
  69. package/dist/core/subject/types.d.ts.map +1 -1
  70. package/dist/core/triple/builder.d.ts.map +1 -1
  71. package/dist/core/triple/builder.js +38 -1
  72. package/dist/core/triple/builder.js.map +1 -1
  73. package/dist/core/triple/handlers/inverse.d.ts +6 -2
  74. package/dist/core/triple/handlers/inverse.d.ts.map +1 -1
  75. package/dist/core/triple/handlers/inverse.js +37 -16
  76. package/dist/core/triple/handlers/inverse.js.map +1 -1
  77. package/dist/core/uri/resolver.d.ts +66 -2
  78. package/dist/core/uri/resolver.d.ts.map +1 -1
  79. package/dist/core/uri/resolver.js +212 -80
  80. package/dist/core/uri/resolver.js.map +1 -1
  81. package/dist/core/uri/types.d.ts +8 -1
  82. package/dist/core/uri/types.d.ts.map +1 -1
  83. package/dist/esm/core/ast-to-sparql.d.ts +1 -6
  84. package/dist/esm/core/ast-to-sparql.d.ts.map +1 -1
  85. package/dist/esm/core/ast-to-sparql.js +3 -22
  86. package/dist/esm/core/ast-to-sparql.js.map +1 -1
  87. package/dist/esm/core/execution/ldp-executor.d.ts +8 -7
  88. package/dist/esm/core/execution/ldp-executor.d.ts.map +1 -1
  89. package/dist/esm/core/execution/ldp-executor.js +165 -136
  90. package/dist/esm/core/execution/ldp-executor.js.map +1 -1
  91. package/dist/esm/core/execution/ldp-strategy.js +1 -1
  92. package/dist/esm/core/execution/ldp-strategy.js.map +1 -1
  93. package/dist/esm/core/execution/pod-executor.d.ts.map +1 -1
  94. package/dist/esm/core/execution/pod-executor.js +9 -0
  95. package/dist/esm/core/execution/pod-executor.js.map +1 -1
  96. package/dist/esm/core/execution/sparql-strategy.d.ts +7 -26
  97. package/dist/esm/core/execution/sparql-strategy.d.ts.map +1 -1
  98. package/dist/esm/core/execution/sparql-strategy.js +65 -111
  99. package/dist/esm/core/execution/sparql-strategy.js.map +1 -1
  100. package/dist/esm/core/execution/types.d.ts +8 -8
  101. package/dist/esm/core/execution/types.d.ts.map +1 -1
  102. package/dist/esm/core/federated/executor.d.ts +3 -0
  103. package/dist/esm/core/federated/executor.d.ts.map +1 -1
  104. package/dist/esm/core/federated/executor.js +13 -8
  105. package/dist/esm/core/federated/executor.js.map +1 -1
  106. package/dist/esm/core/pod-database.d.ts +0 -4
  107. package/dist/esm/core/pod-database.d.ts.map +1 -1
  108. package/dist/esm/core/pod-database.js +10 -32
  109. package/dist/esm/core/pod-database.js.map +1 -1
  110. package/dist/esm/core/pod-dialect.d.ts +0 -24
  111. package/dist/esm/core/pod-dialect.d.ts.map +1 -1
  112. package/dist/esm/core/pod-dialect.js +0 -182
  113. package/dist/esm/core/pod-dialect.js.map +1 -1
  114. package/dist/esm/core/pod-session.d.ts +6 -2
  115. package/dist/esm/core/pod-session.d.ts.map +1 -1
  116. package/dist/esm/core/pod-session.js +8 -2
  117. package/dist/esm/core/pod-session.js.map +1 -1
  118. package/dist/esm/core/query-builders/select-query-builder.d.ts +7 -0
  119. package/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -1
  120. package/dist/esm/core/query-builders/select-query-builder.js +56 -14
  121. package/dist/esm/core/query-builders/select-query-builder.js.map +1 -1
  122. package/dist/esm/core/query-conditions.d.ts.map +1 -1
  123. package/dist/esm/core/query-conditions.js.map +1 -1
  124. package/dist/esm/core/resource-resolver/base-resolver.d.ts +74 -3
  125. package/dist/esm/core/resource-resolver/base-resolver.d.ts.map +1 -1
  126. package/dist/esm/core/resource-resolver/base-resolver.js +221 -0
  127. package/dist/esm/core/resource-resolver/base-resolver.js.map +1 -1
  128. package/dist/esm/core/resource-resolver/document-resolver.d.ts +19 -4
  129. package/dist/esm/core/resource-resolver/document-resolver.d.ts.map +1 -1
  130. package/dist/esm/core/resource-resolver/document-resolver.js +72 -34
  131. package/dist/esm/core/resource-resolver/document-resolver.js.map +1 -1
  132. package/dist/esm/core/resource-resolver/fragment-resolver.d.ts +17 -3
  133. package/dist/esm/core/resource-resolver/fragment-resolver.d.ts.map +1 -1
  134. package/dist/esm/core/resource-resolver/fragment-resolver.js +28 -16
  135. package/dist/esm/core/resource-resolver/fragment-resolver.js.map +1 -1
  136. package/dist/esm/core/resource-resolver/types.d.ts +1 -1
  137. package/dist/esm/core/resource-resolver/types.d.ts.map +1 -1
  138. package/dist/esm/core/schema/pod-table.d.ts +6 -0
  139. package/dist/esm/core/schema/pod-table.d.ts.map +1 -1
  140. package/dist/esm/core/schema/pod-table.js +18 -9
  141. package/dist/esm/core/schema/pod-table.js.map +1 -1
  142. package/dist/esm/core/sparql/builder/expression-builder.d.ts +1 -0
  143. package/dist/esm/core/sparql/builder/expression-builder.d.ts.map +1 -1
  144. package/dist/esm/core/sparql/builder/expression-builder.js +50 -7
  145. package/dist/esm/core/sparql/builder/expression-builder.js.map +1 -1
  146. package/dist/esm/core/subject/resolver.d.ts +19 -0
  147. package/dist/esm/core/subject/resolver.d.ts.map +1 -1
  148. package/dist/esm/core/subject/resolver.js +77 -21
  149. package/dist/esm/core/subject/resolver.js.map +1 -1
  150. package/dist/esm/core/subject/types.d.ts +8 -1
  151. package/dist/esm/core/subject/types.d.ts.map +1 -1
  152. package/dist/esm/core/triple/builder.d.ts.map +1 -1
  153. package/dist/esm/core/triple/builder.js +38 -1
  154. package/dist/esm/core/triple/builder.js.map +1 -1
  155. package/dist/esm/core/triple/handlers/inverse.d.ts +6 -2
  156. package/dist/esm/core/triple/handlers/inverse.d.ts.map +1 -1
  157. package/dist/esm/core/triple/handlers/inverse.js +37 -16
  158. package/dist/esm/core/triple/handlers/inverse.js.map +1 -1
  159. package/dist/esm/core/uri/resolver.d.ts +66 -2
  160. package/dist/esm/core/uri/resolver.d.ts.map +1 -1
  161. package/dist/esm/core/uri/resolver.js +212 -80
  162. package/dist/esm/core/uri/resolver.js.map +1 -1
  163. package/dist/esm/core/uri/types.d.ts +8 -1
  164. package/dist/esm/core/uri/types.d.ts.map +1 -1
  165. package/dist/esm/index.d.ts +1 -0
  166. package/dist/esm/index.d.ts.map +1 -1
  167. package/dist/esm/index.js.map +1 -1
  168. package/dist/index.d.ts +1 -0
  169. package/dist/index.d.ts.map +1 -1
  170. package/dist/index.js.map +1 -1
  171. package/package.json +5 -1
  172. package/CHANGELOG-DRAFT.md +0 -444
@@ -1 +1 @@
1
- {"version":3,"file":"inverse.js","sourceRoot":"","sources":["../../../../../src/core/triple/handlers/inverse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,GAAG,GAAG,mCAAmC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IAA3B;QACW,SAAI,GAAG,SAAS,CAAC;IAqD5B,CAAC;IAnDC,SAAS,CAAC,MAAqB;QAC7B,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,KAAc,EAAE,MAAqB,EAAE,QAAuB;QACxE,0BAA0B;QAC1B,IAAI,MAAM,CAAC,OAAO,EAAE,eAAe,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACtF,OAAO;gBACL,QAAQ,EAAE,WAAW;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;aACrB,CAAC;QACJ,CAAC;QAED,iBAAiB;QACjB,OAAO;YACL,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,GAAG,QAAQ,EAAE;SAC3D,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,KAAc;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACrE,CAAC;IAED,UAAU,CAAC,IAAa,EAAE,OAAsB;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,YAAY,CACV,OAAe,EACf,SAAiB,EACjB,KAAc,EACd,MAAqB,EACrB,MAAgB,EAChB,QAAsB;QAEtB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACjC,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAClD,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBACvD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEd,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAoB,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE;YAClE,SAAS,EAAE,EAAE,QAAQ,EAAE,WAAoB,EAAE,KAAK,EAAE,SAAS,EAAE;YAC/D,MAAM,EAAE,EAAE,QAAQ,EAAE,WAAoB,EAAE,KAAK,EAAE,OAAO,EAAE;SAC3D,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;CACF;AAED,SAAS,WAAW,CAAC,GAAQ;IAC3B,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChF,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"inverse.js","sourceRoot":"","sources":["../../../../../src/core/triple/handlers/inverse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,GAAG,GAAG,mCAAmC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IAA3B;QACW,SAAI,GAAG,SAAS,CAAC;IAqF5B,CAAC;IAnFC,SAAS,CAAC,MAAqB;QAC7B,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,OAAsB;QACzC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC7C,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,KAAc,EAAE,MAAqB,EAAE,OAAsB;QACvE,iCAAiC;QACjC,IAAI,MAAM,CAAC,OAAO,EAAE,eAAe,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;YAC3F,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,eAAe,EAAE,CAAC;YAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAEpE,OAAO;gBACL,QAAQ,EAAE,WAAW;gBACrB,KAAK,EAAE,QAAQ;aAChB,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO;gBACL,QAAQ,EAAE,WAAW;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;aACrB,CAAC;QACJ,CAAC;QAED,iBAAiB;QACjB,OAAO;YACL,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACpB,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,GAAG,QAAQ,EAAE;SAC3D,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,KAAc;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5C,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACrE,CAAC;IAED,UAAU,CAAC,IAAa,EAAE,OAAsB;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,YAAY,CACV,OAAe,EACf,SAAiB,EACjB,KAAc,EACd,MAAqB,EACrB,MAAgB,EAChB,OAAqB;QAErB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACjC,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAClD,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBACvD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEd,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/B,8BAA8B;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAExD,OAAO;gBACL,OAAO,EAAE,UAAU,EAAG,mBAAmB;gBACzC,SAAS,EAAE,EAAE,QAAQ,EAAE,WAAoB,EAAE,KAAK,EAAE,SAAS,EAAE;gBAC/D,MAAM,EAAE,EAAE,QAAQ,EAAE,WAAoB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAE,gBAAgB;aAC7E,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;CACF"}
@@ -4,7 +4,10 @@
4
4
  * 统一的 URI 生成和解析
5
5
  * 整合了 Subject URI 和 Object/Reference URI 的解析逻辑
6
6
  *
7
- * 设计原则:无状态,所有需要的上下文都通过参数传入
7
+ * 设计原则:
8
+ * - 无状态,所有需要的上下文都通过参数传入
9
+ * - 统一使用 base + subjectTemplate 来生成和解析 URI
10
+ * - 不再区分 document/fragment 模式,模式由 template 自然表达
8
11
  */
9
12
  import type { PodTable, PodColumnBase } from '../schema';
10
13
  import type { UriResolver, UriContext, ResourceMode, ParsedSubject } from './types';
@@ -17,10 +20,28 @@ export declare class UriResolverImpl implements UriResolver {
17
20
  private podUrl;
18
21
  constructor(podUrl?: string);
19
22
  setPodUrl(podUrl: string): void;
20
- resolveSubject(table: PodTable, record: Record<string, unknown>, index?: number): string;
23
+ /**
24
+ * 解析 subject URI
25
+ * @param table 表定义
26
+ * @param record 记录数据
27
+ * @param index 可选的行索引
28
+ * @param options.strict 是否严格模式(默认 true)。false 时允许部分解析,用于查询场景
29
+ */
30
+ resolveSubject(table: PodTable, record: Record<string, unknown>, index?: number, options?: {
31
+ strict?: boolean;
32
+ }): string;
21
33
  parseSubject(uri: string, table: PodTable): ParsedSubject | null;
22
34
  getResourceUrl(subjectUri: string): string;
35
+ /**
36
+ * 判断资源模式
37
+ * 简化版:直接从 subjectTemplate 判断
38
+ */
23
39
  getResourceMode(table: PodTable): ResourceMode;
40
+ /**
41
+ * 获取默认模板
42
+ * 根据 base 是否以 / 结尾判断
43
+ * 与 PodTable.buildDefaultSubjectTemplate 保持一致
44
+ */
24
45
  getDefaultPattern(table: PodTable): string;
25
46
  resolveInlineChild(parentSubject: string, columnName: string, value: Record<string, unknown>, index: number): string;
26
47
  isSingleton(table: PodTable): boolean;
@@ -35,8 +56,20 @@ export declare class UriResolverImpl implements UriResolver {
35
56
  isAbsoluteUri(value: string): boolean;
36
57
  isReferenceColumn(column: PodColumnBase | any): boolean;
37
58
  findTargetTable(column: PodColumnBase | any, context?: UriContext): PodTable | undefined;
59
+ /**
60
+ * 从引用 URI 中提取 ID
61
+ *
62
+ * 用于读取时将完整 URI 转换回简单 ID
63
+ *
64
+ * @param uri 完整的 URI (如 http://pod/.data/chat/chat-123/index.ttl#this)
65
+ * @param column 引用列定义
66
+ * @param context URI 上下文(包含表注册表)
67
+ * @returns 提取的 ID (如 chat-123),如果无法解析则返回原 URI
68
+ */
69
+ extractReferenceId(uri: string, column: PodColumnBase | any, context?: UriContext): string;
38
70
  /**
39
71
  * 从表获取基础 URL 和 subject template 信息
72
+ * 简化版:统一使用 base + subjectTemplate
40
73
  */
41
74
  private getTableUriInfo;
42
75
  /**
@@ -49,6 +82,7 @@ export declare class UriResolverImpl implements UriResolver {
49
82
  private getEffectivePattern;
50
83
  /**
51
84
  * 获取 Subject base URL
85
+ * 简化版:统一使用 table.config.base
52
86
  */
53
87
  private getSubjectBaseUrl;
54
88
  /**
@@ -59,8 +93,18 @@ export declare class UriResolverImpl implements UriResolver {
59
93
  * 合并 base 和 pattern
60
94
  */
61
95
  private combineBaseAndPattern;
96
+ /**
97
+ * 将列值归一化为适合模板使用的字符串
98
+ * 特别处理:如果是引用列且值为 URI,则尝试提取 ID
99
+ */
100
+ normalizeValue(value: unknown, column?: PodColumnBase, context?: UriContext): string;
62
101
  /**
63
102
  * 应用模板变量
103
+ * @param template 模板字符串
104
+ * @param record 记录数据
105
+ * @param index 可选的行索引
106
+ * @param table 可选的表定义
107
+ * @param strict 是否严格模式(默认 true)。false 时缺少字段返回 null,不抛出异常
64
108
  */
65
109
  private applyTemplate;
66
110
  /**
@@ -69,11 +113,31 @@ export declare class UriResolverImpl implements UriResolver {
69
113
  private createTimeContext;
70
114
  /**
71
115
  * 生成回退 URI
116
+ * 简化版:根据 template 判断模式
72
117
  */
73
118
  private generateFallbackUri;
74
119
  /**
75
120
  * 从 URI 提取 ID
121
+ *
122
+ * 简化版:统一使用 base + subjectTemplate 反向解析
123
+ *
124
+ * 例如:
125
+ * - uri = "http://pod/.data/chat/chat-123/index.ttl#this"
126
+ * - base = "http://pod/.data/chat/"
127
+ * - relativePath = "chat-123/index.ttl#this"
128
+ * - template = "{id}/index.ttl#this"
129
+ * - id = "chat-123"
76
130
  */
77
131
  private extractId;
132
+ /**
133
+ * 从相对路径反向解析出 id
134
+ *
135
+ * 将模板转为正则表达式,提取 {id} 对应的值
136
+ *
137
+ * @param relativePath 相对路径 (如 "chat-123/index.ttl#this")
138
+ * @param template 模板 (如 "{id}/index.ttl#this")
139
+ * @returns 提取的 id (如 "chat-123"),解析失败返回 null
140
+ */
141
+ private extractIdFromTemplate;
78
142
  }
79
143
  //# sourceMappingURL=resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/core/uri/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,aAAa,EAEd,MAAM,SAAS,CAAC;AAYjB;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,GAAE,MAAW;IAM/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM/B,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IA2CxF,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI;IAqBhE,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAK1C,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,YAAY;IA8B9C,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAK1C,kBAAkB,CAChB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,GACZ,MAAM;IAYT,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAkBrC;;;;;;OAMG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM;IA0GpF,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAcrC,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,GAAG,GAAG,OAAO;IASvD,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS;IA8BxF;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAuBpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,OAAO,CAAC,aAAa;IA2CrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,SAAS;CAwBlB"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/core/uri/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,aAAa,EAEd,MAAM,SAAS,CAAC;AAYjB;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,GAAE,MAAW;IAM/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM/B;;;;;;OAMG;IACH,cAAc,CACZ,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7B,MAAM;IA2CT,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI;IAqBhE,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAK1C;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,YAAY;IAY9C;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;IAU1C,kBAAkB,CAChB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,GACZ,MAAM;IAYT,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAkBrC;;;;;;OAMG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM;IA0GpF,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAcrC,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,GAAG,GAAG,OAAO;IASvD,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS;IA4BxF;;;;;;;;;OASG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM;IAuB1F;;;OAGG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAwBpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM;IAepF;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAiErB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,SAAS;IAsCjB;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB;CAmC9B"}
@@ -4,7 +4,10 @@
4
4
  * 统一的 URI 生成和解析
5
5
  * 整合了 Subject URI 和 Object/Reference URI 的解析逻辑
6
6
  *
7
- * 设计原则:无状态,所有需要的上下文都通过参数传入
7
+ * 设计原则:
8
+ * - 无状态,所有需要的上下文都通过参数传入
9
+ * - 统一使用 base + subjectTemplate 来生成和解析 URI
10
+ * - 不再区分 document/fragment 模式,模式由 template 自然表达
8
11
  */
9
12
  /**
10
13
  * UUID 正则
@@ -28,7 +31,15 @@ export class UriResolverImpl {
28
31
  this.podUrl = podUrl.replace(/\/$/, '');
29
32
  }
30
33
  // ================= Subject URI 解析 =================
31
- resolveSubject(table, record, index) {
34
+ /**
35
+ * 解析 subject URI
36
+ * @param table 表定义
37
+ * @param record 记录数据
38
+ * @param index 可选的行索引
39
+ * @param options.strict 是否严格模式(默认 true)。false 时允许部分解析,用于查询场景
40
+ */
41
+ resolveSubject(table, record, index, options) {
42
+ const strict = options?.strict ?? true;
32
43
  // Check if record has an absolute ID override
33
44
  const explicitId = record['@id'] ?? record['id'] ?? record['uri'];
34
45
  if (typeof explicitId === 'string') {
@@ -38,29 +49,27 @@ export class UriResolverImpl {
38
49
  // Check if it's a relative URI with fragment
39
50
  const hashIndex = explicitId.indexOf('#');
40
51
  if (hashIndex > 0) {
41
- const mode = this.getResourceMode(table);
42
- if (mode === 'fragment') {
52
+ const template = this.getEffectivePattern(table);
53
+ if (template.startsWith('#')) {
43
54
  record = { ...record, id: explicitId.slice(hashIndex + 1) };
44
55
  }
45
56
  }
46
57
  }
47
58
  const pattern = this.getEffectivePattern(table);
48
- const mode = this.getResourceMode(table);
49
59
  const base = this.getSubjectBaseUrl(table);
50
60
  // 单例模式 - 直接返回 base + pattern
51
61
  if (this.isSingleton(table)) {
52
62
  return this.combineBaseAndPattern(base, pattern);
53
63
  }
54
64
  // 应用模板变量
55
- const applied = this.applyTemplate(pattern, record, index);
56
- if (applied) {
57
- if (this.isAbsoluteUri(applied)) {
58
- return applied;
59
- }
65
+ const applied = this.applyTemplate(pattern, record, index, table, strict);
66
+ if (applied === null) {
67
+ // 非严格模式下,applyTemplate 返回 null 表示无法完全解析
68
+ // 使用 fallback URI(仅用于查询场景的比较)
69
+ return this.generateFallbackUri(base, pattern, index);
60
70
  }
61
- if (!applied) {
62
- // 如果模板应用失败,生成默认 URI
63
- return this.generateFallbackUri(base, mode, index);
71
+ if (this.isAbsoluteUri(applied)) {
72
+ return applied;
64
73
  }
65
74
  return this.combineBaseAndPattern(base, applied);
66
75
  }
@@ -71,8 +80,8 @@ export class UriResolverImpl {
71
80
  const hasFragment = hashIndex !== -1;
72
81
  const resourceUrl = hasFragment ? uri.slice(0, hashIndex) : uri;
73
82
  const fragment = hasFragment ? uri.slice(hashIndex + 1) : undefined;
74
- const mode = this.getResourceMode(table);
75
83
  const id = this.extractId(uri, table);
84
+ const mode = this.getResourceMode(table);
76
85
  return {
77
86
  uri,
78
87
  resourceUrl,
@@ -85,30 +94,32 @@ export class UriResolverImpl {
85
94
  const hashIndex = subjectUri.indexOf('#');
86
95
  return hashIndex !== -1 ? subjectUri.slice(0, hashIndex) : subjectUri;
87
96
  }
97
+ /**
98
+ * 判断资源模式
99
+ * 简化版:直接从 subjectTemplate 判断
100
+ */
88
101
  getResourceMode(table) {
89
- // 只有用户显式提供 subjectTemplate 时才用它来判断
90
- const hasCustomTemplate = table.hasCustomTemplate?.() ?? false;
91
- if (hasCustomTemplate) {
92
- const pattern = table.config?.subjectTemplate ?? '';
93
- if (pattern.startsWith('#')) {
94
- return 'fragment';
95
- }
96
- if (pattern.includes('.ttl') || pattern.includes('.jsonld') || pattern.includes('.json')) {
97
- return 'document';
98
- }
99
- return 'document';
100
- }
101
- const containerPath = table.getContainerPath();
102
- const tableName = table.config?.name ?? '';
103
- const normalizedContainer = containerPath.endsWith('/') ? containerPath : `${containerPath}/`;
104
- if (normalizedContainer.endsWith(`${tableName}/`)) {
105
- return 'document';
102
+ const template = table.config?.subjectTemplate ?? this.getDefaultPattern(table);
103
+ // # 开头是 fragment 模式
104
+ if (template.startsWith('#')) {
105
+ return 'fragment';
106
106
  }
107
- return 'fragment';
107
+ // 否则是 document 模式
108
+ return 'document';
108
109
  }
110
+ /**
111
+ * 获取默认模板
112
+ * 根据 base 是否以 / 结尾判断
113
+ * 与 PodTable.buildDefaultSubjectTemplate 保持一致
114
+ */
109
115
  getDefaultPattern(table) {
110
- const mode = this.getResourceMode(table);
111
- return mode === 'fragment' ? '#{id}' : '{id}.ttl';
116
+ const base = table.config?.base ?? '';
117
+ // base / 结尾表示容器 document 模式 → {id}.ttl
118
+ // base 是文件路径 → fragment 模式 → #{id}
119
+ if (base.endsWith('/')) {
120
+ return '{id}.ttl';
121
+ }
122
+ return '#{id}';
112
123
  }
113
124
  resolveInlineChild(parentSubject, columnName, value, index) {
114
125
  // 优先使用显式 ID
@@ -267,26 +278,45 @@ export class UriResolverImpl {
267
278
  }
268
279
  return undefined;
269
280
  }
281
+ /**
282
+ * 从引用 URI 中提取 ID
283
+ *
284
+ * 用于读取时将完整 URI 转换回简单 ID
285
+ *
286
+ * @param uri 完整的 URI (如 http://pod/.data/chat/chat-123/index.ttl#this)
287
+ * @param column 引用列定义
288
+ * @param context URI 上下文(包含表注册表)
289
+ * @returns 提取的 ID (如 chat-123),如果无法解析则返回原 URI
290
+ */
291
+ extractReferenceId(uri, column, context) {
292
+ if (!uri || !this.isAbsoluteUri(uri)) {
293
+ return uri;
294
+ }
295
+ // 找到目标表
296
+ const targetTable = this.findTargetTable(column, context);
297
+ if (!targetTable) {
298
+ // 无法确定目标表,返回原 URI
299
+ return uri;
300
+ }
301
+ // 使用目标表的信息提取 ID
302
+ const parsed = this.parseSubject(uri, targetTable);
303
+ if (parsed && parsed.id) {
304
+ return parsed.id;
305
+ }
306
+ return uri;
307
+ }
270
308
  // ================= Private Helpers =================
271
309
  /**
272
310
  * 从表获取基础 URL 和 subject template 信息
311
+ * 简化版:统一使用 base + subjectTemplate
273
312
  */
274
313
  getTableUriInfo(table) {
275
- const subjectTemplate = table.config?.subjectTemplate || '{id}.ttl';
276
- // Fragment Mode (#{id}) - 使用 resourcePath
277
- if (subjectTemplate.startsWith('#')) {
278
- const base = table.config?.base;
279
- if (!base)
280
- return undefined;
281
- const baseUrl = base.endsWith('/') ? base.slice(0, -1) : base;
282
- return { baseUrl: this.toAbsoluteUrl(baseUrl), subjectTemplate };
283
- }
284
- // Document Mode - 使用容器路径
285
- const base = table.config?.containerPath || table.getContainerPath?.();
314
+ const base = table.config?.base;
286
315
  if (!base)
287
316
  return undefined;
288
- const baseUrl = base.endsWith('/') ? base : `${base}/`;
289
- return { baseUrl: this.toAbsoluteUrl(baseUrl), subjectTemplate };
317
+ const subjectTemplate = table.config?.subjectTemplate || this.getDefaultPattern(table);
318
+ const baseUrl = this.toAbsoluteUrl(base);
319
+ return { baseUrl, subjectTemplate };
290
320
  }
291
321
  /**
292
322
  * 构建完整 URI
@@ -307,7 +337,8 @@ export class UriResolverImpl {
307
337
  return `${cleanBase}${result}`;
308
338
  }
309
339
  // Document 模式,直接拼接
310
- return `${baseUrl}${result}`;
340
+ const cleanBase = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;
341
+ return `${cleanBase}${result}`;
311
342
  }
312
343
  /**
313
344
  * 获取有效的 pattern
@@ -324,15 +355,11 @@ export class UriResolverImpl {
324
355
  }
325
356
  /**
326
357
  * 获取 Subject base URL
358
+ * 简化版:统一使用 table.config.base
327
359
  */
328
360
  getSubjectBaseUrl(table) {
329
- const mode = this.getResourceMode(table);
330
- if (mode === 'document') {
331
- const containerPath = table.getContainerPath();
332
- return this.toAbsoluteUrl(containerPath);
333
- }
334
- const resourcePath = table.getResourcePath?.() ?? table.config?.base ?? '';
335
- return this.toAbsoluteUrl(resourcePath);
361
+ const base = table.config?.base ?? '';
362
+ return this.toAbsoluteUrl(base);
336
363
  }
337
364
  /**
338
365
  * 将路径转换为绝对 URL
@@ -363,15 +390,36 @@ export class UriResolverImpl {
363
390
  }
364
391
  return `${base}/${pattern}`;
365
392
  }
393
+ /**
394
+ * 将列值归一化为适合模板使用的字符串
395
+ * 特别处理:如果是引用列且值为 URI,则尝试提取 ID
396
+ */
397
+ normalizeValue(value, column, context) {
398
+ if (value === undefined || value === null) {
399
+ return '';
400
+ }
401
+ // 处理引用列:如果是引用列且值为 URI,尝试提取 ID
402
+ if (typeof value === 'string' && this.isAbsoluteUri(value)) {
403
+ if (column && this.isReferenceColumn(column)) {
404
+ return this.extractReferenceId(value, column, context);
405
+ }
406
+ }
407
+ return String(value);
408
+ }
366
409
  /**
367
410
  * 应用模板变量
411
+ * @param template 模板字符串
412
+ * @param record 记录数据
413
+ * @param index 可选的行索引
414
+ * @param table 可选的表定义
415
+ * @param strict 是否严格模式(默认 true)。false 时缺少字段返回 null,不抛出异常
368
416
  */
369
- applyTemplate(template, record, index) {
417
+ applyTemplate(template, record, index, table, strict = true) {
370
418
  if (!template.includes('{')) {
371
419
  return template;
372
420
  }
373
421
  const timeContext = this.createTimeContext(record);
374
- let missingReplacement = false;
422
+ const missingKeys = [];
375
423
  const replaced = template.replace(/(#?)\{([^}]+)\}/g, (match, prefix, key) => {
376
424
  if (key in timeContext) {
377
425
  return prefix + timeContext[key];
@@ -384,16 +432,32 @@ export class UriResolverImpl {
384
432
  rawValue = record['@id'] ?? record['uri'];
385
433
  }
386
434
  if (rawValue === undefined || rawValue === null) {
387
- missingReplacement = true;
388
- return '';
435
+ missingKeys.push(key);
436
+ return match; // Keep original placeholder for error message
389
437
  }
390
- let value = String(rawValue);
438
+ const column = table?.columns?.[key];
439
+ const context = table ? {
440
+ tableRegistry: table[Symbol.for('drizzle:tableRegistry')],
441
+ tableNameRegistry: table[Symbol.for('drizzle:tableNameRegistry')]
442
+ } : undefined;
443
+ const value = this.normalizeValue(rawValue, column, context);
391
444
  if (prefix === '#' && value.startsWith('#')) {
392
- value = value.slice(1);
445
+ return prefix + value.slice(1);
393
446
  }
394
447
  return prefix + value;
395
448
  });
396
- return missingReplacement ? null : replaced;
449
+ if (missingKeys.length > 0) {
450
+ if (strict) {
451
+ const tableName = table?.config?.name || 'unknown';
452
+ throw new Error(`[UriResolver] Missing required fields for template "${template}" in table "${tableName}": ` +
453
+ `[${missingKeys.join(', ')}]. ` +
454
+ `Record keys: [${Object.keys(record).join(', ')}]. ` +
455
+ `Record: ${JSON.stringify(record)}`);
456
+ }
457
+ // 非严格模式,返回 null 表示无法完全解析
458
+ return null;
459
+ }
460
+ return replaced;
397
461
  }
398
462
  /**
399
463
  * 创建时间上下文
@@ -411,43 +475,111 @@ export class UriResolverImpl {
411
475
  date = new Date();
412
476
  }
413
477
  const yyyy = date.getUTCFullYear().toString();
414
- const mm = (date.getUTCMonth() + 1).toString().padStart(2, '0');
478
+ const MM = (date.getUTCMonth() + 1).toString().padStart(2, '0');
415
479
  const dd = date.getUTCDate().toString().padStart(2, '0');
416
480
  const timestamp = Math.floor(date.getTime() / 1000).toString();
417
- return { date, yyyy, mm, dd, timestamp };
481
+ return { date, yyyy, MM, dd, timestamp };
418
482
  }
419
483
  /**
420
484
  * 生成回退 URI
485
+ * 简化版:根据 template 判断模式
421
486
  */
422
- generateFallbackUri(base, mode, index) {
487
+ generateFallbackUri(base, template, index) {
423
488
  const suffix = index !== undefined ? `row-${index + 1}` : `row-${Date.now()}`;
424
- if (mode === 'fragment') {
489
+ // template # 开头是 fragment 模式
490
+ if (template.startsWith('#')) {
425
491
  const cleanBase = base.endsWith('/') ? base.slice(0, -1) : base;
426
492
  return `${cleanBase}#${suffix}`;
427
493
  }
494
+ // 否则是 document 模式
428
495
  const cleanBase = base.endsWith('/') ? base : `${base}/`;
429
496
  return `${cleanBase}${suffix}.ttl`;
430
497
  }
431
498
  /**
432
499
  * 从 URI 提取 ID
500
+ *
501
+ * 简化版:统一使用 base + subjectTemplate 反向解析
502
+ *
503
+ * 例如:
504
+ * - uri = "http://pod/.data/chat/chat-123/index.ttl#this"
505
+ * - base = "http://pod/.data/chat/"
506
+ * - relativePath = "chat-123/index.ttl#this"
507
+ * - template = "{id}/index.ttl#this"
508
+ * - id = "chat-123"
433
509
  */
434
510
  extractId(uri, table) {
435
- const mode = this.getResourceMode(table);
436
- const hashIndex = uri.indexOf('#');
437
- if (mode === 'fragment' && hashIndex !== -1) {
438
- return uri.slice(hashIndex + 1);
439
- }
440
- const urlWithoutFragment = hashIndex !== -1 ? uri.slice(0, hashIndex) : uri;
441
- const lastSlash = urlWithoutFragment.lastIndexOf('/');
442
- if (lastSlash !== -1) {
443
- let filename = urlWithoutFragment.slice(lastSlash + 1);
444
- const extIndex = filename.lastIndexOf('.');
445
- if (extIndex !== -1) {
446
- filename = filename.slice(0, extIndex);
511
+ const template = table.config?.subjectTemplate || this.getDefaultPattern(table);
512
+ const tableBase = table.config?.base ?? '';
513
+ // Step 1: 计算相对路径
514
+ // 核心思路:在 URI 中查找 table.config.base,提取其后的部分
515
+ let relativePath = '';
516
+ if (tableBase && uri.includes(tableBase)) {
517
+ // 找到 base 在 URI 中的位置,提取之后的部分
518
+ const index = uri.indexOf(tableBase);
519
+ relativePath = uri.substring(index + tableBase.length);
520
+ // 移除开头的 / (如果 base 不以 / 结尾)
521
+ if (relativePath.startsWith('/')) {
522
+ relativePath = relativePath.substring(1);
447
523
  }
448
- return filename;
449
524
  }
450
- return uri;
525
+ else if (!tableBase) {
526
+ // 没有配置 base,使用整个 URI
527
+ relativePath = uri;
528
+ }
529
+ else {
530
+ // base 不在 URI 中,说明 URI 格式不匹配
531
+ // 返回空字符串,让后续的 template 匹配失败
532
+ console.warn(`[UriResolver] Cannot extract ID: base "${tableBase}" not found in URI "${uri}"`);
533
+ return '';
534
+ }
535
+ // Step 2: 根据 subjectTemplate 反向解析 {id}
536
+ if (template) {
537
+ const extractedId = this.extractIdFromTemplate(relativePath, template);
538
+ if (extractedId !== null) {
539
+ return extractedId;
540
+ }
541
+ }
542
+ // 如果没有模板或解析失败,返回相对路径
543
+ return relativePath;
544
+ }
545
+ /**
546
+ * 从相对路径反向解析出 id
547
+ *
548
+ * 将模板转为正则表达式,提取 {id} 对应的值
549
+ *
550
+ * @param relativePath 相对路径 (如 "chat-123/index.ttl#this")
551
+ * @param template 模板 (如 "{id}/index.ttl#this")
552
+ * @returns 提取的 id (如 "chat-123"),解析失败返回 null
553
+ */
554
+ extractIdFromTemplate(relativePath, template) {
555
+ // 构建正则表达式
556
+ // 1. 转义特殊字符
557
+ // 2. 将 {id} 替换为捕获组 (.+?)
558
+ // 3. 将其他 {xxx} 占位符替换为非捕获组 (?:.+?)
559
+ let regexStr = template
560
+ // 转义正则特殊字符(除了 { 和 })
561
+ .replace(/[.+?^$[\]\\()]/g, '\\$&')
562
+ // 将 {id} 替换为命名捕获组
563
+ .replace(/\{id\}/g, '(?<id>.+?)')
564
+ // 将其他 {xxx} 占位符替换为非捕获组
565
+ .replace(/\{[^}]+\}/g, '(?:.+?)');
566
+ // 添加锚点
567
+ regexStr = `^${regexStr}$`;
568
+ try {
569
+ const regex = new RegExp(regexStr);
570
+ const match = relativePath.match(regex);
571
+ if (match && match.groups?.id) {
572
+ return match.groups.id;
573
+ }
574
+ // 兼容不支持命名捕获组的环境
575
+ if (match && match[1]) {
576
+ return match[1];
577
+ }
578
+ }
579
+ catch (e) {
580
+ // 正则解析失败,忽略
581
+ }
582
+ return null;
451
583
  }
452
584
  }
453
585
  // 默认单例实例
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../../src/core/uri/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../../src/core/uri/resolver.ts"],"names":[],"mappings":"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"}