@nvwa-app/sdk-core 6.14.0 → 6.15.0

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 CHANGED
@@ -98,6 +98,13 @@ type CreatePaymentResponse = PaymentOrderResult;
98
98
  */
99
99
  declare function requestPaymentFromOrderResult(result: PaymentOrderResult, launcher: IPaymentLauncher, callbacks?: PaymentRequestCallbacks): Promise<void>;
100
100
 
101
+ /** 仅能在构造 `Nvwa` / `NvwaIntegrationSnapshot` 时传入;`load()` 不再接受应用/端或语言覆盖 */
102
+ interface IntegrationSnapshotContext {
103
+ applicationCode: string;
104
+ platformCode: string;
105
+ /** 默认 `zh`;非 `en` 则按中文 */
106
+ locale?: string;
107
+ }
101
108
  interface IntegrationSnapshotProvider {
102
109
  id: string;
103
110
  name: string;
@@ -118,13 +125,14 @@ interface IntegrationSnapshot {
118
125
  }
119
126
  /**
120
127
  * 经 Runtime `GET /nvwa/integration-snapshot` 拉取快照(Runtime 再 HMAC 调 Server internal)。
121
- * SDK 内存按 (applicationCode, platformCode) 缓存;不要求调用方传入 projectCode。
128
+ * 应用/端与默认语言仅在构造时通过 `IntegrationSnapshotContext` 传入;`load()` 仅支持 `force` 刷新缓存。
122
129
  */
123
130
  declare class NvwaIntegrationSnapshot {
124
131
  private readonly baseUrl;
125
132
  private readonly fetchImpl;
133
+ private readonly context;
126
134
  private cache;
127
- constructor(baseUrl: string, fetchImpl: NvwaFetch);
135
+ constructor(baseUrl: string, fetchImpl: NvwaFetch, context: IntegrationSnapshotContext);
128
136
  /** 当前缓存的快照(未 load 过则为 null) */
129
137
  get(): IntegrationSnapshot | null;
130
138
  /**
@@ -133,16 +141,12 @@ declare class NvwaIntegrationSnapshot {
133
141
  getIntegrationItem(integrationType: string): IntegrationSnapshotItem | null;
134
142
  /**
135
143
  * 已启用且出现在快照中的 providers(`enabled === true`)。
136
- * 须先 `load({ applicationCode, platformCode })`;未缓存时返回空数组。
144
+ * 须先 `load()`;未缓存时返回空数组。
137
145
  */
138
146
  getEnabledProviders(integrationType: string): IntegrationSnapshotProvider[];
139
147
  clear(): void;
140
- load(params: {
141
- applicationCode: string;
142
- platformCode: string;
143
- /** 快照内文案语言:`zh` | `en`,默认 zh */
144
- locale?: string;
145
- /** 为 true 时忽略内存缓存并重新请求 */
148
+ /** 拉取快照;`force: true` 时忽略内存缓存重新请求 */
149
+ load(params?: {
146
150
  force?: boolean;
147
151
  }): Promise<IntegrationSnapshot>;
148
152
  }
@@ -626,10 +630,13 @@ interface INvwa {
626
630
  functions: NvwaEdgeFunctions;
627
631
  fileStorage: NvwaFileStorage;
628
632
  payment: IPaymentLauncher;
629
- /** 经 Runtime 拉取 integration / provider 开关快照(初始化时 load 一次即可)。 */
633
+ /**
634
+ * 经 Runtime 拉取 integration / provider 开关快照。
635
+ * 须在构造 Nvwa 时传入 `integrationSnapshot` 上下文;调用侧使用 `await integrationSnapshot.load()`(可选 `{ force: true }`)。
636
+ */
630
637
  integrationSnapshot: NvwaIntegrationSnapshot;
631
638
  /** 发起支付,由 @nvwa-app/sdk-web / @nvwa-app/sdk-uniapp 分别实现 IPaymentLauncher。 */
632
639
  endpointType: string;
633
640
  }
634
641
 
635
- export { type AlipayCodeLoginResult, type AlipayOpenPlatformIdentity, AuthClient, type AuthClientOptions, type AuthResult, type AuthSession, type AuthUser, CURRENT_JWT_KEY, type CreatePaymentResponse, ENTITIES_BASE_PATH, FILE_STORAGE_BASE_PATH, type FunctionInvokeOptions, GENERATE_UPLOAD_URL_PATH, type GithubOpenPlatformIdentity, type GithubOpenPlatformLoginResult, type GoogleOpenPlatformIdentity, type GoogleOpenPlatformLoginResult, type HoverInspectorMessage, type HttpMethod, type HttpUploadFileResponse, type INvwa, type IPaymentLauncher, type IframeSourceLocationMessage, type IntegrationSnapshot, type IntegrationSnapshotItem, type IntegrationSnapshotProvider, LOGIN_TOKEN_KEY, LOGIN_USER_PROFILE_KEY, type LegacyPayParams, NvwaEdgeFunctions, NvwaFileStorage, NvwaHttpClient, NvwaIntegrationSnapshot, type NvwaLocalStorage, OverlayManager, type PayParams, type PaymentOrderResult, type PaymentRequestCallbacks, SET_AUTH_TOKEN_HEADER, type SignUpBody, type TypedPayParams, type WeChatCodeLoginResult, type WeChatOpenPlatformIdentity, type WechatJsapiPayParams, type WechatWebsiteOpenPlatformIdentity, type WechatWebsiteOpenPlatformLoginResult, createPostgrestClient, getSourceLocationFromDOM, normalizePayParams, requestPaymentFromOrderResult };
642
+ export { type AlipayCodeLoginResult, type AlipayOpenPlatformIdentity, AuthClient, type AuthClientOptions, type AuthResult, type AuthSession, type AuthUser, CURRENT_JWT_KEY, type CreatePaymentResponse, ENTITIES_BASE_PATH, FILE_STORAGE_BASE_PATH, type FunctionInvokeOptions, GENERATE_UPLOAD_URL_PATH, type GithubOpenPlatformIdentity, type GithubOpenPlatformLoginResult, type GoogleOpenPlatformIdentity, type GoogleOpenPlatformLoginResult, type HoverInspectorMessage, type HttpMethod, type HttpUploadFileResponse, type INvwa, type IPaymentLauncher, type IframeSourceLocationMessage, type IntegrationSnapshot, type IntegrationSnapshotContext, type IntegrationSnapshotItem, type IntegrationSnapshotProvider, LOGIN_TOKEN_KEY, LOGIN_USER_PROFILE_KEY, type LegacyPayParams, NvwaEdgeFunctions, NvwaFileStorage, NvwaHttpClient, NvwaIntegrationSnapshot, type NvwaLocalStorage, OverlayManager, type PayParams, type PaymentOrderResult, type PaymentRequestCallbacks, SET_AUTH_TOKEN_HEADER, type SignUpBody, type TypedPayParams, type WeChatCodeLoginResult, type WeChatOpenPlatformIdentity, type WechatJsapiPayParams, type WechatWebsiteOpenPlatformIdentity, type WechatWebsiteOpenPlatformLoginResult, createPostgrestClient, getSourceLocationFromDOM, normalizePayParams, requestPaymentFromOrderResult };
package/dist/index.d.ts CHANGED
@@ -98,6 +98,13 @@ type CreatePaymentResponse = PaymentOrderResult;
98
98
  */
99
99
  declare function requestPaymentFromOrderResult(result: PaymentOrderResult, launcher: IPaymentLauncher, callbacks?: PaymentRequestCallbacks): Promise<void>;
100
100
 
101
+ /** 仅能在构造 `Nvwa` / `NvwaIntegrationSnapshot` 时传入;`load()` 不再接受应用/端或语言覆盖 */
102
+ interface IntegrationSnapshotContext {
103
+ applicationCode: string;
104
+ platformCode: string;
105
+ /** 默认 `zh`;非 `en` 则按中文 */
106
+ locale?: string;
107
+ }
101
108
  interface IntegrationSnapshotProvider {
102
109
  id: string;
103
110
  name: string;
@@ -118,13 +125,14 @@ interface IntegrationSnapshot {
118
125
  }
119
126
  /**
120
127
  * 经 Runtime `GET /nvwa/integration-snapshot` 拉取快照(Runtime 再 HMAC 调 Server internal)。
121
- * SDK 内存按 (applicationCode, platformCode) 缓存;不要求调用方传入 projectCode。
128
+ * 应用/端与默认语言仅在构造时通过 `IntegrationSnapshotContext` 传入;`load()` 仅支持 `force` 刷新缓存。
122
129
  */
123
130
  declare class NvwaIntegrationSnapshot {
124
131
  private readonly baseUrl;
125
132
  private readonly fetchImpl;
133
+ private readonly context;
126
134
  private cache;
127
- constructor(baseUrl: string, fetchImpl: NvwaFetch);
135
+ constructor(baseUrl: string, fetchImpl: NvwaFetch, context: IntegrationSnapshotContext);
128
136
  /** 当前缓存的快照(未 load 过则为 null) */
129
137
  get(): IntegrationSnapshot | null;
130
138
  /**
@@ -133,16 +141,12 @@ declare class NvwaIntegrationSnapshot {
133
141
  getIntegrationItem(integrationType: string): IntegrationSnapshotItem | null;
134
142
  /**
135
143
  * 已启用且出现在快照中的 providers(`enabled === true`)。
136
- * 须先 `load({ applicationCode, platformCode })`;未缓存时返回空数组。
144
+ * 须先 `load()`;未缓存时返回空数组。
137
145
  */
138
146
  getEnabledProviders(integrationType: string): IntegrationSnapshotProvider[];
139
147
  clear(): void;
140
- load(params: {
141
- applicationCode: string;
142
- platformCode: string;
143
- /** 快照内文案语言:`zh` | `en`,默认 zh */
144
- locale?: string;
145
- /** 为 true 时忽略内存缓存并重新请求 */
148
+ /** 拉取快照;`force: true` 时忽略内存缓存重新请求 */
149
+ load(params?: {
146
150
  force?: boolean;
147
151
  }): Promise<IntegrationSnapshot>;
148
152
  }
@@ -626,10 +630,13 @@ interface INvwa {
626
630
  functions: NvwaEdgeFunctions;
627
631
  fileStorage: NvwaFileStorage;
628
632
  payment: IPaymentLauncher;
629
- /** 经 Runtime 拉取 integration / provider 开关快照(初始化时 load 一次即可)。 */
633
+ /**
634
+ * 经 Runtime 拉取 integration / provider 开关快照。
635
+ * 须在构造 Nvwa 时传入 `integrationSnapshot` 上下文;调用侧使用 `await integrationSnapshot.load()`(可选 `{ force: true }`)。
636
+ */
630
637
  integrationSnapshot: NvwaIntegrationSnapshot;
631
638
  /** 发起支付,由 @nvwa-app/sdk-web / @nvwa-app/sdk-uniapp 分别实现 IPaymentLauncher。 */
632
639
  endpointType: string;
633
640
  }
634
641
 
635
- export { type AlipayCodeLoginResult, type AlipayOpenPlatformIdentity, AuthClient, type AuthClientOptions, type AuthResult, type AuthSession, type AuthUser, CURRENT_JWT_KEY, type CreatePaymentResponse, ENTITIES_BASE_PATH, FILE_STORAGE_BASE_PATH, type FunctionInvokeOptions, GENERATE_UPLOAD_URL_PATH, type GithubOpenPlatformIdentity, type GithubOpenPlatformLoginResult, type GoogleOpenPlatformIdentity, type GoogleOpenPlatformLoginResult, type HoverInspectorMessage, type HttpMethod, type HttpUploadFileResponse, type INvwa, type IPaymentLauncher, type IframeSourceLocationMessage, type IntegrationSnapshot, type IntegrationSnapshotItem, type IntegrationSnapshotProvider, LOGIN_TOKEN_KEY, LOGIN_USER_PROFILE_KEY, type LegacyPayParams, NvwaEdgeFunctions, NvwaFileStorage, NvwaHttpClient, NvwaIntegrationSnapshot, type NvwaLocalStorage, OverlayManager, type PayParams, type PaymentOrderResult, type PaymentRequestCallbacks, SET_AUTH_TOKEN_HEADER, type SignUpBody, type TypedPayParams, type WeChatCodeLoginResult, type WeChatOpenPlatformIdentity, type WechatJsapiPayParams, type WechatWebsiteOpenPlatformIdentity, type WechatWebsiteOpenPlatformLoginResult, createPostgrestClient, getSourceLocationFromDOM, normalizePayParams, requestPaymentFromOrderResult };
642
+ export { type AlipayCodeLoginResult, type AlipayOpenPlatformIdentity, AuthClient, type AuthClientOptions, type AuthResult, type AuthSession, type AuthUser, CURRENT_JWT_KEY, type CreatePaymentResponse, ENTITIES_BASE_PATH, FILE_STORAGE_BASE_PATH, type FunctionInvokeOptions, GENERATE_UPLOAD_URL_PATH, type GithubOpenPlatformIdentity, type GithubOpenPlatformLoginResult, type GoogleOpenPlatformIdentity, type GoogleOpenPlatformLoginResult, type HoverInspectorMessage, type HttpMethod, type HttpUploadFileResponse, type INvwa, type IPaymentLauncher, type IframeSourceLocationMessage, type IntegrationSnapshot, type IntegrationSnapshotContext, type IntegrationSnapshotItem, type IntegrationSnapshotProvider, LOGIN_TOKEN_KEY, LOGIN_USER_PROFILE_KEY, type LegacyPayParams, NvwaEdgeFunctions, NvwaFileStorage, NvwaHttpClient, NvwaIntegrationSnapshot, type NvwaLocalStorage, OverlayManager, type PayParams, type PaymentOrderResult, type PaymentRequestCallbacks, SET_AUTH_TOKEN_HEADER, type SignUpBody, type TypedPayParams, type WeChatCodeLoginResult, type WeChatOpenPlatformIdentity, type WechatJsapiPayParams, type WechatWebsiteOpenPlatformIdentity, type WechatWebsiteOpenPlatformLoginResult, createPostgrestClient, getSourceLocationFromDOM, normalizePayParams, requestPaymentFromOrderResult };
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- "use strict";var T=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Q=Object.prototype.hasOwnProperty;var Z=(r,t)=>{for(var e in t)T(r,e,{get:t[e],enumerable:!0})},tt=(r,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of X(t))!Q.call(r,i)&&i!==e&&T(r,i,{get:()=>t[i],enumerable:!(s=V(t,i))||s.enumerable});return r};var et=r=>tt(T({},"__esModule",{value:!0}),r);var wt={};Z(wt,{AuthClient:()=>x,CURRENT_JWT_KEY:()=>u,ENTITIES_BASE_PATH:()=>Y,FILE_STORAGE_BASE_PATH:()=>F,GENERATE_UPLOAD_URL_PATH:()=>M,Headers:()=>f,LOGIN_TOKEN_KEY:()=>y,LOGIN_USER_PROFILE_KEY:()=>P,NvwaEdgeFunctions:()=>A,NvwaFileStorage:()=>U,NvwaHttpClient:()=>I,NvwaIntegrationSnapshot:()=>R,OverlayManager:()=>N,Request:()=>_,Response:()=>k,SET_AUTH_TOKEN_HEADER:()=>$,URL:()=>O,createPostgrestClient:()=>dt,getSourceLocationFromDOM:()=>gt,normalizePayParams:()=>mt,requestPaymentFromOrderResult:()=>ft});module.exports=et(wt);var f=class H{constructor(t){if(this.headerMap=new Map,t){if(t instanceof H)t.forEach((e,s)=>this.set(s,e));else if(Array.isArray(t))for(let[e,s]of t)this.set(e,String(s));else if(typeof t=="object")for(let e of Object.keys(t))this.set(e,String(t[e]))}}append(t,e){let s=t.toLowerCase(),i=this.headerMap.get(s);this.headerMap.set(s,i?`${i}, ${e}`:e)}set(t,e){this.headerMap.set(t.toLowerCase(),String(e))}get(t){return this.headerMap.get(t.toLowerCase())??null}has(t){return this.headerMap.has(t.toLowerCase())}delete(t){this.headerMap.delete(t.toLowerCase())}forEach(t){for(let[e,s]of this.headerMap.entries())t(s,e,this)}entries(){return this.headerMap.entries()}keys(){return this.headerMap.keys()}values(){return this.headerMap.values()}[Symbol.iterator](){return this.entries()}},st=class W{constructor(t){if(this.params=new Map,t){if(typeof t=="string")this.parseString(t);else if(t instanceof W)this.params=new Map(t.params);else if(Array.isArray(t))for(let[e,s]of t)this.append(e,s);else if(t&&typeof t=="object")for(let[e,s]of Object.entries(t))this.set(e,s)}}parseString(t){t.startsWith("?")&&(t=t.slice(1));let e=t.split("&");for(let s of e)if(s){let[i,n]=s.split("=");i&&this.append(decodeURIComponent(i),n?decodeURIComponent(n):"")}}append(t,e){let s=this.params.get(t)||[];s.push(e),this.params.set(t,s)}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],[s])=>e.localeCompare(s));this.params=new Map(t)}toString(){let t=[];for(let[e,s]of this.params.entries())for(let i of s)t.push(`${encodeURIComponent(e)}=${encodeURIComponent(i)}`);return t.join("&")}forEach(t){for(let[e,s]of this.params.entries())for(let i of s)t(i,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,s]of this.params.entries())for(let i of s)t.push([e,i]);return t[Symbol.iterator]()}[Symbol.iterator](){return this.entries()}get size(){return this.params.size}},O=class C{constructor(t,e){let s;if(t instanceof C)s=t.href;else if(e){let n=e instanceof C?e.href:e;s=this.resolve(n,t)}else s=t;let i=this.parseUrl(s);this.href=s,this.origin=`${i.protocol}//${i.host}`,this.protocol=i.protocol,this.username=i.username,this.password=i.password,this.host=i.host,this.hostname=i.hostname,this.port=i.port,this.pathname=i.pathname,this.search=i.search,this.searchParams=new st(i.search),this.hash=i.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 n=this.parseUrl(t);return`${n.protocol}//${n.host}${e}`}let s=this.parseUrl(t),i=s.pathname.endsWith("/")?s.pathname:s.pathname+"/";return`${s.protocol}//${s.host}${i}${e}`}parseUrl(t){let e=t.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!e)throw new TypeError("Invalid URL");let s=e[2]||"",i=e[4]||"",n=e[5]||"/",a=e[7]?`?${e[7]}`:"",o=e[9]?`#${e[9]}`:"";if(!s&&!i&&!n.startsWith("/")&&!n.includes("/")&&!n.includes("."))throw new TypeError("Invalid URL");let l=i.match(/^([^@]*)@(.+)$/),c="",h="",p=i;if(l){let b=l[1];p=l[2];let w=b.match(/^([^:]*):?(.*)$/);w&&(c=w[1]||"",h=w[2]||"")}let d=p.match(/^([^:]+):?(\d*)$/),g=d?d[1]:p,m=d&&d[2]?d[2]:"";return{protocol:s?`${s}:`:"",username:c,password:h,host:p,hostname:g,port:m,pathname:n,search:a,hash:o}}toString(){let t=this.searchParams.toString(),e=t?`?${t}`:"";return`${this.protocol}//${this.host}${this.pathname}${e}${this.hash}`}toJSON(){return this.toString()}},_=class G{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 f?e.headers:new f(e?.headers),this.body=e?.body,this.timeout=e?.timeout,this.signal=e?.signal||void 0}clone(){return new G(this.url,{method:this.method,headers:this.headers,body:this.body,timeout:this.timeout})}toString(){return this.url}},k=class{constructor(r,t){this.bodyData=r,this.status=t?.status??200,this.statusText=t?.statusText??"",this.headers=rt(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 r=await this.text();return new TextEncoder().encode(r).buffer}};function rt(r){return r?new f(r):new f}var it=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 r of Array.from(this.listeners))try{r()}catch{}this.listeners.clear()}}addEventListener(r,t){if(this._aborted){try{t()}catch{}return}this.listeners.add(t)}removeEventListener(r,t){this.listeners.delete(t)}toString(){return"[object AbortSignal]"}},q=class{constructor(){this._signal=new it}get signal(){return this._signal}abort(){this._signal._trigger()}toString(){return"[object AbortController]"}};var A=class{constructor(t,e=""){this.http=t,this.baseUrl=e.replace(/\/$/,"")}async invoke(t,e){let s=this.baseUrl?`${this.baseUrl}/functions/${t}`:`/functions/${t}`;return await(await this.http.fetch(s,{method:e.method||"POST",body:e.body,headers:e.headers})).json()}};var u="nvwa_current_jwt",y="nvwa_login_token",P="nvwa_user_profile",$="set-auth-token",nt=typeof fetch<"u"?(r,t)=>fetch(r,t):()=>{throw new Error("AuthClient requires fetch")},x=class{constructor(t,e={}){this.baseUrl=t.replace(/\/$/,""),this.authPath=(e.authPath??"/auth").replace(/^\//,""),this.fetchImpl=e.fetchImpl??nt,this.storage=e.storage??null,this.credentials=e.credentials??"omit",typeof console<"u"&&(console.warn("[NvwaAuth] init baseUrl:",this.baseUrl||"(empty)"),(!this.baseUrl||!this.baseUrl.startsWith("http://")&&!this.baseUrl.startsWith("https://"))&&console.warn("[NvwaAuth] baseUrl \u5E94\u4E3A\u5B8C\u6574\u5730\u5740\uFF08\u5982 https://xxx.nvwa.app\uFF09\uFF0C\u5426\u5219\u5C0F\u7A0B\u5E8F request \u4F1A\u62A5 invalid url"))}async currentUser(){if(this.storage){let s=await this.storage.get(P);if(s!=null)return s}let{data:t}=await this.getSession(),e=t?.user??null;return e&&this.storage&&await this.storage.set(P,e),e}async getCurrentJwt(){if(this.storage){let e=await this.storage.get(u);if(e!=null)return e;let s=await this.storage.get(y),{data:i}=await this.getToken(s??void 0);return i?.token?(await this.storage.set(u,i.token),i.token):null}let{data:t}=await this.getToken();return t?.token??null}async persistLogin(t,e){if(!this.storage)return;let i=e?.headers.get($)?.trim()||t.token||t.session?.token;i&&await this.storage.set(y,i),t.user&&await this.storage.set(P,t.user);let n=i??await this.storage.get(y),{data:a}=await this.getToken(n??void 0);a?.token&&await this.storage.set(u,a.token)}async clearLogin(){this.storage&&(await this.storage.remove(y),await this.storage.remove(P),await this.storage.remove(u))}getGoogleOpenPlatformLoginUrl(t,e){let s=new URLSearchParams({return_url:t});return e?.applicationCode?.trim()&&s.set("application_code",e.applicationCode.trim()),e?.platformCode?.trim()&&s.set("platform_code",e.platformCode.trim()),`${this.url("google/openplatform/login")}?${s.toString()}`}startGoogleOpenPlatformLogin(t,e){let s=this.getGoogleOpenPlatformLoginUrl(t,e);if(typeof globalThis<"u"&&"location"in globalThis){globalThis.location.href=s;return}throw new Error("startGoogleOpenPlatformLogin requires a browser environment with location")}async completeGoogleOpenPlatformLoginFromCurrentUrl(t){let e;if(t!=null&&t!=="")e=t;else if(typeof globalThis<"u"&&"location"in globalThis)e=globalThis.location.href;else return{error:{message:"completeGoogleOpenPlatformLoginFromCurrentUrl requires url or browser location",status:0}};let s;try{s=new URL(e).searchParams.get("exchange_code")}catch{return{error:{message:"invalid_callback_url",status:400}}}return s?.trim()?await this.loginWithGoogleExchangeCode(s.trim()):{error:{message:"missing_exchange_code",status:400}}}async loginWithGoogleExchangeCode(t){try{let e={"Content-Type":"application/json"};if(this.storage){let a=await this.storage.get(u);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("google/openplatform/sign-in"),{method:"POST",headers:e,credentials:this.credentials,body:JSON.stringify({exchangeCode:t})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):null;return!n?.token||!n.user?{error:{message:"invalid_google_login_response",status:502}}:(this.storage&&(await this.storage.set(u,n.token),await this.storage.set(y,n.token),await this.storage.set(P,n.user)),{data:n})}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getGoogleOpenPlatformIdentity(){try{let t={};if(this.storage){let n=await this.storage.get(u);n!=null&&(t.Authorization=`Bearer ${n}`)}let e=await this.fetchImpl(this.url("google/openplatform/identity"),{method:"GET",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}}),s=await e.text();if(!e.ok)return{error:{message:s||e.statusText,status:e.status}};let i=s?JSON.parse(s):null;return i?.sub?{data:i}:{error:{message:"invalid_google_identity_response",status:502}}}catch(t){return{error:{message:t instanceof Error?t.message:String(t),status:0}}}}getGithubOpenPlatformLoginUrl(t,e){let s=new URLSearchParams({return_url:t});return e?.applicationCode?.trim()&&s.set("application_code",e.applicationCode.trim()),e?.platformCode?.trim()&&s.set("platform_code",e.platformCode.trim()),`${this.url("github/openplatform/login")}?${s.toString()}`}startGithubOpenPlatformLogin(t,e){let s=this.getGithubOpenPlatformLoginUrl(t,e);if(typeof globalThis<"u"&&"location"in globalThis){globalThis.location.href=s;return}throw new Error("startGithubOpenPlatformLogin requires a browser environment with location")}async completeGithubOpenPlatformLoginFromCurrentUrl(t){let e;if(t!=null&&t!=="")e=t;else if(typeof globalThis<"u"&&"location"in globalThis)e=globalThis.location.href;else return{error:{message:"completeGithubOpenPlatformLoginFromCurrentUrl requires url or browser location",status:0}};let s;try{s=new URL(e).searchParams.get("exchange_code")}catch{return{error:{message:"invalid_callback_url",status:400}}}return s?.trim()?await this.loginWithGithubExchangeCode(s.trim()):{error:{message:"missing_exchange_code",status:400}}}async loginWithGithubExchangeCode(t){try{let e={"Content-Type":"application/json"};if(this.storage){let a=await this.storage.get(u);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("github/openplatform/sign-in"),{method:"POST",headers:e,credentials:this.credentials,body:JSON.stringify({exchangeCode:t})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):null;return!n?.token||!n.user?{error:{message:"invalid_github_login_response",status:502}}:(this.storage&&(await this.storage.set(u,n.token),await this.storage.set(y,n.token),await this.storage.set(P,n.user)),{data:n})}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getGithubOpenPlatformIdentity(){try{let t={};if(this.storage){let n=await this.storage.get(u);n!=null&&(t.Authorization=`Bearer ${n}`)}let e=await this.fetchImpl(this.url("github/openplatform/identity"),{method:"GET",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}}),s=await e.text();if(!e.ok)return{error:{message:s||e.statusText,status:e.status}};let i=s?JSON.parse(s):null;return i?.sub?{data:i}:{error:{message:"invalid_github_identity_response",status:502}}}catch(t){return{error:{message:t instanceof Error?t.message:String(t),status:0}}}}getWechatWebsiteOpenPlatformLoginUrl(t){let e=new URLSearchParams({return_url:t});return`${this.url("wechat-website/openplatform/login")}?${e.toString()}`}startWechatWebsiteOpenPlatformLogin(t){let e=this.getWechatWebsiteOpenPlatformLoginUrl(t);if(typeof globalThis<"u"&&"location"in globalThis){globalThis.location.href=e;return}throw new Error("startWechatWebsiteOpenPlatformLogin requires a browser environment with location")}async completeWechatWebsiteOpenPlatformLoginFromCurrentUrl(t){let e;if(t!=null&&t!=="")e=t;else if(typeof globalThis<"u"&&"location"in globalThis)e=globalThis.location.href;else return{error:{message:"completeWechatWebsiteOpenPlatformLoginFromCurrentUrl requires url or browser location",status:0}};let s;try{s=new URL(e).searchParams.get("exchange_code")}catch{return{error:{message:"invalid_callback_url",status:400}}}return s?.trim()?await this.loginWithWechatWebsiteExchangeCode(s.trim()):{error:{message:"missing_exchange_code",status:400}}}async loginWithWechatWebsiteExchangeCode(t){try{let e={"Content-Type":"application/json"};if(this.storage){let a=await this.storage.get(u);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("wechat-website/openplatform/sign-in"),{method:"POST",headers:e,credentials:this.credentials,body:JSON.stringify({exchangeCode:t})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):null;return!n?.token||!n.user?{error:{message:"invalid_wechat_website_login_response",status:502}}:(this.storage&&(await this.storage.set(u,n.token),await this.storage.set(y,n.token),await this.storage.set(P,n.user)),{data:n})}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getWechatWebsiteOpenPlatformIdentity(){try{let t={};if(this.storage){let n=await this.storage.get(u);n!=null&&(t.Authorization=`Bearer ${n}`)}let e=await this.fetchImpl(this.url("wechat-website/openplatform/identity"),{method:"GET",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}}),s=await e.text();if(!e.ok)return{error:{message:s||e.statusText,status:e.status}};let i=s?JSON.parse(s):null;return i?.sub?{data:i}:{error:{message:"invalid_wechat_website_identity_response",status:502}}}catch(t){return{error:{message:t instanceof Error?t.message:String(t),status:0}}}}url(t){let s=`${`${this.baseUrl.replace(/\/+$/,"")}/${this.authPath.replace(/^\/+/,"")}`}/${t.replace(/^\/+/,"")}`;return typeof console<"u"&&(console.warn("[NvwaAuth] request URL:",s),!s.startsWith("http://")&&!s.startsWith("https://")&&console.warn("[NvwaAuth] URL \u975E\u5B8C\u6574\u5730\u5740\uFF0C\u5C0F\u7A0B\u5E8F\u4F1A\u62A5 invalid url\uFF0C\u8BF7\u68C0\u67E5 Nvwa \u6784\u9020\u65F6\u4F20\u5165\u7684 baseUrl")),s}async getSession(){try{let t={};if(this.storage){let i=await this.storage.get(y)??await this.storage.get(u);i!=null&&(t.Authorization=`Bearer ${i}`)}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 s=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})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):void 0;return n&&await this.persistLogin({user:n.user,session:n.session},s),{data:n}}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}async signOut(){try{let t={};if(this.storage){let s=await this.storage.get(y)??await this.storage.get(u);s!=null&&(t.Authorization=`Bearer ${s}`)}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 a=await this.storage.get(y)??await this.storage.get(u);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("token"),{method:"GET",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):void 0;return{data:n?.token!=null?{token:n.token}:void 0}}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async signInWithUsername(t,e){let s=await this.postJson("sign-in/username",{username:t,password:e});return s.data&&await this.persistLogin(s.data,s.response),s}async signInWithPhoneNumber(t,e,s){let i=await this.postJson("sign-in/phone-number",{phoneNumber:t,password:e,rememberMe:s});return i.data&&await this.persistLogin(i.data,i.response),i}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 s=await this.postJson("phone-number/verify",{phoneNumber:t,code:e});return s.data&&await this.persistLogin(s.data,s.response),s}async loginWithWeChatCode(t,e){try{let s={"Content-Type":"application/json"};if(this.storage){let o=await this.storage.get(u);o!=null&&(s.Authorization=`Bearer ${o}`)}let i=await this.fetchImpl(this.url("wechat/openplatform/sign-in"),{method:"POST",headers:s,credentials:this.credentials,body:JSON.stringify({code:t,applicationCode:e})}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.token||!a.user?{error:{message:"invalid_wechat_login_response",status:502}}:(this.storage&&(await this.storage.set(u,a.token),await this.storage.set(y,a.token),await this.storage.set(P,a.user)),{data:a})}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}async loginWithAlipayCode(t,e){try{let s={"Content-Type":"application/json"};if(this.storage){let o=await this.storage.get(u);o!=null&&(s.Authorization=`Bearer ${o}`)}let i=await this.fetchImpl(this.url("alipay/openplatform/sign-in"),{method:"POST",headers:s,credentials:this.credentials,body:JSON.stringify({code:t,applicationCode:e})}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.token||!a.user?{error:{message:"invalid_alipay_login_response",status:502}}:(this.storage&&(await this.storage.set(u,a.token),await this.storage.set(y,a.token),await this.storage.set(P,a.user)),{data:a})}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}async getWeChatOpenPlatformIdentity(t){try{let e={};if(this.storage){let o=await this.storage.get(u);o!=null&&(e.Authorization=`Bearer ${o}`)}let s=t?.trim()?`?applicationCode=${encodeURIComponent(t.trim())}`:"",i=await this.fetchImpl(this.url(`wechat/openplatform/identity${s}`),{method:"GET",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.openid||!a.appId?{error:{message:"invalid_wechat_identity_response",status:502}}:{data:a}}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getAlipayOpenPlatformIdentity(t){try{let e={};if(this.storage){let o=await this.storage.get(u);o!=null&&(e.Authorization=`Bearer ${o}`)}let s=t?.trim()?`?applicationCode=${encodeURIComponent(t.trim())}`:"",i=await this.fetchImpl(this.url(`alipay/openplatform/identity${s}`),{method:"GET",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.openid||!a.appId?{error:{message:"invalid_alipay_identity_response",status:502}}:{data:a}}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async postJson(t,e){try{let s=await this.fetchImpl(this.url(t),{method:"POST",headers:{"Content-Type":"application/json"},credentials:this.credentials,body:JSON.stringify(e)}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):void 0;return{data:n?.data??n??void 0,response:s}}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}};var I=class{constructor(t,e,s){this.storage=t,this.customFetch=e,this.handleUnauthorized=s}async fetch(t,e){return await this.customFetch(t,e)}async fetchWithAuth(t,e){let s=await this.storage.get(u),i=new f(e?.headers);s&&i.set("Authorization",`Bearer ${s}`);let n=e?.method||"GET";if((n==="POST"||n==="PUT"||n==="PATCH")&&e?.body){let o=i.get("Content-Type");(!o||o.includes("text/plain"))&&i.set("Content-Type","application/json")}let a=await this.customFetch(t,{...e,headers:i});if(a.status===401)throw this.handleUnauthorized(),new Error("\u672A\u767B\u5F55");return a}};var F="/storage",M=F+"/generateUploadUrl",U=class{constructor(t,e){this.baseUrl=t,this.http=e}async uploadFile(t){let e=await this.http.fetch(this.baseUrl+M,{method:"POST",body:{fileName:t.name||t.fileName,fileSize:t.size||t.fileSize,fileType:t.type||t.fileType}}),{url:s}=await e.json();if(!s)throw new Error("\u83B7\u53D6\u4E0A\u4F20URL\u5931\u8D25");let i=await this.http.fetch(s,{method:"PUT",body:t,headers:new f({"Content-Type":t.type||t.fileType||"application/octet-stream"})}),{url:n}=await i.json();return{url:n.split("?")[0]}}};var at=class extends Error{constructor(r){super(r.message),this.name="PostgrestError",this.details=r.details,this.hint=r.hint,this.code=r.code}},ot=class{constructor(r){var t,e,s;this.shouldThrowOnError=!1,this.method=r.method,this.url=r.url,this.headers=new f(r.headers),this.schema=r.schema,this.body=r.body,this.shouldThrowOnError=(t=r.shouldThrowOnError)!==null&&t!==void 0?t:!1,this.signal=r.signal,this.isMaybeSingle=(e=r.isMaybeSingle)!==null&&e!==void 0?e:!1,this.urlLengthLimit=(s=r.urlLengthLimit)!==null&&s!==void 0?s:8e3,r.fetch?this.fetch=r.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(r,t){return this.headers=new f(this.headers),this.headers.set(r,t),this}then(r,t){var e=this;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 s=this.fetch,i=s(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async n=>{let a=null,o=null,l=null,c=n.status,h=n.statusText;if(n.ok){var p,d;if(e.method!=="HEAD"){var g;let w=await n.text();w===""||(e.headers.get("Accept")==="text/csv"||e.headers.get("Accept")&&(!((g=e.headers.get("Accept"))===null||g===void 0)&&g.includes("application/vnd.pgrst.plan+text"))?o=w:o=JSON.parse(w))}let m=(p=e.headers.get("Prefer"))===null||p===void 0?void 0:p.match(/count=(exact|planned|estimated)/),b=(d=n.headers.get("content-range"))===null||d===void 0?void 0:d.split("/");m&&b&&b.length>1&&(l=parseInt(b[1])),e.isMaybeSingle&&Array.isArray(o)&&(o.length>1?(a={code:"PGRST116",details:`Results contain ${o.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},o=null,l=null,c=406,h="Not Acceptable"):o.length===1?o=o[0]:o=null)}else{let m=await n.text();try{a=JSON.parse(m),Array.isArray(a)&&n.status===404&&(o=[],a=null,c=200,h="OK")}catch{n.status===404&&m===""?(c=204,h="No Content"):a={message:m}}if(a&&e.shouldThrowOnError)throw new at(a)}return{error:a,data:o,count:l,status:c,statusText:h}});return this.shouldThrowOnError||(i=i.catch(n=>{var a;let o="",l="",c="",h=n?.cause;if(h){var p,d,g,m;let K=(p=h?.message)!==null&&p!==void 0?p:"",j=(d=h?.code)!==null&&d!==void 0?d:"";o=`${(g=n?.name)!==null&&g!==void 0?g:"FetchError"}: ${n?.message}`,o+=`
1
+ "use strict";var T=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Q=Object.prototype.hasOwnProperty;var Z=(r,t)=>{for(var e in t)T(r,e,{get:t[e],enumerable:!0})},tt=(r,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of X(t))!Q.call(r,i)&&i!==e&&T(r,i,{get:()=>t[i],enumerable:!(s=V(t,i))||s.enumerable});return r};var et=r=>tt(T({},"__esModule",{value:!0}),r);var wt={};Z(wt,{AuthClient:()=>L,CURRENT_JWT_KEY:()=>p,ENTITIES_BASE_PATH:()=>Y,FILE_STORAGE_BASE_PATH:()=>F,GENERATE_UPLOAD_URL_PATH:()=>M,Headers:()=>f,LOGIN_TOKEN_KEY:()=>y,LOGIN_USER_PROFILE_KEY:()=>P,NvwaEdgeFunctions:()=>I,NvwaFileStorage:()=>U,NvwaHttpClient:()=>$,NvwaIntegrationSnapshot:()=>R,OverlayManager:()=>N,Request:()=>_,Response:()=>k,SET_AUTH_TOKEN_HEADER:()=>A,URL:()=>O,createPostgrestClient:()=>dt,getSourceLocationFromDOM:()=>gt,normalizePayParams:()=>mt,requestPaymentFromOrderResult:()=>ft});module.exports=et(wt);var f=class H{constructor(t){if(this.headerMap=new Map,t){if(t instanceof H)t.forEach((e,s)=>this.set(s,e));else if(Array.isArray(t))for(let[e,s]of t)this.set(e,String(s));else if(typeof t=="object")for(let e of Object.keys(t))this.set(e,String(t[e]))}}append(t,e){let s=t.toLowerCase(),i=this.headerMap.get(s);this.headerMap.set(s,i?`${i}, ${e}`:e)}set(t,e){this.headerMap.set(t.toLowerCase(),String(e))}get(t){return this.headerMap.get(t.toLowerCase())??null}has(t){return this.headerMap.has(t.toLowerCase())}delete(t){this.headerMap.delete(t.toLowerCase())}forEach(t){for(let[e,s]of this.headerMap.entries())t(s,e,this)}entries(){return this.headerMap.entries()}keys(){return this.headerMap.keys()}values(){return this.headerMap.values()}[Symbol.iterator](){return this.entries()}},st=class W{constructor(t){if(this.params=new Map,t){if(typeof t=="string")this.parseString(t);else if(t instanceof W)this.params=new Map(t.params);else if(Array.isArray(t))for(let[e,s]of t)this.append(e,s);else if(t&&typeof t=="object")for(let[e,s]of Object.entries(t))this.set(e,s)}}parseString(t){t.startsWith("?")&&(t=t.slice(1));let e=t.split("&");for(let s of e)if(s){let[i,n]=s.split("=");i&&this.append(decodeURIComponent(i),n?decodeURIComponent(n):"")}}append(t,e){let s=this.params.get(t)||[];s.push(e),this.params.set(t,s)}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],[s])=>e.localeCompare(s));this.params=new Map(t)}toString(){let t=[];for(let[e,s]of this.params.entries())for(let i of s)t.push(`${encodeURIComponent(e)}=${encodeURIComponent(i)}`);return t.join("&")}forEach(t){for(let[e,s]of this.params.entries())for(let i of s)t(i,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,s]of this.params.entries())for(let i of s)t.push([e,i]);return t[Symbol.iterator]()}[Symbol.iterator](){return this.entries()}get size(){return this.params.size}},O=class C{constructor(t,e){let s;if(t instanceof C)s=t.href;else if(e){let n=e instanceof C?e.href:e;s=this.resolve(n,t)}else s=t;let i=this.parseUrl(s);this.href=s,this.origin=`${i.protocol}//${i.host}`,this.protocol=i.protocol,this.username=i.username,this.password=i.password,this.host=i.host,this.hostname=i.hostname,this.port=i.port,this.pathname=i.pathname,this.search=i.search,this.searchParams=new st(i.search),this.hash=i.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 n=this.parseUrl(t);return`${n.protocol}//${n.host}${e}`}let s=this.parseUrl(t),i=s.pathname.endsWith("/")?s.pathname:s.pathname+"/";return`${s.protocol}//${s.host}${i}${e}`}parseUrl(t){let e=t.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!e)throw new TypeError("Invalid URL");let s=e[2]||"",i=e[4]||"",n=e[5]||"/",a=e[7]?`?${e[7]}`:"",o=e[9]?`#${e[9]}`:"";if(!s&&!i&&!n.startsWith("/")&&!n.includes("/")&&!n.includes("."))throw new TypeError("Invalid URL");let h=i.match(/^([^@]*)@(.+)$/),c="",l="",u=i;if(h){let b=h[1];u=h[2];let w=b.match(/^([^:]*):?(.*)$/);w&&(c=w[1]||"",l=w[2]||"")}let d=u.match(/^([^:]+):?(\d*)$/),g=d?d[1]:u,m=d&&d[2]?d[2]:"";return{protocol:s?`${s}:`:"",username:c,password:l,host:u,hostname:g,port:m,pathname:n,search:a,hash:o}}toString(){let t=this.searchParams.toString(),e=t?`?${t}`:"";return`${this.protocol}//${this.host}${this.pathname}${e}${this.hash}`}toJSON(){return this.toString()}},_=class G{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 f?e.headers:new f(e?.headers),this.body=e?.body,this.timeout=e?.timeout,this.signal=e?.signal||void 0}clone(){return new G(this.url,{method:this.method,headers:this.headers,body:this.body,timeout:this.timeout})}toString(){return this.url}},k=class{constructor(r,t){this.bodyData=r,this.status=t?.status??200,this.statusText=t?.statusText??"",this.headers=rt(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 r=await this.text();return new TextEncoder().encode(r).buffer}};function rt(r){return r?new f(r):new f}var it=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 r of Array.from(this.listeners))try{r()}catch{}this.listeners.clear()}}addEventListener(r,t){if(this._aborted){try{t()}catch{}return}this.listeners.add(t)}removeEventListener(r,t){this.listeners.delete(t)}toString(){return"[object AbortSignal]"}},q=class{constructor(){this._signal=new it}get signal(){return this._signal}abort(){this._signal._trigger()}toString(){return"[object AbortController]"}};var I=class{constructor(t,e=""){this.http=t,this.baseUrl=e.replace(/\/$/,"")}async invoke(t,e){let s=this.baseUrl?`${this.baseUrl}/functions/${t}`:`/functions/${t}`;return await(await this.http.fetch(s,{method:e.method||"POST",body:e.body,headers:e.headers})).json()}};var p="nvwa_current_jwt",y="nvwa_login_token",P="nvwa_user_profile",A="set-auth-token",nt=typeof fetch<"u"?(r,t)=>fetch(r,t):()=>{throw new Error("AuthClient requires fetch")},L=class{constructor(t,e={}){this.baseUrl=t.replace(/\/$/,""),this.authPath=(e.authPath??"/auth").replace(/^\//,""),this.fetchImpl=e.fetchImpl??nt,this.storage=e.storage??null,this.credentials=e.credentials??"omit",typeof console<"u"&&(console.warn("[NvwaAuth] init baseUrl:",this.baseUrl||"(empty)"),(!this.baseUrl||!this.baseUrl.startsWith("http://")&&!this.baseUrl.startsWith("https://"))&&console.warn("[NvwaAuth] baseUrl \u5E94\u4E3A\u5B8C\u6574\u5730\u5740\uFF08\u5982 https://xxx.nvwa.app\uFF09\uFF0C\u5426\u5219\u5C0F\u7A0B\u5E8F request \u4F1A\u62A5 invalid url"))}async currentUser(){if(this.storage){let s=await this.storage.get(P);if(s!=null)return s}let{data:t}=await this.getSession(),e=t?.user??null;return e&&this.storage&&await this.storage.set(P,e),e}async getCurrentJwt(){if(this.storage){let e=await this.storage.get(p);if(e!=null)return e;let s=await this.storage.get(y),{data:i}=await this.getToken(s??void 0);return i?.token?(await this.storage.set(p,i.token),i.token):null}let{data:t}=await this.getToken();return t?.token??null}async persistLogin(t,e){if(!this.storage)return;let i=e?.headers.get(A)?.trim()||t.token||t.session?.token;i&&await this.storage.set(y,i),t.user&&await this.storage.set(P,t.user);let n=i??await this.storage.get(y),{data:a}=await this.getToken(n??void 0);a?.token&&await this.storage.set(p,a.token)}async clearLogin(){this.storage&&(await this.storage.remove(y),await this.storage.remove(P),await this.storage.remove(p))}getGoogleOpenPlatformLoginUrl(t,e){let s=new URLSearchParams({return_url:t});return e?.applicationCode?.trim()&&s.set("application_code",e.applicationCode.trim()),e?.platformCode?.trim()&&s.set("platform_code",e.platformCode.trim()),`${this.url("google/openplatform/login")}?${s.toString()}`}startGoogleOpenPlatformLogin(t,e){let s=this.getGoogleOpenPlatformLoginUrl(t,e);if(typeof globalThis<"u"&&"location"in globalThis){globalThis.location.href=s;return}throw new Error("startGoogleOpenPlatformLogin requires a browser environment with location")}async completeGoogleOpenPlatformLoginFromCurrentUrl(t){let e;if(t!=null&&t!=="")e=t;else if(typeof globalThis<"u"&&"location"in globalThis)e=globalThis.location.href;else return{error:{message:"completeGoogleOpenPlatformLoginFromCurrentUrl requires url or browser location",status:0}};let s;try{s=new URL(e).searchParams.get("exchange_code")}catch{return{error:{message:"invalid_callback_url",status:400}}}return s?.trim()?await this.loginWithGoogleExchangeCode(s.trim()):{error:{message:"missing_exchange_code",status:400}}}async loginWithGoogleExchangeCode(t){try{let e={"Content-Type":"application/json"};if(this.storage){let a=await this.storage.get(p);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("google/openplatform/sign-in"),{method:"POST",headers:e,credentials:this.credentials,body:JSON.stringify({exchangeCode:t})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):null;return!n?.token||!n.user?{error:{message:"invalid_google_login_response",status:502}}:(this.storage&&(await this.storage.set(p,n.token),await this.storage.set(y,n.token),await this.storage.set(P,n.user)),{data:n})}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getGoogleOpenPlatformIdentity(){try{let t={};if(this.storage){let n=await this.storage.get(p);n!=null&&(t.Authorization=`Bearer ${n}`)}let e=await this.fetchImpl(this.url("google/openplatform/identity"),{method:"GET",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}}),s=await e.text();if(!e.ok)return{error:{message:s||e.statusText,status:e.status}};let i=s?JSON.parse(s):null;return i?.sub?{data:i}:{error:{message:"invalid_google_identity_response",status:502}}}catch(t){return{error:{message:t instanceof Error?t.message:String(t),status:0}}}}getGithubOpenPlatformLoginUrl(t,e){let s=new URLSearchParams({return_url:t});return e?.applicationCode?.trim()&&s.set("application_code",e.applicationCode.trim()),e?.platformCode?.trim()&&s.set("platform_code",e.platformCode.trim()),`${this.url("github/openplatform/login")}?${s.toString()}`}startGithubOpenPlatformLogin(t,e){let s=this.getGithubOpenPlatformLoginUrl(t,e);if(typeof globalThis<"u"&&"location"in globalThis){globalThis.location.href=s;return}throw new Error("startGithubOpenPlatformLogin requires a browser environment with location")}async completeGithubOpenPlatformLoginFromCurrentUrl(t){let e;if(t!=null&&t!=="")e=t;else if(typeof globalThis<"u"&&"location"in globalThis)e=globalThis.location.href;else return{error:{message:"completeGithubOpenPlatformLoginFromCurrentUrl requires url or browser location",status:0}};let s;try{s=new URL(e).searchParams.get("exchange_code")}catch{return{error:{message:"invalid_callback_url",status:400}}}return s?.trim()?await this.loginWithGithubExchangeCode(s.trim()):{error:{message:"missing_exchange_code",status:400}}}async loginWithGithubExchangeCode(t){try{let e={"Content-Type":"application/json"};if(this.storage){let a=await this.storage.get(p);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("github/openplatform/sign-in"),{method:"POST",headers:e,credentials:this.credentials,body:JSON.stringify({exchangeCode:t})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):null;return!n?.token||!n.user?{error:{message:"invalid_github_login_response",status:502}}:(this.storage&&(await this.storage.set(p,n.token),await this.storage.set(y,n.token),await this.storage.set(P,n.user)),{data:n})}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getGithubOpenPlatformIdentity(){try{let t={};if(this.storage){let n=await this.storage.get(p);n!=null&&(t.Authorization=`Bearer ${n}`)}let e=await this.fetchImpl(this.url("github/openplatform/identity"),{method:"GET",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}}),s=await e.text();if(!e.ok)return{error:{message:s||e.statusText,status:e.status}};let i=s?JSON.parse(s):null;return i?.sub?{data:i}:{error:{message:"invalid_github_identity_response",status:502}}}catch(t){return{error:{message:t instanceof Error?t.message:String(t),status:0}}}}getWechatWebsiteOpenPlatformLoginUrl(t){let e=new URLSearchParams({return_url:t});return`${this.url("wechat-website/openplatform/login")}?${e.toString()}`}startWechatWebsiteOpenPlatformLogin(t){let e=this.getWechatWebsiteOpenPlatformLoginUrl(t);if(typeof globalThis<"u"&&"location"in globalThis){globalThis.location.href=e;return}throw new Error("startWechatWebsiteOpenPlatformLogin requires a browser environment with location")}async completeWechatWebsiteOpenPlatformLoginFromCurrentUrl(t){let e;if(t!=null&&t!=="")e=t;else if(typeof globalThis<"u"&&"location"in globalThis)e=globalThis.location.href;else return{error:{message:"completeWechatWebsiteOpenPlatformLoginFromCurrentUrl requires url or browser location",status:0}};let s;try{s=new URL(e).searchParams.get("exchange_code")}catch{return{error:{message:"invalid_callback_url",status:400}}}return s?.trim()?await this.loginWithWechatWebsiteExchangeCode(s.trim()):{error:{message:"missing_exchange_code",status:400}}}async loginWithWechatWebsiteExchangeCode(t){try{let e={"Content-Type":"application/json"};if(this.storage){let a=await this.storage.get(p);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("wechat-website/openplatform/sign-in"),{method:"POST",headers:e,credentials:this.credentials,body:JSON.stringify({exchangeCode:t})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):null;return!n?.token||!n.user?{error:{message:"invalid_wechat_website_login_response",status:502}}:(this.storage&&(await this.storage.set(p,n.token),await this.storage.set(y,n.token),await this.storage.set(P,n.user)),{data:n})}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getWechatWebsiteOpenPlatformIdentity(){try{let t={};if(this.storage){let n=await this.storage.get(p);n!=null&&(t.Authorization=`Bearer ${n}`)}let e=await this.fetchImpl(this.url("wechat-website/openplatform/identity"),{method:"GET",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}}),s=await e.text();if(!e.ok)return{error:{message:s||e.statusText,status:e.status}};let i=s?JSON.parse(s):null;return i?.sub?{data:i}:{error:{message:"invalid_wechat_website_identity_response",status:502}}}catch(t){return{error:{message:t instanceof Error?t.message:String(t),status:0}}}}url(t){let s=`${`${this.baseUrl.replace(/\/+$/,"")}/${this.authPath.replace(/^\/+/,"")}`}/${t.replace(/^\/+/,"")}`;return typeof console<"u"&&(console.warn("[NvwaAuth] request URL:",s),!s.startsWith("http://")&&!s.startsWith("https://")&&console.warn("[NvwaAuth] URL \u975E\u5B8C\u6574\u5730\u5740\uFF0C\u5C0F\u7A0B\u5E8F\u4F1A\u62A5 invalid url\uFF0C\u8BF7\u68C0\u67E5 Nvwa \u6784\u9020\u65F6\u4F20\u5165\u7684 baseUrl")),s}async getSession(){try{let t={};if(this.storage){let i=await this.storage.get(y)??await this.storage.get(p);i!=null&&(t.Authorization=`Bearer ${i}`)}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 s=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})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):void 0;return n&&await this.persistLogin({user:n.user,session:n.session},s),{data:n}}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}async signOut(){try{let t={};if(this.storage){let s=await this.storage.get(y)??await this.storage.get(p);s!=null&&(t.Authorization=`Bearer ${s}`)}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 a=await this.storage.get(y)??await this.storage.get(p);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("token"),{method:"GET",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):void 0;return{data:n?.token!=null?{token:n.token}:void 0}}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async signInWithUsername(t,e){let s=await this.postJson("sign-in/username",{username:t,password:e});return s.data&&await this.persistLogin(s.data,s.response),s}async signInWithPhoneNumber(t,e,s){let i=await this.postJson("sign-in/phone-number",{phoneNumber:t,password:e,rememberMe:s});return i.data&&await this.persistLogin(i.data,i.response),i}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 s=await this.postJson("phone-number/verify",{phoneNumber:t,code:e});return s.data&&await this.persistLogin(s.data,s.response),s}async loginWithWeChatCode(t,e){try{let s={"Content-Type":"application/json"};if(this.storage){let o=await this.storage.get(p);o!=null&&(s.Authorization=`Bearer ${o}`)}let i=await this.fetchImpl(this.url("wechat/openplatform/sign-in"),{method:"POST",headers:s,credentials:this.credentials,body:JSON.stringify({code:t,applicationCode:e})}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.token||!a.user?{error:{message:"invalid_wechat_login_response",status:502}}:(this.storage&&(await this.storage.set(p,a.token),await this.storage.set(y,a.token),await this.storage.set(P,a.user)),{data:a})}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}async loginWithAlipayCode(t,e){try{let s={"Content-Type":"application/json"};if(this.storage){let o=await this.storage.get(p);o!=null&&(s.Authorization=`Bearer ${o}`)}let i=await this.fetchImpl(this.url("alipay/openplatform/sign-in"),{method:"POST",headers:s,credentials:this.credentials,body:JSON.stringify({code:t,applicationCode:e})}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.token||!a.user?{error:{message:"invalid_alipay_login_response",status:502}}:(this.storage&&(await this.storage.set(p,a.token),await this.storage.set(y,a.token),await this.storage.set(P,a.user)),{data:a})}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}async getWeChatOpenPlatformIdentity(t){try{let e={};if(this.storage){let o=await this.storage.get(p);o!=null&&(e.Authorization=`Bearer ${o}`)}let s=t?.trim()?`?applicationCode=${encodeURIComponent(t.trim())}`:"",i=await this.fetchImpl(this.url(`wechat/openplatform/identity${s}`),{method:"GET",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.openid||!a.appId?{error:{message:"invalid_wechat_identity_response",status:502}}:{data:a}}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getAlipayOpenPlatformIdentity(t){try{let e={};if(this.storage){let o=await this.storage.get(p);o!=null&&(e.Authorization=`Bearer ${o}`)}let s=t?.trim()?`?applicationCode=${encodeURIComponent(t.trim())}`:"",i=await this.fetchImpl(this.url(`alipay/openplatform/identity${s}`),{method:"GET",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.openid||!a.appId?{error:{message:"invalid_alipay_identity_response",status:502}}:{data:a}}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async postJson(t,e){try{let s=await this.fetchImpl(this.url(t),{method:"POST",headers:{"Content-Type":"application/json"},credentials:this.credentials,body:JSON.stringify(e)}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):void 0;return{data:n?.data??n??void 0,response:s}}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}};var $=class{constructor(t,e,s){this.storage=t,this.customFetch=e,this.handleUnauthorized=s}async fetch(t,e){return await this.customFetch(t,e)}async fetchWithAuth(t,e){let s=await this.storage.get(p),i=new f(e?.headers);s&&i.set("Authorization",`Bearer ${s}`);let n=e?.method||"GET";if((n==="POST"||n==="PUT"||n==="PATCH")&&e?.body){let o=i.get("Content-Type");(!o||o.includes("text/plain"))&&i.set("Content-Type","application/json")}let a=await this.customFetch(t,{...e,headers:i});if(a.status===401)throw this.handleUnauthorized(),new Error("\u672A\u767B\u5F55");return a}};var F="/storage",M=F+"/generateUploadUrl",U=class{constructor(t,e){this.baseUrl=t,this.http=e}async uploadFile(t){let e=await this.http.fetch(this.baseUrl+M,{method:"POST",body:{fileName:t.name||t.fileName,fileSize:t.size||t.fileSize,fileType:t.type||t.fileType}}),{url:s}=await e.json();if(!s)throw new Error("\u83B7\u53D6\u4E0A\u4F20URL\u5931\u8D25");let i=await this.http.fetch(s,{method:"PUT",body:t,headers:new f({"Content-Type":t.type||t.fileType||"application/octet-stream"})}),{url:n}=await i.json();return{url:n.split("?")[0]}}};var at=class extends Error{constructor(r){super(r.message),this.name="PostgrestError",this.details=r.details,this.hint=r.hint,this.code=r.code}},ot=class{constructor(r){var t,e,s;this.shouldThrowOnError=!1,this.method=r.method,this.url=r.url,this.headers=new f(r.headers),this.schema=r.schema,this.body=r.body,this.shouldThrowOnError=(t=r.shouldThrowOnError)!==null&&t!==void 0?t:!1,this.signal=r.signal,this.isMaybeSingle=(e=r.isMaybeSingle)!==null&&e!==void 0?e:!1,this.urlLengthLimit=(s=r.urlLengthLimit)!==null&&s!==void 0?s:8e3,r.fetch?this.fetch=r.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(r,t){return this.headers=new f(this.headers),this.headers.set(r,t),this}then(r,t){var e=this;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 s=this.fetch,i=s(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async n=>{let a=null,o=null,h=null,c=n.status,l=n.statusText;if(n.ok){var u,d;if(e.method!=="HEAD"){var g;let w=await n.text();w===""||(e.headers.get("Accept")==="text/csv"||e.headers.get("Accept")&&(!((g=e.headers.get("Accept"))===null||g===void 0)&&g.includes("application/vnd.pgrst.plan+text"))?o=w:o=JSON.parse(w))}let m=(u=e.headers.get("Prefer"))===null||u===void 0?void 0:u.match(/count=(exact|planned|estimated)/),b=(d=n.headers.get("content-range"))===null||d===void 0?void 0:d.split("/");m&&b&&b.length>1&&(h=parseInt(b[1])),e.isMaybeSingle&&Array.isArray(o)&&(o.length>1?(a={code:"PGRST116",details:`Results contain ${o.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},o=null,h=null,c=406,l="Not Acceptable"):o.length===1?o=o[0]:o=null)}else{let m=await n.text();try{a=JSON.parse(m),Array.isArray(a)&&n.status===404&&(o=[],a=null,c=200,l="OK")}catch{n.status===404&&m===""?(c=204,l="No Content"):a={message:m}}if(a&&e.shouldThrowOnError)throw new at(a)}return{error:a,data:o,count:h,status:c,statusText:l}});return this.shouldThrowOnError||(i=i.catch(n=>{var a;let o="",h="",c="",l=n?.cause;if(l){var u,d,g,m;let K=(u=l?.message)!==null&&u!==void 0?u:"",j=(d=l?.code)!==null&&d!==void 0?d:"";o=`${(g=n?.name)!==null&&g!==void 0?g:"FetchError"}: ${n?.message}`,o+=`
2
2
 
3
- Caused by: ${(m=h?.name)!==null&&m!==void 0?m:"Error"}: ${K}`,j&&(o+=` (${j})`),h?.stack&&(o+=`
4
- ${h.stack}`)}else{var b;o=(b=n?.stack)!==null&&b!==void 0?b:""}let w=this.url.toString().length;return n?.name==="AbortError"||n?.code==="ABORT_ERR"?(c="",l="Request was aborted (timeout or manual cancellation)",w>this.urlLengthLimit&&(l+=`. Note: Your request URL is ${w} characters, which may exceed server limits. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [many IDs])), consider using an RPC function to pass values server-side.`)):(h?.name==="HeadersOverflowError"||h?.code==="UND_ERR_HEADERS_OVERFLOW")&&(c="",l="HTTP headers exceeded server limits (typically 16KB)",w>this.urlLengthLimit&&(l+=`. Your request URL is ${w} characters. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [200+ IDs])), consider using an RPC function instead.`)),{error:{message:`${(a=n?.name)!==null&&a!==void 0?a:"FetchError"}: ${n?.message}`,details:o,hint:l,code:c},data:null,count:null,status:0,statusText:""}})),i.then(r,t)}returns(){return this}overrideTypes(){return this}},lt=class extends ot{select(r){let t=!1,e=(r??"*").split("").map(s=>/\s/.test(s)&&!t?"":(s==='"'&&(t=!t),s)).join("");return this.url.searchParams.set("select",e),this.headers.append("Prefer","return=representation"),this}order(r,{ascending:t=!0,nullsFirst:e,foreignTable:s,referencedTable:i=s}={}){let n=i?`${i}.order`:"order",a=this.url.searchParams.get(n);return this.url.searchParams.set(n,`${a?`${a},`:""}${r}.${t?"asc":"desc"}${e===void 0?"":e?".nullsfirst":".nullslast"}`),this}limit(r,{foreignTable:t,referencedTable:e=t}={}){let s=typeof e>"u"?"limit":`${e}.limit`;return this.url.searchParams.set(s,`${r}`),this}range(r,t,{foreignTable:e,referencedTable:s=e}={}){let i=typeof s>"u"?"offset":`${s}.offset`,n=typeof s>"u"?"limit":`${s}.limit`;return this.url.searchParams.set(i,`${r}`),this.url.searchParams.set(n,`${t-r+1}`),this}abortSignal(r){return this.signal=r,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return 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:r=!1,verbose:t=!1,settings:e=!1,buffers:s=!1,wal:i=!1,format:n="text"}={}){var a;let o=[r?"analyze":null,t?"verbose":null,e?"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+${n}; for="${l}"; options=${o};`),n==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(r){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${r}`),this}},J=new RegExp("[,()]"),S=class extends lt{eq(r,t){return this.url.searchParams.append(r,`eq.${t}`),this}neq(r,t){return this.url.searchParams.append(r,`neq.${t}`),this}gt(r,t){return this.url.searchParams.append(r,`gt.${t}`),this}gte(r,t){return this.url.searchParams.append(r,`gte.${t}`),this}lt(r,t){return this.url.searchParams.append(r,`lt.${t}`),this}lte(r,t){return this.url.searchParams.append(r,`lte.${t}`),this}like(r,t){return this.url.searchParams.append(r,`like.${t}`),this}likeAllOf(r,t){return this.url.searchParams.append(r,`like(all).{${t.join(",")}}`),this}likeAnyOf(r,t){return this.url.searchParams.append(r,`like(any).{${t.join(",")}}`),this}ilike(r,t){return this.url.searchParams.append(r,`ilike.${t}`),this}ilikeAllOf(r,t){return this.url.searchParams.append(r,`ilike(all).{${t.join(",")}}`),this}ilikeAnyOf(r,t){return this.url.searchParams.append(r,`ilike(any).{${t.join(",")}}`),this}regexMatch(r,t){return this.url.searchParams.append(r,`match.${t}`),this}regexIMatch(r,t){return this.url.searchParams.append(r,`imatch.${t}`),this}is(r,t){return this.url.searchParams.append(r,`is.${t}`),this}isDistinct(r,t){return this.url.searchParams.append(r,`isdistinct.${t}`),this}in(r,t){let e=Array.from(new Set(t)).map(s=>typeof s=="string"&&J.test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(r,`in.(${e})`),this}notIn(r,t){let e=Array.from(new Set(t)).map(s=>typeof s=="string"&&J.test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(r,`not.in.(${e})`),this}contains(r,t){return typeof t=="string"?this.url.searchParams.append(r,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(r,`cs.{${t.join(",")}}`):this.url.searchParams.append(r,`cs.${JSON.stringify(t)}`),this}containedBy(r,t){return typeof t=="string"?this.url.searchParams.append(r,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(r,`cd.{${t.join(",")}}`):this.url.searchParams.append(r,`cd.${JSON.stringify(t)}`),this}rangeGt(r,t){return this.url.searchParams.append(r,`sr.${t}`),this}rangeGte(r,t){return this.url.searchParams.append(r,`nxl.${t}`),this}rangeLt(r,t){return this.url.searchParams.append(r,`sl.${t}`),this}rangeLte(r,t){return this.url.searchParams.append(r,`nxr.${t}`),this}rangeAdjacent(r,t){return this.url.searchParams.append(r,`adj.${t}`),this}overlaps(r,t){return typeof t=="string"?this.url.searchParams.append(r,`ov.${t}`):this.url.searchParams.append(r,`ov.{${t.join(",")}}`),this}textSearch(r,t,{config:e,type:s}={}){let i="";s==="plain"?i="pl":s==="phrase"?i="ph":s==="websearch"&&(i="w");let n=e===void 0?"":`(${e})`;return this.url.searchParams.append(r,`${i}fts${n}.${t}`),this}match(r){return Object.entries(r).filter(([t,e])=>e!==void 0).forEach(([t,e])=>{this.url.searchParams.append(t,`eq.${e}`)}),this}not(r,t,e){return this.url.searchParams.append(r,`not.${t}.${e}`),this}or(r,{foreignTable:t,referencedTable:e=t}={}){let s=e?`${e}.or`:"or";return this.url.searchParams.append(s,`(${r})`),this}filter(r,t,e){return this.url.searchParams.append(r,`${t}.${e}`),this}},ht=class{constructor(r,{headers:t={},schema:e,fetch:s,urlLengthLimit:i=8e3}){this.url=r,this.headers=new f(t),this.schema=e,this.fetch=s,this.urlLengthLimit=i}cloneRequestState(){return{url:new O(this.url.toString()),headers:new f(this.headers)}}select(r,t){let{head:e=!1,count:s}=t??{},i=e?"HEAD":"GET",n=!1,a=(r??"*").split("").map(c=>/\s/.test(c)&&!n?"":(c==='"'&&(n=!n),c)).join(""),{url:o,headers:l}=this.cloneRequestState();return o.searchParams.set("select",a),s&&l.append("Prefer",`count=${s}`),new S({method:i,url:o,headers:l,schema:this.schema,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}insert(r,{count:t,defaultToNull:e=!0}={}){var s;let i="POST",{url:n,headers:a}=this.cloneRequestState();if(t&&a.append("Prefer",`count=${t}`),e||a.append("Prefer","missing=default"),Array.isArray(r)){let o=r.reduce((l,c)=>l.concat(Object.keys(c)),[]);if(o.length>0){let l=[...new Set(o)].map(c=>`"${c}"`);n.searchParams.set("columns",l.join(","))}}return new S({method:i,url:n,headers:a,schema:this.schema,body:r,fetch:(s=this.fetch)!==null&&s!==void 0?s:fetch,urlLengthLimit:this.urlLengthLimit})}upsert(r,{onConflict:t,ignoreDuplicates:e=!1,count:s,defaultToNull:i=!0}={}){var n;let a="POST",{url:o,headers:l}=this.cloneRequestState();if(l.append("Prefer",`resolution=${e?"ignore":"merge"}-duplicates`),t!==void 0&&o.searchParams.set("on_conflict",t),s&&l.append("Prefer",`count=${s}`),i||l.append("Prefer","missing=default"),Array.isArray(r)){let c=r.reduce((h,p)=>h.concat(Object.keys(p)),[]);if(c.length>0){let h=[...new Set(c)].map(p=>`"${p}"`);o.searchParams.set("columns",h.join(","))}}return new S({method:a,url:o,headers:l,schema:this.schema,body:r,fetch:(n=this.fetch)!==null&&n!==void 0?n:fetch,urlLengthLimit:this.urlLengthLimit})}update(r,{count:t}={}){var e;let s="PATCH",{url:i,headers:n}=this.cloneRequestState();return t&&n.append("Prefer",`count=${t}`),new S({method:s,url:i,headers:n,schema:this.schema,body:r,fetch:(e=this.fetch)!==null&&e!==void 0?e:fetch,urlLengthLimit:this.urlLengthLimit})}delete({count:r}={}){var t;let e="DELETE",{url:s,headers:i}=this.cloneRequestState();return r&&i.append("Prefer",`count=${r}`),new S({method:e,url:s,headers:i,schema:this.schema,fetch:(t=this.fetch)!==null&&t!==void 0?t:fetch,urlLengthLimit:this.urlLengthLimit})}};function L(r){"@babel/helpers - typeof";return L=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},L(r)}function ct(r,t){if(L(r)!="object"||!r)return r;var e=r[Symbol.toPrimitive];if(e!==void 0){var s=e.call(r,t||"default");if(L(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(r)}function ut(r){var t=ct(r,"string");return L(t)=="symbol"?t:t+""}function pt(r,t,e){return(t=ut(t))in r?Object.defineProperty(r,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):r[t]=e,r}function B(r,t){var e=Object.keys(r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(r);t&&(s=s.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),e.push.apply(e,s)}return e}function E(r){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?arguments[t]:{};t%2?B(Object(e),!0).forEach(function(s){pt(r,s,e[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(e)):B(Object(e)).forEach(function(s){Object.defineProperty(r,s,Object.getOwnPropertyDescriptor(e,s))})}return r}var z=class D{constructor(t,{headers:e={},schema:s,fetch:i,timeout:n,urlLengthLimit:a=8e3}={}){this.url=t,this.headers=new f(e),this.schemaName=s,this.urlLengthLimit=a;let o=i??globalThis.fetch;n!==void 0&&n>0?this.fetch=(l,c)=>{let h=new q,p=setTimeout(()=>h.abort(),n),d=c?.signal;if(d){if(d.aborted)return clearTimeout(p),o(l,c);let g=()=>{clearTimeout(p),h.abort()};return d.addEventListener("abort",g,{once:!0}),o(l,E(E({},c),{},{signal:h.signal})).finally(()=>{clearTimeout(p),d.removeEventListener("abort",g)})}return o(l,E(E({},c),{},{signal:h.signal})).finally(()=>clearTimeout(p))}:this.fetch=o}from(t){if(!t||typeof t!="string"||t.trim()==="")throw new Error("Invalid relation name: relation must be a non-empty string.");return new ht(new O(`${this.url}/${t}`),{headers:new f(this.headers),schema:this.schemaName,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}schema(t){return new D(this.url,{headers:this.headers,schema:t,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}rpc(t,e={},{head:s=!1,get:i=!1,count:n}={}){var a;let o,l=new O(`${this.url}/rpc/${t}`),c,h=g=>g!==null&&typeof g=="object"&&(!Array.isArray(g)||g.some(h)),p=s&&Object.values(e).some(h);p?(o="POST",c=e):s||i?(o=s?"HEAD":"GET",Object.entries(e).filter(([g,m])=>m!==void 0).map(([g,m])=>[g,Array.isArray(m)?`{${m.join(",")}}`:`${m}`]).forEach(([g,m])=>{l.searchParams.append(g,m)})):(o="POST",c=e);let d=new f(this.headers);return p?d.set("Prefer",n?`count=${n},return=minimal`:"return=minimal"):n&&d.set("Prefer",`count=${n}`),new S({method:o,url:l,headers:d,schema:this.schemaName,body:c,fetch:(a=this.fetch)!==null&&a!==void 0?a:fetch,urlLengthLimit:this.urlLengthLimit})}};var Y="/entities",dt=(r,t)=>new z(r+Y,{fetch:t.fetchWithAuth.bind(t)});var N=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=`
3
+ Caused by: ${(m=l?.name)!==null&&m!==void 0?m:"Error"}: ${K}`,j&&(o+=` (${j})`),l?.stack&&(o+=`
4
+ ${l.stack}`)}else{var b;o=(b=n?.stack)!==null&&b!==void 0?b:""}let w=this.url.toString().length;return n?.name==="AbortError"||n?.code==="ABORT_ERR"?(c="",h="Request was aborted (timeout or manual cancellation)",w>this.urlLengthLimit&&(h+=`. Note: Your request URL is ${w} characters, which may exceed server limits. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [many IDs])), consider using an RPC function to pass values server-side.`)):(l?.name==="HeadersOverflowError"||l?.code==="UND_ERR_HEADERS_OVERFLOW")&&(c="",h="HTTP headers exceeded server limits (typically 16KB)",w>this.urlLengthLimit&&(h+=`. Your request URL is ${w} characters. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [200+ IDs])), consider using an RPC function instead.`)),{error:{message:`${(a=n?.name)!==null&&a!==void 0?a:"FetchError"}: ${n?.message}`,details:o,hint:h,code:c},data:null,count:null,status:0,statusText:""}})),i.then(r,t)}returns(){return this}overrideTypes(){return this}},lt=class extends ot{select(r){let t=!1,e=(r??"*").split("").map(s=>/\s/.test(s)&&!t?"":(s==='"'&&(t=!t),s)).join("");return this.url.searchParams.set("select",e),this.headers.append("Prefer","return=representation"),this}order(r,{ascending:t=!0,nullsFirst:e,foreignTable:s,referencedTable:i=s}={}){let n=i?`${i}.order`:"order",a=this.url.searchParams.get(n);return this.url.searchParams.set(n,`${a?`${a},`:""}${r}.${t?"asc":"desc"}${e===void 0?"":e?".nullsfirst":".nullslast"}`),this}limit(r,{foreignTable:t,referencedTable:e=t}={}){let s=typeof e>"u"?"limit":`${e}.limit`;return this.url.searchParams.set(s,`${r}`),this}range(r,t,{foreignTable:e,referencedTable:s=e}={}){let i=typeof s>"u"?"offset":`${s}.offset`,n=typeof s>"u"?"limit":`${s}.limit`;return this.url.searchParams.set(i,`${r}`),this.url.searchParams.set(n,`${t-r+1}`),this}abortSignal(r){return this.signal=r,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return 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:r=!1,verbose:t=!1,settings:e=!1,buffers:s=!1,wal:i=!1,format:n="text"}={}){var a;let o=[r?"analyze":null,t?"verbose":null,e?"settings":null,s?"buffers":null,i?"wal":null].filter(Boolean).join("|"),h=(a=this.headers.get("Accept"))!==null&&a!==void 0?a:"application/json";return this.headers.set("Accept",`application/vnd.pgrst.plan+${n}; for="${h}"; options=${o};`),n==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(r){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${r}`),this}},J=new RegExp("[,()]"),S=class extends lt{eq(r,t){return this.url.searchParams.append(r,`eq.${t}`),this}neq(r,t){return this.url.searchParams.append(r,`neq.${t}`),this}gt(r,t){return this.url.searchParams.append(r,`gt.${t}`),this}gte(r,t){return this.url.searchParams.append(r,`gte.${t}`),this}lt(r,t){return this.url.searchParams.append(r,`lt.${t}`),this}lte(r,t){return this.url.searchParams.append(r,`lte.${t}`),this}like(r,t){return this.url.searchParams.append(r,`like.${t}`),this}likeAllOf(r,t){return this.url.searchParams.append(r,`like(all).{${t.join(",")}}`),this}likeAnyOf(r,t){return this.url.searchParams.append(r,`like(any).{${t.join(",")}}`),this}ilike(r,t){return this.url.searchParams.append(r,`ilike.${t}`),this}ilikeAllOf(r,t){return this.url.searchParams.append(r,`ilike(all).{${t.join(",")}}`),this}ilikeAnyOf(r,t){return this.url.searchParams.append(r,`ilike(any).{${t.join(",")}}`),this}regexMatch(r,t){return this.url.searchParams.append(r,`match.${t}`),this}regexIMatch(r,t){return this.url.searchParams.append(r,`imatch.${t}`),this}is(r,t){return this.url.searchParams.append(r,`is.${t}`),this}isDistinct(r,t){return this.url.searchParams.append(r,`isdistinct.${t}`),this}in(r,t){let e=Array.from(new Set(t)).map(s=>typeof s=="string"&&J.test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(r,`in.(${e})`),this}notIn(r,t){let e=Array.from(new Set(t)).map(s=>typeof s=="string"&&J.test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(r,`not.in.(${e})`),this}contains(r,t){return typeof t=="string"?this.url.searchParams.append(r,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(r,`cs.{${t.join(",")}}`):this.url.searchParams.append(r,`cs.${JSON.stringify(t)}`),this}containedBy(r,t){return typeof t=="string"?this.url.searchParams.append(r,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(r,`cd.{${t.join(",")}}`):this.url.searchParams.append(r,`cd.${JSON.stringify(t)}`),this}rangeGt(r,t){return this.url.searchParams.append(r,`sr.${t}`),this}rangeGte(r,t){return this.url.searchParams.append(r,`nxl.${t}`),this}rangeLt(r,t){return this.url.searchParams.append(r,`sl.${t}`),this}rangeLte(r,t){return this.url.searchParams.append(r,`nxr.${t}`),this}rangeAdjacent(r,t){return this.url.searchParams.append(r,`adj.${t}`),this}overlaps(r,t){return typeof t=="string"?this.url.searchParams.append(r,`ov.${t}`):this.url.searchParams.append(r,`ov.{${t.join(",")}}`),this}textSearch(r,t,{config:e,type:s}={}){let i="";s==="plain"?i="pl":s==="phrase"?i="ph":s==="websearch"&&(i="w");let n=e===void 0?"":`(${e})`;return this.url.searchParams.append(r,`${i}fts${n}.${t}`),this}match(r){return Object.entries(r).filter(([t,e])=>e!==void 0).forEach(([t,e])=>{this.url.searchParams.append(t,`eq.${e}`)}),this}not(r,t,e){return this.url.searchParams.append(r,`not.${t}.${e}`),this}or(r,{foreignTable:t,referencedTable:e=t}={}){let s=e?`${e}.or`:"or";return this.url.searchParams.append(s,`(${r})`),this}filter(r,t,e){return this.url.searchParams.append(r,`${t}.${e}`),this}},ht=class{constructor(r,{headers:t={},schema:e,fetch:s,urlLengthLimit:i=8e3}){this.url=r,this.headers=new f(t),this.schema=e,this.fetch=s,this.urlLengthLimit=i}cloneRequestState(){return{url:new O(this.url.toString()),headers:new f(this.headers)}}select(r,t){let{head:e=!1,count:s}=t??{},i=e?"HEAD":"GET",n=!1,a=(r??"*").split("").map(c=>/\s/.test(c)&&!n?"":(c==='"'&&(n=!n),c)).join(""),{url:o,headers:h}=this.cloneRequestState();return o.searchParams.set("select",a),s&&h.append("Prefer",`count=${s}`),new S({method:i,url:o,headers:h,schema:this.schema,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}insert(r,{count:t,defaultToNull:e=!0}={}){var s;let i="POST",{url:n,headers:a}=this.cloneRequestState();if(t&&a.append("Prefer",`count=${t}`),e||a.append("Prefer","missing=default"),Array.isArray(r)){let o=r.reduce((h,c)=>h.concat(Object.keys(c)),[]);if(o.length>0){let h=[...new Set(o)].map(c=>`"${c}"`);n.searchParams.set("columns",h.join(","))}}return new S({method:i,url:n,headers:a,schema:this.schema,body:r,fetch:(s=this.fetch)!==null&&s!==void 0?s:fetch,urlLengthLimit:this.urlLengthLimit})}upsert(r,{onConflict:t,ignoreDuplicates:e=!1,count:s,defaultToNull:i=!0}={}){var n;let a="POST",{url:o,headers:h}=this.cloneRequestState();if(h.append("Prefer",`resolution=${e?"ignore":"merge"}-duplicates`),t!==void 0&&o.searchParams.set("on_conflict",t),s&&h.append("Prefer",`count=${s}`),i||h.append("Prefer","missing=default"),Array.isArray(r)){let c=r.reduce((l,u)=>l.concat(Object.keys(u)),[]);if(c.length>0){let l=[...new Set(c)].map(u=>`"${u}"`);o.searchParams.set("columns",l.join(","))}}return new S({method:a,url:o,headers:h,schema:this.schema,body:r,fetch:(n=this.fetch)!==null&&n!==void 0?n:fetch,urlLengthLimit:this.urlLengthLimit})}update(r,{count:t}={}){var e;let s="PATCH",{url:i,headers:n}=this.cloneRequestState();return t&&n.append("Prefer",`count=${t}`),new S({method:s,url:i,headers:n,schema:this.schema,body:r,fetch:(e=this.fetch)!==null&&e!==void 0?e:fetch,urlLengthLimit:this.urlLengthLimit})}delete({count:r}={}){var t;let e="DELETE",{url:s,headers:i}=this.cloneRequestState();return r&&i.append("Prefer",`count=${r}`),new S({method:e,url:s,headers:i,schema:this.schema,fetch:(t=this.fetch)!==null&&t!==void 0?t:fetch,urlLengthLimit:this.urlLengthLimit})}};function x(r){"@babel/helpers - typeof";return x=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},x(r)}function ct(r,t){if(x(r)!="object"||!r)return r;var e=r[Symbol.toPrimitive];if(e!==void 0){var s=e.call(r,t||"default");if(x(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(r)}function ut(r){var t=ct(r,"string");return x(t)=="symbol"?t:t+""}function pt(r,t,e){return(t=ut(t))in r?Object.defineProperty(r,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):r[t]=e,r}function B(r,t){var e=Object.keys(r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(r);t&&(s=s.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),e.push.apply(e,s)}return e}function E(r){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?arguments[t]:{};t%2?B(Object(e),!0).forEach(function(s){pt(r,s,e[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(e)):B(Object(e)).forEach(function(s){Object.defineProperty(r,s,Object.getOwnPropertyDescriptor(e,s))})}return r}var z=class D{constructor(t,{headers:e={},schema:s,fetch:i,timeout:n,urlLengthLimit:a=8e3}={}){this.url=t,this.headers=new f(e),this.schemaName=s,this.urlLengthLimit=a;let o=i??globalThis.fetch;n!==void 0&&n>0?this.fetch=(h,c)=>{let l=new q,u=setTimeout(()=>l.abort(),n),d=c?.signal;if(d){if(d.aborted)return clearTimeout(u),o(h,c);let g=()=>{clearTimeout(u),l.abort()};return d.addEventListener("abort",g,{once:!0}),o(h,E(E({},c),{},{signal:l.signal})).finally(()=>{clearTimeout(u),d.removeEventListener("abort",g)})}return o(h,E(E({},c),{},{signal:l.signal})).finally(()=>clearTimeout(u))}:this.fetch=o}from(t){if(!t||typeof t!="string"||t.trim()==="")throw new Error("Invalid relation name: relation must be a non-empty string.");return new ht(new O(`${this.url}/${t}`),{headers:new f(this.headers),schema:this.schemaName,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}schema(t){return new D(this.url,{headers:this.headers,schema:t,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}rpc(t,e={},{head:s=!1,get:i=!1,count:n}={}){var a;let o,h=new O(`${this.url}/rpc/${t}`),c,l=g=>g!==null&&typeof g=="object"&&(!Array.isArray(g)||g.some(l)),u=s&&Object.values(e).some(l);u?(o="POST",c=e):s||i?(o=s?"HEAD":"GET",Object.entries(e).filter(([g,m])=>m!==void 0).map(([g,m])=>[g,Array.isArray(m)?`{${m.join(",")}}`:`${m}`]).forEach(([g,m])=>{h.searchParams.append(g,m)})):(o="POST",c=e);let d=new f(this.headers);return u?d.set("Prefer",n?`count=${n},return=minimal`:"return=minimal"):n&&d.set("Prefer",`count=${n}`),new S({method:o,url:h,headers:d,schema:this.schemaName,body:c,fetch:(a=this.fetch)!==null&&a!==void 0?a:fetch,urlLengthLimit:this.urlLengthLimit})}};var Y="/entities",dt=(r,t)=>new z(r+Y,{fetch:t.fetchWithAuth.bind(t)});var N=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=`
5
5
  .__nvwa-inspector-overlay {
6
6
  position: absolute;
7
7
  pointer-events: none;
@@ -33,4 +33,4 @@ ${h.stack}`)}else{var b;o=(b=n?.stack)!==null&&b!==void 0?b:""}let w=this.url.to
33
33
  max-width: 400px;
34
34
  word-break: break-all;
35
35
  }
36
- `,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 s=e.getBoundingClientRect(),i=window.scrollX||window.pageXOffset,n=window.scrollY||window.pageYOffset;s.width>0&&s.height>0?(t.style.left=`${s.left+i}px`,t.style.top=`${s.top+n}px`,t.style.width=`${s.width}px`,t.style.height=`${s.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 o=this.createTooltip();e?o.textContent=e:o.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,o.style.display="block";let l=t.getBoundingClientRect();o.style.left=`${l.left+window.scrollX}px`,o.style.top=`${l.top+window.scrollY-o.offsetHeight-8}px`,l.top<o.offsetHeight+8&&(o.style.top=`${l.bottom+window.scrollY+8}px`);return}this.hoverOverlay&&(this.removeOverlay(this.hoverOverlay),this.hoverOverlay=null);let s=this.createOverlay("hover");this.updateOverlayPosition(s,t),this.hoverOverlay=s,this.hoverElement=t;let i=()=>{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=i,window.addEventListener("scroll",i,!0),window.addEventListener("resize",i);let n=this.createTooltip();e?n.textContent=e:n.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,n.style.display="block";let a=t.getBoundingClientRect();n.style.left=`${a.left+window.scrollX}px`,n.style.top=`${a.top+window.scrollY-n.offsetHeight-8}px`,a.top<n.offsetHeight+8&&(n.style.top=`${a.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 s=this.createOverlay("selected");this.updateOverlayPosition(s,t),this.selectedOverlay=s,this.selectedElement=t;let i=()=>{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=i,window.addEventListener("scroll",i,!0),window.addEventListener("resize",i)}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 gt(r="root"){if(typeof document>"u")return null;let t=document.getElementById(r)||document.body;if(!t)return null;let e=t.querySelector("[data-source-location]");if(e){let s=e.getAttribute("data-source-location");if(s)return s}if(t.firstElementChild){let i=t.firstElementChild.getAttribute("data-source-location");if(i)return i}return null}function mt(r){let t=r;if(typeof t.kind=="string")return t;if(typeof t.tradeNO=="string")return{kind:"alipay_miniprogram",tradeNO:t.tradeNO};if(typeof t.clientSecret=="string")return{kind:"stripe_client_secret",clientSecret:t.clientSecret};if(typeof t.redirectUrl=="string")return{kind:"redirect_url",redirectUrl:t.redirectUrl};if(typeof t.formHtml=="string")return{kind:"alipay_page",formHtml:t.formHtml};if(typeof t.codeUrl=="string")return{kind:"wechat_native_qr",codeUrl:t.codeUrl};let e=t.jsapiPayParams??t;return typeof e.timeStamp=="string"&&typeof e.nonceStr=="string"&&typeof e.package=="string"&&typeof e.paySign=="string"&&typeof e.appId=="string"?{kind:"wechat_jsapi",mode:"jsapi",jsapiPayParams:{appId:e.appId,timeStamp:e.timeStamp,nonceStr:e.nonceStr,package:e.package,signType:e.signType??"RSA",paySign:e.paySign}}:null}function ft(r,t,e){return t.requestPayment(r.payParams,e)}function yt(r,t){let e=r.replace(/\/$/,""),s=t.startsWith("/")?t:`/${t}`;return`${e}${s}`}var R=class{constructor(t,e){this.cache=null;this.baseUrl=t.replace(/\/$/,""),this.fetchImpl=e}get(){return this.cache?.snapshot??null}getIntegrationItem(t){let e=this.cache?.snapshot;return e?e.integrations.find(i=>i.integrationType===t)??null:null}getEnabledProviders(t){let e=this.getIntegrationItem(t);return!e?.enabled||!e.providers?.length?[]:e.providers.filter(s=>s.enabled)}clear(){this.cache=null}async load(t){let e=t.locale?.trim().toLowerCase()==="en"?"en":"zh",s=`${t.applicationCode} ${t.platformCode} ${e}`;if(!t.force&&this.cache?.key===s)return this.cache.snapshot;let n=`/nvwa/integration-snapshot?${new URLSearchParams({applicationCode:t.applicationCode,platformCode:t.platformCode,locale:e}).toString()}`,a=yt(this.baseUrl,n),o=await this.fetchImpl(a,{credentials:"include",headers:{Accept:"application/json"}});if(!o.ok){let c=await o.text();throw new Error(`integration-snapshot: ${o.status} ${c||o.statusText}`)}let l=await o.json();return this.cache={key:s,snapshot:l},l}};0&&(module.exports={AuthClient,CURRENT_JWT_KEY,ENTITIES_BASE_PATH,FILE_STORAGE_BASE_PATH,GENERATE_UPLOAD_URL_PATH,Headers,LOGIN_TOKEN_KEY,LOGIN_USER_PROFILE_KEY,NvwaEdgeFunctions,NvwaFileStorage,NvwaHttpClient,NvwaIntegrationSnapshot,OverlayManager,Request,Response,SET_AUTH_TOKEN_HEADER,URL,createPostgrestClient,getSourceLocationFromDOM,normalizePayParams,requestPaymentFromOrderResult});
36
+ `,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 s=e.getBoundingClientRect(),i=window.scrollX||window.pageXOffset,n=window.scrollY||window.pageYOffset;s.width>0&&s.height>0?(t.style.left=`${s.left+i}px`,t.style.top=`${s.top+n}px`,t.style.width=`${s.width}px`,t.style.height=`${s.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 o=this.createTooltip();e?o.textContent=e:o.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,o.style.display="block";let h=t.getBoundingClientRect();o.style.left=`${h.left+window.scrollX}px`,o.style.top=`${h.top+window.scrollY-o.offsetHeight-8}px`,h.top<o.offsetHeight+8&&(o.style.top=`${h.bottom+window.scrollY+8}px`);return}this.hoverOverlay&&(this.removeOverlay(this.hoverOverlay),this.hoverOverlay=null);let s=this.createOverlay("hover");this.updateOverlayPosition(s,t),this.hoverOverlay=s,this.hoverElement=t;let i=()=>{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=i,window.addEventListener("scroll",i,!0),window.addEventListener("resize",i);let n=this.createTooltip();e?n.textContent=e:n.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,n.style.display="block";let a=t.getBoundingClientRect();n.style.left=`${a.left+window.scrollX}px`,n.style.top=`${a.top+window.scrollY-n.offsetHeight-8}px`,a.top<n.offsetHeight+8&&(n.style.top=`${a.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 s=this.createOverlay("selected");this.updateOverlayPosition(s,t),this.selectedOverlay=s,this.selectedElement=t;let i=()=>{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=i,window.addEventListener("scroll",i,!0),window.addEventListener("resize",i)}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 gt(r="root"){if(typeof document>"u")return null;let t=document.getElementById(r)||document.body;if(!t)return null;let e=t.querySelector("[data-source-location]");if(e){let s=e.getAttribute("data-source-location");if(s)return s}if(t.firstElementChild){let i=t.firstElementChild.getAttribute("data-source-location");if(i)return i}return null}function mt(r){let t=r;if(typeof t.kind=="string")return t;if(typeof t.tradeNO=="string")return{kind:"alipay_miniprogram",tradeNO:t.tradeNO};if(typeof t.clientSecret=="string")return{kind:"stripe_client_secret",clientSecret:t.clientSecret};if(typeof t.redirectUrl=="string")return{kind:"redirect_url",redirectUrl:t.redirectUrl};if(typeof t.formHtml=="string")return{kind:"alipay_page",formHtml:t.formHtml};if(typeof t.codeUrl=="string")return{kind:"wechat_native_qr",codeUrl:t.codeUrl};let e=t.jsapiPayParams??t;return typeof e.timeStamp=="string"&&typeof e.nonceStr=="string"&&typeof e.package=="string"&&typeof e.paySign=="string"&&typeof e.appId=="string"?{kind:"wechat_jsapi",mode:"jsapi",jsapiPayParams:{appId:e.appId,timeStamp:e.timeStamp,nonceStr:e.nonceStr,package:e.package,signType:e.signType??"RSA",paySign:e.paySign}}:null}function ft(r,t,e){return t.requestPayment(r.payParams,e)}function yt(r,t){let e=r.replace(/\/$/,""),s=t.startsWith("/")?t:`/${t}`;return`${e}${s}`}var R=class{constructor(t,e,s){this.cache=null;this.baseUrl=t.replace(/\/$/,""),this.fetchImpl=e,this.context=s}get(){return this.cache?.snapshot??null}getIntegrationItem(t){let e=this.cache?.snapshot;return e?e.integrations.find(i=>i.integrationType===t)??null:null}getEnabledProviders(t){let e=this.getIntegrationItem(t);return!e?.enabled||!e.providers?.length?[]:e.providers.filter(s=>s.enabled)}clear(){this.cache=null}async load(t){let e=t??{},s=this.context.applicationCode.trim(),i=this.context.platformCode.trim();if(!s||!i)throw new Error("NvwaIntegrationSnapshot: applicationCode \u4E0E platformCode \u5728\u6784\u9020 IntegrationSnapshotContext \u65F6\u4E0D\u80FD\u4E3A\u7A7A");let a=this.context.locale?.trim().toLowerCase()==="en"?"en":"zh",o=`${s} ${i} ${a}`;if(!e.force&&this.cache?.key===o)return this.cache.snapshot;let c=`/nvwa/integration-snapshot?${new URLSearchParams({applicationCode:s,platformCode:i,locale:a}).toString()}`,l=yt(this.baseUrl,c),u=await this.fetchImpl(l,{credentials:"include",headers:{Accept:"application/json"}});if(!u.ok){let g=await u.text();throw new Error(`integration-snapshot: ${u.status} ${g||u.statusText}`)}let d=await u.json();return this.cache={key:o,snapshot:d},d}};0&&(module.exports={AuthClient,CURRENT_JWT_KEY,ENTITIES_BASE_PATH,FILE_STORAGE_BASE_PATH,GENERATE_UPLOAD_URL_PATH,Headers,LOGIN_TOKEN_KEY,LOGIN_USER_PROFILE_KEY,NvwaEdgeFunctions,NvwaFileStorage,NvwaHttpClient,NvwaIntegrationSnapshot,OverlayManager,Request,Response,SET_AUTH_TOKEN_HEADER,URL,createPostgrestClient,getSourceLocationFromDOM,normalizePayParams,requestPaymentFromOrderResult});
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- var f=class k{constructor(t){if(this.headerMap=new Map,t){if(t instanceof k)t.forEach((e,s)=>this.set(s,e));else if(Array.isArray(t))for(let[e,s]of t)this.set(e,String(s));else if(typeof t=="object")for(let e of Object.keys(t))this.set(e,String(t[e]))}}append(t,e){let s=t.toLowerCase(),i=this.headerMap.get(s);this.headerMap.set(s,i?`${i}, ${e}`:e)}set(t,e){this.headerMap.set(t.toLowerCase(),String(e))}get(t){return this.headerMap.get(t.toLowerCase())??null}has(t){return this.headerMap.has(t.toLowerCase())}delete(t){this.headerMap.delete(t.toLowerCase())}forEach(t){for(let[e,s]of this.headerMap.entries())t(s,e,this)}entries(){return this.headerMap.entries()}keys(){return this.headerMap.keys()}values(){return this.headerMap.values()}[Symbol.iterator](){return this.entries()}},D=class A{constructor(t){if(this.params=new Map,t){if(typeof t=="string")this.parseString(t);else if(t instanceof A)this.params=new Map(t.params);else if(Array.isArray(t))for(let[e,s]of t)this.append(e,s);else if(t&&typeof t=="object")for(let[e,s]of Object.entries(t))this.set(e,s)}}parseString(t){t.startsWith("?")&&(t=t.slice(1));let e=t.split("&");for(let s of e)if(s){let[i,n]=s.split("=");i&&this.append(decodeURIComponent(i),n?decodeURIComponent(n):"")}}append(t,e){let s=this.params.get(t)||[];s.push(e),this.params.set(t,s)}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],[s])=>e.localeCompare(s));this.params=new Map(t)}toString(){let t=[];for(let[e,s]of this.params.entries())for(let i of s)t.push(`${encodeURIComponent(e)}=${encodeURIComponent(i)}`);return t.join("&")}forEach(t){for(let[e,s]of this.params.entries())for(let i of s)t(i,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,s]of this.params.entries())for(let i of s)t.push([e,i]);return t[Symbol.iterator]()}[Symbol.iterator](){return this.entries()}get size(){return this.params.size}},S=class R{constructor(t,e){let s;if(t instanceof R)s=t.href;else if(e){let n=e instanceof R?e.href:e;s=this.resolve(n,t)}else s=t;let i=this.parseUrl(s);this.href=s,this.origin=`${i.protocol}//${i.host}`,this.protocol=i.protocol,this.username=i.username,this.password=i.password,this.host=i.host,this.hostname=i.hostname,this.port=i.port,this.pathname=i.pathname,this.search=i.search,this.searchParams=new D(i.search),this.hash=i.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 n=this.parseUrl(t);return`${n.protocol}//${n.host}${e}`}let s=this.parseUrl(t),i=s.pathname.endsWith("/")?s.pathname:s.pathname+"/";return`${s.protocol}//${s.host}${i}${e}`}parseUrl(t){let e=t.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!e)throw new TypeError("Invalid URL");let s=e[2]||"",i=e[4]||"",n=e[5]||"/",a=e[7]?`?${e[7]}`:"",o=e[9]?`#${e[9]}`:"";if(!s&&!i&&!n.startsWith("/")&&!n.includes("/")&&!n.includes("."))throw new TypeError("Invalid URL");let l=i.match(/^([^@]*)@(.+)$/),c="",h="",p=i;if(l){let b=l[1];p=l[2];let y=b.match(/^([^:]*):?(.*)$/);y&&(c=y[1]||"",h=y[2]||"")}let d=p.match(/^([^:]+):?(\d*)$/),g=d?d[1]:p,m=d&&d[2]?d[2]:"";return{protocol:s?`${s}:`:"",username:c,password:h,host:p,hostname:g,port:m,pathname:n,search:a,hash:o}}toString(){let t=this.searchParams.toString(),e=t?`?${t}`:"";return`${this.protocol}//${this.host}${this.pathname}${e}${this.hash}`}toJSON(){return this.toString()}},$=class I{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 f?e.headers:new f(e?.headers),this.body=e?.body,this.timeout=e?.timeout,this.signal=e?.signal||void 0}clone(){return new I(this.url,{method:this.method,headers:this.headers,body:this.body,timeout:this.timeout})}toString(){return this.url}},U=class{constructor(r,t){this.bodyData=r,this.status=t?.status??200,this.statusText=t?.statusText??"",this.headers=Y(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 r=await this.text();return new TextEncoder().encode(r).buffer}};function Y(r){return r?new f(r):new f}var K=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 r of Array.from(this.listeners))try{r()}catch{}this.listeners.clear()}}addEventListener(r,t){if(this._aborted){try{t()}catch{}return}this.listeners.add(t)}removeEventListener(r,t){this.listeners.delete(t)}toString(){return"[object AbortSignal]"}},N=class{constructor(){this._signal=new K}get signal(){return this._signal}abort(){this._signal._trigger()}toString(){return"[object AbortController]"}};var j=class{constructor(t,e=""){this.http=t,this.baseUrl=e.replace(/\/$/,"")}async invoke(t,e){let s=this.baseUrl?`${this.baseUrl}/functions/${t}`:`/functions/${t}`;return await(await this.http.fetch(s,{method:e.method||"POST",body:e.body,headers:e.headers})).json()}};var u="nvwa_current_jwt",w="nvwa_login_token",O="nvwa_user_profile",H="set-auth-token",V=typeof fetch<"u"?(r,t)=>fetch(r,t):()=>{throw new Error("AuthClient requires fetch")},T=class{constructor(t,e={}){this.baseUrl=t.replace(/\/$/,""),this.authPath=(e.authPath??"/auth").replace(/^\//,""),this.fetchImpl=e.fetchImpl??V,this.storage=e.storage??null,this.credentials=e.credentials??"omit",typeof console<"u"&&(console.warn("[NvwaAuth] init baseUrl:",this.baseUrl||"(empty)"),(!this.baseUrl||!this.baseUrl.startsWith("http://")&&!this.baseUrl.startsWith("https://"))&&console.warn("[NvwaAuth] baseUrl \u5E94\u4E3A\u5B8C\u6574\u5730\u5740\uFF08\u5982 https://xxx.nvwa.app\uFF09\uFF0C\u5426\u5219\u5C0F\u7A0B\u5E8F request \u4F1A\u62A5 invalid url"))}async currentUser(){if(this.storage){let s=await this.storage.get(O);if(s!=null)return s}let{data:t}=await this.getSession(),e=t?.user??null;return e&&this.storage&&await this.storage.set(O,e),e}async getCurrentJwt(){if(this.storage){let e=await this.storage.get(u);if(e!=null)return e;let s=await this.storage.get(w),{data:i}=await this.getToken(s??void 0);return i?.token?(await this.storage.set(u,i.token),i.token):null}let{data:t}=await this.getToken();return t?.token??null}async persistLogin(t,e){if(!this.storage)return;let i=e?.headers.get(H)?.trim()||t.token||t.session?.token;i&&await this.storage.set(w,i),t.user&&await this.storage.set(O,t.user);let n=i??await this.storage.get(w),{data:a}=await this.getToken(n??void 0);a?.token&&await this.storage.set(u,a.token)}async clearLogin(){this.storage&&(await this.storage.remove(w),await this.storage.remove(O),await this.storage.remove(u))}getGoogleOpenPlatformLoginUrl(t,e){let s=new URLSearchParams({return_url:t});return e?.applicationCode?.trim()&&s.set("application_code",e.applicationCode.trim()),e?.platformCode?.trim()&&s.set("platform_code",e.platformCode.trim()),`${this.url("google/openplatform/login")}?${s.toString()}`}startGoogleOpenPlatformLogin(t,e){let s=this.getGoogleOpenPlatformLoginUrl(t,e);if(typeof globalThis<"u"&&"location"in globalThis){globalThis.location.href=s;return}throw new Error("startGoogleOpenPlatformLogin requires a browser environment with location")}async completeGoogleOpenPlatformLoginFromCurrentUrl(t){let e;if(t!=null&&t!=="")e=t;else if(typeof globalThis<"u"&&"location"in globalThis)e=globalThis.location.href;else return{error:{message:"completeGoogleOpenPlatformLoginFromCurrentUrl requires url or browser location",status:0}};let s;try{s=new URL(e).searchParams.get("exchange_code")}catch{return{error:{message:"invalid_callback_url",status:400}}}return s?.trim()?await this.loginWithGoogleExchangeCode(s.trim()):{error:{message:"missing_exchange_code",status:400}}}async loginWithGoogleExchangeCode(t){try{let e={"Content-Type":"application/json"};if(this.storage){let a=await this.storage.get(u);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("google/openplatform/sign-in"),{method:"POST",headers:e,credentials:this.credentials,body:JSON.stringify({exchangeCode:t})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):null;return!n?.token||!n.user?{error:{message:"invalid_google_login_response",status:502}}:(this.storage&&(await this.storage.set(u,n.token),await this.storage.set(w,n.token),await this.storage.set(O,n.user)),{data:n})}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getGoogleOpenPlatformIdentity(){try{let t={};if(this.storage){let n=await this.storage.get(u);n!=null&&(t.Authorization=`Bearer ${n}`)}let e=await this.fetchImpl(this.url("google/openplatform/identity"),{method:"GET",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}}),s=await e.text();if(!e.ok)return{error:{message:s||e.statusText,status:e.status}};let i=s?JSON.parse(s):null;return i?.sub?{data:i}:{error:{message:"invalid_google_identity_response",status:502}}}catch(t){return{error:{message:t instanceof Error?t.message:String(t),status:0}}}}getGithubOpenPlatformLoginUrl(t,e){let s=new URLSearchParams({return_url:t});return e?.applicationCode?.trim()&&s.set("application_code",e.applicationCode.trim()),e?.platformCode?.trim()&&s.set("platform_code",e.platformCode.trim()),`${this.url("github/openplatform/login")}?${s.toString()}`}startGithubOpenPlatformLogin(t,e){let s=this.getGithubOpenPlatformLoginUrl(t,e);if(typeof globalThis<"u"&&"location"in globalThis){globalThis.location.href=s;return}throw new Error("startGithubOpenPlatformLogin requires a browser environment with location")}async completeGithubOpenPlatformLoginFromCurrentUrl(t){let e;if(t!=null&&t!=="")e=t;else if(typeof globalThis<"u"&&"location"in globalThis)e=globalThis.location.href;else return{error:{message:"completeGithubOpenPlatformLoginFromCurrentUrl requires url or browser location",status:0}};let s;try{s=new URL(e).searchParams.get("exchange_code")}catch{return{error:{message:"invalid_callback_url",status:400}}}return s?.trim()?await this.loginWithGithubExchangeCode(s.trim()):{error:{message:"missing_exchange_code",status:400}}}async loginWithGithubExchangeCode(t){try{let e={"Content-Type":"application/json"};if(this.storage){let a=await this.storage.get(u);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("github/openplatform/sign-in"),{method:"POST",headers:e,credentials:this.credentials,body:JSON.stringify({exchangeCode:t})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):null;return!n?.token||!n.user?{error:{message:"invalid_github_login_response",status:502}}:(this.storage&&(await this.storage.set(u,n.token),await this.storage.set(w,n.token),await this.storage.set(O,n.user)),{data:n})}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getGithubOpenPlatformIdentity(){try{let t={};if(this.storage){let n=await this.storage.get(u);n!=null&&(t.Authorization=`Bearer ${n}`)}let e=await this.fetchImpl(this.url("github/openplatform/identity"),{method:"GET",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}}),s=await e.text();if(!e.ok)return{error:{message:s||e.statusText,status:e.status}};let i=s?JSON.parse(s):null;return i?.sub?{data:i}:{error:{message:"invalid_github_identity_response",status:502}}}catch(t){return{error:{message:t instanceof Error?t.message:String(t),status:0}}}}getWechatWebsiteOpenPlatformLoginUrl(t){let e=new URLSearchParams({return_url:t});return`${this.url("wechat-website/openplatform/login")}?${e.toString()}`}startWechatWebsiteOpenPlatformLogin(t){let e=this.getWechatWebsiteOpenPlatformLoginUrl(t);if(typeof globalThis<"u"&&"location"in globalThis){globalThis.location.href=e;return}throw new Error("startWechatWebsiteOpenPlatformLogin requires a browser environment with location")}async completeWechatWebsiteOpenPlatformLoginFromCurrentUrl(t){let e;if(t!=null&&t!=="")e=t;else if(typeof globalThis<"u"&&"location"in globalThis)e=globalThis.location.href;else return{error:{message:"completeWechatWebsiteOpenPlatformLoginFromCurrentUrl requires url or browser location",status:0}};let s;try{s=new URL(e).searchParams.get("exchange_code")}catch{return{error:{message:"invalid_callback_url",status:400}}}return s?.trim()?await this.loginWithWechatWebsiteExchangeCode(s.trim()):{error:{message:"missing_exchange_code",status:400}}}async loginWithWechatWebsiteExchangeCode(t){try{let e={"Content-Type":"application/json"};if(this.storage){let a=await this.storage.get(u);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("wechat-website/openplatform/sign-in"),{method:"POST",headers:e,credentials:this.credentials,body:JSON.stringify({exchangeCode:t})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):null;return!n?.token||!n.user?{error:{message:"invalid_wechat_website_login_response",status:502}}:(this.storage&&(await this.storage.set(u,n.token),await this.storage.set(w,n.token),await this.storage.set(O,n.user)),{data:n})}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getWechatWebsiteOpenPlatformIdentity(){try{let t={};if(this.storage){let n=await this.storage.get(u);n!=null&&(t.Authorization=`Bearer ${n}`)}let e=await this.fetchImpl(this.url("wechat-website/openplatform/identity"),{method:"GET",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}}),s=await e.text();if(!e.ok)return{error:{message:s||e.statusText,status:e.status}};let i=s?JSON.parse(s):null;return i?.sub?{data:i}:{error:{message:"invalid_wechat_website_identity_response",status:502}}}catch(t){return{error:{message:t instanceof Error?t.message:String(t),status:0}}}}url(t){let s=`${`${this.baseUrl.replace(/\/+$/,"")}/${this.authPath.replace(/^\/+/,"")}`}/${t.replace(/^\/+/,"")}`;return typeof console<"u"&&(console.warn("[NvwaAuth] request URL:",s),!s.startsWith("http://")&&!s.startsWith("https://")&&console.warn("[NvwaAuth] URL \u975E\u5B8C\u6574\u5730\u5740\uFF0C\u5C0F\u7A0B\u5E8F\u4F1A\u62A5 invalid url\uFF0C\u8BF7\u68C0\u67E5 Nvwa \u6784\u9020\u65F6\u4F20\u5165\u7684 baseUrl")),s}async getSession(){try{let t={};if(this.storage){let i=await this.storage.get(w)??await this.storage.get(u);i!=null&&(t.Authorization=`Bearer ${i}`)}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 s=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})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):void 0;return n&&await this.persistLogin({user:n.user,session:n.session},s),{data:n}}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}async signOut(){try{let t={};if(this.storage){let s=await this.storage.get(w)??await this.storage.get(u);s!=null&&(t.Authorization=`Bearer ${s}`)}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 a=await this.storage.get(w)??await this.storage.get(u);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("token"),{method:"GET",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):void 0;return{data:n?.token!=null?{token:n.token}:void 0}}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async signInWithUsername(t,e){let s=await this.postJson("sign-in/username",{username:t,password:e});return s.data&&await this.persistLogin(s.data,s.response),s}async signInWithPhoneNumber(t,e,s){let i=await this.postJson("sign-in/phone-number",{phoneNumber:t,password:e,rememberMe:s});return i.data&&await this.persistLogin(i.data,i.response),i}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 s=await this.postJson("phone-number/verify",{phoneNumber:t,code:e});return s.data&&await this.persistLogin(s.data,s.response),s}async loginWithWeChatCode(t,e){try{let s={"Content-Type":"application/json"};if(this.storage){let o=await this.storage.get(u);o!=null&&(s.Authorization=`Bearer ${o}`)}let i=await this.fetchImpl(this.url("wechat/openplatform/sign-in"),{method:"POST",headers:s,credentials:this.credentials,body:JSON.stringify({code:t,applicationCode:e})}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.token||!a.user?{error:{message:"invalid_wechat_login_response",status:502}}:(this.storage&&(await this.storage.set(u,a.token),await this.storage.set(w,a.token),await this.storage.set(O,a.user)),{data:a})}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}async loginWithAlipayCode(t,e){try{let s={"Content-Type":"application/json"};if(this.storage){let o=await this.storage.get(u);o!=null&&(s.Authorization=`Bearer ${o}`)}let i=await this.fetchImpl(this.url("alipay/openplatform/sign-in"),{method:"POST",headers:s,credentials:this.credentials,body:JSON.stringify({code:t,applicationCode:e})}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.token||!a.user?{error:{message:"invalid_alipay_login_response",status:502}}:(this.storage&&(await this.storage.set(u,a.token),await this.storage.set(w,a.token),await this.storage.set(O,a.user)),{data:a})}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}async getWeChatOpenPlatformIdentity(t){try{let e={};if(this.storage){let o=await this.storage.get(u);o!=null&&(e.Authorization=`Bearer ${o}`)}let s=t?.trim()?`?applicationCode=${encodeURIComponent(t.trim())}`:"",i=await this.fetchImpl(this.url(`wechat/openplatform/identity${s}`),{method:"GET",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.openid||!a.appId?{error:{message:"invalid_wechat_identity_response",status:502}}:{data:a}}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getAlipayOpenPlatformIdentity(t){try{let e={};if(this.storage){let o=await this.storage.get(u);o!=null&&(e.Authorization=`Bearer ${o}`)}let s=t?.trim()?`?applicationCode=${encodeURIComponent(t.trim())}`:"",i=await this.fetchImpl(this.url(`alipay/openplatform/identity${s}`),{method:"GET",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.openid||!a.appId?{error:{message:"invalid_alipay_identity_response",status:502}}:{data:a}}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async postJson(t,e){try{let s=await this.fetchImpl(this.url(t),{method:"POST",headers:{"Content-Type":"application/json"},credentials:this.credentials,body:JSON.stringify(e)}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):void 0;return{data:n?.data??n??void 0,response:s}}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}};var W=class{constructor(t,e,s){this.storage=t,this.customFetch=e,this.handleUnauthorized=s}async fetch(t,e){return await this.customFetch(t,e)}async fetchWithAuth(t,e){let s=await this.storage.get(u),i=new f(e?.headers);s&&i.set("Authorization",`Bearer ${s}`);let n=e?.method||"GET";if((n==="POST"||n==="PUT"||n==="PATCH")&&e?.body){let o=i.get("Content-Type");(!o||o.includes("text/plain"))&&i.set("Content-Type","application/json")}let a=await this.customFetch(t,{...e,headers:i});if(a.status===401)throw this.handleUnauthorized(),new Error("\u672A\u767B\u5F55");return a}};var X="/storage",Q=X+"/generateUploadUrl",G=class{constructor(t,e){this.baseUrl=t,this.http=e}async uploadFile(t){let e=await this.http.fetch(this.baseUrl+Q,{method:"POST",body:{fileName:t.name||t.fileName,fileSize:t.size||t.fileSize,fileType:t.type||t.fileType}}),{url:s}=await e.json();if(!s)throw new Error("\u83B7\u53D6\u4E0A\u4F20URL\u5931\u8D25");let i=await this.http.fetch(s,{method:"PUT",body:t,headers:new f({"Content-Type":t.type||t.fileType||"application/octet-stream"})}),{url:n}=await i.json();return{url:n.split("?")[0]}}};var Z=class extends Error{constructor(r){super(r.message),this.name="PostgrestError",this.details=r.details,this.hint=r.hint,this.code=r.code}},tt=class{constructor(r){var t,e,s;this.shouldThrowOnError=!1,this.method=r.method,this.url=r.url,this.headers=new f(r.headers),this.schema=r.schema,this.body=r.body,this.shouldThrowOnError=(t=r.shouldThrowOnError)!==null&&t!==void 0?t:!1,this.signal=r.signal,this.isMaybeSingle=(e=r.isMaybeSingle)!==null&&e!==void 0?e:!1,this.urlLengthLimit=(s=r.urlLengthLimit)!==null&&s!==void 0?s:8e3,r.fetch?this.fetch=r.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(r,t){return this.headers=new f(this.headers),this.headers.set(r,t),this}then(r,t){var e=this;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 s=this.fetch,i=s(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async n=>{let a=null,o=null,l=null,c=n.status,h=n.statusText;if(n.ok){var p,d;if(e.method!=="HEAD"){var g;let y=await n.text();y===""||(e.headers.get("Accept")==="text/csv"||e.headers.get("Accept")&&(!((g=e.headers.get("Accept"))===null||g===void 0)&&g.includes("application/vnd.pgrst.plan+text"))?o=y:o=JSON.parse(y))}let m=(p=e.headers.get("Prefer"))===null||p===void 0?void 0:p.match(/count=(exact|planned|estimated)/),b=(d=n.headers.get("content-range"))===null||d===void 0?void 0:d.split("/");m&&b&&b.length>1&&(l=parseInt(b[1])),e.isMaybeSingle&&Array.isArray(o)&&(o.length>1?(a={code:"PGRST116",details:`Results contain ${o.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},o=null,l=null,c=406,h="Not Acceptable"):o.length===1?o=o[0]:o=null)}else{let m=await n.text();try{a=JSON.parse(m),Array.isArray(a)&&n.status===404&&(o=[],a=null,c=200,h="OK")}catch{n.status===404&&m===""?(c=204,h="No Content"):a={message:m}}if(a&&e.shouldThrowOnError)throw new Z(a)}return{error:a,data:o,count:l,status:c,statusText:h}});return this.shouldThrowOnError||(i=i.catch(n=>{var a;let o="",l="",c="",h=n?.cause;if(h){var p,d,g,m;let z=(p=h?.message)!==null&&p!==void 0?p:"",_=(d=h?.code)!==null&&d!==void 0?d:"";o=`${(g=n?.name)!==null&&g!==void 0?g:"FetchError"}: ${n?.message}`,o+=`
1
+ var f=class k{constructor(t){if(this.headerMap=new Map,t){if(t instanceof k)t.forEach((e,s)=>this.set(s,e));else if(Array.isArray(t))for(let[e,s]of t)this.set(e,String(s));else if(typeof t=="object")for(let e of Object.keys(t))this.set(e,String(t[e]))}}append(t,e){let s=t.toLowerCase(),i=this.headerMap.get(s);this.headerMap.set(s,i?`${i}, ${e}`:e)}set(t,e){this.headerMap.set(t.toLowerCase(),String(e))}get(t){return this.headerMap.get(t.toLowerCase())??null}has(t){return this.headerMap.has(t.toLowerCase())}delete(t){this.headerMap.delete(t.toLowerCase())}forEach(t){for(let[e,s]of this.headerMap.entries())t(s,e,this)}entries(){return this.headerMap.entries()}keys(){return this.headerMap.keys()}values(){return this.headerMap.values()}[Symbol.iterator](){return this.entries()}},D=class I{constructor(t){if(this.params=new Map,t){if(typeof t=="string")this.parseString(t);else if(t instanceof I)this.params=new Map(t.params);else if(Array.isArray(t))for(let[e,s]of t)this.append(e,s);else if(t&&typeof t=="object")for(let[e,s]of Object.entries(t))this.set(e,s)}}parseString(t){t.startsWith("?")&&(t=t.slice(1));let e=t.split("&");for(let s of e)if(s){let[i,n]=s.split("=");i&&this.append(decodeURIComponent(i),n?decodeURIComponent(n):"")}}append(t,e){let s=this.params.get(t)||[];s.push(e),this.params.set(t,s)}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],[s])=>e.localeCompare(s));this.params=new Map(t)}toString(){let t=[];for(let[e,s]of this.params.entries())for(let i of s)t.push(`${encodeURIComponent(e)}=${encodeURIComponent(i)}`);return t.join("&")}forEach(t){for(let[e,s]of this.params.entries())for(let i of s)t(i,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,s]of this.params.entries())for(let i of s)t.push([e,i]);return t[Symbol.iterator]()}[Symbol.iterator](){return this.entries()}get size(){return this.params.size}},S=class R{constructor(t,e){let s;if(t instanceof R)s=t.href;else if(e){let n=e instanceof R?e.href:e;s=this.resolve(n,t)}else s=t;let i=this.parseUrl(s);this.href=s,this.origin=`${i.protocol}//${i.host}`,this.protocol=i.protocol,this.username=i.username,this.password=i.password,this.host=i.host,this.hostname=i.hostname,this.port=i.port,this.pathname=i.pathname,this.search=i.search,this.searchParams=new D(i.search),this.hash=i.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 n=this.parseUrl(t);return`${n.protocol}//${n.host}${e}`}let s=this.parseUrl(t),i=s.pathname.endsWith("/")?s.pathname:s.pathname+"/";return`${s.protocol}//${s.host}${i}${e}`}parseUrl(t){let e=t.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!e)throw new TypeError("Invalid URL");let s=e[2]||"",i=e[4]||"",n=e[5]||"/",a=e[7]?`?${e[7]}`:"",o=e[9]?`#${e[9]}`:"";if(!s&&!i&&!n.startsWith("/")&&!n.includes("/")&&!n.includes("."))throw new TypeError("Invalid URL");let h=i.match(/^([^@]*)@(.+)$/),c="",l="",u=i;if(h){let b=h[1];u=h[2];let y=b.match(/^([^:]*):?(.*)$/);y&&(c=y[1]||"",l=y[2]||"")}let p=u.match(/^([^:]+):?(\d*)$/),g=p?p[1]:u,m=p&&p[2]?p[2]:"";return{protocol:s?`${s}:`:"",username:c,password:l,host:u,hostname:g,port:m,pathname:n,search:a,hash:o}}toString(){let t=this.searchParams.toString(),e=t?`?${t}`:"";return`${this.protocol}//${this.host}${this.pathname}${e}${this.hash}`}toJSON(){return this.toString()}},A=class ${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 f?e.headers:new f(e?.headers),this.body=e?.body,this.timeout=e?.timeout,this.signal=e?.signal||void 0}clone(){return new $(this.url,{method:this.method,headers:this.headers,body:this.body,timeout:this.timeout})}toString(){return this.url}},U=class{constructor(r,t){this.bodyData=r,this.status=t?.status??200,this.statusText=t?.statusText??"",this.headers=Y(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 r=await this.text();return new TextEncoder().encode(r).buffer}};function Y(r){return r?new f(r):new f}var K=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 r of Array.from(this.listeners))try{r()}catch{}this.listeners.clear()}}addEventListener(r,t){if(this._aborted){try{t()}catch{}return}this.listeners.add(t)}removeEventListener(r,t){this.listeners.delete(t)}toString(){return"[object AbortSignal]"}},N=class{constructor(){this._signal=new K}get signal(){return this._signal}abort(){this._signal._trigger()}toString(){return"[object AbortController]"}};var j=class{constructor(t,e=""){this.http=t,this.baseUrl=e.replace(/\/$/,"")}async invoke(t,e){let s=this.baseUrl?`${this.baseUrl}/functions/${t}`:`/functions/${t}`;return await(await this.http.fetch(s,{method:e.method||"POST",body:e.body,headers:e.headers})).json()}};var d="nvwa_current_jwt",w="nvwa_login_token",O="nvwa_user_profile",H="set-auth-token",V=typeof fetch<"u"?(r,t)=>fetch(r,t):()=>{throw new Error("AuthClient requires fetch")},T=class{constructor(t,e={}){this.baseUrl=t.replace(/\/$/,""),this.authPath=(e.authPath??"/auth").replace(/^\//,""),this.fetchImpl=e.fetchImpl??V,this.storage=e.storage??null,this.credentials=e.credentials??"omit",typeof console<"u"&&(console.warn("[NvwaAuth] init baseUrl:",this.baseUrl||"(empty)"),(!this.baseUrl||!this.baseUrl.startsWith("http://")&&!this.baseUrl.startsWith("https://"))&&console.warn("[NvwaAuth] baseUrl \u5E94\u4E3A\u5B8C\u6574\u5730\u5740\uFF08\u5982 https://xxx.nvwa.app\uFF09\uFF0C\u5426\u5219\u5C0F\u7A0B\u5E8F request \u4F1A\u62A5 invalid url"))}async currentUser(){if(this.storage){let s=await this.storage.get(O);if(s!=null)return s}let{data:t}=await this.getSession(),e=t?.user??null;return e&&this.storage&&await this.storage.set(O,e),e}async getCurrentJwt(){if(this.storage){let e=await this.storage.get(d);if(e!=null)return e;let s=await this.storage.get(w),{data:i}=await this.getToken(s??void 0);return i?.token?(await this.storage.set(d,i.token),i.token):null}let{data:t}=await this.getToken();return t?.token??null}async persistLogin(t,e){if(!this.storage)return;let i=e?.headers.get(H)?.trim()||t.token||t.session?.token;i&&await this.storage.set(w,i),t.user&&await this.storage.set(O,t.user);let n=i??await this.storage.get(w),{data:a}=await this.getToken(n??void 0);a?.token&&await this.storage.set(d,a.token)}async clearLogin(){this.storage&&(await this.storage.remove(w),await this.storage.remove(O),await this.storage.remove(d))}getGoogleOpenPlatformLoginUrl(t,e){let s=new URLSearchParams({return_url:t});return e?.applicationCode?.trim()&&s.set("application_code",e.applicationCode.trim()),e?.platformCode?.trim()&&s.set("platform_code",e.platformCode.trim()),`${this.url("google/openplatform/login")}?${s.toString()}`}startGoogleOpenPlatformLogin(t,e){let s=this.getGoogleOpenPlatformLoginUrl(t,e);if(typeof globalThis<"u"&&"location"in globalThis){globalThis.location.href=s;return}throw new Error("startGoogleOpenPlatformLogin requires a browser environment with location")}async completeGoogleOpenPlatformLoginFromCurrentUrl(t){let e;if(t!=null&&t!=="")e=t;else if(typeof globalThis<"u"&&"location"in globalThis)e=globalThis.location.href;else return{error:{message:"completeGoogleOpenPlatformLoginFromCurrentUrl requires url or browser location",status:0}};let s;try{s=new URL(e).searchParams.get("exchange_code")}catch{return{error:{message:"invalid_callback_url",status:400}}}return s?.trim()?await this.loginWithGoogleExchangeCode(s.trim()):{error:{message:"missing_exchange_code",status:400}}}async loginWithGoogleExchangeCode(t){try{let e={"Content-Type":"application/json"};if(this.storage){let a=await this.storage.get(d);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("google/openplatform/sign-in"),{method:"POST",headers:e,credentials:this.credentials,body:JSON.stringify({exchangeCode:t})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):null;return!n?.token||!n.user?{error:{message:"invalid_google_login_response",status:502}}:(this.storage&&(await this.storage.set(d,n.token),await this.storage.set(w,n.token),await this.storage.set(O,n.user)),{data:n})}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getGoogleOpenPlatformIdentity(){try{let t={};if(this.storage){let n=await this.storage.get(d);n!=null&&(t.Authorization=`Bearer ${n}`)}let e=await this.fetchImpl(this.url("google/openplatform/identity"),{method:"GET",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}}),s=await e.text();if(!e.ok)return{error:{message:s||e.statusText,status:e.status}};let i=s?JSON.parse(s):null;return i?.sub?{data:i}:{error:{message:"invalid_google_identity_response",status:502}}}catch(t){return{error:{message:t instanceof Error?t.message:String(t),status:0}}}}getGithubOpenPlatformLoginUrl(t,e){let s=new URLSearchParams({return_url:t});return e?.applicationCode?.trim()&&s.set("application_code",e.applicationCode.trim()),e?.platformCode?.trim()&&s.set("platform_code",e.platformCode.trim()),`${this.url("github/openplatform/login")}?${s.toString()}`}startGithubOpenPlatformLogin(t,e){let s=this.getGithubOpenPlatformLoginUrl(t,e);if(typeof globalThis<"u"&&"location"in globalThis){globalThis.location.href=s;return}throw new Error("startGithubOpenPlatformLogin requires a browser environment with location")}async completeGithubOpenPlatformLoginFromCurrentUrl(t){let e;if(t!=null&&t!=="")e=t;else if(typeof globalThis<"u"&&"location"in globalThis)e=globalThis.location.href;else return{error:{message:"completeGithubOpenPlatformLoginFromCurrentUrl requires url or browser location",status:0}};let s;try{s=new URL(e).searchParams.get("exchange_code")}catch{return{error:{message:"invalid_callback_url",status:400}}}return s?.trim()?await this.loginWithGithubExchangeCode(s.trim()):{error:{message:"missing_exchange_code",status:400}}}async loginWithGithubExchangeCode(t){try{let e={"Content-Type":"application/json"};if(this.storage){let a=await this.storage.get(d);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("github/openplatform/sign-in"),{method:"POST",headers:e,credentials:this.credentials,body:JSON.stringify({exchangeCode:t})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):null;return!n?.token||!n.user?{error:{message:"invalid_github_login_response",status:502}}:(this.storage&&(await this.storage.set(d,n.token),await this.storage.set(w,n.token),await this.storage.set(O,n.user)),{data:n})}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getGithubOpenPlatformIdentity(){try{let t={};if(this.storage){let n=await this.storage.get(d);n!=null&&(t.Authorization=`Bearer ${n}`)}let e=await this.fetchImpl(this.url("github/openplatform/identity"),{method:"GET",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}}),s=await e.text();if(!e.ok)return{error:{message:s||e.statusText,status:e.status}};let i=s?JSON.parse(s):null;return i?.sub?{data:i}:{error:{message:"invalid_github_identity_response",status:502}}}catch(t){return{error:{message:t instanceof Error?t.message:String(t),status:0}}}}getWechatWebsiteOpenPlatformLoginUrl(t){let e=new URLSearchParams({return_url:t});return`${this.url("wechat-website/openplatform/login")}?${e.toString()}`}startWechatWebsiteOpenPlatformLogin(t){let e=this.getWechatWebsiteOpenPlatformLoginUrl(t);if(typeof globalThis<"u"&&"location"in globalThis){globalThis.location.href=e;return}throw new Error("startWechatWebsiteOpenPlatformLogin requires a browser environment with location")}async completeWechatWebsiteOpenPlatformLoginFromCurrentUrl(t){let e;if(t!=null&&t!=="")e=t;else if(typeof globalThis<"u"&&"location"in globalThis)e=globalThis.location.href;else return{error:{message:"completeWechatWebsiteOpenPlatformLoginFromCurrentUrl requires url or browser location",status:0}};let s;try{s=new URL(e).searchParams.get("exchange_code")}catch{return{error:{message:"invalid_callback_url",status:400}}}return s?.trim()?await this.loginWithWechatWebsiteExchangeCode(s.trim()):{error:{message:"missing_exchange_code",status:400}}}async loginWithWechatWebsiteExchangeCode(t){try{let e={"Content-Type":"application/json"};if(this.storage){let a=await this.storage.get(d);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("wechat-website/openplatform/sign-in"),{method:"POST",headers:e,credentials:this.credentials,body:JSON.stringify({exchangeCode:t})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):null;return!n?.token||!n.user?{error:{message:"invalid_wechat_website_login_response",status:502}}:(this.storage&&(await this.storage.set(d,n.token),await this.storage.set(w,n.token),await this.storage.set(O,n.user)),{data:n})}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getWechatWebsiteOpenPlatformIdentity(){try{let t={};if(this.storage){let n=await this.storage.get(d);n!=null&&(t.Authorization=`Bearer ${n}`)}let e=await this.fetchImpl(this.url("wechat-website/openplatform/identity"),{method:"GET",credentials:this.credentials,...Object.keys(t).length?{headers:t}:{}}),s=await e.text();if(!e.ok)return{error:{message:s||e.statusText,status:e.status}};let i=s?JSON.parse(s):null;return i?.sub?{data:i}:{error:{message:"invalid_wechat_website_identity_response",status:502}}}catch(t){return{error:{message:t instanceof Error?t.message:String(t),status:0}}}}url(t){let s=`${`${this.baseUrl.replace(/\/+$/,"")}/${this.authPath.replace(/^\/+/,"")}`}/${t.replace(/^\/+/,"")}`;return typeof console<"u"&&(console.warn("[NvwaAuth] request URL:",s),!s.startsWith("http://")&&!s.startsWith("https://")&&console.warn("[NvwaAuth] URL \u975E\u5B8C\u6574\u5730\u5740\uFF0C\u5C0F\u7A0B\u5E8F\u4F1A\u62A5 invalid url\uFF0C\u8BF7\u68C0\u67E5 Nvwa \u6784\u9020\u65F6\u4F20\u5165\u7684 baseUrl")),s}async getSession(){try{let t={};if(this.storage){let i=await this.storage.get(w)??await this.storage.get(d);i!=null&&(t.Authorization=`Bearer ${i}`)}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 s=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})}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):void 0;return n&&await this.persistLogin({user:n.user,session:n.session},s),{data:n}}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}async signOut(){try{let t={};if(this.storage){let s=await this.storage.get(w)??await this.storage.get(d);s!=null&&(t.Authorization=`Bearer ${s}`)}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 a=await this.storage.get(w)??await this.storage.get(d);a!=null&&(e.Authorization=`Bearer ${a}`)}let s=await this.fetchImpl(this.url("token"),{method:"GET",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):void 0;return{data:n?.token!=null?{token:n.token}:void 0}}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async signInWithUsername(t,e){let s=await this.postJson("sign-in/username",{username:t,password:e});return s.data&&await this.persistLogin(s.data,s.response),s}async signInWithPhoneNumber(t,e,s){let i=await this.postJson("sign-in/phone-number",{phoneNumber:t,password:e,rememberMe:s});return i.data&&await this.persistLogin(i.data,i.response),i}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 s=await this.postJson("phone-number/verify",{phoneNumber:t,code:e});return s.data&&await this.persistLogin(s.data,s.response),s}async loginWithWeChatCode(t,e){try{let s={"Content-Type":"application/json"};if(this.storage){let o=await this.storage.get(d);o!=null&&(s.Authorization=`Bearer ${o}`)}let i=await this.fetchImpl(this.url("wechat/openplatform/sign-in"),{method:"POST",headers:s,credentials:this.credentials,body:JSON.stringify({code:t,applicationCode:e})}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.token||!a.user?{error:{message:"invalid_wechat_login_response",status:502}}:(this.storage&&(await this.storage.set(d,a.token),await this.storage.set(w,a.token),await this.storage.set(O,a.user)),{data:a})}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}async loginWithAlipayCode(t,e){try{let s={"Content-Type":"application/json"};if(this.storage){let o=await this.storage.get(d);o!=null&&(s.Authorization=`Bearer ${o}`)}let i=await this.fetchImpl(this.url("alipay/openplatform/sign-in"),{method:"POST",headers:s,credentials:this.credentials,body:JSON.stringify({code:t,applicationCode:e})}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.token||!a.user?{error:{message:"invalid_alipay_login_response",status:502}}:(this.storage&&(await this.storage.set(d,a.token),await this.storage.set(w,a.token),await this.storage.set(O,a.user)),{data:a})}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}async getWeChatOpenPlatformIdentity(t){try{let e={};if(this.storage){let o=await this.storage.get(d);o!=null&&(e.Authorization=`Bearer ${o}`)}let s=t?.trim()?`?applicationCode=${encodeURIComponent(t.trim())}`:"",i=await this.fetchImpl(this.url(`wechat/openplatform/identity${s}`),{method:"GET",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.openid||!a.appId?{error:{message:"invalid_wechat_identity_response",status:502}}:{data:a}}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async getAlipayOpenPlatformIdentity(t){try{let e={};if(this.storage){let o=await this.storage.get(d);o!=null&&(e.Authorization=`Bearer ${o}`)}let s=t?.trim()?`?applicationCode=${encodeURIComponent(t.trim())}`:"",i=await this.fetchImpl(this.url(`alipay/openplatform/identity${s}`),{method:"GET",credentials:this.credentials,...Object.keys(e).length?{headers:e}:{}}),n=await i.text();if(!i.ok)return{error:{message:n||i.statusText,status:i.status}};let a=n?JSON.parse(n):null;return!a?.openid||!a.appId?{error:{message:"invalid_alipay_identity_response",status:502}}:{data:a}}catch(e){return{error:{message:e instanceof Error?e.message:String(e),status:0}}}}async postJson(t,e){try{let s=await this.fetchImpl(this.url(t),{method:"POST",headers:{"Content-Type":"application/json"},credentials:this.credentials,body:JSON.stringify(e)}),i=await s.text();if(!s.ok)return{error:{message:i||s.statusText,status:s.status}};let n=i?JSON.parse(i):void 0;return{data:n?.data??n??void 0,response:s}}catch(s){return{error:{message:s instanceof Error?s.message:String(s),status:0}}}}};var W=class{constructor(t,e,s){this.storage=t,this.customFetch=e,this.handleUnauthorized=s}async fetch(t,e){return await this.customFetch(t,e)}async fetchWithAuth(t,e){let s=await this.storage.get(d),i=new f(e?.headers);s&&i.set("Authorization",`Bearer ${s}`);let n=e?.method||"GET";if((n==="POST"||n==="PUT"||n==="PATCH")&&e?.body){let o=i.get("Content-Type");(!o||o.includes("text/plain"))&&i.set("Content-Type","application/json")}let a=await this.customFetch(t,{...e,headers:i});if(a.status===401)throw this.handleUnauthorized(),new Error("\u672A\u767B\u5F55");return a}};var X="/storage",Q=X+"/generateUploadUrl",G=class{constructor(t,e){this.baseUrl=t,this.http=e}async uploadFile(t){let e=await this.http.fetch(this.baseUrl+Q,{method:"POST",body:{fileName:t.name||t.fileName,fileSize:t.size||t.fileSize,fileType:t.type||t.fileType}}),{url:s}=await e.json();if(!s)throw new Error("\u83B7\u53D6\u4E0A\u4F20URL\u5931\u8D25");let i=await this.http.fetch(s,{method:"PUT",body:t,headers:new f({"Content-Type":t.type||t.fileType||"application/octet-stream"})}),{url:n}=await i.json();return{url:n.split("?")[0]}}};var Z=class extends Error{constructor(r){super(r.message),this.name="PostgrestError",this.details=r.details,this.hint=r.hint,this.code=r.code}},tt=class{constructor(r){var t,e,s;this.shouldThrowOnError=!1,this.method=r.method,this.url=r.url,this.headers=new f(r.headers),this.schema=r.schema,this.body=r.body,this.shouldThrowOnError=(t=r.shouldThrowOnError)!==null&&t!==void 0?t:!1,this.signal=r.signal,this.isMaybeSingle=(e=r.isMaybeSingle)!==null&&e!==void 0?e:!1,this.urlLengthLimit=(s=r.urlLengthLimit)!==null&&s!==void 0?s:8e3,r.fetch?this.fetch=r.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(r,t){return this.headers=new f(this.headers),this.headers.set(r,t),this}then(r,t){var e=this;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 s=this.fetch,i=s(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async n=>{let a=null,o=null,h=null,c=n.status,l=n.statusText;if(n.ok){var u,p;if(e.method!=="HEAD"){var g;let y=await n.text();y===""||(e.headers.get("Accept")==="text/csv"||e.headers.get("Accept")&&(!((g=e.headers.get("Accept"))===null||g===void 0)&&g.includes("application/vnd.pgrst.plan+text"))?o=y:o=JSON.parse(y))}let m=(u=e.headers.get("Prefer"))===null||u===void 0?void 0:u.match(/count=(exact|planned|estimated)/),b=(p=n.headers.get("content-range"))===null||p===void 0?void 0:p.split("/");m&&b&&b.length>1&&(h=parseInt(b[1])),e.isMaybeSingle&&Array.isArray(o)&&(o.length>1?(a={code:"PGRST116",details:`Results contain ${o.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},o=null,h=null,c=406,l="Not Acceptable"):o.length===1?o=o[0]:o=null)}else{let m=await n.text();try{a=JSON.parse(m),Array.isArray(a)&&n.status===404&&(o=[],a=null,c=200,l="OK")}catch{n.status===404&&m===""?(c=204,l="No Content"):a={message:m}}if(a&&e.shouldThrowOnError)throw new Z(a)}return{error:a,data:o,count:h,status:c,statusText:l}});return this.shouldThrowOnError||(i=i.catch(n=>{var a;let o="",h="",c="",l=n?.cause;if(l){var u,p,g,m;let z=(u=l?.message)!==null&&u!==void 0?u:"",_=(p=l?.code)!==null&&p!==void 0?p:"";o=`${(g=n?.name)!==null&&g!==void 0?g:"FetchError"}: ${n?.message}`,o+=`
2
2
 
3
- Caused by: ${(m=h?.name)!==null&&m!==void 0?m:"Error"}: ${z}`,_&&(o+=` (${_})`),h?.stack&&(o+=`
4
- ${h.stack}`)}else{var b;o=(b=n?.stack)!==null&&b!==void 0?b:""}let y=this.url.toString().length;return n?.name==="AbortError"||n?.code==="ABORT_ERR"?(c="",l="Request was aborted (timeout or manual cancellation)",y>this.urlLengthLimit&&(l+=`. Note: Your request URL is ${y} characters, which may exceed server limits. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [many IDs])), consider using an RPC function to pass values server-side.`)):(h?.name==="HeadersOverflowError"||h?.code==="UND_ERR_HEADERS_OVERFLOW")&&(c="",l="HTTP headers exceeded server limits (typically 16KB)",y>this.urlLengthLimit&&(l+=`. Your request URL is ${y} characters. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [200+ IDs])), consider using an RPC function instead.`)),{error:{message:`${(a=n?.name)!==null&&a!==void 0?a:"FetchError"}: ${n?.message}`,details:o,hint:l,code:c},data:null,count:null,status:0,statusText:""}})),i.then(r,t)}returns(){return this}overrideTypes(){return this}},et=class extends tt{select(r){let t=!1,e=(r??"*").split("").map(s=>/\s/.test(s)&&!t?"":(s==='"'&&(t=!t),s)).join("");return this.url.searchParams.set("select",e),this.headers.append("Prefer","return=representation"),this}order(r,{ascending:t=!0,nullsFirst:e,foreignTable:s,referencedTable:i=s}={}){let n=i?`${i}.order`:"order",a=this.url.searchParams.get(n);return this.url.searchParams.set(n,`${a?`${a},`:""}${r}.${t?"asc":"desc"}${e===void 0?"":e?".nullsfirst":".nullslast"}`),this}limit(r,{foreignTable:t,referencedTable:e=t}={}){let s=typeof e>"u"?"limit":`${e}.limit`;return this.url.searchParams.set(s,`${r}`),this}range(r,t,{foreignTable:e,referencedTable:s=e}={}){let i=typeof s>"u"?"offset":`${s}.offset`,n=typeof s>"u"?"limit":`${s}.limit`;return this.url.searchParams.set(i,`${r}`),this.url.searchParams.set(n,`${t-r+1}`),this}abortSignal(r){return this.signal=r,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return 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:r=!1,verbose:t=!1,settings:e=!1,buffers:s=!1,wal:i=!1,format:n="text"}={}){var a;let o=[r?"analyze":null,t?"verbose":null,e?"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+${n}; for="${l}"; options=${o};`),n==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(r){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${r}`),this}},q=new RegExp("[,()]"),L=class extends et{eq(r,t){return this.url.searchParams.append(r,`eq.${t}`),this}neq(r,t){return this.url.searchParams.append(r,`neq.${t}`),this}gt(r,t){return this.url.searchParams.append(r,`gt.${t}`),this}gte(r,t){return this.url.searchParams.append(r,`gte.${t}`),this}lt(r,t){return this.url.searchParams.append(r,`lt.${t}`),this}lte(r,t){return this.url.searchParams.append(r,`lte.${t}`),this}like(r,t){return this.url.searchParams.append(r,`like.${t}`),this}likeAllOf(r,t){return this.url.searchParams.append(r,`like(all).{${t.join(",")}}`),this}likeAnyOf(r,t){return this.url.searchParams.append(r,`like(any).{${t.join(",")}}`),this}ilike(r,t){return this.url.searchParams.append(r,`ilike.${t}`),this}ilikeAllOf(r,t){return this.url.searchParams.append(r,`ilike(all).{${t.join(",")}}`),this}ilikeAnyOf(r,t){return this.url.searchParams.append(r,`ilike(any).{${t.join(",")}}`),this}regexMatch(r,t){return this.url.searchParams.append(r,`match.${t}`),this}regexIMatch(r,t){return this.url.searchParams.append(r,`imatch.${t}`),this}is(r,t){return this.url.searchParams.append(r,`is.${t}`),this}isDistinct(r,t){return this.url.searchParams.append(r,`isdistinct.${t}`),this}in(r,t){let e=Array.from(new Set(t)).map(s=>typeof s=="string"&&q.test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(r,`in.(${e})`),this}notIn(r,t){let e=Array.from(new Set(t)).map(s=>typeof s=="string"&&q.test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(r,`not.in.(${e})`),this}contains(r,t){return typeof t=="string"?this.url.searchParams.append(r,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(r,`cs.{${t.join(",")}}`):this.url.searchParams.append(r,`cs.${JSON.stringify(t)}`),this}containedBy(r,t){return typeof t=="string"?this.url.searchParams.append(r,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(r,`cd.{${t.join(",")}}`):this.url.searchParams.append(r,`cd.${JSON.stringify(t)}`),this}rangeGt(r,t){return this.url.searchParams.append(r,`sr.${t}`),this}rangeGte(r,t){return this.url.searchParams.append(r,`nxl.${t}`),this}rangeLt(r,t){return this.url.searchParams.append(r,`sl.${t}`),this}rangeLte(r,t){return this.url.searchParams.append(r,`nxr.${t}`),this}rangeAdjacent(r,t){return this.url.searchParams.append(r,`adj.${t}`),this}overlaps(r,t){return typeof t=="string"?this.url.searchParams.append(r,`ov.${t}`):this.url.searchParams.append(r,`ov.{${t.join(",")}}`),this}textSearch(r,t,{config:e,type:s}={}){let i="";s==="plain"?i="pl":s==="phrase"?i="ph":s==="websearch"&&(i="w");let n=e===void 0?"":`(${e})`;return this.url.searchParams.append(r,`${i}fts${n}.${t}`),this}match(r){return Object.entries(r).filter(([t,e])=>e!==void 0).forEach(([t,e])=>{this.url.searchParams.append(t,`eq.${e}`)}),this}not(r,t,e){return this.url.searchParams.append(r,`not.${t}.${e}`),this}or(r,{foreignTable:t,referencedTable:e=t}={}){let s=e?`${e}.or`:"or";return this.url.searchParams.append(s,`(${r})`),this}filter(r,t,e){return this.url.searchParams.append(r,`${t}.${e}`),this}},st=class{constructor(r,{headers:t={},schema:e,fetch:s,urlLengthLimit:i=8e3}){this.url=r,this.headers=new f(t),this.schema=e,this.fetch=s,this.urlLengthLimit=i}cloneRequestState(){return{url:new S(this.url.toString()),headers:new f(this.headers)}}select(r,t){let{head:e=!1,count:s}=t??{},i=e?"HEAD":"GET",n=!1,a=(r??"*").split("").map(c=>/\s/.test(c)&&!n?"":(c==='"'&&(n=!n),c)).join(""),{url:o,headers:l}=this.cloneRequestState();return o.searchParams.set("select",a),s&&l.append("Prefer",`count=${s}`),new L({method:i,url:o,headers:l,schema:this.schema,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}insert(r,{count:t,defaultToNull:e=!0}={}){var s;let i="POST",{url:n,headers:a}=this.cloneRequestState();if(t&&a.append("Prefer",`count=${t}`),e||a.append("Prefer","missing=default"),Array.isArray(r)){let o=r.reduce((l,c)=>l.concat(Object.keys(c)),[]);if(o.length>0){let l=[...new Set(o)].map(c=>`"${c}"`);n.searchParams.set("columns",l.join(","))}}return new L({method:i,url:n,headers:a,schema:this.schema,body:r,fetch:(s=this.fetch)!==null&&s!==void 0?s:fetch,urlLengthLimit:this.urlLengthLimit})}upsert(r,{onConflict:t,ignoreDuplicates:e=!1,count:s,defaultToNull:i=!0}={}){var n;let a="POST",{url:o,headers:l}=this.cloneRequestState();if(l.append("Prefer",`resolution=${e?"ignore":"merge"}-duplicates`),t!==void 0&&o.searchParams.set("on_conflict",t),s&&l.append("Prefer",`count=${s}`),i||l.append("Prefer","missing=default"),Array.isArray(r)){let c=r.reduce((h,p)=>h.concat(Object.keys(p)),[]);if(c.length>0){let h=[...new Set(c)].map(p=>`"${p}"`);o.searchParams.set("columns",h.join(","))}}return new L({method:a,url:o,headers:l,schema:this.schema,body:r,fetch:(n=this.fetch)!==null&&n!==void 0?n:fetch,urlLengthLimit:this.urlLengthLimit})}update(r,{count:t}={}){var e;let s="PATCH",{url:i,headers:n}=this.cloneRequestState();return t&&n.append("Prefer",`count=${t}`),new L({method:s,url:i,headers:n,schema:this.schema,body:r,fetch:(e=this.fetch)!==null&&e!==void 0?e:fetch,urlLengthLimit:this.urlLengthLimit})}delete({count:r}={}){var t;let e="DELETE",{url:s,headers:i}=this.cloneRequestState();return r&&i.append("Prefer",`count=${r}`),new L({method:e,url:s,headers:i,schema:this.schema,fetch:(t=this.fetch)!==null&&t!==void 0?t:fetch,urlLengthLimit:this.urlLengthLimit})}};function x(r){"@babel/helpers - typeof";return x=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},x(r)}function rt(r,t){if(x(r)!="object"||!r)return r;var e=r[Symbol.toPrimitive];if(e!==void 0){var s=e.call(r,t||"default");if(x(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(r)}function it(r){var t=rt(r,"string");return x(t)=="symbol"?t:t+""}function nt(r,t,e){return(t=it(t))in r?Object.defineProperty(r,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):r[t]=e,r}function F(r,t){var e=Object.keys(r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(r);t&&(s=s.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),e.push.apply(e,s)}return e}function E(r){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?arguments[t]:{};t%2?F(Object(e),!0).forEach(function(s){nt(r,s,e[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(e)):F(Object(e)).forEach(function(s){Object.defineProperty(r,s,Object.getOwnPropertyDescriptor(e,s))})}return r}var M=class J{constructor(t,{headers:e={},schema:s,fetch:i,timeout:n,urlLengthLimit:a=8e3}={}){this.url=t,this.headers=new f(e),this.schemaName=s,this.urlLengthLimit=a;let o=i??globalThis.fetch;n!==void 0&&n>0?this.fetch=(l,c)=>{let h=new N,p=setTimeout(()=>h.abort(),n),d=c?.signal;if(d){if(d.aborted)return clearTimeout(p),o(l,c);let g=()=>{clearTimeout(p),h.abort()};return d.addEventListener("abort",g,{once:!0}),o(l,E(E({},c),{},{signal:h.signal})).finally(()=>{clearTimeout(p),d.removeEventListener("abort",g)})}return o(l,E(E({},c),{},{signal:h.signal})).finally(()=>clearTimeout(p))}:this.fetch=o}from(t){if(!t||typeof t!="string"||t.trim()==="")throw new Error("Invalid relation name: relation must be a non-empty string.");return new st(new S(`${this.url}/${t}`),{headers:new f(this.headers),schema:this.schemaName,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}schema(t){return new J(this.url,{headers:this.headers,schema:t,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}rpc(t,e={},{head:s=!1,get:i=!1,count:n}={}){var a;let o,l=new S(`${this.url}/rpc/${t}`),c,h=g=>g!==null&&typeof g=="object"&&(!Array.isArray(g)||g.some(h)),p=s&&Object.values(e).some(h);p?(o="POST",c=e):s||i?(o=s?"HEAD":"GET",Object.entries(e).filter(([g,m])=>m!==void 0).map(([g,m])=>[g,Array.isArray(m)?`{${m.join(",")}}`:`${m}`]).forEach(([g,m])=>{l.searchParams.append(g,m)})):(o="POST",c=e);let d=new f(this.headers);return p?d.set("Prefer",n?`count=${n},return=minimal`:"return=minimal"):n&&d.set("Prefer",`count=${n}`),new L({method:o,url:l,headers:d,schema:this.schemaName,body:c,fetch:(a=this.fetch)!==null&&a!==void 0?a:fetch,urlLengthLimit:this.urlLengthLimit})}};var at="/entities",Mt=(r,t)=>new M(r+at,{fetch:t.fetchWithAuth.bind(t)});var B=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=`
3
+ Caused by: ${(m=l?.name)!==null&&m!==void 0?m:"Error"}: ${z}`,_&&(o+=` (${_})`),l?.stack&&(o+=`
4
+ ${l.stack}`)}else{var b;o=(b=n?.stack)!==null&&b!==void 0?b:""}let y=this.url.toString().length;return n?.name==="AbortError"||n?.code==="ABORT_ERR"?(c="",h="Request was aborted (timeout or manual cancellation)",y>this.urlLengthLimit&&(h+=`. Note: Your request URL is ${y} characters, which may exceed server limits. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [many IDs])), consider using an RPC function to pass values server-side.`)):(l?.name==="HeadersOverflowError"||l?.code==="UND_ERR_HEADERS_OVERFLOW")&&(c="",h="HTTP headers exceeded server limits (typically 16KB)",y>this.urlLengthLimit&&(h+=`. Your request URL is ${y} characters. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [200+ IDs])), consider using an RPC function instead.`)),{error:{message:`${(a=n?.name)!==null&&a!==void 0?a:"FetchError"}: ${n?.message}`,details:o,hint:h,code:c},data:null,count:null,status:0,statusText:""}})),i.then(r,t)}returns(){return this}overrideTypes(){return this}},et=class extends tt{select(r){let t=!1,e=(r??"*").split("").map(s=>/\s/.test(s)&&!t?"":(s==='"'&&(t=!t),s)).join("");return this.url.searchParams.set("select",e),this.headers.append("Prefer","return=representation"),this}order(r,{ascending:t=!0,nullsFirst:e,foreignTable:s,referencedTable:i=s}={}){let n=i?`${i}.order`:"order",a=this.url.searchParams.get(n);return this.url.searchParams.set(n,`${a?`${a},`:""}${r}.${t?"asc":"desc"}${e===void 0?"":e?".nullsfirst":".nullslast"}`),this}limit(r,{foreignTable:t,referencedTable:e=t}={}){let s=typeof e>"u"?"limit":`${e}.limit`;return this.url.searchParams.set(s,`${r}`),this}range(r,t,{foreignTable:e,referencedTable:s=e}={}){let i=typeof s>"u"?"offset":`${s}.offset`,n=typeof s>"u"?"limit":`${s}.limit`;return this.url.searchParams.set(i,`${r}`),this.url.searchParams.set(n,`${t-r+1}`),this}abortSignal(r){return this.signal=r,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return 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:r=!1,verbose:t=!1,settings:e=!1,buffers:s=!1,wal:i=!1,format:n="text"}={}){var a;let o=[r?"analyze":null,t?"verbose":null,e?"settings":null,s?"buffers":null,i?"wal":null].filter(Boolean).join("|"),h=(a=this.headers.get("Accept"))!==null&&a!==void 0?a:"application/json";return this.headers.set("Accept",`application/vnd.pgrst.plan+${n}; for="${h}"; options=${o};`),n==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(r){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${r}`),this}},q=new RegExp("[,()]"),x=class extends et{eq(r,t){return this.url.searchParams.append(r,`eq.${t}`),this}neq(r,t){return this.url.searchParams.append(r,`neq.${t}`),this}gt(r,t){return this.url.searchParams.append(r,`gt.${t}`),this}gte(r,t){return this.url.searchParams.append(r,`gte.${t}`),this}lt(r,t){return this.url.searchParams.append(r,`lt.${t}`),this}lte(r,t){return this.url.searchParams.append(r,`lte.${t}`),this}like(r,t){return this.url.searchParams.append(r,`like.${t}`),this}likeAllOf(r,t){return this.url.searchParams.append(r,`like(all).{${t.join(",")}}`),this}likeAnyOf(r,t){return this.url.searchParams.append(r,`like(any).{${t.join(",")}}`),this}ilike(r,t){return this.url.searchParams.append(r,`ilike.${t}`),this}ilikeAllOf(r,t){return this.url.searchParams.append(r,`ilike(all).{${t.join(",")}}`),this}ilikeAnyOf(r,t){return this.url.searchParams.append(r,`ilike(any).{${t.join(",")}}`),this}regexMatch(r,t){return this.url.searchParams.append(r,`match.${t}`),this}regexIMatch(r,t){return this.url.searchParams.append(r,`imatch.${t}`),this}is(r,t){return this.url.searchParams.append(r,`is.${t}`),this}isDistinct(r,t){return this.url.searchParams.append(r,`isdistinct.${t}`),this}in(r,t){let e=Array.from(new Set(t)).map(s=>typeof s=="string"&&q.test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(r,`in.(${e})`),this}notIn(r,t){let e=Array.from(new Set(t)).map(s=>typeof s=="string"&&q.test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(r,`not.in.(${e})`),this}contains(r,t){return typeof t=="string"?this.url.searchParams.append(r,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(r,`cs.{${t.join(",")}}`):this.url.searchParams.append(r,`cs.${JSON.stringify(t)}`),this}containedBy(r,t){return typeof t=="string"?this.url.searchParams.append(r,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(r,`cd.{${t.join(",")}}`):this.url.searchParams.append(r,`cd.${JSON.stringify(t)}`),this}rangeGt(r,t){return this.url.searchParams.append(r,`sr.${t}`),this}rangeGte(r,t){return this.url.searchParams.append(r,`nxl.${t}`),this}rangeLt(r,t){return this.url.searchParams.append(r,`sl.${t}`),this}rangeLte(r,t){return this.url.searchParams.append(r,`nxr.${t}`),this}rangeAdjacent(r,t){return this.url.searchParams.append(r,`adj.${t}`),this}overlaps(r,t){return typeof t=="string"?this.url.searchParams.append(r,`ov.${t}`):this.url.searchParams.append(r,`ov.{${t.join(",")}}`),this}textSearch(r,t,{config:e,type:s}={}){let i="";s==="plain"?i="pl":s==="phrase"?i="ph":s==="websearch"&&(i="w");let n=e===void 0?"":`(${e})`;return this.url.searchParams.append(r,`${i}fts${n}.${t}`),this}match(r){return Object.entries(r).filter(([t,e])=>e!==void 0).forEach(([t,e])=>{this.url.searchParams.append(t,`eq.${e}`)}),this}not(r,t,e){return this.url.searchParams.append(r,`not.${t}.${e}`),this}or(r,{foreignTable:t,referencedTable:e=t}={}){let s=e?`${e}.or`:"or";return this.url.searchParams.append(s,`(${r})`),this}filter(r,t,e){return this.url.searchParams.append(r,`${t}.${e}`),this}},st=class{constructor(r,{headers:t={},schema:e,fetch:s,urlLengthLimit:i=8e3}){this.url=r,this.headers=new f(t),this.schema=e,this.fetch=s,this.urlLengthLimit=i}cloneRequestState(){return{url:new S(this.url.toString()),headers:new f(this.headers)}}select(r,t){let{head:e=!1,count:s}=t??{},i=e?"HEAD":"GET",n=!1,a=(r??"*").split("").map(c=>/\s/.test(c)&&!n?"":(c==='"'&&(n=!n),c)).join(""),{url:o,headers:h}=this.cloneRequestState();return o.searchParams.set("select",a),s&&h.append("Prefer",`count=${s}`),new x({method:i,url:o,headers:h,schema:this.schema,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}insert(r,{count:t,defaultToNull:e=!0}={}){var s;let i="POST",{url:n,headers:a}=this.cloneRequestState();if(t&&a.append("Prefer",`count=${t}`),e||a.append("Prefer","missing=default"),Array.isArray(r)){let o=r.reduce((h,c)=>h.concat(Object.keys(c)),[]);if(o.length>0){let h=[...new Set(o)].map(c=>`"${c}"`);n.searchParams.set("columns",h.join(","))}}return new x({method:i,url:n,headers:a,schema:this.schema,body:r,fetch:(s=this.fetch)!==null&&s!==void 0?s:fetch,urlLengthLimit:this.urlLengthLimit})}upsert(r,{onConflict:t,ignoreDuplicates:e=!1,count:s,defaultToNull:i=!0}={}){var n;let a="POST",{url:o,headers:h}=this.cloneRequestState();if(h.append("Prefer",`resolution=${e?"ignore":"merge"}-duplicates`),t!==void 0&&o.searchParams.set("on_conflict",t),s&&h.append("Prefer",`count=${s}`),i||h.append("Prefer","missing=default"),Array.isArray(r)){let c=r.reduce((l,u)=>l.concat(Object.keys(u)),[]);if(c.length>0){let l=[...new Set(c)].map(u=>`"${u}"`);o.searchParams.set("columns",l.join(","))}}return new x({method:a,url:o,headers:h,schema:this.schema,body:r,fetch:(n=this.fetch)!==null&&n!==void 0?n:fetch,urlLengthLimit:this.urlLengthLimit})}update(r,{count:t}={}){var e;let s="PATCH",{url:i,headers:n}=this.cloneRequestState();return t&&n.append("Prefer",`count=${t}`),new x({method:s,url:i,headers:n,schema:this.schema,body:r,fetch:(e=this.fetch)!==null&&e!==void 0?e:fetch,urlLengthLimit:this.urlLengthLimit})}delete({count:r}={}){var t;let e="DELETE",{url:s,headers:i}=this.cloneRequestState();return r&&i.append("Prefer",`count=${r}`),new x({method:e,url:s,headers:i,schema:this.schema,fetch:(t=this.fetch)!==null&&t!==void 0?t:fetch,urlLengthLimit:this.urlLengthLimit})}};function L(r){"@babel/helpers - typeof";return L=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},L(r)}function rt(r,t){if(L(r)!="object"||!r)return r;var e=r[Symbol.toPrimitive];if(e!==void 0){var s=e.call(r,t||"default");if(L(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(r)}function it(r){var t=rt(r,"string");return L(t)=="symbol"?t:t+""}function nt(r,t,e){return(t=it(t))in r?Object.defineProperty(r,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):r[t]=e,r}function F(r,t){var e=Object.keys(r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(r);t&&(s=s.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),e.push.apply(e,s)}return e}function E(r){for(var t=1;t<arguments.length;t++){var e=arguments[t]!=null?arguments[t]:{};t%2?F(Object(e),!0).forEach(function(s){nt(r,s,e[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(e)):F(Object(e)).forEach(function(s){Object.defineProperty(r,s,Object.getOwnPropertyDescriptor(e,s))})}return r}var M=class J{constructor(t,{headers:e={},schema:s,fetch:i,timeout:n,urlLengthLimit:a=8e3}={}){this.url=t,this.headers=new f(e),this.schemaName=s,this.urlLengthLimit=a;let o=i??globalThis.fetch;n!==void 0&&n>0?this.fetch=(h,c)=>{let l=new N,u=setTimeout(()=>l.abort(),n),p=c?.signal;if(p){if(p.aborted)return clearTimeout(u),o(h,c);let g=()=>{clearTimeout(u),l.abort()};return p.addEventListener("abort",g,{once:!0}),o(h,E(E({},c),{},{signal:l.signal})).finally(()=>{clearTimeout(u),p.removeEventListener("abort",g)})}return o(h,E(E({},c),{},{signal:l.signal})).finally(()=>clearTimeout(u))}:this.fetch=o}from(t){if(!t||typeof t!="string"||t.trim()==="")throw new Error("Invalid relation name: relation must be a non-empty string.");return new st(new S(`${this.url}/${t}`),{headers:new f(this.headers),schema:this.schemaName,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}schema(t){return new J(this.url,{headers:this.headers,schema:t,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}rpc(t,e={},{head:s=!1,get:i=!1,count:n}={}){var a;let o,h=new S(`${this.url}/rpc/${t}`),c,l=g=>g!==null&&typeof g=="object"&&(!Array.isArray(g)||g.some(l)),u=s&&Object.values(e).some(l);u?(o="POST",c=e):s||i?(o=s?"HEAD":"GET",Object.entries(e).filter(([g,m])=>m!==void 0).map(([g,m])=>[g,Array.isArray(m)?`{${m.join(",")}}`:`${m}`]).forEach(([g,m])=>{h.searchParams.append(g,m)})):(o="POST",c=e);let p=new f(this.headers);return u?p.set("Prefer",n?`count=${n},return=minimal`:"return=minimal"):n&&p.set("Prefer",`count=${n}`),new x({method:o,url:h,headers:p,schema:this.schemaName,body:c,fetch:(a=this.fetch)!==null&&a!==void 0?a:fetch,urlLengthLimit:this.urlLengthLimit})}};var at="/entities",Mt=(r,t)=>new M(r+at,{fetch:t.fetchWithAuth.bind(t)});var B=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=`
5
5
  .__nvwa-inspector-overlay {
6
6
  position: absolute;
7
7
  pointer-events: none;
@@ -33,4 +33,4 @@ ${h.stack}`)}else{var b;o=(b=n?.stack)!==null&&b!==void 0?b:""}let y=this.url.to
33
33
  max-width: 400px;
34
34
  word-break: break-all;
35
35
  }
36
- `,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 s=e.getBoundingClientRect(),i=window.scrollX||window.pageXOffset,n=window.scrollY||window.pageYOffset;s.width>0&&s.height>0?(t.style.left=`${s.left+i}px`,t.style.top=`${s.top+n}px`,t.style.width=`${s.width}px`,t.style.height=`${s.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 o=this.createTooltip();e?o.textContent=e:o.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,o.style.display="block";let l=t.getBoundingClientRect();o.style.left=`${l.left+window.scrollX}px`,o.style.top=`${l.top+window.scrollY-o.offsetHeight-8}px`,l.top<o.offsetHeight+8&&(o.style.top=`${l.bottom+window.scrollY+8}px`);return}this.hoverOverlay&&(this.removeOverlay(this.hoverOverlay),this.hoverOverlay=null);let s=this.createOverlay("hover");this.updateOverlayPosition(s,t),this.hoverOverlay=s,this.hoverElement=t;let i=()=>{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=i,window.addEventListener("scroll",i,!0),window.addEventListener("resize",i);let n=this.createTooltip();e?n.textContent=e:n.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,n.style.display="block";let a=t.getBoundingClientRect();n.style.left=`${a.left+window.scrollX}px`,n.style.top=`${a.top+window.scrollY-n.offsetHeight-8}px`,a.top<n.offsetHeight+8&&(n.style.top=`${a.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 s=this.createOverlay("selected");this.updateOverlayPosition(s,t),this.selectedOverlay=s,this.selectedElement=t;let i=()=>{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=i,window.addEventListener("scroll",i,!0),window.addEventListener("resize",i)}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 zt(r="root"){if(typeof document>"u")return null;let t=document.getElementById(r)||document.body;if(!t)return null;let e=t.querySelector("[data-source-location]");if(e){let s=e.getAttribute("data-source-location");if(s)return s}if(t.firstElementChild){let i=t.firstElementChild.getAttribute("data-source-location");if(i)return i}return null}function Kt(r){let t=r;if(typeof t.kind=="string")return t;if(typeof t.tradeNO=="string")return{kind:"alipay_miniprogram",tradeNO:t.tradeNO};if(typeof t.clientSecret=="string")return{kind:"stripe_client_secret",clientSecret:t.clientSecret};if(typeof t.redirectUrl=="string")return{kind:"redirect_url",redirectUrl:t.redirectUrl};if(typeof t.formHtml=="string")return{kind:"alipay_page",formHtml:t.formHtml};if(typeof t.codeUrl=="string")return{kind:"wechat_native_qr",codeUrl:t.codeUrl};let e=t.jsapiPayParams??t;return typeof e.timeStamp=="string"&&typeof e.nonceStr=="string"&&typeof e.package=="string"&&typeof e.paySign=="string"&&typeof e.appId=="string"?{kind:"wechat_jsapi",mode:"jsapi",jsapiPayParams:{appId:e.appId,timeStamp:e.timeStamp,nonceStr:e.nonceStr,package:e.package,signType:e.signType??"RSA",paySign:e.paySign}}:null}function Vt(r,t,e){return t.requestPayment(r.payParams,e)}function ot(r,t){let e=r.replace(/\/$/,""),s=t.startsWith("/")?t:`/${t}`;return`${e}${s}`}var C=class{constructor(t,e){this.cache=null;this.baseUrl=t.replace(/\/$/,""),this.fetchImpl=e}get(){return this.cache?.snapshot??null}getIntegrationItem(t){let e=this.cache?.snapshot;return e?e.integrations.find(i=>i.integrationType===t)??null:null}getEnabledProviders(t){let e=this.getIntegrationItem(t);return!e?.enabled||!e.providers?.length?[]:e.providers.filter(s=>s.enabled)}clear(){this.cache=null}async load(t){let e=t.locale?.trim().toLowerCase()==="en"?"en":"zh",s=`${t.applicationCode} ${t.platformCode} ${e}`;if(!t.force&&this.cache?.key===s)return this.cache.snapshot;let n=`/nvwa/integration-snapshot?${new URLSearchParams({applicationCode:t.applicationCode,platformCode:t.platformCode,locale:e}).toString()}`,a=ot(this.baseUrl,n),o=await this.fetchImpl(a,{credentials:"include",headers:{Accept:"application/json"}});if(!o.ok){let c=await o.text();throw new Error(`integration-snapshot: ${o.status} ${c||o.statusText}`)}let l=await o.json();return this.cache={key:s,snapshot:l},l}};export{T as AuthClient,u as CURRENT_JWT_KEY,at as ENTITIES_BASE_PATH,X as FILE_STORAGE_BASE_PATH,Q as GENERATE_UPLOAD_URL_PATH,f as Headers,w as LOGIN_TOKEN_KEY,O as LOGIN_USER_PROFILE_KEY,j as NvwaEdgeFunctions,G as NvwaFileStorage,W as NvwaHttpClient,C as NvwaIntegrationSnapshot,B as OverlayManager,$ as Request,U as Response,H as SET_AUTH_TOKEN_HEADER,S as URL,Mt as createPostgrestClient,zt as getSourceLocationFromDOM,Kt as normalizePayParams,Vt as requestPaymentFromOrderResult};
36
+ `,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 s=e.getBoundingClientRect(),i=window.scrollX||window.pageXOffset,n=window.scrollY||window.pageYOffset;s.width>0&&s.height>0?(t.style.left=`${s.left+i}px`,t.style.top=`${s.top+n}px`,t.style.width=`${s.width}px`,t.style.height=`${s.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 o=this.createTooltip();e?o.textContent=e:o.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,o.style.display="block";let h=t.getBoundingClientRect();o.style.left=`${h.left+window.scrollX}px`,o.style.top=`${h.top+window.scrollY-o.offsetHeight-8}px`,h.top<o.offsetHeight+8&&(o.style.top=`${h.bottom+window.scrollY+8}px`);return}this.hoverOverlay&&(this.removeOverlay(this.hoverOverlay),this.hoverOverlay=null);let s=this.createOverlay("hover");this.updateOverlayPosition(s,t),this.hoverOverlay=s,this.hoverElement=t;let i=()=>{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=i,window.addEventListener("scroll",i,!0),window.addEventListener("resize",i);let n=this.createTooltip();e?n.textContent=e:n.textContent=`<${t.tagName.toLowerCase()}> (\u65E0 source location)`,n.style.display="block";let a=t.getBoundingClientRect();n.style.left=`${a.left+window.scrollX}px`,n.style.top=`${a.top+window.scrollY-n.offsetHeight-8}px`,a.top<n.offsetHeight+8&&(n.style.top=`${a.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 s=this.createOverlay("selected");this.updateOverlayPosition(s,t),this.selectedOverlay=s,this.selectedElement=t;let i=()=>{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=i,window.addEventListener("scroll",i,!0),window.addEventListener("resize",i)}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 zt(r="root"){if(typeof document>"u")return null;let t=document.getElementById(r)||document.body;if(!t)return null;let e=t.querySelector("[data-source-location]");if(e){let s=e.getAttribute("data-source-location");if(s)return s}if(t.firstElementChild){let i=t.firstElementChild.getAttribute("data-source-location");if(i)return i}return null}function Kt(r){let t=r;if(typeof t.kind=="string")return t;if(typeof t.tradeNO=="string")return{kind:"alipay_miniprogram",tradeNO:t.tradeNO};if(typeof t.clientSecret=="string")return{kind:"stripe_client_secret",clientSecret:t.clientSecret};if(typeof t.redirectUrl=="string")return{kind:"redirect_url",redirectUrl:t.redirectUrl};if(typeof t.formHtml=="string")return{kind:"alipay_page",formHtml:t.formHtml};if(typeof t.codeUrl=="string")return{kind:"wechat_native_qr",codeUrl:t.codeUrl};let e=t.jsapiPayParams??t;return typeof e.timeStamp=="string"&&typeof e.nonceStr=="string"&&typeof e.package=="string"&&typeof e.paySign=="string"&&typeof e.appId=="string"?{kind:"wechat_jsapi",mode:"jsapi",jsapiPayParams:{appId:e.appId,timeStamp:e.timeStamp,nonceStr:e.nonceStr,package:e.package,signType:e.signType??"RSA",paySign:e.paySign}}:null}function Vt(r,t,e){return t.requestPayment(r.payParams,e)}function ot(r,t){let e=r.replace(/\/$/,""),s=t.startsWith("/")?t:`/${t}`;return`${e}${s}`}var C=class{constructor(t,e,s){this.cache=null;this.baseUrl=t.replace(/\/$/,""),this.fetchImpl=e,this.context=s}get(){return this.cache?.snapshot??null}getIntegrationItem(t){let e=this.cache?.snapshot;return e?e.integrations.find(i=>i.integrationType===t)??null:null}getEnabledProviders(t){let e=this.getIntegrationItem(t);return!e?.enabled||!e.providers?.length?[]:e.providers.filter(s=>s.enabled)}clear(){this.cache=null}async load(t){let e=t??{},s=this.context.applicationCode.trim(),i=this.context.platformCode.trim();if(!s||!i)throw new Error("NvwaIntegrationSnapshot: applicationCode \u4E0E platformCode \u5728\u6784\u9020 IntegrationSnapshotContext \u65F6\u4E0D\u80FD\u4E3A\u7A7A");let a=this.context.locale?.trim().toLowerCase()==="en"?"en":"zh",o=`${s} ${i} ${a}`;if(!e.force&&this.cache?.key===o)return this.cache.snapshot;let c=`/nvwa/integration-snapshot?${new URLSearchParams({applicationCode:s,platformCode:i,locale:a}).toString()}`,l=ot(this.baseUrl,c),u=await this.fetchImpl(l,{credentials:"include",headers:{Accept:"application/json"}});if(!u.ok){let g=await u.text();throw new Error(`integration-snapshot: ${u.status} ${g||u.statusText}`)}let p=await u.json();return this.cache={key:o,snapshot:p},p}};export{T as AuthClient,d as CURRENT_JWT_KEY,at as ENTITIES_BASE_PATH,X as FILE_STORAGE_BASE_PATH,Q as GENERATE_UPLOAD_URL_PATH,f as Headers,w as LOGIN_TOKEN_KEY,O as LOGIN_USER_PROFILE_KEY,j as NvwaEdgeFunctions,G as NvwaFileStorage,W as NvwaHttpClient,C as NvwaIntegrationSnapshot,B as OverlayManager,A as Request,U as Response,H as SET_AUTH_TOKEN_HEADER,S as URL,Mt as createPostgrestClient,zt as getSourceLocationFromDOM,Kt as normalizePayParams,Vt as requestPaymentFromOrderResult};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nvwa-app/sdk-core",
3
- "version": "6.14.0",
3
+ "version": "6.15.0",
4
4
  "description": "NVWA跨端通用工具类核心接口",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",