@paynext/sdk 1.0.3 → 1.0.4
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.ts +7 -5
- package/dist/index.es.js +172 -55
- package/dist/index.umd.js +1 -1
- package/package.json +1 -2
- package/dist/_headers +0 -65
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { ApplePayOptions } from '@evervault/react';
|
|
2
|
-
import { GooglePayOptions } from '@evervault/react';
|
|
3
1
|
import { PayPalButtonStyle } from '@paypal/paypal-js';
|
|
4
2
|
|
|
5
3
|
export declare interface AttemptResult {
|
|
@@ -145,11 +143,11 @@ export declare type HTMLStyles = {
|
|
|
145
143
|
};
|
|
146
144
|
|
|
147
145
|
export declare interface IApplePayButtonStyles {
|
|
148
|
-
styles?: Partial<Pick<
|
|
146
|
+
styles?: Partial<Pick<any, 'type' | 'style' | 'padding' | 'borderRadius' | 'size'>>;
|
|
149
147
|
}
|
|
150
148
|
|
|
151
149
|
export declare interface IGooglePayButtonStyles {
|
|
152
|
-
styles?: Partial<Pick<
|
|
150
|
+
styles?: Partial<Pick<any, 'type' | 'color' | 'borderRadius' | 'size'>>;
|
|
153
151
|
}
|
|
154
152
|
|
|
155
153
|
export declare interface InputStyles {
|
|
@@ -357,9 +355,13 @@ declare enum PaymentStatus {
|
|
|
357
355
|
export declare class PayNextCheckout {
|
|
358
356
|
private cdnInstance;
|
|
359
357
|
private initPromise;
|
|
358
|
+
private isDestroyed;
|
|
359
|
+
private errorBoundary;
|
|
360
360
|
constructor();
|
|
361
|
+
setErrorHandler(handler: (error: Error) => void): void;
|
|
362
|
+
private handleError;
|
|
361
363
|
private initialize;
|
|
362
|
-
private
|
|
364
|
+
private assertReady;
|
|
363
365
|
mount(containerId: string, config: PayNextConfig): Promise<void>;
|
|
364
366
|
unmount(): Promise<void>;
|
|
365
367
|
static preload(envType: 'develop' | 'staging' | 'sandbox' | 'production'): Promise<void>;
|
package/dist/index.es.js
CHANGED
|
@@ -1,78 +1,195 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
const
|
|
5
|
-
let
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
1
|
+
var E = Object.defineProperty;
|
|
2
|
+
var x = (n, e, t) => e in n ? E(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
|
|
3
|
+
var a = (n, e, t) => x(n, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
+
const p = "https://cdn-sdk-dev.paynext.com/index.cdn.js", C = "https://cdn-sdk.paynext.com/index.cdn.js";
|
|
5
|
+
let c = null, l = null;
|
|
6
|
+
class r extends Error {
|
|
7
|
+
constructor(e, t = !0) {
|
|
8
|
+
super(e), this.retryable = t, this.name = "SDKLoadError";
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
const P = "PayNextSDK";
|
|
12
|
+
function w() {
|
|
13
|
+
return typeof window > "u" ? null : window[P];
|
|
14
|
+
}
|
|
15
|
+
function K(n) {
|
|
16
|
+
typeof window > "u" || (window[P] = n);
|
|
17
|
+
}
|
|
18
|
+
function g(n) {
|
|
19
|
+
return new Promise((e) => setTimeout(e, n));
|
|
20
|
+
}
|
|
21
|
+
async function S(n, e = 1) {
|
|
22
|
+
const o = (n?.toLowerCase()?.includes("develop") || n?.toLowerCase()?.includes("staging") ? "develop" : "production") === "develop" ? p : C;
|
|
23
|
+
try {
|
|
24
|
+
console.log(`[PayNext CDN] Loading SDK (attempt ${e}/3)...`);
|
|
25
|
+
const s = w();
|
|
26
|
+
if (s)
|
|
27
|
+
return console.log("[PayNext CDN] SDK already loaded"), s;
|
|
28
|
+
await new Promise((y, h) => {
|
|
29
|
+
if (document.querySelector(`script[src="${o}"]`)) {
|
|
30
|
+
console.log("[PayNext CDN] Script exists, waiting for SDK..."), y();
|
|
26
31
|
return;
|
|
27
32
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
const m = setTimeout(() => {
|
|
34
|
+
d(), h(new r("SDK script loading timeout", !0));
|
|
35
|
+
}, 1e4), i = document.createElement("script");
|
|
36
|
+
i.src = o, i.crossOrigin = "anonymous", i.async = !0, i.setAttribute("data-paynext-sdk", "true");
|
|
37
|
+
const d = () => {
|
|
38
|
+
clearTimeout(m), i.onload = null, i.onerror = null;
|
|
39
|
+
};
|
|
40
|
+
i.onload = () => {
|
|
41
|
+
console.log("[PayNext CDN] Script loaded successfully"), d(), y();
|
|
42
|
+
}, i.onerror = (f) => {
|
|
43
|
+
console.error("[PayNext CDN] Script load error:", f), d();
|
|
44
|
+
try {
|
|
45
|
+
i.parentNode && i.parentNode.removeChild(i);
|
|
46
|
+
} catch (N) {
|
|
47
|
+
console.warn("[PayNext CDN] Failed to remove script:", N);
|
|
48
|
+
}
|
|
49
|
+
h(new r("Failed to load SDK script from CDN", !0));
|
|
50
|
+
};
|
|
51
|
+
try {
|
|
52
|
+
document.head.appendChild(i);
|
|
53
|
+
} catch {
|
|
54
|
+
d(), h(new r("Failed to append script to document", !1));
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
const u = w();
|
|
58
|
+
if (!u)
|
|
59
|
+
throw new r("PayNextSDK not found in window after load", !0);
|
|
60
|
+
return console.log("[PayNext CDN] SDK loaded successfully"), u;
|
|
61
|
+
} catch (s) {
|
|
62
|
+
if ((s instanceof r ? s.retryable : !0) && e < 3)
|
|
63
|
+
return console.warn(`[PayNext CDN] Load attempt ${e} failed, retrying in 1000ms...`, s), await g(1e3 * e), S(n, e + 1);
|
|
64
|
+
throw console.error(`[PayNext CDN] Failed to load SDK after ${e} attempts:`, s), s;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async function D(n) {
|
|
68
|
+
if (l)
|
|
69
|
+
return console.log("[PayNext CDN] Returning cached SDK module"), l;
|
|
70
|
+
if (c)
|
|
71
|
+
return console.log("[PayNext CDN] Load already in progress, waiting..."), c;
|
|
72
|
+
if (typeof window > "u")
|
|
73
|
+
throw new r("PayNext SDK can only be loaded in browser environment", !1);
|
|
74
|
+
const e = w();
|
|
75
|
+
return e ? (console.log("[PayNext CDN] SDK already loaded in isolated namespace"), l = e, l) : (c = (async () => {
|
|
76
|
+
try {
|
|
77
|
+
const t = await S(n);
|
|
78
|
+
return l = t, K(t), t;
|
|
79
|
+
} catch (t) {
|
|
80
|
+
throw c = null, t;
|
|
81
|
+
}
|
|
82
|
+
})(), c);
|
|
33
83
|
}
|
|
34
|
-
class
|
|
84
|
+
class A {
|
|
35
85
|
constructor() {
|
|
36
|
-
|
|
37
|
-
|
|
86
|
+
a(this, "cdnInstance", null);
|
|
87
|
+
a(this, "initPromise", null);
|
|
88
|
+
a(this, "isDestroyed", !1);
|
|
89
|
+
a(this, "errorBoundary", null);
|
|
90
|
+
}
|
|
91
|
+
// set error handler
|
|
92
|
+
setErrorHandler(e) {
|
|
93
|
+
this.errorBoundary = e;
|
|
94
|
+
}
|
|
95
|
+
// handle error
|
|
96
|
+
handleError(e, t) {
|
|
97
|
+
const o = `[PayNext SDK Error - ${t}]: ${e.message}`;
|
|
98
|
+
if (console.error(o, e), this.errorBoundary)
|
|
99
|
+
try {
|
|
100
|
+
this.errorBoundary(e);
|
|
101
|
+
} catch (s) {
|
|
102
|
+
console.error("[PayNext SDK] Error in custom error handler:", s);
|
|
103
|
+
}
|
|
38
104
|
}
|
|
39
105
|
// initialize
|
|
40
106
|
async initialize(e) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
107
|
+
if (this.isDestroyed)
|
|
108
|
+
throw new r("Cannot initialize destroyed SDK instance", !1);
|
|
109
|
+
return this.initPromise ? this.initPromise : (this.initPromise = (async () => {
|
|
110
|
+
try {
|
|
111
|
+
const t = await D(e);
|
|
112
|
+
if (!t || !t.PayNextCheckout)
|
|
113
|
+
throw new r("PayNextCheckout not found in loaded SDK module", !1);
|
|
114
|
+
try {
|
|
115
|
+
this.cdnInstance = new t.PayNextCheckout();
|
|
116
|
+
} catch (o) {
|
|
117
|
+
throw new r(
|
|
118
|
+
`Failed to instantiate PayNextCheckout: ${o instanceof Error ? o.message : "Unknown error"}`,
|
|
119
|
+
!1
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
console.log("[PayNext SDK] Initialized successfully");
|
|
123
|
+
} catch (t) {
|
|
124
|
+
throw this.initPromise = null, t;
|
|
125
|
+
}
|
|
126
|
+
})(), this.initPromise);
|
|
48
127
|
}
|
|
49
|
-
//
|
|
50
|
-
|
|
128
|
+
// assert ready
|
|
129
|
+
assertReady() {
|
|
130
|
+
if (this.isDestroyed)
|
|
131
|
+
throw new r("SDK instance has been destroyed", !1);
|
|
51
132
|
if (!this.initPromise)
|
|
52
|
-
throw new
|
|
133
|
+
throw new r("SDK initialization not started", !1);
|
|
53
134
|
if (!this.cdnInstance)
|
|
54
|
-
throw new
|
|
135
|
+
throw new r("SDK instance not created", !1);
|
|
55
136
|
}
|
|
56
137
|
// mount
|
|
57
138
|
async mount(e, t) {
|
|
58
|
-
|
|
139
|
+
try {
|
|
140
|
+
if (!e || typeof e != "string")
|
|
141
|
+
throw new r("Invalid containerId provided", !1);
|
|
142
|
+
if (!t || !t.environment)
|
|
143
|
+
throw new r("Invalid config provided", !1);
|
|
144
|
+
if (!document.getElementById(e))
|
|
145
|
+
throw new r(`Container element with id "${e}" not found`, !1);
|
|
146
|
+
await this.initialize(t.environment), this.assertReady(), await this.cdnInstance.mount(e, t);
|
|
147
|
+
} catch (o) {
|
|
148
|
+
const s = o instanceof r ? o : new r(
|
|
149
|
+
o instanceof Error ? o.message : "Unknown mount error",
|
|
150
|
+
!0
|
|
151
|
+
);
|
|
152
|
+
throw this.handleError(s, "mount"), s;
|
|
153
|
+
}
|
|
59
154
|
}
|
|
60
155
|
// unmount
|
|
61
156
|
async unmount() {
|
|
62
|
-
|
|
63
|
-
|
|
157
|
+
try {
|
|
158
|
+
if (this.isDestroyed) {
|
|
159
|
+
console.warn("[PayNext SDK] Instance already destroyed");
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (!this.cdnInstance) {
|
|
163
|
+
console.warn("[PayNext SDK] No instance to unmount");
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
typeof this.cdnInstance.unmount == "function" && await this.cdnInstance.unmount();
|
|
168
|
+
} catch (e) {
|
|
169
|
+
const t = e instanceof Error ? e : new Error(String(e));
|
|
170
|
+
this.handleError(t, "unmount");
|
|
171
|
+
}
|
|
172
|
+
this.cdnInstance = null, this.initPromise = null;
|
|
173
|
+
} catch (e) {
|
|
174
|
+
const t = e instanceof Error ? e : new Error(String(e));
|
|
175
|
+
this.handleError(t, "unmount");
|
|
176
|
+
}
|
|
64
177
|
}
|
|
65
|
-
// preload
|
|
178
|
+
// preload SDK
|
|
66
179
|
static async preload(e) {
|
|
67
|
-
|
|
180
|
+
try {
|
|
181
|
+
await D(e), console.log("[PayNext SDK] Preload successful");
|
|
182
|
+
} catch (t) {
|
|
183
|
+
throw console.error("[PayNext SDK] Preload failed:", t), t;
|
|
184
|
+
}
|
|
68
185
|
}
|
|
69
186
|
}
|
|
70
|
-
const
|
|
71
|
-
preload:
|
|
187
|
+
const L = {
|
|
188
|
+
preload: A.preload
|
|
72
189
|
};
|
|
73
|
-
var
|
|
190
|
+
var R = /* @__PURE__ */ ((n) => (n.PAYPAL = "PAYPAL", n.APPLE_PAY = "APPLEPAY", n.GOOGLE_PAY = "GPAY", n.CARD = "CARD", n.VENMO = "VENMO", n.CASHAPP = "CASHAPP", n))(R || {});
|
|
74
191
|
export {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
192
|
+
A as PayNextCheckout,
|
|
193
|
+
L as PayNextSDK,
|
|
194
|
+
R as PaymentMethod
|
|
78
195
|
};
|
package/dist/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(r,s){typeof exports=="object"&&typeof module<"u"?s(exports):typeof define=="function"&&define.amd?define(["exports"],s):(r=typeof globalThis<"u"?globalThis:r||self,s(r["PayNext SDK"]={}))})(this,(function(r){"use strict";var T=Object.defineProperty;var _=(r,s,l)=>s in r?T(r,s,{enumerable:!0,configurable:!0,writable:!0,value:l}):r[s]=l;var y=(r,s,l)=>_(r,typeof s!="symbol"?s+"":s,l);const s="https://cdn-sdk-dev.paynext.com/index.cdn.js",l="https://cdn-sdk.paynext.com/index.cdn.js";let d=null,u=null;class o extends Error{constructor(e,t=!0){super(e),this.retryable=t,this.name="SDKLoadError"}}const S="PayNextSDK";function h(){return typeof window>"u"?null:window[S]}function K(n){typeof window>"u"||(window[S]=n)}function g(n){return new Promise(e=>setTimeout(e,n))}async function m(n,e=1){const i=(n?.toLowerCase()?.includes("develop")||n?.toLowerCase()?.includes("staging")?"develop":"production")==="develop"?s:l;try{console.log(`[PayNext CDN] Loading SDK (attempt ${e}/3)...`);const a=h();if(a)return console.log("[PayNext CDN] SDK already loaded"),a;await new Promise((D,P)=>{if(document.querySelector(`script[src="${i}"]`)){console.log("[PayNext CDN] Script exists, waiting for SDK..."),D();return}const A=setTimeout(()=>{f(),P(new o("SDK script loading timeout",!0))},1e4),c=document.createElement("script");c.src=i,c.crossOrigin="anonymous",c.async=!0,c.setAttribute("data-paynext-sdk","true");const f=()=>{clearTimeout(A),c.onload=null,c.onerror=null};c.onload=()=>{console.log("[PayNext CDN] Script loaded successfully"),f(),D()},c.onerror=x=>{console.error("[PayNext CDN] Script load error:",x),f();try{c.parentNode&&c.parentNode.removeChild(c)}catch(R){console.warn("[PayNext CDN] Failed to remove script:",R)}P(new o("Failed to load SDK script from CDN",!0))};try{document.head.appendChild(c)}catch{f(),P(new o("Failed to append script to document",!1))}});const w=h();if(!w)throw new o("PayNextSDK not found in window after load",!0);return console.log("[PayNext CDN] SDK loaded successfully"),w}catch(a){if((a instanceof o?a.retryable:!0)&&e<3)return console.warn(`[PayNext CDN] Load attempt ${e} failed, retrying in 1000ms...`,a),await g(1e3*e),m(n,e+1);throw console.error(`[PayNext CDN] Failed to load SDK after ${e} attempts:`,a),a}}async function N(n){if(u)return console.log("[PayNext CDN] Returning cached SDK module"),u;if(d)return console.log("[PayNext CDN] Load already in progress, waiting..."),d;if(typeof window>"u")throw new o("PayNext SDK can only be loaded in browser environment",!1);const e=h();return e?(console.log("[PayNext CDN] SDK already loaded in isolated namespace"),u=e,u):(d=(async()=>{try{const t=await m(n);return u=t,K(t),t}catch(t){throw d=null,t}})(),d)}class E{constructor(){y(this,"cdnInstance",null);y(this,"initPromise",null);y(this,"isDestroyed",!1);y(this,"errorBoundary",null)}setErrorHandler(e){this.errorBoundary=e}handleError(e,t){const i=`[PayNext SDK Error - ${t}]: ${e.message}`;if(console.error(i,e),this.errorBoundary)try{this.errorBoundary(e)}catch(a){console.error("[PayNext SDK] Error in custom error handler:",a)}}async initialize(e){if(this.isDestroyed)throw new o("Cannot initialize destroyed SDK instance",!1);return this.initPromise?this.initPromise:(this.initPromise=(async()=>{try{const t=await N(e);if(!t||!t.PayNextCheckout)throw new o("PayNextCheckout not found in loaded SDK module",!1);try{this.cdnInstance=new t.PayNextCheckout}catch(i){throw new o(`Failed to instantiate PayNextCheckout: ${i instanceof Error?i.message:"Unknown error"}`,!1)}console.log("[PayNext SDK] Initialized successfully")}catch(t){throw this.initPromise=null,t}})(),this.initPromise)}assertReady(){if(this.isDestroyed)throw new o("SDK instance has been destroyed",!1);if(!this.initPromise)throw new o("SDK initialization not started",!1);if(!this.cdnInstance)throw new o("SDK instance not created",!1)}async mount(e,t){try{if(!e||typeof e!="string")throw new o("Invalid containerId provided",!1);if(!t||!t.environment)throw new o("Invalid config provided",!1);if(!document.getElementById(e))throw new o(`Container element with id "${e}" not found`,!1);await this.initialize(t.environment),this.assertReady(),await this.cdnInstance.mount(e,t)}catch(i){const a=i instanceof o?i:new o(i instanceof Error?i.message:"Unknown mount error",!0);throw this.handleError(a,"mount"),a}}async unmount(){try{if(this.isDestroyed){console.warn("[PayNext SDK] Instance already destroyed");return}if(!this.cdnInstance){console.warn("[PayNext SDK] No instance to unmount");return}try{typeof this.cdnInstance.unmount=="function"&&await this.cdnInstance.unmount()}catch(e){const t=e instanceof Error?e:new Error(String(e));this.handleError(t,"unmount")}this.cdnInstance=null,this.initPromise=null}catch(e){const t=e instanceof Error?e:new Error(String(e));this.handleError(t,"unmount")}}static async preload(e){try{await N(e),console.log("[PayNext SDK] Preload successful")}catch(t){throw console.error("[PayNext SDK] Preload failed:",t),t}}}const C={preload:E.preload};var p=(n=>(n.PAYPAL="PAYPAL",n.APPLE_PAY="APPLEPAY",n.GOOGLE_PAY="GPAY",n.CARD="CARD",n.VENMO="VENMO",n.CASHAPP="CASHAPP",n))(p||{});r.PayNextCheckout=E,r.PayNextSDK=C,r.PaymentMethod=p,Object.defineProperty(r,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paynext/sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "PayNext SDK - Payment processing with automatic CDN loading",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.es.js",
|
|
@@ -62,7 +62,6 @@
|
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@eslint/js": "^9.39.1",
|
|
64
64
|
"@evervault/js": "^2.6.0",
|
|
65
|
-
"@evervault/react": "^2.22.0",
|
|
66
65
|
"@heroui/react": "^2.8.5",
|
|
67
66
|
"@paypal/paypal-js": "^8.4.2",
|
|
68
67
|
"@paypal/react-paypal-js": "^8.9.2",
|
package/dist/_headers
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
Access-Control-Allow-Origin: *
|
|
3
|
-
# Access-Control-Allow-Methods: GET, HEAD, OPTIONS
|
|
4
|
-
# Access-Control-Allow-Headers: Content-Type, Authorization
|
|
5
|
-
Vary: Accept-Encoding
|
|
6
|
-
X-Content-Type-Options: nosniff
|
|
7
|
-
Content-Encoding: gzip
|
|
8
|
-
X-Xss-Protection: 1; mode=block
|
|
9
|
-
|
|
10
|
-
/*.js
|
|
11
|
-
Content-Type: application/javascript
|
|
12
|
-
Cache-Control: public, max-age=0, s-maxage=60, must-revalidate
|
|
13
|
-
# Cache-Control: no-cache
|
|
14
|
-
|
|
15
|
-
/*.css
|
|
16
|
-
Content-Type: text/css; charset=utf-8
|
|
17
|
-
Cache-Control: public, max-age=1800, s-maxage=86400, stale-while-revalidate=3600
|
|
18
|
-
|
|
19
|
-
/*.html
|
|
20
|
-
Content-Type: text/html; charset=utf-8
|
|
21
|
-
Cache-Control: no-cache
|
|
22
|
-
Pragma: no-cache
|
|
23
|
-
Expires: 0
|
|
24
|
-
|
|
25
|
-
/*.map
|
|
26
|
-
Content-Type: application/json
|
|
27
|
-
Cache-Control: public, max-age=300, s-maxage=60
|
|
28
|
-
|
|
29
|
-
/*.json
|
|
30
|
-
Content-Type: application/json
|
|
31
|
-
Cache-Control: public, max-age=3600
|
|
32
|
-
|
|
33
|
-
/*.png
|
|
34
|
-
Cache-Control: public, max-age=31536000, immutable
|
|
35
|
-
|
|
36
|
-
/*.jpg
|
|
37
|
-
Cache-Control: public, max-age=31536000, immutable
|
|
38
|
-
|
|
39
|
-
/*.jpeg
|
|
40
|
-
Cache-Control: public, max-age=31536000, immutable
|
|
41
|
-
|
|
42
|
-
/*.gif
|
|
43
|
-
Cache-Control: public, max-age=31536000, immutable
|
|
44
|
-
|
|
45
|
-
/*.svg
|
|
46
|
-
Cache-Control: public, max-age=31536000, immutable
|
|
47
|
-
|
|
48
|
-
/*.webp
|
|
49
|
-
Cache-Control: public, max-age=31536000, immutable
|
|
50
|
-
|
|
51
|
-
/*.ico
|
|
52
|
-
Cache-Control: public, max-age=31536000, immutable
|
|
53
|
-
|
|
54
|
-
/*.woff
|
|
55
|
-
Cache-Control: public, max-age=31536000, immutable
|
|
56
|
-
|
|
57
|
-
/*.woff2
|
|
58
|
-
Cache-Control: public, max-age=31536000, immutable
|
|
59
|
-
|
|
60
|
-
/*.ttf
|
|
61
|
-
Cache-Control: public, max-age=31536000, immutable
|
|
62
|
-
|
|
63
|
-
/*.eot
|
|
64
|
-
Cache-Control: public, max-age=31536000, immutable
|
|
65
|
-
|