@nvwa-app/sdk-core 6.0.21 → 6.0.22
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.
- package/dist/index.d.mts +133 -132
- package/dist/index.d.ts +133 -132
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -188,138 +188,6 @@ declare class NvwaCapability {
|
|
|
188
188
|
execute<Result = unknown>(capabilityName: string, param?: unknown): Promise<Result | undefined>;
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
-
declare const ENTITIES_BASE_PATH = "/entities";
|
|
192
|
-
/**
|
|
193
|
-
* 创建带鉴权的 PostgREST 客户端。所有请求经 fetchWithAuth 发送,
|
|
194
|
-
* 会从 storage 读取 JWT 并设置 Authorization: Bearer,跨子域/跨域时必须通过此客户端调用 entities。
|
|
195
|
-
*/
|
|
196
|
-
declare const createPostgrestClient: (baseUrl: string, httpClient: NvwaHttpClient) => PostgrestClient<any, {} | _nvwa_app_postgrest_js.PostgrestClientOptions, "public", any>;
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* 公共的 Inspector 消息类型定义
|
|
200
|
-
*/
|
|
201
|
-
interface HoverInspectorMessage {
|
|
202
|
-
type: "HOVER_INSPECTOR_ENABLE" | "HOVER_INSPECTOR_DISABLE" | "HOVER_INSPECTOR_ELEMENT_HOVER" | "HOVER_INSPECTOR_ELEMENT_LEAVE" | "HOVER_INSPECTOR_ELEMENT_SELECT";
|
|
203
|
-
sourceLocation?: string | null;
|
|
204
|
-
elementInfo?: {
|
|
205
|
-
tagName: string;
|
|
206
|
-
className: string;
|
|
207
|
-
id: string;
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
interface IframeSourceLocationMessage {
|
|
211
|
-
type: "GET_SOURCE_LOCATION_REQUEST" | "GET_SOURCE_LOCATION_RESPONSE";
|
|
212
|
-
sourceLocation?: string | null;
|
|
213
|
-
error?: string;
|
|
214
|
-
requestId?: string;
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* 公共的 Overlay 工具函数
|
|
218
|
-
*/
|
|
219
|
-
declare class OverlayManager {
|
|
220
|
-
private hoverOverlay;
|
|
221
|
-
private selectedOverlay;
|
|
222
|
-
private tooltip;
|
|
223
|
-
private hoverElement;
|
|
224
|
-
private selectedElement;
|
|
225
|
-
private hoverUpdateHandler;
|
|
226
|
-
private selectedUpdateHandler;
|
|
227
|
-
constructor();
|
|
228
|
-
private createStyles;
|
|
229
|
-
private createTooltip;
|
|
230
|
-
private createOverlay;
|
|
231
|
-
private updateOverlayPosition;
|
|
232
|
-
private removeOverlay;
|
|
233
|
-
highlightElement(el: HTMLElement, sourceLocation: string | null): void;
|
|
234
|
-
selectElement(el: HTMLElement, sourceLocation: string | null): void;
|
|
235
|
-
removeHighlight(): void;
|
|
236
|
-
clearSelection(): void;
|
|
237
|
-
cleanup(): void;
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* 从 DOM 获取 source location
|
|
241
|
-
* @param rootSelector 根元素的选择器 ID,默认为 'root'
|
|
242
|
-
* @returns source location 字符串,格式如 "pages/index.tsx:3"
|
|
243
|
-
*/
|
|
244
|
-
declare function getSourceLocationFromDOM(rootSelector?: string): string | null;
|
|
245
|
-
|
|
246
|
-
/**
|
|
247
|
-
* Payment 客户端:供生成应用(项目侧)调用项目 runtime 内置的 payment API。
|
|
248
|
-
* 请求形态与 ProjectPaymentApi(@Rpc)一致;与 Workspace 积分充值无关。
|
|
249
|
-
*/
|
|
250
|
-
interface CreatePaymentParams {
|
|
251
|
-
/** 金额(最小单位,如分) */
|
|
252
|
-
amount: number;
|
|
253
|
-
/** 标的描述(如 "商品购买") */
|
|
254
|
-
subject: string;
|
|
255
|
-
/** 货币,默认 cny */
|
|
256
|
-
currency?: string;
|
|
257
|
-
/** 支付方式:native(扫码)| h5(跳转)等,由项目 backend 与 provider 决定 */
|
|
258
|
-
method?: "native" | "h5";
|
|
259
|
-
/** 指定 provider(如 "wechat-pay" | "alipay" | "stripe"),不传时由 backend 用默认/首个已配置 provider */
|
|
260
|
-
providerId?: string;
|
|
261
|
-
/** 业务元数据 */
|
|
262
|
-
metadata?: Record<string, unknown>;
|
|
263
|
-
}
|
|
264
|
-
/** 创建支付返回的支付参数(按渠道不同) */
|
|
265
|
-
type PayParams = {
|
|
266
|
-
codeUrl: string;
|
|
267
|
-
} | {
|
|
268
|
-
formHtml: string;
|
|
269
|
-
} | {
|
|
270
|
-
clientSecret: string;
|
|
271
|
-
} | Record<string, unknown>;
|
|
272
|
-
interface CreatePaymentResponse {
|
|
273
|
-
orderId: number;
|
|
274
|
-
/** 统一抽象:用于展示二维码 / 跳转表单 / Stripe Element 等 */
|
|
275
|
-
payParams: PayParams;
|
|
276
|
-
/** 兼容 example 的 codeUrl 等字段(可选) */
|
|
277
|
-
order?: Record<string, unknown>;
|
|
278
|
-
}
|
|
279
|
-
type PaymentOrderStatus = "pending" | "processing" | "succeeded" | "failed" | "canceled" | "refunded";
|
|
280
|
-
interface OrderStatus {
|
|
281
|
-
orderId: number;
|
|
282
|
-
status: PaymentOrderStatus;
|
|
283
|
-
order?: Record<string, unknown>;
|
|
284
|
-
}
|
|
285
|
-
type PaymentFetch = (input: string, init?: RequestInit) => Promise<Response>;
|
|
286
|
-
/** 端类型:与 capability Provider 的 supportedPlatforms 一致,用于按端过滤可用 provider */
|
|
287
|
-
type PaymentPlatform = "web" | "uniapp" | "wechat-miniprogram";
|
|
288
|
-
/**
|
|
289
|
-
* 项目侧 Payment 客户端:调用 runtime 内置的 payment API(/payment/*),
|
|
290
|
-
* 非项目 functions 目录。baseUrl 为项目 backend 根地址(与 auth/entities 一致)。
|
|
291
|
-
*/
|
|
292
|
-
declare class PaymentClient {
|
|
293
|
-
private baseUrl;
|
|
294
|
-
private pathPrefix;
|
|
295
|
-
private fetchImpl;
|
|
296
|
-
constructor(baseUrl: string, pathPrefix?: string, fetchImpl?: PaymentFetch);
|
|
297
|
-
/** RPC 风格路径:baseUrl + pathPrefix + /methodName,POST JSON body */
|
|
298
|
-
private rpc;
|
|
299
|
-
/**
|
|
300
|
-
* 获取在当前端可用的 payment provider 列表。
|
|
301
|
-
* - 可传 platform:只返回在该端能完成支付的 provider(如微信小程序内仅返回 wechat-pay)。
|
|
302
|
-
* - 若 backend 返回带 supportedPlatforms 的列表,则按 platform 在客户端过滤。
|
|
303
|
-
* 若 backend 未实现该接口则返回空数组。
|
|
304
|
-
*/
|
|
305
|
-
getConfiguredProviders(options?: {
|
|
306
|
-
platform?: PaymentPlatform;
|
|
307
|
-
}): Promise<string[]>;
|
|
308
|
-
/**
|
|
309
|
-
* 创建支付订单,返回 orderId 与 payParams(codeUrl / formHtml / clientSecret 等)。
|
|
310
|
-
* 可传 providerId 指定 provider,不传时由 backend 用默认/首个已配置 provider。
|
|
311
|
-
*/
|
|
312
|
-
createPayment(params: CreatePaymentParams): Promise<CreatePaymentResponse>;
|
|
313
|
-
/**
|
|
314
|
-
* 查询订单状态。
|
|
315
|
-
*/
|
|
316
|
-
queryOrder(orderId: number): Promise<OrderStatus>;
|
|
317
|
-
/**
|
|
318
|
-
* 取消订单(若项目 backend 支持)。
|
|
319
|
-
*/
|
|
320
|
-
cancelOrder(orderId: number): Promise<void>;
|
|
321
|
-
}
|
|
322
|
-
|
|
323
191
|
/**
|
|
324
192
|
* Auth 常量与客户端:CURRENT_JWT_KEY 供 NvwaHttpClient 使用;
|
|
325
193
|
* AuthClient 调用项目 runtime 的 /auth 接口(better-auth)。
|
|
@@ -479,7 +347,140 @@ declare class AuthClient {
|
|
|
479
347
|
private postJson;
|
|
480
348
|
}
|
|
481
349
|
|
|
350
|
+
declare const ENTITIES_BASE_PATH = "/entities";
|
|
351
|
+
/**
|
|
352
|
+
* 创建带鉴权的 PostgREST 客户端。所有请求经 fetchWithAuth 发送,
|
|
353
|
+
* 会从 storage 读取 JWT 并设置 Authorization: Bearer,跨子域/跨域时必须通过此客户端调用 entities。
|
|
354
|
+
*/
|
|
355
|
+
declare const createPostgrestClient: (baseUrl: string, httpClient: NvwaHttpClient) => PostgrestClient<any, {} | _nvwa_app_postgrest_js.PostgrestClientOptions, "public", any>;
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* 公共的 Inspector 消息类型定义
|
|
359
|
+
*/
|
|
360
|
+
interface HoverInspectorMessage {
|
|
361
|
+
type: "HOVER_INSPECTOR_ENABLE" | "HOVER_INSPECTOR_DISABLE" | "HOVER_INSPECTOR_ELEMENT_HOVER" | "HOVER_INSPECTOR_ELEMENT_LEAVE" | "HOVER_INSPECTOR_ELEMENT_SELECT";
|
|
362
|
+
sourceLocation?: string | null;
|
|
363
|
+
elementInfo?: {
|
|
364
|
+
tagName: string;
|
|
365
|
+
className: string;
|
|
366
|
+
id: string;
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
interface IframeSourceLocationMessage {
|
|
370
|
+
type: "GET_SOURCE_LOCATION_REQUEST" | "GET_SOURCE_LOCATION_RESPONSE";
|
|
371
|
+
sourceLocation?: string | null;
|
|
372
|
+
error?: string;
|
|
373
|
+
requestId?: string;
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* 公共的 Overlay 工具函数
|
|
377
|
+
*/
|
|
378
|
+
declare class OverlayManager {
|
|
379
|
+
private hoverOverlay;
|
|
380
|
+
private selectedOverlay;
|
|
381
|
+
private tooltip;
|
|
382
|
+
private hoverElement;
|
|
383
|
+
private selectedElement;
|
|
384
|
+
private hoverUpdateHandler;
|
|
385
|
+
private selectedUpdateHandler;
|
|
386
|
+
constructor();
|
|
387
|
+
private createStyles;
|
|
388
|
+
private createTooltip;
|
|
389
|
+
private createOverlay;
|
|
390
|
+
private updateOverlayPosition;
|
|
391
|
+
private removeOverlay;
|
|
392
|
+
highlightElement(el: HTMLElement, sourceLocation: string | null): void;
|
|
393
|
+
selectElement(el: HTMLElement, sourceLocation: string | null): void;
|
|
394
|
+
removeHighlight(): void;
|
|
395
|
+
clearSelection(): void;
|
|
396
|
+
cleanup(): void;
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* 从 DOM 获取 source location
|
|
400
|
+
* @param rootSelector 根元素的选择器 ID,默认为 'root'
|
|
401
|
+
* @returns source location 字符串,格式如 "pages/index.tsx:3"
|
|
402
|
+
*/
|
|
403
|
+
declare function getSourceLocationFromDOM(rootSelector?: string): string | null;
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Payment 客户端:供生成应用(项目侧)调用项目 runtime 内置的 payment API。
|
|
407
|
+
* 请求形态与 ProjectPaymentApi(@Rpc)一致;与 Workspace 积分充值无关。
|
|
408
|
+
*/
|
|
409
|
+
interface CreatePaymentParams {
|
|
410
|
+
/** 金额(最小单位,如分) */
|
|
411
|
+
amount: number;
|
|
412
|
+
/** 标的描述(如 "商品购买") */
|
|
413
|
+
subject: string;
|
|
414
|
+
/** 货币,默认 cny */
|
|
415
|
+
currency?: string;
|
|
416
|
+
/** 支付方式:native(扫码)| h5(跳转)等,由项目 backend 与 provider 决定 */
|
|
417
|
+
method?: "native" | "h5";
|
|
418
|
+
/** 指定 provider(如 "wechat-pay" | "alipay" | "stripe"),不传时由 backend 用默认/首个已配置 provider */
|
|
419
|
+
providerId?: string;
|
|
420
|
+
/** 业务元数据 */
|
|
421
|
+
metadata?: Record<string, unknown>;
|
|
422
|
+
}
|
|
423
|
+
/** 创建支付返回的支付参数(按渠道不同) */
|
|
424
|
+
type PayParams = {
|
|
425
|
+
codeUrl: string;
|
|
426
|
+
} | {
|
|
427
|
+
formHtml: string;
|
|
428
|
+
} | {
|
|
429
|
+
clientSecret: string;
|
|
430
|
+
} | Record<string, unknown>;
|
|
431
|
+
interface CreatePaymentResponse {
|
|
432
|
+
orderId: number;
|
|
433
|
+
/** 统一抽象:用于展示二维码 / 跳转表单 / Stripe Element 等 */
|
|
434
|
+
payParams: PayParams;
|
|
435
|
+
/** 兼容 example 的 codeUrl 等字段(可选) */
|
|
436
|
+
order?: Record<string, unknown>;
|
|
437
|
+
}
|
|
438
|
+
type PaymentOrderStatus = "pending" | "processing" | "succeeded" | "failed" | "canceled" | "refunded";
|
|
439
|
+
interface OrderStatus {
|
|
440
|
+
orderId: number;
|
|
441
|
+
status: PaymentOrderStatus;
|
|
442
|
+
order?: Record<string, unknown>;
|
|
443
|
+
}
|
|
444
|
+
type PaymentFetch = (input: string, init?: RequestInit) => Promise<Response>;
|
|
445
|
+
/** 端类型:与 capability Provider 的 supportedPlatforms 一致,用于按端过滤可用 provider */
|
|
446
|
+
type PaymentPlatform = "web" | "uniapp" | "wechat-miniprogram";
|
|
447
|
+
/**
|
|
448
|
+
* 项目侧 Payment 客户端:调用 runtime 内置的 payment API(/payment/*),
|
|
449
|
+
* 非项目 functions 目录。baseUrl 为项目 backend 根地址(与 auth/entities 一致)。
|
|
450
|
+
*/
|
|
451
|
+
declare class PaymentClient {
|
|
452
|
+
private baseUrl;
|
|
453
|
+
private pathPrefix;
|
|
454
|
+
private fetchImpl;
|
|
455
|
+
constructor(baseUrl: string, pathPrefix?: string, fetchImpl?: PaymentFetch);
|
|
456
|
+
/** RPC 风格路径:baseUrl + pathPrefix + /methodName,POST JSON body */
|
|
457
|
+
private rpc;
|
|
458
|
+
/**
|
|
459
|
+
* 获取在当前端可用的 payment provider 列表。
|
|
460
|
+
* - 可传 platform:只返回在该端能完成支付的 provider(如微信小程序内仅返回 wechat-pay)。
|
|
461
|
+
* - 若 backend 返回带 supportedPlatforms 的列表,则按 platform 在客户端过滤。
|
|
462
|
+
* 若 backend 未实现该接口则返回空数组。
|
|
463
|
+
*/
|
|
464
|
+
getConfiguredProviders(options?: {
|
|
465
|
+
platform?: PaymentPlatform;
|
|
466
|
+
}): Promise<string[]>;
|
|
467
|
+
/**
|
|
468
|
+
* 创建支付订单,返回 orderId 与 payParams(codeUrl / formHtml / clientSecret 等)。
|
|
469
|
+
* 可传 providerId 指定 provider,不传时由 backend 用默认/首个已配置 provider。
|
|
470
|
+
*/
|
|
471
|
+
createPayment(params: CreatePaymentParams): Promise<CreatePaymentResponse>;
|
|
472
|
+
/**
|
|
473
|
+
* 查询订单状态。
|
|
474
|
+
*/
|
|
475
|
+
queryOrder(orderId: number): Promise<OrderStatus>;
|
|
476
|
+
/**
|
|
477
|
+
* 取消订单(若项目 backend 支持)。
|
|
478
|
+
*/
|
|
479
|
+
cancelOrder(orderId: number): Promise<void>;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
482
|
interface INvwa {
|
|
483
|
+
auth: AuthClient;
|
|
483
484
|
entities: PostgrestClient;
|
|
484
485
|
functions: NvwaEdgeFunctions;
|
|
485
486
|
fileStorage: NvwaFileStorage;
|
package/dist/index.d.ts
CHANGED
|
@@ -188,138 +188,6 @@ declare class NvwaCapability {
|
|
|
188
188
|
execute<Result = unknown>(capabilityName: string, param?: unknown): Promise<Result | undefined>;
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
-
declare const ENTITIES_BASE_PATH = "/entities";
|
|
192
|
-
/**
|
|
193
|
-
* 创建带鉴权的 PostgREST 客户端。所有请求经 fetchWithAuth 发送,
|
|
194
|
-
* 会从 storage 读取 JWT 并设置 Authorization: Bearer,跨子域/跨域时必须通过此客户端调用 entities。
|
|
195
|
-
*/
|
|
196
|
-
declare const createPostgrestClient: (baseUrl: string, httpClient: NvwaHttpClient) => PostgrestClient<any, {} | _nvwa_app_postgrest_js.PostgrestClientOptions, "public", any>;
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* 公共的 Inspector 消息类型定义
|
|
200
|
-
*/
|
|
201
|
-
interface HoverInspectorMessage {
|
|
202
|
-
type: "HOVER_INSPECTOR_ENABLE" | "HOVER_INSPECTOR_DISABLE" | "HOVER_INSPECTOR_ELEMENT_HOVER" | "HOVER_INSPECTOR_ELEMENT_LEAVE" | "HOVER_INSPECTOR_ELEMENT_SELECT";
|
|
203
|
-
sourceLocation?: string | null;
|
|
204
|
-
elementInfo?: {
|
|
205
|
-
tagName: string;
|
|
206
|
-
className: string;
|
|
207
|
-
id: string;
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
interface IframeSourceLocationMessage {
|
|
211
|
-
type: "GET_SOURCE_LOCATION_REQUEST" | "GET_SOURCE_LOCATION_RESPONSE";
|
|
212
|
-
sourceLocation?: string | null;
|
|
213
|
-
error?: string;
|
|
214
|
-
requestId?: string;
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* 公共的 Overlay 工具函数
|
|
218
|
-
*/
|
|
219
|
-
declare class OverlayManager {
|
|
220
|
-
private hoverOverlay;
|
|
221
|
-
private selectedOverlay;
|
|
222
|
-
private tooltip;
|
|
223
|
-
private hoverElement;
|
|
224
|
-
private selectedElement;
|
|
225
|
-
private hoverUpdateHandler;
|
|
226
|
-
private selectedUpdateHandler;
|
|
227
|
-
constructor();
|
|
228
|
-
private createStyles;
|
|
229
|
-
private createTooltip;
|
|
230
|
-
private createOverlay;
|
|
231
|
-
private updateOverlayPosition;
|
|
232
|
-
private removeOverlay;
|
|
233
|
-
highlightElement(el: HTMLElement, sourceLocation: string | null): void;
|
|
234
|
-
selectElement(el: HTMLElement, sourceLocation: string | null): void;
|
|
235
|
-
removeHighlight(): void;
|
|
236
|
-
clearSelection(): void;
|
|
237
|
-
cleanup(): void;
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* 从 DOM 获取 source location
|
|
241
|
-
* @param rootSelector 根元素的选择器 ID,默认为 'root'
|
|
242
|
-
* @returns source location 字符串,格式如 "pages/index.tsx:3"
|
|
243
|
-
*/
|
|
244
|
-
declare function getSourceLocationFromDOM(rootSelector?: string): string | null;
|
|
245
|
-
|
|
246
|
-
/**
|
|
247
|
-
* Payment 客户端:供生成应用(项目侧)调用项目 runtime 内置的 payment API。
|
|
248
|
-
* 请求形态与 ProjectPaymentApi(@Rpc)一致;与 Workspace 积分充值无关。
|
|
249
|
-
*/
|
|
250
|
-
interface CreatePaymentParams {
|
|
251
|
-
/** 金额(最小单位,如分) */
|
|
252
|
-
amount: number;
|
|
253
|
-
/** 标的描述(如 "商品购买") */
|
|
254
|
-
subject: string;
|
|
255
|
-
/** 货币,默认 cny */
|
|
256
|
-
currency?: string;
|
|
257
|
-
/** 支付方式:native(扫码)| h5(跳转)等,由项目 backend 与 provider 决定 */
|
|
258
|
-
method?: "native" | "h5";
|
|
259
|
-
/** 指定 provider(如 "wechat-pay" | "alipay" | "stripe"),不传时由 backend 用默认/首个已配置 provider */
|
|
260
|
-
providerId?: string;
|
|
261
|
-
/** 业务元数据 */
|
|
262
|
-
metadata?: Record<string, unknown>;
|
|
263
|
-
}
|
|
264
|
-
/** 创建支付返回的支付参数(按渠道不同) */
|
|
265
|
-
type PayParams = {
|
|
266
|
-
codeUrl: string;
|
|
267
|
-
} | {
|
|
268
|
-
formHtml: string;
|
|
269
|
-
} | {
|
|
270
|
-
clientSecret: string;
|
|
271
|
-
} | Record<string, unknown>;
|
|
272
|
-
interface CreatePaymentResponse {
|
|
273
|
-
orderId: number;
|
|
274
|
-
/** 统一抽象:用于展示二维码 / 跳转表单 / Stripe Element 等 */
|
|
275
|
-
payParams: PayParams;
|
|
276
|
-
/** 兼容 example 的 codeUrl 等字段(可选) */
|
|
277
|
-
order?: Record<string, unknown>;
|
|
278
|
-
}
|
|
279
|
-
type PaymentOrderStatus = "pending" | "processing" | "succeeded" | "failed" | "canceled" | "refunded";
|
|
280
|
-
interface OrderStatus {
|
|
281
|
-
orderId: number;
|
|
282
|
-
status: PaymentOrderStatus;
|
|
283
|
-
order?: Record<string, unknown>;
|
|
284
|
-
}
|
|
285
|
-
type PaymentFetch = (input: string, init?: RequestInit) => Promise<Response>;
|
|
286
|
-
/** 端类型:与 capability Provider 的 supportedPlatforms 一致,用于按端过滤可用 provider */
|
|
287
|
-
type PaymentPlatform = "web" | "uniapp" | "wechat-miniprogram";
|
|
288
|
-
/**
|
|
289
|
-
* 项目侧 Payment 客户端:调用 runtime 内置的 payment API(/payment/*),
|
|
290
|
-
* 非项目 functions 目录。baseUrl 为项目 backend 根地址(与 auth/entities 一致)。
|
|
291
|
-
*/
|
|
292
|
-
declare class PaymentClient {
|
|
293
|
-
private baseUrl;
|
|
294
|
-
private pathPrefix;
|
|
295
|
-
private fetchImpl;
|
|
296
|
-
constructor(baseUrl: string, pathPrefix?: string, fetchImpl?: PaymentFetch);
|
|
297
|
-
/** RPC 风格路径:baseUrl + pathPrefix + /methodName,POST JSON body */
|
|
298
|
-
private rpc;
|
|
299
|
-
/**
|
|
300
|
-
* 获取在当前端可用的 payment provider 列表。
|
|
301
|
-
* - 可传 platform:只返回在该端能完成支付的 provider(如微信小程序内仅返回 wechat-pay)。
|
|
302
|
-
* - 若 backend 返回带 supportedPlatforms 的列表,则按 platform 在客户端过滤。
|
|
303
|
-
* 若 backend 未实现该接口则返回空数组。
|
|
304
|
-
*/
|
|
305
|
-
getConfiguredProviders(options?: {
|
|
306
|
-
platform?: PaymentPlatform;
|
|
307
|
-
}): Promise<string[]>;
|
|
308
|
-
/**
|
|
309
|
-
* 创建支付订单,返回 orderId 与 payParams(codeUrl / formHtml / clientSecret 等)。
|
|
310
|
-
* 可传 providerId 指定 provider,不传时由 backend 用默认/首个已配置 provider。
|
|
311
|
-
*/
|
|
312
|
-
createPayment(params: CreatePaymentParams): Promise<CreatePaymentResponse>;
|
|
313
|
-
/**
|
|
314
|
-
* 查询订单状态。
|
|
315
|
-
*/
|
|
316
|
-
queryOrder(orderId: number): Promise<OrderStatus>;
|
|
317
|
-
/**
|
|
318
|
-
* 取消订单(若项目 backend 支持)。
|
|
319
|
-
*/
|
|
320
|
-
cancelOrder(orderId: number): Promise<void>;
|
|
321
|
-
}
|
|
322
|
-
|
|
323
191
|
/**
|
|
324
192
|
* Auth 常量与客户端:CURRENT_JWT_KEY 供 NvwaHttpClient 使用;
|
|
325
193
|
* AuthClient 调用项目 runtime 的 /auth 接口(better-auth)。
|
|
@@ -479,7 +347,140 @@ declare class AuthClient {
|
|
|
479
347
|
private postJson;
|
|
480
348
|
}
|
|
481
349
|
|
|
350
|
+
declare const ENTITIES_BASE_PATH = "/entities";
|
|
351
|
+
/**
|
|
352
|
+
* 创建带鉴权的 PostgREST 客户端。所有请求经 fetchWithAuth 发送,
|
|
353
|
+
* 会从 storage 读取 JWT 并设置 Authorization: Bearer,跨子域/跨域时必须通过此客户端调用 entities。
|
|
354
|
+
*/
|
|
355
|
+
declare const createPostgrestClient: (baseUrl: string, httpClient: NvwaHttpClient) => PostgrestClient<any, {} | _nvwa_app_postgrest_js.PostgrestClientOptions, "public", any>;
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* 公共的 Inspector 消息类型定义
|
|
359
|
+
*/
|
|
360
|
+
interface HoverInspectorMessage {
|
|
361
|
+
type: "HOVER_INSPECTOR_ENABLE" | "HOVER_INSPECTOR_DISABLE" | "HOVER_INSPECTOR_ELEMENT_HOVER" | "HOVER_INSPECTOR_ELEMENT_LEAVE" | "HOVER_INSPECTOR_ELEMENT_SELECT";
|
|
362
|
+
sourceLocation?: string | null;
|
|
363
|
+
elementInfo?: {
|
|
364
|
+
tagName: string;
|
|
365
|
+
className: string;
|
|
366
|
+
id: string;
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
interface IframeSourceLocationMessage {
|
|
370
|
+
type: "GET_SOURCE_LOCATION_REQUEST" | "GET_SOURCE_LOCATION_RESPONSE";
|
|
371
|
+
sourceLocation?: string | null;
|
|
372
|
+
error?: string;
|
|
373
|
+
requestId?: string;
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* 公共的 Overlay 工具函数
|
|
377
|
+
*/
|
|
378
|
+
declare class OverlayManager {
|
|
379
|
+
private hoverOverlay;
|
|
380
|
+
private selectedOverlay;
|
|
381
|
+
private tooltip;
|
|
382
|
+
private hoverElement;
|
|
383
|
+
private selectedElement;
|
|
384
|
+
private hoverUpdateHandler;
|
|
385
|
+
private selectedUpdateHandler;
|
|
386
|
+
constructor();
|
|
387
|
+
private createStyles;
|
|
388
|
+
private createTooltip;
|
|
389
|
+
private createOverlay;
|
|
390
|
+
private updateOverlayPosition;
|
|
391
|
+
private removeOverlay;
|
|
392
|
+
highlightElement(el: HTMLElement, sourceLocation: string | null): void;
|
|
393
|
+
selectElement(el: HTMLElement, sourceLocation: string | null): void;
|
|
394
|
+
removeHighlight(): void;
|
|
395
|
+
clearSelection(): void;
|
|
396
|
+
cleanup(): void;
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* 从 DOM 获取 source location
|
|
400
|
+
* @param rootSelector 根元素的选择器 ID,默认为 'root'
|
|
401
|
+
* @returns source location 字符串,格式如 "pages/index.tsx:3"
|
|
402
|
+
*/
|
|
403
|
+
declare function getSourceLocationFromDOM(rootSelector?: string): string | null;
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Payment 客户端:供生成应用(项目侧)调用项目 runtime 内置的 payment API。
|
|
407
|
+
* 请求形态与 ProjectPaymentApi(@Rpc)一致;与 Workspace 积分充值无关。
|
|
408
|
+
*/
|
|
409
|
+
interface CreatePaymentParams {
|
|
410
|
+
/** 金额(最小单位,如分) */
|
|
411
|
+
amount: number;
|
|
412
|
+
/** 标的描述(如 "商品购买") */
|
|
413
|
+
subject: string;
|
|
414
|
+
/** 货币,默认 cny */
|
|
415
|
+
currency?: string;
|
|
416
|
+
/** 支付方式:native(扫码)| h5(跳转)等,由项目 backend 与 provider 决定 */
|
|
417
|
+
method?: "native" | "h5";
|
|
418
|
+
/** 指定 provider(如 "wechat-pay" | "alipay" | "stripe"),不传时由 backend 用默认/首个已配置 provider */
|
|
419
|
+
providerId?: string;
|
|
420
|
+
/** 业务元数据 */
|
|
421
|
+
metadata?: Record<string, unknown>;
|
|
422
|
+
}
|
|
423
|
+
/** 创建支付返回的支付参数(按渠道不同) */
|
|
424
|
+
type PayParams = {
|
|
425
|
+
codeUrl: string;
|
|
426
|
+
} | {
|
|
427
|
+
formHtml: string;
|
|
428
|
+
} | {
|
|
429
|
+
clientSecret: string;
|
|
430
|
+
} | Record<string, unknown>;
|
|
431
|
+
interface CreatePaymentResponse {
|
|
432
|
+
orderId: number;
|
|
433
|
+
/** 统一抽象:用于展示二维码 / 跳转表单 / Stripe Element 等 */
|
|
434
|
+
payParams: PayParams;
|
|
435
|
+
/** 兼容 example 的 codeUrl 等字段(可选) */
|
|
436
|
+
order?: Record<string, unknown>;
|
|
437
|
+
}
|
|
438
|
+
type PaymentOrderStatus = "pending" | "processing" | "succeeded" | "failed" | "canceled" | "refunded";
|
|
439
|
+
interface OrderStatus {
|
|
440
|
+
orderId: number;
|
|
441
|
+
status: PaymentOrderStatus;
|
|
442
|
+
order?: Record<string, unknown>;
|
|
443
|
+
}
|
|
444
|
+
type PaymentFetch = (input: string, init?: RequestInit) => Promise<Response>;
|
|
445
|
+
/** 端类型:与 capability Provider 的 supportedPlatforms 一致,用于按端过滤可用 provider */
|
|
446
|
+
type PaymentPlatform = "web" | "uniapp" | "wechat-miniprogram";
|
|
447
|
+
/**
|
|
448
|
+
* 项目侧 Payment 客户端:调用 runtime 内置的 payment API(/payment/*),
|
|
449
|
+
* 非项目 functions 目录。baseUrl 为项目 backend 根地址(与 auth/entities 一致)。
|
|
450
|
+
*/
|
|
451
|
+
declare class PaymentClient {
|
|
452
|
+
private baseUrl;
|
|
453
|
+
private pathPrefix;
|
|
454
|
+
private fetchImpl;
|
|
455
|
+
constructor(baseUrl: string, pathPrefix?: string, fetchImpl?: PaymentFetch);
|
|
456
|
+
/** RPC 风格路径:baseUrl + pathPrefix + /methodName,POST JSON body */
|
|
457
|
+
private rpc;
|
|
458
|
+
/**
|
|
459
|
+
* 获取在当前端可用的 payment provider 列表。
|
|
460
|
+
* - 可传 platform:只返回在该端能完成支付的 provider(如微信小程序内仅返回 wechat-pay)。
|
|
461
|
+
* - 若 backend 返回带 supportedPlatforms 的列表,则按 platform 在客户端过滤。
|
|
462
|
+
* 若 backend 未实现该接口则返回空数组。
|
|
463
|
+
*/
|
|
464
|
+
getConfiguredProviders(options?: {
|
|
465
|
+
platform?: PaymentPlatform;
|
|
466
|
+
}): Promise<string[]>;
|
|
467
|
+
/**
|
|
468
|
+
* 创建支付订单,返回 orderId 与 payParams(codeUrl / formHtml / clientSecret 等)。
|
|
469
|
+
* 可传 providerId 指定 provider,不传时由 backend 用默认/首个已配置 provider。
|
|
470
|
+
*/
|
|
471
|
+
createPayment(params: CreatePaymentParams): Promise<CreatePaymentResponse>;
|
|
472
|
+
/**
|
|
473
|
+
* 查询订单状态。
|
|
474
|
+
*/
|
|
475
|
+
queryOrder(orderId: number): Promise<OrderStatus>;
|
|
476
|
+
/**
|
|
477
|
+
* 取消订单(若项目 backend 支持)。
|
|
478
|
+
*/
|
|
479
|
+
cancelOrder(orderId: number): Promise<void>;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
482
|
interface INvwa {
|
|
483
|
+
auth: AuthClient;
|
|
483
484
|
entities: PostgrestClient;
|
|
484
485
|
functions: NvwaEdgeFunctions;
|
|
485
486
|
fileStorage: NvwaFileStorage;
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var lt=Object.create;var q=Object.defineProperty;var ut=Object.getOwnPropertyDescriptor;var ct=Object.getOwnPropertyNames;var ht=Object.getPrototypeOf,dt=Object.prototype.hasOwnProperty;var we=(n,e)=>()=>(n&&(e=n(n=0)),e);var x=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),be=(n,e)=>{for(var t in e)q(n,t,{get:e[t],enumerable:!0})},Pe=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ct(e))!dt.call(n,s)&&s!==t&&q(n,s,{get:()=>e[s],enumerable:!(r=ut(e,s))||r.enumerable});return n};var pt=(n,e,t)=>(t=n!=null?lt(ht(n)):{},Pe(e||!n||!n.__esModule?q(t,"default",{value:n,enumerable:!0}):t,n)),O=n=>Pe(q({},"__esModule",{value:!0}),n);var u=we(()=>{"use strict"});var S={};be(S,{__addDisposableResource:()=>Ke,__assign:()=>D,__asyncDelegator:()=>Me,__asyncGenerator:()=>qe,__asyncValues:()=>De,__await:()=>U,__awaiter:()=>Ce,__classPrivateFieldGet:()=>Je,__classPrivateFieldIn:()=>We,__classPrivateFieldSet:()=>Ge,__createBinding:()=>F,__decorate:()=>Se,__disposeResources:()=>Ye,__esDecorate:()=>Te,__exportStar:()=>Le,__extends:()=>xe,__generator:()=>Ie,__importDefault:()=>ze,__importStar:()=>Fe,__makeTemplateObject:()=>Be,__metadata:()=>je,__param:()=>Re,__propKey:()=>Ae,__read:()=>Q,__rest:()=>Oe,__rewriteRelativeImportExtension:()=>Ve,__runInitializers:()=>$e,__setFunctionName:()=>Ue,__spread:()=>He,__spreadArray:()=>ke,__spreadArrays:()=>Ne,__values:()=>B,default:()=>wt});function xe(n,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Y(n,e);function t(){this.constructor=n}n.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function Oe(n,e){var t={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(n);s<r.length;s++)e.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(n,r[s])&&(t[r[s]]=n[r[s]]);return t}function Se(n,e,t,r){var s=arguments.length,i=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(n,e,t,r);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(i=(s<3?o(i):s>3?o(e,t,i):o(e,t))||i);return s>3&&i&&Object.defineProperty(e,t,i),i}function Re(n,e){return function(t,r){e(t,r,n)}}function Te(n,e,t,r,s,i){function o(P){if(P!==void 0&&typeof P!="function")throw new TypeError("Function expected");return P}for(var a=r.kind,c=a==="getter"?"get":a==="setter"?"set":"value",l=!e&&n?r.static?n:n.prototype:null,h=e||(l?Object.getOwnPropertyDescriptor(l,r.name):{}),d,m=!1,p=t.length-1;p>=0;p--){var g={};for(var b in r)g[b]=b==="access"?{}:r[b];for(var b in r.access)g.access[b]=r.access[b];g.addInitializer=function(P){if(m)throw new TypeError("Cannot add initializers after decoration has completed");i.push(o(P||null))};var y=(0,t[p])(a==="accessor"?{get:h.get,set:h.set}:h[c],g);if(a==="accessor"){if(y===void 0)continue;if(y===null||typeof y!="object")throw new TypeError("Object expected");(d=o(y.get))&&(h.get=d),(d=o(y.set))&&(h.set=d),(d=o(y.init))&&s.unshift(d)}else(d=o(y))&&(a==="field"?s.unshift(d):h[c]=d)}l&&Object.defineProperty(l,r.name,h),m=!0}function $e(n,e,t){for(var r=arguments.length>2,s=0;s<e.length;s++)t=r?e[s].call(n,t):e[s].call(n);return r?t:void 0}function Ae(n){return typeof n=="symbol"?n:"".concat(n)}function Ue(n,e,t){return typeof e=="symbol"&&(e=e.description?"[".concat(e.description,"]"):""),Object.defineProperty(n,"name",{configurable:!0,value:t?"".concat(t," ",e):e})}function je(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)}function Ce(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(h){try{l(r.next(h))}catch(d){o(d)}}function c(h){try{l(r.throw(h))}catch(d){o(d)}}function l(h){h.done?i(h.value):s(h.value).then(a,c)}l((r=r.apply(n,e||[])).next())})}function Ie(n,e){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},r,s,i,o=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return o.next=a(0),o.throw=a(1),o.return=a(2),typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(h){return c([l,h])}}function c(l){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(t=0)),t;)try{if(r=1,s&&(i=l[0]&2?s.return:l[0]?s.throw||((i=s.return)&&i.call(s),0):s.next)&&!(i=i.call(s,l[1])).done)return i;switch(s=0,i&&(l=[l[0]&2,i.value]),l[0]){case 0:case 1:i=l;break;case 4:return t.label++,{value:l[1],done:!1};case 5:t.label++,s=l[1],l=[0];continue;case 7:l=t.ops.pop(),t.trys.pop();continue;default:if(i=t.trys,!(i=i.length>0&&i[i.length-1])&&(l[0]===6||l[0]===2)){t=0;continue}if(l[0]===3&&(!i||l[1]>i[0]&&l[1]<i[3])){t.label=l[1];break}if(l[0]===6&&t.label<i[1]){t.label=i[1],i=l;break}if(i&&t.label<i[2]){t.label=i[2],t.ops.push(l);break}i[2]&&t.ops.pop(),t.trys.pop();continue}l=e.call(n,t)}catch(h){l=[6,h],s=0}finally{r=i=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function Le(n,e){for(var t in n)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&F(e,n,t)}function B(n){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&n[e],r=0;if(t)return t.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&r>=n.length&&(n=void 0),{value:n&&n[r++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Q(n,e){var t=typeof Symbol=="function"&&n[Symbol.iterator];if(!t)return n;var r=t.call(n),s,i=[],o;try{for(;(e===void 0||e-- >0)&&!(s=r.next()).done;)i.push(s.value)}catch(a){o={error:a}}finally{try{s&&!s.done&&(t=r.return)&&t.call(r)}finally{if(o)throw o.error}}return i}function He(){for(var n=[],e=0;e<arguments.length;e++)n=n.concat(Q(arguments[e]));return n}function Ne(){for(var n=0,e=0,t=arguments.length;e<t;e++)n+=arguments[e].length;for(var r=Array(n),s=0,e=0;e<t;e++)for(var i=arguments[e],o=0,a=i.length;o<a;o++,s++)r[s]=i[o];return r}function ke(n,e,t){if(t||arguments.length===2)for(var r=0,s=e.length,i;r<s;r++)(i||!(r in e))&&(i||(i=Array.prototype.slice.call(e,0,r)),i[r]=e[r]);return n.concat(i||Array.prototype.slice.call(e))}function U(n){return this instanceof U?(this.v=n,this):new U(n)}function qe(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=t.apply(n,e||[]),s,i=[];return s=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",o),s[Symbol.asyncIterator]=function(){return this},s;function o(p){return function(g){return Promise.resolve(g).then(p,d)}}function a(p,g){r[p]&&(s[p]=function(b){return new Promise(function(y,P){i.push([p,b,y,P])>1||c(p,b)})},g&&(s[p]=g(s[p])))}function c(p,g){try{l(r[p](g))}catch(b){m(i[0][3],b)}}function l(p){p.value instanceof U?Promise.resolve(p.value.v).then(h,d):m(i[0][2],p)}function h(p){c("next",p)}function d(p){c("throw",p)}function m(p,g){p(g),i.shift(),i.length&&c(i[0][0],i[0][1])}}function Me(n){var e,t;return e={},r("next"),r("throw",function(s){throw s}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(s,i){e[s]=n[s]?function(o){return(t=!t)?{value:U(n[s](o)),done:!1}:i?i(o):o}:i}}function De(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=n[Symbol.asyncIterator],t;return e?e.call(n):(n=typeof B=="function"?B(n):n[Symbol.iterator](),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(i){t[i]=n[i]&&function(o){return new Promise(function(a,c){o=n[i](o),s(a,c,o.done,o.value)})}}function s(i,o,a,c){Promise.resolve(c).then(function(l){i({value:l,done:a})},o)}}function Be(n,e){return Object.defineProperty?Object.defineProperty(n,"raw",{value:e}):n.raw=e,n}function Fe(n){if(n&&n.__esModule)return n;var e={};if(n!=null)for(var t=V(n),r=0;r<t.length;r++)t[r]!=="default"&&F(e,n,t[r]);return yt(e,n),e}function ze(n){return n&&n.__esModule?n:{default:n}}function Je(n,e,t,r){if(t==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?n!==e||!r:!e.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?r:t==="a"?r.call(n):r?r.value:e.get(n)}function Ge(n,e,t,r,s){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?n!==e||!s:!e.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?s.call(n,t):s?s.value=t:e.set(n,t),t}function We(n,e){if(e===null||typeof e!="object"&&typeof e!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof n=="function"?e===n:n.has(e)}function Ke(n,e,t){if(e!=null){if(typeof e!="object"&&typeof e!="function")throw new TypeError("Object expected.");var r,s;if(t){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=e[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=e[Symbol.dispose],t&&(s=r)}if(typeof r!="function")throw new TypeError("Object not disposable.");s&&(r=function(){try{s.call(this)}catch(i){return Promise.reject(i)}}),n.stack.push({value:e,dispose:r,async:t})}else t&&n.stack.push({async:!0});return e}function Ye(n){function e(i){n.error=n.hasError?new vt(i,n.error,"An error was suppressed during disposal."):i,n.hasError=!0}var t,r=0;function s(){for(;t=n.stack.pop();)try{if(!t.async&&r===1)return r=0,n.stack.push(t),Promise.resolve().then(s);if(t.dispose){var i=t.dispose.call(t.value);if(t.async)return r|=2,Promise.resolve(i).then(s,function(o){return e(o),s()})}else r|=1}catch(o){e(o)}if(r===1)return n.hasError?Promise.reject(n.error):Promise.resolve();if(n.hasError)throw n.error}return s()}function Ve(n,e){return typeof n=="string"&&/^\.\.?\//.test(n)?n.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(t,r,s,i,o){return r?e?".jsx":".js":s&&(!i||!o)?t:s+i+"."+o.toLowerCase()+"js"}):n}var Y,D,F,yt,V,vt,wt,R=we(()=>{"use strict";u();Y=function(n,e){return Y=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])},Y(n,e)};D=function(){return D=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e},D.apply(this,arguments)};F=Object.create?(function(n,e,t,r){r===void 0&&(r=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,r,s)}):(function(n,e,t,r){r===void 0&&(r=t),n[r]=e[t]});yt=Object.create?(function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}):function(n,e){n.default=e},V=function(n){return V=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},V(n)};vt=typeof SuppressedError=="function"?SuppressedError:function(n,e,t){var r=new Error(t);return r.name="SuppressedError",r.error=n,r.suppressed=e,r};wt={__extends:xe,__assign:D,__rest:Oe,__decorate:Se,__param:Re,__esDecorate:Te,__runInitializers:$e,__propKey:Ae,__setFunctionName:Ue,__metadata:je,__awaiter:Ce,__generator:Ie,__createBinding:F,__exportStar:Le,__values:B,__read:Q,__spread:He,__spreadArrays:Ne,__spreadArray:ke,__await:U,__asyncGenerator:qe,__asyncDelegator:Me,__asyncValues:De,__makeTemplateObject:Be,__importStar:Fe,__importDefault:ze,__classPrivateFieldGet:Je,__classPrivateFieldSet:Ge,__classPrivateFieldIn:We,__addDisposableResource:Ke,__disposeResources:Ye,__rewriteRelativeImportExtension:Ve}});var ee=x(Z=>{"use strict";u();Object.defineProperty(Z,"__esModule",{value:!0});var X=class extends Error{constructor(e){super(e.message),this.name="PostgrestError",this.details=e.details,this.hint=e.hint,this.code=e.code}};Z.default=X});var se=x(re=>{"use strict";u();Object.defineProperty(re,"__esModule",{value:!0});var bt=(R(),O(S)),Pt=bt.__importDefault(ee()),te=class{constructor(e){var t,r;this.shouldThrowOnError=!1,this.method=e.method,this.url=e.url,this.headers=new Headers(e.headers),this.schema=e.schema,this.body=e.body,this.shouldThrowOnError=(t=e.shouldThrowOnError)!==null&&t!==void 0?t:!1,this.signal=e.signal,this.isMaybeSingle=(r=e.isMaybeSingle)!==null&&r!==void 0?r:!1,e.fetch?this.fetch=e.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(e,t){return this.headers=new Headers(this.headers),this.headers.set(e,t),this}then(e,t){this.schema===void 0||(["GET","HEAD"].includes(this.method)?this.headers.set("Accept-Profile",this.schema):this.headers.set("Content-Profile",this.schema)),this.method!=="GET"&&this.method!=="HEAD"&&this.headers.set("Content-Type","application/json");let r=this.fetch,s=r(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async i=>{var o,a,c,l;let h=null,d=null,m=null,p=i.status,g=i.statusText;if(i.ok){if(this.method!=="HEAD"){let k=await i.text();k===""||(this.headers.get("Accept")==="text/csv"||this.headers.get("Accept")&&(!((o=this.headers.get("Accept"))===null||o===void 0)&&o.includes("application/vnd.pgrst.plan+text"))?d=k:d=JSON.parse(k))}let y=(a=this.headers.get("Prefer"))===null||a===void 0?void 0:a.match(/count=(exact|planned|estimated)/),P=(c=i.headers.get("content-range"))===null||c===void 0?void 0:c.split("/");y&&P&&P.length>1&&(m=parseInt(P[1])),this.isMaybeSingle&&this.method==="GET"&&Array.isArray(d)&&(d.length>1?(h={code:"PGRST116",details:`Results contain ${d.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},d=null,m=null,p=406,g="Not Acceptable"):d.length===1?d=d[0]:d=null)}else{let y=await i.text();try{h=JSON.parse(y),Array.isArray(h)&&i.status===404&&(d=[],h=null,p=200,g="OK")}catch{i.status===404&&y===""?(p=204,g="No Content"):h={message:y}}if(h&&this.isMaybeSingle&&(!((l=h?.details)===null||l===void 0)&&l.includes("0 rows"))&&(h=null,p=200,g="OK"),h&&this.shouldThrowOnError)throw new Pt.default(h)}return{error:h,data:d,count:m,status:p,statusText:g}});return this.shouldThrowOnError||(s=s.catch(i=>{var o,a,c;return{error:{message:`${(o=i?.name)!==null&&o!==void 0?o:"FetchError"}: ${i?.message}`,details:`${(a=i?.stack)!==null&&a!==void 0?a:""}`,hint:"",code:`${(c=i?.code)!==null&&c!==void 0?c:""}`},data:null,count:null,status:0,statusText:""}})),s.then(e,t)}returns(){return this}overrideTypes(){return this}};re.default=te});var oe=x(ie=>{"use strict";u();Object.defineProperty(ie,"__esModule",{value:!0});var _t=(R(),O(S)),Et=_t.__importDefault(se()),ne=class extends Et.default{select(e){let t=!1,r=(e??"*").split("").map(s=>/\s/.test(s)&&!t?"":(s==='"'&&(t=!t),s)).join("");return this.url.searchParams.set("select",r),this.headers.append("Prefer","return=representation"),this}order(e,{ascending:t=!0,nullsFirst:r,foreignTable:s,referencedTable:i=s}={}){let o=i?`${i}.order`:"order",a=this.url.searchParams.get(o);return this.url.searchParams.set(o,`${a?`${a},`:""}${e}.${t?"asc":"desc"}${r===void 0?"":r?".nullsfirst":".nullslast"}`),this}limit(e,{foreignTable:t,referencedTable:r=t}={}){let s=typeof r>"u"?"limit":`${r}.limit`;return this.url.searchParams.set(s,`${e}`),this}range(e,t,{foreignTable:r,referencedTable:s=r}={}){let i=typeof s>"u"?"offset":`${s}.offset`,o=typeof s>"u"?"limit":`${s}.limit`;return this.url.searchParams.set(i,`${e}`),this.url.searchParams.set(o,`${t-e+1}`),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return this.method==="GET"?this.headers.set("Accept","application/json"):this.headers.set("Accept","application/vnd.pgrst.object+json"),this.isMaybeSingle=!0,this}csv(){return this.headers.set("Accept","text/csv"),this}geojson(){return this.headers.set("Accept","application/geo+json"),this}explain({analyze:e=!1,verbose:t=!1,settings:r=!1,buffers:s=!1,wal:i=!1,format:o="text"}={}){var a;let c=[e?"analyze":null,t?"verbose":null,r?"settings":null,s?"buffers":null,i?"wal":null].filter(Boolean).join("|"),l=(a=this.headers.get("Accept"))!==null&&a!==void 0?a:"application/json";return this.headers.set("Accept",`application/vnd.pgrst.plan+${o}; for="${l}"; options=${c};`),o==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(e){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${e}`),this}};ie.default=ne});var z=x(le=>{"use strict";u();Object.defineProperty(le,"__esModule",{value:!0});var xt=(R(),O(S)),Ot=xt.__importDefault(oe()),St=new RegExp("[,()]"),ae=class extends Ot.default{eq(e,t){return this.url.searchParams.append(e,`eq.${t}`),this}neq(e,t){return this.url.searchParams.append(e,`neq.${t}`),this}gt(e,t){return this.url.searchParams.append(e,`gt.${t}`),this}gte(e,t){return this.url.searchParams.append(e,`gte.${t}`),this}lt(e,t){return this.url.searchParams.append(e,`lt.${t}`),this}lte(e,t){return this.url.searchParams.append(e,`lte.${t}`),this}like(e,t){return this.url.searchParams.append(e,`like.${t}`),this}likeAllOf(e,t){return this.url.searchParams.append(e,`like(all).{${t.join(",")}}`),this}likeAnyOf(e,t){return this.url.searchParams.append(e,`like(any).{${t.join(",")}}`),this}ilike(e,t){return this.url.searchParams.append(e,`ilike.${t}`),this}ilikeAllOf(e,t){return this.url.searchParams.append(e,`ilike(all).{${t.join(",")}}`),this}ilikeAnyOf(e,t){return this.url.searchParams.append(e,`ilike(any).{${t.join(",")}}`),this}is(e,t){return this.url.searchParams.append(e,`is.${t}`),this}in(e,t){let r=Array.from(new Set(t)).map(s=>typeof s=="string"&&St.test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(e,`in.(${r})`),this}contains(e,t){return typeof t=="string"?this.url.searchParams.append(e,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cs.{${t.join(",")}}`):this.url.searchParams.append(e,`cs.${JSON.stringify(t)}`),this}containedBy(e,t){return typeof t=="string"?this.url.searchParams.append(e,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cd.{${t.join(",")}}`):this.url.searchParams.append(e,`cd.${JSON.stringify(t)}`),this}rangeGt(e,t){return this.url.searchParams.append(e,`sr.${t}`),this}rangeGte(e,t){return this.url.searchParams.append(e,`nxl.${t}`),this}rangeLt(e,t){return this.url.searchParams.append(e,`sl.${t}`),this}rangeLte(e,t){return this.url.searchParams.append(e,`nxr.${t}`),this}rangeAdjacent(e,t){return this.url.searchParams.append(e,`adj.${t}`),this}overlaps(e,t){return typeof t=="string"?this.url.searchParams.append(e,`ov.${t}`):this.url.searchParams.append(e,`ov.{${t.join(",")}}`),this}textSearch(e,t,{config:r,type:s}={}){let i="";s==="plain"?i="pl":s==="phrase"?i="ph":s==="websearch"&&(i="w");let o=r===void 0?"":`(${r})`;return this.url.searchParams.append(e,`${i}fts${o}.${t}`),this}match(e){return Object.entries(e).forEach(([t,r])=>{this.url.searchParams.append(t,`eq.${r}`)}),this}not(e,t,r){return this.url.searchParams.append(e,`not.${t}.${r}`),this}or(e,{foreignTable:t,referencedTable:r=t}={}){let s=r?`${r}.or`:"or";return this.url.searchParams.append(s,`(${e})`),this}filter(e,t,r){return this.url.searchParams.append(e,`${t}.${r}`),this}};le.default=ae});var he=x(ce=>{"use strict";u();Object.defineProperty(ce,"__esModule",{value:!0});var Rt=(R(),O(S)),N=Rt.__importDefault(z()),ue=class{constructor(e,{headers:t={},schema:r,fetch:s}){this.url=e,this.headers=new Headers(t),this.schema=r,this.fetch=s}select(e,t){let{head:r=!1,count:s}=t??{},i=r?"HEAD":"GET",o=!1,a=(e??"*").split("").map(c=>/\s/.test(c)&&!o?"":(c==='"'&&(o=!o),c)).join("");return this.url.searchParams.set("select",a),s&&this.headers.append("Prefer",`count=${s}`),new N.default({method:i,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch})}insert(e,{count:t,defaultToNull:r=!0}={}){var s;let i="POST";if(t&&this.headers.append("Prefer",`count=${t}`),r||this.headers.append("Prefer","missing=default"),Array.isArray(e)){let o=e.reduce((a,c)=>a.concat(Object.keys(c)),[]);if(o.length>0){let a=[...new Set(o)].map(c=>`"${c}"`);this.url.searchParams.set("columns",a.join(","))}}return new N.default({method:i,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:(s=this.fetch)!==null&&s!==void 0?s:fetch})}upsert(e,{onConflict:t,ignoreDuplicates:r=!1,count:s,defaultToNull:i=!0}={}){var o;let a="POST";if(this.headers.append("Prefer",`resolution=${r?"ignore":"merge"}-duplicates`),t!==void 0&&this.url.searchParams.set("on_conflict",t),s&&this.headers.append("Prefer",`count=${s}`),i||this.headers.append("Prefer","missing=default"),Array.isArray(e)){let c=e.reduce((l,h)=>l.concat(Object.keys(h)),[]);if(c.length>0){let l=[...new Set(c)].map(h=>`"${h}"`);this.url.searchParams.set("columns",l.join(","))}}return new N.default({method:a,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:(o=this.fetch)!==null&&o!==void 0?o:fetch})}update(e,{count:t}={}){var r;let s="PATCH";return t&&this.headers.append("Prefer",`count=${t}`),new N.default({method:s,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:(r=this.fetch)!==null&&r!==void 0?r:fetch})}delete({count:e}={}){var t;let r="DELETE";return e&&this.headers.append("Prefer",`count=${e}`),new N.default({method:r,url:this.url,headers:this.headers,schema:this.schema,fetch:(t=this.fetch)!==null&&t!==void 0?t:fetch})}};ce.default=ue});var Xe=x(pe=>{"use strict";u();Object.defineProperty(pe,"__esModule",{value:!0});var Qe=(R(),O(S)),Tt=Qe.__importDefault(he()),$t=Qe.__importDefault(z()),de=class n{constructor(e,{headers:t={},schema:r,fetch:s}={}){this.url=e,this.headers=new Headers(t),this.schemaName=r,this.fetch=s}from(e){let t=new URL(`${this.url}/${e}`);return new Tt.default(t,{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch})}schema(e){return new n(this.url,{headers:this.headers,schema:e,fetch:this.fetch})}rpc(e,t={},{head:r=!1,get:s=!1,count:i}={}){var o;let a,c=new URL(`${this.url}/rpc/${e}`),l;r||s?(a=r?"HEAD":"GET",Object.entries(t).filter(([d,m])=>m!==void 0).map(([d,m])=>[d,Array.isArray(m)?`{${m.join(",")}}`:`${m}`]).forEach(([d,m])=>{c.searchParams.append(d,m)})):(a="POST",l=t);let h=new Headers(this.headers);return i&&h.set("Prefer",`count=${i}`),new $t.default({method:a,url:c,headers:h,schema:this.schemaName,body:l,fetch:(o=this.fetch)!==null&&o!==void 0?o:fetch})}};pe.default=de});var it=x(w=>{"use strict";u();Object.defineProperty(w,"__esModule",{value:!0});w.PostgrestError=w.PostgrestBuilder=w.PostgrestTransformBuilder=w.PostgrestFilterBuilder=w.PostgrestQueryBuilder=w.PostgrestClient=void 0;var j=(R(),O(S)),Ze=j.__importDefault(Xe());w.PostgrestClient=Ze.default;var et=j.__importDefault(he());w.PostgrestQueryBuilder=et.default;var tt=j.__importDefault(z());w.PostgrestFilterBuilder=tt.default;var rt=j.__importDefault(oe());w.PostgrestTransformBuilder=rt.default;var st=j.__importDefault(se());w.PostgrestBuilder=st.default;var nt=j.__importDefault(ee());w.PostgrestError=nt.default;w.default={PostgrestClient:Ze.default,PostgrestQueryBuilder:et.default,PostgrestFilterBuilder:tt.default,PostgrestTransformBuilder:rt.default,PostgrestBuilder:st.default,PostgrestError:nt.default}});var Ct={};be(Ct,{AbortController:()=>H,AbortSignal:()=>A,AuthClient:()=>M,CURRENT_JWT_KEY:()=>_,ENTITIES_BASE_PATH:()=>at,FILE_STORAGE_BASE_PATH:()=>_e,GENERATE_UPLOAD_URL_PATH:()=>Ee,Headers:()=>v,LOGIN_TOKEN_KEY:()=>E,LOGIN_USER_PROFILE_KEY:()=>T,NvwaCapability:()=>ge,NvwaEdgeFunctions:()=>J,NvwaFileStorage:()=>K,NvwaHttpClient:()=>W,NvwaSkill:()=>me,OverlayManager:()=>ye,PaymentClient:()=>ve,Request:()=>I,Response:()=>L,SET_AUTH_TOKEN_HEADER:()=>G,URL:()=>C,URLSearchParams:()=>$,createPostgrestClient:()=>At,getSourceLocationFromDOM:()=>Ut,polyfill:()=>gt});module.exports=O(Ct);u();u();var J=class{constructor(e,t=""){this.http=e,this.baseUrl=t.replace(/\/$/,"")}async invoke(e,t){let r=this.baseUrl?`${this.baseUrl}/functions/${e}`:`/functions/${e}`;return await(await this.http.fetch(r,{method:t.method||"POST",body:t.body,headers:t.headers})).json()}};u();u();var _="nvwa_current_jwt",E="nvwa_login_token",T="nvwa_user_profile",G="set-auth-token",ft=typeof fetch<"u"?(n,e)=>fetch(n,e):(()=>{throw new Error("AuthClient requires fetch")})(),M=class{constructor(e,t={}){this.baseUrl=e.replace(/\/$/,""),this.authPath=(t.authPath??"/auth").replace(/^\//,""),this.fetchImpl=t.fetchImpl??ft,this.storage=t.storage??null,this.credentials=t.credentials??"omit"}async currentUser(){if(this.storage){let r=await this.storage.get(T);if(r!=null)return r}let{data:e}=await this.getSession(),t=e?.user??null;return t&&this.storage&&await this.storage.set(T,t),t}async getCurrentJwt(){if(this.storage){let t=await this.storage.get(_);if(t!=null)return t;let r=await this.storage.get(E),{data:s}=await this.getToken(r??void 0);return s?.token?(await this.storage.set(_,s.token),s.token):null}let{data:e}=await this.getToken();return e?.token??null}async persistLogin(e,t){if(!this.storage)return;let s=t?.headers.get(G)?.trim()||e.token||e.session?.token;s&&await this.storage.set(E,s),e.user&&await this.storage.set(T,e.user);let i=s??await this.storage.get(E),{data:o}=await this.getToken(i??void 0);o?.token&&await this.storage.set(_,o.token)}async clearLogin(){this.storage&&(await this.storage.remove(E),await this.storage.remove(T),await this.storage.remove(_))}url(e){let r=`${`${this.baseUrl.replace(/\/+$/,"")}/${this.authPath.replace(/^\/+/,"")}`}/${e.replace(/^\/+/,"")}`;return typeof console<"u"&&console.debug&&console.debug("[NvwaAuth] request URL:",r),r}async getSession(){try{let e={};if(this.storage){let s=await this.storage.get(E)??await this.storage.get(_);s!=null&&(e.Authorization=`Bearer ${s}`)}let t=await this.fetchImpl(this.url("session"),{method:"GET",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}});return t.ok?{data:await t.json()}:{data:null,error:{message:await t.text()||t.statusText,status:t.status}}}catch(e){return{data:null,error:{message:e instanceof Error?e.message:String(e),status:0}}}}async signInWithEmail(e,t){try{let r=await this.fetchImpl(this.url("sign-in/email"),{method:"POST",headers:{"Content-Type":"application/json"},credentials:this.credentials,body:JSON.stringify({email:e,password:t})}),s=await r.text();if(!r.ok)return{error:{message:s||r.statusText,status:r.status}};let i=s?JSON.parse(s):void 0;return i&&await this.persistLogin({user:i.user,session:i.session},r),{data:i}}catch(r){return{error:{message:r instanceof Error?r.message:String(r),status:0}}}}async signOut(){try{let e={};if(this.storage){let r=await this.storage.get(E)??await this.storage.get(_);r!=null&&(e.Authorization=`Bearer ${r}`)}let t=await this.fetchImpl(this.url("sign-out"),{method:"POST",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}});return await this.clearLogin(),t.ok?{}:{error:{message:await t.text()||t.statusText,status:t.status}}}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async signUp(e){let t=await this.postJson("sign-up/email",e);return t.data&&await this.persistLogin(t.data,t.response),t}async getToken(e){try{let t={};if(e)t.Authorization=`Bearer ${e}`;else if(this.storage){let o=await this.storage.get(E)??await this.storage.get(_);o!=null&&(t.Authorization=`Bearer ${o}`)}let r=await this.fetchImpl(this.url("token"),{method:"GET",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}}),s=await r.text();if(!r.ok)return{error:{message:s||r.statusText,status:r.status}};let i=s?JSON.parse(s):void 0;return{data:i?.token!=null?{token:i.token}:void 0}}catch(t){return{error:{message:t instanceof Error?t.message:String(t),status:0}}}}async signInWithUsername(e,t){let r=await this.postJson("sign-in/username",{username:e,password:t});return r.data&&await this.persistLogin(r.data,r.response),r}async signInWithPhoneNumber(e,t,r){let s=await this.postJson("sign-in/phone-number",{phoneNumber:e,password:t,rememberMe:r});return s.data&&await this.persistLogin(s.data,s.response),s}async sendPhoneNumberOtp(e){let t=await this.postJson("phone-number/send-otp",{phoneNumber:e});return t.error?{error:t.error}:{}}async verifyPhoneNumber(e,t){let r=await this.postJson("phone-number/verify",{phoneNumber:e,code:t});return r.data&&await this.persistLogin(r.data,r.response),r}async postJson(e,t){try{let r=await this.fetchImpl(this.url(e),{method:"POST",headers:{"Content-Type":"application/json"},credentials:this.credentials,body:JSON.stringify(t)}),s=await r.text();if(!r.ok)return{error:{message:s||r.statusText,status:r.status}};let i=s?JSON.parse(s):void 0;return{data:i?.data??i??void 0,response:r}}catch(r){return{error:{message:r instanceof Error?r.message:String(r),status:0}}}}};u();u();var v=class n{constructor(e){this.headerMap=new Map;if(e){if(e instanceof n)e.forEach((t,r)=>this.set(r,t));else if(Array.isArray(e))for(let[t,r]of e)this.set(t,String(r));else if(typeof e=="object")for(let t of Object.keys(e))this.set(t,String(e[t]))}}append(e,t){let r=e.toLowerCase(),s=this.headerMap.get(r);this.headerMap.set(r,s?`${s}, ${t}`:t)}set(e,t){this.headerMap.set(e.toLowerCase(),String(t))}get(e){let t=this.headerMap.get(e.toLowerCase());return t??null}has(e){return this.headerMap.has(e.toLowerCase())}delete(e){this.headerMap.delete(e.toLowerCase())}forEach(e){for(let[t,r]of this.headerMap.entries())e(r,t,this)}entries(){return this.headerMap.entries()}keys(){return this.headerMap.keys()}values(){return this.headerMap.values()}[Symbol.iterator](){return this.entries()}},$=class n{constructor(e){this.params=new Map;if(e){if(typeof e=="string")this.parseString(e);else if(e instanceof n)this.params=new Map(e.params);else if(Array.isArray(e))for(let[t,r]of e)this.append(t,r);else if(e&&typeof e=="object")for(let[t,r]of Object.entries(e))this.set(t,r)}}parseString(e){e.startsWith("?")&&(e=e.slice(1));let t=e.split("&");for(let r of t)if(r){let[s,i]=r.split("=");s&&this.append(decodeURIComponent(s),i?decodeURIComponent(i):"")}}append(e,t){let r=this.params.get(e)||[];r.push(t),this.params.set(e,r)}delete(e){this.params.delete(e)}get(e){let t=this.params.get(e);return t?t[0]:null}getAll(e){return this.params.get(e)||[]}has(e){return this.params.has(e)}set(e,t){this.params.set(e,[t])}sort(){let e=Array.from(this.params.entries()).sort(([t],[r])=>t.localeCompare(r));this.params=new Map(e)}toString(){let e=[];for(let[t,r]of this.params.entries())for(let s of r)e.push(`${encodeURIComponent(t)}=${encodeURIComponent(s)}`);return e.join("&")}forEach(e){for(let[t,r]of this.params.entries())for(let s of r)e(s,t,this)}keys(){return this.params.keys()}values(){let e=[];for(let t of this.params.values())e.push(...t);return e[Symbol.iterator]()}entries(){let e=[];for(let[t,r]of this.params.entries())for(let s of r)e.push([t,s]);return e[Symbol.iterator]()}[Symbol.iterator](){return this.entries()}get size(){return this.params.size}},C=class n{constructor(e,t){let r;if(e instanceof n)r=e.href;else if(t){let i=t instanceof n?t.href:t;r=this.resolve(i,e)}else r=e;let s=this.parseUrl(r);this.href=r,this.origin=`${s.protocol}//${s.host}`,this.protocol=s.protocol,this.username=s.username,this.password=s.password,this.host=s.host,this.hostname=s.hostname,this.port=s.port,this.pathname=s.pathname,this.search=s.search,this.searchParams=new $(s.search),this.hash=s.hash}resolve(e,t){if(t.startsWith("http://")||t.startsWith("https://"))return t;if(t.startsWith("//"))return`${this.parseUrl(e).protocol}${t}`;if(t.startsWith("/")){let i=this.parseUrl(e);return`${i.protocol}//${i.host}${t}`}let r=this.parseUrl(e),s=r.pathname.endsWith("/")?r.pathname:r.pathname+"/";return`${r.protocol}//${r.host}${s}${t}`}parseUrl(e){let t=e.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)throw new TypeError("Invalid URL");let r=t[2]||"",s=t[4]||"",i=t[5]||"/",o=t[7]?`?${t[7]}`:"",a=t[9]?`#${t[9]}`:"";if(!r&&!s&&!i.startsWith("/")&&!i.includes("/")&&!i.includes("."))throw new TypeError("Invalid URL");let c=s.match(/^([^@]*)@(.+)$/),l="",h="",d=s;if(c){let b=c[1];d=c[2];let y=b.match(/^([^:]*):?(.*)$/);y&&(l=y[1]||"",h=y[2]||"")}let m=d.match(/^([^:]+):?(\d*)$/),p=m?m[1]:d,g=m&&m[2]?m[2]:"";return{protocol:r?`${r}:`:"",username:l,password:h,host:d,hostname:p,port:g,pathname:i,search:o,hash:a}}toString(){let e=this.searchParams.toString(),t=e?`?${e}`:"";return`${this.protocol}//${this.host}${this.pathname}${t}${this.hash}`}toJSON(){return this.toString()}};u();var I=class n{constructor(e,t){if(typeof e=="string")this.url=e;else if(e?.url)this.url=String(e.url);else if(typeof e?.toString=="function")this.url=String(e.toString());else throw new Error("Invalid input for Request");this.method=(t?.method||"GET").toUpperCase(),this.headers=t?.headers instanceof v?t.headers:new v(t?.headers),this.body=t?.body,this.timeout=t?.timeout,this.signal=t?.signal||void 0}clone(){return new n(this.url,{method:this.method,headers:this.headers,body:this.body,timeout:this.timeout})}toString(){return this.url}};u();var L=class{constructor(e,t){this.bodyData=e,this.status=t?.status??200,this.statusText=t?.statusText??"",this.headers=mt(t?.headers),this.ok=this.status>=200&&this.status<300}async text(){return typeof this.bodyData=="string"?this.bodyData:this.bodyData==null?"":typeof this.bodyData=="object"?JSON.stringify(this.bodyData):String(this.bodyData)}async json(){if(typeof this.bodyData=="string")try{return JSON.parse(this.bodyData)}catch{}return this.bodyData}async arrayBuffer(){let e=await this.text();return new TextEncoder().encode(e).buffer}};function mt(n){return n?new v(n):new v}u();var A=class{constructor(){this._aborted=!1;this.listeners=new Set;this.onabort=null}get aborted(){return this._aborted}_trigger(){if(!this._aborted){if(this._aborted=!0,typeof this.onabort=="function")try{this.onabort()}catch{}for(let e of Array.from(this.listeners))try{e()}catch{}this.listeners.clear()}}addEventListener(e,t){if(this._aborted){try{t()}catch{}return}this.listeners.add(t)}removeEventListener(e,t){this.listeners.delete(t)}toString(){return"[object AbortSignal]"}},H=class{constructor(){this._signal=new A}get signal(){return this._signal}abort(){this._signal._trigger()}toString(){return"[object AbortController]"}};u();function gt(n){n.URL=C,n.URLSearchParams=$,n.Headers=v,n.Request=I,n.Response=L,n.AbortController=H,n.AbortSignal=A}var W=class{constructor(e,t,r){this.storage=e,this.customFetch=t,this.handleUnauthorized=r}async fetch(e,t){return await this.customFetch(e,t)}async fetchWithAuth(e,t){let r=await this.storage.get(_),s=new v(t?.headers);r&&s.set("Authorization",`Bearer ${r}`);let i=t?.method||"GET";if((i==="POST"||i==="PUT"||i==="PATCH")&&t?.body){let a=s.get("Content-Type");(!a||a.includes("text/plain"))&&s.set("Content-Type","application/json")}let o=await this.customFetch(e,{...t,headers:s});if(o.status===401)throw this.handleUnauthorized(),new Error("\u672A\u767B\u5F55");return o}};u();var _e="/storage",Ee=_e+"/generateUploadUrl",K=class{constructor(e,t){this.baseUrl=e,this.http=t}async uploadFile(e){let t=await this.http.fetch(this.baseUrl+Ee,{method:"POST",body:{fileName:e.name||e.fileName,fileSize:e.size||e.fileSize,fileType:e.type||e.fileType}}),{url:r}=await t.json();if(!r)throw new Error("\u83B7\u53D6\u4E0A\u4F20URL\u5931\u8D25");let s=await this.http.fetch(r,{method:"PUT",body:e,headers:new v({"Content-Type":e.type||e.fileType||"application/octet-stream"})}),{url:i}=await s.json();return{url:i.split("?")[0]}}};u();u();u();var fe=pt(it(),1),{PostgrestClient:ot,PostgrestQueryBuilder:kr,PostgrestFilterBuilder:qr,PostgrestTransformBuilder:Mr,PostgrestBuilder:Dr,PostgrestError:Br}=fe.default||fe;var at="/entities",At=(n,e)=>new ot(n+at,{fetch:e.fetchWithAuth.bind(e)});u();var me=class{constructor(e,t){this.baseUrl=e,this.http=t}async execute(e,t){let r=`${this.baseUrl}/capability/${e}/execute`,i=await(await this.http.fetchWithAuth(r,{method:"POST",body:t?JSON.stringify(t):void 0,timeout:6e5})).json();if(i.status!==200)throw new Error(i.message);return i.data}};u();var ge=class{constructor(e,t){this.baseUrl=e,this.http=t}async execute(e,t){let r=`${this.baseUrl}/capability/${e}/execute`,i=await(await this.http.fetchWithAuth(r,{method:"POST",body:t!=null?JSON.stringify(t):void 0,timeout:6e5})).json();if(i.status!==200)throw new Error(i.message);return i.data}};u();var ye=class{constructor(){this.hoverOverlay=null;this.selectedOverlay=null;this.tooltip=null;this.hoverElement=null;this.selectedElement=null;this.hoverUpdateHandler=null;this.selectedUpdateHandler=null;this.createStyles()}createStyles(){if(document.getElementById("__nvwa-inspector-overlay-style"))return;let e=document.createElement("style");e.id="__nvwa-inspector-overlay-style",e.textContent=`
|
|
1
|
+
"use strict";var le=Object.create;var q=Object.defineProperty;var ue=Object.getOwnPropertyDescriptor;var ce=Object.getOwnPropertyNames;var he=Object.getPrototypeOf,de=Object.prototype.hasOwnProperty;var wt=(n,t)=>()=>(n&&(t=n(n=0)),t);var x=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),bt=(n,t)=>{for(var e in t)q(n,e,{get:t[e],enumerable:!0})},Pt=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ce(t))!de.call(n,s)&&s!==e&&q(n,s,{get:()=>t[s],enumerable:!(r=ue(t,s))||r.enumerable});return n};var pe=(n,t,e)=>(e=n!=null?le(he(n)):{},Pt(t||!n||!n.__esModule?q(e,"default",{value:n,enumerable:!0}):e,n)),O=n=>Pt(q({},"__esModule",{value:!0}),n);var u=wt(()=>{"use strict"});var S={};bt(S,{__addDisposableResource:()=>Kt,__assign:()=>D,__asyncDelegator:()=>Mt,__asyncGenerator:()=>qt,__asyncValues:()=>Dt,__await:()=>U,__awaiter:()=>Ct,__classPrivateFieldGet:()=>Jt,__classPrivateFieldIn:()=>Wt,__classPrivateFieldSet:()=>Gt,__createBinding:()=>F,__decorate:()=>St,__disposeResources:()=>Yt,__esDecorate:()=>Tt,__exportStar:()=>Lt,__extends:()=>xt,__generator:()=>It,__importDefault:()=>zt,__importStar:()=>Ft,__makeTemplateObject:()=>Bt,__metadata:()=>jt,__param:()=>Rt,__propKey:()=>At,__read:()=>Q,__rest:()=>Ot,__rewriteRelativeImportExtension:()=>Vt,__runInitializers:()=>$t,__setFunctionName:()=>Ut,__spread:()=>Ht,__spreadArray:()=>kt,__spreadArrays:()=>Nt,__values:()=>B,default:()=>we});function xt(n,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Y(n,t);function e(){this.constructor=n}n.prototype=t===null?Object.create(t):(e.prototype=t.prototype,new e)}function Ot(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(n);s<r.length;s++)t.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(n,r[s])&&(e[r[s]]=n[r[s]]);return e}function St(n,t,e,r){var s=arguments.length,i=s<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(i=(s<3?o(i):s>3?o(t,e,i):o(t,e))||i);return s>3&&i&&Object.defineProperty(t,e,i),i}function Rt(n,t){return function(e,r){t(e,r,n)}}function Tt(n,t,e,r,s,i){function o(P){if(P!==void 0&&typeof P!="function")throw new TypeError("Function expected");return P}for(var a=r.kind,c=a==="getter"?"get":a==="setter"?"set":"value",l=!t&&n?r.static?n:n.prototype:null,h=t||(l?Object.getOwnPropertyDescriptor(l,r.name):{}),d,m=!1,p=e.length-1;p>=0;p--){var g={};for(var b in r)g[b]=b==="access"?{}:r[b];for(var b in r.access)g.access[b]=r.access[b];g.addInitializer=function(P){if(m)throw new TypeError("Cannot add initializers after decoration has completed");i.push(o(P||null))};var y=(0,e[p])(a==="accessor"?{get:h.get,set:h.set}:h[c],g);if(a==="accessor"){if(y===void 0)continue;if(y===null||typeof y!="object")throw new TypeError("Object expected");(d=o(y.get))&&(h.get=d),(d=o(y.set))&&(h.set=d),(d=o(y.init))&&s.unshift(d)}else(d=o(y))&&(a==="field"?s.unshift(d):h[c]=d)}l&&Object.defineProperty(l,r.name,h),m=!0}function $t(n,t,e){for(var r=arguments.length>2,s=0;s<t.length;s++)e=r?t[s].call(n,e):t[s].call(n);return r?e:void 0}function At(n){return typeof n=="symbol"?n:"".concat(n)}function Ut(n,t,e){return typeof t=="symbol"&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(n,"name",{configurable:!0,value:e?"".concat(e," ",t):t})}function jt(n,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,t)}function Ct(n,t,e,r){function s(i){return i instanceof e?i:new e(function(o){o(i)})}return new(e||(e=Promise))(function(i,o){function a(h){try{l(r.next(h))}catch(d){o(d)}}function c(h){try{l(r.throw(h))}catch(d){o(d)}}function l(h){h.done?i(h.value):s(h.value).then(a,c)}l((r=r.apply(n,t||[])).next())})}function It(n,t){var e={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},r,s,i,o=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return o.next=a(0),o.throw=a(1),o.return=a(2),typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(l){return function(h){return c([l,h])}}function c(l){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(e=0)),e;)try{if(r=1,s&&(i=l[0]&2?s.return:l[0]?s.throw||((i=s.return)&&i.call(s),0):s.next)&&!(i=i.call(s,l[1])).done)return i;switch(s=0,i&&(l=[l[0]&2,i.value]),l[0]){case 0:case 1:i=l;break;case 4:return e.label++,{value:l[1],done:!1};case 5:e.label++,s=l[1],l=[0];continue;case 7:l=e.ops.pop(),e.trys.pop();continue;default:if(i=e.trys,!(i=i.length>0&&i[i.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!i||l[1]>i[0]&&l[1]<i[3])){e.label=l[1];break}if(l[0]===6&&e.label<i[1]){e.label=i[1],i=l;break}if(i&&e.label<i[2]){e.label=i[2],e.ops.push(l);break}i[2]&&e.ops.pop(),e.trys.pop();continue}l=t.call(n,e)}catch(h){l=[6,h],s=0}finally{r=i=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function Lt(n,t){for(var e in n)e!=="default"&&!Object.prototype.hasOwnProperty.call(t,e)&&F(t,n,e)}function B(n){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&n[t],r=0;if(e)return e.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&r>=n.length&&(n=void 0),{value:n&&n[r++],done:!n}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Q(n,t){var e=typeof Symbol=="function"&&n[Symbol.iterator];if(!e)return n;var r=e.call(n),s,i=[],o;try{for(;(t===void 0||t-- >0)&&!(s=r.next()).done;)i.push(s.value)}catch(a){o={error:a}}finally{try{s&&!s.done&&(e=r.return)&&e.call(r)}finally{if(o)throw o.error}}return i}function Ht(){for(var n=[],t=0;t<arguments.length;t++)n=n.concat(Q(arguments[t]));return n}function Nt(){for(var n=0,t=0,e=arguments.length;t<e;t++)n+=arguments[t].length;for(var r=Array(n),s=0,t=0;t<e;t++)for(var i=arguments[t],o=0,a=i.length;o<a;o++,s++)r[s]=i[o];return r}function kt(n,t,e){if(e||arguments.length===2)for(var r=0,s=t.length,i;r<s;r++)(i||!(r in t))&&(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return n.concat(i||Array.prototype.slice.call(t))}function U(n){return this instanceof U?(this.v=n,this):new U(n)}function qt(n,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=e.apply(n,t||[]),s,i=[];return s=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",o),s[Symbol.asyncIterator]=function(){return this},s;function o(p){return function(g){return Promise.resolve(g).then(p,d)}}function a(p,g){r[p]&&(s[p]=function(b){return new Promise(function(y,P){i.push([p,b,y,P])>1||c(p,b)})},g&&(s[p]=g(s[p])))}function c(p,g){try{l(r[p](g))}catch(b){m(i[0][3],b)}}function l(p){p.value instanceof U?Promise.resolve(p.value.v).then(h,d):m(i[0][2],p)}function h(p){c("next",p)}function d(p){c("throw",p)}function m(p,g){p(g),i.shift(),i.length&&c(i[0][0],i[0][1])}}function Mt(n){var t,e;return t={},r("next"),r("throw",function(s){throw s}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(s,i){t[s]=n[s]?function(o){return(e=!e)?{value:U(n[s](o)),done:!1}:i?i(o):o}:i}}function Dt(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=n[Symbol.asyncIterator],e;return t?t.call(n):(n=typeof B=="function"?B(n):n[Symbol.iterator](),e={},r("next"),r("throw"),r("return"),e[Symbol.asyncIterator]=function(){return this},e);function r(i){e[i]=n[i]&&function(o){return new Promise(function(a,c){o=n[i](o),s(a,c,o.done,o.value)})}}function s(i,o,a,c){Promise.resolve(c).then(function(l){i({value:l,done:a})},o)}}function Bt(n,t){return Object.defineProperty?Object.defineProperty(n,"raw",{value:t}):n.raw=t,n}function Ft(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e=V(n),r=0;r<e.length;r++)e[r]!=="default"&&F(t,n,e[r]);return ye(t,n),t}function zt(n){return n&&n.__esModule?n:{default:n}}function Jt(n,t,e,r){if(e==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?n!==t||!r:!t.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?r:e==="a"?r.call(n):r?r.value:t.get(n)}function Gt(n,t,e,r,s){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?n!==t||!s:!t.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?s.call(n,e):s?s.value=e:t.set(n,e),e}function Wt(n,t){if(t===null||typeof t!="object"&&typeof t!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof n=="function"?t===n:n.has(t)}function Kt(n,t,e){if(t!=null){if(typeof t!="object"&&typeof t!="function")throw new TypeError("Object expected.");var r,s;if(e){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(r===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose],e&&(s=r)}if(typeof r!="function")throw new TypeError("Object not disposable.");s&&(r=function(){try{s.call(this)}catch(i){return Promise.reject(i)}}),n.stack.push({value:t,dispose:r,async:e})}else e&&n.stack.push({async:!0});return t}function Yt(n){function t(i){n.error=n.hasError?new ve(i,n.error,"An error was suppressed during disposal."):i,n.hasError=!0}var e,r=0;function s(){for(;e=n.stack.pop();)try{if(!e.async&&r===1)return r=0,n.stack.push(e),Promise.resolve().then(s);if(e.dispose){var i=e.dispose.call(e.value);if(e.async)return r|=2,Promise.resolve(i).then(s,function(o){return t(o),s()})}else r|=1}catch(o){t(o)}if(r===1)return n.hasError?Promise.reject(n.error):Promise.resolve();if(n.hasError)throw n.error}return s()}function Vt(n,t){return typeof n=="string"&&/^\.\.?\//.test(n)?n.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,r,s,i,o){return r?t?".jsx":".js":s&&(!i||!o)?e:s+i+"."+o.toLowerCase()+"js"}):n}var Y,D,F,ye,V,ve,we,R=wt(()=>{"use strict";u();Y=function(n,t){return Y=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,r){e.__proto__=r}||function(e,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])},Y(n,t)};D=function(){return D=Object.assign||function(t){for(var e,r=1,s=arguments.length;r<s;r++){e=arguments[r];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])}return t},D.apply(this,arguments)};F=Object.create?(function(n,t,e,r){r===void 0&&(r=e);var s=Object.getOwnPropertyDescriptor(t,e);(!s||("get"in s?!t.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(n,r,s)}):(function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]});ye=Object.create?(function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}):function(n,t){n.default=t},V=function(n){return V=Object.getOwnPropertyNames||function(t){var e=[];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[e.length]=r);return e},V(n)};ve=typeof SuppressedError=="function"?SuppressedError:function(n,t,e){var r=new Error(e);return r.name="SuppressedError",r.error=n,r.suppressed=t,r};we={__extends:xt,__assign:D,__rest:Ot,__decorate:St,__param:Rt,__esDecorate:Tt,__runInitializers:$t,__propKey:At,__setFunctionName:Ut,__metadata:jt,__awaiter:Ct,__generator:It,__createBinding:F,__exportStar:Lt,__values:B,__read:Q,__spread:Ht,__spreadArrays:Nt,__spreadArray:kt,__await:U,__asyncGenerator:qt,__asyncDelegator:Mt,__asyncValues:Dt,__makeTemplateObject:Bt,__importStar:Ft,__importDefault:zt,__classPrivateFieldGet:Jt,__classPrivateFieldSet:Gt,__classPrivateFieldIn:Wt,__addDisposableResource:Kt,__disposeResources:Yt,__rewriteRelativeImportExtension:Vt}});var tt=x(Z=>{"use strict";u();Object.defineProperty(Z,"__esModule",{value:!0});var X=class extends Error{constructor(t){super(t.message),this.name="PostgrestError",this.details=t.details,this.hint=t.hint,this.code=t.code}};Z.default=X});var st=x(rt=>{"use strict";u();Object.defineProperty(rt,"__esModule",{value:!0});var be=(R(),O(S)),Pe=be.__importDefault(tt()),et=class{constructor(t){var e,r;this.shouldThrowOnError=!1,this.method=t.method,this.url=t.url,this.headers=new Headers(t.headers),this.schema=t.schema,this.body=t.body,this.shouldThrowOnError=(e=t.shouldThrowOnError)!==null&&e!==void 0?e:!1,this.signal=t.signal,this.isMaybeSingle=(r=t.isMaybeSingle)!==null&&r!==void 0?r:!1,t.fetch?this.fetch=t.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(t,e){return this.headers=new Headers(this.headers),this.headers.set(t,e),this}then(t,e){this.schema===void 0||(["GET","HEAD"].includes(this.method)?this.headers.set("Accept-Profile",this.schema):this.headers.set("Content-Profile",this.schema)),this.method!=="GET"&&this.method!=="HEAD"&&this.headers.set("Content-Type","application/json");let r=this.fetch,s=r(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async i=>{var o,a,c,l;let h=null,d=null,m=null,p=i.status,g=i.statusText;if(i.ok){if(this.method!=="HEAD"){let k=await i.text();k===""||(this.headers.get("Accept")==="text/csv"||this.headers.get("Accept")&&(!((o=this.headers.get("Accept"))===null||o===void 0)&&o.includes("application/vnd.pgrst.plan+text"))?d=k:d=JSON.parse(k))}let y=(a=this.headers.get("Prefer"))===null||a===void 0?void 0:a.match(/count=(exact|planned|estimated)/),P=(c=i.headers.get("content-range"))===null||c===void 0?void 0:c.split("/");y&&P&&P.length>1&&(m=parseInt(P[1])),this.isMaybeSingle&&this.method==="GET"&&Array.isArray(d)&&(d.length>1?(h={code:"PGRST116",details:`Results contain ${d.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},d=null,m=null,p=406,g="Not Acceptable"):d.length===1?d=d[0]:d=null)}else{let y=await i.text();try{h=JSON.parse(y),Array.isArray(h)&&i.status===404&&(d=[],h=null,p=200,g="OK")}catch{i.status===404&&y===""?(p=204,g="No Content"):h={message:y}}if(h&&this.isMaybeSingle&&(!((l=h?.details)===null||l===void 0)&&l.includes("0 rows"))&&(h=null,p=200,g="OK"),h&&this.shouldThrowOnError)throw new Pe.default(h)}return{error:h,data:d,count:m,status:p,statusText:g}});return this.shouldThrowOnError||(s=s.catch(i=>{var o,a,c;return{error:{message:`${(o=i?.name)!==null&&o!==void 0?o:"FetchError"}: ${i?.message}`,details:`${(a=i?.stack)!==null&&a!==void 0?a:""}`,hint:"",code:`${(c=i?.code)!==null&&c!==void 0?c:""}`},data:null,count:null,status:0,statusText:""}})),s.then(t,e)}returns(){return this}overrideTypes(){return this}};rt.default=et});var ot=x(it=>{"use strict";u();Object.defineProperty(it,"__esModule",{value:!0});var _e=(R(),O(S)),Ee=_e.__importDefault(st()),nt=class extends Ee.default{select(t){let e=!1,r=(t??"*").split("").map(s=>/\s/.test(s)&&!e?"":(s==='"'&&(e=!e),s)).join("");return this.url.searchParams.set("select",r),this.headers.append("Prefer","return=representation"),this}order(t,{ascending:e=!0,nullsFirst:r,foreignTable:s,referencedTable:i=s}={}){let o=i?`${i}.order`:"order",a=this.url.searchParams.get(o);return this.url.searchParams.set(o,`${a?`${a},`:""}${t}.${e?"asc":"desc"}${r===void 0?"":r?".nullsfirst":".nullslast"}`),this}limit(t,{foreignTable:e,referencedTable:r=e}={}){let s=typeof r>"u"?"limit":`${r}.limit`;return this.url.searchParams.set(s,`${t}`),this}range(t,e,{foreignTable:r,referencedTable:s=r}={}){let i=typeof s>"u"?"offset":`${s}.offset`,o=typeof s>"u"?"limit":`${s}.limit`;return this.url.searchParams.set(i,`${t}`),this.url.searchParams.set(o,`${e-t+1}`),this}abortSignal(t){return this.signal=t,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return this.method==="GET"?this.headers.set("Accept","application/json"):this.headers.set("Accept","application/vnd.pgrst.object+json"),this.isMaybeSingle=!0,this}csv(){return this.headers.set("Accept","text/csv"),this}geojson(){return this.headers.set("Accept","application/geo+json"),this}explain({analyze:t=!1,verbose:e=!1,settings:r=!1,buffers:s=!1,wal:i=!1,format:o="text"}={}){var a;let c=[t?"analyze":null,e?"verbose":null,r?"settings":null,s?"buffers":null,i?"wal":null].filter(Boolean).join("|"),l=(a=this.headers.get("Accept"))!==null&&a!==void 0?a:"application/json";return this.headers.set("Accept",`application/vnd.pgrst.plan+${o}; for="${l}"; options=${c};`),o==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(t){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${t}`),this}};it.default=nt});var z=x(lt=>{"use strict";u();Object.defineProperty(lt,"__esModule",{value:!0});var xe=(R(),O(S)),Oe=xe.__importDefault(ot()),Se=new RegExp("[,()]"),at=class extends Oe.default{eq(t,e){return this.url.searchParams.append(t,`eq.${e}`),this}neq(t,e){return this.url.searchParams.append(t,`neq.${e}`),this}gt(t,e){return this.url.searchParams.append(t,`gt.${e}`),this}gte(t,e){return this.url.searchParams.append(t,`gte.${e}`),this}lt(t,e){return this.url.searchParams.append(t,`lt.${e}`),this}lte(t,e){return this.url.searchParams.append(t,`lte.${e}`),this}like(t,e){return this.url.searchParams.append(t,`like.${e}`),this}likeAllOf(t,e){return this.url.searchParams.append(t,`like(all).{${e.join(",")}}`),this}likeAnyOf(t,e){return this.url.searchParams.append(t,`like(any).{${e.join(",")}}`),this}ilike(t,e){return this.url.searchParams.append(t,`ilike.${e}`),this}ilikeAllOf(t,e){return this.url.searchParams.append(t,`ilike(all).{${e.join(",")}}`),this}ilikeAnyOf(t,e){return this.url.searchParams.append(t,`ilike(any).{${e.join(",")}}`),this}is(t,e){return this.url.searchParams.append(t,`is.${e}`),this}in(t,e){let r=Array.from(new Set(e)).map(s=>typeof s=="string"&&Se.test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(t,`in.(${r})`),this}contains(t,e){return typeof e=="string"?this.url.searchParams.append(t,`cs.${e}`):Array.isArray(e)?this.url.searchParams.append(t,`cs.{${e.join(",")}}`):this.url.searchParams.append(t,`cs.${JSON.stringify(e)}`),this}containedBy(t,e){return typeof e=="string"?this.url.searchParams.append(t,`cd.${e}`):Array.isArray(e)?this.url.searchParams.append(t,`cd.{${e.join(",")}}`):this.url.searchParams.append(t,`cd.${JSON.stringify(e)}`),this}rangeGt(t,e){return this.url.searchParams.append(t,`sr.${e}`),this}rangeGte(t,e){return this.url.searchParams.append(t,`nxl.${e}`),this}rangeLt(t,e){return this.url.searchParams.append(t,`sl.${e}`),this}rangeLte(t,e){return this.url.searchParams.append(t,`nxr.${e}`),this}rangeAdjacent(t,e){return this.url.searchParams.append(t,`adj.${e}`),this}overlaps(t,e){return typeof e=="string"?this.url.searchParams.append(t,`ov.${e}`):this.url.searchParams.append(t,`ov.{${e.join(",")}}`),this}textSearch(t,e,{config:r,type:s}={}){let i="";s==="plain"?i="pl":s==="phrase"?i="ph":s==="websearch"&&(i="w");let o=r===void 0?"":`(${r})`;return this.url.searchParams.append(t,`${i}fts${o}.${e}`),this}match(t){return Object.entries(t).forEach(([e,r])=>{this.url.searchParams.append(e,`eq.${r}`)}),this}not(t,e,r){return this.url.searchParams.append(t,`not.${e}.${r}`),this}or(t,{foreignTable:e,referencedTable:r=e}={}){let s=r?`${r}.or`:"or";return this.url.searchParams.append(s,`(${t})`),this}filter(t,e,r){return this.url.searchParams.append(t,`${e}.${r}`),this}};lt.default=at});var ht=x(ct=>{"use strict";u();Object.defineProperty(ct,"__esModule",{value:!0});var Re=(R(),O(S)),N=Re.__importDefault(z()),ut=class{constructor(t,{headers:e={},schema:r,fetch:s}){this.url=t,this.headers=new Headers(e),this.schema=r,this.fetch=s}select(t,e){let{head:r=!1,count:s}=e??{},i=r?"HEAD":"GET",o=!1,a=(t??"*").split("").map(c=>/\s/.test(c)&&!o?"":(c==='"'&&(o=!o),c)).join("");return this.url.searchParams.set("select",a),s&&this.headers.append("Prefer",`count=${s}`),new N.default({method:i,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch})}insert(t,{count:e,defaultToNull:r=!0}={}){var s;let i="POST";if(e&&this.headers.append("Prefer",`count=${e}`),r||this.headers.append("Prefer","missing=default"),Array.isArray(t)){let o=t.reduce((a,c)=>a.concat(Object.keys(c)),[]);if(o.length>0){let a=[...new Set(o)].map(c=>`"${c}"`);this.url.searchParams.set("columns",a.join(","))}}return new N.default({method:i,url:this.url,headers:this.headers,schema:this.schema,body:t,fetch:(s=this.fetch)!==null&&s!==void 0?s:fetch})}upsert(t,{onConflict:e,ignoreDuplicates:r=!1,count:s,defaultToNull:i=!0}={}){var o;let a="POST";if(this.headers.append("Prefer",`resolution=${r?"ignore":"merge"}-duplicates`),e!==void 0&&this.url.searchParams.set("on_conflict",e),s&&this.headers.append("Prefer",`count=${s}`),i||this.headers.append("Prefer","missing=default"),Array.isArray(t)){let c=t.reduce((l,h)=>l.concat(Object.keys(h)),[]);if(c.length>0){let l=[...new Set(c)].map(h=>`"${h}"`);this.url.searchParams.set("columns",l.join(","))}}return new N.default({method:a,url:this.url,headers:this.headers,schema:this.schema,body:t,fetch:(o=this.fetch)!==null&&o!==void 0?o:fetch})}update(t,{count:e}={}){var r;let s="PATCH";return e&&this.headers.append("Prefer",`count=${e}`),new N.default({method:s,url:this.url,headers:this.headers,schema:this.schema,body:t,fetch:(r=this.fetch)!==null&&r!==void 0?r:fetch})}delete({count:t}={}){var e;let r="DELETE";return t&&this.headers.append("Prefer",`count=${t}`),new N.default({method:r,url:this.url,headers:this.headers,schema:this.schema,fetch:(e=this.fetch)!==null&&e!==void 0?e:fetch})}};ct.default=ut});var Xt=x(pt=>{"use strict";u();Object.defineProperty(pt,"__esModule",{value:!0});var Qt=(R(),O(S)),Te=Qt.__importDefault(ht()),$e=Qt.__importDefault(z()),dt=class n{constructor(t,{headers:e={},schema:r,fetch:s}={}){this.url=t,this.headers=new Headers(e),this.schemaName=r,this.fetch=s}from(t){let e=new URL(`${this.url}/${t}`);return new Te.default(e,{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch})}schema(t){return new n(this.url,{headers:this.headers,schema:t,fetch:this.fetch})}rpc(t,e={},{head:r=!1,get:s=!1,count:i}={}){var o;let a,c=new URL(`${this.url}/rpc/${t}`),l;r||s?(a=r?"HEAD":"GET",Object.entries(e).filter(([d,m])=>m!==void 0).map(([d,m])=>[d,Array.isArray(m)?`{${m.join(",")}}`:`${m}`]).forEach(([d,m])=>{c.searchParams.append(d,m)})):(a="POST",l=e);let h=new Headers(this.headers);return i&&h.set("Prefer",`count=${i}`),new $e.default({method:a,url:c,headers:h,schema:this.schemaName,body:l,fetch:(o=this.fetch)!==null&&o!==void 0?o:fetch})}};pt.default=dt});var ie=x(w=>{"use strict";u();Object.defineProperty(w,"__esModule",{value:!0});w.PostgrestError=w.PostgrestBuilder=w.PostgrestTransformBuilder=w.PostgrestFilterBuilder=w.PostgrestQueryBuilder=w.PostgrestClient=void 0;var j=(R(),O(S)),Zt=j.__importDefault(Xt());w.PostgrestClient=Zt.default;var te=j.__importDefault(ht());w.PostgrestQueryBuilder=te.default;var ee=j.__importDefault(z());w.PostgrestFilterBuilder=ee.default;var re=j.__importDefault(ot());w.PostgrestTransformBuilder=re.default;var se=j.__importDefault(st());w.PostgrestBuilder=se.default;var ne=j.__importDefault(tt());w.PostgrestError=ne.default;w.default={PostgrestClient:Zt.default,PostgrestQueryBuilder:te.default,PostgrestFilterBuilder:ee.default,PostgrestTransformBuilder:re.default,PostgrestBuilder:se.default,PostgrestError:ne.default}});var Ce={};bt(Ce,{AbortController:()=>H,AbortSignal:()=>A,AuthClient:()=>M,CURRENT_JWT_KEY:()=>_,ENTITIES_BASE_PATH:()=>ae,FILE_STORAGE_BASE_PATH:()=>_t,GENERATE_UPLOAD_URL_PATH:()=>Et,Headers:()=>v,LOGIN_TOKEN_KEY:()=>E,LOGIN_USER_PROFILE_KEY:()=>T,NvwaCapability:()=>gt,NvwaEdgeFunctions:()=>J,NvwaFileStorage:()=>K,NvwaHttpClient:()=>W,NvwaSkill:()=>mt,OverlayManager:()=>yt,PaymentClient:()=>vt,Request:()=>I,Response:()=>L,SET_AUTH_TOKEN_HEADER:()=>G,URL:()=>C,URLSearchParams:()=>$,createPostgrestClient:()=>Ae,getSourceLocationFromDOM:()=>Ue,polyfill:()=>ge});module.exports=O(Ce);u();u();var J=class{constructor(t,e=""){this.http=t,this.baseUrl=e.replace(/\/$/,"")}async invoke(t,e){let r=this.baseUrl?`${this.baseUrl}/functions/${t}`:`/functions/${t}`;return await(await this.http.fetch(r,{method:e.method||"POST",body:e.body,headers:e.headers})).json()}};u();u();var _="nvwa_current_jwt",E="nvwa_login_token",T="nvwa_user_profile",G="set-auth-token",fe=typeof fetch<"u"?(n,t)=>fetch(n,t):(()=>{throw new Error("AuthClient requires fetch")})(),M=class{constructor(t,e={}){this.baseUrl=t.replace(/\/$/,""),this.authPath=(e.authPath??"/auth").replace(/^\//,""),this.fetchImpl=e.fetchImpl??fe,this.storage=e.storage??null,this.credentials=e.credentials??"omit"}async currentUser(){if(this.storage){let r=await this.storage.get(T);if(r!=null)return r}let{data:t}=await this.getSession(),e=t?.user??null;return e&&this.storage&&await this.storage.set(T,e),e}async getCurrentJwt(){if(this.storage){let e=await this.storage.get(_);if(e!=null)return e;let r=await this.storage.get(E),{data:s}=await this.getToken(r??void 0);return s?.token?(await this.storage.set(_,s.token),s.token):null}let{data:t}=await this.getToken();return t?.token??null}async persistLogin(t,e){if(!this.storage)return;let s=e?.headers.get(G)?.trim()||t.token||t.session?.token;s&&await this.storage.set(E,s),t.user&&await this.storage.set(T,t.user);let i=s??await this.storage.get(E),{data:o}=await this.getToken(i??void 0);o?.token&&await this.storage.set(_,o.token)}async clearLogin(){this.storage&&(await this.storage.remove(E),await this.storage.remove(T),await this.storage.remove(_))}url(t){let r=`${`${this.baseUrl.replace(/\/+$/,"")}/${this.authPath.replace(/^\/+/,"")}`}/${t.replace(/^\/+/,"")}`;return typeof console<"u"&&console.debug&&console.debug("[NvwaAuth] request URL:",r),r}async getSession(){try{let t={};if(this.storage){let s=await this.storage.get(E)??await this.storage.get(_);s!=null&&(t.Authorization=`Bearer ${s}`)}let e=await this.fetchImpl(this.url("session"),{method:"GET",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}});return e.ok?{data:await e.json()}:{data:null,error:{message:await e.text()||e.statusText,status:e.status}}}catch(t){return{data:null,error:{message:t instanceof Error?t.message:String(t),status:0}}}}async signInWithEmail(t,e){try{let r=await this.fetchImpl(this.url("sign-in/email"),{method:"POST",headers:{"Content-Type":"application/json"},credentials:this.credentials,body:JSON.stringify({email:t,password:e})}),s=await r.text();if(!r.ok)return{error:{message:s||r.statusText,status:r.status}};let i=s?JSON.parse(s):void 0;return i&&await this.persistLogin({user:i.user,session:i.session},r),{data:i}}catch(r){return{error:{message:r instanceof Error?r.message:String(r),status:0}}}}async signOut(){try{let t={};if(this.storage){let r=await this.storage.get(E)??await this.storage.get(_);r!=null&&(t.Authorization=`Bearer ${r}`)}let e=await this.fetchImpl(this.url("sign-out"),{method:"POST",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}});return await this.clearLogin(),e.ok?{}:{error:{message:await e.text()||e.statusText,status:e.status}}}catch(t){return{error:{message:t instanceof Error?t.message:String(t),status:0}}}}async signUp(t){let e=await this.postJson("sign-up/email",t);return e.data&&await this.persistLogin(e.data,e.response),e}async getToken(t){try{let e={};if(t)e.Authorization=`Bearer ${t}`;else if(this.storage){let o=await this.storage.get(E)??await this.storage.get(_);o!=null&&(e.Authorization=`Bearer ${o}`)}let r=await this.fetchImpl(this.url("token"),{method:"GET",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}}),s=await r.text();if(!r.ok)return{error:{message:s||r.statusText,status:r.status}};let i=s?JSON.parse(s):void 0;return{data:i?.token!=null?{token:i.token}:void 0}}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async signInWithUsername(t,e){let r=await this.postJson("sign-in/username",{username:t,password:e});return r.data&&await this.persistLogin(r.data,r.response),r}async signInWithPhoneNumber(t,e,r){let s=await this.postJson("sign-in/phone-number",{phoneNumber:t,password:e,rememberMe:r});return s.data&&await this.persistLogin(s.data,s.response),s}async sendPhoneNumberOtp(t){let e=await this.postJson("phone-number/send-otp",{phoneNumber:t});return e.error?{error:e.error}:{}}async verifyPhoneNumber(t,e){let r=await this.postJson("phone-number/verify",{phoneNumber:t,code:e});return r.data&&await this.persistLogin(r.data,r.response),r}async postJson(t,e){try{let r=await this.fetchImpl(this.url(t),{method:"POST",headers:{"Content-Type":"application/json"},credentials:this.credentials,body:JSON.stringify(e)}),s=await r.text();if(!r.ok)return{error:{message:s||r.statusText,status:r.status}};let i=s?JSON.parse(s):void 0;return{data:i?.data??i??void 0,response:r}}catch(r){return{error:{message:r instanceof Error?r.message:String(r),status:0}}}}};u();u();var v=class n{constructor(t){this.headerMap=new Map;if(t){if(t instanceof n)t.forEach((e,r)=>this.set(r,e));else if(Array.isArray(t))for(let[e,r]of t)this.set(e,String(r));else if(typeof t=="object")for(let e of Object.keys(t))this.set(e,String(t[e]))}}append(t,e){let r=t.toLowerCase(),s=this.headerMap.get(r);this.headerMap.set(r,s?`${s}, ${e}`:e)}set(t,e){this.headerMap.set(t.toLowerCase(),String(e))}get(t){let e=this.headerMap.get(t.toLowerCase());return e??null}has(t){return this.headerMap.has(t.toLowerCase())}delete(t){this.headerMap.delete(t.toLowerCase())}forEach(t){for(let[e,r]of this.headerMap.entries())t(r,e,this)}entries(){return this.headerMap.entries()}keys(){return this.headerMap.keys()}values(){return this.headerMap.values()}[Symbol.iterator](){return this.entries()}},$=class n{constructor(t){this.params=new Map;if(t){if(typeof t=="string")this.parseString(t);else if(t instanceof n)this.params=new Map(t.params);else if(Array.isArray(t))for(let[e,r]of t)this.append(e,r);else if(t&&typeof t=="object")for(let[e,r]of Object.entries(t))this.set(e,r)}}parseString(t){t.startsWith("?")&&(t=t.slice(1));let e=t.split("&");for(let r of e)if(r){let[s,i]=r.split("=");s&&this.append(decodeURIComponent(s),i?decodeURIComponent(i):"")}}append(t,e){let r=this.params.get(t)||[];r.push(e),this.params.set(t,r)}delete(t){this.params.delete(t)}get(t){let e=this.params.get(t);return e?e[0]:null}getAll(t){return this.params.get(t)||[]}has(t){return this.params.has(t)}set(t,e){this.params.set(t,[e])}sort(){let t=Array.from(this.params.entries()).sort(([e],[r])=>e.localeCompare(r));this.params=new Map(t)}toString(){let t=[];for(let[e,r]of this.params.entries())for(let s of r)t.push(`${encodeURIComponent(e)}=${encodeURIComponent(s)}`);return t.join("&")}forEach(t){for(let[e,r]of this.params.entries())for(let s of r)t(s,e,this)}keys(){return this.params.keys()}values(){let t=[];for(let e of this.params.values())t.push(...e);return t[Symbol.iterator]()}entries(){let t=[];for(let[e,r]of this.params.entries())for(let s of r)t.push([e,s]);return t[Symbol.iterator]()}[Symbol.iterator](){return this.entries()}get size(){return this.params.size}},C=class n{constructor(t,e){let r;if(t instanceof n)r=t.href;else if(e){let i=e instanceof n?e.href:e;r=this.resolve(i,t)}else r=t;let s=this.parseUrl(r);this.href=r,this.origin=`${s.protocol}//${s.host}`,this.protocol=s.protocol,this.username=s.username,this.password=s.password,this.host=s.host,this.hostname=s.hostname,this.port=s.port,this.pathname=s.pathname,this.search=s.search,this.searchParams=new $(s.search),this.hash=s.hash}resolve(t,e){if(e.startsWith("http://")||e.startsWith("https://"))return e;if(e.startsWith("//"))return`${this.parseUrl(t).protocol}${e}`;if(e.startsWith("/")){let i=this.parseUrl(t);return`${i.protocol}//${i.host}${e}`}let r=this.parseUrl(t),s=r.pathname.endsWith("/")?r.pathname:r.pathname+"/";return`${r.protocol}//${r.host}${s}${e}`}parseUrl(t){let e=t.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!e)throw new TypeError("Invalid URL");let r=e[2]||"",s=e[4]||"",i=e[5]||"/",o=e[7]?`?${e[7]}`:"",a=e[9]?`#${e[9]}`:"";if(!r&&!s&&!i.startsWith("/")&&!i.includes("/")&&!i.includes("."))throw new TypeError("Invalid URL");let c=s.match(/^([^@]*)@(.+)$/),l="",h="",d=s;if(c){let b=c[1];d=c[2];let y=b.match(/^([^:]*):?(.*)$/);y&&(l=y[1]||"",h=y[2]||"")}let m=d.match(/^([^:]+):?(\d*)$/),p=m?m[1]:d,g=m&&m[2]?m[2]:"";return{protocol:r?`${r}:`:"",username:l,password:h,host:d,hostname:p,port:g,pathname:i,search:o,hash:a}}toString(){let t=this.searchParams.toString(),e=t?`?${t}`:"";return`${this.protocol}//${this.host}${this.pathname}${e}${this.hash}`}toJSON(){return this.toString()}};u();var I=class n{constructor(t,e){if(typeof t=="string")this.url=t;else if(t?.url)this.url=String(t.url);else if(typeof t?.toString=="function")this.url=String(t.toString());else throw new Error("Invalid input for Request");this.method=(e?.method||"GET").toUpperCase(),this.headers=e?.headers instanceof v?e.headers:new v(e?.headers),this.body=e?.body,this.timeout=e?.timeout,this.signal=e?.signal||void 0}clone(){return new n(this.url,{method:this.method,headers:this.headers,body:this.body,timeout:this.timeout})}toString(){return this.url}};u();var L=class{constructor(t,e){this.bodyData=t,this.status=e?.status??200,this.statusText=e?.statusText??"",this.headers=me(e?.headers),this.ok=this.status>=200&&this.status<300}async text(){return typeof this.bodyData=="string"?this.bodyData:this.bodyData==null?"":typeof this.bodyData=="object"?JSON.stringify(this.bodyData):String(this.bodyData)}async json(){if(typeof this.bodyData=="string")try{return JSON.parse(this.bodyData)}catch{}return this.bodyData}async arrayBuffer(){let t=await this.text();return new TextEncoder().encode(t).buffer}};function me(n){return n?new v(n):new v}u();var A=class{constructor(){this._aborted=!1;this.listeners=new Set;this.onabort=null}get aborted(){return this._aborted}_trigger(){if(!this._aborted){if(this._aborted=!0,typeof this.onabort=="function")try{this.onabort()}catch{}for(let t of Array.from(this.listeners))try{t()}catch{}this.listeners.clear()}}addEventListener(t,e){if(this._aborted){try{e()}catch{}return}this.listeners.add(e)}removeEventListener(t,e){this.listeners.delete(e)}toString(){return"[object AbortSignal]"}},H=class{constructor(){this._signal=new A}get signal(){return this._signal}abort(){this._signal._trigger()}toString(){return"[object AbortController]"}};u();function ge(n){n.URL=C,n.URLSearchParams=$,n.Headers=v,n.Request=I,n.Response=L,n.AbortController=H,n.AbortSignal=A}var W=class{constructor(t,e,r){this.storage=t,this.customFetch=e,this.handleUnauthorized=r}async fetch(t,e){return await this.customFetch(t,e)}async fetchWithAuth(t,e){let r=await this.storage.get(_),s=new v(e?.headers);r&&s.set("Authorization",`Bearer ${r}`);let i=e?.method||"GET";if((i==="POST"||i==="PUT"||i==="PATCH")&&e?.body){let a=s.get("Content-Type");(!a||a.includes("text/plain"))&&s.set("Content-Type","application/json")}let o=await this.customFetch(t,{...e,headers:s});if(o.status===401)throw this.handleUnauthorized(),new Error("\u672A\u767B\u5F55");return o}};u();var _t="/storage",Et=_t+"/generateUploadUrl",K=class{constructor(t,e){this.baseUrl=t,this.http=e}async uploadFile(t){let e=await this.http.fetch(this.baseUrl+Et,{method:"POST",body:{fileName:t.name||t.fileName,fileSize:t.size||t.fileSize,fileType:t.type||t.fileType}}),{url:r}=await e.json();if(!r)throw new Error("\u83B7\u53D6\u4E0A\u4F20URL\u5931\u8D25");let s=await this.http.fetch(r,{method:"PUT",body:t,headers:new v({"Content-Type":t.type||t.fileType||"application/octet-stream"})}),{url:i}=await s.json();return{url:i.split("?")[0]}}};u();u();u();var ft=pe(ie(),1),{PostgrestClient:oe,PostgrestQueryBuilder:kr,PostgrestFilterBuilder:qr,PostgrestTransformBuilder:Mr,PostgrestBuilder:Dr,PostgrestError:Br}=ft.default||ft;var ae="/entities",Ae=(n,t)=>new oe(n+ae,{fetch:t.fetchWithAuth.bind(t)});u();var mt=class{constructor(t,e){this.baseUrl=t,this.http=e}async execute(t,e){let r=`${this.baseUrl}/capability/${t}/execute`,i=await(await this.http.fetchWithAuth(r,{method:"POST",body:e?JSON.stringify(e):void 0,timeout:6e5})).json();if(i.status!==200)throw new Error(i.message);return i.data}};u();var gt=class{constructor(t,e){this.baseUrl=t,this.http=e}async execute(t,e){let r=`${this.baseUrl}/capability/${t}/execute`,i=await(await this.http.fetchWithAuth(r,{method:"POST",body:e!=null?JSON.stringify(e):void 0,timeout:6e5})).json();if(i.status!==200)throw new Error(i.message);return i.data}};u();var yt=class{constructor(){this.hoverOverlay=null;this.selectedOverlay=null;this.tooltip=null;this.hoverElement=null;this.selectedElement=null;this.hoverUpdateHandler=null;this.selectedUpdateHandler=null;this.createStyles()}createStyles(){if(document.getElementById("__nvwa-inspector-overlay-style"))return;let t=document.createElement("style");t.id="__nvwa-inspector-overlay-style",t.textContent=`
|
|
2
2
|
.__nvwa-inspector-overlay {
|
|
3
3
|
position: absolute;
|
|
4
4
|
pointer-events: none;
|
|
@@ -30,4 +30,4 @@
|
|
|
30
30
|
max-width: 400px;
|
|
31
31
|
word-break: break-all;
|
|
32
32
|
}
|
|
33
|
-
`,document.head.appendChild(
|
|
33
|
+
`,document.head.appendChild(t)}createTooltip(){return this.tooltip?this.tooltip:(this.tooltip=document.createElement("div"),this.tooltip.id="__nvwa-inspector-tooltip",document.body.appendChild(this.tooltip),this.tooltip)}createOverlay(t){let e=document.createElement("div");return e.className=`__nvwa-inspector-overlay __nvwa-inspector-overlay-${t}`,document.body.appendChild(e),e}updateOverlayPosition(t,e){if(!e.isConnected)return;let r=e.getBoundingClientRect(),s=window.scrollX||window.pageXOffset,i=window.scrollY||window.pageYOffset;r.width>0&&r.height>0?(t.style.left=`${r.left+s}px`,t.style.top=`${r.top+i}px`,t.style.width=`${r.width}px`,t.style.height=`${r.height}px`,t.style.display="block"):t.style.display="none"}removeOverlay(t){t&&t.parentNode&&t.parentNode.removeChild(t)}highlightElement(t,e){if(!t.isConnected)return;if(this.hoverElement===t&&this.hoverOverlay){this.updateOverlayPosition(this.hoverOverlay,t);let a=this.createTooltip();e?a.textContent=e:a.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,a.style.display="block";let c=t.getBoundingClientRect();a.style.left=`${c.left+window.scrollX}px`,a.style.top=`${c.top+window.scrollY-a.offsetHeight-8}px`,c.top<a.offsetHeight+8&&(a.style.top=`${c.bottom+window.scrollY+8}px`);return}this.hoverOverlay&&(this.removeOverlay(this.hoverOverlay),this.hoverOverlay=null);let r=this.createOverlay("hover");this.updateOverlayPosition(r,t),this.hoverOverlay=r,this.hoverElement=t;let s=()=>{this.hoverOverlay&&this.hoverElement&&this.hoverElement.isConnected&&this.updateOverlayPosition(this.hoverOverlay,this.hoverElement)};this.hoverUpdateHandler&&(window.removeEventListener("scroll",this.hoverUpdateHandler,!0),window.removeEventListener("resize",this.hoverUpdateHandler)),this.hoverUpdateHandler=s,window.addEventListener("scroll",s,!0),window.addEventListener("resize",s);let i=this.createTooltip();e?i.textContent=e:i.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,i.style.display="block";let o=t.getBoundingClientRect();i.style.left=`${o.left+window.scrollX}px`,i.style.top=`${o.top+window.scrollY-i.offsetHeight-8}px`,o.top<i.offsetHeight+8&&(i.style.top=`${o.bottom+window.scrollY+8}px`)}selectElement(t,e){if(!t.isConnected)return;if(this.selectedElement===t&&this.selectedOverlay){this.updateOverlayPosition(this.selectedOverlay,t);return}this.selectedOverlay&&(this.removeOverlay(this.selectedOverlay),this.selectedOverlay=null);let r=this.createOverlay("selected");this.updateOverlayPosition(r,t),this.selectedOverlay=r,this.selectedElement=t;let s=()=>{this.selectedOverlay&&this.selectedElement&&this.selectedElement.isConnected&&this.updateOverlayPosition(this.selectedOverlay,this.selectedElement)};this.selectedUpdateHandler&&(window.removeEventListener("scroll",this.selectedUpdateHandler,!0),window.removeEventListener("resize",this.selectedUpdateHandler)),this.selectedUpdateHandler=s,window.addEventListener("scroll",s,!0),window.addEventListener("resize",s)}removeHighlight(){this.hoverOverlay&&(this.removeOverlay(this.hoverOverlay),this.hoverOverlay=null),this.hoverElement&&(this.hoverElement=null),this.tooltip&&(this.tooltip.style.display="none"),this.hoverUpdateHandler&&(window.removeEventListener("scroll",this.hoverUpdateHandler,!0),window.removeEventListener("resize",this.hoverUpdateHandler),this.hoverUpdateHandler=null)}clearSelection(){this.selectedOverlay&&(this.removeOverlay(this.selectedOverlay),this.selectedOverlay=null),this.selectedElement&&(this.selectedElement=null),this.selectedUpdateHandler&&(window.removeEventListener("scroll",this.selectedUpdateHandler,!0),window.removeEventListener("resize",this.selectedUpdateHandler),this.selectedUpdateHandler=null)}cleanup(){this.removeHighlight(),this.clearSelection(),this.tooltip&&this.tooltip.parentNode&&(this.tooltip.parentNode.removeChild(this.tooltip),this.tooltip=null);let t=document.getElementById("__nvwa-inspector-overlay-style");t&&t.parentNode&&t.parentNode.removeChild(t)}};function Ue(n="root"){if(typeof document>"u")return null;let t=document.getElementById(n)||document.body;if(!t)return null;let e=t.querySelector("[data-source-location]");if(e){let r=e.getAttribute("data-source-location");if(r)return r}if(t.firstElementChild){let s=t.firstElementChild.getAttribute("data-source-location");if(s)return s}return null}u();var je=typeof fetch<"u"?(n,t)=>fetch(n,t):(()=>{throw new Error("payment client requires fetch")})(),vt=class{constructor(t,e="/payment",r=je){this.baseUrl=t;this.pathPrefix=e;this.fetchImpl=r}async rpc(t,e){let r=this.baseUrl.replace(/\/$/,""),s=this.pathPrefix.replace(/^\/?/,"").replace(/\/$/,""),i=`${r}/${s}/${t}`,o=await this.fetchImpl(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e??{})});if(!o.ok){let a=await o.text();throw new Error(`${t} failed: ${o.status} ${a}`)}if(!(o.status===204||!o.body))return await o.json()}async getConfiguredProviders(t){try{let r=(await this.rpc("getConfiguredProviders",{}))?.providers;if(!Array.isArray(r))return[];if(r.length===0)return[];if(typeof r[0]=="string")return r;let i=r,o=t?.platform;return o?i.filter(a=>!a.supportedPlatforms||a.supportedPlatforms.includes(o)).map(a=>a.id):i.map(a=>a.id)}catch{return[]}}async createPayment(t){let e=await this.rpc("createOrder",{amount:t.amount,subject:t.subject,currency:t.currency??"cny",providerId:t.providerId,metadata:t.metadata});if(e.orderId==null)throw new Error("createPayment: missing orderId in response");return e}async queryOrder(t){let e=await this.rpc("getOrder",{orderId:t});return{orderId:e.orderId??t,status:e.status??"pending",order:e.order}}async cancelOrder(t){await this.rpc("cancelOrder",{orderId:t})}};0&&(module.exports={AbortController,AbortSignal,AuthClient,CURRENT_JWT_KEY,ENTITIES_BASE_PATH,FILE_STORAGE_BASE_PATH,GENERATE_UPLOAD_URL_PATH,Headers,LOGIN_TOKEN_KEY,LOGIN_USER_PROFILE_KEY,NvwaCapability,NvwaEdgeFunctions,NvwaFileStorage,NvwaHttpClient,NvwaSkill,OverlayManager,PaymentClient,Request,Response,SET_AUTH_TOKEN_HEADER,URL,URLSearchParams,createPostgrestClient,getSourceLocationFromDOM,polyfill});
|