@seedprotocol/sdk 0.7.9 → 0.7.10-next.1353.g74aeeed

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 (136) hide show
  1. package/README.md +1 -1
  2. package/dist/{BaseFileManager-BAlySv8w.js → BaseFileManager-DLou1TZS.js} +5 -1
  3. package/dist/BaseFileManager-DLou1TZS.js.map +1 -0
  4. package/dist/{Item-Bf4kWKpH.js → Item-oPnmIehk.js} +571 -346
  5. package/dist/Item-oPnmIehk.js.map +1 -0
  6. package/dist/{ModelProperty-BlaEgb_U.js → ModelProperty-D2vJozmW.js} +95 -62
  7. package/dist/ModelProperty-D2vJozmW.js.map +1 -0
  8. package/dist/{Schema-J_1f6p0c.js → Schema-BMXRF4j9.js} +88 -52
  9. package/dist/Schema-BMXRF4j9.js.map +1 -0
  10. package/dist/{SchemaValidationService-CnmKyzR-.js → SchemaValidationService-CieGrj5c.js} +5 -5
  11. package/dist/{SchemaValidationService-CnmKyzR-.js.map → SchemaValidationService-CieGrj5c.js.map} +1 -1
  12. package/dist/{errors-C1qUEZ7A.js → browserSupport-C64rX-2I.js} +38 -2
  13. package/dist/browserSupport-C64rX-2I.js.map +1 -0
  14. package/dist/{configurePlatform-CiOJ1R3q.js → configurePlatform-WkmvqeTO.js} +2 -2
  15. package/dist/{configurePlatform-CiOJ1R3q.js.map → configurePlatform-WkmvqeTO.js.map} +1 -1
  16. package/dist/{detachRowsBeforeDelete-sEaUwlOU.js → detachRowsBeforeDelete-BZr_0iZU.js} +2 -2
  17. package/dist/{detachRowsBeforeDelete-sEaUwlOU.js.map → detachRowsBeforeDelete-BZr_0iZU.js.map} +1 -1
  18. package/dist/dist/{BaseFileManager-BAlySv8w.d.ts → BaseFileManager-DLou1TZS.d.ts} +3 -1
  19. package/dist/dist/BaseFileManager-DLou1TZS.d.ts.map +1 -0
  20. package/dist/dist/{configurePlatform-CiOJ1R3q.d.ts → configurePlatform-WkmvqeTO.d.ts} +1 -1
  21. package/dist/dist/configurePlatform-WkmvqeTO.d.ts.map +1 -0
  22. package/dist/dist/{index-D0V-mjCV.d.ts → index-BjWk0x4-.d.ts} +1 -1
  23. package/dist/dist/{index-D0V-mjCV.d.ts.map → index-BjWk0x4-.d.ts.map} +1 -1
  24. package/dist/dist/{index.node-CYPemH-t.d.ts → index.node-BfiBriEq.d.ts} +7 -1
  25. package/dist/dist/{index.node-CYPemH-t.d.ts.map → index.node-BfiBriEq.d.ts.map} +1 -1
  26. package/dist/dist/platform.node.d.ts +2 -2
  27. package/dist/{eas-wB_fQ8Tc.js → eas-FZPPqxqe.js} +5 -5
  28. package/dist/{eas-wB_fQ8Tc.js.map → eas-FZPPqxqe.js.map} +1 -1
  29. package/dist/{errors-DLSoqSHG.js → errors-CnT0fSMK.js} +185 -97
  30. package/dist/errors-CnT0fSMK.js.map +1 -0
  31. package/dist/{getPublishPayload-BnIwpwz1.js → getPublishPayload-DKuEaq96.js} +8 -8
  32. package/dist/{getPublishPayload-BnIwpwz1.js.map → getPublishPayload-DKuEaq96.js.map} +1 -1
  33. package/dist/{getPublishPendingDiff-D6_-A5ns.js → getPublishPendingDiff-CH5xLMjU.js} +7 -7
  34. package/dist/{getPublishPendingDiff-D6_-A5ns.js.map → getPublishPendingDiff-CH5xLMjU.js.map} +1 -1
  35. package/dist/{getPublishUploads-sS6JfPgz.js → getPublishUploads-DivYpgNw.js} +7 -7
  36. package/dist/{getPublishUploads-sS6JfPgz.js.map → getPublishUploads-DivYpgNw.js.map} +1 -1
  37. package/dist/{index-D0V-mjCV.js → index-BjWk0x4-.js} +2 -2
  38. package/dist/index-BjWk0x4-.js.map +1 -0
  39. package/dist/{index-CYGWPoOx.js → index-CZMWKXLM.js} +7 -7
  40. package/dist/index-CZMWKXLM.js.map +1 -0
  41. package/dist/{index-BVBmz_cc.js → index-DXRhFg1N.js} +7 -7
  42. package/dist/index-DXRhFg1N.js.map +1 -0
  43. package/dist/{index-DmTtj1nk.js → index-Gh42_47r.js} +402 -20
  44. package/dist/index-Gh42_47r.js.map +1 -0
  45. package/dist/{index.browser-CUmBVYen.js → index.browser-DQstVvRV.js} +46 -10
  46. package/dist/index.browser-DQstVvRV.js.map +1 -0
  47. package/dist/{index.node-CYPemH-t.js → index.node-BfiBriEq.js} +31 -4
  48. package/dist/index.node-BfiBriEq.js.map +1 -0
  49. package/dist/main.js +17 -16
  50. package/dist/main.js.map +1 -1
  51. package/dist/{modelPropertyRecordSchemas-C7UgA5TH.js → modelPropertyRecordSchemas-DEe-lYhn.js} +5 -5
  52. package/dist/{modelPropertyRecordSchemas-C7UgA5TH.js.map → modelPropertyRecordSchemas-DEe-lYhn.js.map} +1 -1
  53. package/dist/node.js +8 -8
  54. package/dist/platform.browser.js +6 -6
  55. package/dist/platform.node.js +4 -4
  56. package/dist/{property-BxUYznH0.js → property-iNW1N3vm.js} +8 -8
  57. package/dist/{property-BxUYznH0.js.map → property-iNW1N3vm.js.map} +1 -1
  58. package/dist/{publishGraph-EcB40Uii.js → publishGraph-CRn_N3NT.js} +5 -5
  59. package/dist/{publishGraph-EcB40Uii.js.map → publishGraph-CRn_N3NT.js.map} +1 -1
  60. package/dist/{readHtmlBodyForStorageSeed-D6KPtWoR.js → readHtmlBodyForStorageSeed-B7HgPmq6.js} +10 -10
  61. package/dist/{readHtmlBodyForStorageSeed-D6KPtWoR.js.map → readHtmlBodyForStorageSeed-B7HgPmq6.js.map} +1 -1
  62. package/dist/src/Item/Item.d.ts +26 -5
  63. package/dist/src/Item/Item.d.ts.map +1 -1
  64. package/dist/src/ItemProperty/ItemProperty.d.ts +20 -5
  65. package/dist/src/ItemProperty/ItemProperty.d.ts.map +1 -1
  66. package/dist/src/ItemProperty/loadProperty.d.ts.map +1 -1
  67. package/dist/src/ItemProperty/propertyWrite.d.ts.map +1 -1
  68. package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +1 -1
  69. package/dist/src/Model/Model.d.ts +45 -34
  70. package/dist/src/Model/Model.d.ts.map +1 -1
  71. package/dist/src/ModelProperty/ModelProperty.d.ts +31 -13
  72. package/dist/src/ModelProperty/ModelProperty.d.ts.map +1 -1
  73. package/dist/src/Schema/Schema.d.ts +36 -27
  74. package/dist/src/Schema/Schema.d.ts.map +1 -1
  75. package/dist/src/archive/exportArchive.d.ts +57 -0
  76. package/dist/src/archive/exportArchive.d.ts.map +1 -0
  77. package/dist/src/browser/db/Db.d.ts +5 -0
  78. package/dist/src/browser/db/Db.d.ts.map +1 -1
  79. package/dist/src/browser/helpers/FileManager.d.ts.map +1 -1
  80. package/dist/src/browser/helpers/tolerantWebAccess.d.ts +12 -1
  81. package/dist/src/browser/helpers/tolerantWebAccess.d.ts.map +1 -1
  82. package/dist/src/client/ClientManager.d.ts +14 -4
  83. package/dist/src/client/ClientManager.d.ts.map +1 -1
  84. package/dist/src/db/Db/BaseDb.d.ts +2 -0
  85. package/dist/src/db/Db/BaseDb.d.ts.map +1 -1
  86. package/dist/src/helpers/FileManager/errors.d.ts +11 -0
  87. package/dist/src/helpers/FileManager/errors.d.ts.map +1 -1
  88. package/dist/src/helpers/browserSupport.d.ts +23 -0
  89. package/dist/src/helpers/browserSupport.d.ts.map +1 -0
  90. package/dist/src/helpers/cachedPropertyRefresh.d.ts +6 -6
  91. package/dist/src/helpers/cachedPropertyRefresh.d.ts.map +1 -1
  92. package/dist/src/helpers/entity/entityCache.d.ts +45 -3
  93. package/dist/src/helpers/entity/entityCache.d.ts.map +1 -1
  94. package/dist/src/helpers/entity/entityLifecycle.d.ts +21 -3
  95. package/dist/src/helpers/entity/entityLifecycle.d.ts.map +1 -1
  96. package/dist/src/helpers/propertyDefinition.d.ts +2 -0
  97. package/dist/src/helpers/propertyDefinition.d.ts.map +1 -1
  98. package/dist/src/helpers/schemaApply.d.ts.map +1 -1
  99. package/dist/src/helpers/tabCoordinator.d.ts +9 -2
  100. package/dist/src/helpers/tabCoordinator.d.ts.map +1 -1
  101. package/dist/src/index.d.ts +4 -1
  102. package/dist/src/index.d.ts.map +1 -1
  103. package/dist/src/interfaces/IDb.d.ts +6 -0
  104. package/dist/src/interfaces/IDb.d.ts.map +1 -1
  105. package/dist/src/node/db/Db.d.ts +6 -0
  106. package/dist/src/node/db/Db.d.ts.map +1 -1
  107. package/dist/src/outbox/conflicts.d.ts.map +1 -1
  108. package/dist/src/outbox/outbox.d.ts +6 -0
  109. package/dist/src/outbox/outbox.d.ts.map +1 -1
  110. package/dist/src/types/index.d.ts +16 -0
  111. package/dist/src/types/index.d.ts.map +1 -1
  112. package/dist/{syncDbWithEas-CA7PvBgu.js → syncDbWithEas-FuyqoEKk.js} +14 -14
  113. package/dist/{syncDbWithEas-CA7PvBgu.js.map → syncDbWithEas-FuyqoEKk.js.map} +1 -1
  114. package/dist/{tabEvents-CaVmngqr.js → tabEvents-DT5ez6io.js} +38 -12
  115. package/dist/tabEvents-DT5ez6io.js.map +1 -0
  116. package/dist/{tolerantWebAccess-BJqViq08.js → tolerantWebAccess-zEseJ2zT.js} +53 -13
  117. package/dist/tolerantWebAccess-zEseJ2zT.js.map +1 -0
  118. package/dist/{updateSeedRevokedAt-BL9Bg-G7.js → updateSeedRevokedAt-B9JRwr5T.js} +3 -3
  119. package/dist/{updateSeedRevokedAt-BL9Bg-G7.js.map → updateSeedRevokedAt-B9JRwr5T.js.map} +1 -1
  120. package/package.json +10 -12
  121. package/dist/BaseFileManager-BAlySv8w.js.map +0 -1
  122. package/dist/Item-Bf4kWKpH.js.map +0 -1
  123. package/dist/ModelProperty-BlaEgb_U.js.map +0 -1
  124. package/dist/Schema-J_1f6p0c.js.map +0 -1
  125. package/dist/dist/BaseFileManager-BAlySv8w.d.ts.map +0 -1
  126. package/dist/dist/configurePlatform-CiOJ1R3q.d.ts.map +0 -1
  127. package/dist/errors-C1qUEZ7A.js.map +0 -1
  128. package/dist/errors-DLSoqSHG.js.map +0 -1
  129. package/dist/index-BVBmz_cc.js.map +0 -1
  130. package/dist/index-CYGWPoOx.js.map +0 -1
  131. package/dist/index-D0V-mjCV.js.map +0 -1
  132. package/dist/index-DmTtj1nk.js.map +0 -1
  133. package/dist/index.browser-CUmBVYen.js.map +0 -1
  134. package/dist/index.node-CYPemH-t.js.map +0 -1
  135. package/dist/tabEvents-CaVmngqr.js.map +0 -1
  136. package/dist/tolerantWebAccess-BJqViq08.js.map +0 -1
@@ -4,8 +4,20 @@ import { Item } from '../Item/Item';
4
4
  import { ItemData } from '../types/item';
5
5
  import { EntityCache } from '../helpers/entity/entityCache';
6
6
  type ModelService = ActorRefFrom<typeof modelMachine>;
7
+ /**
8
+ * `hold` for Model lookups. A model stays cached whether or not anyone holds it (see `Model.cache`),
9
+ * so a hold only counts this caller; `unload()` gives it back.
10
+ */
11
+ export type ModelHoldOption = {
12
+ /** Take a cache hold, released with `unload()`. Default false. */
13
+ hold?: boolean;
14
+ };
7
15
  export declare class Model {
8
- /** Cached under its id and `schemaName:modelName` (ADR 0014). */
16
+ /**
17
+ * Cached under its id and `schemaName:modelName` (ADR 0014). Stays cached with no holds until it
18
+ * is destroyed or evicted (`unloadUnheld: false`): Model.resolve, findByModelType and sync read
19
+ * the cache synchronously.
20
+ */
9
21
  static readonly cache: EntityCache<Model>;
10
22
  protected readonly _service: ModelService;
11
23
  modelName?: string;
@@ -73,9 +85,7 @@ export declare class Model {
73
85
  waitForReady: false;
74
86
  /** @internal Schema import: see the implementation signature */
75
87
  persistedBy?: Promise<unknown>;
76
- /** @internal SDK lookups pass false: see the implementation signature */
77
- hold?: false;
78
- }): Model;
88
+ } & ModelHoldOption): Model;
79
89
  static create(modelName: string, schemaNameOrSchema: string | any, options?: {
80
90
  id?: string;
81
91
  modelFileId?: string;
@@ -85,30 +95,30 @@ export declare class Model {
85
95
  registerWithSchema?: boolean;
86
96
  waitForReady?: true;
87
97
  readyTimeout?: number;
88
- /** @internal SDK lookups pass false: see the implementation signature */
89
- hold?: false;
90
- }): Promise<Model>;
98
+ } & ModelHoldOption): Promise<Model>;
99
+ /** The model once ready; a call that took a hold gives it back when the model isn't ready in time. */
100
+ private static readyOrRelease;
101
+ /** The cached Model with this modelFileId. Takes no hold unless `hold: true`. */
102
+ static getById(modelFileId: string, options?: ModelHoldOption): Model | undefined;
91
103
  /**
92
- * Get Model instance by modelFileId (O(1) lookup). Takes a hold on the instance; release it with
93
- * `unload()`.
104
+ * The cached Model with this modelFileId, without taking a hold.
94
105
  */
95
- static getById(modelFileId: string): Model | undefined;
106
+ static peek(modelFileId: string): Model | undefined;
96
107
  /**
97
- * The cached Model with this modelFileId, without taking a hold. For SDK code that reads the
98
- * model and doesn't hand it to a caller; callers that keep it use `getById`, `find` or `create`.
108
+ * Takes one more hold on a cached, running instance, released with `unload()`. False (and no
109
+ * hold) when the instance isn't cached or was stopped.
99
110
  */
100
- static peek(modelFileId: string): Model | undefined;
111
+ static retain(instance: Model): boolean;
101
112
  /**
102
- * Get Model instance by name (O(1) lookup via name→ID mapping). Takes a hold on the instance;
103
- * release it with `unload()`.
113
+ * Get Model instance by name (O(1) lookup via name→ID mapping). Takes no hold unless `hold: true`.
104
114
  *
105
115
  * @param modelName - The name of the model
106
116
  * @param schemaName - The schema name (optional, will query DB if not provided)
107
117
  * @returns The Model instance if found, undefined otherwise
108
118
  */
109
- static getByName(modelName: string, schemaName?: string): Model | undefined;
119
+ static getByName(modelName: string, schemaName?: string, options?: ModelHoldOption): Model | undefined;
110
120
  /**
111
- * `getByName` without taking a hold. Without `schemaName` it searches every cached schema and
121
+ * The cached Model by name, without taking a hold. Without `schemaName` it searches every cached schema and
112
122
  * throws AmbiguousModelError when models from several schemas share the name; callers that know
113
123
  * the schema or model id should use Model.resolve() instead.
114
124
  */
@@ -152,7 +162,7 @@ export declare class Model {
152
162
  *
153
163
  * @param modelName - The name of the model
154
164
  * @param schemaName - Optional schema name (will query DB if not provided)
155
- * @returns The Model instance if found, undefined otherwise. Takes a hold unless `hold: false`.
165
+ * @returns The Model instance if found, undefined otherwise. Takes no hold unless `hold: true`.
156
166
  */
157
167
  static getByNameAsync(modelName: string, schemaName?: string, options?: {
158
168
  /**
@@ -160,15 +170,13 @@ export declare class Model {
160
170
  * schema since then makes this return undefined instead of re-creating the model. Defaults to now.
161
171
  */
162
172
  since?: number;
163
- /** @internal `hold: false` as for `create` */
164
- hold?: false;
165
- }): Promise<Model | undefined>;
173
+ } & ModelHoldOption): Promise<Model | undefined>;
166
174
  /**
167
175
  * Create or get Model instance by modelFileId
168
176
  * Checks cache first, then database if not found
169
177
  *
170
178
  * @param modelFileId - The model file ID to look up
171
- * @returns The Model instance if found, undefined otherwise
179
+ * @returns The Model instance if found, undefined otherwise. Takes no hold unless `hold: true`.
172
180
  */
173
181
  static createById(modelFileId: string, options?: {
174
182
  /**
@@ -177,41 +185,41 @@ export declare class Model {
177
185
  * of re-creating the model. Defaults to now.
178
186
  */
179
187
  since?: number;
180
- /** @internal `hold: false` as for `create` */
181
- hold?: false;
182
- }): Promise<Model | undefined>;
188
+ } & ModelHoldOption): Promise<Model | undefined>;
183
189
  /**
184
190
  * Find Model instance by modelFileId, modelName/schemaName, or both
185
- * Waits for the model to be fully loaded (idle state) by default
191
+ * Waits for the model to be fully loaded (idle state) by default. Takes no hold unless
192
+ * `hold: true`; a call that throws (the model isn't ready in `readyTimeout`) keeps none.
186
193
  * @param options - Find options including lookup parameters and wait configuration
187
194
  * @returns Model instance if found, undefined otherwise
188
195
  */
189
- static find({ modelFileId, modelName, schemaName, waitForReady, readyTimeout, }: {
196
+ static find({ modelFileId, modelName, schemaName, waitForReady, readyTimeout, hold, }: {
190
197
  modelFileId?: string;
191
198
  modelName?: string;
192
199
  schemaName?: string;
193
200
  waitForReady?: boolean;
194
201
  readyTimeout?: number;
195
- }): Promise<Model | undefined>;
202
+ } & ModelHoldOption): Promise<Model | undefined>;
196
203
  /**
197
204
  * Get all Model instances for a schema by schemaFileId or schemaName
198
205
  * Queries database for all models with the given schemaId/schemaName and returns Model instances
199
206
  *
200
207
  * @param schemaIdentifier - The schema file ID or schema name to get models for
201
- * @returns Array of Model instances for the schema
208
+ * @returns Array of Model instances for the schema. Takes no holds unless `hold: true`.
202
209
  */
203
- static createBySchemaId(schemaIdentifier: string): Promise<Model[]>;
210
+ static createBySchemaId(schemaIdentifier: string, options?: ModelHoldOption): Promise<Model[]>;
204
211
  /**
205
212
  * Get all Model instances, optionally filtered by schema.
206
213
  * When DB is available, loads from DB via getModelsData; otherwise returns from cache.
207
214
  * With waitForReady, waits for each model to be ready (idle, with any properties from Model.create
208
- * created) and leaves out models that error or time out. Takes no holds: a caller that keeps a
209
- * model uses `Model.find` or `Model.create`.
215
+ * created) and leaves out models that error or time out. Takes no holds unless `hold: true`.
210
216
  */
211
217
  static all(schemaName?: string, options?: {
212
218
  waitForReady?: boolean;
213
219
  readyTimeout?: number;
214
- }): Promise<Model[]>;
220
+ } & ModelHoldOption): Promise<Model[]>;
221
+ /** Throws EntityUnloadedError, naming the model, when this instance was destroyed or evicted. */
222
+ private _assertLoaded;
215
223
  getService(): ModelService;
216
224
  private _getSnapshot;
217
225
  private _getSnapshotContext;
@@ -278,7 +286,10 @@ export declare class Model {
278
286
  * @returns names of the evicted models (so callers can evict their ModelProperty instances)
279
287
  */
280
288
  static evictForSchema(schemaName: string): string[];
281
- /** Release this caller's hold. The model is stopped and leaves the cache with its last hold. */
289
+ /**
290
+ * Release this caller's hold, if it took one. The model stays cached (see `Model.cache`); only
291
+ * `destroy`, eviction or client stop stop it.
292
+ */
282
293
  unload(): void;
283
294
  /**
284
295
  * Destroy the model: delete its rows (model, its properties, its schema links), remove it from its
@@ -1 +1 @@
1
- {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/Model/Model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../src/Model/Model.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,8 @@ import { EntityCache } from '../helpers/entity/entityCache';
8
8
  type ModelPropertyService = ActorRefFrom<typeof modelPropertyMachine>;
9
9
  export declare class ModelProperty {
10
10
  /**
11
- * Cached under its id (schemaFileId) and `modelName:name` (ADR 0014). Its model holds it (see
12
- * holdForModel), so app holders' unloads don't stop a model's property.
11
+ * Cached under its id (schemaFileId) and `modelName:name` (ADR 0014). Stays cached with no holds
12
+ * until it is destroyed or evicted (`unloadUnheld: false`), as Schema and Model do.
13
13
  */
14
14
  static readonly cache: EntityCache<ModelProperty>;
15
15
  private static pendingWrites;
@@ -82,16 +82,18 @@ export declare class ModelProperty {
82
82
  static create(property: Static<typeof TProperty>, options: {
83
83
  waitForReady: false;
84
84
  schemaName?: string;
85
- /** @internal false for the SDK's own loads (a model's properties): no hold is taken */
86
- hold?: false;
85
+ /** Take a cache hold, released with `unload()`. Default false: a property stays cached without one. */
86
+ hold?: boolean;
87
87
  }): ModelProperty;
88
88
  static create(property: Static<typeof TProperty>, options?: {
89
89
  waitForReady?: true;
90
90
  readyTimeout?: number;
91
91
  schemaName?: string;
92
- /** @internal false for the SDK's own loads (a model's properties): no hold is taken */
93
- hold?: false;
92
+ /** Take a cache hold, released with `unload()`. Default false: a property stays cached without one. */
93
+ hold?: boolean;
94
94
  }): Promise<ModelProperty>;
95
+ /** The property once ready; a call that took a hold gives it back when it isn't ready in time. */
96
+ private static readyOrRelease;
95
97
  /**
96
98
  * Writes the row of a property ModelProperty.create made, under the model row its modelId (row id
97
99
  * or file id) or modelName names. Resolves without writing once the instance is stopped; rejects
@@ -105,13 +107,23 @@ export declare class ModelProperty {
105
107
  * @internal Used by the model's property loading.
106
108
  */
107
109
  static holdForModel(instance: ModelProperty, model?: Model): void;
108
- /** The cached ModelProperty with this propertyFileId, without taking a hold. */
109
- static getById(propertyFileId: string): ModelProperty | undefined;
110
+ /** The cached ModelProperty with this propertyFileId. Takes no hold unless `hold: true`. */
111
+ static getById(propertyFileId: string, options?: {
112
+ hold?: boolean;
113
+ }): ModelProperty | undefined;
114
+ /**
115
+ * Takes one more hold on a cached, running instance, released with `unload()`. False (and no
116
+ * hold) when the instance isn't cached or was stopped.
117
+ */
118
+ static retain(instance: ModelProperty): boolean;
110
119
  /**
111
120
  * Create or get ModelProperty instance by propertyFileId
112
- * Queries the database to find the property if not cached
121
+ * Queries the database to find the property if not cached. Takes no hold unless `hold: true`
122
+ * (its model holds it either way).
113
123
  */
114
124
  static createById(propertyFileId: string, options?: {
125
+ /** Take a cache hold, released with `unload()`. Default false. */
126
+ hold?: boolean;
115
127
  /**
116
128
  * evictionLog.now() from when the caller's work started. An eviction of the property's model
117
129
  * or schema since then makes this return undefined instead of re-creating it. Defaults to now.
@@ -128,22 +140,26 @@ export declare class ModelProperty {
128
140
  static refreshFromDb(propertyFileIds: string[]): Promise<void>;
129
141
  /**
130
142
  * Find ModelProperty instance by propertyFileId
131
- * Waits for the property to be fully loaded (idle state) by default
143
+ * Waits for the property to be fully loaded (idle state) by default. Takes no hold unless
144
+ * `hold: true`; a call that throws keeps none.
132
145
  * @param options - Find options including propertyFileId and wait configuration
133
146
  * @returns ModelProperty instance if found, undefined otherwise
134
147
  */
135
- static find({ propertyFileId, waitForReady, readyTimeout, }: {
148
+ static find({ propertyFileId, waitForReady, readyTimeout, hold, }: {
136
149
  propertyFileId: string;
137
150
  waitForReady?: boolean;
138
151
  readyTimeout?: number;
152
+ hold?: boolean;
139
153
  }): Promise<ModelProperty | undefined>;
140
154
  /**
141
155
  * Get all ModelProperty instances for a model.
142
156
  * Loads property rows from DB for the given modelFileId, creates instances via createById, optionally waits for idle.
157
+ * Takes no holds unless `hold: true`.
143
158
  */
144
159
  static all(modelFileId: string, options?: {
145
160
  waitForReady?: boolean;
146
161
  readyTimeout?: number;
162
+ hold?: boolean;
147
163
  }): Promise<ModelProperty[]>;
148
164
  /**
149
165
  * Track a pending write for a property
@@ -168,6 +184,8 @@ export declare class ModelProperty {
168
184
  * Used to resolve modelName when validating a just-created property rename.
169
185
  */
170
186
  static getPendingModelId(propertyFileId: string): number | undefined;
187
+ /** Throws EntityUnloadedError, naming the property, when this instance was destroyed or evicted. */
188
+ private _assertLoaded;
171
189
  getService(): ModelPropertyService;
172
190
  private _getSnapshot;
173
191
  _getSnapshotContext(): ModelPropertyMachineContext;
@@ -213,8 +231,8 @@ export declare class ModelProperty {
213
231
  modelId?: number;
214
232
  }): void;
215
233
  /**
216
- * Releases this caller's hold. The instance is shared: it keeps running while other callers hold
217
- * it, or while its model holds it. An instance nobody else holds is stopped and leaves the cache.
234
+ * Releases this caller's hold, if it took one. The property stays cached (see
235
+ * `ModelProperty.cache`); only `destroy`, eviction or client stop stop it.
218
236
  */
219
237
  unload(): void;
220
238
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ModelProperty.d.ts","sourceRoot":"","sources":["../../../src/ModelProperty/ModelProperty.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelProperty.d.ts","sourceRoot":"","sources":["../../../src/ModelProperty/ModelProperty.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,18 @@ import { schemaMachine } from './service/schemaMachine';
3
3
  import { Model } from '../Model/Model';
4
4
  import { EntityCache } from '../helpers/entity/entityCache';
5
5
  type SchemaService = ActorRefFrom<typeof schemaMachine>;
6
+ /**
7
+ * `hold` for Schema lookups. A schema stays cached whether or not anyone holds it (see
8
+ * `Schema.cache`), so a hold only counts this caller; `unload()` gives it back.
9
+ */
10
+ export type SchemaHoldOption = {
11
+ /** Take a cache hold, released with `unload()`. Default false. */
12
+ hold?: boolean;
13
+ };
6
14
  /**
7
15
  * Options for Schema.all() method
8
16
  */
9
- export interface SchemaAllOptions {
17
+ export interface SchemaAllOptions extends SchemaHoldOption {
10
18
  /**
11
19
  * If true, returns all versions of each schema. If false (default), returns only the latest version of each schema.
12
20
  * @default false
@@ -29,7 +37,11 @@ export interface SchemaAllOptions {
29
37
  readyTimeout?: number;
30
38
  }
31
39
  export declare class Schema {
32
- /** Cached under its file id and its name (ADR 0014). */
40
+ /**
41
+ * Cached under its file id and its name (ADR 0014). A schema stays cached with no holds until it
42
+ * is destroyed or evicted, or the client stops (`unloadUnheld: false`): sync and name matching
43
+ * read the cached definitions synchronously.
44
+ */
33
45
  static readonly cache: EntityCache<Schema>;
34
46
  protected readonly _service: SchemaService;
35
47
  $schema?: string;
@@ -59,55 +71,50 @@ export declare class Schema {
59
71
  private static load;
60
72
  /**
61
73
  * Returns the cached schema for `schemaName`, or loads it (creating a draft for an unknown name).
62
- * Each call takes a hold on the instance; release it with `unload()`.
74
+ * Takes no hold unless `hold: true`: a schema stays cached without one (see `cache`).
63
75
  */
64
76
  static create(schemaName: string, options: {
65
77
  waitForReady: false;
66
- /** @internal SDK lookups pass false: see the implementation signature */
67
- hold?: false;
68
- }): Schema;
78
+ } & SchemaHoldOption): Schema;
69
79
  static create(schemaName: string, options?: {
70
80
  waitForReady?: true;
71
81
  readyTimeout?: number;
72
- /** @internal SDK lookups pass false: see the implementation signature */
73
- hold?: false;
74
- }): Promise<Schema>;
82
+ } & SchemaHoldOption): Promise<Schema>;
83
+ /** The schema once ready; a call that took a hold gives it back when the schema isn't ready in time. */
84
+ private static readyOrRelease;
75
85
  /**
76
- * Get schema instance by schemaFileId (preferred method)
77
- * Returns null if not found in cache
86
+ * The cached schema with this file id, or null. Takes no hold unless `hold: true`.
78
87
  */
79
- static getById(schemaFileId: string): Schema | null;
88
+ static getById(schemaFileId: string, options?: SchemaHoldOption): Schema | null;
80
89
  /**
81
- * The cached schema with this file id or name, without taking a hold. For SDK code that reads
82
- * the schema and doesn't hand it to a caller; callers that keep it use `create` or `find`.
90
+ * The cached schema with this file id or name, without taking a hold.
83
91
  */
84
92
  static peek(schemaFileIdOrName: string): Schema | undefined;
93
+ /**
94
+ * Takes one more hold on a cached, running instance, released with `unload()`. False (and no
95
+ * hold) when the instance isn't cached or was stopped.
96
+ */
97
+ static retain(instance: Schema): boolean;
85
98
  /** Stop and drop every cached Schema, whoever holds it (test cleanup). */
86
99
  static clearCache(): void;
87
100
  /**
88
101
  * Create or get schema instance by schemaFileId
89
102
  * Queries the database to find the schema name if not cached
90
103
  * @param schemaFileId - The schema file ID
91
- * @returns Schema instance, with a hold taken (unless `hold: false`)
104
+ * @returns Schema instance, with no hold unless `hold: true`
92
105
  */
93
- static createById(schemaFileId: string,
94
- /** @internal `hold: false` as for `create` */
95
- options?: {
96
- hold?: false;
97
- }): Promise<Schema>;
106
+ static createById(schemaFileId: string, options?: SchemaHoldOption): Promise<Schema>;
98
107
  /**
99
108
  * Find a schema by schemaFileId or by name. Read-only: a name with no schema row gives undefined
100
109
  * and creates nothing (`Schema.create` creates a draft for an unknown name). By name, the cached
101
110
  * instance is used, else the stored schema is loaded. Waits for the schema to be fully loaded
102
- * (idle state) by default. Takes a hold unless `hold: false`.
111
+ * (idle state) by default. Takes no hold unless `hold: true`.
103
112
  * @returns Schema instance if found, undefined otherwise
104
113
  */
105
114
  static find({ schemaFileId, schemaName, waitForReady, readyTimeout, hold, }: {
106
115
  waitForReady?: boolean;
107
116
  readyTimeout?: number;
108
- /** @internal `hold: false` as for `create` */
109
- hold?: false;
110
- } & ({
117
+ } & SchemaHoldOption & ({
111
118
  schemaFileId: string;
112
119
  schemaName?: undefined;
113
120
  } | {
@@ -119,7 +126,7 @@ export declare class Schema {
119
126
  * Get instantiated Schema objects for all schemas (from database and files)
120
127
  * By default, returns only the latest version of each schema and excludes the internal Seed Protocol schema.
121
128
  * Uses loadAllSchemasFromDb() as the single source of truth, which intelligently merges database and file data.
122
- * Takes no holds on the instances it returns: a caller that keeps one uses `Schema.create` or `Schema.find`.
129
+ * Takes no holds unless `hold: true`.
123
130
  *
124
131
  * @param options - Configuration options
125
132
  * @param options.includeAllVersions - If true, returns all versions of each schema. Default: false
@@ -127,6 +134,8 @@ export declare class Schema {
127
134
  * @returns Array of Schema instances
128
135
  */
129
136
  static all(options?: SchemaAllOptions): Promise<Schema[]>;
137
+ /** Throws EntityUnloadedError, naming the schema, when this instance was destroyed or evicted. */
138
+ private _assertLoaded;
130
139
  getService(): SchemaService;
131
140
  private _getSnapshot;
132
141
  private _getSnapshotContext;
@@ -200,8 +209,8 @@ export declare class Schema {
200
209
  */
201
210
  static evict(schemaName: string): void;
202
211
  /**
203
- * Release this caller's hold. With the last one the schema is stopped, leaves the cache, and
204
- * releases its hold on each of its models.
212
+ * Release this caller's hold, if it took one. The schema stays cached (see `Schema.cache`); only
213
+ * `destroy`, eviction or client stop stop it.
205
214
  */
206
215
  unload(): void;
207
216
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/Schema/Schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/Schema/Schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { type Bag } from '@seedprotocol/archive';
2
+ /**
3
+ * Exports a published item as a BagIt bag (RFC 8493) that an archive can ingest without Seed
4
+ * code: its Html, its files and its attested values, with SHA-256/SHA-512 manifests, Dublin Core
5
+ * and PREMIS metadata. See docs/ARCHIVE.md for the bag's layout.
6
+ */
7
+ export type ExportArchiveOptions = {
8
+ /** Download Images, Files and Html bodies that aren't on this device. Default true. */
9
+ fetch?: boolean;
10
+ /** bag-info.txt Source-Organization, e.g. the publication. Left out when not given. */
11
+ sourceOrganization?: string;
12
+ /** Bagging-Date and the time of the bag's own PREMIS events. Defaults to now. */
13
+ baggingDate?: Date;
14
+ };
15
+ /** Something the item has that the bag doesn't carry, and why. Also listed in data/item.json. */
16
+ export type ArchiveOmission = {
17
+ property: string;
18
+ reason: string;
19
+ };
20
+ export type ExportArchiveResult = {
21
+ bag: Bag;
22
+ omitted: ArchiveOmission[];
23
+ };
24
+ export type ArchiveExportErrorCode = 'not_published' | 'unpublished_changes';
25
+ /** The item can't be exported as it is. `code` says why. */
26
+ export declare class ArchiveExportError extends Error {
27
+ readonly code: ArchiveExportErrorCode;
28
+ constructor(code: ArchiveExportErrorCode, message: string);
29
+ }
30
+ type ExportableItem = {
31
+ seedLocalId: string;
32
+ modelName?: string;
33
+ getService?: () => {
34
+ getSnapshot: () => {
35
+ context: {
36
+ schemaName?: string;
37
+ };
38
+ };
39
+ };
40
+ };
41
+ /**
42
+ * Builds the bag for `item`'s current published state:
43
+ *
44
+ * - `data/index.html` (or `data/<property>.html` when the model has several Html properties): the
45
+ * Html with references to files in the bag rewritten to relative paths.
46
+ * - `data/source/<property>.html`: each Html exactly as published.
47
+ * - `data/assets/<sha256>.<ext>`: Images, Files and images the Html references.
48
+ * - `data/item.json`: every property's value, attestation uid and Arweave transaction.
49
+ * - `metadata/dc.xml` and `metadata/premis.xml`.
50
+ *
51
+ * Throws {@link ArchiveExportError} `not_published` for an item without a live published version,
52
+ * and `unpublished_changes` when a property holds a saved value that isn't published yet.
53
+ * A file that can't be read or downloaded is left out and reported in `omitted`, not thrown.
54
+ */
55
+ export declare function exportArchive(item: ExportableItem, options?: ExportArchiveOptions): Promise<ExportArchiveResult>;
56
+ export {};
57
+ //# sourceMappingURL=exportArchive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exportArchive.d.ts","sourceRoot":"","sources":["../../../src/archive/exportArchive.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,GAAG,EAKT,MAAM,uBAAuB,CAAA;AA0B9B;;;;GAIG;AAEH,MAAM,MAAM,oBAAoB,GAAG;IACjC,uFAAuF;IACvF,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,iFAAiF;IACjF,WAAW,CAAC,EAAE,IAAI,CAAA;CACnB,CAAA;AAED,iGAAiG;AACjG,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAElE,MAAM,MAAM,mBAAmB,GAAG;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,eAAe,EAAE,CAAA;CAAE,CAAA;AAE1E,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG,qBAAqB,CAAA;AAE5E,4DAA4D;AAC5D,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAA;gBAEzB,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM;CAK1D;AAED,KAAK,cAAc,GAAG;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM;QAAE,WAAW,EAAE,MAAM;YAAE,OAAO,EAAE;gBAAE,UAAU,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAA;KAAE,CAAA;CAC/E,CAAA;AA6CD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgP1H"}
@@ -8,6 +8,8 @@ export declare class BrowserDb implements IDb {
8
8
  sqlocalInstance: SQLocalDrizzle | undefined;
9
9
  /** Live queries by SQL + params while they have subscribers; see liveQuery. */
10
10
  private sharedLiveQueries;
11
+ /** Bumped by close(), so a prepareDb that was running closes what it opened instead of keeping it. */
12
+ private openGeneration;
11
13
  getAppDb(): SqliteRemoteDatabase<Record<string, unknown>> | undefined;
12
14
  isAppDbReady(): boolean;
13
15
  prepareDb(filesDir: string): Promise<SqliteRemoteDatabase<Record<string, unknown>> | undefined>;
@@ -20,6 +22,9 @@ export declare class BrowserDb implements IDb {
20
22
  */
21
23
  private openPersistentSqlocal;
22
24
  private prepareDbLocked;
25
+ close(): Promise<void>;
26
+ /** Destroys the SQLocal instance (its worker releases seed.db) and forgets the database. */
27
+ private closeOpenDb;
23
28
  connectToDb(_filesDir: string): Promise<string | undefined>;
24
29
  copyDrizzleFiles(filesDir: string): Promise<void>;
25
30
  /** Internal migration runner. Used by prepareDb before appDb is set. */
@@ -1 +1 @@
1
- {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../../../src/browser/db/Db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAW,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AASzE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAOhD,OAAO,EAAE,UAAU,EAAoE,MAAM,MAAM,CAAA;AAInG,qBAAa,SAAU,YAAW,GAAG;IAEnC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAA;IAChE,eAAe,EAAE,cAAc,GAAG,SAAS,CAAA;IAC3C,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB,CAA2C;IAGpE,QAAQ;IAIR,YAAY;IAIN,SAAS,CAAC,QAAQ,EAAE,MAAM;IAWhC;;;;;;OAMG;YACW,qBAAqB;YA4BrB,eAAe;IAuEvB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI3D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmEvD,wEAAwE;YAC1D,aAAa;IAiB3B,+GAA+G;YACjG,mBAAmB;IAoBjC;;;;;OAKG;IACG,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAkBjG,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjF;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,SAAS,CAAC,CAAC,EACT,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,GAC/B,UAAU,CAAC,CAAC,EAAE,CAAC;CAwEnB"}
1
+ {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../../../src/browser/db/Db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAW,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AASzE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAOhD,OAAO,EAAE,UAAU,EAAoE,MAAM,MAAM,CAAA;AAInG,qBAAa,SAAU,YAAW,GAAG;IAEnC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAA;IAChE,eAAe,EAAE,cAAc,GAAG,SAAS,CAAA;IAC3C,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB,CAA2C;IACpE,sGAAsG;IACtG,OAAO,CAAC,cAAc,CAAI;IAG1B,QAAQ;IAIR,YAAY;IAIN,SAAS,CAAC,QAAQ,EAAE,MAAM;IAWhC;;;;;;OAMG;YACW,qBAAqB;YA4BrB,eAAe;IAoFvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,4FAA4F;YAC9E,WAAW;IASnB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI3D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmEvD,wEAAwE;YAC1D,aAAa;IAiB3B,+GAA+G;YACjG,mBAAmB;IAoBjC;;;;;OAKG;IACG,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAkBjG,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjF;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,SAAS,CAAC,CAAC,EACT,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,GAC/B,UAAU,CAAC,CAAC,EAAE,CAAC;CAwEnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"FileManager.d.ts","sourceRoot":"","sources":["../../../../src/browser/helpers/FileManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,oCAAoC,CAAA;AAgI3C,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,UAAU,CAAY;IAExB,KAAK;IAOX,SAAS;IAOH,qBAAqB,CAAE,IAAI,EAAE,MAAM,GAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IASlE,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCzD,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKjF,WAAW,CAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,iBAAiB,GAAI,OAAO,CAAC,IAAI,CAAC;IAK5E,eAAe,CAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,qBAAqB,GAAI,OAAO,CAAC,IAAI,CAAC;IAK1E,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAInC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAW/C,8FAA8F;IAC9F,OAAO,CAAC,aAAa,CAAmC;IAElD,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAMjD,aAAa;IAerB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe9C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUrD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3D;;;;;;OAMG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAa,EAAE,OAAO,GAAE,MAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA4FvG;;;;;;;OAOG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY,EAAE,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAgE1G,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DrF,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI;IAsBpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C/C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAS9B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAejD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI1C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI7C,aAAa,IAAI,GAAG;CAGrB;AAqDD,4CAA4C;AAC5C,eAAO,MAAM,WAAW,2BAAqB,CAAA"}
1
+ {"version":3,"file":"FileManager.d.ts","sourceRoot":"","sources":["../../../../src/browser/helpers/FileManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,oCAAoC,CAAA;AAiI3C,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,UAAU,CAAY;IAExB,KAAK;IAOX,SAAS;IAOH,qBAAqB,CAAE,IAAI,EAAE,MAAM,GAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IASlE,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CzD,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKjF,WAAW,CAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,iBAAiB,GAAI,OAAO,CAAC,IAAI,CAAC;IAK5E,eAAe,CAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,qBAAqB,GAAI,OAAO,CAAC,IAAI,CAAC;IAK1E,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAInC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAW/C,8FAA8F;IAC9F,OAAO,CAAC,aAAa,CAAmC;IAElD,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAMjD,aAAa;IAerB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe9C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUrD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3D;;;;;;OAMG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAa,EAAE,OAAO,GAAE,MAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA4FvG;;;;;;;OAOG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY,EAAE,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAgE1G,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DrF,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI;IAsBpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C/C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAS9B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAejD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI1C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI7C,aAAa,IAAI,GAAG;CAGrB;AAqDD,4CAA4C;AAC5C,eAAO,MAAM,WAAW,2BAAqB,CAAA"}
@@ -12,7 +12,7 @@ import type { WebAccessOptions } from '@zenfs/dom';
12
12
  * file this mount had indexed at a smaller size: OPFS only shrinks for a truncate made through this
13
13
  * mount, and stat() re-reads a file's size when OPFS changed since this mount last looked.
14
14
  *
15
- * Overrides @zenfs/dom 1.2.9 / @zenfs/core 2.5.6 internals (`_loadHandles`, `_loadMetadata`,
15
+ * Overrides @zenfs/dom 1.2.14 / @zenfs/core 2.7.7 internals (`_loadHandles`, `_loadMetadata`,
16
16
  * `crossCopy`, `stat`, `write`, `touch`, `remove`, `get`, `_handles`, `_sync`, `_isInitialized`,
17
17
  * `index`, and `vfs.Handle#truncate`/`truncateSync`, see `trackTruncates`); both packages are pinned
18
18
  * to exact versions, and tolerantWebAccess.test.ts / opfsOverwrite.test.ts cover the coupling.
@@ -58,6 +58,13 @@ export declare class TolerantWebAccessFS extends WebAccessFS {
58
58
  * the file changed.
59
59
  */
60
60
  stat(path: string): Promise<Inode>;
61
+ /**
62
+ * Adds an entry WebAccessFS.stat() just indexed from OPFS (made by another context after this
63
+ * mount loaded: a tab, SQLocal's worker creating `db/`) to the in-memory copy behind the sync API.
64
+ * ZenFS mirrors every write and create into that copy and fails the call when the entry or its
65
+ * directory is missing there.
66
+ */
67
+ private _cacheIndexed;
61
68
  /** Replaces the sync API's in-memory copy of `path` with `file`, if it holds one. */
62
69
  private _recache;
63
70
  /**
@@ -117,6 +124,10 @@ export declare const TolerantWebAccess: {
117
124
  readonly type: "boolean";
118
125
  readonly required: false;
119
126
  };
127
+ readonly maxOpenFilesForCopy: {
128
+ readonly type: "number";
129
+ readonly required: false;
130
+ };
120
131
  };
121
132
  };
122
133
  //# sourceMappingURL=tolerantWebAccess.d.ts.map