@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,MAAa,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;AAtDD,wCAsDC;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":"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"}
@@ -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"}
@@ -5,7 +5,10 @@
5
5
  * 统一的 URI 生成和解析
6
6
  * 整合了 Subject URI 和 Object/Reference URI 的解析逻辑
7
7
  *
8
- * 设计原则:无状态,所有需要的上下文都通过参数传入
8
+ * 设计原则:
9
+ * - 无状态,所有需要的上下文都通过参数传入
10
+ * - 统一使用 base + subjectTemplate 来生成和解析 URI
11
+ * - 不再区分 document/fragment 模式,模式由 template 自然表达
9
12
  */
10
13
  Object.defineProperty(exports, "__esModule", { value: true });
11
14
  exports.UriResolverImpl = void 0;
@@ -31,7 +34,15 @@ class UriResolverImpl {
31
34
  this.podUrl = podUrl.replace(/\/$/, '');
32
35
  }
33
36
  // ================= Subject URI 解析 =================
34
- resolveSubject(table, record, index) {
37
+ /**
38
+ * 解析 subject URI
39
+ * @param table 表定义
40
+ * @param record 记录数据
41
+ * @param index 可选的行索引
42
+ * @param options.strict 是否严格模式(默认 true)。false 时允许部分解析,用于查询场景
43
+ */
44
+ resolveSubject(table, record, index, options) {
45
+ const strict = options?.strict ?? true;
35
46
  // Check if record has an absolute ID override
36
47
  const explicitId = record['@id'] ?? record['id'] ?? record['uri'];
37
48
  if (typeof explicitId === 'string') {
@@ -41,29 +52,27 @@ class UriResolverImpl {
41
52
  // Check if it's a relative URI with fragment
42
53
  const hashIndex = explicitId.indexOf('#');
43
54
  if (hashIndex > 0) {
44
- const mode = this.getResourceMode(table);
45
- if (mode === 'fragment') {
55
+ const template = this.getEffectivePattern(table);
56
+ if (template.startsWith('#')) {
46
57
  record = { ...record, id: explicitId.slice(hashIndex + 1) };
47
58
  }
48
59
  }
49
60
  }
50
61
  const pattern = this.getEffectivePattern(table);
51
- const mode = this.getResourceMode(table);
52
62
  const base = this.getSubjectBaseUrl(table);
53
63
  // 单例模式 - 直接返回 base + pattern
54
64
  if (this.isSingleton(table)) {
55
65
  return this.combineBaseAndPattern(base, pattern);
56
66
  }
57
67
  // 应用模板变量
58
- const applied = this.applyTemplate(pattern, record, index);
59
- if (applied) {
60
- if (this.isAbsoluteUri(applied)) {
61
- return applied;
62
- }
68
+ const applied = this.applyTemplate(pattern, record, index, table, strict);
69
+ if (applied === null) {
70
+ // 非严格模式下,applyTemplate 返回 null 表示无法完全解析
71
+ // 使用 fallback URI(仅用于查询场景的比较)
72
+ return this.generateFallbackUri(base, pattern, index);
63
73
  }
64
- if (!applied) {
65
- // 如果模板应用失败,生成默认 URI
66
- return this.generateFallbackUri(base, mode, index);
74
+ if (this.isAbsoluteUri(applied)) {
75
+ return applied;
67
76
  }
68
77
  return this.combineBaseAndPattern(base, applied);
69
78
  }
@@ -74,8 +83,8 @@ class UriResolverImpl {
74
83
  const hasFragment = hashIndex !== -1;
75
84
  const resourceUrl = hasFragment ? uri.slice(0, hashIndex) : uri;
76
85
  const fragment = hasFragment ? uri.slice(hashIndex + 1) : undefined;
77
- const mode = this.getResourceMode(table);
78
86
  const id = this.extractId(uri, table);
87
+ const mode = this.getResourceMode(table);
79
88
  return {
80
89
  uri,
81
90
  resourceUrl,
@@ -88,30 +97,32 @@ class UriResolverImpl {
88
97
  const hashIndex = subjectUri.indexOf('#');
89
98
  return hashIndex !== -1 ? subjectUri.slice(0, hashIndex) : subjectUri;
90
99
  }
100
+ /**
101
+ * 判断资源模式
102
+ * 简化版:直接从 subjectTemplate 判断
103
+ */
91
104
  getResourceMode(table) {
92
- // 只有用户显式提供 subjectTemplate 时才用它来判断
93
- const hasCustomTemplate = table.hasCustomTemplate?.() ?? false;
94
- if (hasCustomTemplate) {
95
- const pattern = table.config?.subjectTemplate ?? '';
96
- if (pattern.startsWith('#')) {
97
- return 'fragment';
98
- }
99
- if (pattern.includes('.ttl') || pattern.includes('.jsonld') || pattern.includes('.json')) {
100
- return 'document';
101
- }
102
- return 'document';
103
- }
104
- const containerPath = table.getContainerPath();
105
- const tableName = table.config?.name ?? '';
106
- const normalizedContainer = containerPath.endsWith('/') ? containerPath : `${containerPath}/`;
107
- if (normalizedContainer.endsWith(`${tableName}/`)) {
108
- return 'document';
105
+ const template = table.config?.subjectTemplate ?? this.getDefaultPattern(table);
106
+ // # 开头是 fragment 模式
107
+ if (template.startsWith('#')) {
108
+ return 'fragment';
109
109
  }
110
- return 'fragment';
110
+ // 否则是 document 模式
111
+ return 'document';
111
112
  }
113
+ /**
114
+ * 获取默认模板
115
+ * 根据 base 是否以 / 结尾判断
116
+ * 与 PodTable.buildDefaultSubjectTemplate 保持一致
117
+ */
112
118
  getDefaultPattern(table) {
113
- const mode = this.getResourceMode(table);
114
- return mode === 'fragment' ? '#{id}' : '{id}.ttl';
119
+ const base = table.config?.base ?? '';
120
+ // base / 结尾表示容器 document 模式 → {id}.ttl
121
+ // base 是文件路径 → fragment 模式 → #{id}
122
+ if (base.endsWith('/')) {
123
+ return '{id}.ttl';
124
+ }
125
+ return '#{id}';
115
126
  }
116
127
  resolveInlineChild(parentSubject, columnName, value, index) {
117
128
  // 优先使用显式 ID
@@ -270,26 +281,45 @@ class UriResolverImpl {
270
281
  }
271
282
  return undefined;
272
283
  }
284
+ /**
285
+ * 从引用 URI 中提取 ID
286
+ *
287
+ * 用于读取时将完整 URI 转换回简单 ID
288
+ *
289
+ * @param uri 完整的 URI (如 http://pod/.data/chat/chat-123/index.ttl#this)
290
+ * @param column 引用列定义
291
+ * @param context URI 上下文(包含表注册表)
292
+ * @returns 提取的 ID (如 chat-123),如果无法解析则返回原 URI
293
+ */
294
+ extractReferenceId(uri, column, context) {
295
+ if (!uri || !this.isAbsoluteUri(uri)) {
296
+ return uri;
297
+ }
298
+ // 找到目标表
299
+ const targetTable = this.findTargetTable(column, context);
300
+ if (!targetTable) {
301
+ // 无法确定目标表,返回原 URI
302
+ return uri;
303
+ }
304
+ // 使用目标表的信息提取 ID
305
+ const parsed = this.parseSubject(uri, targetTable);
306
+ if (parsed && parsed.id) {
307
+ return parsed.id;
308
+ }
309
+ return uri;
310
+ }
273
311
  // ================= Private Helpers =================
274
312
  /**
275
313
  * 从表获取基础 URL 和 subject template 信息
314
+ * 简化版:统一使用 base + subjectTemplate
276
315
  */
277
316
  getTableUriInfo(table) {
278
- const subjectTemplate = table.config?.subjectTemplate || '{id}.ttl';
279
- // Fragment Mode (#{id}) - 使用 resourcePath
280
- if (subjectTemplate.startsWith('#')) {
281
- const base = table.config?.base;
282
- if (!base)
283
- return undefined;
284
- const baseUrl = base.endsWith('/') ? base.slice(0, -1) : base;
285
- return { baseUrl: this.toAbsoluteUrl(baseUrl), subjectTemplate };
286
- }
287
- // Document Mode - 使用容器路径
288
- const base = table.config?.containerPath || table.getContainerPath?.();
317
+ const base = table.config?.base;
289
318
  if (!base)
290
319
  return undefined;
291
- const baseUrl = base.endsWith('/') ? base : `${base}/`;
292
- return { baseUrl: this.toAbsoluteUrl(baseUrl), subjectTemplate };
320
+ const subjectTemplate = table.config?.subjectTemplate || this.getDefaultPattern(table);
321
+ const baseUrl = this.toAbsoluteUrl(base);
322
+ return { baseUrl, subjectTemplate };
293
323
  }
294
324
  /**
295
325
  * 构建完整 URI
@@ -310,7 +340,8 @@ class UriResolverImpl {
310
340
  return `${cleanBase}${result}`;
311
341
  }
312
342
  // Document 模式,直接拼接
313
- return `${baseUrl}${result}`;
343
+ const cleanBase = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;
344
+ return `${cleanBase}${result}`;
314
345
  }
315
346
  /**
316
347
  * 获取有效的 pattern
@@ -327,15 +358,11 @@ class UriResolverImpl {
327
358
  }
328
359
  /**
329
360
  * 获取 Subject base URL
361
+ * 简化版:统一使用 table.config.base
330
362
  */
331
363
  getSubjectBaseUrl(table) {
332
- const mode = this.getResourceMode(table);
333
- if (mode === 'document') {
334
- const containerPath = table.getContainerPath();
335
- return this.toAbsoluteUrl(containerPath);
336
- }
337
- const resourcePath = table.getResourcePath?.() ?? table.config?.base ?? '';
338
- return this.toAbsoluteUrl(resourcePath);
364
+ const base = table.config?.base ?? '';
365
+ return this.toAbsoluteUrl(base);
339
366
  }
340
367
  /**
341
368
  * 将路径转换为绝对 URL
@@ -366,15 +393,36 @@ class UriResolverImpl {
366
393
  }
367
394
  return `${base}/${pattern}`;
368
395
  }
396
+ /**
397
+ * 将列值归一化为适合模板使用的字符串
398
+ * 特别处理:如果是引用列且值为 URI,则尝试提取 ID
399
+ */
400
+ normalizeValue(value, column, context) {
401
+ if (value === undefined || value === null) {
402
+ return '';
403
+ }
404
+ // 处理引用列:如果是引用列且值为 URI,尝试提取 ID
405
+ if (typeof value === 'string' && this.isAbsoluteUri(value)) {
406
+ if (column && this.isReferenceColumn(column)) {
407
+ return this.extractReferenceId(value, column, context);
408
+ }
409
+ }
410
+ return String(value);
411
+ }
369
412
  /**
370
413
  * 应用模板变量
414
+ * @param template 模板字符串
415
+ * @param record 记录数据
416
+ * @param index 可选的行索引
417
+ * @param table 可选的表定义
418
+ * @param strict 是否严格模式(默认 true)。false 时缺少字段返回 null,不抛出异常
371
419
  */
372
- applyTemplate(template, record, index) {
420
+ applyTemplate(template, record, index, table, strict = true) {
373
421
  if (!template.includes('{')) {
374
422
  return template;
375
423
  }
376
424
  const timeContext = this.createTimeContext(record);
377
- let missingReplacement = false;
425
+ const missingKeys = [];
378
426
  const replaced = template.replace(/(#?)\{([^}]+)\}/g, (match, prefix, key) => {
379
427
  if (key in timeContext) {
380
428
  return prefix + timeContext[key];
@@ -387,16 +435,32 @@ class UriResolverImpl {
387
435
  rawValue = record['@id'] ?? record['uri'];
388
436
  }
389
437
  if (rawValue === undefined || rawValue === null) {
390
- missingReplacement = true;
391
- return '';
438
+ missingKeys.push(key);
439
+ return match; // Keep original placeholder for error message
392
440
  }
393
- let value = String(rawValue);
441
+ const column = table?.columns?.[key];
442
+ const context = table ? {
443
+ tableRegistry: table[Symbol.for('drizzle:tableRegistry')],
444
+ tableNameRegistry: table[Symbol.for('drizzle:tableNameRegistry')]
445
+ } : undefined;
446
+ const value = this.normalizeValue(rawValue, column, context);
394
447
  if (prefix === '#' && value.startsWith('#')) {
395
- value = value.slice(1);
448
+ return prefix + value.slice(1);
396
449
  }
397
450
  return prefix + value;
398
451
  });
399
- return missingReplacement ? null : replaced;
452
+ if (missingKeys.length > 0) {
453
+ if (strict) {
454
+ const tableName = table?.config?.name || 'unknown';
455
+ throw new Error(`[UriResolver] Missing required fields for template "${template}" in table "${tableName}": ` +
456
+ `[${missingKeys.join(', ')}]. ` +
457
+ `Record keys: [${Object.keys(record).join(', ')}]. ` +
458
+ `Record: ${JSON.stringify(record)}`);
459
+ }
460
+ // 非严格模式,返回 null 表示无法完全解析
461
+ return null;
462
+ }
463
+ return replaced;
400
464
  }
401
465
  /**
402
466
  * 创建时间上下文
@@ -414,43 +478,111 @@ class UriResolverImpl {
414
478
  date = new Date();
415
479
  }
416
480
  const yyyy = date.getUTCFullYear().toString();
417
- const mm = (date.getUTCMonth() + 1).toString().padStart(2, '0');
481
+ const MM = (date.getUTCMonth() + 1).toString().padStart(2, '0');
418
482
  const dd = date.getUTCDate().toString().padStart(2, '0');
419
483
  const timestamp = Math.floor(date.getTime() / 1000).toString();
420
- return { date, yyyy, mm, dd, timestamp };
484
+ return { date, yyyy, MM, dd, timestamp };
421
485
  }
422
486
  /**
423
487
  * 生成回退 URI
488
+ * 简化版:根据 template 判断模式
424
489
  */
425
- generateFallbackUri(base, mode, index) {
490
+ generateFallbackUri(base, template, index) {
426
491
  const suffix = index !== undefined ? `row-${index + 1}` : `row-${Date.now()}`;
427
- if (mode === 'fragment') {
492
+ // template # 开头是 fragment 模式
493
+ if (template.startsWith('#')) {
428
494
  const cleanBase = base.endsWith('/') ? base.slice(0, -1) : base;
429
495
  return `${cleanBase}#${suffix}`;
430
496
  }
497
+ // 否则是 document 模式
431
498
  const cleanBase = base.endsWith('/') ? base : `${base}/`;
432
499
  return `${cleanBase}${suffix}.ttl`;
433
500
  }
434
501
  /**
435
502
  * 从 URI 提取 ID
503
+ *
504
+ * 简化版:统一使用 base + subjectTemplate 反向解析
505
+ *
506
+ * 例如:
507
+ * - uri = "http://pod/.data/chat/chat-123/index.ttl#this"
508
+ * - base = "http://pod/.data/chat/"
509
+ * - relativePath = "chat-123/index.ttl#this"
510
+ * - template = "{id}/index.ttl#this"
511
+ * - id = "chat-123"
436
512
  */
437
513
  extractId(uri, table) {
438
- const mode = this.getResourceMode(table);
439
- const hashIndex = uri.indexOf('#');
440
- if (mode === 'fragment' && hashIndex !== -1) {
441
- return uri.slice(hashIndex + 1);
442
- }
443
- const urlWithoutFragment = hashIndex !== -1 ? uri.slice(0, hashIndex) : uri;
444
- const lastSlash = urlWithoutFragment.lastIndexOf('/');
445
- if (lastSlash !== -1) {
446
- let filename = urlWithoutFragment.slice(lastSlash + 1);
447
- const extIndex = filename.lastIndexOf('.');
448
- if (extIndex !== -1) {
449
- filename = filename.slice(0, extIndex);
514
+ const template = table.config?.subjectTemplate || this.getDefaultPattern(table);
515
+ const tableBase = table.config?.base ?? '';
516
+ // Step 1: 计算相对路径
517
+ // 核心思路:在 URI 中查找 table.config.base,提取其后的部分
518
+ let relativePath = '';
519
+ if (tableBase && uri.includes(tableBase)) {
520
+ // 找到 base 在 URI 中的位置,提取之后的部分
521
+ const index = uri.indexOf(tableBase);
522
+ relativePath = uri.substring(index + tableBase.length);
523
+ // 移除开头的 / (如果 base 不以 / 结尾)
524
+ if (relativePath.startsWith('/')) {
525
+ relativePath = relativePath.substring(1);
450
526
  }
451
- return filename;
452
527
  }
453
- return uri;
528
+ else if (!tableBase) {
529
+ // 没有配置 base,使用整个 URI
530
+ relativePath = uri;
531
+ }
532
+ else {
533
+ // base 不在 URI 中,说明 URI 格式不匹配
534
+ // 返回空字符串,让后续的 template 匹配失败
535
+ console.warn(`[UriResolver] Cannot extract ID: base "${tableBase}" not found in URI "${uri}"`);
536
+ return '';
537
+ }
538
+ // Step 2: 根据 subjectTemplate 反向解析 {id}
539
+ if (template) {
540
+ const extractedId = this.extractIdFromTemplate(relativePath, template);
541
+ if (extractedId !== null) {
542
+ return extractedId;
543
+ }
544
+ }
545
+ // 如果没有模板或解析失败,返回相对路径
546
+ return relativePath;
547
+ }
548
+ /**
549
+ * 从相对路径反向解析出 id
550
+ *
551
+ * 将模板转为正则表达式,提取 {id} 对应的值
552
+ *
553
+ * @param relativePath 相对路径 (如 "chat-123/index.ttl#this")
554
+ * @param template 模板 (如 "{id}/index.ttl#this")
555
+ * @returns 提取的 id (如 "chat-123"),解析失败返回 null
556
+ */
557
+ extractIdFromTemplate(relativePath, template) {
558
+ // 构建正则表达式
559
+ // 1. 转义特殊字符
560
+ // 2. 将 {id} 替换为捕获组 (.+?)
561
+ // 3. 将其他 {xxx} 占位符替换为非捕获组 (?:.+?)
562
+ let regexStr = template
563
+ // 转义正则特殊字符(除了 { 和 })
564
+ .replace(/[.+?^$[\]\\()]/g, '\\$&')
565
+ // 将 {id} 替换为命名捕获组
566
+ .replace(/\{id\}/g, '(?<id>.+?)')
567
+ // 将其他 {xxx} 占位符替换为非捕获组
568
+ .replace(/\{[^}]+\}/g, '(?:.+?)');
569
+ // 添加锚点
570
+ regexStr = `^${regexStr}$`;
571
+ try {
572
+ const regex = new RegExp(regexStr);
573
+ const match = relativePath.match(regex);
574
+ if (match && match.groups?.id) {
575
+ return match.groups.id;
576
+ }
577
+ // 兼容不支持命名捕获组的环境
578
+ if (match && match[1]) {
579
+ return match[1];
580
+ }
581
+ }
582
+ catch (e) {
583
+ // 正则解析失败,忽略
584
+ }
585
+ return null;
454
586
  }
455
587
  }
456
588
  exports.UriResolverImpl = UriResolverImpl;
@@ -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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"}