@crawlee/memory-storage 4.0.0-beta.65 → 4.0.0-beta.67

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 (80) hide show
  1. package/consts.d.ts +0 -12
  2. package/consts.d.ts.map +1 -1
  3. package/consts.js +0 -13
  4. package/consts.js.map +1 -1
  5. package/memory-storage.d.ts +16 -36
  6. package/memory-storage.d.ts.map +1 -1
  7. package/memory-storage.js +59 -239
  8. package/memory-storage.js.map +1 -1
  9. package/package.json +3 -6
  10. package/resource-clients/common/base-client.d.ts +0 -3
  11. package/resource-clients/common/base-client.d.ts.map +1 -1
  12. package/resource-clients/common/base-client.js +0 -6
  13. package/resource-clients/common/base-client.js.map +1 -1
  14. package/resource-clients/dataset.d.ts +9 -11
  15. package/resource-clients/dataset.d.ts.map +1 -1
  16. package/resource-clients/dataset.js +8 -42
  17. package/resource-clients/dataset.js.map +1 -1
  18. package/resource-clients/key-value-store.d.ts +18 -15
  19. package/resource-clients/key-value-store.d.ts.map +1 -1
  20. package/resource-clients/key-value-store.js +31 -47
  21. package/resource-clients/key-value-store.js.map +1 -1
  22. package/resource-clients/request-queue.d.ts +50 -20
  23. package/resource-clients/request-queue.d.ts.map +1 -1
  24. package/resource-clients/request-queue.js +251 -281
  25. package/resource-clients/request-queue.js.map +1 -1
  26. package/utils.d.ts +0 -14
  27. package/utils.d.ts.map +1 -1
  28. package/utils.js.map +1 -1
  29. package/background-handler/fs-utils.d.ts +0 -6
  30. package/background-handler/fs-utils.d.ts.map +0 -1
  31. package/background-handler/fs-utils.js +0 -63
  32. package/background-handler/fs-utils.js.map +0 -1
  33. package/background-handler/index.d.ts +0 -13
  34. package/background-handler/index.d.ts.map +0 -1
  35. package/background-handler/index.js +0 -29
  36. package/background-handler/index.js.map +0 -1
  37. package/cache-helpers.d.ts +0 -9
  38. package/cache-helpers.d.ts.map +0 -1
  39. package/cache-helpers.js +0 -319
  40. package/cache-helpers.js.map +0 -1
  41. package/fs/common.d.ts +0 -6
  42. package/fs/common.d.ts.map +0 -1
  43. package/fs/common.js +0 -2
  44. package/fs/common.js.map +0 -1
  45. package/fs/dataset/fs.d.ts +0 -11
  46. package/fs/dataset/fs.d.ts.map +0 -1
  47. package/fs/dataset/fs.js +0 -37
  48. package/fs/dataset/fs.js.map +0 -1
  49. package/fs/dataset/index.d.ts +0 -10
  50. package/fs/dataset/index.d.ts.map +0 -1
  51. package/fs/dataset/index.js +0 -9
  52. package/fs/dataset/index.js.map +0 -1
  53. package/fs/dataset/memory.d.ts +0 -8
  54. package/fs/dataset/memory.d.ts.map +0 -1
  55. package/fs/dataset/memory.js +0 -13
  56. package/fs/dataset/memory.js.map +0 -1
  57. package/fs/key-value-store/fs.d.ts +0 -17
  58. package/fs/key-value-store/fs.d.ts.map +0 -1
  59. package/fs/key-value-store/fs.js +0 -83
  60. package/fs/key-value-store/fs.js.map +0 -1
  61. package/fs/key-value-store/index.d.ts +0 -11
  62. package/fs/key-value-store/index.d.ts.map +0 -1
  63. package/fs/key-value-store/index.js +0 -9
  64. package/fs/key-value-store/index.js.map +0 -1
  65. package/fs/key-value-store/memory.d.ts +0 -9
  66. package/fs/key-value-store/memory.d.ts.map +0 -1
  67. package/fs/key-value-store/memory.js +0 -13
  68. package/fs/key-value-store/memory.js.map +0 -1
  69. package/fs/request-queue/fs.d.ts +0 -21
  70. package/fs/request-queue/fs.d.ts.map +0 -1
  71. package/fs/request-queue/fs.js +0 -72
  72. package/fs/request-queue/fs.js.map +0 -1
  73. package/fs/request-queue/index.d.ts +0 -9
  74. package/fs/request-queue/index.d.ts.map +0 -1
  75. package/fs/request-queue/index.js +0 -9
  76. package/fs/request-queue/index.js.map +0 -1
  77. package/fs/request-queue/memory.d.ts +0 -10
  78. package/fs/request-queue/memory.d.ts.map +0 -1
  79. package/fs/request-queue/memory.js +0 -15
  80. package/fs/request-queue/memory.js.map +0 -1
@@ -1,31 +1,29 @@
1
1
  import type * as storage from '@crawlee/types';
2
2
  import type { Dictionary } from '@crawlee/types';
3
- import type { MemoryStorage } from '../index.js';
3
+ import type { MemoryStorageClient } from '../index.js';
4
4
  import { BaseClient } from './common/base-client.js';
5
5
  export interface DatasetClientOptions {
6
6
  id?: string;
7
7
  name?: string;
8
8
  /**
9
- * The directory name to use on disk. When provided, takes precedence over `name` and `id`
10
- * for the directory path. This allows alias-opened storages to have a directory name
11
- * that differs from their metadata `name` (which is `undefined` for unnamed storages).
9
+ * The key used for cache lookup. When provided, takes precedence over `name` and `id`.
10
+ * This allows alias-opened storages to have a cache key that differs from their
11
+ * metadata `name` (which is `undefined` for unnamed storages).
12
12
  */
13
- directoryName?: string;
14
- baseStorageDirectory: string;
15
- client: MemoryStorage;
13
+ cacheKey?: string;
14
+ client: MemoryStorageClient;
16
15
  }
17
16
  export declare class DatasetClient<Data extends Dictionary = Dictionary> extends BaseClient implements storage.DatasetClient<Data> {
18
17
  name?: string;
19
18
  /**
20
- * The key used for directory naming and cache lookup. For named storages, this equals
21
- * the name. For alias (unnamed) storages, this is the alias string. Falls back to id.
19
+ * The key used for cache lookup. For named storages, this equals the name. For alias (unnamed)
20
+ * storages, this is the alias string. Falls back to id.
22
21
  */
23
- directoryName: string;
22
+ cacheKey: string;
24
23
  createdAt: Date;
25
24
  accessedAt: Date;
26
25
  modifiedAt: Date;
27
26
  itemCount: number;
28
- datasetDirectory: string;
29
27
  private readonly datasetEntries;
30
28
  private readonly client;
31
29
  constructor(options: DatasetClientOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../../src/resource-clients/dataset.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAcrD,MAAM,WAAW,oBAAoB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,aAAa,CAAC;CACzB;AAED,qBAAa,aAAa,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,CAC3D,SAAQ,UACR,YAAW,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;IAEtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,OAAc;IACvB,UAAU,OAAc;IACxB,UAAU,OAAc;IACxB,SAAS,SAAK;IACd,gBAAgB,EAAE,MAAM,CAAC;IAEzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkD;IACjF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,OAAO,EAAE,oBAAoB;IAQnC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;IAK3C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAYrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB5B,OAAO,CAAC,OAAO,GAAE,OAAO,CAAC,wBAA6B,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAgB/E,WAAW;IA2BnB,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB5C,aAAa,IAAI,OAAO,CAAC,WAAW;IAWpC,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,gBAAgB;CAqB3B"}
1
+ {"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../../src/resource-clients/dataset.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAcrD,MAAM,WAAW,oBAAoB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,mBAAmB,CAAC;CAC/B;AAED,qBAAa,aAAa,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,CAC3D,SAAQ,UACR,YAAW,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;IAEtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,OAAc;IACvB,UAAU,OAAc;IACxB,UAAU,OAAc;IACxB,SAAS,SAAK;IAEd,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;gBAEjC,OAAO,EAAE,oBAAoB;IAOnC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;IAK3C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,OAAO,CAAC,OAAO,GAAE,OAAO,CAAC,wBAA6B,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAgB/E,WAAW;IA2BnB,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5C,aAAa,IAAI,OAAO,CAAC,WAAW;IAWpC,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,gBAAgB;CAO3B"}
@@ -1,10 +1,5 @@
1
- /* eslint-disable import/no-duplicates */
2
1
  import { randomUUID } from 'node:crypto';
3
- import { rm } from 'node:fs/promises';
4
- import { resolve } from 'node:path';
5
2
  import { s } from '@sapphire/shapeshift';
6
- import { scheduleBackgroundTask } from '../background-handler/index.js';
7
- import { createDatasetStorageImplementation } from '../fs/dataset/index.js';
8
3
  import { BaseClient } from './common/base-client.js';
9
4
  /**
10
5
  * This is what API returns in the x-apify-pagination-limit
@@ -12,29 +7,27 @@ import { BaseClient } from './common/base-client.js';
12
7
  */
13
8
  const LIST_ITEMS_LIMIT = 999_999_999_999;
14
9
  /**
15
- * Number of characters of the dataset item file names.
16
- * E.g.: 000000019.json - 9 digits
10
+ * Number of characters of the dataset item entry names.
11
+ * E.g.: 000000019 - 9 digits
17
12
  */
18
13
  const LOCAL_ENTRY_NAME_DIGITS = 9;
19
14
  export class DatasetClient extends BaseClient {
20
15
  name;
21
16
  /**
22
- * The key used for directory naming and cache lookup. For named storages, this equals
23
- * the name. For alias (unnamed) storages, this is the alias string. Falls back to id.
17
+ * The key used for cache lookup. For named storages, this equals the name. For alias (unnamed)
18
+ * storages, this is the alias string. Falls back to id.
24
19
  */
25
- directoryName;
20
+ cacheKey;
26
21
  createdAt = new Date();
27
22
  accessedAt = new Date();
28
23
  modifiedAt = new Date();
29
24
  itemCount = 0;
30
- datasetDirectory;
31
25
  datasetEntries = new Map();
32
26
  client;
33
27
  constructor(options) {
34
28
  super(options.id ?? randomUUID());
35
29
  this.name = options.name;
36
- this.directoryName = options.directoryName ?? this.name ?? this.id;
37
- this.datasetDirectory = resolve(options.baseStorageDirectory, this.directoryName);
30
+ this.cacheKey = options.cacheKey ?? this.name ?? this.id;
38
31
  this.client = options.client;
39
32
  }
40
33
  async getMetadata() {
@@ -47,22 +40,11 @@ export class DatasetClient extends BaseClient {
47
40
  const [oldClient] = this.client.datasetClientCache.splice(storeIndex, 1);
48
41
  oldClient.itemCount = 0;
49
42
  oldClient.datasetEntries.clear();
50
- await rm(oldClient.datasetDirectory, { recursive: true, force: true });
51
43
  }
52
44
  }
53
45
  async purge() {
54
46
  this.itemCount = 0;
55
47
  this.datasetEntries.clear();
56
- // Remove item files from disk but keep the directory
57
- if (this.client.persistStorage) {
58
- const { readdir } = await import('node:fs/promises');
59
- const entries = await readdir(this.datasetDirectory).catch(() => []);
60
- for (const entry of entries) {
61
- if (entry !== '__metadata__.json') {
62
- await rm(resolve(this.datasetDirectory, entry), { force: true });
63
- }
64
- }
65
- }
66
48
  this.updateTimestamps(true);
67
49
  }
68
50
  getData(options = {}) {
@@ -85,7 +67,7 @@ export class DatasetClient extends BaseClient {
85
67
  const items = [];
86
68
  for (let idx = start; idx < end; idx++) {
87
69
  const entryNumber = this.generateLocalEntryName(idx);
88
- items.push(await this.datasetEntries.get(entryNumber).get());
70
+ items.push(this.datasetEntries.get(entryNumber));
89
71
  }
90
72
  this.updateTimestamps(false);
91
73
  return {
@@ -100,13 +82,7 @@ export class DatasetClient extends BaseClient {
100
82
  async pushData(items) {
101
83
  for (const entry of items) {
102
84
  const idx = this.generateLocalEntryName(++this.itemCount);
103
- const storageEntry = createDatasetStorageImplementation({
104
- entityId: idx,
105
- persistStorage: this.client.persistStorage,
106
- storeDirectory: this.datasetDirectory,
107
- });
108
- await storageEntry.update(entry);
109
- this.datasetEntries.set(idx, storageEntry);
85
+ this.datasetEntries.set(idx, entry);
110
86
  }
111
87
  this.updateTimestamps(true);
112
88
  }
@@ -133,16 +109,6 @@ export class DatasetClient extends BaseClient {
133
109
  if (hasBeenModified) {
134
110
  this.modifiedAt = new Date();
135
111
  }
136
- const data = this.toDatasetInfo();
137
- scheduleBackgroundTask({
138
- action: 'update-metadata',
139
- data,
140
- entityType: 'datasets',
141
- entityDirectory: this.datasetDirectory,
142
- id: this.name ?? this.id,
143
- writeMetadata: this.client.writeMetadata,
144
- persistStorage: this.client.persistStorage,
145
- }, this.client.logger);
146
112
  }
147
113
  }
148
114
  //# sourceMappingURL=dataset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../src/resource-clients/dataset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../src/resource-clients/dataset.ts"],"names":[],"mappings":"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"}
@@ -1,47 +1,50 @@
1
1
  import type * as storage from '@crawlee/types';
2
- import type { MemoryStorage } from '../index.js';
2
+ import type { MemoryStorageClient } from '../index.js';
3
3
  import { BaseClient } from './common/base-client.js';
4
4
  export interface KeyValueStoreClientOptions {
5
5
  name?: string;
6
6
  id?: string;
7
7
  /**
8
- * The directory name to use on disk. When provided, takes precedence over `name` and `id`
9
- * for the directory path. This allows alias-opened storages to have a directory name
10
- * that differs from their metadata `name` (which is `undefined` for unnamed storages).
8
+ * The key used for cache lookup. When provided, takes precedence over `name` and `id`.
9
+ * This allows alias-opened storages to have a cache key that differs from their
10
+ * metadata `name` (which is `undefined` for unnamed storages).
11
11
  */
12
- directoryName?: string;
13
- baseStorageDirectory: string;
14
- client: MemoryStorage;
12
+ cacheKey?: string;
13
+ client: MemoryStorageClient;
15
14
  }
16
15
  export interface InternalKeyRecord {
17
16
  key: string;
18
17
  value: Buffer | string;
19
18
  contentType?: string;
20
19
  extension: string;
21
- filePath?: string;
22
20
  }
23
21
  export declare class KeyValueStoreClient extends BaseClient implements storage.KeyValueStoreClient {
24
22
  name?: string;
25
23
  /**
26
- * The key used for directory naming and cache lookup. For named storages, this equals
27
- * the name. For alias (unnamed) storages, this is the alias string. Falls back to id.
24
+ * The key used for cache lookup. For named storages, this equals the name. For alias (unnamed)
25
+ * storages, this is the alias string. Falls back to id.
28
26
  */
29
- directoryName: string;
27
+ cacheKey: string;
30
28
  createdAt: Date;
31
29
  accessedAt: Date;
32
30
  modifiedAt: Date;
33
- keyValueStoreDirectory: string;
34
31
  private readonly keyValueEntries;
35
32
  private readonly client;
36
33
  constructor(options: KeyValueStoreClientOptions);
37
34
  getMetadata(): Promise<storage.KeyValueStoreInfo>;
38
35
  drop(): Promise<void>;
39
36
  purge(): Promise<void>;
37
+ /**
38
+ * Purges every record except the run's input. Used by {@link MemoryStorageClient.purge} for the
39
+ * default key-value store, mirroring `FileSystemStorageClient`, which preserves `INPUT` (and its
40
+ * extension variants) when purging the default store. The in-memory key has no extension, so we
41
+ * preserve the bare `INPUT` key only.
42
+ */
43
+ purgeExceptInput(): Promise<void>;
40
44
  listKeys(options?: storage.KeyValueStoreListKeysOptions): Promise<storage.KeyValueStoreItemData[]>;
41
45
  /**
42
- * Generates a public file:// URL for accessing a specific record in the key-value store.
43
- *
44
- * Returns `undefined` if the record does not exist or has no associated file path (i.e., it is not stored as a file).
46
+ * In-memory records are not file-backed, so there is no public file URL to return.
47
+ * Always resolves to `undefined`.
45
48
  * @param key The key of the record to generate the public URL for.
46
49
  */
47
50
  getPublicUrl(key: string): Promise<string | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"key-value-store.d.ts","sourceRoot":"","sources":["../../src/resource-clients/key-value-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAO/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKrD,MAAM,WAAW,0BAA0B;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAoB,SAAQ,UAAW,YAAW,OAAO,CAAC,mBAAmB;IACtF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,OAAc;IACvB,UAAU,OAAc;IACxB,UAAU,OAAc;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+D;IAC/F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,OAAO,EAAE,0BAA0B;IAQzC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAKjD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,QAAQ,CAAC,OAAO,GAAE,OAAO,CAAC,4BAAiC,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IA8C5G;;;;;OAKG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAQ5D;;;;;OAKG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAyBvE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuE5D,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7C,mBAAmB,IAAI,OAAO,CAAC,iBAAiB;IAWhD,OAAO,CAAC,gBAAgB;CAqB3B"}
1
+ {"version":3,"file":"key-value-store.d.ts","sourceRoot":"","sources":["../../src/resource-clients/key-value-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAI/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAWrD,MAAM,WAAW,0BAA0B;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,mBAAmB,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAoB,SAAQ,UAAW,YAAW,OAAO,CAAC,mBAAmB;IACtF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,OAAc;IACvB,UAAU,OAAc;IACxB,UAAU,OAAc;IAExB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwC;IACxE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;gBAEjC,OAAO,EAAE,0BAA0B;IAOzC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;IAKjD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IASrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;;;;OAKG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC,QAAQ,CAAC,OAAO,GAAE,OAAO,CAAC,4BAAiC,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IA4C5G;;;;OAIG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAM5D;;;;;OAKG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAuBvE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8D5D,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7C,mBAAmB,IAAI,OAAO,CAAC,iBAAiB;IAWhD,OAAO,CAAC,gBAAgB;CAO3B"}
@@ -1,32 +1,31 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { rm } from 'node:fs/promises';
3
- import { resolve } from 'node:path';
4
2
  import { s } from '@sapphire/shapeshift';
5
- import { scheduleBackgroundTask } from '../background-handler/index.js';
6
3
  import { maybeParseBody } from '../body-parser.js';
7
- import { createKeyValueStorageImplementation } from '../fs/key-value-store/index.js';
8
4
  import { isBuffer, isStream } from '../utils.js';
9
5
  import { BaseClient } from './common/base-client.js';
10
6
  import mime from 'mime-types';
11
7
  const DEFAULT_LOCAL_FILE_EXTENSION = 'bin';
8
+ /**
9
+ * Key under which a run's input is stored in the default key-value store. Matches Crawlee's default
10
+ * `inputKey` (`CRAWLEE_INPUT_KEY`) and the `INPUT` files `FileSystemStorageClient` preserves on purge.
11
+ */
12
+ const KEY_VALUE_STORE_INPUT_KEY = 'INPUT';
12
13
  export class KeyValueStoreClient extends BaseClient {
13
14
  name;
14
15
  /**
15
- * The key used for directory naming and cache lookup. For named storages, this equals
16
- * the name. For alias (unnamed) storages, this is the alias string. Falls back to id.
16
+ * The key used for cache lookup. For named storages, this equals the name. For alias (unnamed)
17
+ * storages, this is the alias string. Falls back to id.
17
18
  */
18
- directoryName;
19
+ cacheKey;
19
20
  createdAt = new Date();
20
21
  accessedAt = new Date();
21
22
  modifiedAt = new Date();
22
- keyValueStoreDirectory;
23
23
  keyValueEntries = new Map();
24
24
  client;
25
25
  constructor(options) {
26
26
  super(options.id ?? randomUUID());
27
27
  this.name = options.name;
28
- this.directoryName = options.directoryName ?? this.name ?? this.id;
29
- this.keyValueStoreDirectory = resolve(options.baseStorageDirectory, this.directoryName);
28
+ this.cacheKey = options.cacheKey ?? this.name ?? this.id;
30
29
  this.client = options.client;
31
30
  }
32
31
  async getMetadata() {
@@ -38,15 +37,23 @@ export class KeyValueStoreClient extends BaseClient {
38
37
  if (storeIndex !== -1) {
39
38
  const [oldClient] = this.client.keyValueStoreCache.splice(storeIndex, 1);
40
39
  oldClient.keyValueEntries.clear();
41
- await rm(oldClient.keyValueStoreDirectory, { recursive: true, force: true });
42
40
  }
43
41
  }
44
42
  async purge() {
45
- // Delete all entries
46
- const entriesToDelete = [...this.keyValueEntries.entries()];
47
- for (const [key, entry] of entriesToDelete) {
48
- this.keyValueEntries.delete(key);
49
- await entry.delete();
43
+ this.keyValueEntries.clear();
44
+ this.updateTimestamps(true);
45
+ }
46
+ /**
47
+ * Purges every record except the run's input. Used by {@link MemoryStorageClient.purge} for the
48
+ * default key-value store, mirroring `FileSystemStorageClient`, which preserves `INPUT` (and its
49
+ * extension variants) when purging the default store. The in-memory key has no extension, so we
50
+ * preserve the bare `INPUT` key only.
51
+ */
52
+ async purgeExceptInput() {
53
+ for (const key of this.keyValueEntries.keys()) {
54
+ if (key !== KEY_VALUE_STORE_INPUT_KEY) {
55
+ this.keyValueEntries.delete(key);
56
+ }
50
57
  }
51
58
  this.updateTimestamps(true);
52
59
  }
@@ -59,8 +66,7 @@ export class KeyValueStoreClient extends BaseClient {
59
66
  })
60
67
  .parse(options);
61
68
  const items = [];
62
- for (const storageEntry of this.keyValueEntries.values()) {
63
- const record = await storageEntry.get();
69
+ for (const record of this.keyValueEntries.values()) {
64
70
  const size = Buffer.byteLength(record.value);
65
71
  items.push({
66
72
  key: record.key,
@@ -85,15 +91,13 @@ export class KeyValueStoreClient extends BaseClient {
85
91
  return filteredItems;
86
92
  }
87
93
  /**
88
- * Generates a public file:// URL for accessing a specific record in the key-value store.
89
- *
90
- * Returns `undefined` if the record does not exist or has no associated file path (i.e., it is not stored as a file).
94
+ * In-memory records are not file-backed, so there is no public file URL to return.
95
+ * Always resolves to `undefined`.
91
96
  * @param key The key of the record to generate the public URL for.
92
97
  */
93
98
  async getPublicUrl(key) {
94
99
  s.string().parse(key);
95
- const storageEntry = await this.keyValueEntries.get(key)?.get();
96
- return storageEntry?.filePath;
100
+ return undefined;
97
101
  }
98
102
  /**
99
103
  * Tests whether a record with the given key exists in the key-value store without retrieving its value.
@@ -107,11 +111,10 @@ export class KeyValueStoreClient extends BaseClient {
107
111
  }
108
112
  async getValue(key) {
109
113
  s.string().parse(key);
110
- const storageEntry = this.keyValueEntries.get(key);
111
- if (!storageEntry) {
114
+ const entry = this.keyValueEntries.get(key);
115
+ if (!entry) {
112
116
  return undefined;
113
117
  }
114
- const entry = await storageEntry.get();
115
118
  const record = {
116
119
  key: entry.key,
117
120
  value: entry.value,
@@ -174,23 +177,14 @@ export class KeyValueStoreClient extends BaseClient {
174
177
  value,
175
178
  contentType,
176
179
  };
177
- const entry = createKeyValueStorageImplementation({
178
- persistStorage: this.client.persistStorage,
179
- storeDirectory: this.keyValueStoreDirectory,
180
- writeMetadata: this.client.writeMetadata,
181
- logger: this.client.logger,
182
- });
183
- await entry.update(_record);
184
- this.keyValueEntries.set(key, entry);
180
+ this.keyValueEntries.set(key, _record);
185
181
  this.updateTimestamps(true);
186
182
  }
187
183
  async deleteValue(key) {
188
184
  s.string().parse(key);
189
- const entry = this.keyValueEntries.get(key);
190
- if (entry) {
185
+ if (this.keyValueEntries.has(key)) {
191
186
  this.keyValueEntries.delete(key);
192
187
  this.updateTimestamps(true);
193
- await entry.delete();
194
188
  }
195
189
  }
196
190
  toKeyValueStoreInfo() {
@@ -208,16 +202,6 @@ export class KeyValueStoreClient extends BaseClient {
208
202
  if (hasBeenModified) {
209
203
  this.modifiedAt = new Date();
210
204
  }
211
- const data = this.toKeyValueStoreInfo();
212
- scheduleBackgroundTask({
213
- action: 'update-metadata',
214
- data,
215
- entityType: 'keyValueStores',
216
- entityDirectory: this.keyValueStoreDirectory,
217
- id: this.name ?? this.id,
218
- writeMetadata: this.client.writeMetadata,
219
- persistStorage: this.client.persistStorage,
220
- }, this.client.logger);
221
205
  }
222
206
  }
223
207
  //# sourceMappingURL=key-value-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"key-value-store.js","sourceRoot":"","sources":["../../src/resource-clients/key-value-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-value-store.js","sourceRoot":"","sources":["../../src/resource-clients/key-value-store.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,16 @@
1
1
  import type * as storage from '@crawlee/types';
2
- import type { MemoryStorage } from '../index.js';
2
+ import type { MemoryStorageClient } from '../index.js';
3
3
  import { BaseClient } from './common/base-client.js';
4
4
  export interface RequestQueueClientOptions {
5
5
  name?: string;
6
6
  id?: string;
7
7
  /**
8
- * The directory name to use on disk. When provided, takes precedence over `name` and `id`
9
- * for the directory path. This allows alias-opened storages to have a directory name
10
- * that differs from their metadata `name` (which is `undefined` for unnamed storages).
8
+ * The key used for cache lookup. When provided, takes precedence over `name` and `id`.
9
+ * This allows alias-opened storages to have a cache key that differs from their
10
+ * metadata `name` (which is `undefined` for unnamed storages).
11
11
  */
12
- directoryName?: string;
13
- baseStorageDirectory: string;
14
- client: MemoryStorage;
12
+ cacheKey?: string;
13
+ client: MemoryStorageClient;
15
14
  }
16
15
  export interface InternalRequest {
17
16
  id: string;
@@ -25,18 +24,34 @@ export interface InternalRequest {
25
24
  export declare class RequestQueueClient extends BaseClient implements storage.RequestQueueClient {
26
25
  name?: string;
27
26
  /**
28
- * The key used for directory naming and cache lookup. For named storages, this equals
29
- * the name. For alias (unnamed) storages, this is the alias string. Falls back to id.
27
+ * The key used for cache lookup. For named storages, this equals the name. For alias (unnamed)
28
+ * storages, this is the alias string. Falls back to id.
30
29
  */
31
- directoryName: string;
30
+ cacheKey: string;
32
31
  createdAt: Date;
33
32
  accessedAt: Date;
34
33
  modifiedAt: Date;
35
34
  handledRequestCount: number;
36
35
  pendingRequestCount: number;
37
- requestQueueDirectory: string;
38
- private readonly mutex;
36
+ /**
37
+ * Serializes every operation that reads-then-writes this client's shared queue state — the
38
+ * `requests` map, the `forefrontRequestIds` array, the `inProgressRequestIds` set and the request
39
+ * counts. Those mutations span `await` points, so without this mutex a concurrent operation could
40
+ * interleave and corrupt them (e.g. a head scan pruning `forefrontRequestIds` while
41
+ * `addBatchOfRequests` pushes to it). Held by every mutating method as well as by `isEmpty`/
42
+ * `isFinished`, whose head scan also prunes `forefrontRequestIds`.
43
+ */
44
+ private readonly queueStateMutex;
39
45
  private forefrontRequestIds;
46
+ /**
47
+ * IDs of requests currently fetched but not yet handled or reclaimed. A request in this set is
48
+ * "in progress" and will not be handed out again by {@link fetchNextRequest}.
49
+ *
50
+ * Unlike the file-system / platform clients, the in-memory queue lives entirely within a single
51
+ * process and is never shared with another consumer, so there is no need for an expiring,
52
+ * cross-process-visible lock — tracking in-progress requests in this set is enough.
53
+ */
54
+ private readonly inProgressRequestIds;
40
55
  private readonly requests;
41
56
  private readonly client;
42
57
  constructor(options: RequestQueueClientOptions);
@@ -44,14 +59,29 @@ export declare class RequestQueueClient extends BaseClient implements storage.Re
44
59
  drop(): Promise<void>;
45
60
  purge(): Promise<void>;
46
61
  private requestKeyIterator;
47
- listHead(options?: storage.ListOptions): Promise<storage.QueueHead>;
48
- listAndLockHead(options: storage.ListAndLockOptions): Promise<storage.ListAndLockHeadResult>;
49
- prolongRequestLock(id: string, options: storage.ProlongRequestLockOptions): Promise<storage.ProlongRequestLockResult>;
50
- deleteRequestLock(id: string, options?: storage.DeleteRequestLockOptions): Promise<void>;
51
- addRequest(request: storage.RequestSchema, options?: storage.RequestOptions): Promise<storage.QueueOperationInfo>;
52
- batchAddRequests(requests: storage.RequestSchema[], options?: storage.RequestOptions): Promise<storage.BatchAddRequestsResult>;
53
- getRequest(id: string): Promise<storage.RequestOptions | undefined>;
54
- updateRequest(request: storage.UpdateRequestSchema, options?: storage.RequestOptions): Promise<storage.QueueOperationInfo>;
62
+ /**
63
+ * Scans the queue and returns the pending head — requests that are neither handled nor currently
64
+ * in progress ordered by `orderNo`, deduplicated.
65
+ *
66
+ * When `detectInProgressRequests` is set, the result also carries an `hasInProgressRequests` flag
67
+ * telling whether any unhandled-but-in-progress request was skipped along the way. It lets
68
+ * {@link isFinished} distinguish "no work left at all" from "work remains, but it is currently being
69
+ * processed". Without it, a consumer with concurrency could consider the queue finished and shut the
70
+ * crawler down while it is still handling the last requests.
71
+ *
72
+ * Computing the flag is expensive: because an in-progress request may sit anywhere in the queue, it
73
+ * forces a scan of every pending entry even when only `limit` items are wanted. Callers that only
74
+ * need the head (e.g. {@link fetchNextRequest}, {@link isEmpty}) leave it off so the scan can stop as
75
+ * soon as the page is filled, keeping those calls O(head) instead of O(N).
76
+ */
77
+ private listPendingHead;
78
+ fetchNextRequest(): Promise<storage.RequestOptions | null>;
79
+ addBatchOfRequests(requests: storage.RequestSchema[], options?: storage.RequestOptions): Promise<storage.BatchAddRequestsResult>;
80
+ getRequest(uniqueKey: string): Promise<storage.RequestOptions | undefined>;
81
+ markRequestAsHandled(request: storage.UpdateRequestSchema): Promise<storage.QueueOperationInfo | null>;
82
+ reclaimRequest(request: storage.UpdateRequestSchema, options?: storage.RequestOptions): Promise<storage.QueueOperationInfo | null>;
83
+ isEmpty(): Promise<boolean>;
84
+ isFinished(): Promise<boolean>;
55
85
  toRequestQueueInfo(): storage.RequestQueueInfo;
56
86
  private updateTimestamps;
57
87
  private _jsonToRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"request-queue.d.ts","sourceRoot":"","sources":["../../src/resource-clients/request-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-queue.d.ts","sourceRoot":"","sources":["../../src/resource-clients/request-queue.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAqBrD,MAAM,WAAW,yBAAyB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,mBAAmB,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,kBAAmB,SAAQ,UAAW,YAAW,OAAO,CAAC,kBAAkB;IACpF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,OAAc;IACvB,UAAU,OAAc;IACxB,UAAU,OAAc;IACxB,mBAAmB,SAAK;IACxB,mBAAmB,SAAK;IACxB;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;IACpD,OAAO,CAAC,mBAAmB,CAAgB;IAE3C;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqB;IAE1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;gBAEjC,OAAO,EAAE,yBAAyB;IAOxC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAKhD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB5B,OAAO,CAAE,kBAAkB;IAU3B;;;;;;;;;;;;;;OAcG;YACW,eAAe;IAuDvB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAwB1D,kBAAkB,CACpB,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,EACjC,OAAO,GAAE,OAAO,CAAC,cAAmB,GACrC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC;IA6DpC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAQ1E,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAiDtG,cAAc,CAChB,OAAO,EAAE,OAAO,CAAC,mBAAmB,EACpC,OAAO,GAAE,OAAO,CAAC,cAAmB,GACrC,OAAO,CAAC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAgDvC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAqB3B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAsBpC,kBAAkB,IAAI,OAAO,CAAC,gBAAgB;IAgB9C,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,iBAAiB;CAO5B"}