@absolutejs/absolute 0.20.0-beta.15 → 0.20.0-beta.17

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.
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  var __require = import.meta.require;
3
3
 
4
- // .angular-partial-tmp-L9oYfg/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-fccHUx/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-L9oYfg/src/core/streamingSlotRegistrar.ts
4
+ // .angular-partial-tmp-fccHUx/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-L9oYfg/src/core/streamingSlotRegistry.ts
51
+ // .angular-partial-tmp-fccHUx/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";
package/dist/build.js CHANGED
@@ -12860,7 +12860,7 @@ var isTestSourcePath = (file) => {
12860
12860
  };
12861
12861
 
12862
12862
  // node_modules/@absolutejs/sync/dist/client/index.js
12863
- var RUNTIME_TRANSPORT, host, isRegistry = (value) => typeof value === "object" && value !== null && Array.isArray(Reflect.get(value, "installations")), registry, SyncLocalDataPolicyError, SyncLocalStoreSchemaError, positiveVersion = (value, label) => {
12863
+ var RUNTIME_TRANSPORT, host, isRegistry = (value) => typeof value === "object" && value !== null && Array.isArray(Reflect.get(value, "installations")) && Array.isArray(Reflect.get(value, "clients")), registry, SyncLocalDataPolicyError, SyncLocalStoreSchemaError, positiveVersion = (value, label) => {
12864
12864
  if (!Number.isSafeInteger(value) || value < 1)
12865
12865
  throw new SyncLocalStoreSchemaError("INVALID_PLAN", `${label} must be a positive safe integer`);
12866
12866
  return value;
@@ -12881,6 +12881,14 @@ var RUNTIME_TRANSPORT, host, isRegistry = (value) => typeof value === "object" &
12881
12881
  }
12882
12882
  for (const [index, rule] of (policy.mutations ?? []).entries()) {
12883
12883
  validatePolicyMatch(rule.match, `${label}.mutations[${index}]`);
12884
+ if (rule.conflict !== undefined && rule.conflict.strategy !== "client-wins" && rule.conflict.strategy !== "manual" && rule.conflict.strategy !== "server-wins")
12885
+ throw new SyncLocalDataPolicyError("INVALID_POLICY", `${label}.mutations[${index}].conflict.strategy is invalid.`);
12886
+ if (rule.conflict?.maxAttempts !== undefined && (!Number.isSafeInteger(rule.conflict.maxAttempts) || rule.conflict.maxAttempts < 1))
12887
+ throw new SyncLocalDataPolicyError("INVALID_POLICY", `${label}.mutations[${index}].conflict.maxAttempts must be a positive safe integer.`);
12888
+ if (rule.conflict?.maxAttempts !== undefined && rule.conflict.strategy !== "client-wins")
12889
+ throw new SyncLocalDataPolicyError("INVALID_POLICY", `${label}.mutations[${index}].conflict.maxAttempts is only valid for client-wins.`);
12890
+ if (rule.persistence === "memory-only" && rule.protection === "required")
12891
+ throw new SyncLocalDataPolicyError("INVALID_POLICY", `${label}.mutations[${index}] cannot require at-rest protection when it is memory-only.`);
12884
12892
  if (rule.sensitivity !== undefined && rule.sensitivity !== "public" && rule.protection !== "required" && rule.persistence !== "memory-only")
12885
12893
  throw new SyncLocalDataPolicyError("INVALID_POLICY", `${label}.mutations[${index}] declares ${rule.sensitivity} arguments without required protection.`);
12886
12894
  }
@@ -12944,7 +12952,11 @@ var init_client = __esm(() => {
12944
12952
  const existing = host[RUNTIME_TRANSPORT];
12945
12953
  if (isRegistry(existing))
12946
12954
  return existing;
12947
- const created = { installations: [] };
12955
+ if (typeof existing === "object" && existing !== null && Array.isArray(Reflect.get(existing, "installations"))) {
12956
+ Reflect.set(existing, "clients", []);
12957
+ return existing;
12958
+ }
12959
+ const created = { clients: [], installations: [] };
12948
12960
  Object.defineProperty(host, RUNTIME_TRANSPORT, {
12949
12961
  configurable: false,
12950
12962
  enumerable: false,
@@ -13132,7 +13144,9 @@ var object = (value) => typeof value === "object" && value !== null && !Array.is
13132
13144
  const mutations = Array.isArray(mutationRules) ? mutationRules.map((entry, index) => {
13133
13145
  const rule = requireObject(entry, id, `localData.mutations[${index}] must be an object.`);
13134
13146
  const allowedRuleKeys = new Set([
13147
+ "conflict",
13135
13148
  "match",
13149
+ "onProtectionUnavailable",
13136
13150
  "persistence",
13137
13151
  "protection",
13138
13152
  "sensitivity"
@@ -13143,15 +13157,40 @@ var object = (value) => typeof value === "object" && value !== null && !Array.is
13143
13157
  const protection = unknownField(rule, "protection");
13144
13158
  const sensitivity = unknownField(rule, "sensitivity");
13145
13159
  const persistence = unknownField(rule, "persistence");
13160
+ const onProtectionUnavailable = unknownField(rule, "onProtectionUnavailable");
13161
+ const declaredConflict = unknownField(rule, "conflict");
13162
+ let conflict;
13163
+ if (declaredConflict !== undefined) {
13164
+ const conflictRecord = requireObject(declaredConflict, id, `localData.mutations[${index}].conflict must be an object.`);
13165
+ const unsupportedConflictKey = Object.keys(conflictRecord).find((key) => key !== "maxAttempts" && key !== "strategy");
13166
+ if (unsupportedConflictKey)
13167
+ throw metadataError(id, `localData.mutations[${index}].conflict.${unsupportedConflictKey} is not supported.`);
13168
+ const strategy = unknownField(conflictRecord, "strategy");
13169
+ if (strategy !== "client-wins" && strategy !== "manual" && strategy !== "server-wins")
13170
+ throw metadataError(id, `localData.mutations[${index}].conflict.strategy is invalid.`);
13171
+ const maxAttempts = unknownField(conflictRecord, "maxAttempts");
13172
+ if (maxAttempts !== undefined && strategy !== "client-wins")
13173
+ throw metadataError(id, `localData.mutations[${index}].conflict.maxAttempts requires client-wins.`);
13174
+ conflict = {
13175
+ strategy,
13176
+ ...maxAttempts === undefined ? {} : {
13177
+ maxAttempts: positiveVersion2(maxAttempts, id, `localData.mutations[${index}].conflict.maxAttempts`)
13178
+ }
13179
+ };
13180
+ }
13146
13181
  if (protection !== undefined && protection !== "none" && protection !== "required")
13147
13182
  throw metadataError(id, `localData.mutations[${index}].protection is invalid.`);
13148
13183
  if (sensitivity !== undefined && sensitivity !== "public" && sensitivity !== "private" && sensitivity !== "secret")
13149
13184
  throw metadataError(id, `localData.mutations[${index}].sensitivity is invalid.`);
13185
+ if (onProtectionUnavailable !== undefined && onProtectionUnavailable !== "error" && onProtectionUnavailable !== "memory-only")
13186
+ throw metadataError(id, `localData.mutations[${index}].onProtectionUnavailable is invalid.`);
13150
13187
  if (persistence !== undefined && persistence !== "durable" && persistence !== "memory-only")
13151
13188
  throw metadataError(id, `localData.mutations[${index}].persistence is invalid.`);
13152
13189
  return {
13153
13190
  match: nonEmpty(Reflect.get(rule, "match"), id, `localData.mutations[${index}].match`),
13191
+ ...conflict ? { conflict } : {},
13154
13192
  ...sensitivity ? { sensitivity } : {},
13193
+ ...onProtectionUnavailable ? { onProtectionUnavailable } : {},
13155
13194
  ...persistence ? {
13156
13195
  persistence
13157
13196
  } : {},
@@ -30015,5 +30054,5 @@ export {
30015
30054
  build
30016
30055
  };
30017
30056
 
30018
- //# debugId=EC44DCC5E5B34B8F64756E2164756E21
30057
+ //# debugId=97F7FEF3814DEF7D64756E2164756E21
30019
30058
  //# sourceMappingURL=build.js.map