@pwa-platform/core 0.1.0-beta.0 → 0.1.0-beta.1

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 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAIV,OAAO,EAEP,mBAAmB,EAEpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAalD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAOhF"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAIV,OAAO,EAEP,mBAAmB,EAEpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAclD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAOhF"}
package/dist/compile.js CHANGED
@@ -6,6 +6,7 @@ import { compilePrecache } from "./precache.js";
6
6
  import { compilePathRules } from "./rules.js";
7
7
  import { decodedPathKey, isWithinKey } from "./internal/path-key.js";
8
8
  import { resolvePrefix } from "./rules.js";
9
+ import { compileRuntimeCache } from "./runtime-cache.js";
9
10
  import { installStartUrlInChildScope, policyRulesInChildScope, resolveTopology } from "./topology.js";
10
11
  const INPUT_FIELDS = ["identity", "install", "policy", "topology", "hostBuildOutput"];
11
12
  /**
@@ -94,7 +95,7 @@ function compile(input) {
94
95
  const rules = identity !== undefined && policy !== undefined ? compilePathRules(policy, identity.mountPath) : undefined;
95
96
  if (rules !== undefined)
96
97
  errors.push(...rules.findings);
97
- if (identity !== undefined && policy?.schemaVersion === 2 && rules !== undefined) {
98
+ if (identity !== undefined && (policy?.schemaVersion === 2 || policy?.schemaVersion === 3) && rules !== undefined) {
98
99
  for (const [index, target] of policy.offlineWrites.targets.entries()) {
99
100
  const key = decodedPathKey(resolvePrefix(identity.mountPath, target.pathPrefix));
100
101
  const matched = rules.pathRules.find((rule) => isWithinKey(key, decodedPathKey(rule.pathPrefix)));
@@ -103,6 +104,11 @@ function compile(input) {
103
104
  }
104
105
  }
105
106
  }
107
+ if (identity !== undefined && policy?.schemaVersion === 3) {
108
+ const runtimeCacheResult = compileRuntimeCache(policy, identity.mountPath);
109
+ errors.push(...runtimeCacheResult.errors);
110
+ warnings.push(...runtimeCacheResult.warnings);
111
+ }
106
112
  // Precache selection needs conflict-free rules and a valid build output manifest.
107
113
  const precache = identity !== undefined && policy !== undefined && rules !== undefined && rules.findings.length === 0 && host.output !== undefined
108
114
  ? compilePrecache(policy, identity.mountPath, host.output, rules, resolvedTopology?.childPrefixKeys ?? [])
@@ -133,16 +139,31 @@ function compile(input) {
133
139
  offlineFallback: precache.offlineFallback,
134
140
  updateMode: policy.updateMode,
135
141
  diagnostics: warnings,
142
+ // Only present when the policy set it, so an unset policy produces a plan with no such key.
143
+ ...(policy.networkTimeoutSeconds !== undefined
144
+ ? { networkTimeoutSeconds: policy.networkTimeoutSeconds }
145
+ : {}),
136
146
  };
137
- const plan = policy.schemaVersion === 2
147
+ const plan = policy.schemaVersion === 3
138
148
  ? {
139
149
  ...planFields,
140
- schemaVersion: 2,
141
- planVersion: 2,
142
- policyVersion: 2,
150
+ schemaVersion: 3,
151
+ planVersion: 3,
152
+ policyVersion: 3,
143
153
  offlineWrites: compileOfflineWrites(policy.offlineWrites, identity),
154
+ // Errors from an unsupported strategy already returned `failure` above; recomputing here is
155
+ // pure and side-effect free, and keeps the runtime-cache plan shape colocated with the others.
156
+ runtimeCache: compileRuntimeCache(policy, identity.mountPath).runtimeCache,
144
157
  }
145
- : { ...planFields, schemaVersion: 1, planVersion: 1, policyVersion: 1 };
158
+ : policy.schemaVersion === 2
159
+ ? {
160
+ ...planFields,
161
+ schemaVersion: 2,
162
+ planVersion: 2,
163
+ policyVersion: 2,
164
+ offlineWrites: compileOfflineWrites(policy.offlineWrites, identity),
165
+ }
166
+ : { ...planFields, schemaVersion: 1, planVersion: 1, policyVersion: 1 };
146
167
  // Guarantees the documented contract: a successful compilation always passes validatePlan.
147
168
  const checked = validatePlan(plan);
148
169
  if (!checked.ok)
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { PwaDiagnostic, PwaDiagnosticCode, PwaDiagnosticSeverity, PwaWarningDiagnostic } from "@pwa-platform/contracts";
2
2
  /** Field names of `PwaCompileInput`; diagnostic paths are built only from these and array indices. */
3
- export type InputField = "identity" | "install" | "policy" | "topology" | "hostBuildOutput" | "publicPath" | "serviceWorkerFile" | "manifestFile" | "files" | "path" | "fingerprinted" | "contentHash" | "resources" | "pathPrefix" | "offlineFallback" | "offlineWrites" | "targets" | "schemaVersion" | "registry" | "startUrl";
3
+ export type InputField = "identity" | "install" | "policy" | "topology" | "hostBuildOutput" | "publicPath" | "serviceWorkerFile" | "manifestFile" | "files" | "path" | "fingerprinted" | "contentHash" | "resources" | "pathPrefix" | "cache" | "offlineFallback" | "offlineWrites" | "runtimeCache" | "targets" | "schemaVersion" | "registry" | "startUrl" | "shortcuts" | "url";
4
4
  export declare function diagnostic(code: PwaDiagnosticCode, segments: readonly (InputField | number)[], severity?: PwaDiagnosticSeverity): PwaDiagnostic;
5
5
  export declare function warningDiagnostic(code: PwaDiagnosticCode, segments: readonly (InputField | number)[]): PwaWarningDiagnostic;
6
6
  /** Re-roots a contracts diagnostic, whose path is already sanitized, under an input field. */
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/internal/diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAEjC,sGAAsG;AACtG,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,SAAS,GACT,QAAQ,GACR,UAAU,GACV,iBAAiB,GACjB,YAAY,GACZ,mBAAmB,GACnB,cAAc,GACd,OAAO,GACP,MAAM,GACN,eAAe,GACf,aAAa,GACb,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,eAAe,GACf,SAAS,GACT,eAAe,GACf,UAAU,GACV,UAAU,CAAC;AAEf,wBAAgB,UAAU,CACxB,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,EAC1C,QAAQ,GAAE,qBAA+B,GACxC,aAAa,CAGf;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,GACzC,oBAAoB,CAEtB;AAED,8FAA8F;AAC9F,wBAAgB,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAE5G;AAED,oGAAoG;AACpG,wBAAgB,UAAU,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAGhG"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/internal/diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AAEjC,sGAAsG;AACtG,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,SAAS,GACT,QAAQ,GACR,UAAU,GACV,iBAAiB,GACjB,YAAY,GACZ,mBAAmB,GACnB,cAAc,GACd,OAAO,GACP,MAAM,GACN,eAAe,GACf,aAAa,GACb,WAAW,GACX,YAAY,GACZ,OAAO,GACP,iBAAiB,GACjB,eAAe,GACf,cAAc,GACd,SAAS,GACT,eAAe,GACf,UAAU,GACV,UAAU,GACV,WAAW,GACX,KAAK,CAAC;AAEV,wBAAgB,UAAU,CACxB,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,EAC1C,QAAQ,GAAE,qBAA+B,GACxC,aAAa,CAGf;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,GACzC,oBAAoB,CAEtB;AAED,8FAA8F;AAC9F,wBAAgB,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAE5G;AAED,oGAAoG;AACpG,wBAAgB,UAAU,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAGhG"}
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/internal/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAgC9D,MAAM,UAAU,UAAU,CACxB,IAAuB,EACvB,QAA0C,EAC1C,WAAkC,OAAO;IAEzC,MAAM,IAAI,GAAoB,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACpF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAuB,EACvB,QAA0C;IAE1C,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AAChE,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,WAAW,CAA0B,KAAwC,EAAE,OAAU;IACvG,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AAC1D,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,UAAU,CAA0B,MAA6B,EAAE,OAAU;IAC3F,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrE,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,EAAqB,EAAE,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/internal/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAoC9D,MAAM,UAAU,UAAU,CACxB,IAAuB,EACvB,QAA0C,EAC1C,WAAkC,OAAO;IAEzC,MAAM,IAAI,GAAoB,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACpF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAuB,EACvB,QAA0C;IAE1C,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AAChE,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,WAAW,CAA0B,KAAwC,EAAE,OAAU;IACvG,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AAC1D,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,UAAU,CAA0B,MAA6B,EAAE,OAAU;IAC3F,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrE,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,EAAqB,EAAE,CAAC;AACjF,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** FNV-1a 64-bit hash of `input`'s UTF-8 bytes, returned as 16 lowercase hex characters. */
2
+ export declare function fnv1a64(input: string): string;
3
+ //# sourceMappingURL=digest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../src/internal/digest.ts"],"names":[],"mappings":"AAQA,4FAA4F;AAC5F,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO7C"}
@@ -0,0 +1,16 @@
1
+ // Zero-dependency, synchronous, non-cryptographic hash: only used to invalidate a runtime cache
2
+ // namespace when its configuration changes, never as a security or integrity check.
3
+ const FNV_OFFSET_BASIS = 0xcbf29ce484222325n;
4
+ const FNV_PRIME = 0x100000001b3n;
5
+ const MASK_64 = 0xffffffffffffffffn;
6
+ const UTF8_ENCODER = new TextEncoder();
7
+ /** FNV-1a 64-bit hash of `input`'s UTF-8 bytes, returned as 16 lowercase hex characters. */
8
+ export function fnv1a64(input) {
9
+ let hash = FNV_OFFSET_BASIS;
10
+ for (const byte of UTF8_ENCODER.encode(input)) {
11
+ hash ^= BigInt(byte);
12
+ hash = (hash * FNV_PRIME) & MASK_64;
13
+ }
14
+ return hash.toString(16).padStart(16, "0");
15
+ }
16
+ //# sourceMappingURL=digest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest.js","sourceRoot":"","sources":["../../src/internal/digest.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,oFAAoF;AACpF,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAC7C,MAAM,SAAS,GAAG,cAAc,CAAC;AACjC,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAEpC,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC;AAEvC,4FAA4F;AAC5F,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,IAAI,IAAI,GAAG,gBAAgB,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { AbsolutePath, PwaDiagnostic, PwaPolicyV3, PwaRuntimeCachePlan, PwaWarningDiagnostic } from "@pwa-platform/contracts";
2
+ export type CompiledRuntimeCache = {
3
+ readonly runtimeCache: PwaRuntimeCachePlan;
4
+ readonly errors: PwaDiagnostic[];
5
+ readonly warnings: PwaWarningDiagnostic[];
6
+ };
7
+ /**
8
+ * Compiles a v3 policy's `runtimeCache` opt-in against its resource rules, per the spec's
9
+ * compilation table. `enabled=false` always passes every rule through unchanged and never
10
+ * produces a diagnostic. `enabled=true` marks `public-data`/`navigation-public-dynamic` rules
11
+ * executable, unsupported, or leaves them (and every other class) untouched.
12
+ */
13
+ export declare function compileRuntimeCache(policy: PwaPolicyV3, mountPath: AbsolutePath): CompiledRuntimeCache;
14
+ //# sourceMappingURL=runtime-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-cache.d.ts","sourceRoot":"","sources":["../src/runtime-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AA+BjC,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAC3C,CAAC;AAMF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,GAAG,oBAAoB,CAuCtG"}
@@ -0,0 +1,74 @@
1
+ import { fnv1a64 } from "./internal/digest.js";
2
+ import { diagnostic, warningDiagnostic } from "./internal/diagnostics.js";
3
+ import { compareCodePoints } from "./internal/order.js";
4
+ import { resolvePrefix } from "./rules.js";
5
+ const RUNTIME_STRATEGY_TABLE = {
6
+ "public-data": {
7
+ "network-first": "executable",
8
+ "stale-while-revalidate": "executable",
9
+ "cache-first": "error",
10
+ },
11
+ "navigation-public-dynamic": {
12
+ "network-first": "executable",
13
+ "stale-while-revalidate": "error",
14
+ "cache-first": "error",
15
+ },
16
+ };
17
+ function isExecutableClass(resourceClass) {
18
+ return resourceClass === "public-data" || resourceClass === "navigation-public-dynamic";
19
+ }
20
+ /**
21
+ * Compiles a v3 policy's `runtimeCache` opt-in against its resource rules, per the spec's
22
+ * compilation table. `enabled=false` always passes every rule through unchanged and never
23
+ * produces a diagnostic. `enabled=true` marks `public-data`/`navigation-public-dynamic` rules
24
+ * executable, unsupported, or leaves them (and every other class) untouched.
25
+ */
26
+ export function compileRuntimeCache(policy, mountPath) {
27
+ if (!policy.runtimeCache.enabled) {
28
+ return { runtimeCache: { enabled: false }, errors: [], warnings: [] };
29
+ }
30
+ const errors = [];
31
+ const executableRules = [];
32
+ policy.resources.forEach((resource, index) => {
33
+ if (!isExecutableClass(resource.resourceClass) || resource.cache === "none")
34
+ return;
35
+ const outcome = RUNTIME_STRATEGY_TABLE[resource.resourceClass][resource.cache] ?? "passthrough";
36
+ if (outcome === "error") {
37
+ errors.push(diagnostic("compile.runtime-strategy-unsupported", ["policy", "resources", index, "cache"]));
38
+ return;
39
+ }
40
+ if (outcome === "executable") {
41
+ executableRules.push({
42
+ pathPrefix: resolvePrefix(mountPath, resource.pathPrefix),
43
+ resourceClass: resource.resourceClass,
44
+ strategy: resource.cache,
45
+ });
46
+ }
47
+ });
48
+ const warnings = executableRules.length === 0 ? [warningDiagnostic("compile.runtime-cache-unused", ["policy", "runtimeCache"])] : [];
49
+ const { maxEntries, maxEntryBytes, maxAgeSeconds } = policy.runtimeCache;
50
+ return {
51
+ runtimeCache: {
52
+ enabled: true,
53
+ maxEntries,
54
+ maxEntryBytes,
55
+ maxAgeSeconds,
56
+ configDigest: configDigest({ maxEntries, maxEntryBytes, maxAgeSeconds }, executableRules),
57
+ },
58
+ errors,
59
+ warnings,
60
+ };
61
+ }
62
+ /**
63
+ * FNV-1a 64 of a canonical JSON string over the limits and the executable rules, sorted by path
64
+ * prefix so resource input order never changes the digest. Fixed key order throughout.
65
+ */
66
+ function configDigest(limits, rules) {
67
+ const sortedRules = [...rules].sort((left, right) => compareCodePoints(left.pathPrefix, right.pathPrefix));
68
+ const rulesJson = sortedRules
69
+ .map((rule) => `{"pathPrefix":${JSON.stringify(rule.pathPrefix)},"resourceClass":${JSON.stringify(rule.resourceClass)},"strategy":${JSON.stringify(rule.strategy)}}`)
70
+ .join(",");
71
+ const canonical = `{"limits":{"maxEntries":${limits.maxEntries},"maxEntryBytes":${limits.maxEntryBytes},"maxAgeSeconds":${limits.maxAgeSeconds}},"rules":[${rulesJson}]}`;
72
+ return fnv1a64(canonical);
73
+ }
74
+ //# sourceMappingURL=runtime-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-cache.js","sourceRoot":"","sources":["../src/runtime-cache.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../src/topology.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,SAAS,EAET,WAAW,EACZ,MAAM,yBAAyB,CAAC;AAOjC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,+GAA+G;IAC/G,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,gGAAgG;IAChG,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;IACnC,qHAAqH;IACrH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACjD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,GAAG,SAAS,GAAG,kBAAkB,CAsCxG;AAED,wGAAwG;AACxG,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,YAAY,EACvB,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,aAAa,EAAE,CAOjB;AAED,4HAA4H;AAC5H,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kBAAkB,EAC3B,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,aAAa,EAAE,CAKjB"}
1
+ {"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../src/topology.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,SAAS,EAET,WAAW,EACZ,MAAM,yBAAyB,CAAC;AAOjC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,+GAA+G;IAC/G,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,gGAAgG;IAChG,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;IACnC,qHAAqH;IACrH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACjD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,GAAG,SAAS,GAAG,kBAAkB,CAsCxG;AAED,wGAAwG;AACxG,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,YAAY,EACvB,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,aAAa,EAAE,CAOjB;AAED,4HAA4H;AAC5H,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kBAAkB,EAC3B,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,aAAa,EAAE,CAYjB"}
package/dist/topology.js CHANGED
@@ -55,10 +55,17 @@ export function policyRulesInChildScope(policy, mountPath, childPrefixKeys) {
55
55
  }
56
56
  /** Root-app check: the install start URL must not reach into a child scope (contracts' `plan.start-url-in-child-scope`). */
57
57
  export function installStartUrlInChildScope(install, childPrefixKeys) {
58
- const key = decodedPathKey(install.startUrl);
59
- return childPrefixKeys.some((childKey) => isWithinKey(key, childKey))
60
- ? [diagnostic("compile.start-url-in-child-scope", ["install", "startUrl"])]
61
- : [];
58
+ const inChildScope = (path) => childPrefixKeys.some((childKey) => isWithinKey(decodedPathKey(path), childKey));
59
+ const findings = [];
60
+ if (inChildScope(install.startUrl))
61
+ findings.push(diagnostic("compile.start-url-in-child-scope", ["install", "startUrl"]));
62
+ // Shortcuts follow the start URL's rule (ADR-0037): a root app's shortcut must not open a child's page.
63
+ install.shortcuts?.forEach((shortcut, index) => {
64
+ if (inChildScope(shortcut.url)) {
65
+ findings.push(diagnostic("compile.shortcut-url-in-child-scope", ["install", "shortcuts", index, "url"]));
66
+ }
67
+ });
68
+ return findings;
62
69
  }
63
70
  function matchesIdentity(entry, identity) {
64
71
  return (entry.appId === identity.appId &&
@@ -1 +1 @@
1
- {"version":3,"file":"topology.js","sourceRoot":"","sources":["../src/topology.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"topology.js","sourceRoot":"","sources":["../src/topology.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pwa-platform/core",
3
- "version": "0.1.0-beta.0",
3
+ "version": "0.1.0-beta.1",
4
4
  "description": "Compile PWA Platform policies into deployment plans.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -16,7 +16,7 @@
16
16
  "dist"
17
17
  ],
18
18
  "dependencies": {
19
- "@pwa-platform/contracts": "0.1.0-beta.0"
19
+ "@pwa-platform/contracts": "0.1.0-beta.1"
20
20
  },
21
21
  "engines": {
22
22
  "node": ">=22.0.0"