@pgpm/inflection 0.4.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/LICENSE +22 -0
- package/Makefile +6 -0
- package/README.md +5 -0
- package/__tests__/inflection.test.ts +181 -0
- package/deploy/schemas/inflection/procedures/camel.sql +25 -0
- package/deploy/schemas/inflection/procedures/dashed.sql +29 -0
- package/deploy/schemas/inflection/procedures/no_consecutive_caps.sql +53 -0
- package/deploy/schemas/inflection/procedures/no_single_underscores.sql +70 -0
- package/deploy/schemas/inflection/procedures/pascal.sql +20 -0
- package/deploy/schemas/inflection/procedures/pg_slugify.sql +68 -0
- package/deploy/schemas/inflection/procedures/plural.sql +31 -0
- package/deploy/schemas/inflection/procedures/should_skip_uncountable.sql +17 -0
- package/deploy/schemas/inflection/procedures/singular.sql +31 -0
- package/deploy/schemas/inflection/procedures/slugify.sql +59 -0
- package/deploy/schemas/inflection/procedures/uncountable_words.sql +14 -0
- package/deploy/schemas/inflection/procedures/underscore.sql +52 -0
- package/deploy/schemas/inflection/schema.sql +15 -0
- package/deploy/schemas/inflection/tables/inflection_rules/fixtures/1589249334312_fixture.sql +129 -0
- package/deploy/schemas/inflection/tables/inflection_rules/indexes/inflection_rules_type_idx.sql +12 -0
- package/deploy/schemas/inflection/tables/inflection_rules/table.sql +16 -0
- package/jest.config.js +15 -0
- package/launchql-inflection.control +8 -0
- package/launchql.plan +20 -0
- package/package.json +28 -0
- package/revert/schemas/inflection/procedures/camel.sql +7 -0
- package/revert/schemas/inflection/procedures/dashed.sql +7 -0
- package/revert/schemas/inflection/procedures/no_consecutive_caps.sql +7 -0
- package/revert/schemas/inflection/procedures/no_single_underscores.sql +7 -0
- package/revert/schemas/inflection/procedures/pascal.sql +7 -0
- package/revert/schemas/inflection/procedures/pg_slugify.sql +8 -0
- package/revert/schemas/inflection/procedures/plural.sql +7 -0
- package/revert/schemas/inflection/procedures/should_skip_uncountable.sql +7 -0
- package/revert/schemas/inflection/procedures/singular.sql +7 -0
- package/revert/schemas/inflection/procedures/slugify.sql +8 -0
- package/revert/schemas/inflection/procedures/uncountable_words.sql +7 -0
- package/revert/schemas/inflection/procedures/underscore.sql +7 -0
- package/revert/schemas/inflection/schema.sql +7 -0
- package/revert/schemas/inflection/tables/inflection_rules/fixtures/1589249334312_fixture.sql +5 -0
- package/revert/schemas/inflection/tables/inflection_rules/indexes/inflection_rules_type_idx.sql +7 -0
- package/revert/schemas/inflection/tables/inflection_rules/table.sql +7 -0
- package/sql/launchql-inflection--0.4.7.sql +451 -0
- package/verify/schemas/inflection/procedures/camel.sql +7 -0
- package/verify/schemas/inflection/procedures/dashed.sql +7 -0
- package/verify/schemas/inflection/procedures/no_consecutive_caps.sql +7 -0
- package/verify/schemas/inflection/procedures/no_single_underscores.sql +7 -0
- package/verify/schemas/inflection/procedures/pascal.sql +7 -0
- package/verify/schemas/inflection/procedures/pg_slugify.sql +7 -0
- package/verify/schemas/inflection/procedures/plural.sql +7 -0
- package/verify/schemas/inflection/procedures/should_skip_uncountable.sql +7 -0
- package/verify/schemas/inflection/procedures/singular.sql +7 -0
- package/verify/schemas/inflection/procedures/slugify.sql +7 -0
- package/verify/schemas/inflection/procedures/uncountable_words.sql +7 -0
- package/verify/schemas/inflection/procedures/underscore.sql +7 -0
- package/verify/schemas/inflection/schema.sql +7 -0
- package/verify/schemas/inflection/tables/inflection_rules/fixtures/1589249334312_fixture.sql +5 -0
- package/verify/schemas/inflection/tables/inflection_rules/indexes/inflection_rules_type_idx.sql +7 -0
- package/verify/schemas/inflection/tables/inflection_rules/table.sql +7 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
-- Deploy schemas/inflection/procedures/underscore to pg
|
|
2
|
+
-- requires: schemas/inflection/schema
|
|
3
|
+
-- requires: schemas/inflection/procedures/pg_slugify
|
|
4
|
+
-- requires: schemas/inflection/procedures/no_single_underscores
|
|
5
|
+
|
|
6
|
+
BEGIN;
|
|
7
|
+
CREATE FUNCTION inflection.underscore (str text)
|
|
8
|
+
RETURNS text
|
|
9
|
+
AS $$
|
|
10
|
+
WITH slugged AS (
|
|
11
|
+
SELECT
|
|
12
|
+
inflection.pg_slugify(str) AS value
|
|
13
|
+
),
|
|
14
|
+
convertedupper AS (
|
|
15
|
+
SELECT
|
|
16
|
+
lower(regexp_replace(value, E'([A-Z])', E'\_\\1', 'g')) AS value
|
|
17
|
+
FROM
|
|
18
|
+
slugged
|
|
19
|
+
),
|
|
20
|
+
noprefix AS (
|
|
21
|
+
SELECT
|
|
22
|
+
regexp_replace(value, E'^_', '', 'g') AS value
|
|
23
|
+
FROM
|
|
24
|
+
convertedupper
|
|
25
|
+
),
|
|
26
|
+
removedups AS (
|
|
27
|
+
SELECT
|
|
28
|
+
regexp_replace(value, E'[_]+', '_', 'gi') AS value
|
|
29
|
+
FROM
|
|
30
|
+
noprefix
|
|
31
|
+
),
|
|
32
|
+
stripedges AS (
|
|
33
|
+
SELECT
|
|
34
|
+
regexp_replace(regexp_replace(value, E'([A-Z])_$', E'\\1', 'gi'), E'^_([A-Z])', E'\\1', 'gi') AS value
|
|
35
|
+
FROM
|
|
36
|
+
removedups
|
|
37
|
+
),
|
|
38
|
+
nosingles AS (
|
|
39
|
+
SELECT
|
|
40
|
+
inflection.no_single_underscores(value) AS value
|
|
41
|
+
FROM
|
|
42
|
+
stripedges
|
|
43
|
+
)
|
|
44
|
+
SELECT
|
|
45
|
+
value
|
|
46
|
+
FROM
|
|
47
|
+
nosingles;
|
|
48
|
+
$$
|
|
49
|
+
LANGUAGE 'sql'
|
|
50
|
+
IMMUTABLE;
|
|
51
|
+
COMMIT;
|
|
52
|
+
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
-- Deploy schemas/inflection/tables/inflection_rules/fixtures/1589249334312_fixture to pg
|
|
2
|
+
|
|
3
|
+
-- requires: schemas/inflection/schema
|
|
4
|
+
-- requires: schemas/inflection/tables/inflection_rules/table
|
|
5
|
+
|
|
6
|
+
BEGIN;
|
|
7
|
+
|
|
8
|
+
INSERT INTO inflection.inflection_rules
|
|
9
|
+
(type, test, replacement) VALUES
|
|
10
|
+
('plural', '^(m|wom)en$', NULL),
|
|
11
|
+
('plural', '(pe)ople$', NULL),
|
|
12
|
+
('plural', '(child)ren$', NULL),
|
|
13
|
+
('plural', '([ti])a$', NULL),
|
|
14
|
+
('plural', '((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', NULL),
|
|
15
|
+
('plural', '(hi|ti)ves$', NULL),
|
|
16
|
+
('plural', '(curve)s$', NULL),
|
|
17
|
+
('plural', '([lr])ves$', NULL),
|
|
18
|
+
('plural', '([^fo])ves$', NULL),
|
|
19
|
+
('plural', '([^aeiouy]|qu)ies$', NULL),
|
|
20
|
+
('plural', '(s)eries$', NULL),
|
|
21
|
+
('plural', '(m)ovies$', NULL),
|
|
22
|
+
('plural', '(x|ch|ss|sh)es$', NULL),
|
|
23
|
+
('plural', '([m|l])ice$', NULL),
|
|
24
|
+
('plural', '(bus)es$', NULL),
|
|
25
|
+
('plural', '(o)es$', NULL),
|
|
26
|
+
('plural', '(shoe)s$', NULL),
|
|
27
|
+
('plural', '(cris|ax|test)es$', NULL),
|
|
28
|
+
('plural', '(octop|vir)i$', NULL),
|
|
29
|
+
('plural', '(alias|canvas|status|campus)es$', NULL),
|
|
30
|
+
('plural', '^(summons)es$', NULL),
|
|
31
|
+
('plural', '^(ox)en', NULL),
|
|
32
|
+
('plural', '(matr)ices$', NULL),
|
|
33
|
+
('plural', '^feet$', NULL),
|
|
34
|
+
('plural', '^teeth$', NULL),
|
|
35
|
+
('plural', '^geese$', NULL),
|
|
36
|
+
('plural', '(quiz)zes$', NULL),
|
|
37
|
+
('plural', '^(whereas)es$', NULL),
|
|
38
|
+
('plural', '^(criteri)a$', NULL),
|
|
39
|
+
('plural', '^genera$', NULL),
|
|
40
|
+
('plural', '^(m|wom)an$', E'\\1en'),
|
|
41
|
+
('plural', '(pe)rson$', E'\\1ople'),
|
|
42
|
+
('plural', '(child)$', E'\\1ren'),
|
|
43
|
+
('plural', '^(ox)$', E'\\1en'),
|
|
44
|
+
('plural', '(ax|test)is$', E'\\1es'),
|
|
45
|
+
('plural', '(octop|vir)us$', E'\\1i'),
|
|
46
|
+
('plural', '(alias|status|canvas|campus)$', E'\\1es'),
|
|
47
|
+
('plural', '^(summons)$', E'\\1es'),
|
|
48
|
+
('plural', '(bu)s$', E'\\1ses'),
|
|
49
|
+
('plural', '(buffal|tomat|potat)o$', E'\\1oes'),
|
|
50
|
+
('plural', '([ti])um$', E'\\1a'),
|
|
51
|
+
('plural', 'sis$', E'ses'),
|
|
52
|
+
('plural', '(?:([^f])fe|([lr])f)$', E'\\1\\2ves'),
|
|
53
|
+
('plural', '(hi|ti)ve$', E'\\1ves'),
|
|
54
|
+
('plural', '([^aeiouy]|qu)y$', E'\\1ies'),
|
|
55
|
+
('plural', '(matr)ix$', E'\\1ices'),
|
|
56
|
+
('plural', '(vert|ind)ex$', E'\\1ices'),
|
|
57
|
+
('plural', '(x|ch|ss|sh)$', E'\\1es'),
|
|
58
|
+
('plural', '([m|l])ouse$', E'\\1ice'),
|
|
59
|
+
('plural', '^foot$', E'feet'),
|
|
60
|
+
('plural', '^tooth$', E'teeth'),
|
|
61
|
+
('plural', '^goose$', E'geese'),
|
|
62
|
+
('plural', '(quiz)$', E'\\1zes'),
|
|
63
|
+
('plural', '^(whereas)$', E'\\1es'),
|
|
64
|
+
('plural', '^(criteri)on$', E'\\1a'),
|
|
65
|
+
('plural', '^genus$', E'genera'),
|
|
66
|
+
('plural', 's$', E's'),
|
|
67
|
+
('plural', '$', E's'),
|
|
68
|
+
('singular', '^(m|wom)an$', NULL),
|
|
69
|
+
('singular', '(pe)rson$', NULL),
|
|
70
|
+
('singular', '(child)$', NULL),
|
|
71
|
+
('singular', '^(ox)$', NULL),
|
|
72
|
+
('singular', '(ax|test)is$', NULL),
|
|
73
|
+
('singular', '(octop|vir)us$', NULL),
|
|
74
|
+
('singular', '(alias|status|canvas|campus)$', NULL),
|
|
75
|
+
('singular', '^(summons)$', NULL),
|
|
76
|
+
('singular', '(bu)s$', NULL),
|
|
77
|
+
('singular', '(buffal|tomat|potat)o$', NULL),
|
|
78
|
+
('singular', '([ti])um$', NULL),
|
|
79
|
+
('singular', 'sis$', NULL),
|
|
80
|
+
('singular', '(?:([^f])fe|([lr])f)$', NULL),
|
|
81
|
+
('singular', '(hi|ti)ve$', NULL),
|
|
82
|
+
('singular', '([^aeiouy]|qu)y$', NULL),
|
|
83
|
+
('singular', '(x|ch|ss|sh)$', NULL),
|
|
84
|
+
('singular', '(matr)ix$', NULL),
|
|
85
|
+
('singular', '([m|l])ouse$', NULL),
|
|
86
|
+
('singular', '^foot$', NULL),
|
|
87
|
+
('singular', '^tooth$', NULL),
|
|
88
|
+
('singular', '^goose$', NULL),
|
|
89
|
+
('singular', '(quiz)$', NULL),
|
|
90
|
+
('singular', '^(whereas)$', NULL),
|
|
91
|
+
('singular', '^(criteri)on$', NULL),
|
|
92
|
+
('singular', '^genus$', NULL),
|
|
93
|
+
('singular', '^(m|wom)en$', E'\\1an'),
|
|
94
|
+
('singular', '(pe)ople$', E'\\1rson'),
|
|
95
|
+
('singular', '(child)ren$', E'\\1'),
|
|
96
|
+
('singular', '^genera$', E'genus'),
|
|
97
|
+
('singular', '^(criteri)a$', E'\\1on'),
|
|
98
|
+
('singular', '([ti])a$', E'\\1um'),
|
|
99
|
+
('singular', '((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$', E'\\1\\2sis'),
|
|
100
|
+
('singular', '(hi|ti)ves$', E'\\1ve'),
|
|
101
|
+
('singular', '(curve)s$', E'\\1'),
|
|
102
|
+
('singular', '([lr])ves$', E'\\1f'),
|
|
103
|
+
('singular', '([a])ves$', E'\\1ve'),
|
|
104
|
+
('singular', '([^fo])ves$', E'\\1fe'),
|
|
105
|
+
('singular', '(m)ovies$', E'\\1ovie'),
|
|
106
|
+
('singular', '([^aeiouy]|qu)ies$', E'\\1y'),
|
|
107
|
+
('singular', '(s)eries$', E'\\1eries'),
|
|
108
|
+
('singular', '(x|ch|ss|sh)es$', E'\\1'),
|
|
109
|
+
('singular', '([m|l])ice$', E'\\1ouse'),
|
|
110
|
+
('singular', '(bus)es$', E'\\1'),
|
|
111
|
+
('singular', '(o)es$', E'\\1'),
|
|
112
|
+
('singular', '(shoe)s$', E'\\1'),
|
|
113
|
+
('singular', '(cris|ax|test)es$', E'\\1is'),
|
|
114
|
+
('singular', '(octop|vir)i$', E'\\1us'),
|
|
115
|
+
('singular', '(alias|canvas|status|campus)es$', E'\\1'),
|
|
116
|
+
('singular', '^(summons)es$', E'\\1'),
|
|
117
|
+
('singular', '^(ox)en', E'\\1'),
|
|
118
|
+
('singular', '(matr)ices$', E'\\1ix'),
|
|
119
|
+
('singular', '(vert|ind)ices$', E'\\1ex'),
|
|
120
|
+
('singular', '^feet$', E'foot'),
|
|
121
|
+
('singular', '^teeth$', E'tooth'),
|
|
122
|
+
('singular', '^geese$', E'goose'),
|
|
123
|
+
('singular', '(quiz)zes$', E'\\1'),
|
|
124
|
+
('singular', '^(whereas)es$', E'\\1'),
|
|
125
|
+
('singular', 'ss$', E'ss'),
|
|
126
|
+
('singular', 's$', E'')
|
|
127
|
+
;
|
|
128
|
+
|
|
129
|
+
COMMIT;
|
package/deploy/schemas/inflection/tables/inflection_rules/indexes/inflection_rules_type_idx.sql
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
-- Deploy schemas/inflection/tables/inflection_rules/indexes/inflection_rules_type_idx to pg
|
|
2
|
+
|
|
3
|
+
-- requires: schemas/inflection/schema
|
|
4
|
+
-- requires: schemas/inflection/tables/inflection_rules/table
|
|
5
|
+
|
|
6
|
+
BEGIN;
|
|
7
|
+
|
|
8
|
+
CREATE INDEX inflection_rules_type_idx ON inflection.inflection_rules (
|
|
9
|
+
type
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
COMMIT;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
-- Deploy schemas/inflection/tables/inflection_rules/table to pg
|
|
2
|
+
|
|
3
|
+
-- requires: schemas/inflection/schema
|
|
4
|
+
|
|
5
|
+
BEGIN;
|
|
6
|
+
|
|
7
|
+
CREATE TABLE inflection.inflection_rules (
|
|
8
|
+
id uuid PRIMARY KEY DEFAULT uuid_generate_v4 (),
|
|
9
|
+
type text, -- singular, plural
|
|
10
|
+
test text,
|
|
11
|
+
replacement text
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
GRANT select on inflection.inflection_rules to PUBLIC;
|
|
15
|
+
|
|
16
|
+
COMMIT;
|
package/jest.config.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** @type {import('ts-jest').JestConfigWithTsJest} */
|
|
2
|
+
module.exports = {
|
|
3
|
+
preset: 'ts-jest',
|
|
4
|
+
testEnvironment: 'node',
|
|
5
|
+
|
|
6
|
+
// Match both __tests__ and colocated test files
|
|
7
|
+
testMatch: ['**/?(*.)+(test|spec).{ts,tsx,js,jsx}'],
|
|
8
|
+
|
|
9
|
+
// Ignore build artifacts and type declarations
|
|
10
|
+
testPathIgnorePatterns: ['/dist/', '\\.d\\.ts$'],
|
|
11
|
+
modulePathIgnorePatterns: ['<rootDir>/dist/'],
|
|
12
|
+
watchPathIgnorePatterns: ['/dist/'],
|
|
13
|
+
|
|
14
|
+
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
|
|
15
|
+
};
|
package/launchql.plan
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
%syntax-version=1.0.0
|
|
2
|
+
%project=launchql-inflection
|
|
3
|
+
%uri=launchql-inflection
|
|
4
|
+
|
|
5
|
+
schemas/inflection/schema 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/schema
|
|
6
|
+
schemas/inflection/procedures/no_consecutive_caps [schemas/inflection/schema] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/procedures/no_consecutive_caps
|
|
7
|
+
schemas/inflection/procedures/pg_slugify [schemas/inflection/schema schemas/inflection/procedures/no_consecutive_caps] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/procedures/pg_slugify
|
|
8
|
+
schemas/inflection/procedures/no_single_underscores [schemas/inflection/schema] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/procedures/no_single_underscores
|
|
9
|
+
schemas/inflection/procedures/underscore [schemas/inflection/schema schemas/inflection/procedures/pg_slugify schemas/inflection/procedures/no_single_underscores] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/procedures/underscore
|
|
10
|
+
schemas/inflection/procedures/camel [schemas/inflection/schema schemas/inflection/procedures/underscore] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/procedures/camel
|
|
11
|
+
schemas/inflection/procedures/dashed [schemas/inflection/schema schemas/inflection/procedures/underscore] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/procedures/dashed
|
|
12
|
+
schemas/inflection/procedures/pascal [schemas/inflection/schema schemas/inflection/procedures/camel] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/procedures/pascal
|
|
13
|
+
schemas/inflection/tables/inflection_rules/table [schemas/inflection/schema] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/tables/inflection_rules/table
|
|
14
|
+
schemas/inflection/procedures/plural [schemas/inflection/schema schemas/inflection/tables/inflection_rules/table] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/procedures/plural
|
|
15
|
+
schemas/inflection/procedures/uncountable_words [schemas/inflection/schema] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/procedures/uncountable_words
|
|
16
|
+
schemas/inflection/procedures/should_skip_uncountable [schemas/inflection/schema schemas/inflection/procedures/uncountable_words] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/procedures/should_skip_uncountable
|
|
17
|
+
schemas/inflection/procedures/singular [schemas/inflection/schema schemas/inflection/tables/inflection_rules/table] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/procedures/singular
|
|
18
|
+
schemas/inflection/procedures/slugify [schemas/inflection/schema] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/procedures/slugify
|
|
19
|
+
schemas/inflection/tables/inflection_rules/fixtures/1589249334312_fixture [schemas/inflection/schema schemas/inflection/tables/inflection_rules/table] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/tables/inflection_rules/fixtures/1589249334312_fixture
|
|
20
|
+
schemas/inflection/tables/inflection_rules/indexes/inflection_rules_type_idx [schemas/inflection/schema schemas/inflection/tables/inflection_rules/table] 2017-08-11T08:11:51Z skitch <skitch@5b0c196eeb62> # add schemas/inflection/tables/inflection_rules/indexes/inflection_rules_type_idx
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pgpm/inflection",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "String inflection utilities for PostgreSQL naming conventions",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"bundle": "lql package",
|
|
10
|
+
"test": "jest",
|
|
11
|
+
"test:watch": "jest --watch"
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"@pgpm/verify": "0.4.0"
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"@launchql/cli": "^4.9.0"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://github.com/launchql/extensions"
|
|
22
|
+
},
|
|
23
|
+
"homepage": "https://github.com/launchql/extensions",
|
|
24
|
+
"bugs": {
|
|
25
|
+
"url": "https://github.com/launchql/extensions/issues"
|
|
26
|
+
},
|
|
27
|
+
"gitHead": "cc9f52a335caa6e21ee7751b04b77c84ce6cb809"
|
|
28
|
+
}
|