@absolutejs/absolute 0.20.0-beta.13 → 0.20.0-beta.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -157,6 +157,39 @@ and aggregate counts—never credentials, namespaces, endpoints, arguments, or
157
157
  rows. Account changes are re-resolved before focus/online/visible Sync and the
158
158
  old worker run is aborted and cleared before the new namespace can run.
159
159
 
160
+ AbsoluteJS also generates one local-storage migration bundle for web and native
161
+ from the app plus installed Sync packs. Routes stay unchanged. A package that
162
+ owns persisted data declares its JSON-safe evolution in `package.json`:
163
+
164
+ ```json
165
+ {
166
+ "absolutejs": {
167
+ "sync": {
168
+ "localSchema": {
169
+ "version": 2,
170
+ "migrations": [
171
+ {
172
+ "toVersion": 2,
173
+ "operations": [
174
+ {
175
+ "type": "set-default",
176
+ "collection": "tasks",
177
+ "field": "completed",
178
+ "value": false
179
+ }
180
+ ]
181
+ }
182
+ ]
183
+ }
184
+ }
185
+ }
186
+ }
187
+ ```
188
+
189
+ Absolute derives stable component IDs from package names, keeps independent
190
+ version ledgers, validates migration gaps during build/doctor, and applies the
191
+ same transaction atomically in IndexedDB or Capacitor SQLite before Sync starts.
192
+
160
193
  App updates are consent-driven: `onUpdateAvailable()` latches a waiting worker
161
194
  for late UI subscribers, `checkForUpdate()` performs a passive check, and
162
195
  `applyUpdate()` activates and reloads only after the user accepts. AbsoluteJS
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  var __require = import.meta.require;
3
3
 
4
- // .angular-partial-tmp-o0PJWZ/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-4ueezp/src/core/streamingSlotRegistrar.ts
5
5
  var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
6
6
  var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
7
7
  var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  var __require = import.meta.require;
3
3
 
4
- // .angular-partial-tmp-o0PJWZ/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-4ueezp/src/core/streamingSlotRegistrar.ts
5
5
  var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
6
6
  var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
7
7
  var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
@@ -48,7 +48,7 @@ var warnMissingStreamingSlotCollector = (primitiveName) => {
48
48
  getWarningController()?.maybeWarn(primitiveName);
49
49
  };
50
50
 
51
- // .angular-partial-tmp-o0PJWZ/src/core/streamingSlotRegistry.ts
51
+ // .angular-partial-tmp-4ueezp/src/core/streamingSlotRegistry.ts
52
52
  var STREAMING_SLOT_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotAsyncLocalStorage");
53
53
  var isObjectRecord2 = (value) => Boolean(value) && typeof value === "object";
54
54
  var isAsyncLocalStorage = (value) => isObjectRecord2(value) && ("getStore" in value) && typeof value.getStore === "function" && ("run" in value) && typeof value.run === "function";