@pgpm/types 0.16.0 → 0.16.8
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/Makefile +1 -1
- package/deploy/schemas/public/domains/attachment.sql +2 -2
- package/deploy/schemas/public/domains/email.sql +2 -2
- package/deploy/schemas/public/domains/hostname.sql +2 -2
- package/deploy/schemas/public/domains/image.sql +10 -4
- package/deploy/schemas/public/domains/origin.sql +2 -2
- package/deploy/schemas/public/domains/upload.sql +9 -7
- package/deploy/schemas/public/domains/url.sql +2 -2
- package/package.json +2 -2
- package/pgpm-types.control +1 -1
- package/pgpm.plan +0 -2
- package/sql/pgpm-types--0.16.0.sql +71 -0
- package/deploy/schemas/public/domains/multiple_select.sql +0 -8
- package/deploy/schemas/public/domains/single_select.sql +0 -12
- package/revert/schemas/public/domains/multiple_select.sql +0 -7
- package/revert/schemas/public/domains/single_select.sql +0 -7
- package/sql/pgpm-types--0.15.3.sql +0 -51
- package/verify/schemas/public/domains/multiple_select.sql +0 -7
- package/verify/schemas/public/domains/single_select.sql +0 -7
package/Makefile
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
-- requires: schemas/public/schema
|
|
3
3
|
|
|
4
4
|
BEGIN;
|
|
5
|
-
CREATE DOMAIN attachment AS text CHECK (
|
|
6
|
-
COMMENT ON DOMAIN attachment IS E'@name
|
|
5
|
+
CREATE DOMAIN attachment AS text CHECK (value ~ '^https?://[^\s]+$');
|
|
6
|
+
COMMENT ON DOMAIN attachment IS E'@name constructiveInternalTypeAttachment';
|
|
7
7
|
COMMIT;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
-- requires: schemas/public/schema
|
|
3
3
|
|
|
4
4
|
BEGIN;
|
|
5
|
-
CREATE DOMAIN email AS citext CHECK (value ~ '
|
|
6
|
-
COMMENT ON DOMAIN email IS E'@name
|
|
5
|
+
CREATE DOMAIN email AS citext CHECK (value ~ '@');
|
|
6
|
+
COMMENT ON DOMAIN email IS E'@name constructiveInternalTypeEmail';
|
|
7
7
|
COMMIT;
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
-- requires: schemas/public/schema
|
|
3
3
|
|
|
4
4
|
BEGIN;
|
|
5
|
-
CREATE DOMAIN hostname AS text CHECK (
|
|
6
|
-
COMMENT ON DOMAIN hostname IS E'@name
|
|
5
|
+
CREATE DOMAIN hostname AS text CHECK (value ~ '^[^\s]+$');
|
|
6
|
+
COMMENT ON DOMAIN hostname IS E'@name constructiveInternalTypeHostname';
|
|
7
7
|
COMMIT;
|
|
8
8
|
|
|
@@ -3,10 +3,16 @@
|
|
|
3
3
|
|
|
4
4
|
BEGIN;
|
|
5
5
|
CREATE DOMAIN image AS jsonb CHECK (
|
|
6
|
-
value
|
|
7
|
-
AND
|
|
8
|
-
value->>'url' ~ '^
|
|
6
|
+
jsonb_typeof(value) = 'object'
|
|
7
|
+
AND (value ? 'url' OR value ? 'id' OR value ? 'key')
|
|
8
|
+
AND (NOT value ? 'url' OR (value->>'url') ~ '^https?://[^\s]+$')
|
|
9
|
+
AND (NOT value ? 'id' OR jsonb_typeof(value->'id') = 'string')
|
|
10
|
+
AND (NOT value ? 'key' OR jsonb_typeof(value->'key') = 'string')
|
|
11
|
+
AND (NOT value ? 'bucket' OR jsonb_typeof(value->'bucket') = 'string')
|
|
12
|
+
AND (NOT value ? 'provider' OR jsonb_typeof(value->'provider') = 'string')
|
|
13
|
+
AND (NOT value ? 'mime' OR jsonb_typeof(value->'mime') = 'string')
|
|
14
|
+
AND (NOT value ? 'versions' OR jsonb_typeof(value->'versions') = 'array')
|
|
9
15
|
);
|
|
10
|
-
COMMENT ON DOMAIN image IS E'@name
|
|
16
|
+
COMMENT ON DOMAIN image IS E'@name constructiveInternalTypeImage';
|
|
11
17
|
COMMIT;
|
|
12
18
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
-- requires: schemas/public/schema
|
|
3
3
|
|
|
4
4
|
BEGIN;
|
|
5
|
-
CREATE DOMAIN origin AS text CHECK (
|
|
6
|
-
COMMENT ON DOMAIN origin IS E'@name
|
|
5
|
+
CREATE DOMAIN origin AS text CHECK (value ~ '^https?://[^/\s]+$');
|
|
6
|
+
COMMENT ON DOMAIN origin IS E'@name constructiveInternalTypeOrigin';
|
|
7
7
|
COMMIT;
|
|
8
8
|
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
-- Deploy schemas/public/domains/upload to pg
|
|
2
|
-
|
|
3
2
|
-- requires: schemas/public/schema
|
|
4
3
|
|
|
5
4
|
BEGIN;
|
|
6
|
-
|
|
7
5
|
CREATE DOMAIN upload AS jsonb CHECK (
|
|
8
|
-
value
|
|
9
|
-
AND
|
|
10
|
-
value->>'url' ~ '^
|
|
6
|
+
jsonb_typeof(value) = 'object'
|
|
7
|
+
AND (value ? 'url' OR value ? 'id' OR value ? 'key')
|
|
8
|
+
AND (NOT value ? 'url' OR (value->>'url') ~ '^https?://[^\s]+$')
|
|
9
|
+
AND (NOT value ? 'id' OR jsonb_typeof(value->'id') = 'string')
|
|
10
|
+
AND (NOT value ? 'key' OR jsonb_typeof(value->'key') = 'string')
|
|
11
|
+
AND (NOT value ? 'bucket' OR jsonb_typeof(value->'bucket') = 'string')
|
|
12
|
+
AND (NOT value ? 'provider' OR jsonb_typeof(value->'provider') = 'string')
|
|
13
|
+
AND (NOT value ? 'mime' OR jsonb_typeof(value->'mime') = 'string')
|
|
11
14
|
);
|
|
12
|
-
COMMENT ON DOMAIN upload IS E'@name
|
|
13
|
-
|
|
15
|
+
COMMENT ON DOMAIN upload IS E'@name constructiveInternalTypeUpload';
|
|
14
16
|
COMMIT;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
-- requires: schemas/public/schema
|
|
3
3
|
|
|
4
4
|
BEGIN;
|
|
5
|
-
CREATE DOMAIN url AS text CHECK (
|
|
6
|
-
COMMENT ON DOMAIN url IS E'@name
|
|
5
|
+
CREATE DOMAIN url AS text CHECK (value ~ '^https?://[^\s]+$');
|
|
6
|
+
COMMENT ON DOMAIN url IS E'@name constructiveInternalTypeUrl';
|
|
7
7
|
COMMIT;
|
|
8
8
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pgpm/types",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.8",
|
|
4
4
|
"description": "Core PostgreSQL data types with deploy/verify/revert SQL scripts",
|
|
5
5
|
"author": "Dan Lynch <pyramation@gmail.com>",
|
|
6
6
|
"contributors": [
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"bugs": {
|
|
35
35
|
"url": "https://github.com/constructive-io/pgpm-modules/issues"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "a0718b6712d797acacfd51fbcdad8a6d577d8bbc"
|
|
38
38
|
}
|
package/pgpm-types.control
CHANGED
package/pgpm.plan
CHANGED
|
@@ -7,8 +7,6 @@ schemas/public/domains/attachment [schemas/public/schema] 2017-08-11T08:11:51Z s
|
|
|
7
7
|
schemas/public/domains/email [schemas/public/schema] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/public/domains/email
|
|
8
8
|
schemas/public/domains/hostname [schemas/public/schema] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/public/domains/hostname
|
|
9
9
|
schemas/public/domains/image [schemas/public/schema] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/public/domains/image
|
|
10
|
-
schemas/public/domains/multiple_select [schemas/public/schema] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/public/domains/multiple_select
|
|
11
10
|
schemas/public/domains/origin [schemas/public/schema] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/public/domains/origin
|
|
12
|
-
schemas/public/domains/single_select [schemas/public/schema] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/public/domains/single_select
|
|
13
11
|
schemas/public/domains/upload [schemas/public/schema] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/public/domains/upload
|
|
14
12
|
schemas/public/domains/url [schemas/public/schema] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/public/domains/url
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
\echo Use "CREATE EXTENSION pgpm-types" to load this file. \quit
|
|
2
|
+
CREATE DOMAIN attachment AS text
|
|
3
|
+
CHECK (value ~ E'^https?://[^\\s]+$');
|
|
4
|
+
|
|
5
|
+
COMMENT ON DOMAIN attachment IS '@name constructiveInternalTypeAttachment';
|
|
6
|
+
|
|
7
|
+
CREATE DOMAIN email AS citext
|
|
8
|
+
CHECK (value ~ '@');
|
|
9
|
+
|
|
10
|
+
COMMENT ON DOMAIN email IS '@name constructiveInternalTypeEmail';
|
|
11
|
+
|
|
12
|
+
CREATE DOMAIN hostname AS text
|
|
13
|
+
CHECK (value ~ E'^[^\\s]+$');
|
|
14
|
+
|
|
15
|
+
COMMENT ON DOMAIN hostname IS '@name constructiveInternalTypeHostname';
|
|
16
|
+
|
|
17
|
+
CREATE DOMAIN image AS jsonb
|
|
18
|
+
CHECK (
|
|
19
|
+
jsonb_typeof(value) = 'object'
|
|
20
|
+
AND (value ? 'url'
|
|
21
|
+
OR value ? 'id'
|
|
22
|
+
OR value ? 'key')
|
|
23
|
+
AND (NOT (value ? 'url')
|
|
24
|
+
OR (value ->> 'url') ~ E'^https?://[^\\s]+$')
|
|
25
|
+
AND (NOT (value ? 'id')
|
|
26
|
+
OR jsonb_typeof(value -> 'id') = 'string')
|
|
27
|
+
AND (NOT (value ? 'key')
|
|
28
|
+
OR jsonb_typeof(value -> 'key') = 'string')
|
|
29
|
+
AND (NOT (value ? 'bucket')
|
|
30
|
+
OR jsonb_typeof(value -> 'bucket') = 'string')
|
|
31
|
+
AND (NOT (value ? 'provider')
|
|
32
|
+
OR jsonb_typeof(value -> 'provider') = 'string')
|
|
33
|
+
AND (NOT (value ? 'mime')
|
|
34
|
+
OR jsonb_typeof(value -> 'mime') = 'string')
|
|
35
|
+
AND (NOT (value ? 'versions')
|
|
36
|
+
OR jsonb_typeof(value -> 'versions') = 'array')
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
COMMENT ON DOMAIN image IS '@name constructiveInternalTypeImage';
|
|
40
|
+
|
|
41
|
+
CREATE DOMAIN origin AS text
|
|
42
|
+
CHECK (value ~ E'^https?://[^/\\s]+$');
|
|
43
|
+
|
|
44
|
+
COMMENT ON DOMAIN origin IS '@name constructiveInternalTypeOrigin';
|
|
45
|
+
|
|
46
|
+
CREATE DOMAIN upload AS jsonb
|
|
47
|
+
CHECK (
|
|
48
|
+
jsonb_typeof(value) = 'object'
|
|
49
|
+
AND (value ? 'url'
|
|
50
|
+
OR value ? 'id'
|
|
51
|
+
OR value ? 'key')
|
|
52
|
+
AND (NOT (value ? 'url')
|
|
53
|
+
OR (value ->> 'url') ~ E'^https?://[^\\s]+$')
|
|
54
|
+
AND (NOT (value ? 'id')
|
|
55
|
+
OR jsonb_typeof(value -> 'id') = 'string')
|
|
56
|
+
AND (NOT (value ? 'key')
|
|
57
|
+
OR jsonb_typeof(value -> 'key') = 'string')
|
|
58
|
+
AND (NOT (value ? 'bucket')
|
|
59
|
+
OR jsonb_typeof(value -> 'bucket') = 'string')
|
|
60
|
+
AND (NOT (value ? 'provider')
|
|
61
|
+
OR jsonb_typeof(value -> 'provider') = 'string')
|
|
62
|
+
AND (NOT (value ? 'mime')
|
|
63
|
+
OR jsonb_typeof(value -> 'mime') = 'string')
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
COMMENT ON DOMAIN upload IS '@name constructiveInternalTypeUpload';
|
|
67
|
+
|
|
68
|
+
CREATE DOMAIN url AS text
|
|
69
|
+
CHECK (value ~ E'^https?://[^\\s]+$');
|
|
70
|
+
|
|
71
|
+
COMMENT ON DOMAIN url IS '@name constructiveInternalTypeUrl';
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
-- Deploy schemas/public/domains/multiple_select to pg
|
|
2
|
-
-- requires: schemas/public/schema
|
|
3
|
-
|
|
4
|
-
BEGIN;
|
|
5
|
-
CREATE DOMAIN multiple_select AS jsonb CHECK (value ?& ARRAY['value']);
|
|
6
|
-
COMMENT ON DOMAIN multiple_select IS E'@name pgpmInternalTypeMultipleSelect';
|
|
7
|
-
COMMIT;
|
|
8
|
-
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
-- Deploy schemas/public/domains/single_select to pg
|
|
2
|
-
|
|
3
|
-
-- requires: schemas/public/schema
|
|
4
|
-
|
|
5
|
-
BEGIN;
|
|
6
|
-
|
|
7
|
-
CREATE DOMAIN single_select AS jsonb CHECK (
|
|
8
|
-
value ?& ARRAY['value']
|
|
9
|
-
);
|
|
10
|
-
COMMENT ON DOMAIN single_select IS E'@name pgpmInternalTypeSingleSelect';
|
|
11
|
-
|
|
12
|
-
COMMIT;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
\echo Use "CREATE EXTENSION pgpm-types" to load this file. \quit
|
|
2
|
-
CREATE DOMAIN attachment AS text
|
|
3
|
-
CHECK (value ~ E'^(https?)://[^\\s/$.?#].[^\\s]*$');
|
|
4
|
-
|
|
5
|
-
COMMENT ON DOMAIN attachment IS '@name pgpmInternalTypeAttachment';
|
|
6
|
-
|
|
7
|
-
CREATE DOMAIN email AS citext
|
|
8
|
-
CHECK (value ~ E'^[a-zA-Z0-9.!#$%&''*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$');
|
|
9
|
-
|
|
10
|
-
COMMENT ON DOMAIN email IS '@name pgpmInternalTypeEmail';
|
|
11
|
-
|
|
12
|
-
CREATE DOMAIN hostname AS text
|
|
13
|
-
CHECK (value ~ E'^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])$');
|
|
14
|
-
|
|
15
|
-
COMMENT ON DOMAIN hostname IS '@name pgpmInternalTypeHostname';
|
|
16
|
-
|
|
17
|
-
CREATE DOMAIN image AS jsonb
|
|
18
|
-
CHECK (
|
|
19
|
-
value ?& ARRAY['url', 'mime']
|
|
20
|
-
AND (value ->> 'url') ~ E'^(https?)://[^\\s/$.?#].[^\\s]*$'
|
|
21
|
-
);
|
|
22
|
-
|
|
23
|
-
COMMENT ON DOMAIN image IS '@name pgpmInternalTypeImage';
|
|
24
|
-
|
|
25
|
-
CREATE DOMAIN multiple_select AS jsonb
|
|
26
|
-
CHECK (value ?& ARRAY['value']);
|
|
27
|
-
|
|
28
|
-
COMMENT ON DOMAIN multiple_select IS '@name pgpmInternalTypeMultipleSelect';
|
|
29
|
-
|
|
30
|
-
CREATE DOMAIN origin AS text
|
|
31
|
-
CHECK (value = pg_catalog."substring"(value, '^(https?://[^/]*)'));
|
|
32
|
-
|
|
33
|
-
COMMENT ON DOMAIN origin IS '@name pgpmInternalTypeOrigin';
|
|
34
|
-
|
|
35
|
-
CREATE DOMAIN single_select AS jsonb
|
|
36
|
-
CHECK (value ?& ARRAY['value']);
|
|
37
|
-
|
|
38
|
-
COMMENT ON DOMAIN single_select IS '@name pgpmInternalTypeSingleSelect';
|
|
39
|
-
|
|
40
|
-
CREATE DOMAIN upload AS jsonb
|
|
41
|
-
CHECK (
|
|
42
|
-
value ?& ARRAY['url', 'mime']
|
|
43
|
-
AND (value ->> 'url') ~ E'^(https?)://[^\\s/$.?#].[^\\s]*$'
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
COMMENT ON DOMAIN upload IS '@name pgpmInternalTypeUpload';
|
|
47
|
-
|
|
48
|
-
CREATE DOMAIN url AS text
|
|
49
|
-
CHECK (value ~ E'^(https?)://[^\\s/$.?#].[^\\s]*$');
|
|
50
|
-
|
|
51
|
-
COMMENT ON DOMAIN url IS '@name pgpmInternalTypeUrl';
|