@xemahq/kernel-contracts 0.33.0 → 0.35.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/app-runtime/index.d.ts +4 -0
- package/dist/app-runtime/index.d.ts.map +1 -1
- package/dist/app-runtime/index.js +4 -0
- package/dist/app-runtime/index.js.map +1 -1
- package/dist/app-runtime/lib/app-channel.d.ts +7 -0
- package/dist/app-runtime/lib/app-channel.d.ts.map +1 -0
- package/dist/app-runtime/lib/app-channel.js +11 -0
- package/dist/app-runtime/lib/app-channel.js.map +1 -0
- package/dist/app-runtime/lib/app-release.d.ts +24 -0
- package/dist/app-runtime/lib/app-release.d.ts.map +1 -0
- package/dist/app-runtime/lib/app-release.js +29 -0
- package/dist/app-runtime/lib/app-release.js.map +1 -0
- package/dist/app-runtime/lib/app-shell-binding.d.ts +38 -0
- package/dist/app-runtime/lib/app-shell-binding.d.ts.map +1 -0
- package/dist/app-runtime/lib/app-shell-binding.js +58 -0
- package/dist/app-runtime/lib/app-shell-binding.js.map +1 -0
- package/dist/app-runtime/lib/app.d.ts +3 -0
- package/dist/app-runtime/lib/app.d.ts.map +1 -1
- package/dist/app-runtime/lib/app.js +19 -4
- package/dist/app-runtime/lib/app.js.map +1 -1
- package/dist/app-runtime/lib/branding-config.d.ts.map +1 -1
- package/dist/app-runtime/lib/branding-config.js.map +1 -1
- package/dist/app-runtime/lib/delegated-session.js +1 -1
- package/dist/app-runtime/lib/delegated-session.js.map +1 -1
- package/dist/app-runtime/lib/surface-kind.d.ts +8 -0
- package/dist/app-runtime/lib/surface-kind.d.ts.map +1 -0
- package/dist/app-runtime/lib/surface-kind.js +12 -0
- package/dist/app-runtime/lib/surface-kind.js.map +1 -0
- package/dist/capability/index.d.ts +1 -0
- package/dist/capability/index.d.ts.map +1 -1
- package/dist/capability/index.js +1 -0
- package/dist/capability/index.js.map +1 -1
- package/dist/capability/lib/first-party-capability-domains.d.ts +29 -0
- package/dist/capability/lib/first-party-capability-domains.d.ts.map +1 -0
- package/dist/capability/lib/first-party-capability-domains.js +35 -0
- package/dist/capability/lib/first-party-capability-domains.js.map +1 -0
- package/dist/principal/index.d.ts +6 -0
- package/dist/principal/index.d.ts.map +1 -0
- package/dist/principal/index.js +22 -0
- package/dist/principal/index.js.map +1 -0
- package/dist/principal/lib/app-invocation-identity.d.ts +22 -0
- package/dist/principal/lib/app-invocation-identity.d.ts.map +1 -0
- package/dist/principal/lib/app-invocation-identity.js +36 -0
- package/dist/principal/lib/app-invocation-identity.js.map +1 -0
- package/dist/principal/lib/clamp-authority.d.ts +4 -0
- package/dist/principal/lib/clamp-authority.d.ts.map +1 -0
- package/dist/principal/lib/clamp-authority.js +23 -0
- package/dist/principal/lib/clamp-authority.js.map +1 -0
- package/dist/principal/lib/delegation-chain.d.ts +26 -0
- package/dist/principal/lib/delegation-chain.d.ts.map +1 -0
- package/dist/principal/lib/delegation-chain.js +81 -0
- package/dist/principal/lib/delegation-chain.js.map +1 -0
- package/dist/principal/lib/delegation-grant.d.ts +10 -0
- package/dist/principal/lib/delegation-grant.d.ts.map +1 -0
- package/dist/principal/lib/delegation-grant.js +12 -0
- package/dist/principal/lib/delegation-grant.js.map +1 -0
- package/dist/principal/lib/execution-principal.d.ts +20 -0
- package/dist/principal/lib/execution-principal.d.ts.map +1 -0
- package/dist/principal/lib/execution-principal.js +22 -0
- package/dist/principal/lib/execution-principal.js.map +1 -0
- package/package.json +1 -1
- package/src/app-runtime/index.ts +4 -0
- package/src/app-runtime/lib/app-channel.ts +32 -0
- package/src/app-runtime/lib/app-release.ts +90 -0
- package/src/app-runtime/lib/app-shell-binding.ts +159 -0
- package/src/app-runtime/lib/app.ts +48 -17
- package/src/app-runtime/lib/branding-config.ts +12 -6
- package/src/app-runtime/lib/delegated-session.ts +2 -2
- package/src/app-runtime/lib/surface-kind.ts +30 -0
- package/src/capability/index.ts +1 -0
- package/src/capability/lib/first-party-capability-domains.ts +76 -0
- package/src/principal/index.ts +5 -0
- package/src/principal/lib/app-invocation-identity.ts +95 -0
- package/src/principal/lib/clamp-authority.ts +64 -0
- package/src/principal/lib/delegation-chain.ts +145 -0
- package/src/principal/lib/delegation-grant.ts +36 -0
- package/src/principal/lib/execution-principal.ts +74 -0
|
@@ -5,5 +5,9 @@ export * from './lib/delegated-session';
|
|
|
5
5
|
export * from './lib/app-client';
|
|
6
6
|
export * from './lib/app-lockfile';
|
|
7
7
|
export * from './lib/branding-config';
|
|
8
|
+
export * from './lib/surface-kind';
|
|
9
|
+
export * from './lib/app-shell-binding';
|
|
10
|
+
export * from './lib/app-channel';
|
|
11
|
+
export * from './lib/app-release';
|
|
8
12
|
export * from './lib/app';
|
|
9
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app-runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app-runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC"}
|
|
@@ -21,5 +21,9 @@ __exportStar(require("./lib/delegated-session"), exports);
|
|
|
21
21
|
__exportStar(require("./lib/app-client"), exports);
|
|
22
22
|
__exportStar(require("./lib/app-lockfile"), exports);
|
|
23
23
|
__exportStar(require("./lib/branding-config"), exports);
|
|
24
|
+
__exportStar(require("./lib/surface-kind"), exports);
|
|
25
|
+
__exportStar(require("./lib/app-shell-binding"), exports);
|
|
26
|
+
__exportStar(require("./lib/app-channel"), exports);
|
|
27
|
+
__exportStar(require("./lib/app-release"), exports);
|
|
24
28
|
__exportStar(require("./lib/app"), exports);
|
|
25
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app-runtime/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,wDAAsC;AACtC,yDAAuC;AACvC,0DAAwC;AACxC,mDAAiC;AACjC,qDAAmC;AACnC,wDAAsC;AACtC,4CAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app-runtime/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,wDAAsC;AACtC,yDAAuC;AACvC,0DAAwC;AACxC,mDAAiC;AACjC,qDAAmC;AACnC,wDAAsC;AACtC,qDAAmC;AACnC,0DAAwC;AACxC,oDAAkC;AAClC,oDAAkC;AAClC,4CAA0B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-channel.d.ts","sourceRoot":"","sources":["../../../src/app-runtime/lib/app-channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0BxB,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,eAAO,MAAM,gBAAgB,8BAA2B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppChannelSchema = exports.AppChannel = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
var AppChannel;
|
|
6
|
+
(function (AppChannel) {
|
|
7
|
+
AppChannel["Preview"] = "preview";
|
|
8
|
+
AppChannel["Live"] = "live";
|
|
9
|
+
})(AppChannel || (exports.AppChannel = AppChannel = {}));
|
|
10
|
+
exports.AppChannelSchema = zod_1.z.nativeEnum(AppChannel);
|
|
11
|
+
//# sourceMappingURL=app-channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-channel.js","sourceRoot":"","sources":["../../../src/app-runtime/lib/app-channel.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AA0BxB,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,2BAAa,CAAA;AACf,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB;AAEY,QAAA,gBAAgB,GAAG,OAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type AppLockfile } from './app-lockfile';
|
|
3
|
+
export declare enum AppReleaseState {
|
|
4
|
+
Preparing = "preparing",
|
|
5
|
+
Prepared = "prepared",
|
|
6
|
+
Activating = "activating",
|
|
7
|
+
Active = "active",
|
|
8
|
+
Superseded = "superseded",
|
|
9
|
+
Failed = "failed"
|
|
10
|
+
}
|
|
11
|
+
export declare const AppReleaseStateSchema: z.ZodEnum<typeof AppReleaseState>;
|
|
12
|
+
export interface AppRelease {
|
|
13
|
+
id: string;
|
|
14
|
+
appId: string;
|
|
15
|
+
version: number;
|
|
16
|
+
definition: unknown;
|
|
17
|
+
lockfile: AppLockfile;
|
|
18
|
+
schemaPlan: unknown;
|
|
19
|
+
state: AppReleaseState;
|
|
20
|
+
preparedAt?: string;
|
|
21
|
+
activatedAt?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare const AppReleaseSchema: z.ZodType<AppRelease>;
|
|
24
|
+
//# sourceMappingURL=app-release.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-release.d.ts","sourceRoot":"","sources":["../../../src/app-runtime/lib/app-release.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAoBrE,oBAAY,eAAe;IACzB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,qBAAqB,mCAAgC,CAAC;AAmCnE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,EAYvB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppReleaseSchema = exports.AppReleaseStateSchema = exports.AppReleaseState = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const app_lockfile_1 = require("./app-lockfile");
|
|
6
|
+
var AppReleaseState;
|
|
7
|
+
(function (AppReleaseState) {
|
|
8
|
+
AppReleaseState["Preparing"] = "preparing";
|
|
9
|
+
AppReleaseState["Prepared"] = "prepared";
|
|
10
|
+
AppReleaseState["Activating"] = "activating";
|
|
11
|
+
AppReleaseState["Active"] = "active";
|
|
12
|
+
AppReleaseState["Superseded"] = "superseded";
|
|
13
|
+
AppReleaseState["Failed"] = "failed";
|
|
14
|
+
})(AppReleaseState || (exports.AppReleaseState = AppReleaseState = {}));
|
|
15
|
+
exports.AppReleaseStateSchema = zod_1.z.nativeEnum(AppReleaseState);
|
|
16
|
+
exports.AppReleaseSchema = zod_1.z.object({
|
|
17
|
+
id: zod_1.z.string().min(1),
|
|
18
|
+
appId: zod_1.z.string().min(1),
|
|
19
|
+
version: zod_1.z.number().int().positive({
|
|
20
|
+
message: 'AppRelease.version must be a positive integer (1-based).',
|
|
21
|
+
}),
|
|
22
|
+
definition: zod_1.z.unknown(),
|
|
23
|
+
lockfile: app_lockfile_1.AppLockfileSchema,
|
|
24
|
+
schemaPlan: zod_1.z.unknown(),
|
|
25
|
+
state: exports.AppReleaseStateSchema,
|
|
26
|
+
preparedAt: zod_1.z.string().min(1).optional(),
|
|
27
|
+
activatedAt: zod_1.z.string().min(1).optional(),
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=app-release.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-release.js","sourceRoot":"","sources":["../../../src/app-runtime/lib/app-release.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,iDAAqE;AAoBrE,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;IACrB,4CAAyB,CAAA;IACzB,oCAAiB,CAAA;IACjB,4CAAyB,CAAA;IACzB,oCAAiB,CAAA;AACnB,CAAC,EAPW,eAAe,+BAAf,eAAe,QAO1B;AAEY,QAAA,qBAAqB,GAAG,OAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AA+CtD,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;QACjC,OAAO,EAAE,0DAA0D;KACpE,CAAC;IACF,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE;IACvB,QAAQ,EAAE,gCAAiB;IAC3B,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE;IACvB,KAAK,EAAE,6BAAqB;IAC5B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC1C,CAA0B,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { AudienceKind } from './audience-policy';
|
|
3
|
+
export declare enum AppShellKind {
|
|
4
|
+
Hosted = "hosted",
|
|
5
|
+
Standalone = "standalone",
|
|
6
|
+
Embedded = "embedded",
|
|
7
|
+
Headless = "headless"
|
|
8
|
+
}
|
|
9
|
+
export declare const AppShellKindSchema: z.ZodEnum<typeof AppShellKind>;
|
|
10
|
+
export declare enum AppHostBinding {
|
|
11
|
+
Xema = "xema",
|
|
12
|
+
CustomDomain = "custom-domain",
|
|
13
|
+
PathBased = "path-based"
|
|
14
|
+
}
|
|
15
|
+
export declare const AppHostBindingSchema: z.ZodEnum<typeof AppHostBinding>;
|
|
16
|
+
export interface AppSurfaceDimensions {
|
|
17
|
+
readonly shell: AppShellKind;
|
|
18
|
+
readonly audience: AudienceKind;
|
|
19
|
+
readonly host: AppHostBinding;
|
|
20
|
+
}
|
|
21
|
+
export declare const AppSurfaceDimensionsSchema: z.ZodType<AppSurfaceDimensions>;
|
|
22
|
+
export declare enum AppSurfaceConflictCode {
|
|
23
|
+
HeadlessWithChrome = "headless-with-chrome",
|
|
24
|
+
EmbeddedIsChrome = "embedded-is-chrome",
|
|
25
|
+
StandaloneNeedsOwnHost = "standalone-needs-own-host",
|
|
26
|
+
EmbeddedNeedsXemaHost = "embedded-needs-xema-host"
|
|
27
|
+
}
|
|
28
|
+
export interface AppSurfaceConflict {
|
|
29
|
+
readonly code: AppSurfaceConflictCode;
|
|
30
|
+
readonly message: string;
|
|
31
|
+
}
|
|
32
|
+
export interface AppSurfaceValidation {
|
|
33
|
+
readonly ok: boolean;
|
|
34
|
+
readonly conflicts: readonly AppSurfaceConflict[];
|
|
35
|
+
}
|
|
36
|
+
export declare function validateAppSurfaceCombination(dims: AppSurfaceDimensions): AppSurfaceValidation;
|
|
37
|
+
export declare function isHeadlessEmbeddedContradiction(shell: AppShellKind, alsoEmbedded: boolean): boolean;
|
|
38
|
+
//# sourceMappingURL=app-shell-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-shell-binding.d.ts","sourceRoot":"","sources":["../../../src/app-runtime/lib/app-shell-binding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAyBjD,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,kBAAkB,gCAA6B,CAAC;AAY7D,oBAAY,cAAc;IACxB,IAAI,SAAS;IACb,YAAY,kBAAkB;IAC9B,SAAS,eAAe;CACzB;AAED,eAAO,MAAM,oBAAoB,kCAA+B,CAAC;AAGjE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;CAC/B;AAED,eAAO,MAAM,0BAA0B,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAMzB,CAAC;AAM/C,oBAAY,sBAAsB;IAChC,kBAAkB,yBAAyB;IAC3C,gBAAgB,uBAAuB;IACvC,sBAAsB,8BAA8B;IACpD,qBAAqB,6BAA6B;CACnD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACnD;AAsBD,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,oBAAoB,GACzB,oBAAoB,CAgCtB;AASD,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,YAAY,EACnB,YAAY,EAAE,OAAO,GACpB,OAAO,CAET"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppSurfaceConflictCode = exports.AppSurfaceDimensionsSchema = exports.AppHostBindingSchema = exports.AppHostBinding = exports.AppShellKindSchema = exports.AppShellKind = void 0;
|
|
4
|
+
exports.validateAppSurfaceCombination = validateAppSurfaceCombination;
|
|
5
|
+
exports.isHeadlessEmbeddedContradiction = isHeadlessEmbeddedContradiction;
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
const audience_policy_1 = require("./audience-policy");
|
|
8
|
+
var AppShellKind;
|
|
9
|
+
(function (AppShellKind) {
|
|
10
|
+
AppShellKind["Hosted"] = "hosted";
|
|
11
|
+
AppShellKind["Standalone"] = "standalone";
|
|
12
|
+
AppShellKind["Embedded"] = "embedded";
|
|
13
|
+
AppShellKind["Headless"] = "headless";
|
|
14
|
+
})(AppShellKind || (exports.AppShellKind = AppShellKind = {}));
|
|
15
|
+
exports.AppShellKindSchema = zod_1.z.nativeEnum(AppShellKind);
|
|
16
|
+
var AppHostBinding;
|
|
17
|
+
(function (AppHostBinding) {
|
|
18
|
+
AppHostBinding["Xema"] = "xema";
|
|
19
|
+
AppHostBinding["CustomDomain"] = "custom-domain";
|
|
20
|
+
AppHostBinding["PathBased"] = "path-based";
|
|
21
|
+
})(AppHostBinding || (exports.AppHostBinding = AppHostBinding = {}));
|
|
22
|
+
exports.AppHostBindingSchema = zod_1.z.nativeEnum(AppHostBinding);
|
|
23
|
+
exports.AppSurfaceDimensionsSchema = zod_1.z
|
|
24
|
+
.object({
|
|
25
|
+
shell: exports.AppShellKindSchema,
|
|
26
|
+
audience: zod_1.z.nativeEnum(audience_policy_1.AudienceKind),
|
|
27
|
+
host: exports.AppHostBindingSchema,
|
|
28
|
+
})
|
|
29
|
+
.strict();
|
|
30
|
+
var AppSurfaceConflictCode;
|
|
31
|
+
(function (AppSurfaceConflictCode) {
|
|
32
|
+
AppSurfaceConflictCode["HeadlessWithChrome"] = "headless-with-chrome";
|
|
33
|
+
AppSurfaceConflictCode["EmbeddedIsChrome"] = "embedded-is-chrome";
|
|
34
|
+
AppSurfaceConflictCode["StandaloneNeedsOwnHost"] = "standalone-needs-own-host";
|
|
35
|
+
AppSurfaceConflictCode["EmbeddedNeedsXemaHost"] = "embedded-needs-xema-host";
|
|
36
|
+
})(AppSurfaceConflictCode || (exports.AppSurfaceConflictCode = AppSurfaceConflictCode = {}));
|
|
37
|
+
function validateAppSurfaceCombination(dims) {
|
|
38
|
+
const conflicts = [];
|
|
39
|
+
if (dims.shell === AppShellKind.Standalone &&
|
|
40
|
+
dims.host === AppHostBinding.PathBased) {
|
|
41
|
+
conflicts.push({
|
|
42
|
+
code: AppSurfaceConflictCode.StandaloneNeedsOwnHost,
|
|
43
|
+
message: 'A standalone app has its own full-page surface and cannot be path-based on a shared host; use xema or custom-domain.',
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (dims.shell === AppShellKind.Embedded &&
|
|
47
|
+
dims.host !== AppHostBinding.Xema) {
|
|
48
|
+
conflicts.push({
|
|
49
|
+
code: AppSurfaceConflictCode.EmbeddedNeedsXemaHost,
|
|
50
|
+
message: "An embedded app is served into a third-party page and relies on the Xema origin's CSP/cookies; it must be xema-hosted.",
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return { ok: conflicts.length === 0, conflicts };
|
|
54
|
+
}
|
|
55
|
+
function isHeadlessEmbeddedContradiction(shell, alsoEmbedded) {
|
|
56
|
+
return shell === AppShellKind.Headless && alsoEmbedded;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=app-shell-binding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-shell-binding.js","sourceRoot":"","sources":["../../../src/app-runtime/lib/app-shell-binding.ts"],"names":[],"mappings":";;;AA8GA,sEAkCC;AASD,0EAKC;AA9JD,6BAAwB;AAExB,uDAAiD;AAyBjD,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,yCAAyB,CAAA;IACzB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;AACvB,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAEY,QAAA,kBAAkB,GAAG,OAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAY7D,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,gDAA8B,CAAA;IAC9B,0CAAwB,CAAA;AAC1B,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAEY,QAAA,oBAAoB,GAAG,OAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AASpD,QAAA,0BAA0B,GAAoC,OAAC;KACzE,MAAM,CAAC;IACN,KAAK,EAAE,0BAAkB;IACzB,QAAQ,EAAE,OAAC,CAAC,UAAU,CAAC,8BAAY,CAAC;IACpC,IAAI,EAAE,4BAAoB;CAC3B,CAAC;KACD,MAAM,EAAqC,CAAC;AAM/C,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,qEAA2C,CAAA;IAC3C,iEAAuC,CAAA;IACvC,8EAAoD,CAAA;IACpD,4EAAkD,CAAA;AACpD,CAAC,EALW,sBAAsB,sCAAtB,sBAAsB,QAKjC;AAgCD,SAAgB,6BAA6B,CAC3C,IAA0B;IAE1B,MAAM,SAAS,GAAyB,EAAE,CAAC;IAQ3C,IACE,IAAI,CAAC,KAAK,KAAK,YAAY,CAAC,UAAU;QACtC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,SAAS,EACtC,CAAC;QACD,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,sBAAsB,CAAC,sBAAsB;YACnD,OAAO,EACL,sHAAsH;SACzH,CAAC,CAAC;IACL,CAAC;IAED,IACE,IAAI,CAAC,KAAK,KAAK,YAAY,CAAC,QAAQ;QACpC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,EACjC,CAAC;QACD,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,sBAAsB,CAAC,qBAAqB;YAClD,OAAO,EACL,wHAAwH;SAC3H,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;AACnD,CAAC;AASD,SAAgB,+BAA+B,CAC7C,KAAmB,EACnB,YAAqB;IAErB,OAAO,KAAK,KAAK,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC;AACzD,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { type BiomeInstall } from './biome-install';
|
|
|
6
6
|
import { type AudiencePolicy } from './audience-policy';
|
|
7
7
|
import { type BrandingConfig } from './branding-config';
|
|
8
8
|
import { type AppLockfile } from './app-lockfile';
|
|
9
|
+
import { SurfaceKind } from './surface-kind';
|
|
9
10
|
export interface CapabilityPolicyOverride {
|
|
10
11
|
capability: CapabilityRef;
|
|
11
12
|
allowedResources?: readonly string[];
|
|
@@ -21,6 +22,8 @@ export interface App {
|
|
|
21
22
|
capabilityPolicy: CapabilityPolicyOverride[];
|
|
22
23
|
branding: BrandingConfig;
|
|
23
24
|
lockfile: AppLockfile;
|
|
25
|
+
surface: SurfaceKind;
|
|
26
|
+
activeReleaseId?: string;
|
|
24
27
|
}
|
|
25
28
|
export declare const AppSchema: z.ZodType<App>;
|
|
26
29
|
//# sourceMappingURL=app.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app-runtime/lib/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app-runtime/lib/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAqB,MAAM,gBAAgB,CAAC;AAUhE,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,aAAa,CAAC;IAC1B,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,mBAAmB,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,8BAA8B,EAKrC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;AA+B1C,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,aAAa,CAAC;IACnB,eAAe,EAAE,YAAY,EAAE,CAAC;IAChC,WAAW,EAAE,uBAAuB,CAAC;IACrC,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,gBAAgB,EAAE,wBAAwB,EAAE,CAAC;IAC7C,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,SAAS,EAgCH,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC"}
|
|
@@ -9,17 +9,17 @@ const biome_install_1 = require("./biome-install");
|
|
|
9
9
|
const audience_policy_1 = require("./audience-policy");
|
|
10
10
|
const branding_config_1 = require("./branding-config");
|
|
11
11
|
const app_lockfile_1 = require("./app-lockfile");
|
|
12
|
+
const surface_kind_1 = require("./surface-kind");
|
|
12
13
|
exports.CapabilityPolicyOverrideSchema = zod_1.z.object({
|
|
13
14
|
capability: capability_1.CapabilityRefSchema,
|
|
14
15
|
allowedResources: zod_1.z.array(zod_1.z.string().min(1)).readonly().optional(),
|
|
15
16
|
allowedEnvironments: zod_1.z.array(execution_environment_1.ExecutionEnvironmentRefSchema).readonly().optional(),
|
|
16
17
|
rateLimit: zod_1.z.number().int().positive().optional(),
|
|
17
18
|
});
|
|
18
|
-
exports.AppSchema = zod_1.z
|
|
19
|
+
exports.AppSchema = zod_1.z
|
|
20
|
+
.object({
|
|
19
21
|
ref: object_1.XemaObjectRefSchema,
|
|
20
|
-
installedBiomes: zod_1.z.array(biome_install_1.BiomeInstallSchema)
|
|
21
|
-
message: 'App.installedBiomes must contain at least one BiomeInstall; an App with zero biomes has no capability surface.',
|
|
22
|
-
}),
|
|
22
|
+
installedBiomes: zod_1.z.array(biome_install_1.BiomeInstallSchema),
|
|
23
23
|
defaultZone: execution_environment_1.ExecutionEnvironmentRefSchema,
|
|
24
24
|
audiences: zod_1.z.array(audience_policy_1.AudiencePolicySchema).min(1, {
|
|
25
25
|
message: 'App.audiences must contain at least one AudiencePolicy; an App with zero audiences is unreachable.',
|
|
@@ -27,5 +27,20 @@ exports.AppSchema = zod_1.z.object({
|
|
|
27
27
|
capabilityPolicy: zod_1.z.array(exports.CapabilityPolicyOverrideSchema),
|
|
28
28
|
branding: branding_config_1.BrandingConfigSchema,
|
|
29
29
|
lockfile: app_lockfile_1.AppLockfileSchema,
|
|
30
|
+
surface: surface_kind_1.SurfaceKindSchema,
|
|
31
|
+
activeReleaseId: zod_1.z.string().min(1).optional(),
|
|
32
|
+
})
|
|
33
|
+
.superRefine((app, ctx) => {
|
|
34
|
+
if (app.surface !== surface_kind_1.SurfaceKind.Declared && app.installedBiomes.length === 0) {
|
|
35
|
+
ctx.addIssue({
|
|
36
|
+
code: 'too_small',
|
|
37
|
+
minimum: 1,
|
|
38
|
+
origin: 'array',
|
|
39
|
+
inclusive: true,
|
|
40
|
+
path: ['installedBiomes'],
|
|
41
|
+
message: `App.installedBiomes must contain at least one BiomeInstall for a '${app.surface}' App; ` +
|
|
42
|
+
'one with zero biomes has no capability surface. Only a `declared` App may install none.',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
30
45
|
});
|
|
31
46
|
//# sourceMappingURL=app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/app-runtime/lib/app.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,iDAG0B;AAC1B,uEAGqC;AACrC,yCAGsB;AACtB,mDAAwE;AACxE,uDAA8E;AAC9E,uDAA8E;AAC9E,iDAAqE;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/app-runtime/lib/app.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,iDAG0B;AAC1B,uEAGqC;AACrC,yCAGsB;AACtB,mDAAwE;AACxE,uDAA8E;AAC9E,uDAA8E;AAC9E,iDAAqE;AACrE,iDAAgE;AAiBnD,QAAA,8BAA8B,GAAG,OAAC,CAAC,MAAM,CAAC;IACrD,UAAU,EAAE,gCAAmB;IAC/B,gBAAgB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAClE,mBAAmB,EAAE,OAAC,CAAC,KAAK,CAAC,qDAA6B,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjF,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAClD,CAAwC,CAAC;AA2C7B,QAAA,SAAS,GAAG,OAAC;KACvB,MAAM,CAAC;IACN,GAAG,EAAE,4BAAmB;IACxB,eAAe,EAAE,OAAC,CAAC,KAAK,CAAC,kCAAkB,CAAC;IAC5C,WAAW,EAAE,qDAA6B;IAC1C,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,sCAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;QAC9C,OAAO,EACL,oGAAoG;KACvG,CAAC;IACF,gBAAgB,EAAE,OAAC,CAAC,KAAK,CAAC,sCAA8B,CAAC;IACzD,QAAQ,EAAE,sCAAoB;IAC9B,QAAQ,EAAE,gCAAiB;IAC3B,OAAO,EAAE,gCAAiB;IAC1B,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC9C,CAAC;KACD,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAKxB,IAAI,GAAG,CAAC,OAAO,KAAK,0BAAW,CAAC,QAAQ,IAAI,GAAG,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,CAAC,iBAAiB,CAAC;YACzB,OAAO,EACL,qEAAqE,GAAG,CAAC,OAAO,SAAS;gBACzF,yFAAyF;SAC5F,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAA8B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branding-config.d.ts","sourceRoot":"","sources":["../../../src/app-runtime/lib/branding-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"branding-config.d.ts","sourceRoot":"","sources":["../../../src/app-runtime/lib/branding-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkCxB,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,eAAO,MAAM,oBAAoB,EAkB3B,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branding-config.js","sourceRoot":"","sources":["../../../src/app-runtime/lib/branding-config.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAaxB,MAAM,mBAAmB,GACvB,uIAAuI,CAAC;
|
|
1
|
+
{"version":3,"file":"branding-config.js","sourceRoot":"","sources":["../../../src/app-runtime/lib/branding-config.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAaxB,MAAM,mBAAmB,GACvB,uIAAuI,CAAC;AA2B7H,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;QAC7B,OAAO,EAAE,wDAAwD;KAClE,CAAC;IACF,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC;QACH,OAAO,EAAE,6CAA6C;KACvD,CAAC;SACD,QAAQ,EAAE;IACb,YAAY,EAAE,OAAC;SACZ,MAAM,EAAE;SACR,KAAK,CAAC,mBAAmB,EAAE;QAC1B,OAAO,EACL,6IAA6I;KAChJ,CAAC;SACD,QAAQ,EAAE;IACb,SAAS,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACrE,CAA8B,CAAC"}
|
|
@@ -6,7 +6,7 @@ const capability_1 = require("../../capability");
|
|
|
6
6
|
const execution_environment_1 = require("../../execution-environment");
|
|
7
7
|
exports.DelegatedSessionClaimsSchema = zod_1.z.object({
|
|
8
8
|
sub: zod_1.z.string().min(1, {
|
|
9
|
-
message: 'DelegatedSessionClaims.sub must be a non-empty subject identifier (e.g. `external-
|
|
9
|
+
message: 'DelegatedSessionClaims.sub must be a non-empty subject identifier (e.g. `external-subject:<id>` or `anon:<random>`).',
|
|
10
10
|
}),
|
|
11
11
|
act: zod_1.z.string().min(1, {
|
|
12
12
|
message: 'DelegatedSessionClaims.act must be a non-empty actor identifier (e.g. `app:<appClientId>`).',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegated-session.js","sourceRoot":"","sources":["../../../src/app-runtime/lib/delegated-session.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,iDAG0B;AAC1B,uEAGqC;AAoCxB,QAAA,4BAA4B,GAAG,OAAC,CAAC,MAAM,CAAC;IACnD,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;QACrB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"delegated-session.js","sourceRoot":"","sources":["../../../src/app-runtime/lib/delegated-session.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,iDAG0B;AAC1B,uEAGqC;AAoCxB,QAAA,4BAA4B,GAAG,OAAC,CAAC,MAAM,CAAC;IACnD,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;QACrB,OAAO,EACL,sHAAsH;KACzH,CAAC;IACF,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;QACrB,OAAO,EACL,6FAA6F;KAChG,CAAC;IACF,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;QACrB,OAAO,EAAE,uDAAuD;KACjE,CAAC;IACF,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;QACzB,OAAO,EAAE,+DAA+D;KACzE,CAAC;IACF,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;QACzB,OAAO,EAAE,+DAA+D;KACzE,CAAC;IACF,WAAW,EAAE,qDAA6B;IAC1C,YAAY,EAAE,OAAC,CAAC,KAAK,CAAC,gCAAmB,CAAC;IAC1C,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;QAC7B,OAAO,EACL,yFAAyF;KAC5F,CAAC;CACH,CAAsC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface-kind.d.ts","sourceRoot":"","sources":["../../../src/app-runtime/lib/surface-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuBxB,oBAAY,WAAW;IACrB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,KAAK,UAAU;CAChB;AAED,eAAO,MAAM,iBAAiB,+BAA4B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SurfaceKindSchema = exports.SurfaceKind = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
var SurfaceKind;
|
|
6
|
+
(function (SurfaceKind) {
|
|
7
|
+
SurfaceKind["Declared"] = "declared";
|
|
8
|
+
SurfaceKind["Composed"] = "composed";
|
|
9
|
+
SurfaceKind["Coded"] = "coded";
|
|
10
|
+
})(SurfaceKind || (exports.SurfaceKind = SurfaceKind = {}));
|
|
11
|
+
exports.SurfaceKindSchema = zod_1.z.nativeEnum(SurfaceKind);
|
|
12
|
+
//# sourceMappingURL=surface-kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface-kind.js","sourceRoot":"","sources":["../../../src/app-runtime/lib/surface-kind.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAuBxB,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,oCAAqB,CAAA;IACrB,8BAAe,CAAA;AACjB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAEY,QAAA,iBAAiB,GAAG,OAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './lib/capability-ref';
|
|
2
2
|
export * from './lib/connector-capability-ref';
|
|
3
|
+
export * from './lib/first-party-capability-domains';
|
|
3
4
|
export * from './lib/capability-grant';
|
|
4
5
|
export * from './lib/capability-policy';
|
|
5
6
|
export * from './lib/permission-profile';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capability/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capability/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,cAAc,CAAC"}
|
package/dist/capability/index.js
CHANGED
|
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./lib/capability-ref"), exports);
|
|
18
18
|
__exportStar(require("./lib/connector-capability-ref"), exports);
|
|
19
|
+
__exportStar(require("./lib/first-party-capability-domains"), exports);
|
|
19
20
|
__exportStar(require("./lib/capability-grant"), exports);
|
|
20
21
|
__exportStar(require("./lib/capability-policy"), exports);
|
|
21
22
|
__exportStar(require("./lib/permission-profile"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capability/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,iEAA+C;AAC/C,yDAAuC;AACvC,0DAAwC;AACxC,2DAAyC;AACzC,iEAA+C;AAC/C,kDAAgC;AAChC,gEAA8C;AAC9C,+CAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capability/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,iEAA+C;AAC/C,uEAAqD;AACrD,yDAAuC;AACvC,0DAAwC;AACxC,2DAAyC;AACzC,iEAA+C;AAC/C,kDAAgC;AAChC,gEAA8C;AAC9C,+CAA6B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const FIRST_PARTY_CAPABILITY_DOMAINS: readonly ["xema-shell", "store", "biome", "connector", "kb", "agent", "memory", "model", "model-resolution", "mcp-tool", "workflow", "studio", "interactive-session", "agent-session", "document", "notification", "space", "mailops", "workspace", "worker-runtime", "artifact", "search"];
|
|
3
|
+
export type FirstPartyCapabilityDomain = (typeof FIRST_PARTY_CAPABILITY_DOMAINS)[number];
|
|
4
|
+
export declare const FirstPartyCapabilityDomainSchema: z.ZodEnum<{
|
|
5
|
+
search: "search";
|
|
6
|
+
kb: "kb";
|
|
7
|
+
memory: "memory";
|
|
8
|
+
agent: "agent";
|
|
9
|
+
studio: "studio";
|
|
10
|
+
"agent-session": "agent-session";
|
|
11
|
+
document: "document";
|
|
12
|
+
artifact: "artifact";
|
|
13
|
+
workflow: "workflow";
|
|
14
|
+
biome: "biome";
|
|
15
|
+
model: "model";
|
|
16
|
+
connector: "connector";
|
|
17
|
+
"xema-shell": "xema-shell";
|
|
18
|
+
store: "store";
|
|
19
|
+
"model-resolution": "model-resolution";
|
|
20
|
+
"mcp-tool": "mcp-tool";
|
|
21
|
+
"interactive-session": "interactive-session";
|
|
22
|
+
notification: "notification";
|
|
23
|
+
space: "space";
|
|
24
|
+
mailops: "mailops";
|
|
25
|
+
workspace: "workspace";
|
|
26
|
+
"worker-runtime": "worker-runtime";
|
|
27
|
+
}>;
|
|
28
|
+
export declare function isFirstPartyCapabilityDomain(domain: string): domain is FirstPartyCapabilityDomain;
|
|
29
|
+
//# sourceMappingURL=first-party-capability-domains.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"first-party-capability-domains.d.ts","sourceRoot":"","sources":["../../../src/capability/lib/first-party-capability-domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0BxB,eAAO,MAAM,8BAA8B,6RAuBjC,CAAC;AAEX,MAAM,MAAM,0BAA0B,GACpC,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;EAK5C,CAAC;AAYF,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,GACb,MAAM,IAAI,0BAA0B,CAEtC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FirstPartyCapabilityDomainSchema = exports.FIRST_PARTY_CAPABILITY_DOMAINS = void 0;
|
|
4
|
+
exports.isFirstPartyCapabilityDomain = isFirstPartyCapabilityDomain;
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
exports.FIRST_PARTY_CAPABILITY_DOMAINS = [
|
|
7
|
+
'xema-shell',
|
|
8
|
+
'store',
|
|
9
|
+
'biome',
|
|
10
|
+
'connector',
|
|
11
|
+
'kb',
|
|
12
|
+
'agent',
|
|
13
|
+
'memory',
|
|
14
|
+
'model',
|
|
15
|
+
'model-resolution',
|
|
16
|
+
'mcp-tool',
|
|
17
|
+
'workflow',
|
|
18
|
+
'studio',
|
|
19
|
+
'interactive-session',
|
|
20
|
+
'agent-session',
|
|
21
|
+
'document',
|
|
22
|
+
'notification',
|
|
23
|
+
'space',
|
|
24
|
+
'mailops',
|
|
25
|
+
'workspace',
|
|
26
|
+
'worker-runtime',
|
|
27
|
+
'artifact',
|
|
28
|
+
'search',
|
|
29
|
+
];
|
|
30
|
+
exports.FirstPartyCapabilityDomainSchema = zod_1.z.enum(exports.FIRST_PARTY_CAPABILITY_DOMAINS);
|
|
31
|
+
const FIRST_PARTY_CAPABILITY_DOMAIN_SET = new Set(exports.FIRST_PARTY_CAPABILITY_DOMAINS);
|
|
32
|
+
function isFirstPartyCapabilityDomain(domain) {
|
|
33
|
+
return FIRST_PARTY_CAPABILITY_DOMAIN_SET.has(domain);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=first-party-capability-domains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"first-party-capability-domains.js","sourceRoot":"","sources":["../../../src/capability/lib/first-party-capability-domains.ts"],"names":[],"mappings":";;;AAuEA,oEAIC;AA3ED,6BAAwB;AA0BX,QAAA,8BAA8B,GAAG;IAC5C,YAAY;IACZ,OAAO;IACP,OAAO;IACP,WAAW;IACX,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,OAAO;IACP,kBAAkB;IAClB,UAAU;IACV,UAAU;IACV,QAAQ;IACR,qBAAqB;IACrB,eAAe;IACf,UAAU;IACV,cAAc;IACd,OAAO;IACP,SAAS;IACT,WAAW;IACX,gBAAgB;IAChB,UAAU;IACV,QAAQ;CACA,CAAC;AAKE,QAAA,gCAAgC,GAAG,OAAC,CAAC,IAAI,CACpD,sCAGC,CACF,CAAC;AAEF,MAAM,iCAAiC,GAAwB,IAAI,GAAG,CACpE,sCAA8B,CAC/B,CAAC;AAQF,SAAgB,4BAA4B,CAC1C,MAAc;IAEd,OAAO,iCAAiC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/principal/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./lib/delegation-grant"), exports);
|
|
18
|
+
__exportStar(require("./lib/delegation-chain"), exports);
|
|
19
|
+
__exportStar(require("./lib/clamp-authority"), exports);
|
|
20
|
+
__exportStar(require("./lib/execution-principal"), exports);
|
|
21
|
+
__exportStar(require("./lib/app-invocation-identity"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/principal/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,yDAAuC;AACvC,wDAAsC;AACtC,4DAA0C;AAC1C,gEAA8C"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type SubjectRef } from '../../subject';
|
|
3
|
+
export declare enum AppInvocationMode {
|
|
4
|
+
OnBehalfOfUser = "on-behalf-of-user",
|
|
5
|
+
AsApp = "as-app"
|
|
6
|
+
}
|
|
7
|
+
export declare const AppInvocationModeSchema: z.ZodEnum<typeof AppInvocationMode>;
|
|
8
|
+
export interface OnBehalfOfUserIdentity {
|
|
9
|
+
mode: AppInvocationMode.OnBehalfOfUser;
|
|
10
|
+
user: SubjectRef;
|
|
11
|
+
appId: string;
|
|
12
|
+
}
|
|
13
|
+
export interface AsAppIdentity {
|
|
14
|
+
mode: AppInvocationMode.AsApp;
|
|
15
|
+
appId: string;
|
|
16
|
+
}
|
|
17
|
+
export type AppInvocationIdentity = OnBehalfOfUserIdentity | AsAppIdentity;
|
|
18
|
+
export declare const OnBehalfOfUserIdentitySchema: z.ZodType<OnBehalfOfUserIdentity>;
|
|
19
|
+
export declare const AsAppIdentitySchema: z.ZodType<AsAppIdentity>;
|
|
20
|
+
export declare const AppInvocationIdentitySchema: z.ZodType<AppInvocationIdentity>;
|
|
21
|
+
export declare function resolveInvocationActor(identity: AppInvocationIdentity): SubjectRef;
|
|
22
|
+
//# sourceMappingURL=app-invocation-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-invocation-identity.d.ts","sourceRoot":"","sources":["../../../src/principal/lib/app-invocation-identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;AAmBvB,oBAAY,iBAAiB;IAE3B,cAAc,sBAAsB;IAEpC,KAAK,WAAW;CACjB;AAED,eAAO,MAAM,uBAAuB,qCAAkC,CAAC;AAMvE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,iBAAiB,CAAC,cAAc,CAAC;IAEvC,IAAI,EAAE,UAAU,CAAC;IAEjB,KAAK,EAAE,MAAM,CAAC;CACf;AAMD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC;IAE9B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,GAAG,aAAa,CAAC;AAa3E,eAAO,MAAM,4BAA4B,EAChB,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAE3D,eAAO,MAAM,mBAAmB,EAAiB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAE1E,eAAO,MAAM,2BAA2B,EAGlC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AASvC,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,qBAAqB,GAC9B,UAAU,CAOZ"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AppInvocationIdentitySchema = exports.AsAppIdentitySchema = exports.OnBehalfOfUserIdentitySchema = exports.AppInvocationModeSchema = exports.AppInvocationMode = void 0;
|
|
4
|
+
exports.resolveInvocationActor = resolveInvocationActor;
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const subject_1 = require("../../subject");
|
|
7
|
+
var AppInvocationMode;
|
|
8
|
+
(function (AppInvocationMode) {
|
|
9
|
+
AppInvocationMode["OnBehalfOfUser"] = "on-behalf-of-user";
|
|
10
|
+
AppInvocationMode["AsApp"] = "as-app";
|
|
11
|
+
})(AppInvocationMode || (exports.AppInvocationMode = AppInvocationMode = {}));
|
|
12
|
+
exports.AppInvocationModeSchema = zod_1.z.nativeEnum(AppInvocationMode);
|
|
13
|
+
const onBehalfOfUserShape = zod_1.z.object({
|
|
14
|
+
mode: zod_1.z.literal(AppInvocationMode.OnBehalfOfUser),
|
|
15
|
+
user: subject_1.SubjectRefSchema,
|
|
16
|
+
appId: zod_1.z.string().min(1),
|
|
17
|
+
});
|
|
18
|
+
const asAppShape = zod_1.z.object({
|
|
19
|
+
mode: zod_1.z.literal(AppInvocationMode.AsApp),
|
|
20
|
+
appId: zod_1.z.string().min(1),
|
|
21
|
+
});
|
|
22
|
+
exports.OnBehalfOfUserIdentitySchema = onBehalfOfUserShape;
|
|
23
|
+
exports.AsAppIdentitySchema = asAppShape;
|
|
24
|
+
exports.AppInvocationIdentitySchema = zod_1.z.discriminatedUnion('mode', [
|
|
25
|
+
onBehalfOfUserShape,
|
|
26
|
+
asAppShape,
|
|
27
|
+
]);
|
|
28
|
+
function resolveInvocationActor(identity) {
|
|
29
|
+
switch (identity.mode) {
|
|
30
|
+
case AppInvocationMode.OnBehalfOfUser:
|
|
31
|
+
return identity.user;
|
|
32
|
+
case AppInvocationMode.AsApp:
|
|
33
|
+
return { kind: subject_1.SubjectKind.App, id: identity.appId };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=app-invocation-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-invocation-identity.js","sourceRoot":"","sources":["../../../src/principal/lib/app-invocation-identity.ts"],"names":[],"mappings":";;;AAqFA,wDASC;AA9FD,6BAAwB;AACxB,2CAIuB;AAmBvB,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAE3B,yDAAoC,CAAA;IAEpC,qCAAgB,CAAA;AAClB,CAAC,EALW,iBAAiB,iCAAjB,iBAAiB,QAK5B;AAEY,QAAA,uBAAuB,GAAG,OAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AA0BvE,MAAM,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC;IACjD,IAAI,EAAE,0BAAgB;IACtB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1B,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC;IACxC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACzB,CAAC,CAAC;AAEU,QAAA,4BAA4B,GACvC,mBAAwD,CAAC;AAE9C,QAAA,mBAAmB,GAAG,UAAsC,CAAC;AAE7D,QAAA,2BAA2B,GAAG,OAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACtE,mBAAmB;IACnB,UAAU;CACX,CAAqC,CAAC;AASvC,SAAgB,sBAAsB,CACpC,QAA+B;IAE/B,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,iBAAiB,CAAC,cAAc;YACnC,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,KAAK,iBAAiB,CAAC,KAAK;YAC1B,OAAO,EAAE,IAAI,EAAE,qBAAW,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IACzD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CapabilityRef } from '../../capability';
|
|
2
|
+
export declare function clampAuthority(executorGrants: ReadonlySet<CapabilityRef>, actorEffective: ReadonlySet<CapabilityRef>): Set<CapabilityRef>;
|
|
3
|
+
export declare function clampAuthorityChain(authoritySets: ReadonlyArray<ReadonlySet<CapabilityRef>>): Set<CapabilityRef>;
|
|
4
|
+
//# sourceMappingURL=clamp-authority.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clamp-authority.d.ts","sourceRoot":"","sources":["../../../src/principal/lib/clamp-authority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA4BtD,wBAAgB,cAAc,CAC5B,cAAc,EAAE,WAAW,CAAC,aAAa,CAAC,EAC1C,cAAc,EAAE,WAAW,CAAC,aAAa,CAAC,GACzC,GAAG,CAAC,aAAa,CAAC,CAapB;AASD,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,GACvD,GAAG,CAAC,aAAa,CAAC,CAQpB"}
|