@undefineds.co/xpod 0.3.56 → 0.3.58

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 (57) hide show
  1. package/dist/api/container/index.js +3 -0
  2. package/dist/api/container/index.js.map +1 -1
  3. package/dist/api/container/local.js +53 -13
  4. package/dist/api/container/local.js.map +1 -1
  5. package/dist/api/container/types.d.ts +6 -0
  6. package/dist/api/container/types.js.map +1 -1
  7. package/dist/api/handlers/AdminHandler.d.ts +15 -0
  8. package/dist/api/handlers/AdminHandler.js +128 -7
  9. package/dist/api/handlers/AdminHandler.js.map +1 -1
  10. package/dist/cli/commands/obj.d.ts +45 -0
  11. package/dist/cli/commands/obj.js +309 -33
  12. package/dist/cli/commands/obj.js.map +1 -1
  13. package/dist/components/components.jsonld +1 -0
  14. package/dist/components/context.jsonld +36 -0
  15. package/dist/edge/DdnsManager.d.ts +1 -1
  16. package/dist/edge/DdnsManager.js.map +1 -1
  17. package/dist/edge/reachability/P2PRealnetAcceptance.js +4 -3
  18. package/dist/edge/reachability/P2PRealnetAcceptance.js.map +1 -1
  19. package/dist/edge/reachability/TcpP2PSignalingSession.js +26 -17
  20. package/dist/edge/reachability/TcpP2PSignalingSession.js.map +1 -1
  21. package/dist/index.d.ts +2 -1
  22. package/dist/index.js +3 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/tunnel/NgrokTunnelProvider.d.ts +46 -0
  25. package/dist/tunnel/NgrokTunnelProvider.js +344 -0
  26. package/dist/tunnel/NgrokTunnelProvider.js.map +1 -0
  27. package/dist/tunnel/NgrokTunnelProvider.jsonld +215 -0
  28. package/dist/tunnel/TunnelProvider.d.ts +2 -2
  29. package/dist/tunnel/TunnelProvider.js.map +1 -1
  30. package/dist/tunnel/index.d.ts +1 -0
  31. package/dist/tunnel/index.js +3 -1
  32. package/dist/tunnel/index.js.map +1 -1
  33. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.d.ts +62 -0
  34. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.d.ts.map +1 -1
  35. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js +197 -0
  36. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js.map +1 -1
  37. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.d.ts +62 -0
  38. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.d.ts.map +1 -1
  39. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js +197 -0
  40. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js.map +1 -1
  41. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/pod.d.ts.map +1 -1
  42. package/node_modules/@undefineds.co/drizzle-solid/dist/pod.d.ts.map +1 -1
  43. package/node_modules/@undefineds.co/drizzle-solid/package.json +1 -1
  44. package/package.json +10 -6
  45. package/static/app/assets/{index-AaQ1qxhy.js → index-C1yksyT4.js} +28 -28
  46. package/static/app/assets/inrupt-smoke.js +2 -2
  47. package/static/app/assets/main.css +1 -1
  48. package/static/app/assets/main.js +10 -50
  49. package/static/dashboard/assets/dashboard-BssaVKTn.css +1 -0
  50. package/static/dashboard/assets/dashboard-Ckuadl3C.js +54 -0
  51. package/static/dashboard/dashboard.html +2 -2
  52. package/static/dashboard/reachability.html +221 -0
  53. package/static/dashboard/reachability.svg +7 -0
  54. package/static/dashboard/reachability.webmanifest +18 -0
  55. package/static/dashboard/signal-pod.html +293 -0
  56. package/static/dashboard/assets/dashboard-CTk9cn1-.js +0 -52
  57. package/static/dashboard/assets/dashboard-VQRsvXx9.css +0 -1
@@ -0,0 +1,215 @@
1
+ {
2
+ "@context": [
3
+ "https://linkedsoftwaredependencies.org/bundles/npm/@undefineds.co/xpod/^0.0.0/components/context.jsonld"
4
+ ],
5
+ "@id": "npmd:@undefineds.co/xpod",
6
+ "components": [
7
+ {
8
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider",
9
+ "@type": "Class",
10
+ "requireElement": "NgrokTunnelProvider",
11
+ "extends": [
12
+ "undefineds:dist/tunnel/TunnelProvider.jsonld#TunnelProvider"
13
+ ],
14
+ "comment": "Starts a user-owned ngrok agent for Local SP access. This provider does not create ngrok resources or write Xpod DNS. A configured url can be a fixed ngrok dev domain or a paid custom domain already owned by the user's ngrok account. When url is omitted, the endpoint is discovered from the local ngrok Agent API after `ngrok http` starts.",
15
+ "parameters": [
16
+ {
17
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider_options_authtoken",
18
+ "range": {
19
+ "@type": "ParameterRangeUnion",
20
+ "parameterRangeElements": [
21
+ "xsd:string",
22
+ {
23
+ "@type": "ParameterRangeUndefined"
24
+ }
25
+ ]
26
+ },
27
+ "comment": "ngrok authtoken. Prefer local env/config; do not persist it from xpod."
28
+ },
29
+ {
30
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider_options_url",
31
+ "range": {
32
+ "@type": "ParameterRangeUnion",
33
+ "parameterRangeElements": [
34
+ "xsd:string",
35
+ {
36
+ "@type": "ParameterRangeUndefined"
37
+ }
38
+ ]
39
+ },
40
+ "comment": "Fixed ngrok endpoint/custom domain passed to `ngrok http --url`."
41
+ },
42
+ {
43
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider_options_ngrokPath",
44
+ "range": {
45
+ "@type": "ParameterRangeUnion",
46
+ "parameterRangeElements": [
47
+ "xsd:string",
48
+ {
49
+ "@type": "ParameterRangeUndefined"
50
+ }
51
+ ]
52
+ },
53
+ "comment": "ngrok executable path."
54
+ },
55
+ {
56
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider_options_agentApiUrl",
57
+ "range": {
58
+ "@type": "ParameterRangeUnion",
59
+ "parameterRangeElements": [
60
+ "xsd:string",
61
+ {
62
+ "@type": "ParameterRangeUndefined"
63
+ }
64
+ ]
65
+ },
66
+ "comment": "ngrok local Agent API, used to discover generated dev domains."
67
+ },
68
+ {
69
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider_options_connectTimeoutMs",
70
+ "range": {
71
+ "@type": "ParameterRangeUnion",
72
+ "parameterRangeElements": [
73
+ "xsd:number",
74
+ {
75
+ "@type": "ParameterRangeUndefined"
76
+ }
77
+ ]
78
+ },
79
+ "comment": "Startup wait timeout."
80
+ }
81
+ ],
82
+ "memberFields": [
83
+ {
84
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_name",
85
+ "memberFieldName": "name"
86
+ },
87
+ {
88
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_logger",
89
+ "memberFieldName": "logger"
90
+ },
91
+ {
92
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_authtoken",
93
+ "memberFieldName": "authtoken"
94
+ },
95
+ {
96
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_configuredUrl",
97
+ "memberFieldName": "configuredUrl"
98
+ },
99
+ {
100
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_ngrokPath",
101
+ "memberFieldName": "ngrokPath"
102
+ },
103
+ {
104
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_agentApiUrl",
105
+ "memberFieldName": "agentApiUrl"
106
+ },
107
+ {
108
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_connectTimeoutMs",
109
+ "memberFieldName": "connectTimeoutMs"
110
+ },
111
+ {
112
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_process",
113
+ "memberFieldName": "process"
114
+ },
115
+ {
116
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_status",
117
+ "memberFieldName": "status"
118
+ },
119
+ {
120
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_currentConfig",
121
+ "memberFieldName": "currentConfig"
122
+ },
123
+ {
124
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_managedByUs",
125
+ "memberFieldName": "managedByUs"
126
+ },
127
+ {
128
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_constructor",
129
+ "memberFieldName": "constructor"
130
+ },
131
+ {
132
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_setup",
133
+ "memberFieldName": "setup"
134
+ },
135
+ {
136
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_start",
137
+ "memberFieldName": "start"
138
+ },
139
+ {
140
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_stop",
141
+ "memberFieldName": "stop"
142
+ },
143
+ {
144
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_getStatus",
145
+ "memberFieldName": "getStatus"
146
+ },
147
+ {
148
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_getEndpoint",
149
+ "memberFieldName": "getEndpoint"
150
+ },
151
+ {
152
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_cleanup",
153
+ "memberFieldName": "cleanup"
154
+ },
155
+ {
156
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_isManagedByUs",
157
+ "memberFieldName": "isManagedByUs"
158
+ },
159
+ {
160
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_handleOutput",
161
+ "memberFieldName": "handleOutput"
162
+ },
163
+ {
164
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_markConnected",
165
+ "memberFieldName": "markConnected"
166
+ },
167
+ {
168
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_waitForConnection",
169
+ "memberFieldName": "waitForConnection"
170
+ },
171
+ {
172
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider__member_discoverEndpointFromAgentApi",
173
+ "memberFieldName": "discoverEndpointFromAgentApi"
174
+ }
175
+ ],
176
+ "constructorArguments": [
177
+ {
178
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider_options__constructorArgument",
179
+ "fields": [
180
+ {
181
+ "keyRaw": "authtoken",
182
+ "value": {
183
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider_options_authtoken"
184
+ }
185
+ },
186
+ {
187
+ "keyRaw": "url",
188
+ "value": {
189
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider_options_url"
190
+ }
191
+ },
192
+ {
193
+ "keyRaw": "ngrokPath",
194
+ "value": {
195
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider_options_ngrokPath"
196
+ }
197
+ },
198
+ {
199
+ "keyRaw": "agentApiUrl",
200
+ "value": {
201
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider_options_agentApiUrl"
202
+ }
203
+ },
204
+ {
205
+ "keyRaw": "connectTimeoutMs",
206
+ "value": {
207
+ "@id": "undefineds:dist/tunnel/NgrokTunnelProvider.jsonld#NgrokTunnelProvider_options_connectTimeoutMs"
208
+ }
209
+ }
210
+ ]
211
+ }
212
+ ]
213
+ }
214
+ ]
215
+ }
@@ -12,12 +12,12 @@ export interface TunnelConfig {
12
12
  /** 子域名 (如 mynode,完整域名为 mynode.pods.undefieds.co) */
13
13
  subdomain: string;
14
14
  /** 隧道类型 */
15
- provider: 'cloudflare' | 'frp' | 'sakura-frp';
15
+ provider: 'cloudflare' | 'frp' | 'sakura-frp' | 'ngrok';
16
16
  /** 公网访问端点 (如 https://mynode.pods.undefieds.co) */
17
17
  endpoint: string;
18
18
  /** 本地 origin 地址 (如 http://localhost:5737),供隧道客户端转发 */
19
19
  originUrl?: string;
20
- /** Cloudflare Tunnel Token (cloudflare 专用) */
20
+ /** Provider token when the provider exposes a launch token (Cloudflare/SakuraFRP); ngrok authtoken is kept in local options, not persisted here. */
21
21
  tunnelToken?: string;
22
22
  /** Cloudflare Tunnel ID (cloudflare 专用) */
23
23
  tunnelId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"TunnelProvider.js","sourceRoot":"","sources":["../../src/tunnel/TunnelProvider.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG","sourcesContent":["/**\n * Tunnel Provider Interface\n * \n * 抽象隧道服务,支持多种实现:\n * - CloudflareTunnelProvider: Cloudflare Tunnel(阶段 1)\n * - FrpTunnelProvider: FRP(阶段 2,自建或第三方)\n */\n\n/**\n * 隧道配置\n */\nexport interface TunnelConfig {\n /** 子域名 (如 mynode,完整域名为 mynode.pods.undefieds.co) */\n subdomain: string;\n\n /** 隧道类型 */\n provider: 'cloudflare' | 'frp' | 'sakura-frp';\n\n /** 公网访问端点 (如 https://mynode.pods.undefieds.co) */\n endpoint: string;\n\n /** 本地 origin 地址 (如 http://localhost:5737),供隧道客户端转发 */\n originUrl?: string;\n\n /** Cloudflare Tunnel Token (cloudflare 专用) */\n tunnelToken?: string;\n\n /** Cloudflare Tunnel ID (cloudflare 专用) */\n tunnelId?: string;\n\n /** FRP 服务器地址 (frp 专用) */\n frpServer?: string;\n\n /** FRP 服务器端口 (frp 专用) */\n frpServerPort?: number;\n\n /** FRP Token (frp 专用) */\n frpToken?: string;\n\n /** FRP 远程端口 (frp 专用) */\n frpRemotePort?: number;\n}\n\n/**\n * 隧道设置参数\n */\nexport interface TunnelSetupOptions {\n /** 子域名 */\n subdomain: string;\n\n /** 本地服务端口 */\n localPort: number;\n\n /** 本地服务协议 */\n localProtocol?: 'http' | 'https';\n}\n\n/**\n * 隧道状态\n */\nexport interface TunnelStatus {\n /** 是否正在运行 */\n running: boolean;\n\n /** 连接状态 */\n connected: boolean;\n\n /** 公网端点 */\n endpoint?: string;\n\n /** 错误信息 */\n error?: string;\n\n /** 最后心跳时间 */\n lastHeartbeat?: Date;\n}\n\n/**\n * 隧道 Provider 接口\n */\nexport interface TunnelProvider {\n /** Provider 名称 */\n readonly name: string;\n\n /**\n * 初始化隧道(注册、分配资源)\n * @param options 设置参数\n * @returns 隧道配置\n */\n setup(options: TunnelSetupOptions): Promise<TunnelConfig>;\n\n /**\n * 启动隧道客户端\n * @param config 隧道配置\n */\n start(config: TunnelConfig): Promise<void>;\n\n /**\n * 停止隧道\n */\n stop(): Promise<void>;\n\n /**\n * 获取隧道状态\n */\n getStatus(): TunnelStatus;\n\n /**\n * 获取公网访问端点\n */\n getEndpoint(): string | undefined;\n\n /**\n * 清理资源(删除隧道、DNS 记录等)\n * @param config 隧道配置\n */\n cleanup(config: TunnelConfig): Promise<void>;\n}\n"]}
1
+ {"version":3,"file":"TunnelProvider.js","sourceRoot":"","sources":["../../src/tunnel/TunnelProvider.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG","sourcesContent":["/**\n * Tunnel Provider Interface\n * \n * 抽象隧道服务,支持多种实现:\n * - CloudflareTunnelProvider: Cloudflare Tunnel(阶段 1)\n * - FrpTunnelProvider: FRP(阶段 2,自建或第三方)\n */\n\n/**\n * 隧道配置\n */\nexport interface TunnelConfig {\n /** 子域名 (如 mynode,完整域名为 mynode.pods.undefieds.co) */\n subdomain: string;\n\n /** 隧道类型 */\n provider: 'cloudflare' | 'frp' | 'sakura-frp' | 'ngrok';\n\n /** 公网访问端点 (如 https://mynode.pods.undefieds.co) */\n endpoint: string;\n\n /** 本地 origin 地址 (如 http://localhost:5737),供隧道客户端转发 */\n originUrl?: string;\n\n /** Provider token when the provider exposes a launch token (Cloudflare/SakuraFRP); ngrok authtoken is kept in local options, not persisted here. */\n tunnelToken?: string;\n\n /** Cloudflare Tunnel ID (cloudflare 专用) */\n tunnelId?: string;\n\n /** FRP 服务器地址 (frp 专用) */\n frpServer?: string;\n\n /** FRP 服务器端口 (frp 专用) */\n frpServerPort?: number;\n\n /** FRP Token (frp 专用) */\n frpToken?: string;\n\n /** FRP 远程端口 (frp 专用) */\n frpRemotePort?: number;\n}\n\n/**\n * 隧道设置参数\n */\nexport interface TunnelSetupOptions {\n /** 子域名 */\n subdomain: string;\n\n /** 本地服务端口 */\n localPort: number;\n\n /** 本地服务协议 */\n localProtocol?: 'http' | 'https';\n}\n\n/**\n * 隧道状态\n */\nexport interface TunnelStatus {\n /** 是否正在运行 */\n running: boolean;\n\n /** 连接状态 */\n connected: boolean;\n\n /** 公网端点 */\n endpoint?: string;\n\n /** 错误信息 */\n error?: string;\n\n /** 最后心跳时间 */\n lastHeartbeat?: Date;\n}\n\n/**\n * 隧道 Provider 接口\n */\nexport interface TunnelProvider {\n /** Provider 名称 */\n readonly name: string;\n\n /**\n * 初始化隧道(注册、分配资源)\n * @param options 设置参数\n * @returns 隧道配置\n */\n setup(options: TunnelSetupOptions): Promise<TunnelConfig>;\n\n /**\n * 启动隧道客户端\n * @param config 隧道配置\n */\n start(config: TunnelConfig): Promise<void>;\n\n /**\n * 停止隧道\n */\n stop(): Promise<void>;\n\n /**\n * 获取隧道状态\n */\n getStatus(): TunnelStatus;\n\n /**\n * 获取公网访问端点\n */\n getEndpoint(): string | undefined;\n\n /**\n * 清理资源(删除隧道、DNS 记录等)\n * @param config 隧道配置\n */\n cleanup(config: TunnelConfig): Promise<void>;\n}\n"]}
@@ -1,3 +1,4 @@
1
1
  export type { TunnelProvider, TunnelConfig, TunnelSetupOptions, TunnelStatus, } from './TunnelProvider';
2
2
  export { CloudflareTunnelProvider, type CloudflareTunnelProviderOptions, } from './CloudflareTunnelProvider';
3
3
  export { LocalTunnelProvider, type LocalTunnelProviderOptions, } from './LocalTunnelProvider';
4
+ export { NgrokTunnelProvider, type NgrokTunnelProviderOptions, } from './NgrokTunnelProvider';
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LocalTunnelProvider = exports.CloudflareTunnelProvider = void 0;
3
+ exports.NgrokTunnelProvider = exports.LocalTunnelProvider = exports.CloudflareTunnelProvider = void 0;
4
4
  var CloudflareTunnelProvider_1 = require("./CloudflareTunnelProvider");
5
5
  Object.defineProperty(exports, "CloudflareTunnelProvider", { enumerable: true, get: function () { return CloudflareTunnelProvider_1.CloudflareTunnelProvider; } });
6
6
  var LocalTunnelProvider_1 = require("./LocalTunnelProvider");
7
7
  Object.defineProperty(exports, "LocalTunnelProvider", { enumerable: true, get: function () { return LocalTunnelProvider_1.LocalTunnelProvider; } });
8
+ var NgrokTunnelProvider_1 = require("./NgrokTunnelProvider");
9
+ Object.defineProperty(exports, "NgrokTunnelProvider", { enumerable: true, get: function () { return NgrokTunnelProvider_1.NgrokTunnelProvider; } });
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tunnel/index.ts"],"names":[],"mappings":";;;AAOA,uEAGoC;AAFlC,oIAAA,wBAAwB,OAAA;AAI1B,6DAG+B;AAF7B,0HAAA,mBAAmB,OAAA","sourcesContent":["export type {\n TunnelProvider,\n TunnelConfig,\n TunnelSetupOptions,\n TunnelStatus,\n} from './TunnelProvider';\n\nexport {\n CloudflareTunnelProvider,\n type CloudflareTunnelProviderOptions,\n} from './CloudflareTunnelProvider';\n\nexport {\n LocalTunnelProvider,\n type LocalTunnelProviderOptions,\n} from './LocalTunnelProvider';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tunnel/index.ts"],"names":[],"mappings":";;;AAOA,uEAGoC;AAFlC,oIAAA,wBAAwB,OAAA;AAI1B,6DAG+B;AAF7B,0HAAA,mBAAmB,OAAA;AAIrB,6DAG+B;AAF7B,0HAAA,mBAAmB,OAAA","sourcesContent":["export type {\n TunnelProvider,\n TunnelConfig,\n TunnelSetupOptions,\n TunnelStatus,\n} from './TunnelProvider';\n\nexport {\n CloudflareTunnelProvider,\n type CloudflareTunnelProviderOptions,\n} from './CloudflareTunnelProvider';\n\nexport {\n LocalTunnelProvider,\n type LocalTunnelProviderOptions,\n} from './LocalTunnelProvider';\n\nexport {\n NgrokTunnelProvider,\n type NgrokTunnelProviderOptions,\n} from './NgrokTunnelProvider';\n"]}
@@ -41,6 +41,54 @@ type QueryFindManyOptions = {
41
41
  table?: GenericPodTable;
42
42
  }>;
43
43
  };
44
+ export type ResourceFileInput = {
45
+ path?: string;
46
+ url?: string;
47
+ content?: BodyInit | null;
48
+ contentType?: string;
49
+ relationField?: string;
50
+ };
51
+ export type ResourceWithDocumentInput = {
52
+ row: Record<string, unknown>;
53
+ document?: ResourceFileInput;
54
+ source?: ResourceFileInput;
55
+ files?: ResourceFileInput[];
56
+ };
57
+ export type PlannedResourceFileWrite = {
58
+ relationField: string;
59
+ url: string;
60
+ contentType?: string;
61
+ };
62
+ export type ResourceWithDocumentPlan = {
63
+ ok: true;
64
+ resourceId: string;
65
+ resourceIri: string;
66
+ row: Record<string, unknown>;
67
+ rdfMutations: Array<{
68
+ type: 'upsert';
69
+ subject: string;
70
+ fields: string[];
71
+ }>;
72
+ fileWrites: PlannedResourceFileWrite[];
73
+ warnings: string[];
74
+ errors: string[];
75
+ };
76
+ export type MoveDocumentInput = {
77
+ id: string;
78
+ relationField?: string;
79
+ fromPath?: string;
80
+ fromUrl?: string;
81
+ toPath?: string;
82
+ toUrl?: string;
83
+ content?: BodyInit | null;
84
+ contentType?: string;
85
+ };
86
+ export type DeleteResourceWithDocumentInput = {
87
+ id: string;
88
+ relationField?: string;
89
+ path?: string;
90
+ url?: string;
91
+ };
44
92
  type QueryResourceHelper<TResource extends GenericPodResource = GenericPodResource> = {
45
93
  findMany<T = InferTableData<TResource>>(options?: QueryFindManyOptions): Promise<T[]>;
46
94
  findFirst<T = InferTableData<TResource>>(options?: QueryFindManyOptions): Promise<T | null>;
@@ -128,6 +176,20 @@ export declare class PodDatabase<TSchema extends Record<string, unknown> = Recor
128
176
  insert<TTable extends GenericPodTable>(table: TTable): InsertQueryBuilder<TTable>;
129
177
  update<TTable extends GenericPodTable>(table: TTable): UpdateQueryBuilder<TTable>;
130
178
  delete<TTable extends GenericPodTable>(table: TTable): DeleteQueryBuilder<TTable>;
179
+ private resolvePodFileUrl;
180
+ private getResourceFileInputs;
181
+ private validateNoDuplicatePathComposition;
182
+ dryRunResourceWithDocument<TTable extends GenericPodTable>(resource: TTable, input: ResourceWithDocumentInput): Promise<ResourceWithDocumentPlan>;
183
+ upsertResourceWithDocument<TTable extends GenericPodTable>(resource: TTable, input: ResourceWithDocumentInput): Promise<ResourceWithDocumentPlan>;
184
+ moveDocumentAndRelink<TTable extends GenericPodTable>(resource: TTable, input: MoveDocumentInput): Promise<{
185
+ fromUrl?: string;
186
+ toUrl: string;
187
+ resource: unknown | null;
188
+ }>;
189
+ deleteResourceWithDocument<TTable extends GenericPodTable>(resource: TTable, input: DeleteResourceWithDocumentInput): Promise<{
190
+ deleted: boolean;
191
+ fileUrl?: string;
192
+ }>;
131
193
  execute(query: string): Promise<unknown[]>;
132
194
  executeSPARQL(query: string): Promise<unknown[]>;
133
195
  batch<TOperations extends readonly unknown[]>(operations: TOperations): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"pod-database.d.ts","sourceRoot":"","sources":["../../src/core/pod-database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pod-database.d.ts","sourceRoot":"","sources":["../../src/core/pod-database.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,26 @@ function hasStringValue(value) {
54
54
  function isAbsoluteIri(value) {
55
55
  return value.startsWith('http://') || value.startsWith('https://');
56
56
  }
57
+ function normalizePodBase(value) {
58
+ return value.endsWith('/') ? value : `${value}/`;
59
+ }
60
+ function normalizeBaseRelativePath(value) {
61
+ return value.replace(/^\/+/u, '');
62
+ }
63
+ function hasDuplicatePathComposition(value) {
64
+ const path = value.split('#')[0].replace(/^https?:\/\/[^/]+/u, '');
65
+ const segments = path.split('/').filter(Boolean);
66
+ for (let offset = 0; offset < segments.length; offset++) {
67
+ for (let length = 2; offset + (length * 2) <= segments.length; length++) {
68
+ const first = segments.slice(offset, offset + length).join('/');
69
+ const second = segments.slice(offset + length, offset + (length * 2)).join('/');
70
+ if (first === second) {
71
+ return true;
72
+ }
73
+ }
74
+ }
75
+ return false;
76
+ }
57
77
  function isBaseRelativeSubjectId(value) {
58
78
  if (!value || isAbsoluteIri(value) || value.startsWith('/')) {
59
79
  return false;
@@ -194,6 +214,183 @@ class PodDatabase {
194
214
  delete(table) {
195
215
  return this.session.delete(table);
196
216
  }
217
+ resolvePodFileUrl(pathOrUrl) {
218
+ if (!pathOrUrl || typeof pathOrUrl !== 'string') {
219
+ throw new Error('resource file path must be a non-empty string');
220
+ }
221
+ if (isAbsoluteIri(pathOrUrl)) {
222
+ return pathOrUrl;
223
+ }
224
+ const getPodUrl = this.dialect.getPodUrl;
225
+ if (typeof getPodUrl !== 'function') {
226
+ throw new Error('Cannot resolve Pod file path because dialect.getPodUrl is not available');
227
+ }
228
+ return new URL(normalizeBaseRelativePath(pathOrUrl), normalizePodBase(getPodUrl.call(this.dialect))).toString();
229
+ }
230
+ getResourceFileInputs(input) {
231
+ const files = [];
232
+ if (input.document) {
233
+ files.push({ ...input.document, relationField: input.document.relationField ?? 'document' });
234
+ }
235
+ if (input.source) {
236
+ files.push({ ...input.source, relationField: input.source.relationField ?? 'source' });
237
+ }
238
+ for (const file of input.files ?? []) {
239
+ files.push({ ...file, relationField: file.relationField ?? 'document' });
240
+ }
241
+ return files;
242
+ }
243
+ validateNoDuplicatePathComposition(values) {
244
+ const duplicate = values.find(hasDuplicatePathComposition);
245
+ if (duplicate) {
246
+ throw new Error(`duplicate path composition detected: ${duplicate}`);
247
+ }
248
+ }
249
+ async dryRunResourceWithDocument(resource, input) {
250
+ if (!isRecord(input.row) || Array.isArray(input.row)) {
251
+ throw new Error('dryRunResourceWithDocument requires a row object');
252
+ }
253
+ const resourceIri = this.resolveRowIri(resource, input.row);
254
+ const explicitId = input.row.id;
255
+ const resourceId = typeof explicitId === 'string' && !isAbsoluteIri(explicitId)
256
+ ? explicitId
257
+ : this.resolveRowId(resource, input.row);
258
+ const row = { ...input.row };
259
+ const fileWrites = [];
260
+ const pathInputs = [resourceId];
261
+ for (const file of this.getResourceFileInputs(input)) {
262
+ const pathOrUrl = file.url ?? file.path;
263
+ if (!pathOrUrl) {
264
+ throw new Error(`resource file '${file.relationField}' requires path or url`);
265
+ }
266
+ pathInputs.push(pathOrUrl);
267
+ const url = this.resolvePodFileUrl(pathOrUrl);
268
+ row[file.relationField] = url;
269
+ fileWrites.push({
270
+ relationField: file.relationField,
271
+ url,
272
+ ...(file.contentType ? { contentType: file.contentType } : {}),
273
+ });
274
+ }
275
+ this.validateNoDuplicatePathComposition(pathInputs);
276
+ return {
277
+ ok: true,
278
+ resourceId,
279
+ resourceIri,
280
+ row,
281
+ rdfMutations: [{
282
+ type: 'upsert',
283
+ subject: resourceIri,
284
+ fields: Object.keys(row),
285
+ }],
286
+ fileWrites,
287
+ warnings: [],
288
+ errors: [],
289
+ };
290
+ }
291
+ async upsertResourceWithDocument(resource, input) {
292
+ const plan = await this.dryRunResourceWithDocument(resource, input);
293
+ const authenticatedFetch = this.dialect.getAuthenticatedFetch();
294
+ const writtenFiles = [];
295
+ try {
296
+ for (const file of this.getResourceFileInputs(input)) {
297
+ const pathOrUrl = file.url ?? file.path;
298
+ if (!pathOrUrl) {
299
+ throw new Error(`resource file '${file.relationField}' requires path or url`);
300
+ }
301
+ const url = this.resolvePodFileUrl(pathOrUrl);
302
+ const headers = {};
303
+ if (file.contentType) {
304
+ headers['content-type'] = file.contentType;
305
+ }
306
+ const response = await authenticatedFetch(url, {
307
+ method: 'PUT',
308
+ headers,
309
+ body: file.content ?? '',
310
+ });
311
+ if (!response.ok) {
312
+ throw new Error(`Failed to write resource file ${url}: HTTP ${response.status}`);
313
+ }
314
+ writtenFiles.push(url);
315
+ }
316
+ await this.insert(resource).values(plan.row).execute();
317
+ return plan;
318
+ }
319
+ catch (error) {
320
+ for (const url of writtenFiles.reverse()) {
321
+ try {
322
+ await authenticatedFetch(url, { method: 'DELETE' });
323
+ }
324
+ catch {
325
+ // Best-effort compensating cleanup. Preserve the original failure.
326
+ }
327
+ }
328
+ throw error;
329
+ }
330
+ }
331
+ async moveDocumentAndRelink(resource, input) {
332
+ const relationField = input.relationField ?? 'document';
333
+ const fromUrl = input.fromUrl ?? (input.fromPath ? this.resolvePodFileUrl(input.fromPath) : undefined);
334
+ const toPathOrUrl = input.toUrl ?? input.toPath;
335
+ if (!toPathOrUrl) {
336
+ throw new Error('moveDocumentAndRelink requires toPath or toUrl');
337
+ }
338
+ const toUrl = this.resolvePodFileUrl(toPathOrUrl);
339
+ this.validateNoDuplicatePathComposition([input.id, toPathOrUrl]);
340
+ const authenticatedFetch = this.dialect.getAuthenticatedFetch();
341
+ let body = input.content ?? null;
342
+ let contentType = input.contentType;
343
+ if (body === null && fromUrl) {
344
+ const response = await authenticatedFetch(fromUrl, { method: 'GET' });
345
+ if (!response.ok) {
346
+ throw new Error(`Failed to read source document ${fromUrl}: HTTP ${response.status}`);
347
+ }
348
+ body = await response.blob();
349
+ contentType = contentType ?? response.headers.get('content-type') ?? undefined;
350
+ }
351
+ if (body === null) {
352
+ throw new Error('moveDocumentAndRelink requires content when fromPath/fromUrl is not provided');
353
+ }
354
+ const headers = {};
355
+ if (contentType) {
356
+ headers['content-type'] = contentType;
357
+ }
358
+ const writeResponse = await authenticatedFetch(toUrl, { method: 'PUT', headers, body });
359
+ if (!writeResponse.ok) {
360
+ throw new Error(`Failed to write destination document ${toUrl}: HTTP ${writeResponse.status}`);
361
+ }
362
+ try {
363
+ const updated = await this.updateById(resource, input.id, { [relationField]: toUrl });
364
+ if (fromUrl && fromUrl !== toUrl) {
365
+ await authenticatedFetch(fromUrl, { method: 'DELETE' });
366
+ }
367
+ return { fromUrl, toUrl, resource: updated };
368
+ }
369
+ catch (error) {
370
+ try {
371
+ await authenticatedFetch(toUrl, { method: 'DELETE' });
372
+ }
373
+ catch {
374
+ // Best-effort compensating cleanup. Preserve the original failure.
375
+ }
376
+ throw error;
377
+ }
378
+ }
379
+ async deleteResourceWithDocument(resource, input) {
380
+ const relationField = input.relationField ?? 'document';
381
+ const existing = await this.findById(resource, input.id);
382
+ const fileUrl = input.url ??
383
+ (input.path ? this.resolvePodFileUrl(input.path) : undefined) ??
384
+ (typeof existing?.[relationField] === 'string' ? existing[relationField] : undefined);
385
+ const deleted = await this.deleteById(resource, input.id);
386
+ if (deleted && fileUrl) {
387
+ const response = await this.dialect.getAuthenticatedFetch()(fileUrl, { method: 'DELETE' });
388
+ if (!response.ok && response.status !== 404) {
389
+ throw new Error(`Failed to delete resource file ${fileUrl}: HTTP ${response.status}`);
390
+ }
391
+ }
392
+ return { deleted, fileUrl };
393
+ }
197
394
  // 直接执行 SPARQL 查询(高级 escape hatch)
198
395
  async execute(query) {
199
396
  return await this.executeSPARQL(query);