@crawlee/memory-storage 3.1.5-beta.9 → 3.2.1-beta.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.
Files changed (62) hide show
  1. package/cache-helpers.d.ts.map +1 -1
  2. package/cache-helpers.js +35 -33
  3. package/cache-helpers.js.map +1 -1
  4. package/fs/common.d.ts +6 -0
  5. package/fs/common.d.ts.map +1 -0
  6. package/fs/common.js +3 -0
  7. package/fs/common.js.map +1 -0
  8. package/fs/dataset/fs.d.ts +10 -0
  9. package/fs/dataset/fs.d.ts.map +1 -0
  10. package/fs/dataset/fs.js +30 -0
  11. package/fs/dataset/fs.js.map +1 -0
  12. package/fs/dataset/index.d.ts +10 -0
  13. package/fs/dataset/index.d.ts.map +1 -0
  14. package/fs/dataset/index.js +13 -0
  15. package/fs/dataset/index.js.map +1 -0
  16. package/fs/dataset/memory.d.ts +8 -0
  17. package/fs/dataset/memory.d.ts.map +1 -0
  18. package/fs/dataset/memory.js +24 -0
  19. package/fs/dataset/memory.js.map +1 -0
  20. package/fs/key-value-store/fs.d.ts +15 -0
  21. package/fs/key-value-store/fs.d.ts.map +1 -0
  22. package/fs/key-value-store/fs.js +87 -0
  23. package/fs/key-value-store/fs.js.map +1 -0
  24. package/fs/key-value-store/index.d.ts +9 -0
  25. package/fs/key-value-store/index.d.ts.map +1 -0
  26. package/fs/key-value-store/index.js +13 -0
  27. package/fs/key-value-store/index.js.map +1 -0
  28. package/fs/key-value-store/memory.d.ts +9 -0
  29. package/fs/key-value-store/memory.d.ts.map +1 -0
  30. package/fs/key-value-store/memory.js +24 -0
  31. package/fs/key-value-store/memory.js.map +1 -0
  32. package/fs/request-queue/fs.d.ts +11 -0
  33. package/fs/request-queue/fs.d.ts.map +1 -0
  34. package/fs/request-queue/fs.js +30 -0
  35. package/fs/request-queue/fs.js.map +1 -0
  36. package/fs/request-queue/index.d.ts +9 -0
  37. package/fs/request-queue/index.d.ts.map +1 -0
  38. package/fs/request-queue/index.js +13 -0
  39. package/fs/request-queue/index.js.map +1 -0
  40. package/fs/request-queue/memory.d.ts +9 -0
  41. package/fs/request-queue/memory.d.ts.map +1 -0
  42. package/fs/request-queue/memory.js +24 -0
  43. package/fs/request-queue/memory.js.map +1 -0
  44. package/package.json +6 -5
  45. package/resource-clients/dataset.d.ts.map +1 -1
  46. package/resource-clients/dataset.js +9 -12
  47. package/resource-clients/dataset.js.map +1 -1
  48. package/resource-clients/key-value-store.d.ts.map +1 -1
  49. package/resource-clients/key-value-store.js +14 -28
  50. package/resource-clients/key-value-store.js.map +1 -1
  51. package/resource-clients/request-queue.d.ts +0 -1
  52. package/resource-clients/request-queue.d.ts.map +1 -1
  53. package/resource-clients/request-queue.js +45 -44
  54. package/resource-clients/request-queue.js.map +1 -1
  55. package/tsconfig.build.tsbuildinfo +1 -1
  56. package/utils.d.ts +1 -29
  57. package/utils.d.ts.map +1 -1
  58. package/utils.js.map +1 -1
  59. package/workers/worker-utils.d.ts +1 -0
  60. package/workers/worker-utils.d.ts.map +1 -1
  61. package/workers/worker-utils.js +2 -74
  62. package/workers/worker-utils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cache-helpers.d.ts","sourceRoot":"","sources":["../src/cache-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAM/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKtD,wBAAsB,8BAA8B,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,+DA+FhG;AAED,wBAAsB,oCAAoC,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4CA4ItG;AAED,wBAAsB,4BAA4B,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2CA4F9F;AAGD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"cache-helpers.d.ts","sourceRoot":"","sources":["../src/cache-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAM/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQtD,wBAAsB,8BAA8B,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,+DA+FhG;AAED,wBAAsB,oCAAoC,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4CAiJtG;AAED,wBAAsB,4BAA4B,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2CA+F9F;AAGD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC"}
package/cache-helpers.js CHANGED
@@ -5,6 +5,10 @@ const tslib_1 = require("tslib");
5
5
  const promises_1 = require("node:fs/promises");
6
6
  const node_path_1 = require("node:path");
7
7
  const mime_types_1 = tslib_1.__importDefault(require("mime-types"));
8
+ const json5_1 = tslib_1.__importDefault(require("json5"));
9
+ const fs_1 = require("./fs/dataset/fs");
10
+ const fs_2 = require("./fs/key-value-store/fs");
11
+ const fs_3 = require("./fs/request-queue/fs");
8
12
  const utils_1 = require("./utils");
9
13
  const uuidRegex = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;
10
14
  async function findOrCacheDatasetByPossibleId(client, entryNameOrId) {
@@ -26,7 +30,7 @@ async function findOrCacheDatasetByPossibleId(client, entryNameOrId) {
26
30
  let id;
27
31
  let name;
28
32
  let itemCount = 0;
29
- const entries = new Map();
33
+ const entries = new Set();
30
34
  let createdAt = new Date();
31
35
  let accessedAt = new Date();
32
36
  let modifiedAt = new Date();
@@ -48,12 +52,8 @@ async function findOrCacheDatasetByPossibleId(client, entryNameOrId) {
48
52
  modifiedAt = new Date(metadata.modifiedAt);
49
53
  continue;
50
54
  }
51
- const fileContent = await (0, promises_1.readFile)((0, node_path_1.resolve)(datasetDir, entry.name), 'utf8');
52
- if (!fileContent)
53
- continue;
54
- const entryContent = JSON.parse(fileContent);
55
55
  const entryName = entry.name.split('.')[0];
56
- entries.set(entryName, entryContent);
56
+ entries.add(entryName);
57
57
  if (!hasSeenMetadataFile) {
58
58
  itemCount++;
59
59
  }
@@ -79,9 +79,11 @@ async function findOrCacheDatasetByPossibleId(client, entryNameOrId) {
79
79
  newClient.createdAt = createdAt;
80
80
  newClient.modifiedAt = modifiedAt;
81
81
  newClient.itemCount = itemCount;
82
- for (const [entryId, content] of entries) {
82
+ for (const entryId of entries.values()) {
83
+ // We create a file system entry instead of possibly making an in-memory one to allow the pre-included data to be used on demand
84
+ const entry = new fs_1.DatasetFileSystemEntry({ storeDirectory: datasetDir, entityId: entryId, persistStorage: true });
83
85
  // eslint-disable-next-line dot-notation
84
- newClient['datasetEntries'].set(entryId, { ...content });
86
+ newClient['datasetEntries'].set(entryId, entry);
85
87
  }
86
88
  client.datasetClientsHandled.push(newClient);
87
89
  return newClient;
@@ -109,6 +111,7 @@ async function findOrCacheKeyValueStoreByPossibleId(client, entryNameOrId) {
109
111
  let accessedAt = new Date();
110
112
  let modifiedAt = new Date();
111
113
  const internalRecords = new Map();
114
+ let hasSeenMetadataForEntry = false;
112
115
  for await (const entry of directoryEntries) {
113
116
  if (entry.isFile()) {
114
117
  if (entry.name === '__metadata__.json') {
@@ -125,6 +128,7 @@ async function findOrCacheKeyValueStoreByPossibleId(client, entryNameOrId) {
125
128
  continue;
126
129
  }
127
130
  if (entry.name.includes('.__metadata__.')) {
131
+ hasSeenMetadataForEntry = true;
128
132
  // This is an entry's metadata file, we can use it to create/extend the record
129
133
  const fileContent = await (0, promises_1.readFile)((0, node_path_1.resolve)(keyValueStoreDir, entry.name), 'utf8');
130
134
  if (!fileContent)
@@ -137,33 +141,22 @@ async function findOrCacheKeyValueStoreByPossibleId(client, entryNameOrId) {
137
141
  internalRecords.set(metadata.key, newRecord);
138
142
  continue;
139
143
  }
144
+ // This is an entry in the store, we can use it to create/extend the record
140
145
  const fileContent = await (0, promises_1.readFile)((0, node_path_1.resolve)(keyValueStoreDir, entry.name));
141
146
  const fileExtension = (0, node_path_1.extname)(entry.name);
142
147
  const contentType = mime_types_1.default.contentType(entry.name) || 'text/plain';
143
148
  const extension = mime_types_1.default.extension(contentType);
144
- let finalFileContent = fileContent;
145
- if (!fileExtension) {
146
- utils_1.memoryStorageLog.warning([
147
- `Key-value entry "${entry.name}" for store ${entryNameOrId} does not have a file extension, assuming it as text.`,
148
- 'If you want to have correct interpretation of the file, you should add a file extension to the entry.',
149
- ].join('\n'));
150
- finalFileContent = fileContent.toString('utf8');
151
- }
152
- else if (contentType.includes('application/json')) {
149
+ // This is kept for backwards compatibility / to ignore invalid JSON files
150
+ if (contentType.includes('application/json')) {
153
151
  const stringifiedJson = fileContent.toString('utf8');
154
152
  try {
155
- // Try parsing the JSON ahead of time (not ideal but solves invalid files being loaded into stores)
156
- JSON.parse(stringifiedJson);
157
- finalFileContent = stringifiedJson;
153
+ json5_1.default.parse(stringifiedJson);
158
154
  }
159
155
  catch {
160
156
  utils_1.memoryStorageLog.warning(`Key-value entry "${entry.name}" for store ${entryNameOrId} has invalid JSON content and will be ignored from the store.`);
161
157
  continue;
162
158
  }
163
159
  }
164
- else if (contentType.includes('text/plain')) {
165
- finalFileContent = fileContent.toString('utf8');
166
- }
167
160
  const nameSplit = entry.name.split('.');
168
161
  if (fileExtension) {
169
162
  nameSplit.pop();
@@ -172,7 +165,6 @@ async function findOrCacheKeyValueStoreByPossibleId(client, entryNameOrId) {
172
165
  const newRecord = {
173
166
  key,
174
167
  extension,
175
- value: finalFileContent,
176
168
  contentType,
177
169
  ...internalRecords.get(key),
178
170
  };
@@ -199,8 +191,16 @@ async function findOrCacheKeyValueStoreByPossibleId(client, entryNameOrId) {
199
191
  newClient.createdAt = createdAt;
200
192
  newClient.modifiedAt = modifiedAt;
201
193
  for (const [key, record] of internalRecords) {
194
+ // We create a file system entry instead of possibly making an in-memory one to allow the pre-included data to be used on demand
195
+ const entry = new fs_2.KeyValueFileSystemEntry({ persistStorage: true, storeDirectory: keyValueStoreDir, writeMetadata: hasSeenMetadataForEntry });
196
+ // eslint-disable-next-line dot-notation
197
+ entry['rawRecord'] = { ...record };
198
+ // eslint-disable-next-line dot-notation
199
+ entry['filePath'] = (0, node_path_1.resolve)(keyValueStoreDir, `${record.key}.${record.extension}`);
202
200
  // eslint-disable-next-line dot-notation
203
- newClient['keyValueEntries'].set(key, { ...record });
201
+ entry['fileMetadataPath'] = (0, node_path_1.resolve)(keyValueStoreDir, `${record.key}.__metadata__.json`);
202
+ // eslint-disable-next-line dot-notation
203
+ newClient['keyValueEntries'].set(key, entry);
204
204
  }
205
205
  client.keyValueStoresHandled.push(newClient);
206
206
  return newClient;
@@ -229,7 +229,7 @@ async function findRequestQueueByPossibleId(client, entryNameOrId) {
229
229
  let modifiedAt = new Date();
230
230
  let pendingRequestCount = 0;
231
231
  let handledRequestCount = 0;
232
- const entries = [];
232
+ const entries = new Set();
233
233
  for await (const entry of directoryEntries) {
234
234
  if (entry.isFile()) {
235
235
  switch (entry.name) {
@@ -249,11 +249,8 @@ async function findRequestQueueByPossibleId(client, entryNameOrId) {
249
249
  break;
250
250
  }
251
251
  default: {
252
- const fileContent = await (0, promises_1.readFile)((0, node_path_1.resolve)(requestQueueDir, entry.name), 'utf8');
253
- if (!fileContent)
254
- continue;
255
- const request = JSON.parse(fileContent);
256
- entries.push(request);
252
+ const entryName = entry.name.split('.')[0];
253
+ entries.add(entryName);
257
254
  }
258
255
  }
259
256
  }
@@ -279,9 +276,14 @@ async function findRequestQueueByPossibleId(client, entryNameOrId) {
279
276
  newClient.modifiedAt = modifiedAt;
280
277
  newClient.pendingRequestCount = pendingRequestCount;
281
278
  newClient.handledRequestCount = handledRequestCount;
282
- for (const entry of entries) {
279
+ for (const requestId of entries) {
280
+ const entry = new fs_3.RequestQueueFileSystemEntry({
281
+ persistStorage: true,
282
+ requestId,
283
+ storeDirectory: requestQueueDir,
284
+ });
283
285
  // eslint-disable-next-line dot-notation
284
- newClient['requests'].set(entry.id, entry);
286
+ newClient['requests'].set(requestId, entry);
285
287
  }
286
288
  client.requestQueuesHandled.push(newClient);
287
289
  return newClient;
@@ -1 +1 @@
1
- {"version":3,"file":"cache-helpers.js","sourceRoot":"","sources":["../src/cache-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache-helpers.js","sourceRoot":"","sources":["../src/cache-helpers.ts"],"names":[],"mappings":"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"}
package/fs/common.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ export interface StorageImplementation<T> {
2
+ get(): Promise<T>;
3
+ update(data: T): void | Promise<void>;
4
+ delete(): void | Promise<void>;
5
+ }
6
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/fs/common.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACpC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC"}
package/fs/common.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/fs/common.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import type { CreateStorageImplementationOptions } from './index';
2
+ import type { StorageImplementation } from '../common';
3
+ export declare class DatasetFileSystemEntry<Data> implements StorageImplementation<Data> {
4
+ private filePath;
5
+ constructor(options: CreateStorageImplementationOptions);
6
+ get(): Promise<any>;
7
+ update(data: Data): Promise<void>;
8
+ delete(): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../../src/fs/dataset/fs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAGvD,qBAAa,sBAAsB,CAAC,IAAI,CAAE,YAAW,qBAAqB,CAAC,IAAI,CAAC;IAC5E,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,kCAAkC;IAIjD,GAAG;IAIH,MAAM,CAAC,IAAI,EAAE,IAAI;IAKjB,MAAM;CAGf"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatasetFileSystemEntry = void 0;
4
+ const promises_1 = require("node:fs/promises");
5
+ const node_path_1 = require("node:path");
6
+ const fs_extra_1 = require("fs-extra");
7
+ const worker_utils_1 = require("../../workers/worker-utils");
8
+ class DatasetFileSystemEntry {
9
+ constructor(options) {
10
+ Object.defineProperty(this, "filePath", {
11
+ enumerable: true,
12
+ configurable: true,
13
+ writable: true,
14
+ value: void 0
15
+ });
16
+ this.filePath = (0, node_path_1.resolve)(options.storeDirectory, `${options.entityId}.json`);
17
+ }
18
+ async get() {
19
+ return JSON.parse(await (0, promises_1.readFile)(this.filePath, 'utf-8'));
20
+ }
21
+ async update(data) {
22
+ await (0, fs_extra_1.ensureDir)((0, node_path_1.dirname)(this.filePath));
23
+ await (0, worker_utils_1.lockAndWrite)(this.filePath, data);
24
+ }
25
+ async delete() {
26
+ await (0, promises_1.rm)(this.filePath, { force: true });
27
+ }
28
+ }
29
+ exports.DatasetFileSystemEntry = DatasetFileSystemEntry;
30
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/fs/dataset/fs.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAChD,yCAA6C;AAC7C,uCAAqC;AAGrC,6DAA0D;AAE1D,MAAa,sBAAsB;IAG/B,YAAY,OAA2C;QAFvD;;;;;WAAyB;QAGrB,IAAI,CAAC,QAAQ,GAAG,IAAA,mBAAO,EAAC,OAAO,CAAC,cAAc,EAAE,GAAG,OAAO,CAAC,QAAQ,OAAO,CAAC,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,GAAG;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAU;QACnB,MAAM,IAAA,oBAAS,EAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC,MAAM,IAAA,2BAAY,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,IAAA,aAAE,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;CACJ;AAnBD,wDAmBC"}
@@ -0,0 +1,10 @@
1
+ import type { Dictionary } from '@crawlee/types';
2
+ import type { StorageImplementation } from '../common';
3
+ export declare function createDatasetStorageImplementation<Data extends Dictionary>(options: CreateStorageImplementationOptions): StorageImplementation<Data>;
4
+ export interface CreateStorageImplementationOptions {
5
+ persistStorage: boolean;
6
+ storeDirectory: string;
7
+ /** The actual id of the file to save */
8
+ entityId: string;
9
+ }
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fs/dataset/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAIvD,wBAAgB,kCAAkC,CAAC,IAAI,SAAS,UAAU,EAAE,OAAO,EAAE,kCAAkC,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAMpJ;AAED,MAAM,WAAW,kCAAkC;IAC/C,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDatasetStorageImplementation = void 0;
4
+ const fs_1 = require("./fs");
5
+ const memory_1 = require("./memory");
6
+ function createDatasetStorageImplementation(options) {
7
+ if (options.persistStorage) {
8
+ return new fs_1.DatasetFileSystemEntry(options);
9
+ }
10
+ return new memory_1.DatasetMemoryEntry();
11
+ }
12
+ exports.createDatasetStorageImplementation = createDatasetStorageImplementation;
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/fs/dataset/index.ts"],"names":[],"mappings":";;;AAEA,6BAA8C;AAC9C,qCAA8C;AAE9C,SAAgB,kCAAkC,CAA0B,OAA2C;IACnH,IAAI,OAAO,CAAC,cAAc,EAAE;QACxB,OAAO,IAAI,2BAAsB,CAAO,OAAO,CAAC,CAAC;KACpD;IAED,OAAO,IAAI,2BAAkB,EAAQ,CAAC;AAC1C,CAAC;AAND,gFAMC"}
@@ -0,0 +1,8 @@
1
+ import type { StorageImplementation } from '../common';
2
+ export declare class DatasetMemoryEntry<Data> implements StorageImplementation<Data> {
3
+ private data;
4
+ get(): Promise<Data>;
5
+ update(data: Data): void;
6
+ delete(): void;
7
+ }
8
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/fs/dataset/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEvD,qBAAa,kBAAkB,CAAC,IAAI,CAAE,YAAW,qBAAqB,CAAC,IAAI,CAAC;IACxE,OAAO,CAAC,IAAI,CAAQ;IAEd,GAAG;IAIT,MAAM,CAAC,IAAI,EAAE,IAAI;IAIjB,MAAM;CAGT"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatasetMemoryEntry = void 0;
4
+ class DatasetMemoryEntry {
5
+ constructor() {
6
+ Object.defineProperty(this, "data", {
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true,
10
+ value: void 0
11
+ });
12
+ }
13
+ async get() {
14
+ return this.data;
15
+ }
16
+ update(data) {
17
+ this.data = data;
18
+ }
19
+ delete() {
20
+ // No-op
21
+ }
22
+ }
23
+ exports.DatasetMemoryEntry = DatasetMemoryEntry;
24
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/fs/dataset/memory.ts"],"names":[],"mappings":";;;AAEA,MAAa,kBAAkB;IAA/B;QACI;;;;;WAAoB;IAaxB,CAAC;IAXG,KAAK,CAAC,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,IAAU;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM;QACF,QAAQ;IACZ,CAAC;CACJ;AAdD,gDAcC"}
@@ -0,0 +1,15 @@
1
+ import type { CreateStorageImplementationOptions } from '.';
2
+ import type { InternalKeyRecord } from '../../resource-clients/key-value-store';
3
+ import type { StorageImplementation } from '../common';
4
+ export declare class KeyValueFileSystemEntry implements StorageImplementation<InternalKeyRecord> {
5
+ private storeDirectory;
6
+ private writeMetadata;
7
+ private filePath;
8
+ private fileMetadataPath;
9
+ private rawRecord;
10
+ constructor(options: CreateStorageImplementationOptions);
11
+ get(): Promise<InternalKeyRecord>;
12
+ update(data: InternalKeyRecord): Promise<void>;
13
+ delete(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../../src/fs/key-value-store/fs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,GAAG,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAGhF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEvD,qBAAa,uBAAwB,YAAW,qBAAqB,CAAC,iBAAiB,CAAC;IACpF,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAU;IAE/B,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,SAAS,CAAoC;gBAEzC,OAAO,EAAE,kCAAkC;IAKjD,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA0BjC,MAAM,CAAC,IAAI,EAAE,iBAAiB;IAe9B,MAAM;CAIf"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyValueFileSystemEntry = void 0;
4
+ const fs_extra_1 = require("fs-extra");
5
+ const promises_1 = require("node:fs/promises");
6
+ const node_path_1 = require("node:path");
7
+ const win32_1 = require("node:path/win32");
8
+ const utils_1 = require("../../utils");
9
+ const worker_utils_1 = require("../../workers/worker-utils");
10
+ class KeyValueFileSystemEntry {
11
+ constructor(options) {
12
+ Object.defineProperty(this, "storeDirectory", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: void 0
17
+ });
18
+ Object.defineProperty(this, "writeMetadata", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: void 0
23
+ });
24
+ Object.defineProperty(this, "filePath", {
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true,
28
+ value: void 0
29
+ });
30
+ Object.defineProperty(this, "fileMetadataPath", {
31
+ enumerable: true,
32
+ configurable: true,
33
+ writable: true,
34
+ value: void 0
35
+ });
36
+ Object.defineProperty(this, "rawRecord", {
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true,
40
+ value: void 0
41
+ });
42
+ this.storeDirectory = options.storeDirectory;
43
+ this.writeMetadata = options.writeMetadata;
44
+ }
45
+ async get() {
46
+ let file;
47
+ try {
48
+ file = await (0, promises_1.readFile)(this.filePath);
49
+ }
50
+ catch {
51
+ try {
52
+ // Try without extension
53
+ file = await (0, promises_1.readFile)((0, node_path_1.resolve)(this.storeDirectory, this.rawRecord.key));
54
+ utils_1.memoryStorageLog.warning([
55
+ `Key-value entry "${this.rawRecord.key}" for store ${(0, win32_1.basename)(this.storeDirectory)} does not have a file extension, assuming it as text.`,
56
+ 'If you want to have correct interpretation of the file, you should add a file extension to the entry.',
57
+ ].join('\n'));
58
+ file = file.toString('utf-8');
59
+ }
60
+ catch {
61
+ // This is impossible to happen, but just in case
62
+ throw new Error(`Could not find file at ${this.filePath}`);
63
+ }
64
+ }
65
+ return {
66
+ ...this.rawRecord,
67
+ value: file,
68
+ };
69
+ }
70
+ async update(data) {
71
+ this.filePath ?? (this.filePath = (0, node_path_1.resolve)(this.storeDirectory, `${data.key}.${data.extension}`));
72
+ this.fileMetadataPath ?? (this.fileMetadataPath = (0, node_path_1.resolve)(this.storeDirectory, `${data.key}.__metadata__.json`));
73
+ const { value, ...rest } = data;
74
+ this.rawRecord = rest;
75
+ await (0, fs_extra_1.ensureDir)((0, node_path_1.dirname)(this.filePath));
76
+ await (0, worker_utils_1.lockAndWrite)(this.filePath, value, false);
77
+ if (this.writeMetadata) {
78
+ await (0, worker_utils_1.lockAndWrite)(this.fileMetadataPath, JSON.stringify(rest), true);
79
+ }
80
+ }
81
+ async delete() {
82
+ await (0, promises_1.rm)(this.filePath, { force: true });
83
+ await (0, promises_1.rm)(this.fileMetadataPath, { force: true });
84
+ }
85
+ }
86
+ exports.KeyValueFileSystemEntry = KeyValueFileSystemEntry;
87
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/fs/key-value-store/fs.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AACrC,+CAAgD;AAChD,yCAA6C;AAC7C,2CAA2C;AAG3C,uCAA+C;AAC/C,6DAA0D;AAG1D,MAAa,uBAAuB;IAQhC,YAAY,OAA2C;QAPvD;;;;;WAA+B;QAC/B;;;;;WAA+B;QAE/B;;;;;WAA0B;QAC1B;;;;;WAAkC;QAClC;;;;;WAAqD;QAGjD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,GAAG;QACL,IAAI,IAAqB,CAAC;QAE1B,IAAI;YACA,IAAI,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACxC;QAAC,MAAM;YACJ,IAAI;gBACA,wBAAwB;gBACxB,IAAI,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxE,wBAAgB,CAAC,OAAO,CAAC;oBACrB,oBAAoB,IAAI,CAAC,SAAS,CAAC,GAAG,eAAe,IAAA,gBAAQ,EAAC,IAAI,CAAC,cAAc,CAAC,uDAAuD;oBACzI,uGAAuG;iBAC1G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACd,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aACjC;YAAC,MAAM;gBACJ,iDAAiD;gBACjD,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC9D;SACJ;QAED,OAAO;YACH,GAAG,IAAI,CAAC,SAAS;YACjB,KAAK,EAAE,IAAI;SACd,CAAC;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAuB;QAChC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,IAAA,mBAAO,EAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,EAAC;QAChF,IAAI,CAAC,gBAAgB,KAArB,IAAI,CAAC,gBAAgB,GAAK,IAAA,mBAAO,EAAC,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,oBAAoB,CAAC,EAAC;QAExF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,MAAM,IAAA,oBAAS,EAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC,MAAM,IAAA,2BAAY,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,MAAM,IAAA,2BAAY,EAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;SACzE;IACL,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,IAAA,aAAE,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,IAAA,aAAE,EAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;CACJ;AA1DD,0DA0DC"}
@@ -0,0 +1,9 @@
1
+ import type { InternalKeyRecord } from '../../resource-clients/key-value-store';
2
+ import type { StorageImplementation } from '../common';
3
+ export declare function createKeyValueStorageImplementation(options: CreateStorageImplementationOptions): StorageImplementation<InternalKeyRecord>;
4
+ export interface CreateStorageImplementationOptions {
5
+ persistStorage: boolean;
6
+ storeDirectory: string;
7
+ writeMetadata: boolean;
8
+ }
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fs/key-value-store/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAIvD,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,kCAAkC,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAMzI;AAED,MAAM,WAAW,kCAAkC;IAC/C,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;CAC1B"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createKeyValueStorageImplementation = void 0;
4
+ const fs_1 = require("./fs");
5
+ const memory_1 = require("./memory");
6
+ function createKeyValueStorageImplementation(options) {
7
+ if (options.persistStorage) {
8
+ return new fs_1.KeyValueFileSystemEntry(options);
9
+ }
10
+ return new memory_1.KeyValueMemoryEntry();
11
+ }
12
+ exports.createKeyValueStorageImplementation = createKeyValueStorageImplementation;
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/fs/key-value-store/index.ts"],"names":[],"mappings":";;;AAEA,6BAA+C;AAC/C,qCAA+C;AAE/C,SAAgB,mCAAmC,CAAC,OAA2C;IAC3F,IAAI,OAAO,CAAC,cAAc,EAAE;QACxB,OAAO,IAAI,4BAAuB,CAAC,OAAO,CAAC,CAAC;KAC/C;IAED,OAAO,IAAI,4BAAmB,EAAE,CAAC;AACrC,CAAC;AAND,kFAMC"}
@@ -0,0 +1,9 @@
1
+ import type { InternalKeyRecord } from '../../resource-clients/key-value-store';
2
+ import type { StorageImplementation } from '../common';
3
+ export declare class KeyValueMemoryEntry implements StorageImplementation<InternalKeyRecord> {
4
+ private data;
5
+ get(): Promise<InternalKeyRecord>;
6
+ update(data: InternalKeyRecord): void;
7
+ delete(): void;
8
+ }
9
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/fs/key-value-store/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEvD,qBAAa,mBAAoB,YAAW,qBAAqB,CAAC,iBAAiB,CAAC;IAChF,OAAO,CAAC,IAAI,CAAqB;IAE3B,GAAG;IAIT,MAAM,CAAC,IAAI,EAAE,iBAAiB;IAI9B,MAAM;CAGT"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyValueMemoryEntry = void 0;
4
+ class KeyValueMemoryEntry {
5
+ constructor() {
6
+ Object.defineProperty(this, "data", {
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true,
10
+ value: void 0
11
+ });
12
+ }
13
+ async get() {
14
+ return this.data;
15
+ }
16
+ update(data) {
17
+ this.data = data;
18
+ }
19
+ delete() {
20
+ // No-op
21
+ }
22
+ }
23
+ exports.KeyValueMemoryEntry = KeyValueMemoryEntry;
24
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/fs/key-value-store/memory.ts"],"names":[],"mappings":";;;AAGA,MAAa,mBAAmB;IAAhC;QACI;;;;;WAAiC;IAarC,CAAC;IAXG,KAAK,CAAC,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,IAAuB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM;QACF,QAAQ;IACZ,CAAC;CACJ;AAdD,kDAcC"}
@@ -0,0 +1,11 @@
1
+ import type { CreateStorageImplementationOptions } from '.';
2
+ import type { InternalRequest } from '../../resource-clients/request-queue';
3
+ import type { StorageImplementation } from '../common';
4
+ export declare class RequestQueueFileSystemEntry implements StorageImplementation<InternalRequest> {
5
+ private filePath;
6
+ constructor(options: CreateStorageImplementationOptions);
7
+ get(): Promise<any>;
8
+ update(data: InternalRequest): Promise<void>;
9
+ delete(): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../../src/fs/request-queue/fs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,GAAG,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEvD,qBAAa,2BAA4B,YAAW,qBAAqB,CAAC,eAAe,CAAC;IACtF,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,kCAAkC;IAIjD,GAAG;IAIH,MAAM,CAAC,IAAI,EAAE,eAAe;IAK5B,MAAM;CAGf"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequestQueueFileSystemEntry = void 0;
4
+ const fs_extra_1 = require("fs-extra");
5
+ const promises_1 = require("node:fs/promises");
6
+ const node_path_1 = require("node:path");
7
+ const worker_utils_1 = require("../../workers/worker-utils");
8
+ class RequestQueueFileSystemEntry {
9
+ constructor(options) {
10
+ Object.defineProperty(this, "filePath", {
11
+ enumerable: true,
12
+ configurable: true,
13
+ writable: true,
14
+ value: void 0
15
+ });
16
+ this.filePath = (0, node_path_1.resolve)(options.storeDirectory, `${options.requestId}.json`);
17
+ }
18
+ async get() {
19
+ return JSON.parse(await (0, promises_1.readFile)(this.filePath, 'utf-8'));
20
+ }
21
+ async update(data) {
22
+ await (0, fs_extra_1.ensureDir)((0, node_path_1.dirname)(this.filePath));
23
+ await (0, worker_utils_1.lockAndWrite)(this.filePath, data);
24
+ }
25
+ async delete() {
26
+ await (0, promises_1.rm)(this.filePath, { force: true });
27
+ }
28
+ }
29
+ exports.RequestQueueFileSystemEntry = RequestQueueFileSystemEntry;
30
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../src/fs/request-queue/fs.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AACrC,+CAAgD;AAChD,yCAA6C;AAG7C,6DAA0D;AAG1D,MAAa,2BAA2B;IAGpC,YAAY,OAA2C;QAFvD;;;;;WAAyB;QAGrB,IAAI,CAAC,QAAQ,GAAG,IAAA,mBAAO,EAAC,OAAO,CAAC,cAAc,EAAE,GAAG,OAAO,CAAC,SAAS,OAAO,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,GAAG;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAqB;QAC9B,MAAM,IAAA,oBAAS,EAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxC,MAAM,IAAA,2BAAY,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,IAAA,aAAE,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;CACJ;AAnBD,kEAmBC"}
@@ -0,0 +1,9 @@
1
+ import type { InternalRequest } from '../../resource-clients/request-queue';
2
+ import type { StorageImplementation } from '../common';
3
+ export declare function createRequestQueueStorageImplementation(options: CreateStorageImplementationOptions): StorageImplementation<InternalRequest>;
4
+ export interface CreateStorageImplementationOptions {
5
+ persistStorage: boolean;
6
+ storeDirectory: string;
7
+ requestId: string;
8
+ }
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fs/request-queue/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAIvD,wBAAgB,uCAAuC,CAAC,OAAO,EAAE,kCAAkC,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAM3I;AAED,MAAM,WAAW,kCAAkC;IAC/C,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACrB"}