node-type-registry 0.18.1 → 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 (151) 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.d.ts +10 -17
  20. package/blueprint-types.generated.js +1 -1
  21. package/codegen/generate-types.js +10 -21
  22. package/data/data-composite-field.js +27 -25
  23. package/data/data-direct-owner.js +24 -23
  24. package/data/data-entity-membership.js +24 -23
  25. package/data/data-force-current-user.js +17 -16
  26. package/data/data-id.js +16 -15
  27. package/data/data-immutable-fields.js +20 -19
  28. package/data/data-inflection.js +33 -32
  29. package/data/data-inherit-from-parent.js +31 -29
  30. package/data/data-job-trigger.js +87 -84
  31. package/data/data-jsonb.js +27 -26
  32. package/data/data-owned-fields.js +25 -23
  33. package/data/data-ownership-in-entity.js +21 -21
  34. package/data/data-peoplestamps.js +19 -19
  35. package/data/data-publishable.js +16 -16
  36. package/data/data-slug.js +21 -19
  37. package/data/data-soft-delete.js +14 -14
  38. package/data/data-status-field.js +32 -31
  39. package/data/data-tags.js +23 -22
  40. package/data/data-timestamps.js +15 -15
  41. package/data/index.d.ts +17 -17
  42. package/data/index.js +35 -35
  43. package/data/search-bm25.js +34 -33
  44. package/data/search-full-text.js +49 -47
  45. package/data/search-spatial-aggregate.js +77 -74
  46. package/data/search-spatial.js +51 -50
  47. package/data/search-trgm.js +20 -19
  48. package/data/search-unified.js +170 -162
  49. package/data/search-vector.js +104 -101
  50. package/data/table-organization-settings.js +13 -13
  51. package/data/table-user-profiles.js +13 -13
  52. package/data/table-user-settings.js +13 -13
  53. package/esm/authz/authz-allow-all.js +10 -10
  54. package/esm/authz/authz-composite.js +28 -28
  55. package/esm/authz/authz-deny-all.js +10 -10
  56. package/esm/authz/authz-direct-owner-any.js +19 -18
  57. package/esm/authz/authz-direct-owner.js +17 -16
  58. package/esm/authz/authz-entity-membership.js +39 -38
  59. package/esm/authz/authz-member-list.js +17 -16
  60. package/esm/authz/authz-membership-check.js +34 -34
  61. package/esm/authz/authz-not-read-only.js +23 -22
  62. package/esm/authz/authz-org-hierarchy.js +33 -31
  63. package/esm/authz/authz-peer-ownership.js +40 -39
  64. package/esm/authz/authz-publishable.js +26 -24
  65. package/esm/authz/authz-related-entity-membership.js +57 -55
  66. package/esm/authz/authz-related-member-list.js +35 -32
  67. package/esm/authz/authz-related-peer-ownership.js +62 -59
  68. package/esm/authz/authz-temporal.js +32 -30
  69. package/esm/authz/index.d.ts +9 -9
  70. package/esm/authz/index.js +9 -9
  71. package/esm/blueprint-types.generated.d.ts +10 -17
  72. package/esm/blueprint-types.generated.js +1 -1
  73. package/esm/codegen/generate-types.js +10 -21
  74. package/esm/data/data-composite-field.js +27 -25
  75. package/esm/data/data-direct-owner.js +24 -23
  76. package/esm/data/data-entity-membership.js +24 -23
  77. package/esm/data/data-force-current-user.js +17 -16
  78. package/esm/data/data-id.js +16 -15
  79. package/esm/data/data-immutable-fields.js +20 -19
  80. package/esm/data/data-inflection.js +33 -32
  81. package/esm/data/data-inherit-from-parent.js +31 -29
  82. package/esm/data/data-job-trigger.js +87 -84
  83. package/esm/data/data-jsonb.js +27 -26
  84. package/esm/data/data-owned-fields.js +25 -23
  85. package/esm/data/data-ownership-in-entity.js +21 -21
  86. package/esm/data/data-peoplestamps.js +19 -19
  87. package/esm/data/data-publishable.js +16 -16
  88. package/esm/data/data-slug.js +21 -19
  89. package/esm/data/data-soft-delete.js +14 -14
  90. package/esm/data/data-status-field.js +32 -31
  91. package/esm/data/data-tags.js +23 -22
  92. package/esm/data/data-timestamps.js +15 -15
  93. package/esm/data/index.d.ts +17 -17
  94. package/esm/data/index.js +17 -17
  95. package/esm/data/search-bm25.js +34 -33
  96. package/esm/data/search-full-text.js +49 -47
  97. package/esm/data/search-spatial-aggregate.js +77 -74
  98. package/esm/data/search-spatial.js +51 -50
  99. package/esm/data/search-trgm.js +20 -19
  100. package/esm/data/search-unified.js +170 -162
  101. package/esm/data/search-vector.js +104 -101
  102. package/esm/data/table-organization-settings.js +13 -13
  103. package/esm/data/table-user-profiles.js +13 -13
  104. package/esm/data/table-user-settings.js +13 -13
  105. package/esm/index.d.ts +3 -3
  106. package/esm/index.js +3 -3
  107. package/esm/module-presets/auth-email-magic.js +2 -2
  108. package/esm/module-presets/auth-email.js +8 -8
  109. package/esm/module-presets/auth-passkey.js +4 -4
  110. package/esm/module-presets/auth-sso.js +7 -7
  111. package/esm/module-presets/full.js +1 -1
  112. package/esm/module-presets/index.d.ts +5 -5
  113. package/esm/module-presets/index.js +4 -4
  114. package/esm/relation/index.d.ts +1 -1
  115. package/esm/relation/index.js +1 -1
  116. package/esm/relation/relation-belongs-to.js +41 -40
  117. package/esm/relation/relation-has-many.js +42 -41
  118. package/esm/relation/relation-has-one.js +42 -41
  119. package/esm/relation/relation-many-to-many.js +70 -68
  120. package/esm/relation/relation-spatial.js +54 -54
  121. package/esm/view/index.d.ts +3 -3
  122. package/esm/view/index.js +3 -3
  123. package/esm/view/view-aggregated.js +50 -48
  124. package/esm/view/view-composite.js +18 -18
  125. package/esm/view/view-filtered-table.js +37 -36
  126. package/esm/view/view-joined-tables.js +65 -61
  127. package/esm/view/view-table-projection.js +29 -28
  128. package/index.d.ts +3 -3
  129. package/index.js +3 -3
  130. package/module-presets/auth-email-magic.js +2 -2
  131. package/module-presets/auth-email.js +8 -8
  132. package/module-presets/auth-passkey.js +4 -4
  133. package/module-presets/auth-sso.js +7 -7
  134. package/module-presets/full.js +1 -1
  135. package/module-presets/index.d.ts +5 -5
  136. package/module-presets/index.js +7 -7
  137. package/package.json +2 -2
  138. package/relation/index.d.ts +1 -1
  139. package/relation/index.js +3 -3
  140. package/relation/relation-belongs-to.js +41 -40
  141. package/relation/relation-has-many.js +42 -41
  142. package/relation/relation-has-one.js +42 -41
  143. package/relation/relation-many-to-many.js +70 -68
  144. package/relation/relation-spatial.js +54 -54
  145. package/view/index.d.ts +3 -3
  146. package/view/index.js +7 -7
  147. package/view/view-aggregated.js +50 -48
  148. package/view/view-composite.js +18 -18
  149. package/view/view-filtered-table.js +37 -36
  150. package/view/view-joined-tables.js +65 -61
  151. package/view/view-table-projection.js +29 -28
@@ -1,27 +1,29 @@
1
1
  export const DataSlug = {
2
- "name": "DataSlug",
3
- "slug": "data_slug",
4
- "category": "data",
5
- "display_name": "Slug",
6
- "description": "Auto-generates URL-friendly slugs from field values on insert/update. Attaches BEFORE INSERT and BEFORE UPDATE triggers that call inflection.slugify() on the target field. References fields by name in data jsonb.",
7
- "parameter_schema": {
8
- "type": "object",
9
- "properties": {
10
- "field_name": {
11
- "type": "string",
12
- "description": "Name of the field to slugify"
2
+ name: 'DataSlug',
3
+ slug: 'data_slug',
4
+ category: 'data',
5
+ display_name: 'Slug',
6
+ description: 'Auto-generates URL-friendly slugs from field values on insert/update. Attaches BEFORE INSERT and BEFORE UPDATE triggers that call inflection.slugify() on the target field. References fields by name in data jsonb.',
7
+ parameter_schema: {
8
+ type: 'object',
9
+ properties: {
10
+ field_name: {
11
+ type: 'string',
12
+ format: 'column-ref',
13
+ description: 'Name of the field to slugify'
13
14
  },
14
- "source_field_name": {
15
- "type": "string",
16
- "description": "Optional source field name (defaults to field_name)"
15
+ source_field_name: {
16
+ type: 'string',
17
+ format: 'column-ref',
18
+ description: 'Optional source field name (defaults to field_name)'
17
19
  }
18
20
  },
19
- "required": [
20
- "field_name"
21
+ required: [
22
+ 'field_name'
21
23
  ]
22
24
  },
23
- "tags": [
24
- "transform",
25
- "behavior"
25
+ tags: [
26
+ 'transform',
27
+ 'behavior'
26
28
  ]
27
29
  };
@@ -1,20 +1,20 @@
1
1
  export const DataSoftDelete = {
2
- "name": "DataSoftDelete",
3
- "slug": "data_soft_delete",
4
- "category": "data",
5
- "display_name": "Soft Delete",
6
- "description": "Adds soft delete support with deleted_at and is_deleted 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: 'DataSoftDelete',
3
+ slug: 'data_soft_delete',
4
+ category: 'data',
5
+ display_name: 'Soft Delete',
6
+ description: 'Adds soft delete support with deleted_at and is_deleted 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
- "schema"
17
+ tags: [
18
+ 'schema'
19
19
  ]
20
20
  };
@@ -1,42 +1,43 @@
1
1
  export const DataStatusField = {
2
- "name": "DataStatusField",
3
- "slug": "data_status_field",
4
- "category": "data",
5
- "display_name": "Status Field",
6
- "description": "Adds a status column with B-tree index for efficient equality filtering and sorting. Optionally constrains values via CHECK constraint when allowed_values is provided.",
7
- "parameter_schema": {
8
- "type": "object",
9
- "properties": {
10
- "field_name": {
11
- "type": "string",
12
- "description": "Column name for the status field",
13
- "default": "status"
2
+ name: 'DataStatusField',
3
+ slug: 'data_status_field',
4
+ category: 'data',
5
+ display_name: 'Status Field',
6
+ description: 'Adds a status column with B-tree index for efficient equality filtering and sorting. Optionally constrains values via CHECK constraint when allowed_values is provided.',
7
+ parameter_schema: {
8
+ type: 'object',
9
+ properties: {
10
+ field_name: {
11
+ type: 'string',
12
+ format: 'column-ref',
13
+ description: 'Column name for the status field',
14
+ default: 'status'
14
15
  },
15
- "type": {
16
- "type": "string",
17
- "description": "Column type (text or citext)",
18
- "default": "text"
16
+ type: {
17
+ type: 'string',
18
+ description: 'Column type (text or citext)',
19
+ default: 'text'
19
20
  },
20
- "default_value": {
21
- "type": "string",
22
- "description": "Default value expression (e.g., active)"
21
+ default_value: {
22
+ type: 'string',
23
+ description: 'Default value expression (e.g., active)'
23
24
  },
24
- "is_required": {
25
- "type": "boolean",
26
- "description": "Whether the column has a NOT NULL constraint",
27
- "default": true
25
+ is_required: {
26
+ type: 'boolean',
27
+ description: 'Whether the column has a NOT NULL constraint',
28
+ default: true
28
29
  },
29
- "allowed_values": {
30
- "type": "array",
31
- "items": {
32
- "type": "string"
30
+ allowed_values: {
31
+ type: 'array',
32
+ items: {
33
+ type: 'string'
33
34
  },
34
- "description": "If provided, creates a CHECK constraint restricting the column to these values"
35
+ description: 'If provided, creates a CHECK constraint restricting the column to these values'
35
36
  }
36
37
  }
37
38
  },
38
- "tags": [
39
- "status",
40
- "schema"
39
+ tags: [
40
+ 'status',
41
+ 'schema'
41
42
  ]
42
43
  };
@@ -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
  };