@netlify/cache 1.1.0 → 1.3.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.
@@ -43,22 +43,58 @@ __export(main_exports, {
43
43
  });
44
44
  module.exports = __toCommonJS(main_exports);
45
45
 
46
+ // src/headers.ts
47
+ var ResourceHeaders = "netlify-programmable-headers";
48
+ var ResourceStatus = "netlify-programmable-status";
49
+ var ResourceStore = "netlify-programmable-store";
50
+ var NetlifyForwardedHost = "netlify-forwarded-host";
51
+ var UserAgent = "user-agent";
52
+
46
53
  // src/bootstrap/cache.ts
47
- var import_node_buffer = require("buffer");
48
- var HEADERS_HEADER = "Netlify-Programmable-Headers";
49
- var STATUS_HEADER = "Netlify-Programmable-Status";
50
- var STORE_HEADER = "Netlify-Programmable-Store";
51
54
  var allowedProtocols = /* @__PURE__ */ new Set(["http:", "https:"]);
52
55
  var discardedHeaders = /* @__PURE__ */ new Set(["cookie", "content-encoding", "content-length"]);
53
- var _getToken, _getURL, _name;
56
+ var getInternalHeaders = Symbol("getInternalHeaders");
57
+ var serializeResourceHeaders = Symbol("serializeResourceHeaders");
58
+ var _base64Encode, _getContext, _name, _userAgent;
54
59
  var NetlifyCache = class {
55
- constructor({ getToken, getURL, name }) {
56
- __privateAdd(this, _getToken, void 0);
57
- __privateAdd(this, _getURL, void 0);
60
+ constructor({ base64Encode, getContext, name, userAgent }) {
61
+ __privateAdd(this, _base64Encode, void 0);
62
+ __privateAdd(this, _getContext, void 0);
58
63
  __privateAdd(this, _name, void 0);
59
- __privateSet(this, _getToken, getToken);
60
- __privateSet(this, _getURL, getURL);
64
+ __privateAdd(this, _userAgent, void 0);
65
+ __privateSet(this, _base64Encode, base64Encode);
66
+ __privateSet(this, _getContext, getContext);
61
67
  __privateSet(this, _name, name);
68
+ __privateSet(this, _userAgent, userAgent);
69
+ }
70
+ [getInternalHeaders](requestContext) {
71
+ const { host, token } = requestContext;
72
+ const headers = {
73
+ Authorization: `Bearer ${token}`,
74
+ [ResourceStore]: __privateGet(this, _name)
75
+ };
76
+ if (host) {
77
+ headers[NetlifyForwardedHost] = host;
78
+ }
79
+ if (__privateGet(this, _userAgent)) {
80
+ headers[UserAgent] = __privateGet(this, _userAgent);
81
+ }
82
+ return headers;
83
+ }
84
+ [serializeResourceHeaders](headers) {
85
+ const headersMap = {};
86
+ headers.forEach((value, key) => {
87
+ if (discardedHeaders.has(key)) {
88
+ return;
89
+ }
90
+ if (key === "set-cookie") {
91
+ headersMap[key] = headersMap[key] || [];
92
+ headersMap[key].push(value);
93
+ } else {
94
+ headersMap[key] = value.split(",");
95
+ }
96
+ });
97
+ return __privateGet(this, _base64Encode).call(this, JSON.stringify(headersMap));
62
98
  }
63
99
  async add(request) {
64
100
  await this.put(new Request(request), await fetch(request));
@@ -66,6 +102,36 @@ var NetlifyCache = class {
66
102
  async addAll(requests) {
67
103
  await Promise.allSettled(requests.map((request) => this.add(request)));
68
104
  }
105
+ // eslint-disable-next-line class-methods-use-this, require-await, @typescript-eslint/no-unused-vars
106
+ async delete(request) {
107
+ const context = __privateGet(this, _getContext).call(this);
108
+ const resourceURL = extractAndValidateURL(request);
109
+ await fetch(`${context.url}/${toCacheKey(resourceURL)}`, {
110
+ headers: this[getInternalHeaders](context),
111
+ method: "DELETE"
112
+ });
113
+ return true;
114
+ }
115
+ // eslint-disable-next-line class-methods-use-this, require-await, @typescript-eslint/no-unused-vars
116
+ async keys(_request) {
117
+ return [];
118
+ }
119
+ async match(request) {
120
+ try {
121
+ const context = __privateGet(this, _getContext).call(this);
122
+ const resourceURL = extractAndValidateURL(request);
123
+ const cacheURL = `${context.url}/${toCacheKey(resourceURL)}`;
124
+ const response = await fetch(cacheURL, {
125
+ headers: this[getInternalHeaders](context),
126
+ method: "GET"
127
+ });
128
+ if (!response.ok) {
129
+ return;
130
+ }
131
+ return response;
132
+ } catch {
133
+ }
134
+ }
69
135
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
70
136
  async matchAll(request, _options) {
71
137
  if (!request) {
@@ -87,72 +153,25 @@ var NetlifyCache = class {
87
153
  if (response.headers.get("vary")?.includes("*")) {
88
154
  throw new TypeError("Cannot cache response with 'Vary: *' header.");
89
155
  }
156
+ const context = __privateGet(this, _getContext).call(this);
90
157
  const resourceURL = extractAndValidateURL(request);
91
- await fetch(`${__privateGet(this, _getURL).call(this)}/${toCacheKey(resourceURL)}`, {
158
+ await fetch(`${context.url}/${toCacheKey(resourceURL)}`, {
92
159
  body: response.body,
93
160
  headers: {
94
- Authorization: `Bearer ${__privateGet(this, _getToken).call(this)}`,
95
- [HEADERS_HEADER]: getEncodedHeaders(response.headers),
96
- [STATUS_HEADER]: response.status.toString(),
97
- [STORE_HEADER]: __privateGet(this, _name)
161
+ ...this[getInternalHeaders](context),
162
+ [ResourceHeaders]: this[serializeResourceHeaders](response.headers),
163
+ [ResourceStatus]: response.status.toString()
98
164
  },
99
165
  // @ts-expect-error https://github.com/whatwg/fetch/pull/1457
100
166
  duplex: "half",
101
167
  method: "POST"
102
168
  });
103
169
  }
104
- async match(request) {
105
- try {
106
- const resourceURL = extractAndValidateURL(request);
107
- const cacheURL = `${__privateGet(this, _getURL).call(this)}/${toCacheKey(resourceURL)}`;
108
- const response = await fetch(cacheURL, {
109
- headers: {
110
- Authorization: `Bearer ${__privateGet(this, _getToken).call(this)}`
111
- },
112
- method: "GET"
113
- });
114
- if (!response.ok) {
115
- return;
116
- }
117
- return response;
118
- } catch {
119
- }
120
- }
121
- // eslint-disable-next-line class-methods-use-this, require-await, @typescript-eslint/no-unused-vars
122
- async delete(request) {
123
- const resourceURL = extractAndValidateURL(request);
124
- await fetch(`${__privateGet(this, _getURL).call(this)}/${toCacheKey(resourceURL)}`, {
125
- headers: {
126
- Authorization: `Bearer ${__privateGet(this, _getToken).call(this)}`,
127
- [STORE_HEADER]: __privateGet(this, _name)
128
- },
129
- method: "DELETE"
130
- });
131
- return true;
132
- }
133
- // eslint-disable-next-line class-methods-use-this, require-await, @typescript-eslint/no-unused-vars
134
- async keys(_request) {
135
- return [];
136
- }
137
170
  };
138
- _getToken = new WeakMap();
139
- _getURL = new WeakMap();
171
+ _base64Encode = new WeakMap();
172
+ _getContext = new WeakMap();
140
173
  _name = new WeakMap();
141
- var getEncodedHeaders = (headers) => {
142
- const headersMap = {};
143
- headers.forEach((value, key) => {
144
- if (discardedHeaders.has(key)) {
145
- return;
146
- }
147
- if (key === "set-cookie") {
148
- headersMap[key] = headersMap[key] || [];
149
- headersMap[key].push(value);
150
- } else {
151
- headersMap[key] = value.split(",");
152
- }
153
- });
154
- return import_node_buffer.Buffer.from(JSON.stringify(headersMap), "utf8").toString("base64");
155
- };
174
+ _userAgent = new WeakMap();
156
175
  var extractAndValidateURL = (input) => {
157
176
  let url;
158
177
  if (input instanceof Request) {
@@ -176,20 +195,21 @@ var extractAndValidateURL = (input) => {
176
195
  var toCacheKey = (url) => encodeURIComponent(url.toString());
177
196
 
178
197
  // src/bootstrap/cachestorage.ts
179
- var _getToken2, _getURL2, _stores;
198
+ var _environmentOptions, _stores;
180
199
  var NetlifyCacheStorage = class {
181
- constructor({ getToken, getURL }) {
182
- __privateAdd(this, _getToken2, void 0);
183
- __privateAdd(this, _getURL2, void 0);
200
+ constructor(environmentOptions) {
201
+ __privateAdd(this, _environmentOptions, void 0);
184
202
  __privateAdd(this, _stores, void 0);
185
- __privateSet(this, _getToken2, getToken);
186
- __privateSet(this, _getURL2, getURL);
203
+ __privateSet(this, _environmentOptions, environmentOptions);
187
204
  __privateSet(this, _stores, /* @__PURE__ */ new Map());
188
205
  }
189
206
  open(name) {
190
207
  let store = __privateGet(this, _stores).get(name);
191
208
  if (!store) {
192
- store = new NetlifyCache({ getToken: __privateGet(this, _getToken2), getURL: __privateGet(this, _getURL2), name });
209
+ store = new NetlifyCache({
210
+ ...__privateGet(this, _environmentOptions),
211
+ name
212
+ });
193
213
  __privateGet(this, _stores).set(name, store);
194
214
  }
195
215
  return Promise.resolve(store);
@@ -215,8 +235,7 @@ var NetlifyCacheStorage = class {
215
235
  }
216
236
  }
217
237
  };
218
- _getToken2 = new WeakMap();
219
- _getURL2 = new WeakMap();
238
+ _environmentOptions = new WeakMap();
220
239
  _stores = new WeakMap();
221
240
  // Annotate the CommonJS export names for ESM import in node:
222
241
  0 && (module.exports = {
@@ -1,29 +1,9 @@
1
- type Factory<T> = () => T;
1
+ import { E as EnvironmentOptions } from '../cache-854474ad.js';
2
+ export { B as Base64Encoder, N as NetlifyCache, R as RequestContextFactory } from '../cache-854474ad.js';
2
3
 
3
- interface NetlifyCacheOptions {
4
- getToken: Factory<string>;
5
- getURL: Factory<string>;
6
- name: string;
7
- }
8
- declare class NetlifyCache implements Cache {
9
- #private;
10
- constructor({ getToken, getURL, name }: NetlifyCacheOptions);
11
- add(request: RequestInfo): Promise<void>;
12
- addAll(requests: RequestInfo[]): Promise<void>;
13
- matchAll(request?: RequestInfo, _options?: CacheQueryOptions): Promise<readonly Response[]>;
14
- put(request: RequestInfo | URL | string, response: Response): Promise<void>;
15
- match(request: RequestInfo): Promise<Response | undefined>;
16
- delete(request: RequestInfo): Promise<boolean>;
17
- keys(_request?: Request): Promise<never[]>;
18
- }
19
-
20
- interface NetlifyCacheStorageOptions {
21
- getToken: Factory<string>;
22
- getURL: Factory<string>;
23
- }
24
4
  declare class NetlifyCacheStorage {
25
5
  #private;
26
- constructor({ getToken, getURL }: NetlifyCacheStorageOptions);
6
+ constructor(environmentOptions: EnvironmentOptions);
27
7
  open(name: string): Promise<Cache>;
28
8
  has(name: string): Promise<boolean>;
29
9
  delete(name: string): Promise<boolean>;
@@ -31,7 +11,4 @@ declare class NetlifyCacheStorage {
31
11
  match(request: RequestInfo, options?: MultiCacheQueryOptions): Promise<Response | undefined>;
32
12
  }
33
13
 
34
- type TokenFactory = Factory<string>;
35
- type URLFactory = Factory<string>;
36
-
37
- export { NetlifyCache, NetlifyCacheStorage, TokenFactory, URLFactory };
14
+ export { NetlifyCacheStorage };
@@ -1,29 +1,9 @@
1
- type Factory<T> = () => T;
1
+ import { E as EnvironmentOptions } from '../cache-854474ad.js';
2
+ export { B as Base64Encoder, N as NetlifyCache, R as RequestContextFactory } from '../cache-854474ad.js';
2
3
 
3
- interface NetlifyCacheOptions {
4
- getToken: Factory<string>;
5
- getURL: Factory<string>;
6
- name: string;
7
- }
8
- declare class NetlifyCache implements Cache {
9
- #private;
10
- constructor({ getToken, getURL, name }: NetlifyCacheOptions);
11
- add(request: RequestInfo): Promise<void>;
12
- addAll(requests: RequestInfo[]): Promise<void>;
13
- matchAll(request?: RequestInfo, _options?: CacheQueryOptions): Promise<readonly Response[]>;
14
- put(request: RequestInfo | URL | string, response: Response): Promise<void>;
15
- match(request: RequestInfo): Promise<Response | undefined>;
16
- delete(request: RequestInfo): Promise<boolean>;
17
- keys(_request?: Request): Promise<never[]>;
18
- }
19
-
20
- interface NetlifyCacheStorageOptions {
21
- getToken: Factory<string>;
22
- getURL: Factory<string>;
23
- }
24
4
  declare class NetlifyCacheStorage {
25
5
  #private;
26
- constructor({ getToken, getURL }: NetlifyCacheStorageOptions);
6
+ constructor(environmentOptions: EnvironmentOptions);
27
7
  open(name: string): Promise<Cache>;
28
8
  has(name: string): Promise<boolean>;
29
9
  delete(name: string): Promise<boolean>;
@@ -31,7 +11,4 @@ declare class NetlifyCacheStorage {
31
11
  match(request: RequestInfo, options?: MultiCacheQueryOptions): Promise<Response | undefined>;
32
12
  }
33
13
 
34
- type TokenFactory = Factory<string>;
35
- type URLFactory = Factory<string>;
36
-
37
- export { NetlifyCache, NetlifyCacheStorage, TokenFactory, URLFactory };
14
+ export { NetlifyCacheStorage };
@@ -1,38 +1,59 @@
1
- var __accessCheck = (obj, member, msg) => {
2
- if (!member.has(obj))
3
- throw TypeError("Cannot " + msg);
4
- };
5
- var __privateGet = (obj, member, getter) => {
6
- __accessCheck(obj, member, "read from private field");
7
- return getter ? getter.call(obj) : member.get(obj);
8
- };
9
- var __privateAdd = (obj, member, value) => {
10
- if (member.has(obj))
11
- throw TypeError("Cannot add the same private member more than once");
12
- member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
13
- };
14
- var __privateSet = (obj, member, value, setter) => {
15
- __accessCheck(obj, member, "write to private field");
16
- setter ? setter.call(obj, value) : member.set(obj, value);
17
- return value;
18
- };
1
+ import {
2
+ NetlifyForwardedHost,
3
+ ResourceHeaders,
4
+ ResourceStatus,
5
+ ResourceStore,
6
+ UserAgent,
7
+ __privateAdd,
8
+ __privateGet,
9
+ __privateSet
10
+ } from "../chunk-I5FZDZ6V.js";
19
11
 
20
12
  // src/bootstrap/cache.ts
21
- import { Buffer as Buffer2 } from "buffer";
22
- var HEADERS_HEADER = "Netlify-Programmable-Headers";
23
- var STATUS_HEADER = "Netlify-Programmable-Status";
24
- var STORE_HEADER = "Netlify-Programmable-Store";
25
13
  var allowedProtocols = /* @__PURE__ */ new Set(["http:", "https:"]);
26
14
  var discardedHeaders = /* @__PURE__ */ new Set(["cookie", "content-encoding", "content-length"]);
27
- var _getToken, _getURL, _name;
15
+ var getInternalHeaders = Symbol("getInternalHeaders");
16
+ var serializeResourceHeaders = Symbol("serializeResourceHeaders");
17
+ var _base64Encode, _getContext, _name, _userAgent;
28
18
  var NetlifyCache = class {
29
- constructor({ getToken, getURL, name }) {
30
- __privateAdd(this, _getToken, void 0);
31
- __privateAdd(this, _getURL, void 0);
19
+ constructor({ base64Encode, getContext, name, userAgent }) {
20
+ __privateAdd(this, _base64Encode, void 0);
21
+ __privateAdd(this, _getContext, void 0);
32
22
  __privateAdd(this, _name, void 0);
33
- __privateSet(this, _getToken, getToken);
34
- __privateSet(this, _getURL, getURL);
23
+ __privateAdd(this, _userAgent, void 0);
24
+ __privateSet(this, _base64Encode, base64Encode);
25
+ __privateSet(this, _getContext, getContext);
35
26
  __privateSet(this, _name, name);
27
+ __privateSet(this, _userAgent, userAgent);
28
+ }
29
+ [getInternalHeaders](requestContext) {
30
+ const { host, token } = requestContext;
31
+ const headers = {
32
+ Authorization: `Bearer ${token}`,
33
+ [ResourceStore]: __privateGet(this, _name)
34
+ };
35
+ if (host) {
36
+ headers[NetlifyForwardedHost] = host;
37
+ }
38
+ if (__privateGet(this, _userAgent)) {
39
+ headers[UserAgent] = __privateGet(this, _userAgent);
40
+ }
41
+ return headers;
42
+ }
43
+ [serializeResourceHeaders](headers) {
44
+ const headersMap = {};
45
+ headers.forEach((value, key) => {
46
+ if (discardedHeaders.has(key)) {
47
+ return;
48
+ }
49
+ if (key === "set-cookie") {
50
+ headersMap[key] = headersMap[key] || [];
51
+ headersMap[key].push(value);
52
+ } else {
53
+ headersMap[key] = value.split(",");
54
+ }
55
+ });
56
+ return __privateGet(this, _base64Encode).call(this, JSON.stringify(headersMap));
36
57
  }
37
58
  async add(request) {
38
59
  await this.put(new Request(request), await fetch(request));
@@ -40,6 +61,36 @@ var NetlifyCache = class {
40
61
  async addAll(requests) {
41
62
  await Promise.allSettled(requests.map((request) => this.add(request)));
42
63
  }
64
+ // eslint-disable-next-line class-methods-use-this, require-await, @typescript-eslint/no-unused-vars
65
+ async delete(request) {
66
+ const context = __privateGet(this, _getContext).call(this);
67
+ const resourceURL = extractAndValidateURL(request);
68
+ await fetch(`${context.url}/${toCacheKey(resourceURL)}`, {
69
+ headers: this[getInternalHeaders](context),
70
+ method: "DELETE"
71
+ });
72
+ return true;
73
+ }
74
+ // eslint-disable-next-line class-methods-use-this, require-await, @typescript-eslint/no-unused-vars
75
+ async keys(_request) {
76
+ return [];
77
+ }
78
+ async match(request) {
79
+ try {
80
+ const context = __privateGet(this, _getContext).call(this);
81
+ const resourceURL = extractAndValidateURL(request);
82
+ const cacheURL = `${context.url}/${toCacheKey(resourceURL)}`;
83
+ const response = await fetch(cacheURL, {
84
+ headers: this[getInternalHeaders](context),
85
+ method: "GET"
86
+ });
87
+ if (!response.ok) {
88
+ return;
89
+ }
90
+ return response;
91
+ } catch {
92
+ }
93
+ }
43
94
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
44
95
  async matchAll(request, _options) {
45
96
  if (!request) {
@@ -61,72 +112,25 @@ var NetlifyCache = class {
61
112
  if (response.headers.get("vary")?.includes("*")) {
62
113
  throw new TypeError("Cannot cache response with 'Vary: *' header.");
63
114
  }
115
+ const context = __privateGet(this, _getContext).call(this);
64
116
  const resourceURL = extractAndValidateURL(request);
65
- await fetch(`${__privateGet(this, _getURL).call(this)}/${toCacheKey(resourceURL)}`, {
117
+ await fetch(`${context.url}/${toCacheKey(resourceURL)}`, {
66
118
  body: response.body,
67
119
  headers: {
68
- Authorization: `Bearer ${__privateGet(this, _getToken).call(this)}`,
69
- [HEADERS_HEADER]: getEncodedHeaders(response.headers),
70
- [STATUS_HEADER]: response.status.toString(),
71
- [STORE_HEADER]: __privateGet(this, _name)
120
+ ...this[getInternalHeaders](context),
121
+ [ResourceHeaders]: this[serializeResourceHeaders](response.headers),
122
+ [ResourceStatus]: response.status.toString()
72
123
  },
73
124
  // @ts-expect-error https://github.com/whatwg/fetch/pull/1457
74
125
  duplex: "half",
75
126
  method: "POST"
76
127
  });
77
128
  }
78
- async match(request) {
79
- try {
80
- const resourceURL = extractAndValidateURL(request);
81
- const cacheURL = `${__privateGet(this, _getURL).call(this)}/${toCacheKey(resourceURL)}`;
82
- const response = await fetch(cacheURL, {
83
- headers: {
84
- Authorization: `Bearer ${__privateGet(this, _getToken).call(this)}`
85
- },
86
- method: "GET"
87
- });
88
- if (!response.ok) {
89
- return;
90
- }
91
- return response;
92
- } catch {
93
- }
94
- }
95
- // eslint-disable-next-line class-methods-use-this, require-await, @typescript-eslint/no-unused-vars
96
- async delete(request) {
97
- const resourceURL = extractAndValidateURL(request);
98
- await fetch(`${__privateGet(this, _getURL).call(this)}/${toCacheKey(resourceURL)}`, {
99
- headers: {
100
- Authorization: `Bearer ${__privateGet(this, _getToken).call(this)}`,
101
- [STORE_HEADER]: __privateGet(this, _name)
102
- },
103
- method: "DELETE"
104
- });
105
- return true;
106
- }
107
- // eslint-disable-next-line class-methods-use-this, require-await, @typescript-eslint/no-unused-vars
108
- async keys(_request) {
109
- return [];
110
- }
111
129
  };
112
- _getToken = new WeakMap();
113
- _getURL = new WeakMap();
130
+ _base64Encode = new WeakMap();
131
+ _getContext = new WeakMap();
114
132
  _name = new WeakMap();
115
- var getEncodedHeaders = (headers) => {
116
- const headersMap = {};
117
- headers.forEach((value, key) => {
118
- if (discardedHeaders.has(key)) {
119
- return;
120
- }
121
- if (key === "set-cookie") {
122
- headersMap[key] = headersMap[key] || [];
123
- headersMap[key].push(value);
124
- } else {
125
- headersMap[key] = value.split(",");
126
- }
127
- });
128
- return Buffer2.from(JSON.stringify(headersMap), "utf8").toString("base64");
129
- };
133
+ _userAgent = new WeakMap();
130
134
  var extractAndValidateURL = (input) => {
131
135
  let url;
132
136
  if (input instanceof Request) {
@@ -150,20 +154,21 @@ var extractAndValidateURL = (input) => {
150
154
  var toCacheKey = (url) => encodeURIComponent(url.toString());
151
155
 
152
156
  // src/bootstrap/cachestorage.ts
153
- var _getToken2, _getURL2, _stores;
157
+ var _environmentOptions, _stores;
154
158
  var NetlifyCacheStorage = class {
155
- constructor({ getToken, getURL }) {
156
- __privateAdd(this, _getToken2, void 0);
157
- __privateAdd(this, _getURL2, void 0);
159
+ constructor(environmentOptions) {
160
+ __privateAdd(this, _environmentOptions, void 0);
158
161
  __privateAdd(this, _stores, void 0);
159
- __privateSet(this, _getToken2, getToken);
160
- __privateSet(this, _getURL2, getURL);
162
+ __privateSet(this, _environmentOptions, environmentOptions);
161
163
  __privateSet(this, _stores, /* @__PURE__ */ new Map());
162
164
  }
163
165
  open(name) {
164
166
  let store = __privateGet(this, _stores).get(name);
165
167
  if (!store) {
166
- store = new NetlifyCache({ getToken: __privateGet(this, _getToken2), getURL: __privateGet(this, _getURL2), name });
168
+ store = new NetlifyCache({
169
+ ...__privateGet(this, _environmentOptions),
170
+ name
171
+ });
167
172
  __privateGet(this, _stores).set(name, store);
168
173
  }
169
174
  return Promise.resolve(store);
@@ -189,8 +194,7 @@ var NetlifyCacheStorage = class {
189
194
  }
190
195
  }
191
196
  };
192
- _getToken2 = new WeakMap();
193
- _getURL2 = new WeakMap();
197
+ _environmentOptions = new WeakMap();
194
198
  _stores = new WeakMap();
195
199
  export {
196
200
  NetlifyCache,
@@ -0,0 +1,33 @@
1
+ type Base64Encoder = (input: string) => string;
2
+ interface EnvironmentOptions {
3
+ base64Encode: Base64Encoder;
4
+ getContext: RequestContextFactory;
5
+ userAgent?: string;
6
+ }
7
+ type RequestContextFactory = () => RequestContext;
8
+ interface RequestContext {
9
+ host: string;
10
+ token: string;
11
+ url: string;
12
+ }
13
+
14
+ type NetlifyCacheOptions = EnvironmentOptions & {
15
+ name: string;
16
+ };
17
+ declare const getInternalHeaders: unique symbol;
18
+ declare const serializeResourceHeaders: unique symbol;
19
+ declare class NetlifyCache implements Cache {
20
+ #private;
21
+ constructor({ base64Encode, getContext, name, userAgent }: NetlifyCacheOptions);
22
+ private [getInternalHeaders];
23
+ private [serializeResourceHeaders];
24
+ add(request: RequestInfo): Promise<void>;
25
+ addAll(requests: RequestInfo[]): Promise<void>;
26
+ delete(request: RequestInfo): Promise<boolean>;
27
+ keys(_request?: Request): Promise<never[]>;
28
+ match(request: RequestInfo): Promise<Response | undefined>;
29
+ matchAll(request?: RequestInfo, _options?: CacheQueryOptions): Promise<readonly Response[]>;
30
+ put(request: RequestInfo | URL | string, response: Response): Promise<void>;
31
+ }
32
+
33
+ export { Base64Encoder as B, EnvironmentOptions as E, NetlifyCache as N, RequestContextFactory as R };
@@ -0,0 +1,46 @@
1
+ var __accessCheck = (obj, member, msg) => {
2
+ if (!member.has(obj))
3
+ throw TypeError("Cannot " + msg);
4
+ };
5
+ var __privateGet = (obj, member, getter) => {
6
+ __accessCheck(obj, member, "read from private field");
7
+ return getter ? getter.call(obj) : member.get(obj);
8
+ };
9
+ var __privateAdd = (obj, member, value) => {
10
+ if (member.has(obj))
11
+ throw TypeError("Cannot add the same private member more than once");
12
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
13
+ };
14
+ var __privateSet = (obj, member, value, setter) => {
15
+ __accessCheck(obj, member, "write to private field");
16
+ setter ? setter.call(obj, value) : member.set(obj, value);
17
+ return value;
18
+ };
19
+
20
+ // src/headers.ts
21
+ var CacheStatus = "cache-status";
22
+ var NetlifyCacheId = "netlify-cache-id";
23
+ var NetlifyCacheTag = "netlify-cache-tag";
24
+ var NetlifyCdnCacheControl = "netlify-cdn-cache-control";
25
+ var NetlifyVary = "netlify-vary";
26
+ var ResourceHeaders = "netlify-programmable-headers";
27
+ var ResourceStatus = "netlify-programmable-status";
28
+ var ResourceStore = "netlify-programmable-store";
29
+ var NetlifyForwardedHost = "netlify-forwarded-host";
30
+ var UserAgent = "user-agent";
31
+
32
+ export {
33
+ __privateGet,
34
+ __privateAdd,
35
+ __privateSet,
36
+ CacheStatus,
37
+ NetlifyCacheId,
38
+ NetlifyCacheTag,
39
+ NetlifyCdnCacheControl,
40
+ NetlifyVary,
41
+ ResourceHeaders,
42
+ ResourceStatus,
43
+ ResourceStore,
44
+ NetlifyForwardedHost,
45
+ UserAgent
46
+ };