@pwa-platform/core 0.2.4 → 0.3.0
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/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +40 -17
- package/dist/compile.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/input.d.ts +18 -4
- package/dist/input.d.ts.map +1 -1
- package/dist/internal/diagnostics.d.ts +1 -1
- package/dist/internal/diagnostics.d.ts.map +1 -1
- package/dist/internal/diagnostics.js.map +1 -1
- package/dist/topology.d.ts +3 -3
- package/dist/topology.d.ts.map +1 -1
- package/dist/topology.js +8 -5
- package/dist/topology.js.map +1 -1
- package/package.json +2 -2
package/dist/compile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAIV,OAAO,EAGP,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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { REQUEST_BASELINE_DENIALS, cacheNamespacePrefix, validateIdentity, validateInstallMetadata, validatePlan, validatePolicy, } from "@pwa-platform/contracts";
|
|
1
|
+
import { REQUEST_BASELINE_DENIALS, cacheNamespacePrefix, validateIdentity, validatePortableIdentity, validateInstallMetadata, validatePlan, validatePolicy, } from "@pwa-platform/contracts";
|
|
2
2
|
import { checkHostOutput } from "./host-output.js";
|
|
3
3
|
import { diagnostic, withinField } from "./internal/diagnostics.js";
|
|
4
4
|
import { isPlainRecord } from "./internal/shape.js";
|
|
@@ -27,7 +27,7 @@ function readInput(input) {
|
|
|
27
27
|
if (!isPlainRecord(input))
|
|
28
28
|
return [diagnostic("schema.invalid-type", [])];
|
|
29
29
|
const findings = [];
|
|
30
|
-
if (Reflect.ownKeys(input).some((key) => !INPUT_FIELDS.includes(key))) {
|
|
30
|
+
if (Reflect.ownKeys(input).some((key) => key !== "deployment" && !INPUT_FIELDS.includes(key))) {
|
|
31
31
|
findings.push(diagnostic("schema.unknown-field", []));
|
|
32
32
|
}
|
|
33
33
|
const fields = {};
|
|
@@ -43,6 +43,13 @@ function readInput(input) {
|
|
|
43
43
|
fields[field] = descriptor.value;
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
+
const deployment = Object.getOwnPropertyDescriptor(input, "deployment");
|
|
47
|
+
if (deployment !== undefined) {
|
|
48
|
+
if (!deployment.enumerable || !("value" in deployment))
|
|
49
|
+
findings.push(diagnostic("value.not-serializable", ["deployment"]));
|
|
50
|
+
else
|
|
51
|
+
fields.deployment = deployment.value;
|
|
52
|
+
}
|
|
46
53
|
return findings.length > 0 ? findings : fields;
|
|
47
54
|
}
|
|
48
55
|
function compile(input) {
|
|
@@ -51,7 +58,11 @@ function compile(input) {
|
|
|
51
58
|
return failure(fields);
|
|
52
59
|
const errors = [];
|
|
53
60
|
const warnings = [];
|
|
54
|
-
const
|
|
61
|
+
const portable = isDeployment(fields.deployment, "portable");
|
|
62
|
+
if (fields.deployment !== undefined && !portable && !isDeployment(fields.deployment, "fixed")) {
|
|
63
|
+
errors.push(diagnostic("schema.invalid-value", ["deployment"]));
|
|
64
|
+
}
|
|
65
|
+
const identityResult = portable ? validatePortableIdentity(fields.identity) : validateIdentity(fields.identity);
|
|
55
66
|
if (!identityResult.ok)
|
|
56
67
|
errors.push(...identityResult.diagnostics.map((finding) => withinField("identity", finding)));
|
|
57
68
|
const identity = identityResult.ok ? identityResult.value : undefined;
|
|
@@ -59,6 +70,8 @@ function compile(input) {
|
|
|
59
70
|
if (!policyResult.ok)
|
|
60
71
|
errors.push(...policyResult.diagnostics.map((finding) => withinField("policy", finding)));
|
|
61
72
|
const policy = policyResult.ok ? policyResult.value : undefined;
|
|
73
|
+
if (portable && policy?.schemaVersion !== 3)
|
|
74
|
+
errors.push(diagnostic("schema.unsupported-version", ["policy", "schemaVersion"]));
|
|
62
75
|
// v2 policy validation lands before its plan and worker contract. Never discard an accepted offline-write
|
|
63
76
|
// declaration and emit a v1 plan: until the coordinated v2 compiler slice exists, reject it explicitly.
|
|
64
77
|
const installEnabled = policy?.install.enabled === true;
|
|
@@ -79,7 +92,7 @@ function compile(input) {
|
|
|
79
92
|
errors.push(...installResult.diagnostics.map((finding) => withinField("install", finding)));
|
|
80
93
|
}
|
|
81
94
|
}
|
|
82
|
-
const topologyResolution = resolveTopology(fields.topology, identity);
|
|
95
|
+
const topologyResolution = resolveTopology(fields.topology, identity, portable);
|
|
83
96
|
errors.push(...topologyResolution.findings);
|
|
84
97
|
const resolvedTopology = topologyResolution.resolved;
|
|
85
98
|
if (identity !== undefined && policy !== undefined && resolvedTopology !== undefined && resolvedTopology.childPrefixKeys.length > 0) {
|
|
@@ -144,26 +157,34 @@ function compile(input) {
|
|
|
144
157
|
? { networkTimeoutSeconds: policy.networkTimeoutSeconds }
|
|
145
158
|
: {}),
|
|
146
159
|
};
|
|
147
|
-
const plan = policy.schemaVersion === 3
|
|
160
|
+
const plan = portable && policy.schemaVersion === 3
|
|
148
161
|
? {
|
|
149
162
|
...planFields,
|
|
150
|
-
schemaVersion: 3,
|
|
151
|
-
|
|
152
|
-
policyVersion: 3,
|
|
163
|
+
schemaVersion: 4, planVersion: 4, policyVersion: 3,
|
|
164
|
+
deployment: { kind: "portable" },
|
|
153
165
|
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
166
|
runtimeCache: compileRuntimeCache(policy, identity.mountPath).runtimeCache,
|
|
157
167
|
}
|
|
158
|
-
: policy.schemaVersion ===
|
|
168
|
+
: policy.schemaVersion === 3
|
|
159
169
|
? {
|
|
160
170
|
...planFields,
|
|
161
|
-
schemaVersion:
|
|
162
|
-
planVersion:
|
|
163
|
-
policyVersion:
|
|
171
|
+
schemaVersion: 3,
|
|
172
|
+
planVersion: 3,
|
|
173
|
+
policyVersion: 3,
|
|
164
174
|
offlineWrites: compileOfflineWrites(policy.offlineWrites, identity),
|
|
175
|
+
// Errors from an unsupported strategy already returned `failure` above; recomputing here is
|
|
176
|
+
// pure and side-effect free, and keeps the runtime-cache plan shape colocated with the others.
|
|
177
|
+
runtimeCache: compileRuntimeCache(policy, identity.mountPath).runtimeCache,
|
|
165
178
|
}
|
|
166
|
-
:
|
|
179
|
+
: policy.schemaVersion === 2
|
|
180
|
+
? {
|
|
181
|
+
...planFields,
|
|
182
|
+
schemaVersion: 2,
|
|
183
|
+
planVersion: 2,
|
|
184
|
+
policyVersion: 2,
|
|
185
|
+
offlineWrites: compileOfflineWrites(policy.offlineWrites, identity),
|
|
186
|
+
}
|
|
187
|
+
: { ...planFields, schemaVersion: 1, planVersion: 1, policyVersion: 1 };
|
|
167
188
|
// Guarantees the documented contract: a successful compilation always passes validatePlan.
|
|
168
189
|
const checked = validatePlan(plan);
|
|
169
190
|
if (!checked.ok)
|
|
@@ -173,13 +194,12 @@ function compile(input) {
|
|
|
173
194
|
function compileOfflineWrites(policy, identity) {
|
|
174
195
|
if (!policy.enabled)
|
|
175
196
|
return { enabled: false };
|
|
176
|
-
const resolve = (prefix) => (identity.mountPath === "/" ? prefix : prefix === "/" ? identity.mountPath : `${identity.mountPath}${prefix}`);
|
|
177
197
|
return {
|
|
178
198
|
enabled: true,
|
|
179
199
|
databaseName: `pwa-offline-write:${encodeURIComponent(identity.appId)}:${encodeURIComponent(identity.environment)}:${encodeURIComponent(identity.cacheNamespaceSeed)}`,
|
|
180
200
|
maxEntries: policy.maxEntries,
|
|
181
201
|
maxTotalBodyBytes: policy.maxTotalBodyBytes,
|
|
182
|
-
targets: policy.targets.map((target) => ({ id: target.id, pathPrefix:
|
|
202
|
+
targets: policy.targets.map((target) => ({ id: target.id, pathPrefix: resolvePrefix(identity.mountPath, target.pathPrefix), maxBodyBytes: target.maxBodyBytes })),
|
|
183
203
|
};
|
|
184
204
|
}
|
|
185
205
|
function failure(diagnostics) {
|
|
@@ -188,4 +208,7 @@ function failure(diagnostics) {
|
|
|
188
208
|
throw new Error("A failed compilation must carry at least one diagnostic.");
|
|
189
209
|
return { ok: false, diagnostics: [first, ...rest] };
|
|
190
210
|
}
|
|
211
|
+
function isDeployment(value, kind) {
|
|
212
|
+
return isPlainRecord(value) && Reflect.ownKeys(value).length === 1 && value.kind === kind;
|
|
213
|
+
}
|
|
191
214
|
//# sourceMappingURL=compile.js.map
|
package/dist/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,cAAc,GACf,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { compilePlan } from "./compile.js";
|
|
2
|
-
export type { PwaCompileHostOutput, PwaCompileInput, PwaHostBuildFile } from "./input.js";
|
|
2
|
+
export type { PwaCompileHostOutput, PwaCompileInput, PwaFixedCompileInput, PwaPortableCompileInput, PwaHostBuildFile } from "./input.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/input.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AbsolutePath, PwaIdentity, PwaInstallMetadata, PwaPolicy, PwaTopology } from "@pwa-platform/contracts";
|
|
1
|
+
import type { AbsolutePath, PwaIdentity, PwaPortableIdentity, PwaInstallMetadata, PwaPolicy, PwaTopology, PwaPortableTopology } from "@pwa-platform/contracts";
|
|
2
2
|
export type PwaHostBuildFile = {
|
|
3
3
|
/** POSIX path relative to the build output directory. */
|
|
4
4
|
readonly path: string;
|
|
@@ -15,11 +15,25 @@ export type PwaCompileHostOutput = {
|
|
|
15
15
|
readonly files: readonly PwaHostBuildFile[];
|
|
16
16
|
};
|
|
17
17
|
/** Typed for callers; `compilePlan` still validates every field at runtime. */
|
|
18
|
-
|
|
19
|
-
readonly identity: PwaIdentity;
|
|
18
|
+
type PwaCompileFields = {
|
|
20
19
|
readonly install: PwaInstallMetadata | null;
|
|
21
20
|
readonly policy: PwaPolicy;
|
|
22
|
-
readonly topology: PwaTopology;
|
|
23
21
|
readonly hostBuildOutput: PwaCompileHostOutput;
|
|
24
22
|
};
|
|
23
|
+
export type PwaFixedCompileInput = PwaCompileFields & {
|
|
24
|
+
readonly deployment?: {
|
|
25
|
+
readonly kind: "fixed";
|
|
26
|
+
};
|
|
27
|
+
readonly identity: PwaIdentity;
|
|
28
|
+
readonly topology: PwaTopology;
|
|
29
|
+
};
|
|
30
|
+
export type PwaPortableCompileInput = PwaCompileFields & {
|
|
31
|
+
readonly deployment: {
|
|
32
|
+
readonly kind: "portable";
|
|
33
|
+
};
|
|
34
|
+
readonly identity: PwaPortableIdentity;
|
|
35
|
+
readonly topology: PwaPortableTopology;
|
|
36
|
+
};
|
|
37
|
+
export type PwaCompileInput = PwaFixedCompileInput | PwaPortableCompileInput;
|
|
38
|
+
export {};
|
|
25
39
|
//# sourceMappingURL=input.d.ts.map
|
package/dist/input.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,WAAW,
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC7C,CAAC;AAEF,+EAA+E;AAC/E,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAClH,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG;IACvD,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;CACpI,CAAC;AACF,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG,uBAAuB,CAAC"}
|
|
@@ -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" | "cache" | "offlineFallback" | "offlineWrites" | "runtimeCache" | "targets" | "schemaVersion" | "registry" | "startUrl" | "shortcuts" | "url";
|
|
3
|
+
export type InputField = "identity" | "deployment" | "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,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
|
+
{"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,YAAY,GACZ,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;
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/internal/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAqC9D,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"}
|
package/dist/topology.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { AbsolutePath, PwaDiagnostic,
|
|
1
|
+
import type { AbsolutePath, PwaDiagnostic, PwaDeploymentIdentity, PwaInstallMetadata, PwaPathRule, PwaPolicy, PwaTopology, PwaPortableTopology } from "@pwa-platform/contracts";
|
|
2
2
|
export type ResolvedTopology = {
|
|
3
3
|
/** Recorded as-is in the plan's `topology` field. */
|
|
4
|
-
readonly value: PwaTopology;
|
|
4
|
+
readonly value: PwaTopology | PwaPortableTopology;
|
|
5
5
|
/** Decoded path keys of every child scope; empty unless this app is the root of a `shared-origin` registry. */
|
|
6
6
|
readonly childPrefixKeys: readonly string[];
|
|
7
7
|
/** Exclude rules to place ahead of every other path rule; empty unless this app is the root. */
|
|
@@ -17,7 +17,7 @@ export type TopologyResolution = {
|
|
|
17
17
|
* building app's identity to exactly one registry entry, and (for the root app) computes the
|
|
18
18
|
* exclude rules and child scope keys the rest of compilation needs.
|
|
19
19
|
*/
|
|
20
|
-
export declare function resolveTopology(topology: unknown, identity:
|
|
20
|
+
export declare function resolveTopology(topology: unknown, identity: PwaDeploymentIdentity | undefined, portable?: boolean): TopologyResolution;
|
|
21
21
|
/** Root-app check: a policy resource (any action, including deny) must not reach into a child scope. */
|
|
22
22
|
export declare function policyRulesInChildScope(policy: PwaPolicy, mountPath: AbsolutePath, childPrefixKeys: readonly string[]): PwaDiagnostic[];
|
|
23
23
|
/** Root-app check: the install start URL must not reach into a child scope (contracts' `plan.start-url-in-child-scope`). */
|
package/dist/topology.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../src/topology.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../src/topology.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,SAAS,EAET,WAAW,EACX,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAOjC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;IAClD,+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,qBAAqB,GAAG,SAAS,EAAE,QAAQ,UAAQ,GAAG,kBAAkB,CAyCpI;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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { validateOriginRegistry } from "@pwa-platform/contracts";
|
|
1
|
+
import { validateOriginRegistry, validatePortableOriginRegistry } from "@pwa-platform/contracts";
|
|
2
2
|
import { diagnostic, withinPath } from "./internal/diagnostics.js";
|
|
3
3
|
import { compareCodePoints } from "./internal/order.js";
|
|
4
4
|
import { decodedPathKey, isWithinKey } from "./internal/path-key.js";
|
|
@@ -9,12 +9,12 @@ import { resolvePrefix } from "./rules.js";
|
|
|
9
9
|
* building app's identity to exactly one registry entry, and (for the root app) computes the
|
|
10
10
|
* exclude rules and child scope keys the rest of compilation needs.
|
|
11
11
|
*/
|
|
12
|
-
export function resolveTopology(topology, identity) {
|
|
12
|
+
export function resolveTopology(topology, identity, portable = false) {
|
|
13
13
|
if (hasExactKeys(topology, ["kind"]) && topology.kind === "standalone-origin") {
|
|
14
14
|
return { findings: [], resolved: { value: { kind: "standalone-origin" }, childPrefixKeys: [], excludeRules: [] } };
|
|
15
15
|
}
|
|
16
16
|
if (hasExactKeys(topology, ["kind", "registry"]) && topology.kind === "shared-origin") {
|
|
17
|
-
const registryResult = validateOriginRegistry(topology.registry);
|
|
17
|
+
const registryResult = portable ? validatePortableOriginRegistry(topology.registry) : validateOriginRegistry(topology.registry);
|
|
18
18
|
if (!registryResult.ok) {
|
|
19
19
|
return {
|
|
20
20
|
findings: registryResult.diagnostics.map((finding) => withinPath(["topology", "registry"], finding)),
|
|
@@ -26,10 +26,13 @@ export function resolveTopology(topology, identity) {
|
|
|
26
26
|
if (identity === undefined)
|
|
27
27
|
return { findings: [], resolved: undefined };
|
|
28
28
|
const matches = [registry.root, ...registry.children].filter((entry) => matchesIdentity(entry, identity));
|
|
29
|
-
if (registry.
|
|
29
|
+
if (registry.environment !== identity.environment || matches.length !== 1 ||
|
|
30
|
+
(!portable && (registry.schemaVersion !== 1 || registry.origin !== identity.origin))) {
|
|
30
31
|
return { findings: [diagnostic("plan.registry-identity-mismatch", ["topology", "registry"])], resolved: undefined };
|
|
31
32
|
}
|
|
32
|
-
const value =
|
|
33
|
+
const value = portable
|
|
34
|
+
? { kind: "shared-origin", registry: registry }
|
|
35
|
+
: { kind: "shared-origin", registry: registry };
|
|
33
36
|
if (!matchesIdentity(registry.root, identity)) {
|
|
34
37
|
return { findings: [], resolved: { value, childPrefixKeys: [], excludeRules: [] } };
|
|
35
38
|
}
|
package/dist/topology.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topology.js","sourceRoot":"","sources":["../src/topology.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;
|
|
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.
|
|
3
|
+
"version": "0.3.0",
|
|
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.
|
|
19
|
+
"@pwa-platform/contracts": "0.3.0"
|
|
20
20
|
},
|
|
21
21
|
"engines": {
|
|
22
22
|
"node": ">=22.0.0"
|