@caelo-cms/provisioning 0.10.62 → 0.10.65
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/agent-db.js +66 -50
- package/package.json +2 -2
package/dist/agent-db.js
CHANGED
|
@@ -7049,6 +7049,55 @@ var bugIntakeErrorResponse = object({
|
|
|
7049
7049
|
retryable: boolean2()
|
|
7050
7050
|
}).strict();
|
|
7051
7051
|
var encoder = new TextEncoder;
|
|
7052
|
+
// ../shared/src/seo.ts
|
|
7053
|
+
var CHANGEFREQ_VALUES = [
|
|
7054
|
+
"always",
|
|
7055
|
+
"hourly",
|
|
7056
|
+
"daily",
|
|
7057
|
+
"weekly",
|
|
7058
|
+
"monthly",
|
|
7059
|
+
"yearly",
|
|
7060
|
+
"never"
|
|
7061
|
+
];
|
|
7062
|
+
var SEO_DESCRIPTION_HARD_MAX = 320;
|
|
7063
|
+
var SEO_CANONICAL_MAX = 2048;
|
|
7064
|
+
var seoSetInputSchema = object({
|
|
7065
|
+
pageId: string2().uuid(),
|
|
7066
|
+
metaDescription: string2().max(SEO_DESCRIPTION_HARD_MAX).optional(),
|
|
7067
|
+
ogImageAssetId: string2().uuid().nullable().optional(),
|
|
7068
|
+
canonicalUrl: string2().max(SEO_CANONICAL_MAX).nullable().optional(),
|
|
7069
|
+
noindex: boolean2().optional(),
|
|
7070
|
+
changefreq: _enum(CHANGEFREQ_VALUES).optional(),
|
|
7071
|
+
priority: number2().min(0).max(1).optional()
|
|
7072
|
+
}).strict();
|
|
7073
|
+
var seoAutofillInputSchema = object({
|
|
7074
|
+
pageId: string2().uuid(),
|
|
7075
|
+
metaDescription: string2().trim().min(1).max(SEO_DESCRIPTION_HARD_MAX),
|
|
7076
|
+
ogImageAssetId: string2().uuid().nullable().optional()
|
|
7077
|
+
}).strict();
|
|
7078
|
+
var seoOptimizeInputSchema = object({
|
|
7079
|
+
pageId: string2().uuid(),
|
|
7080
|
+
metaDescription: string2().min(1).max(SEO_DESCRIPTION_HARD_MAX),
|
|
7081
|
+
ogImageAssetId: string2().uuid().nullable().optional(),
|
|
7082
|
+
context: string2().max(4000).optional()
|
|
7083
|
+
}).strict();
|
|
7084
|
+
var organizationJsonSchema = object({
|
|
7085
|
+
name: string2().max(256).optional(),
|
|
7086
|
+
url: string2().max(2048).optional(),
|
|
7087
|
+
logo: string2().max(2048).optional(),
|
|
7088
|
+
sameAs: array(string2().max(2048)).max(20).optional()
|
|
7089
|
+
}).strict();
|
|
7090
|
+
var siteDefaultsSetSeoInputSchema = object({
|
|
7091
|
+
siteBaseUrl: string2().min(1).max(2048).url("siteBaseUrl must be an absolute URL (https://example.com)"),
|
|
7092
|
+
sitemapEnabled: boolean2(),
|
|
7093
|
+
organizationJson: organizationJsonSchema.default({})
|
|
7094
|
+
}).strict();
|
|
7095
|
+
var siteSeoProposalInputSchema = object({
|
|
7096
|
+
siteBaseUrl: string2().min(1).max(2048).optional(),
|
|
7097
|
+
sitemapEnabled: boolean2().optional(),
|
|
7098
|
+
organizationJson: organizationJsonSchema.optional()
|
|
7099
|
+
}).strict().refine((v) => v.siteBaseUrl !== undefined || v.sitemapEnabled !== undefined || v.organizationJson !== undefined, "pass at least one of `siteBaseUrl`, `sitemapEnabled`, `organizationJson`");
|
|
7100
|
+
|
|
7052
7101
|
// ../shared/src/build-page.ts
|
|
7053
7102
|
var contentValuesSchema2 = record(string2(), unknown());
|
|
7054
7103
|
var buildPageContentSchema = discriminatedUnion("source", [
|
|
@@ -7072,6 +7121,7 @@ var buildPageContentSchema = discriminatedUnion("source", [
|
|
|
7072
7121
|
]);
|
|
7073
7122
|
var buildPageModuleSchema = object({
|
|
7074
7123
|
blockName: slugSchema.optional(),
|
|
7124
|
+
position: positionInputSchema.optional(),
|
|
7075
7125
|
ref: string2().regex(/^[a-z][a-z0-9_-]{0,31}$/, "ref must be a short lowercase handle").optional(),
|
|
7076
7126
|
moduleId: union([
|
|
7077
7127
|
string2().uuid('moduleId must be a UUID from ## Modules \u2014 to re-place a module minted earlier in THIS call, pass {"$ref": "<its ref>"} instead'),
|
|
@@ -7088,6 +7138,12 @@ var buildPageModuleSchema = object({
|
|
|
7088
7138
|
bindThemeLiterals: boolean2().optional(),
|
|
7089
7139
|
content: buildPageContentSchema.optional()
|
|
7090
7140
|
}).strict().superRefine((entry, ctx) => {
|
|
7141
|
+
if (entry.blockName === undefined && entry.position !== undefined) {
|
|
7142
|
+
ctx.addIssue({
|
|
7143
|
+
code: ZodIssueCode.custom,
|
|
7144
|
+
message: "`position` places an entry inside its block, but this entry has no `blockName` (a DETACHED, " + "nested-only module is not placed). Drop `position`, or pass `blockName` to place it."
|
|
7145
|
+
});
|
|
7146
|
+
}
|
|
7091
7147
|
if (entry.blockName === undefined && entry.ref === undefined) {
|
|
7092
7148
|
ctx.addIssue({
|
|
7093
7149
|
code: ZodIssueCode.custom,
|
|
@@ -7111,10 +7167,17 @@ var buildPageTargetSchema = object({
|
|
|
7111
7167
|
templateId: string2().uuid().optional(),
|
|
7112
7168
|
status: pageStatusSchema.optional(),
|
|
7113
7169
|
parentPageId: string2().uuid().optional(),
|
|
7114
|
-
importPageId: string2().uuid().optional()
|
|
7170
|
+
importPageId: string2().uuid().optional(),
|
|
7171
|
+
metaDescription: string2().trim().min(1).max(SEO_DESCRIPTION_HARD_MAX).optional()
|
|
7115
7172
|
}).strict().superRefine((page, ctx) => {
|
|
7116
7173
|
const createKeys = ["slug", "title", "name", "templateId", "status", "parentPageId"].filter((k) => page[k] !== undefined);
|
|
7117
7174
|
if (page.pageId !== undefined) {
|
|
7175
|
+
if (page.metaDescription !== undefined) {
|
|
7176
|
+
ctx.addIssue({
|
|
7177
|
+
code: ZodIssueCode.custom,
|
|
7178
|
+
message: "page.metaDescription is written only for a page this call CREATES \u2014 drop it with pageId; an existing page without a description gets one via autofill_page_seo."
|
|
7179
|
+
});
|
|
7180
|
+
}
|
|
7118
7181
|
if (createKeys.length > 0) {
|
|
7119
7182
|
ctx.addIssue({
|
|
7120
7183
|
code: ZodIssueCode.custom,
|
|
@@ -8329,54 +8392,6 @@ function err(error) {
|
|
|
8329
8392
|
function isErr(result) {
|
|
8330
8393
|
return !result.ok;
|
|
8331
8394
|
}
|
|
8332
|
-
// ../shared/src/seo.ts
|
|
8333
|
-
var CHANGEFREQ_VALUES = [
|
|
8334
|
-
"always",
|
|
8335
|
-
"hourly",
|
|
8336
|
-
"daily",
|
|
8337
|
-
"weekly",
|
|
8338
|
-
"monthly",
|
|
8339
|
-
"yearly",
|
|
8340
|
-
"never"
|
|
8341
|
-
];
|
|
8342
|
-
var SEO_DESCRIPTION_HARD_MAX = 320;
|
|
8343
|
-
var SEO_CANONICAL_MAX = 2048;
|
|
8344
|
-
var seoSetInputSchema = object({
|
|
8345
|
-
pageId: string2().uuid(),
|
|
8346
|
-
metaDescription: string2().max(SEO_DESCRIPTION_HARD_MAX).optional(),
|
|
8347
|
-
ogImageAssetId: string2().uuid().nullable().optional(),
|
|
8348
|
-
canonicalUrl: string2().max(SEO_CANONICAL_MAX).nullable().optional(),
|
|
8349
|
-
noindex: boolean2().optional(),
|
|
8350
|
-
changefreq: _enum(CHANGEFREQ_VALUES).optional(),
|
|
8351
|
-
priority: number2().min(0).max(1).optional()
|
|
8352
|
-
}).strict();
|
|
8353
|
-
var seoAutofillInputSchema = object({
|
|
8354
|
-
pageId: string2().uuid(),
|
|
8355
|
-
metaDescription: string2().trim().min(1).max(SEO_DESCRIPTION_HARD_MAX),
|
|
8356
|
-
ogImageAssetId: string2().uuid().nullable().optional()
|
|
8357
|
-
}).strict();
|
|
8358
|
-
var seoOptimizeInputSchema = object({
|
|
8359
|
-
pageId: string2().uuid(),
|
|
8360
|
-
metaDescription: string2().min(1).max(SEO_DESCRIPTION_HARD_MAX),
|
|
8361
|
-
ogImageAssetId: string2().uuid().nullable().optional(),
|
|
8362
|
-
context: string2().max(4000).optional()
|
|
8363
|
-
}).strict();
|
|
8364
|
-
var organizationJsonSchema = object({
|
|
8365
|
-
name: string2().max(256).optional(),
|
|
8366
|
-
url: string2().max(2048).optional(),
|
|
8367
|
-
logo: string2().max(2048).optional(),
|
|
8368
|
-
sameAs: array(string2().max(2048)).max(20).optional()
|
|
8369
|
-
}).strict();
|
|
8370
|
-
var siteDefaultsSetSeoInputSchema = object({
|
|
8371
|
-
siteBaseUrl: string2().min(1).max(2048).url("siteBaseUrl must be an absolute URL (https://example.com)"),
|
|
8372
|
-
sitemapEnabled: boolean2(),
|
|
8373
|
-
organizationJson: organizationJsonSchema.default({})
|
|
8374
|
-
}).strict();
|
|
8375
|
-
var siteSeoProposalInputSchema = object({
|
|
8376
|
-
siteBaseUrl: string2().min(1).max(2048).optional(),
|
|
8377
|
-
sitemapEnabled: boolean2().optional(),
|
|
8378
|
-
organizationJson: organizationJsonSchema.optional()
|
|
8379
|
-
}).strict().refine((v) => v.siteBaseUrl !== undefined || v.sitemapEnabled !== undefined || v.organizationJson !== undefined, "pass at least one of `siteBaseUrl`, `sitemapEnabled`, `organizationJson`");
|
|
8380
8395
|
// ../shared/src/skills.ts
|
|
8381
8396
|
var skillAutoEngagementHints = object({
|
|
8382
8397
|
keywords: array(string2().min(1).max(80)).default([]),
|
|
@@ -18190,8 +18205,9 @@ class DatabaseAdapter {
|
|
|
18190
18205
|
return err(branchNotFound(op.name, denied));
|
|
18191
18206
|
}
|
|
18192
18207
|
const out = await op.handler(ctx, validatedInput, tx);
|
|
18193
|
-
if (op.database === "cms_admin")
|
|
18208
|
+
if (out.ok && op.database === "cms_admin") {
|
|
18194
18209
|
publishAfterCommit = await this.#projectionDirty(tx);
|
|
18210
|
+
}
|
|
18195
18211
|
return out;
|
|
18196
18212
|
});
|
|
18197
18213
|
} catch (thrown) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@caelo-cms/provisioning",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.65",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"description": "Pulumi-driven provisioning for Caelo CMS — `bunx @caelo-cms/provisioning --provider <self-hosted|gcp|aws|azure>` brings up a TLS-served install with Postgres + storage + secrets manager + the admin + the API gateway.",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"prepublishOnly": "tsc -b --force && bun build ../platform-updater/src/agent-db.ts --target=bun --outfile=dist/agent-db.js && tsc --project stacks/gcp/tsconfig.json && tsc --project stacks/gcp-firebase/tsconfig.json"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@caelo-cms/shared": "^0.10.
|
|
43
|
+
"@caelo-cms/shared": "^0.10.65",
|
|
44
44
|
"@clack/prompts": "1.8.1",
|
|
45
45
|
"@pulumi/command": "^1",
|
|
46
46
|
"@pulumi/gcp": "^10",
|