@platecms/delta-cast 1.0.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -4
- package/src/lib/invalid-cast.error.ts +6 -0
- package/src/lib/normalize-cast.spec.ts +2123 -0
- package/src/lib/normalize-cast.ts +390 -0
- package/src/lib/schemas/schema.json +51 -0
- package/src/lib/schemas/schema.ts +264 -0
- package/src/lib/validate-cast.spec.ts +392 -0
- package/src/lib/validate-cast.ts +229 -0
- package/src/index.js +0 -7
- package/src/index.js.map +0 -1
- package/src/lib/invalid-cast.error.d.ts +0 -3
- package/src/lib/invalid-cast.error.js +0 -11
- package/src/lib/invalid-cast.error.js.map +0 -1
- package/src/lib/normalize-cast.d.ts +0 -9
- package/src/lib/normalize-cast.js +0 -190
- package/src/lib/normalize-cast.js.map +0 -1
- package/src/lib/schemas/schema.d.ts +0 -105
- package/src/lib/schemas/schema.js +0 -3
- package/src/lib/schemas/schema.js.map +0 -1
- package/src/lib/validate-cast.d.ts +0 -2
- package/src/lib/validate-cast.js +0 -149
- package/src/lib/validate-cast.js.map +0 -1
- /package/src/{index.d.ts → index.ts} +0 -0
package/src/lib/validate-cast.js
DELETED
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.URL_REGEX = void 0;
|
|
4
|
-
exports.validateCast = validateCast;
|
|
5
|
-
const invalid_cast_error_1 = require("./invalid-cast.error");
|
|
6
|
-
const delta_plate_resource_notation_1 = require("@platecms/delta-plate-resource-notation");
|
|
7
|
-
exports.URL_REGEX = /^(https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_+.~#?&/=]*)|mailto:[^\s@]+@[^\s@]+\.[^\s@]+|tel:\+?[0-9\s\-().]{7,}|\/[^\s]*)$/u;
|
|
8
|
-
function assertNonNullObject(value) {
|
|
9
|
-
if (typeof value !== "object" || value == null) {
|
|
10
|
-
throw new invalid_cast_error_1.InvalidCastError(`Invalid object`);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
function assertTextNode(value) {
|
|
14
|
-
assertNonNullObject(value);
|
|
15
|
-
if ("type" in value && typeof value.type === "string" && value.type !== "text") {
|
|
16
|
-
throw new invalid_cast_error_1.InvalidCastError(`Invalid node: ${value.type} node is not a text node`);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function assertValidParent(value) {
|
|
20
|
-
assertNonNullObject(value);
|
|
21
|
-
const parent = value;
|
|
22
|
-
if (!Array.isArray(parent.children)) {
|
|
23
|
-
throw new invalid_cast_error_1.InvalidCastError("Invalid parent: children is not an array");
|
|
24
|
-
}
|
|
25
|
-
parent.children.forEach(assertValidContent);
|
|
26
|
-
}
|
|
27
|
-
function assertValidLiteral(value) {
|
|
28
|
-
assertNonNullObject(value);
|
|
29
|
-
const literal = value;
|
|
30
|
-
if (typeof literal.value !== "string") {
|
|
31
|
-
throw new invalid_cast_error_1.InvalidCastError("Invalid literal: value is not a string");
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
function assertValidHeading(value) {
|
|
35
|
-
assertNonNullObject(value);
|
|
36
|
-
const list = value;
|
|
37
|
-
if (typeof list.level !== "number" || list.level < 1 || list.level > 6) {
|
|
38
|
-
throw new invalid_cast_error_1.InvalidCastError("Invalid heading");
|
|
39
|
-
}
|
|
40
|
-
assertValidParent(list);
|
|
41
|
-
}
|
|
42
|
-
function assertValidList(value) {
|
|
43
|
-
assertNonNullObject(value);
|
|
44
|
-
const list = value;
|
|
45
|
-
if (typeof list.ordered !== "boolean" || (list.start != null && typeof list.start !== "number")) {
|
|
46
|
-
throw new invalid_cast_error_1.InvalidCastError("Invalid list");
|
|
47
|
-
}
|
|
48
|
-
assertValidParent(list);
|
|
49
|
-
}
|
|
50
|
-
function assertValidCode(value) {
|
|
51
|
-
assertNonNullObject(value);
|
|
52
|
-
const code = value;
|
|
53
|
-
if (code.lang != null && typeof code.lang !== "string") {
|
|
54
|
-
throw new invalid_cast_error_1.InvalidCastError("Invalid code");
|
|
55
|
-
}
|
|
56
|
-
assertValidParent(code);
|
|
57
|
-
}
|
|
58
|
-
function assertValidInterpolatedContentValue(value) {
|
|
59
|
-
assertNonNullObject(value);
|
|
60
|
-
const contentValue = value;
|
|
61
|
-
try {
|
|
62
|
-
delta_plate_resource_notation_1.PRN.fromString(contentValue.prn);
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
65
|
-
if (error instanceof delta_plate_resource_notation_1.InvalidPrnError) {
|
|
66
|
-
throw new invalid_cast_error_1.InvalidCastError(`Invalid contentValue: invalid PRN ${contentValue.prn}`);
|
|
67
|
-
}
|
|
68
|
-
throw error;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
function assertValidExternalLink(value) {
|
|
72
|
-
assertNonNullObject(value);
|
|
73
|
-
assertValidParent(value);
|
|
74
|
-
const link = value;
|
|
75
|
-
if (typeof link.url !== "string") {
|
|
76
|
-
throw new invalid_cast_error_1.InvalidCastError(`Invalid link: invalid url`);
|
|
77
|
-
}
|
|
78
|
-
if (!exports.URL_REGEX.test(link.url)) {
|
|
79
|
-
throw new invalid_cast_error_1.InvalidCastError(`Invalid link: invalid url ${link.url}`);
|
|
80
|
-
}
|
|
81
|
-
link.children.forEach(assertTextNode);
|
|
82
|
-
}
|
|
83
|
-
function assertValidInternalLink(value) {
|
|
84
|
-
assertNonNullObject(value);
|
|
85
|
-
assertValidParent(value);
|
|
86
|
-
const link = value;
|
|
87
|
-
try {
|
|
88
|
-
delta_plate_resource_notation_1.PRN.fromString(link.prn);
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
if (error instanceof delta_plate_resource_notation_1.InvalidPrnError) {
|
|
92
|
-
throw new invalid_cast_error_1.InvalidCastError(`Invalid link: invalid PRN ${link.prn}`);
|
|
93
|
-
}
|
|
94
|
-
throw error;
|
|
95
|
-
}
|
|
96
|
-
link.children.forEach(assertTextNode);
|
|
97
|
-
}
|
|
98
|
-
function assertValidContent(value) {
|
|
99
|
-
assertNonNullObject(value);
|
|
100
|
-
const content = value;
|
|
101
|
-
switch (content.type) {
|
|
102
|
-
case "paragraph":
|
|
103
|
-
case "listItem":
|
|
104
|
-
case "blockquote":
|
|
105
|
-
case "bold":
|
|
106
|
-
case "italic":
|
|
107
|
-
case "underline":
|
|
108
|
-
case "strikethrough":
|
|
109
|
-
case "highlight":
|
|
110
|
-
assertValidParent(content);
|
|
111
|
-
break;
|
|
112
|
-
case "externalLink":
|
|
113
|
-
assertValidExternalLink(content);
|
|
114
|
-
break;
|
|
115
|
-
case "internalLink":
|
|
116
|
-
assertValidInternalLink(content);
|
|
117
|
-
break;
|
|
118
|
-
case "heading":
|
|
119
|
-
assertValidHeading(content);
|
|
120
|
-
break;
|
|
121
|
-
case "text":
|
|
122
|
-
case "inlineCode":
|
|
123
|
-
assertValidLiteral(content);
|
|
124
|
-
break;
|
|
125
|
-
case "list":
|
|
126
|
-
assertValidList(content);
|
|
127
|
-
break;
|
|
128
|
-
case "code":
|
|
129
|
-
assertValidCode(content);
|
|
130
|
-
break;
|
|
131
|
-
case "contentValue":
|
|
132
|
-
assertValidInterpolatedContentValue(content);
|
|
133
|
-
break;
|
|
134
|
-
default:
|
|
135
|
-
throw new invalid_cast_error_1.InvalidCastError(`Invalid Content type '${content.type}'.`);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
function validateCast(value) {
|
|
139
|
-
assertNonNullObject(value);
|
|
140
|
-
const root = value;
|
|
141
|
-
if (root.type !== "root") {
|
|
142
|
-
throw new invalid_cast_error_1.InvalidCastError("Invalid root: type is not 'root'");
|
|
143
|
-
}
|
|
144
|
-
if (!Array.isArray(root.children)) {
|
|
145
|
-
throw new invalid_cast_error_1.InvalidCastError("Invalid root: children is not an array");
|
|
146
|
-
}
|
|
147
|
-
root.children.forEach(assertValidContent);
|
|
148
|
-
}
|
|
149
|
-
//# sourceMappingURL=validate-cast.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate-cast.js","sourceRoot":"","sources":["../../../../../../packages/cast/src/lib/validate-cast.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|