node-type-registry 0.19.0 → 0.20.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.
Files changed (149) hide show
  1. package/authz/authz-allow-all.js +10 -10
  2. package/authz/authz-composite.js +28 -28
  3. package/authz/authz-deny-all.js +10 -10
  4. package/authz/authz-direct-owner-any.js +19 -18
  5. package/authz/authz-direct-owner.js +17 -16
  6. package/authz/authz-entity-membership.js +39 -38
  7. package/authz/authz-member-list.js +17 -16
  8. package/authz/authz-membership-check.js +34 -34
  9. package/authz/authz-not-read-only.js +23 -22
  10. package/authz/authz-org-hierarchy.js +33 -31
  11. package/authz/authz-peer-ownership.js +40 -39
  12. package/authz/authz-publishable.js +26 -24
  13. package/authz/authz-related-entity-membership.js +57 -55
  14. package/authz/authz-related-member-list.js +35 -32
  15. package/authz/authz-related-peer-ownership.js +62 -59
  16. package/authz/authz-temporal.js +32 -30
  17. package/authz/index.d.ts +9 -9
  18. package/authz/index.js +19 -19
  19. package/blueprint-types.generated.js +1 -1
  20. package/codegen/generate-types.js +1 -1
  21. package/data/data-composite-field.js +27 -25
  22. package/data/data-direct-owner.js +24 -23
  23. package/data/data-entity-membership.js +24 -23
  24. package/data/data-force-current-user.js +17 -16
  25. package/data/data-id.js +16 -15
  26. package/data/data-immutable-fields.js +20 -19
  27. package/data/data-inflection.js +33 -32
  28. package/data/data-inherit-from-parent.js +31 -29
  29. package/data/data-job-trigger.js +87 -84
  30. package/data/data-jsonb.js +27 -26
  31. package/data/data-owned-fields.js +25 -23
  32. package/data/data-ownership-in-entity.js +21 -21
  33. package/data/data-peoplestamps.js +19 -19
  34. package/data/data-publishable.js +16 -16
  35. package/data/data-slug.js +21 -19
  36. package/data/data-soft-delete.js +14 -14
  37. package/data/data-status-field.js +32 -31
  38. package/data/data-tags.js +23 -22
  39. package/data/data-timestamps.js +15 -15
  40. package/data/index.d.ts +17 -17
  41. package/data/index.js +35 -35
  42. package/data/search-bm25.js +34 -33
  43. package/data/search-full-text.js +49 -47
  44. package/data/search-spatial-aggregate.js +77 -74
  45. package/data/search-spatial.js +51 -50
  46. package/data/search-trgm.js +20 -19
  47. package/data/search-unified.js +170 -162
  48. package/data/search-vector.js +104 -101
  49. package/data/table-organization-settings.js +13 -13
  50. package/data/table-user-profiles.js +13 -13
  51. package/data/table-user-settings.js +13 -13
  52. package/esm/authz/authz-allow-all.js +10 -10
  53. package/esm/authz/authz-composite.js +28 -28
  54. package/esm/authz/authz-deny-all.js +10 -10
  55. package/esm/authz/authz-direct-owner-any.js +19 -18
  56. package/esm/authz/authz-direct-owner.js +17 -16
  57. package/esm/authz/authz-entity-membership.js +39 -38
  58. package/esm/authz/authz-member-list.js +17 -16
  59. package/esm/authz/authz-membership-check.js +34 -34
  60. package/esm/authz/authz-not-read-only.js +23 -22
  61. package/esm/authz/authz-org-hierarchy.js +33 -31
  62. package/esm/authz/authz-peer-ownership.js +40 -39
  63. package/esm/authz/authz-publishable.js +26 -24
  64. package/esm/authz/authz-related-entity-membership.js +57 -55
  65. package/esm/authz/authz-related-member-list.js +35 -32
  66. package/esm/authz/authz-related-peer-ownership.js +62 -59
  67. package/esm/authz/authz-temporal.js +32 -30
  68. package/esm/authz/index.d.ts +9 -9
  69. package/esm/authz/index.js +9 -9
  70. package/esm/blueprint-types.generated.js +1 -1
  71. package/esm/codegen/generate-types.js +1 -1
  72. package/esm/data/data-composite-field.js +27 -25
  73. package/esm/data/data-direct-owner.js +24 -23
  74. package/esm/data/data-entity-membership.js +24 -23
  75. package/esm/data/data-force-current-user.js +17 -16
  76. package/esm/data/data-id.js +16 -15
  77. package/esm/data/data-immutable-fields.js +20 -19
  78. package/esm/data/data-inflection.js +33 -32
  79. package/esm/data/data-inherit-from-parent.js +31 -29
  80. package/esm/data/data-job-trigger.js +87 -84
  81. package/esm/data/data-jsonb.js +27 -26
  82. package/esm/data/data-owned-fields.js +25 -23
  83. package/esm/data/data-ownership-in-entity.js +21 -21
  84. package/esm/data/data-peoplestamps.js +19 -19
  85. package/esm/data/data-publishable.js +16 -16
  86. package/esm/data/data-slug.js +21 -19
  87. package/esm/data/data-soft-delete.js +14 -14
  88. package/esm/data/data-status-field.js +32 -31
  89. package/esm/data/data-tags.js +23 -22
  90. package/esm/data/data-timestamps.js +15 -15
  91. package/esm/data/index.d.ts +17 -17
  92. package/esm/data/index.js +17 -17
  93. package/esm/data/search-bm25.js +34 -33
  94. package/esm/data/search-full-text.js +49 -47
  95. package/esm/data/search-spatial-aggregate.js +77 -74
  96. package/esm/data/search-spatial.js +51 -50
  97. package/esm/data/search-trgm.js +20 -19
  98. package/esm/data/search-unified.js +170 -162
  99. package/esm/data/search-vector.js +104 -101
  100. package/esm/data/table-organization-settings.js +13 -13
  101. package/esm/data/table-user-profiles.js +13 -13
  102. package/esm/data/table-user-settings.js +13 -13
  103. package/esm/index.d.ts +3 -3
  104. package/esm/index.js +3 -3
  105. package/esm/module-presets/auth-email-magic.js +2 -2
  106. package/esm/module-presets/auth-email.js +8 -8
  107. package/esm/module-presets/auth-passkey.js +4 -4
  108. package/esm/module-presets/auth-sso.js +7 -7
  109. package/esm/module-presets/full.js +1 -1
  110. package/esm/module-presets/index.d.ts +5 -5
  111. package/esm/module-presets/index.js +4 -4
  112. package/esm/relation/index.d.ts +1 -1
  113. package/esm/relation/index.js +1 -1
  114. package/esm/relation/relation-belongs-to.js +41 -40
  115. package/esm/relation/relation-has-many.js +42 -41
  116. package/esm/relation/relation-has-one.js +42 -41
  117. package/esm/relation/relation-many-to-many.js +70 -68
  118. package/esm/relation/relation-spatial.js +54 -54
  119. package/esm/view/index.d.ts +3 -3
  120. package/esm/view/index.js +3 -3
  121. package/esm/view/view-aggregated.js +50 -48
  122. package/esm/view/view-composite.js +18 -18
  123. package/esm/view/view-filtered-table.js +37 -36
  124. package/esm/view/view-joined-tables.js +65 -61
  125. package/esm/view/view-table-projection.js +29 -28
  126. package/index.d.ts +3 -3
  127. package/index.js +3 -3
  128. package/module-presets/auth-email-magic.js +2 -2
  129. package/module-presets/auth-email.js +8 -8
  130. package/module-presets/auth-passkey.js +4 -4
  131. package/module-presets/auth-sso.js +7 -7
  132. package/module-presets/full.js +1 -1
  133. package/module-presets/index.d.ts +5 -5
  134. package/module-presets/index.js +7 -7
  135. package/package.json +2 -2
  136. package/relation/index.d.ts +1 -1
  137. package/relation/index.js +3 -3
  138. package/relation/relation-belongs-to.js +41 -40
  139. package/relation/relation-has-many.js +42 -41
  140. package/relation/relation-has-one.js +42 -41
  141. package/relation/relation-many-to-many.js +70 -68
  142. package/relation/relation-spatial.js +54 -54
  143. package/view/index.d.ts +3 -3
  144. package/view/index.js +7 -7
  145. package/view/view-aggregated.js +50 -48
  146. package/view/view-composite.js +18 -18
  147. package/view/view-filtered-table.js +37 -36
  148. package/view/view-joined-tables.js +65 -61
  149. package/view/view-table-projection.js +29 -28
@@ -1,30 +1,31 @@
1
1
  export const DataTags = {
2
- "name": "DataTags",
3
- "slug": "data_tags",
4
- "category": "data",
5
- "display_name": "Tags",
6
- "description": "Adds a citext[] tags column with GIN index for efficient array containment queries (@>, &&). Standard tagging pattern for categorization and filtering.",
7
- "parameter_schema": {
8
- "type": "object",
9
- "properties": {
10
- "field_name": {
11
- "type": "string",
12
- "description": "Column name for the tags array",
13
- "default": "tags"
2
+ name: 'DataTags',
3
+ slug: 'data_tags',
4
+ category: 'data',
5
+ display_name: 'Tags',
6
+ description: 'Adds a citext[] tags column with GIN index for efficient array containment queries (@>, &&). Standard tagging pattern for categorization and filtering.',
7
+ parameter_schema: {
8
+ type: 'object',
9
+ properties: {
10
+ field_name: {
11
+ type: 'string',
12
+ format: 'column-ref',
13
+ description: 'Column name for the tags array',
14
+ default: 'tags'
14
15
  },
15
- "default_value": {
16
- "type": "string",
17
- "description": "Default value expression for the tags column"
16
+ default_value: {
17
+ type: 'string',
18
+ description: 'Default value expression for the tags column'
18
19
  },
19
- "is_required": {
20
- "type": "boolean",
21
- "description": "Whether the column has a NOT NULL constraint",
22
- "default": false
20
+ is_required: {
21
+ type: 'boolean',
22
+ description: 'Whether the column has a NOT NULL constraint',
23
+ default: false
23
24
  }
24
25
  }
25
26
  },
26
- "tags": [
27
- "tags",
28
- "schema"
27
+ tags: [
28
+ 'tags',
29
+ 'schema'
29
30
  ]
30
31
  };
@@ -1,21 +1,21 @@
1
1
  export const DataTimestamps = {
2
- "name": "DataTimestamps",
3
- "slug": "data_timestamps",
4
- "category": "data",
5
- "display_name": "Timestamps",
6
- "description": "Adds automatic timestamp tracking with created_at and updated_at columns.",
7
- "parameter_schema": {
8
- "type": "object",
9
- "properties": {
10
- "include_id": {
11
- "type": "boolean",
12
- "description": "If true, also adds a UUID primary key column with auto-generation",
13
- "default": true
2
+ name: 'DataTimestamps',
3
+ slug: 'data_timestamps',
4
+ category: 'data',
5
+ display_name: 'Timestamps',
6
+ description: 'Adds automatic timestamp tracking with created_at and updated_at columns.',
7
+ parameter_schema: {
8
+ type: 'object',
9
+ properties: {
10
+ include_id: {
11
+ type: 'boolean',
12
+ description: 'If true, also adds a UUID primary key column with auto-generation',
13
+ default: true
14
14
  }
15
15
  }
16
16
  },
17
- "tags": [
18
- "timestamps",
19
- "schema"
17
+ tags: [
18
+ 'timestamps',
19
+ 'schema'
20
20
  ]
21
21
  };
@@ -1,29 +1,29 @@
1
- export { DataId } from './data-id';
1
+ export { DataCompositeField } from './data-composite-field';
2
2
  export { DataDirectOwner } from './data-direct-owner';
3
3
  export { DataEntityMembership } from './data-entity-membership';
4
+ export { DataForceCurrentUser } from './data-force-current-user';
5
+ export { DataId } from './data-id';
6
+ export { DataImmutableFields } from './data-immutable-fields';
7
+ export { DataInflection } from './data-inflection';
8
+ export { DataInheritFromParent } from './data-inherit-from-parent';
9
+ export { DataJobTrigger } from './data-job-trigger';
10
+ export { DataJsonb } from './data-jsonb';
11
+ export { DataOwnedFields } from './data-owned-fields';
4
12
  export { DataOwnershipInEntity } from './data-ownership-in-entity';
5
- export { DataTimestamps } from './data-timestamps';
6
13
  export { DataPeoplestamps } from './data-peoplestamps';
7
14
  export { DataPublishable } from './data-publishable';
15
+ export { DataSlug } from './data-slug';
8
16
  export { DataSoftDelete } from './data-soft-delete';
9
- export { SearchVector } from './search-vector';
10
- export { SearchFullText } from './search-full-text';
17
+ export { DataStatusField } from './data-status-field';
18
+ export { DataTags } from './data-tags';
19
+ export { DataTimestamps } from './data-timestamps';
11
20
  export { SearchBm25 } from './search-bm25';
12
- export { SearchUnified } from './search-unified';
21
+ export { SearchFullText } from './search-full-text';
13
22
  export { SearchSpatial } from './search-spatial';
14
23
  export { SearchSpatialAggregate } from './search-spatial-aggregate';
15
- export { DataJobTrigger } from './data-job-trigger';
16
- export { DataTags } from './data-tags';
17
- export { DataStatusField } from './data-status-field';
18
- export { DataJsonb } from './data-jsonb';
19
24
  export { SearchTrgm } from './search-trgm';
20
- export { DataSlug } from './data-slug';
21
- export { DataInflection } from './data-inflection';
22
- export { DataOwnedFields } from './data-owned-fields';
23
- export { DataInheritFromParent } from './data-inherit-from-parent';
24
- export { DataForceCurrentUser } from './data-force-current-user';
25
- export { DataImmutableFields } from './data-immutable-fields';
26
- export { DataCompositeField } from './data-composite-field';
27
- export { TableUserProfiles } from './table-user-profiles';
25
+ export { SearchUnified } from './search-unified';
26
+ export { SearchVector } from './search-vector';
28
27
  export { TableOrganizationSettings } from './table-organization-settings';
28
+ export { TableUserProfiles } from './table-user-profiles';
29
29
  export { TableUserSettings } from './table-user-settings';
package/esm/data/index.js CHANGED
@@ -1,29 +1,29 @@
1
- export { DataId } from './data-id';
1
+ export { DataCompositeField } from './data-composite-field';
2
2
  export { DataDirectOwner } from './data-direct-owner';
3
3
  export { DataEntityMembership } from './data-entity-membership';
4
+ export { DataForceCurrentUser } from './data-force-current-user';
5
+ export { DataId } from './data-id';
6
+ export { DataImmutableFields } from './data-immutable-fields';
7
+ export { DataInflection } from './data-inflection';
8
+ export { DataInheritFromParent } from './data-inherit-from-parent';
9
+ export { DataJobTrigger } from './data-job-trigger';
10
+ export { DataJsonb } from './data-jsonb';
11
+ export { DataOwnedFields } from './data-owned-fields';
4
12
  export { DataOwnershipInEntity } from './data-ownership-in-entity';
5
- export { DataTimestamps } from './data-timestamps';
6
13
  export { DataPeoplestamps } from './data-peoplestamps';
7
14
  export { DataPublishable } from './data-publishable';
15
+ export { DataSlug } from './data-slug';
8
16
  export { DataSoftDelete } from './data-soft-delete';
9
- export { SearchVector } from './search-vector';
10
- export { SearchFullText } from './search-full-text';
17
+ export { DataStatusField } from './data-status-field';
18
+ export { DataTags } from './data-tags';
19
+ export { DataTimestamps } from './data-timestamps';
11
20
  export { SearchBm25 } from './search-bm25';
12
- export { SearchUnified } from './search-unified';
21
+ export { SearchFullText } from './search-full-text';
13
22
  export { SearchSpatial } from './search-spatial';
14
23
  export { SearchSpatialAggregate } from './search-spatial-aggregate';
15
- export { DataJobTrigger } from './data-job-trigger';
16
- export { DataTags } from './data-tags';
17
- export { DataStatusField } from './data-status-field';
18
- export { DataJsonb } from './data-jsonb';
19
24
  export { SearchTrgm } from './search-trgm';
20
- export { DataSlug } from './data-slug';
21
- export { DataInflection } from './data-inflection';
22
- export { DataOwnedFields } from './data-owned-fields';
23
- export { DataInheritFromParent } from './data-inherit-from-parent';
24
- export { DataForceCurrentUser } from './data-force-current-user';
25
- export { DataImmutableFields } from './data-immutable-fields';
26
- export { DataCompositeField } from './data-composite-field';
27
- export { TableUserProfiles } from './table-user-profiles';
25
+ export { SearchUnified } from './search-unified';
26
+ export { SearchVector } from './search-vector';
28
27
  export { TableOrganizationSettings } from './table-organization-settings';
28
+ export { TableUserProfiles } from './table-user-profiles';
29
29
  export { TableUserSettings } from './table-user-settings';
@@ -1,44 +1,45 @@
1
1
  export const SearchBm25 = {
2
- "name": "SearchBm25",
3
- "slug": "search_bm25",
4
- "category": "search",
5
- "display_name": "BM25 Search",
6
- "description": "Creates a BM25 index on an existing text column using pg_textsearch. Enables statistical relevance ranking with configurable k1 and b parameters. The BM25 index is auto-detected by graphile-search.",
7
- "parameter_schema": {
8
- "type": "object",
9
- "properties": {
10
- "field_name": {
11
- "type": "string",
12
- "description": "Name of existing text column to index with BM25"
2
+ name: 'SearchBm25',
3
+ slug: 'search_bm25',
4
+ category: 'search',
5
+ display_name: 'BM25 Search',
6
+ description: 'Creates a BM25 index on an existing text column using pg_textsearch. Enables statistical relevance ranking with configurable k1 and b parameters. The BM25 index is auto-detected by graphile-search.',
7
+ parameter_schema: {
8
+ type: 'object',
9
+ properties: {
10
+ field_name: {
11
+ type: 'string',
12
+ format: 'column-ref',
13
+ description: 'Name of existing text column to index with BM25'
13
14
  },
14
- "text_config": {
15
- "type": "string",
16
- "description": "PostgreSQL text search configuration for BM25",
17
- "default": "english"
15
+ text_config: {
16
+ type: 'string',
17
+ description: 'PostgreSQL text search configuration for BM25',
18
+ default: 'english'
18
19
  },
19
- "k1": {
20
- "type": "number",
21
- "description": "BM25 k1 parameter: term frequency saturation (typical: 1.2-2.0)",
22
- "default": null
20
+ k1: {
21
+ type: 'number',
22
+ description: 'BM25 k1 parameter: term frequency saturation (typical: 1.2-2.0)',
23
+ default: null
23
24
  },
24
- "b": {
25
- "type": "number",
26
- "description": "BM25 b parameter: document length normalization (0=none, 1=full, typical: 0.75)",
27
- "default": null
25
+ b: {
26
+ type: 'number',
27
+ description: 'BM25 b parameter: document length normalization (0=none, 1=full, typical: 0.75)',
28
+ default: null
28
29
  },
29
- "search_score_weight": {
30
- "type": "number",
31
- "description": "Weight for this algorithm in composite searchScore",
32
- "default": 1
30
+ search_score_weight: {
31
+ type: 'number',
32
+ description: 'Weight for this algorithm in composite searchScore',
33
+ default: 1
33
34
  }
34
35
  },
35
- "required": [
36
- "field_name"
36
+ required: [
37
+ 'field_name'
37
38
  ]
38
39
  },
39
- "tags": [
40
- "search",
41
- "bm25",
42
- "schema"
40
+ tags: [
41
+ 'search',
42
+ 'bm25',
43
+ 'schema'
43
44
  ]
44
45
  };
@@ -1,63 +1,65 @@
1
1
  export const SearchFullText = {
2
- "name": "SearchFullText",
3
- "slug": "search_full_text",
4
- "category": "search",
5
- "display_name": "Full-Text Search",
6
- "description": "Adds a tsvector column with GIN index and automatic trigger population from source fields. Enables PostgreSQL full-text search with configurable weights and language support. Leverages the existing metaschema full_text_search infrastructure.",
7
- "parameter_schema": {
8
- "type": "object",
9
- "properties": {
10
- "field_name": {
11
- "type": "string",
12
- "description": "Name of the tsvector column",
13
- "default": "search"
2
+ name: 'SearchFullText',
3
+ slug: 'search_full_text',
4
+ category: 'search',
5
+ display_name: 'Full-Text Search',
6
+ description: 'Adds a tsvector column with GIN index and automatic trigger population from source fields. Enables PostgreSQL full-text search with configurable weights and language support. Leverages the existing metaschema full_text_search infrastructure.',
7
+ parameter_schema: {
8
+ type: 'object',
9
+ properties: {
10
+ field_name: {
11
+ type: 'string',
12
+ format: 'column-ref',
13
+ description: 'Name of the tsvector column',
14
+ default: 'search'
14
15
  },
15
- "source_fields": {
16
- "type": "array",
17
- "items": {
18
- "type": "object",
19
- "properties": {
20
- "field": {
21
- "type": "string",
22
- "description": "Name of the source column"
16
+ source_fields: {
17
+ type: 'array',
18
+ items: {
19
+ type: 'object',
20
+ properties: {
21
+ field: {
22
+ type: 'string',
23
+ format: 'column-ref',
24
+ description: 'Name of the source column'
23
25
  },
24
- "weight": {
25
- "type": "string",
26
- "enum": [
27
- "A",
28
- "B",
29
- "C",
30
- "D"
26
+ weight: {
27
+ type: 'string',
28
+ enum: [
29
+ 'A',
30
+ 'B',
31
+ 'C',
32
+ 'D'
31
33
  ],
32
- "description": "tsvector weight class (A=highest, D=lowest)",
33
- "default": "D"
34
+ description: 'tsvector weight class (A=highest, D=lowest)',
35
+ default: 'D'
34
36
  },
35
- "lang": {
36
- "type": "string",
37
- "description": "PostgreSQL text search configuration",
38
- "default": "english"
37
+ lang: {
38
+ type: 'string',
39
+ description: 'PostgreSQL text search configuration',
40
+ default: 'english'
39
41
  }
40
42
  },
41
- "required": [
42
- "field"
43
+ required: [
44
+ 'field'
43
45
  ]
44
46
  },
45
- "description": "Source columns that feed the tsvector. Each has a field name, weight (A-D), and language config."
47
+ description: 'Source columns that feed the tsvector. Each has a field name, weight (A-D), and language config.'
46
48
  },
47
- "search_score_weight": {
48
- "type": "number",
49
- "description": "Weight for this algorithm in composite searchScore",
50
- "default": 1
49
+ search_score_weight: {
50
+ type: 'number',
51
+ description: 'Weight for this algorithm in composite searchScore',
52
+ default: 1
51
53
  }
52
54
  },
53
- "required": [
54
- "source_fields"
55
+ required: [
56
+ 'source_fields'
55
57
  ]
56
58
  },
57
- "tags": [
58
- "search",
59
- "fts",
60
- "tsvector",
61
- "schema"
59
+ tags: [
60
+ 'search',
61
+ 'fts',
62
+ 'tsvector',
63
+ 'schema'
62
64
  ]
63
65
  };
@@ -1,97 +1,100 @@
1
1
  export const SearchSpatialAggregate = {
2
- "name": "SearchSpatialAggregate",
3
- "slug": "search_spatial_aggregate",
4
- "category": "search",
5
- "display_name": "Spatial Aggregate Search",
6
- "description": "Creates a derived/materialized geometry field on the parent table that automatically aggregates geometries from a source (child) table via triggers. When child rows are inserted/updated/deleted, the parent aggregate field is recalculated using the specified PostGIS aggregation function (ST_Union, ST_Collect, ST_ConvexHull, ST_ConcaveHull). Useful for materializing spatial boundaries from collections of points or polygons.",
7
- "parameter_schema": {
8
- "type": "object",
9
- "properties": {
10
- "field_name": {
11
- "type": "string",
12
- "description": "Name of the aggregate geometry column on the parent table",
13
- "default": "geom_aggregate"
2
+ name: 'SearchSpatialAggregate',
3
+ slug: 'search_spatial_aggregate',
4
+ category: 'search',
5
+ display_name: 'Spatial Aggregate Search',
6
+ description: 'Creates a derived/materialized geometry field on the parent table that automatically aggregates geometries from a source (child) table via triggers. When child rows are inserted/updated/deleted, the parent aggregate field is recalculated using the specified PostGIS aggregation function (ST_Union, ST_Collect, ST_ConvexHull, ST_ConcaveHull). Useful for materializing spatial boundaries from collections of points or polygons.',
7
+ parameter_schema: {
8
+ type: 'object',
9
+ properties: {
10
+ field_name: {
11
+ type: 'string',
12
+ format: 'column-ref',
13
+ description: 'Name of the aggregate geometry column on the parent table',
14
+ default: 'geom_aggregate'
14
15
  },
15
- "source_table_id": {
16
- "type": "string",
17
- "format": "uuid",
18
- "description": "UUID of the source (child) table containing individual geometries"
16
+ source_table_id: {
17
+ type: 'string',
18
+ format: 'uuid',
19
+ description: 'UUID of the source (child) table containing individual geometries'
19
20
  },
20
- "source_geom_field": {
21
- "type": "string",
22
- "description": "Name of the geometry column on the source table",
23
- "default": "geom"
21
+ source_geom_field: {
22
+ type: 'string',
23
+ format: 'column-ref',
24
+ description: 'Name of the geometry column on the source table',
25
+ default: 'geom'
24
26
  },
25
- "source_fk_field": {
26
- "type": "string",
27
- "description": "Name of the foreign key column on the source table pointing to the parent"
27
+ source_fk_field: {
28
+ type: 'string',
29
+ format: 'column-ref',
30
+ description: 'Name of the foreign key column on the source table pointing to the parent'
28
31
  },
29
- "aggregate_function": {
30
- "type": "string",
31
- "enum": [
32
- "union",
33
- "collect",
34
- "convex_hull",
35
- "concave_hull"
32
+ aggregate_function: {
33
+ type: 'string',
34
+ enum: [
35
+ 'union',
36
+ 'collect',
37
+ 'convex_hull',
38
+ 'concave_hull'
36
39
  ],
37
- "description": "PostGIS aggregation function: union (ST_Union, merges overlapping), collect (ST_Collect, groups without merging), convex_hull (smallest convex polygon), concave_hull (tighter boundary)",
38
- "default": "union"
40
+ description: 'PostGIS aggregation function: union (ST_Union, merges overlapping), collect (ST_Collect, groups without merging), convex_hull (smallest convex polygon), concave_hull (tighter boundary)',
41
+ default: 'union'
39
42
  },
40
- "geometry_type": {
41
- "type": "string",
42
- "enum": [
43
- "Point",
44
- "LineString",
45
- "Polygon",
46
- "MultiPoint",
47
- "MultiLineString",
48
- "MultiPolygon",
49
- "GeometryCollection",
50
- "Geometry"
43
+ geometry_type: {
44
+ type: 'string',
45
+ enum: [
46
+ 'Point',
47
+ 'LineString',
48
+ 'Polygon',
49
+ 'MultiPoint',
50
+ 'MultiLineString',
51
+ 'MultiPolygon',
52
+ 'GeometryCollection',
53
+ 'Geometry'
51
54
  ],
52
- "description": "Output geometry type constraint for the aggregate field",
53
- "default": "MultiPolygon"
55
+ description: 'Output geometry type constraint for the aggregate field',
56
+ default: 'MultiPolygon'
54
57
  },
55
- "srid": {
56
- "type": "integer",
57
- "description": "Spatial Reference System Identifier (e.g. 4326 for WGS84)",
58
- "default": 4326
58
+ srid: {
59
+ type: 'integer',
60
+ description: 'Spatial Reference System Identifier (e.g. 4326 for WGS84)',
61
+ default: 4326
59
62
  },
60
- "dimension": {
61
- "type": "integer",
62
- "enum": [
63
+ dimension: {
64
+ type: 'integer',
65
+ enum: [
63
66
  2,
64
67
  3,
65
68
  4
66
69
  ],
67
- "description": "Coordinate dimension (2=XY, 3=XYZ, 4=XYZM)",
68
- "default": 2
70
+ description: 'Coordinate dimension (2=XY, 3=XYZ, 4=XYZM)',
71
+ default: 2
69
72
  },
70
- "use_geography": {
71
- "type": "boolean",
72
- "description": "Use geography type instead of geometry",
73
- "default": false
73
+ use_geography: {
74
+ type: 'boolean',
75
+ description: 'Use geography type instead of geometry',
76
+ default: false
74
77
  },
75
- "index_method": {
76
- "type": "string",
77
- "enum": [
78
- "gist",
79
- "spgist"
78
+ index_method: {
79
+ type: 'string',
80
+ enum: [
81
+ 'gist',
82
+ 'spgist'
80
83
  ],
81
- "description": "Spatial index method for the aggregate field",
82
- "default": "gist"
84
+ description: 'Spatial index method for the aggregate field',
85
+ default: 'gist'
83
86
  }
84
87
  },
85
- "required": [
86
- "source_table_id",
87
- "source_fk_field"
88
+ required: [
89
+ 'source_table_id',
90
+ 'source_fk_field'
88
91
  ]
89
92
  },
90
- "tags": [
91
- "spatial",
92
- "postgis",
93
- "geometry",
94
- "aggregate",
95
- "schema"
93
+ tags: [
94
+ 'spatial',
95
+ 'postgis',
96
+ 'geometry',
97
+ 'aggregate',
98
+ 'schema'
96
99
  ]
97
100
  };