@spacefast/common 0.0.24 → 0.2.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.
- package/brand-assets/LICENSE-Haskoy.txt +93 -0
- package/brand-assets/haskoy-latin-variable.woff2 +0 -0
- package/brand-assets/spacefast-favicon.svg +4 -4
- package/brand-assets/spacefast-sf-full-bleed.svg +3 -3
- package/brand-assets/spacefast-wordmark.svg +2 -4
- package/dist/agents/connect-targets.d.ts +6 -146
- package/dist/agents/connect-targets.js +63 -295
- package/dist/agents/private-key-oauth.d.ts +31 -2
- package/dist/agents/private-key-oauth.js +166 -92
- package/dist/agents/registry/core.d.ts +292 -0
- package/dist/agents/registry/core.js +1388 -0
- package/dist/agents/registry/deeplink-probes.d.ts +23 -0
- package/dist/agents/registry/deeplink-probes.js +18 -0
- package/dist/agents/registry/node.d.ts +56 -0
- package/dist/agents/registry/node.js +339 -0
- package/dist/brand-assets-build.js +3 -6
- package/dist/brand-assets.d.ts +5 -15
- package/dist/brand-assets.js +12 -14
- package/dist/brand.d.ts +17 -0
- package/dist/brand.js +24 -4
- package/dist/config/domains.d.ts +79 -12
- package/dist/config/domains.js +128 -29
- package/dist/config/index.js +1 -2
- package/dist/contracts/abuse.js +9 -24
- package/dist/contracts/access-profiles.d.ts +86 -0
- package/dist/contracts/access-profiles.js +89 -0
- package/dist/contracts/access.d.ts +24 -30
- package/dist/contracts/access.js +33 -64
- package/dist/contracts/activity.d.ts +18 -1
- package/dist/contracts/activity.js +72 -26
- package/dist/contracts/analytics.js +8 -10
- package/dist/contracts/api-keys.d.ts +77 -52
- package/dist/contracts/api-keys.js +44 -24
- package/dist/contracts/application-journal.d.ts +216 -0
- package/dist/contracts/application-journal.js +167 -0
- package/dist/contracts/auth.d.ts +90 -17
- package/dist/contracts/auth.js +86 -17
- package/dist/contracts/beta.d.ts +9 -4
- package/dist/contracts/beta.js +20 -16
- package/dist/contracts/billing.d.ts +2 -1
- package/dist/contracts/billing.js +37 -11
- package/dist/contracts/bootstrap.d.ts +791 -0
- package/dist/contracts/bootstrap.js +51 -0
- package/dist/contracts/builds.d.ts +209 -18
- package/dist/contracts/builds.js +93 -27
- package/dist/contracts/channels.d.ts +43 -0
- package/dist/contracts/channels.js +25 -9
- package/dist/contracts/cli.d.ts +7 -0
- package/dist/contracts/cli.js +6 -0
- package/dist/contracts/collab-public.d.ts +1 -1
- package/dist/contracts/collab-public.js +5 -8
- package/dist/contracts/comments.d.ts +44 -34
- package/dist/contracts/comments.js +107 -77
- package/dist/contracts/commerce.d.ts +165 -0
- package/dist/contracts/commerce.js +146 -0
- package/dist/contracts/common.d.ts +3 -3
- package/dist/contracts/common.js +20 -31
- package/dist/contracts/content-contract-verification.d.ts +521 -0
- package/dist/contracts/content-contract-verification.js +320 -0
- package/dist/contracts/content-platform-fixture.d.ts +1278 -0
- package/dist/contracts/content-platform-fixture.js +44 -0
- package/dist/contracts/content-program.d.ts +994 -0
- package/dist/contracts/content-program.js +658 -0
- package/dist/contracts/content-sync.d.ts +290 -0
- package/dist/contracts/content-sync.js +167 -0
- package/dist/contracts/content.d.ts +432 -0
- package/dist/contracts/content.js +303 -0
- package/dist/contracts/continuation.d.ts +17 -1
- package/dist/contracts/continuation.js +23 -23
- package/dist/contracts/countries.js +3 -4
- package/dist/contracts/crons.d.ts +52 -0
- package/dist/contracts/crons.js +60 -0
- package/dist/contracts/dashboard-prefs.d.ts +56 -0
- package/dist/contracts/dashboard-prefs.js +51 -0
- package/dist/contracts/device-auth.d.ts +234 -37
- package/dist/contracts/device-auth.js +267 -53
- package/dist/contracts/docs.d.ts +1 -5
- package/dist/contracts/docs.js +7 -15
- package/dist/contracts/domains.d.ts +501 -93
- package/dist/contracts/domains.js +193 -55
- package/dist/contracts/email-preferences.d.ts +3 -3
- package/dist/contracts/email-preferences.js +6 -7
- package/dist/contracts/enums.d.ts +27 -26
- package/dist/contracts/enums.js +68 -61
- package/dist/contracts/error-code-meta.d.ts +283 -7
- package/dist/contracts/error-code-meta.js +97 -5
- package/dist/contracts/error-codes.d.ts +5 -5
- package/dist/contracts/error-codes.js +82 -17
- package/dist/contracts/events.d.ts +100 -20
- package/dist/contracts/events.js +107 -20
- package/dist/contracts/execution.d.ts +48 -64
- package/dist/contracts/execution.js +52 -62
- package/dist/contracts/feature-lifecycle.d.ts +73 -27
- package/dist/contracts/feature-lifecycle.js +86 -26
- package/dist/contracts/features.d.ts +68 -19
- package/dist/contracts/features.js +42 -41
- package/dist/contracts/fixtures/content-platform-v1.json +1108 -0
- package/dist/contracts/frame-session.d.ts +192 -0
- package/dist/contracts/frame-session.js +164 -0
- package/dist/contracts/functions.d.ts +338 -164
- package/dist/contracts/functions.js +367 -198
- package/dist/contracts/git.d.ts +27 -33
- package/dist/contracts/git.js +10 -11
- package/dist/contracts/grant-copy.d.ts +43 -0
- package/dist/contracts/grant-copy.js +44 -0
- package/dist/contracts/grants.d.ts +62 -54
- package/dist/contracts/grants.js +124 -23
- package/dist/contracts/ids.d.ts +4 -1
- package/dist/contracts/ids.js +6 -3
- package/dist/contracts/internal.d.ts +8 -18
- package/dist/contracts/internal.js +13 -14
- package/dist/contracts/mcp.d.ts +28 -0
- package/dist/contracts/mcp.js +28 -0
- package/dist/contracts/me.d.ts +6 -1
- package/dist/contracts/me.js +12 -6
- package/dist/contracts/notifications.d.ts +27 -29
- package/dist/contracts/notifications.js +9 -4
- package/dist/contracts/oauth-resources.d.ts +112 -10
- package/dist/contracts/oauth-resources.js +116 -11
- package/dist/contracts/oauth-scope-actions.d.ts +90 -0
- package/dist/contracts/oauth-scope-actions.js +126 -0
- package/dist/contracts/operations.d.ts +27 -4
- package/dist/contracts/operations.js +12 -6
- package/dist/contracts/pages.d.ts +31 -7
- package/dist/contracts/pages.js +22 -5
- package/dist/contracts/partner-notifications.d.ts +3 -0
- package/dist/contracts/partner-notifications.js +65 -0
- package/dist/contracts/{platform.d.ts → partner.d.ts} +29 -42
- package/dist/contracts/{platform.js → partner.js} +27 -40
- package/dist/contracts/plan-policy.js +1 -1
- package/dist/contracts/principal-assertion.d.ts +43 -0
- package/dist/contracts/principal-assertion.js +67 -0
- package/dist/contracts/principals.d.ts +73 -0
- package/dist/contracts/principals.js +59 -0
- package/dist/contracts/privacy.d.ts +11 -0
- package/dist/contracts/privacy.js +17 -0
- package/dist/contracts/problem-document.js +3 -4
- package/dist/contracts/publish-archive.d.ts +269 -161
- package/dist/contracts/publish-archive.js +11 -1
- package/dist/contracts/push-new.d.ts +8 -8
- package/dist/contracts/quotas.js +5 -5
- package/dist/contracts/realtime.d.ts +52 -0
- package/dist/contracts/realtime.js +54 -0
- package/dist/contracts/repository-connections.d.ts +44 -31
- package/dist/contracts/repository-connections.js +17 -5
- package/dist/contracts/resources.d.ts +105 -14
- package/dist/contracts/resources.js +150 -26
- package/dist/contracts/route-inventory.d.ts +358 -0
- package/dist/contracts/route-inventory.js +141 -0
- package/dist/contracts/runtime-api.d.ts +206 -82
- package/dist/contracts/runtime-api.js +131 -70
- package/dist/contracts/runtime-app.d.ts +13 -23
- package/dist/contracts/runtime-app.js +39 -24
- package/dist/contracts/runtime-components.d.ts +143 -0
- package/dist/contracts/runtime-components.js +199 -0
- package/dist/contracts/runtime-db.d.ts +49 -23
- package/dist/contracts/runtime-db.js +87 -22
- package/dist/contracts/runtime-purge.d.ts +8 -0
- package/dist/contracts/runtime-purge.js +5 -0
- package/dist/contracts/runtime-services.d.ts +43 -75
- package/dist/contracts/runtime-services.js +29 -49
- package/dist/contracts/runtime-storage.d.ts +15 -14
- package/dist/contracts/runtime-storage.js +30 -14
- package/dist/contracts/sf-config-v1.d.ts +48 -14
- package/dist/contracts/slugs.js +13 -4
- package/dist/contracts/space-config.d.ts +283 -19
- package/dist/contracts/space-config.js +430 -80
- package/dist/contracts/spaces.d.ts +376 -290
- package/dist/contracts/spaces.js +200 -135
- package/dist/contracts/superadmin-activity.d.ts +3 -43
- package/dist/contracts/superadmin-activity.js +6 -30
- package/dist/contracts/superadmin-emails.d.ts +1 -0
- package/dist/contracts/superadmin-emails.js +17 -1
- package/dist/contracts/superadmin-runtime.d.ts +199 -0
- package/dist/contracts/superadmin-runtime.js +141 -0
- package/dist/contracts/superadmin-search.d.ts +22 -2
- package/dist/contracts/superadmin-search.js +14 -6
- package/dist/contracts/superadmin-spaces.d.ts +438 -189
- package/dist/contracts/superadmin-spaces.js +131 -25
- package/dist/contracts/superadmin-teams.d.ts +5 -2
- package/dist/contracts/superadmin-teams.js +1 -2
- package/dist/contracts/superadmin-tenants.d.ts +627 -12
- package/dist/contracts/superadmin-tenants.js +32 -13
- package/dist/contracts/superadmin.d.ts +232 -37
- package/dist/contracts/superadmin.js +106 -22
- package/dist/contracts/tags.d.ts +85 -58
- package/dist/contracts/tags.js +47 -37
- package/dist/contracts/teams.d.ts +86 -26
- package/dist/contracts/teams.js +90 -31
- package/dist/contracts/tenants.d.ts +135 -0
- package/dist/contracts/tenants.js +120 -0
- package/dist/contracts/test-triggers.d.ts +70 -0
- package/dist/contracts/test-triggers.js +116 -0
- package/dist/contracts/theme-json.js +3 -8
- package/dist/contracts/transfers.d.ts +1 -0
- package/dist/contracts/transfers.js +3 -2
- package/dist/contracts/usage.d.ts +209 -0
- package/dist/contracts/usage.js +124 -12
- package/dist/contracts/variables.d.ts +2 -2
- package/dist/contracts/variables.js +9 -13
- package/dist/contracts/webhooks.d.ts +13 -5
- package/dist/contracts/webhooks.js +3 -1
- package/dist/contracts/zero.d.ts +72 -81
- package/dist/contracts/zero.js +80 -78
- package/dist/dashboard-paths/index.d.ts +24 -21
- package/dist/dashboard-paths/index.js +35 -47
- package/dist/dashboard-paths/route-reservations.generated.d.ts +2 -0
- package/dist/dashboard-paths/route-reservations.generated.js +36 -0
- package/dist/docs/agent-arrival.d.ts +92 -0
- package/dist/docs/agent-arrival.js +227 -0
- package/dist/docs/agent-output-policy.d.ts +6 -0
- package/dist/docs/agent-output-policy.js +22 -0
- package/dist/docs/agent-prose.d.ts +12 -18
- package/dist/docs/agent-prose.js +73 -51
- package/dist/docs/agent-setup.d.ts +72 -41
- package/dist/docs/agent-setup.js +339 -436
- package/dist/docs/catalog.d.ts +153 -95
- package/dist/docs/catalog.js +163 -48
- package/dist/docs/error-docs.d.ts +2098 -1
- package/dist/docs/error-docs.js +421 -144
- package/dist/docs/index-build.d.ts +0 -1
- package/dist/docs/index-build.js +2 -3
- package/dist/docs/page-context-prompt.d.ts +77 -0
- package/dist/docs/page-context-prompt.js +131 -0
- package/dist/docs/reference-urls.d.ts +46 -0
- package/dist/docs/reference-urls.js +79 -0
- package/dist/docs/search.d.ts +6 -8
- package/dist/docs/search.js +10 -13
- package/dist/docs/skill-distribution.d.ts +4 -1
- package/dist/docs/skill-distribution.js +10 -5
- package/dist/docs/skills.d.ts +120 -120
- package/dist/docs/skills.js +121 -73
- package/dist/docs/start-prompts.d.ts +45 -0
- package/dist/docs/start-prompts.js +62 -0
- package/dist/domain-exploration.js +9 -13
- package/dist/og-template.d.ts +56 -0
- package/dist/og-template.js +56 -0
- package/dist/slug-policy/index.js +5 -11
- package/dist/test-helpers/fetch-stub.js +1 -0
- package/dist/utils/browser-credential.d.ts +13 -6
- package/dist/utils/browser-credential.js +14 -7
- package/dist/utils/build-settings.d.ts +21 -1
- package/dist/utils/build-settings.js +133 -15
- package/dist/utils/canonical-json.d.ts +3 -5
- package/dist/utils/canonical-json.js +4 -5
- package/dist/utils/cast-transport.d.ts +5 -17
- package/dist/utils/cast-transport.js +6 -19
- package/dist/utils/claim-token.js +1 -2
- package/dist/utils/comment-avatars.js +4 -6
- package/dist/utils/concurrency.js +3 -3
- package/dist/utils/content-type.d.ts +7 -6
- package/dist/utils/content-type.js +73 -51
- package/dist/utils/credential-policy.d.ts +50 -6
- package/dist/utils/credential-policy.js +126 -59
- package/dist/utils/dns-instructions.js +9 -9
- package/dist/utils/egress-policy.fixtures.json +1 -1
- package/dist/utils/error-code.js +1 -0
- package/dist/utils/generate-space-name.d.ts +3 -8
- package/dist/utils/generate-space-name.js +3 -8
- package/dist/utils/grant-decision.fixtures.json +2 -2
- package/dist/utils/grants.d.ts +0 -1
- package/dist/utils/grants.js +7 -8
- package/dist/utils/gravatar.d.ts +2 -4
- package/dist/utils/gravatar.js +6 -12
- package/dist/utils/id-hints.js +14 -23
- package/dist/utils/idempotency.d.ts +3 -3
- package/dist/utils/idempotency.js +6 -7
- package/dist/utils/local-space-state.d.ts +23 -26
- package/dist/utils/local-space-state.js +46 -46
- package/dist/utils/oauth-signed-query.d.ts +3 -5
- package/dist/utils/oauth-signed-query.js +6 -9
- package/dist/utils/one-shot-replay.d.ts +7 -6
- package/dist/utils/one-shot-replay.js +3 -5
- package/dist/utils/page-colors.d.ts +15 -19
- package/dist/utils/page-colors.js +23 -45
- package/dist/utils/page-fonts.d.ts +1 -1
- package/dist/utils/page-fonts.js +8 -20
- package/dist/utils/page-preview.d.ts +0 -1
- package/dist/utils/page-preview.js +0 -1
- package/dist/utils/pages.d.ts +33 -3
- package/dist/utils/pages.js +83 -30
- package/dist/utils/privacy-regions.d.ts +19 -0
- package/dist/utils/privacy-regions.js +91 -0
- package/dist/utils/publish-form-data.d.ts +4 -5
- package/dist/utils/publish-form-data.js +2 -3
- package/dist/utils/publish-policy.d.ts +11 -17
- package/dist/utils/publish-policy.fixtures.json +11 -5
- package/dist/utils/publish-policy.js +65 -110
- package/dist/utils/query-client.d.ts +2 -0
- package/dist/utils/query-client.js +10 -1
- package/dist/utils/runtime-paths.d.ts +4 -4
- package/dist/utils/runtime-paths.js +6 -8
- package/dist/utils/runtime-upload.d.ts +9 -0
- package/dist/utils/runtime-upload.js +12 -0
- package/dist/utils/secure-local-file.d.ts +3 -3
- package/dist/utils/secure-local-file.js +23 -40
- package/dist/utils/space-config.d.ts +12 -15
- package/dist/utils/space-config.js +13 -16
- package/dist/utils/static-runtime-policy.d.ts +10 -7
- package/dist/utils/static-runtime-policy.fixtures.json +38 -41
- package/dist/utils/static-runtime-policy.generated.d.ts +16 -0
- package/dist/utils/static-runtime-policy.generated.js +70 -0
- package/dist/utils/static-runtime-policy.js +31 -132
- package/dist/utils/storage-policy.js +1 -2
- package/dist/utils/upload-session.d.ts +4 -1
- package/dist/utils/upload-session.js +41 -19
- package/dist/utils/version-path.js +11 -19
- package/dist/utils/wpcom-auth-redirects.d.ts +5 -14
- package/dist/utils/wpcom-auth-redirects.js +1 -4
- package/dist/vocabulary.d.ts +13 -13
- package/dist/vocabulary.js +52 -27
- package/package.json +15 -18
- package/dist/agents/client-registry.d.ts +0 -22
- package/dist/agents/client-registry.js +0 -41
- package/dist/docs/agent-handoff-document.d.ts +0 -15
- package/dist/docs/agent-handoff-document.js +0 -180
- package/dist/docs/agent-solutions.d.ts +0 -110
- package/dist/docs/agent-solutions.js +0 -183
- package/dist/utils/query-keys.d.ts +0 -84
- package/dist/utils/query-keys.js +0 -108
|
@@ -12,7 +12,7 @@ export type PlanCode = z.infer<typeof planCodeSchema>;
|
|
|
12
12
|
export declare const DEFAULT_PLAN_CODE: PlanCode;
|
|
13
13
|
export declare const SELF_SERVE_PLAN_CODES: readonly ["personal", "work"];
|
|
14
14
|
export declare const PUBLIC_PLAN_CODES: readonly ["free", "personal", "work", "enterprise"];
|
|
15
|
-
export declare const FEATURE_KEYS: readonly ("zero" | "plans.paid.available" | "anonymous.publishing" | "beta.enrollment_gate" | "domains.search" | "domains.registration" | "domains.dns_management" | "domains.wpcom_dns" | "domains.domain_connect" | "domains.proxy_bindings" | "collab.notices" | "collab.
|
|
15
|
+
export declare const FEATURE_KEYS: readonly ("zero" | "plans.paid.available" | "anonymous.publishing" | "beta.enrollment_gate" | "domains.search" | "domains.registration" | "domains.dns_management" | "domains.wpcom_dns" | "domains.domain_connect" | "domains.proxy_bindings" | "collab.notices" | "collab.comments" | "content.managed" | "sites.dedicated_runtime" | "collab.drawing" | "tags" | "functions" | "spaces.slug_rename" | "pages.templates" | "branding.hide")[];
|
|
16
16
|
export declare const featureKeySchema: z.ZodEnum<{
|
|
17
17
|
zero: "zero";
|
|
18
18
|
"plans.paid.available": "plans.paid.available";
|
|
@@ -25,12 +25,15 @@ export declare const featureKeySchema: z.ZodEnum<{
|
|
|
25
25
|
"domains.domain_connect": "domains.domain_connect";
|
|
26
26
|
"domains.proxy_bindings": "domains.proxy_bindings";
|
|
27
27
|
"collab.notices": "collab.notices";
|
|
28
|
-
"collab.
|
|
28
|
+
"collab.comments": "collab.comments";
|
|
29
|
+
"content.managed": "content.managed";
|
|
29
30
|
"sites.dedicated_runtime": "sites.dedicated_runtime";
|
|
30
|
-
|
|
31
|
+
"collab.drawing": "collab.drawing";
|
|
31
32
|
tags: "tags";
|
|
32
33
|
functions: "functions";
|
|
33
34
|
"spaces.slug_rename": "spaces.slug_rename";
|
|
35
|
+
"pages.templates": "pages.templates";
|
|
36
|
+
"branding.hide": "branding.hide";
|
|
34
37
|
}>;
|
|
35
38
|
export type FeatureKey = RuntimeFeatureKey;
|
|
36
39
|
export declare const FEATURE_OVERRIDE_STATES: readonly ["enabled", "disabled", "kill_switch"];
|
|
@@ -110,9 +113,9 @@ export declare const teamEntitlementsResponseSchema: z.ZodObject<{
|
|
|
110
113
|
runtimePhpWorkers: z.ZodNumber;
|
|
111
114
|
versionDiagnosticsIncluded: z.ZodBoolean;
|
|
112
115
|
limits: z.ZodObject<{
|
|
116
|
+
storageBytes: z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"unlimited">]>;
|
|
113
117
|
teamMembers: z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"unlimited">]>;
|
|
114
118
|
subTeams: z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"unlimited">]>;
|
|
115
|
-
storageBytes: z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"unlimited">]>;
|
|
116
119
|
externalDomainGroups: z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"unlimited">]>;
|
|
117
120
|
maxFileBytes: z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"unlimited">]>;
|
|
118
121
|
maxVersionFiles: z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"unlimited">]>;
|
|
@@ -143,12 +146,15 @@ export type PlanDefinition = {
|
|
|
143
146
|
externalProxy: boolean;
|
|
144
147
|
/** Paid full-page takeover templates under _pages/. */
|
|
145
148
|
pagesTemplates: boolean;
|
|
146
|
-
/** Paid removal of the
|
|
149
|
+
/** Paid removal of the Spacefast badge from designed defaults. */
|
|
147
150
|
hideSpacefastBranding: boolean;
|
|
148
151
|
runtimePhpWorkers: number;
|
|
149
152
|
};
|
|
150
153
|
export type FeatureDefinition = RuntimeFeatureDefinition;
|
|
151
|
-
|
|
154
|
+
type PlanCatalog = {
|
|
155
|
+
[Code in PlanCode]: PlanDefinition;
|
|
156
|
+
};
|
|
157
|
+
export declare const PLAN_DEFINITIONS: PlanCatalog;
|
|
152
158
|
export declare const FEATURE_DEFINITIONS: Readonly<{
|
|
153
159
|
readonly zero: {
|
|
154
160
|
readonly key: "zero";
|
|
@@ -260,8 +266,18 @@ export declare const FEATURE_DEFINITIONS: Readonly<{
|
|
|
260
266
|
readonly enabledForA8c: boolean;
|
|
261
267
|
readonly planDefaults: Readonly<Partial<Record<PlanCode, boolean>>>;
|
|
262
268
|
};
|
|
263
|
-
readonly "collab.
|
|
264
|
-
readonly key: "collab.
|
|
269
|
+
readonly "collab.comments": {
|
|
270
|
+
readonly key: "collab.comments";
|
|
271
|
+
readonly name: string;
|
|
272
|
+
readonly description: string;
|
|
273
|
+
readonly defaultEnabled: boolean;
|
|
274
|
+
} & {
|
|
275
|
+
readonly enabledInDevelopment?: boolean;
|
|
276
|
+
readonly enabledForA8c: boolean;
|
|
277
|
+
readonly planDefaults: Readonly<Partial<Record<PlanCode, boolean>>>;
|
|
278
|
+
};
|
|
279
|
+
readonly "content.managed": {
|
|
280
|
+
readonly key: "content.managed";
|
|
265
281
|
readonly name: string;
|
|
266
282
|
readonly description: string;
|
|
267
283
|
readonly defaultEnabled: boolean;
|
|
@@ -280,8 +296,8 @@ export declare const FEATURE_DEFINITIONS: Readonly<{
|
|
|
280
296
|
readonly enabledForA8c: boolean;
|
|
281
297
|
readonly planDefaults: Readonly<Partial<Record<PlanCode, boolean>>>;
|
|
282
298
|
};
|
|
283
|
-
readonly
|
|
284
|
-
readonly key: "
|
|
299
|
+
readonly "collab.drawing": {
|
|
300
|
+
readonly key: "collab.drawing";
|
|
285
301
|
readonly name: string;
|
|
286
302
|
readonly description: string;
|
|
287
303
|
readonly defaultEnabled: boolean;
|
|
@@ -320,12 +336,33 @@ export declare const FEATURE_DEFINITIONS: Readonly<{
|
|
|
320
336
|
readonly enabledForA8c: boolean;
|
|
321
337
|
readonly planDefaults: Readonly<Partial<Record<PlanCode, boolean>>>;
|
|
322
338
|
};
|
|
339
|
+
readonly "pages.templates": {
|
|
340
|
+
readonly key: "pages.templates";
|
|
341
|
+
readonly name: string;
|
|
342
|
+
readonly description: string;
|
|
343
|
+
readonly defaultEnabled: boolean;
|
|
344
|
+
} & {
|
|
345
|
+
readonly enabledInDevelopment?: boolean;
|
|
346
|
+
readonly enabledForA8c: boolean;
|
|
347
|
+
readonly planDefaults: Readonly<Partial<Record<PlanCode, boolean>>>;
|
|
348
|
+
};
|
|
349
|
+
readonly "branding.hide": {
|
|
350
|
+
readonly key: "branding.hide";
|
|
351
|
+
readonly name: string;
|
|
352
|
+
readonly description: string;
|
|
353
|
+
readonly defaultEnabled: boolean;
|
|
354
|
+
} & {
|
|
355
|
+
readonly enabledInDevelopment?: boolean;
|
|
356
|
+
readonly enabledForA8c: boolean;
|
|
357
|
+
readonly planDefaults: Readonly<Partial<Record<PlanCode, boolean>>>;
|
|
358
|
+
};
|
|
323
359
|
}>;
|
|
324
360
|
export declare const featureStateSourceSchema: z.ZodEnum<{
|
|
325
361
|
default: "default";
|
|
326
362
|
override: "override";
|
|
327
|
-
kill_switch: "kill_switch";
|
|
328
363
|
env: "env";
|
|
364
|
+
kill_switch: "kill_switch";
|
|
365
|
+
dependency: "dependency";
|
|
329
366
|
}>;
|
|
330
367
|
export declare const FeatureStateSchema: z.ZodObject<{
|
|
331
368
|
key: z.ZodEnum<{
|
|
@@ -340,19 +377,23 @@ export declare const FeatureStateSchema: z.ZodObject<{
|
|
|
340
377
|
"domains.domain_connect": "domains.domain_connect";
|
|
341
378
|
"domains.proxy_bindings": "domains.proxy_bindings";
|
|
342
379
|
"collab.notices": "collab.notices";
|
|
343
|
-
"collab.
|
|
380
|
+
"collab.comments": "collab.comments";
|
|
381
|
+
"content.managed": "content.managed";
|
|
344
382
|
"sites.dedicated_runtime": "sites.dedicated_runtime";
|
|
345
|
-
|
|
383
|
+
"collab.drawing": "collab.drawing";
|
|
346
384
|
tags: "tags";
|
|
347
385
|
functions: "functions";
|
|
348
386
|
"spaces.slug_rename": "spaces.slug_rename";
|
|
387
|
+
"pages.templates": "pages.templates";
|
|
388
|
+
"branding.hide": "branding.hide";
|
|
349
389
|
}>;
|
|
350
390
|
enabled: z.ZodBoolean;
|
|
351
391
|
source: z.ZodEnum<{
|
|
352
392
|
default: "default";
|
|
353
393
|
override: "override";
|
|
354
|
-
kill_switch: "kill_switch";
|
|
355
394
|
env: "env";
|
|
395
|
+
kill_switch: "kill_switch";
|
|
396
|
+
dependency: "dependency";
|
|
356
397
|
}>;
|
|
357
398
|
}, z.core.$strip>;
|
|
358
399
|
export declare const FeatureStateResponseSchema: z.ZodObject<{
|
|
@@ -375,12 +416,15 @@ export declare const FeatureStateResponseSchema: z.ZodObject<{
|
|
|
375
416
|
"domains.domain_connect": "domains.domain_connect";
|
|
376
417
|
"domains.proxy_bindings": "domains.proxy_bindings";
|
|
377
418
|
"collab.notices": "collab.notices";
|
|
378
|
-
"collab.
|
|
419
|
+
"collab.comments": "collab.comments";
|
|
420
|
+
"content.managed": "content.managed";
|
|
379
421
|
"sites.dedicated_runtime": "sites.dedicated_runtime";
|
|
380
|
-
|
|
422
|
+
"collab.drawing": "collab.drawing";
|
|
381
423
|
tags: "tags";
|
|
382
424
|
functions: "functions";
|
|
383
425
|
"spaces.slug_rename": "spaces.slug_rename";
|
|
426
|
+
"pages.templates": "pages.templates";
|
|
427
|
+
"branding.hide": "branding.hide";
|
|
384
428
|
}>, z.ZodObject<{
|
|
385
429
|
key: z.ZodEnum<{
|
|
386
430
|
zero: "zero";
|
|
@@ -394,19 +438,23 @@ export declare const FeatureStateResponseSchema: z.ZodObject<{
|
|
|
394
438
|
"domains.domain_connect": "domains.domain_connect";
|
|
395
439
|
"domains.proxy_bindings": "domains.proxy_bindings";
|
|
396
440
|
"collab.notices": "collab.notices";
|
|
397
|
-
"collab.
|
|
441
|
+
"collab.comments": "collab.comments";
|
|
442
|
+
"content.managed": "content.managed";
|
|
398
443
|
"sites.dedicated_runtime": "sites.dedicated_runtime";
|
|
399
|
-
|
|
444
|
+
"collab.drawing": "collab.drawing";
|
|
400
445
|
tags: "tags";
|
|
401
446
|
functions: "functions";
|
|
402
447
|
"spaces.slug_rename": "spaces.slug_rename";
|
|
448
|
+
"pages.templates": "pages.templates";
|
|
449
|
+
"branding.hide": "branding.hide";
|
|
403
450
|
}>;
|
|
404
451
|
enabled: z.ZodBoolean;
|
|
405
452
|
source: z.ZodEnum<{
|
|
406
453
|
default: "default";
|
|
407
454
|
override: "override";
|
|
408
|
-
kill_switch: "kill_switch";
|
|
409
455
|
env: "env";
|
|
456
|
+
kill_switch: "kill_switch";
|
|
457
|
+
dependency: "dependency";
|
|
410
458
|
}>;
|
|
411
459
|
}, z.core.$strip>>;
|
|
412
460
|
}, z.core.$strip>;
|
|
@@ -419,3 +467,4 @@ export declare function planLimitNumber(value: PlanLimitValue): number | null;
|
|
|
419
467
|
/** Extra editor quantity billed on a paid Stripe subscription. */
|
|
420
468
|
export declare function extraSeatQuantity(editorMemberships: number, includedSeats: number | "unlimited"): number;
|
|
421
469
|
export declare function planPriceUsd(plan: PlanDefinition, interval: "monthly" | "yearly"): number | null;
|
|
470
|
+
export {};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { FEATURE_RUNTIME_DEFINITIONS, FEATURE_RUNTIME_KEYS, } from "./feature-lifecycle.js";
|
|
3
|
-
// Spec plan vocabulary (
|
|
4
|
-
// `
|
|
3
|
+
// Spec plan vocabulary (the platform spec "Plans And Limits"). `enterprise` and
|
|
4
|
+
// `internal` have no self-serve pricing. Codes never change with marketing
|
|
5
|
+
// renames: `personal` sells as "Plus", `work` as "Pro". Display names live on
|
|
6
|
+
// PlanDefinition.name.
|
|
5
7
|
export const PLAN_CODES = ["free", "personal", "work", "enterprise", "internal"];
|
|
6
8
|
export const planCodeSchema = z.enum(PLAN_CODES).describe("Plan code.");
|
|
7
9
|
export const DEFAULT_PLAN_CODE = "free";
|
|
@@ -21,7 +23,7 @@ export const featureOverrideStateSchema = z.enum(FEATURE_OVERRIDE_STATES);
|
|
|
21
23
|
export const planLimitValueSchema = z
|
|
22
24
|
.union([z.number().int().nonnegative(), z.literal("unlimited")])
|
|
23
25
|
.describe('Plan limit value; "unlimited" when the plan does not limit this axis.');
|
|
24
|
-
// Named plan limit table (
|
|
26
|
+
// Named plan limit table (the platform spec "Plans And Limits",
|
|
25
27
|
// Free/Personal/Work columns verbatim). Keys mirror `PlanPolicyResponse.limits`
|
|
26
28
|
// so plan policy is a projection of this data, never a re-derivation.
|
|
27
29
|
export const planLimitsSchema = z
|
|
@@ -30,13 +32,12 @@ export const planLimitsSchema = z
|
|
|
30
32
|
teamMembers: planLimitValueSchema,
|
|
31
33
|
subTeams: planLimitValueSchema,
|
|
32
34
|
externalDomainGroups: planLimitValueSchema,
|
|
33
|
-
// Per-space daily bandwidth cap feeding the egress kill-switch sweep
|
|
34
|
-
//
|
|
35
|
-
// the
|
|
36
|
-
// .maxEgressBytesPerSpacePerDay stays the absolute platform ceiling.
|
|
35
|
+
// Per-space daily bandwidth cap feeding the egress kill-switch sweep.
|
|
36
|
+
// Internal plan data, never on the PlanPolicyResponse wire shape;
|
|
37
|
+
// WORST_CASE_QUOTAS.maxEgressBytesPerSpacePerDay stays the platform ceiling.
|
|
37
38
|
egressBytesPerDay: planLimitValueSchema,
|
|
38
39
|
maxFileBytes: planLimitValueSchema,
|
|
39
|
-
// Files per version. Plan policy may
|
|
40
|
+
// Files per version. Plan policy may lower the 100k contract ceiling
|
|
40
41
|
// (Free 20,000), never raise it; the validator clamps at the ceiling.
|
|
41
42
|
maxVersionFiles: planLimitValueSchema,
|
|
42
43
|
routingRules: planLimitValueSchema,
|
|
@@ -47,7 +48,7 @@ export const planLimitsSchema = z
|
|
|
47
48
|
// Access-surface abuse ceilings: generous by default, enterprise unlimited.
|
|
48
49
|
// Active (non-revoked, non-expired) share links per space.
|
|
49
50
|
shareLinksPerSpace: planLimitValueSchema,
|
|
50
|
-
// Active invites per space (§5.3
|
|
51
|
+
// Active invites per space (§5.3; enforced when invites land).
|
|
51
52
|
invitesPerSpace: planLimitValueSchema,
|
|
52
53
|
// Invite emails per space / per account, daily (§5.3 abuse posture).
|
|
53
54
|
inviteEmailsPerSpaceDaily: planLimitValueSchema,
|
|
@@ -56,17 +57,14 @@ export const planLimitsSchema = z
|
|
|
56
57
|
pendingAccessRequestsPerSpace: planLimitValueSchema,
|
|
57
58
|
})
|
|
58
59
|
.describe("Named plan limit table.");
|
|
59
|
-
//
|
|
60
|
-
//
|
|
61
|
-
// `GET /v1/teams/{teamId}/entitlements`.
|
|
60
|
+
// Served by `GET /v1/teams/{teamId}/entitlements`. The capability dials are the
|
|
61
|
+
// entitlements that are not number|"unlimited" limits.
|
|
62
62
|
export const teamEntitlementsSchema = z
|
|
63
63
|
.object({
|
|
64
64
|
planCode: planCodeSchema,
|
|
65
65
|
limits: planLimitsSchema,
|
|
66
66
|
externalProxy: z.boolean().describe("Whether external proxy upstreams compile on this plan."),
|
|
67
|
-
dedicatedRuntime: z
|
|
68
|
-
.literal(true)
|
|
69
|
-
.describe("Dedicated runtime availability. Every team receives its own runtime site."),
|
|
67
|
+
dedicatedRuntime: z.literal(true).describe("Every team receives its own runtime site."),
|
|
70
68
|
pagesTemplates: z
|
|
71
69
|
.boolean()
|
|
72
70
|
.describe("Whether _pages/*.html full-page takeovers compile for this team."),
|
|
@@ -79,9 +77,8 @@ export const teamEntitlementsSchema = z
|
|
|
79
77
|
.describe("Whether version diagnostics are included with the plan."),
|
|
80
78
|
})
|
|
81
79
|
.describe("Resolved entitlements for a team: plan limits after add-on grants.");
|
|
82
|
-
// Wire projection of TeamEntitlements
|
|
83
|
-
//
|
|
84
|
-
// shape, mirroring PlanPolicyResponse's deliberate exclusion.
|
|
80
|
+
// Wire projection of TeamEntitlements. `egressBytesPerDay` is internal
|
|
81
|
+
// abuse-posture data and never on a wire shape, mirroring PlanPolicyResponse.
|
|
85
82
|
export const teamEntitlementsResponseSchema = teamEntitlementsSchema
|
|
86
83
|
.extend({
|
|
87
84
|
limits: planLimitsSchema.omit({
|
|
@@ -110,9 +107,8 @@ const UNLIMITED_LIMITS = {
|
|
|
110
107
|
inviteEmailsPerAccountDaily: "unlimited",
|
|
111
108
|
pendingAccessRequestsPerSpace: "unlimited",
|
|
112
109
|
};
|
|
113
|
-
// The §5.1 access abuse-ceiling table
|
|
114
|
-
//
|
|
115
|
-
// honest use — they are abuse ceilings, not upsell levers.
|
|
110
|
+
// The §5.1 access abuse-ceiling table, applied verbatim to every self-serve
|
|
111
|
+
// plan; enterprise/internal stay unlimited. Abuse ceilings, not upsell levers.
|
|
116
112
|
const ACCESS_QUOTA_DEFAULTS = {
|
|
117
113
|
shareLinksPerSpace: 100,
|
|
118
114
|
invitesPerSpace: 500,
|
|
@@ -126,11 +122,13 @@ export const PLAN_DEFINITIONS = {
|
|
|
126
122
|
name: "Free",
|
|
127
123
|
monthlyPriceUsd: 0,
|
|
128
124
|
yearlyPriceUsd: 0,
|
|
129
|
-
|
|
125
|
+
// Free is single-player: the owner is the only editor. Reviewers and
|
|
126
|
+
// agent principals are not seats.
|
|
127
|
+
includedSeats: 1,
|
|
130
128
|
extraSeatPriceUsd: null,
|
|
131
129
|
limits: {
|
|
132
|
-
storageBytes:
|
|
133
|
-
teamMembers:
|
|
130
|
+
storageBytes: 10 * GB,
|
|
131
|
+
teamMembers: 1,
|
|
134
132
|
subTeams: 0,
|
|
135
133
|
externalDomainGroups: 3,
|
|
136
134
|
egressBytesPerDay: 100 * GB, // = worst-case ceiling; tunable per plan
|
|
@@ -149,15 +147,17 @@ export const PLAN_DEFINITIONS = {
|
|
|
149
147
|
},
|
|
150
148
|
personal: {
|
|
151
149
|
code: "personal",
|
|
152
|
-
name: "
|
|
153
|
-
monthlyPriceUsd:
|
|
154
|
-
yearlyPriceUsd:
|
|
155
|
-
includedSeats:
|
|
156
|
-
|
|
150
|
+
name: "Plus",
|
|
151
|
+
monthlyPriceUsd: 4.99,
|
|
152
|
+
yearlyPriceUsd: 49.99,
|
|
153
|
+
includedSeats: 3,
|
|
154
|
+
// Each paid seat also raises usage limits (builds, domains, emails,
|
|
155
|
+
// versions) via additive grants. The seat price is not access alone.
|
|
156
|
+
extraSeatPriceUsd: { monthly: 4.99, yearly: 49.99 },
|
|
157
157
|
limits: {
|
|
158
158
|
...UNLIMITED_LIMITS,
|
|
159
|
-
storageBytes:
|
|
160
|
-
teamMembers:
|
|
159
|
+
storageBytes: 50 * GB,
|
|
160
|
+
teamMembers: 3,
|
|
161
161
|
subTeams: 0,
|
|
162
162
|
externalDomainGroups: 10,
|
|
163
163
|
maxFileBytes: 1 * GB,
|
|
@@ -174,18 +174,18 @@ export const PLAN_DEFINITIONS = {
|
|
|
174
174
|
},
|
|
175
175
|
work: {
|
|
176
176
|
code: "work",
|
|
177
|
-
name: "
|
|
178
|
-
monthlyPriceUsd:
|
|
179
|
-
yearlyPriceUsd:
|
|
180
|
-
includedSeats:
|
|
181
|
-
extraSeatPriceUsd: { monthly:
|
|
177
|
+
name: "Pro",
|
|
178
|
+
monthlyPriceUsd: 49.99,
|
|
179
|
+
yearlyPriceUsd: 499,
|
|
180
|
+
includedSeats: 10,
|
|
181
|
+
extraSeatPriceUsd: { monthly: 4.99, yearly: 49.99 },
|
|
182
182
|
limits: {
|
|
183
183
|
...UNLIMITED_LIMITS,
|
|
184
|
-
storageBytes:
|
|
184
|
+
storageBytes: 200 * GB,
|
|
185
185
|
// The catalog keeps the included quantity numeric for display and seat
|
|
186
186
|
// billing. An active paid Stripe source lifts admission separately so
|
|
187
187
|
// editors beyond this number can be added and reconciled automatically.
|
|
188
|
-
teamMembers:
|
|
188
|
+
teamMembers: 10,
|
|
189
189
|
subTeams: 0,
|
|
190
190
|
...ACCESS_QUOTA_DEFAULTS,
|
|
191
191
|
},
|
|
@@ -194,7 +194,7 @@ export const PLAN_DEFINITIONS = {
|
|
|
194
194
|
hideSpacefastBranding: true,
|
|
195
195
|
runtimePhpWorkers: 4,
|
|
196
196
|
},
|
|
197
|
-
// Footnote-only publicly ("custom
|
|
197
|
+
// Footnote-only publicly ("custom, talk to us"); manual grant, never self-serve.
|
|
198
198
|
enterprise: {
|
|
199
199
|
code: "enterprise",
|
|
200
200
|
name: "Enterprise",
|
|
@@ -224,9 +224,10 @@ export const PLAN_DEFINITIONS = {
|
|
|
224
224
|
};
|
|
225
225
|
export const FEATURE_DEFINITIONS = FEATURE_RUNTIME_DEFINITIONS;
|
|
226
226
|
export const featureStateSourceSchema = z
|
|
227
|
-
.enum(["kill_switch", "env", "override", "default"])
|
|
227
|
+
.enum(["kill_switch", "env", "override", "default", "dependency"])
|
|
228
228
|
.describe("Layer that decides the flag: kill_switch (emergency off), env (SPACEFAST_FLAG_* variable), " +
|
|
229
|
-
"override (feature_overrides row), default (plan/code default)
|
|
229
|
+
"override (feature_overrides row), default (plan/code default), dependency (a required " +
|
|
230
|
+
"feature is off).");
|
|
230
231
|
export const FeatureStateSchema = z.object({
|
|
231
232
|
key: featureKeySchema,
|
|
232
233
|
enabled: z.boolean().describe("Whether the feature is enabled for the requesting actor."),
|