@columnus/shared 0.1.54 → 0.1.56
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/apiProfile.d.ts +39 -0
- package/dist/apiProfile.js +19 -2
- package/dist/apiProfile.js.map +1 -1
- package/dist/assetFamily.d.ts +36 -0
- package/dist/assetFamily.js +73 -0
- package/dist/assetFamily.js.map +1 -0
- package/dist/assetFieldValues.d.ts +21 -0
- package/dist/{storageFieldValues.js → assetFieldValues.js} +159 -60
- package/dist/assetFieldValues.js.map +1 -0
- package/dist/assetGraph.d.ts +199 -0
- package/dist/assetGraph.js +214 -0
- package/dist/assetGraph.js.map +1 -0
- package/dist/assetJobs.d.ts +95 -0
- package/dist/assetJobs.js +41 -0
- package/dist/assetJobs.js.map +1 -0
- package/dist/assetSettings.d.ts +129 -0
- package/dist/assetSettings.js +87 -0
- package/dist/assetSettings.js.map +1 -0
- package/dist/assetValidators.d.ts +475 -0
- package/dist/assetValidators.js +83 -0
- package/dist/assetValidators.js.map +1 -0
- package/dist/bffProtocol.d.ts +29 -24
- package/dist/bffProtocol.js +5 -1
- package/dist/bffProtocol.js.map +1 -1
- package/dist/ciPreviewEnv.js +20 -3
- package/dist/ciPreviewEnv.js.map +1 -1
- package/dist/clipboardTransfer.js +112 -12
- package/dist/clipboardTransfer.js.map +1 -1
- package/dist/csv.js +118 -18
- package/dist/csv.js.map +1 -1
- package/dist/displayLabel.js +1 -1
- package/dist/displayLabel.js.map +1 -1
- package/dist/dotenv.js +5 -1
- package/dist/dotenv.js.map +1 -1
- package/dist/importMatch.js +118 -18
- package/dist/importMatch.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +741 -82
- package/dist/index.js.map +1 -1
- package/dist/postLoginPath.d.ts +21 -0
- package/dist/postLoginPath.js +24 -0
- package/dist/postLoginPath.js.map +1 -0
- package/dist/previewDeployName.d.ts +0 -7
- package/dist/previewDeployName.js +21 -4
- package/dist/previewDeployName.js.map +1 -1
- package/dist/recordTableColumns.js +112 -12
- package/dist/recordTableColumns.js.map +1 -1
- package/dist/recordTablePreload.js.map +1 -1
- package/dist/refDisplayRequests.js +112 -12
- package/dist/refDisplayRequests.js.map +1 -1
- package/dist/richDoc.d.ts +2 -2
- package/dist/richDoc.js +5 -5
- package/dist/richDoc.js.map +1 -1
- package/dist/schemaGenerator.d.ts +25 -1
- package/dist/schemaGenerator.js +4569 -18
- package/dist/schemaGenerator.js.map +1 -1
- package/dist/schemaShrink.d.ts +3 -1
- package/dist/schemaShrink.js +4451 -1
- package/dist/schemaShrink.js.map +1 -1
- package/dist/schemaShrinkValidators.d.ts +2 -2
- package/dist/schemaTypes.d.ts +123 -0
- package/dist/schemaTypes.js +107 -13
- package/dist/schemaTypes.js.map +1 -1
- package/dist/share.js +6 -1
- package/dist/share.js.map +1 -1
- package/dist/shareApiBridge.js +6 -1
- package/dist/shareApiBridge.js.map +1 -1
- package/dist/shareProposal.js +112 -12
- package/dist/shareProposal.js.map +1 -1
- package/dist/spaceBundle.js +112 -12
- package/dist/spaceBundle.js.map +1 -1
- package/dist/syncChannel.d.ts +15 -0
- package/dist/syncChannel.js +4642 -0
- package/dist/syncChannel.js.map +1 -0
- package/package.json +1 -1
- package/dist/storageFieldValues.d.ts +0 -10
- package/dist/storageFieldValues.js.map +0 -1
package/dist/spaceBundle.js
CHANGED
|
@@ -4180,7 +4180,13 @@ var RESERVED_TABLE_NAMES = /* @__PURE__ */ new Set([
|
|
|
4180
4180
|
"columnus_api_output_secrets",
|
|
4181
4181
|
"columnus_api_sync_routes",
|
|
4182
4182
|
"columnus_api_outbox",
|
|
4183
|
-
"columnus_api_delivery"
|
|
4183
|
+
"columnus_api_delivery",
|
|
4184
|
+
"columnus_assets",
|
|
4185
|
+
"columnus_asset_versions",
|
|
4186
|
+
"columnus_asset_refs",
|
|
4187
|
+
"columnus_asset_profiles",
|
|
4188
|
+
"columnus_asset_settings",
|
|
4189
|
+
"columnus_asset_jobs"
|
|
4184
4190
|
]);
|
|
4185
4191
|
var displayTemplatesSchema = external_exports.object({
|
|
4186
4192
|
id: external_exports.string().optional(),
|
|
@@ -4213,6 +4219,12 @@ var TABLE_COLORS = [
|
|
|
4213
4219
|
"lavender"
|
|
4214
4220
|
];
|
|
4215
4221
|
var tableColorSchema = external_exports.enum(TABLE_COLORS);
|
|
4222
|
+
var TABLE_KINDS = ["record", "asset"];
|
|
4223
|
+
var tableKindSchema = external_exports.enum(TABLE_KINDS);
|
|
4224
|
+
var assetBindingSchema = external_exports.object({
|
|
4225
|
+
profile: external_exports.string().min(1),
|
|
4226
|
+
enforced: external_exports.boolean().optional()
|
|
4227
|
+
});
|
|
4216
4228
|
var fieldTypeSchema = external_exports.lazy(
|
|
4217
4229
|
() => external_exports.discriminatedUnion("kind", [
|
|
4218
4230
|
external_exports.object({ kind: external_exports.literal("string") }),
|
|
@@ -4240,7 +4252,9 @@ var fieldTypeSchema = external_exports.lazy(
|
|
|
4240
4252
|
name: external_exports.string().regex(IDENT),
|
|
4241
4253
|
label: external_exports.string().optional(),
|
|
4242
4254
|
type: fieldTypeSchema,
|
|
4243
|
-
optional: external_exports.boolean()
|
|
4255
|
+
optional: external_exports.boolean(),
|
|
4256
|
+
/** Nested image/file placements bind a Media profile like top-level ones. */
|
|
4257
|
+
asset: assetBindingSchema.optional()
|
|
4244
4258
|
})
|
|
4245
4259
|
)
|
|
4246
4260
|
}),
|
|
@@ -4254,7 +4268,9 @@ var fieldSchema = external_exports.object({
|
|
|
4254
4268
|
name: external_exports.string().regex(IDENT, "must be a valid identifier"),
|
|
4255
4269
|
label: external_exports.string().optional(),
|
|
4256
4270
|
type: fieldTypeSchema,
|
|
4257
|
-
optional: external_exports.boolean()
|
|
4271
|
+
optional: external_exports.boolean(),
|
|
4272
|
+
/** Image/file fields may pin a Media profile; existence is enforced at upload/pick. */
|
|
4273
|
+
asset: assetBindingSchema.optional()
|
|
4258
4274
|
});
|
|
4259
4275
|
var indexSchema = external_exports.object({
|
|
4260
4276
|
name: external_exports.string().regex(IDENT),
|
|
@@ -4271,6 +4287,8 @@ var tableSchema = external_exports.object({
|
|
|
4271
4287
|
}),
|
|
4272
4288
|
label: external_exports.string().optional(),
|
|
4273
4289
|
color: tableColorSchema.optional(),
|
|
4290
|
+
/** Asset metadata tables are typed root tables but never ordinary user records. */
|
|
4291
|
+
kind: tableKindSchema.optional().default("record"),
|
|
4274
4292
|
fields: external_exports.array(fieldSchema),
|
|
4275
4293
|
indexes: external_exports.array(indexSchema).default([]),
|
|
4276
4294
|
searchIndexes: external_exports.array(searchIndexSchema).default([]),
|
|
@@ -4280,6 +4298,7 @@ var manifestSchema = external_exports.object({
|
|
|
4280
4298
|
tables: external_exports.array(tableSchema)
|
|
4281
4299
|
}).superRefine((manifest, ctx) => {
|
|
4282
4300
|
const tableNames = /* @__PURE__ */ new Set();
|
|
4301
|
+
const tablesByName = /* @__PURE__ */ new Map();
|
|
4283
4302
|
for (const t of manifest.tables) {
|
|
4284
4303
|
if (tableNames.has(t.name)) {
|
|
4285
4304
|
ctx.addIssue({
|
|
@@ -4289,6 +4308,37 @@ var manifestSchema = external_exports.object({
|
|
|
4289
4308
|
});
|
|
4290
4309
|
}
|
|
4291
4310
|
tableNames.add(t.name);
|
|
4311
|
+
tablesByName.set(t.name, t);
|
|
4312
|
+
if (tableKind(t) === "asset") {
|
|
4313
|
+
if (t.indexes.length > 0) {
|
|
4314
|
+
ctx.addIssue({
|
|
4315
|
+
code: external_exports.ZodIssueCode.custom,
|
|
4316
|
+
message: `${t.name} is an asset metadata table and cannot define indexes`,
|
|
4317
|
+
path: ["tables"]
|
|
4318
|
+
});
|
|
4319
|
+
}
|
|
4320
|
+
if (t.searchIndexes.length > 0) {
|
|
4321
|
+
ctx.addIssue({
|
|
4322
|
+
code: external_exports.ZodIssueCode.custom,
|
|
4323
|
+
message: `${t.name} is an asset metadata table and cannot define search indexes`,
|
|
4324
|
+
path: ["tables"]
|
|
4325
|
+
});
|
|
4326
|
+
}
|
|
4327
|
+
if (t.displayTemplates !== void 0) {
|
|
4328
|
+
ctx.addIssue({
|
|
4329
|
+
code: external_exports.ZodIssueCode.custom,
|
|
4330
|
+
message: `${t.name} is an asset metadata table and cannot define display templates`,
|
|
4331
|
+
path: ["tables"]
|
|
4332
|
+
});
|
|
4333
|
+
}
|
|
4334
|
+
if (t.color !== void 0) {
|
|
4335
|
+
ctx.addIssue({
|
|
4336
|
+
code: external_exports.ZodIssueCode.custom,
|
|
4337
|
+
message: `${t.name} is an asset metadata table and cannot define a color`,
|
|
4338
|
+
path: ["tables"]
|
|
4339
|
+
});
|
|
4340
|
+
}
|
|
4341
|
+
}
|
|
4292
4342
|
const fieldNames = /* @__PURE__ */ new Set();
|
|
4293
4343
|
for (const f of t.fields) {
|
|
4294
4344
|
if (fieldNames.has(f.name)) {
|
|
@@ -4299,36 +4349,43 @@ var manifestSchema = external_exports.object({
|
|
|
4299
4349
|
});
|
|
4300
4350
|
}
|
|
4301
4351
|
fieldNames.add(f.name);
|
|
4352
|
+
assertAssetBindingAllowed(ctx, t, f);
|
|
4302
4353
|
}
|
|
4303
4354
|
}
|
|
4304
4355
|
for (const t of manifest.tables) {
|
|
4305
4356
|
for (const f of t.fields) {
|
|
4306
|
-
const
|
|
4307
|
-
if (
|
|
4357
|
+
const invalidRef = findInvalidReference(f.type, tablesByName);
|
|
4358
|
+
if (invalidRef) {
|
|
4308
4359
|
ctx.addIssue({
|
|
4309
4360
|
code: external_exports.ZodIssueCode.custom,
|
|
4310
|
-
message: `${t.name}.${f.name}
|
|
4361
|
+
message: `${t.name}.${f.name} ${invalidRef}`,
|
|
4311
4362
|
path: ["tables"]
|
|
4312
4363
|
});
|
|
4313
4364
|
}
|
|
4314
4365
|
}
|
|
4315
4366
|
}
|
|
4316
4367
|
});
|
|
4317
|
-
function
|
|
4368
|
+
function findInvalidReference(t, tablesByName) {
|
|
4318
4369
|
switch (t.kind) {
|
|
4319
|
-
case "id":
|
|
4320
|
-
|
|
4370
|
+
case "id": {
|
|
4371
|
+
const target = tablesByName.get(t.table);
|
|
4372
|
+
if (!target) return `references unknown table: ${t.table}`;
|
|
4373
|
+
if (tableKind(target) === "asset") {
|
|
4374
|
+
return `cannot reference asset metadata table: ${t.table}`;
|
|
4375
|
+
}
|
|
4376
|
+
return null;
|
|
4377
|
+
}
|
|
4321
4378
|
case "array":
|
|
4322
|
-
return
|
|
4379
|
+
return findInvalidReference(t.element, tablesByName);
|
|
4323
4380
|
case "object":
|
|
4324
4381
|
for (const f of t.fields) {
|
|
4325
|
-
const r =
|
|
4382
|
+
const r = findInvalidReference(f.type, tablesByName);
|
|
4326
4383
|
if (r) return r;
|
|
4327
4384
|
}
|
|
4328
4385
|
return null;
|
|
4329
4386
|
case "union":
|
|
4330
4387
|
for (const o of t.options) {
|
|
4331
|
-
const r =
|
|
4388
|
+
const r = findInvalidReference(o, tablesByName);
|
|
4332
4389
|
if (r) return r;
|
|
4333
4390
|
}
|
|
4334
4391
|
return null;
|
|
@@ -4336,6 +4393,49 @@ function findDanglingRef(t, known) {
|
|
|
4336
4393
|
return null;
|
|
4337
4394
|
}
|
|
4338
4395
|
}
|
|
4396
|
+
function tableKind(table) {
|
|
4397
|
+
return table.kind ?? "record";
|
|
4398
|
+
}
|
|
4399
|
+
function isFileFieldType(t) {
|
|
4400
|
+
return t.kind === "file" || t.kind === "image";
|
|
4401
|
+
}
|
|
4402
|
+
function isFileArrayFieldType(t) {
|
|
4403
|
+
return t.kind === "array" && (t.element.kind === "file" || t.element.kind === "image");
|
|
4404
|
+
}
|
|
4405
|
+
function isStorageFieldType(t) {
|
|
4406
|
+
return isFileFieldType(t) || isFileArrayFieldType(t);
|
|
4407
|
+
}
|
|
4408
|
+
function assertAssetBindingAllowed(ctx, table, field) {
|
|
4409
|
+
if (field.asset && tableKind(table) === "asset") {
|
|
4410
|
+
ctx.addIssue({
|
|
4411
|
+
code: external_exports.ZodIssueCode.custom,
|
|
4412
|
+
message: `${table.name}.${field.name} asset metadata fields cannot define a Media profile`,
|
|
4413
|
+
path: ["tables"]
|
|
4414
|
+
});
|
|
4415
|
+
} else if (field.asset && !isStorageFieldType(field.type)) {
|
|
4416
|
+
ctx.addIssue({
|
|
4417
|
+
code: external_exports.ZodIssueCode.custom,
|
|
4418
|
+
message: `${table.name}.${field.name} asset profile can only be set on image/file fields`,
|
|
4419
|
+
path: ["tables"]
|
|
4420
|
+
});
|
|
4421
|
+
}
|
|
4422
|
+
assertAssetBindingsInType(ctx, table, field.type);
|
|
4423
|
+
}
|
|
4424
|
+
function assertAssetBindingsInType(ctx, table, type) {
|
|
4425
|
+
switch (type.kind) {
|
|
4426
|
+
case "array":
|
|
4427
|
+
assertAssetBindingsInType(ctx, table, type.element);
|
|
4428
|
+
return;
|
|
4429
|
+
case "object":
|
|
4430
|
+
for (const field of type.fields) assertAssetBindingAllowed(ctx, table, field);
|
|
4431
|
+
return;
|
|
4432
|
+
case "union":
|
|
4433
|
+
for (const option of type.options) assertAssetBindingsInType(ctx, table, option);
|
|
4434
|
+
return;
|
|
4435
|
+
default:
|
|
4436
|
+
return;
|
|
4437
|
+
}
|
|
4438
|
+
}
|
|
4339
4439
|
|
|
4340
4440
|
// packages/@columnus/shared/src/dataTransfer.ts
|
|
4341
4441
|
var COLUMNUS_DATA_TRANSFER_VERSION = 1;
|