@absolutejs/absolute 0.20.0-beta.24 → 0.20.0-beta.26

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
@@ -138,7 +138,10 @@ export default defineConfig({
138
138
  },
139
139
  // With @absolutejs/auth + syncSocket(), this provisions the existing
140
140
  // HTTP-only web session and durable IndexedDB transport automatically.
141
- sync: true
141
+ sync: true,
142
+ // Optional: importing pushNotifications enables this automatically.
143
+ // The public key defaults to VAPID_PUBLIC_KEY at build time.
144
+ push: true
142
145
  }
143
146
  });
144
147
  ```
@@ -150,6 +153,14 @@ browser offers it, while online/focus/visibility resume remains the correctness
150
153
  path. Native Capacitor clients continue to use their Bearer and SQLite
151
154
  transport; no web cookie or token is copied into the worker.
152
155
 
156
+ Portable push uses the same `pushNotifications` API in the browser and a
157
+ Capacitor shell. AbsoluteJS generates Web Push registration and subscription
158
+ rotation against the same-origin `/auth/push` route. Configure the trusted
159
+ server once with `auth({ push: { registrar, tenant, topics } })`; Auth derives
160
+ identity, tenant, and authorized topics, while page code never receives APNs,
161
+ FCM, or Web Push credentials. Only the public VAPID key enters browser output;
162
+ keep `VAPID_PRIVATE_KEY` in the server-side Dispatch sender.
163
+
153
164
  `@absolutejs/pwa/client` also exposes `onPwaSyncResult()` and
154
165
  `getLastPwaSyncResult()` (plus the `absolute:pwa-sync-result` DOM event) for
155
166
  application-owned diagnostics. Results contain only success, duration, trigger,
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  var __require = import.meta.require;
3
3
 
4
- // .angular-partial-tmp-8rpk2p/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-jfa0IP/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-8rpk2p/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-jfa0IP/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-8rpk2p/src/core/streamingSlotRegistry.ts
51
+ // .angular-partial-tmp-jfa0IP/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";