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.
- package/authz/authz-allow-all.js +10 -10
- package/authz/authz-composite.js +28 -28
- package/authz/authz-deny-all.js +10 -10
- package/authz/authz-direct-owner-any.js +19 -18
- package/authz/authz-direct-owner.js +17 -16
- package/authz/authz-entity-membership.js +39 -38
- package/authz/authz-member-list.js +17 -16
- package/authz/authz-membership-check.js +34 -34
- package/authz/authz-not-read-only.js +23 -22
- package/authz/authz-org-hierarchy.js +33 -31
- package/authz/authz-peer-ownership.js +40 -39
- package/authz/authz-publishable.js +26 -24
- package/authz/authz-related-entity-membership.js +57 -55
- package/authz/authz-related-member-list.js +35 -32
- package/authz/authz-related-peer-ownership.js +62 -59
- package/authz/authz-temporal.js +32 -30
- package/authz/index.d.ts +9 -9
- package/authz/index.js +19 -19
- package/blueprint-types.generated.d.ts +10 -17
- package/blueprint-types.generated.js +1 -1
- package/codegen/generate-types.js +10 -21
- package/data/data-composite-field.js +27 -25
- package/data/data-direct-owner.js +24 -23
- package/data/data-entity-membership.js +24 -23
- package/data/data-force-current-user.js +17 -16
- package/data/data-id.js +16 -15
- package/data/data-immutable-fields.js +20 -19
- package/data/data-inflection.js +33 -32
- package/data/data-inherit-from-parent.js +31 -29
- package/data/data-job-trigger.js +87 -84
- package/data/data-jsonb.js +27 -26
- package/data/data-owned-fields.js +25 -23
- package/data/data-ownership-in-entity.js +21 -21
- package/data/data-peoplestamps.js +19 -19
- package/data/data-publishable.js +16 -16
- package/data/data-slug.js +21 -19
- package/data/data-soft-delete.js +14 -14
- package/data/data-status-field.js +32 -31
- package/data/data-tags.js +23 -22
- package/data/data-timestamps.js +15 -15
- package/data/index.d.ts +17 -17
- package/data/index.js +35 -35
- package/data/search-bm25.js +34 -33
- package/data/search-full-text.js +49 -47
- package/data/search-spatial-aggregate.js +77 -74
- package/data/search-spatial.js +51 -50
- package/data/search-trgm.js +20 -19
- package/data/search-unified.js +170 -162
- package/data/search-vector.js +104 -101
- package/data/table-organization-settings.js +13 -13
- package/data/table-user-profiles.js +13 -13
- package/data/table-user-settings.js +13 -13
- package/esm/authz/authz-allow-all.js +10 -10
- package/esm/authz/authz-composite.js +28 -28
- package/esm/authz/authz-deny-all.js +10 -10
- package/esm/authz/authz-direct-owner-any.js +19 -18
- package/esm/authz/authz-direct-owner.js +17 -16
- package/esm/authz/authz-entity-membership.js +39 -38
- package/esm/authz/authz-member-list.js +17 -16
- package/esm/authz/authz-membership-check.js +34 -34
- package/esm/authz/authz-not-read-only.js +23 -22
- package/esm/authz/authz-org-hierarchy.js +33 -31
- package/esm/authz/authz-peer-ownership.js +40 -39
- package/esm/authz/authz-publishable.js +26 -24
- package/esm/authz/authz-related-entity-membership.js +57 -55
- package/esm/authz/authz-related-member-list.js +35 -32
- package/esm/authz/authz-related-peer-ownership.js +62 -59
- package/esm/authz/authz-temporal.js +32 -30
- package/esm/authz/index.d.ts +9 -9
- package/esm/authz/index.js +9 -9
- package/esm/blueprint-types.generated.d.ts +10 -17
- package/esm/blueprint-types.generated.js +1 -1
- package/esm/codegen/generate-types.js +10 -21
- package/esm/data/data-composite-field.js +27 -25
- package/esm/data/data-direct-owner.js +24 -23
- package/esm/data/data-entity-membership.js +24 -23
- package/esm/data/data-force-current-user.js +17 -16
- package/esm/data/data-id.js +16 -15
- package/esm/data/data-immutable-fields.js +20 -19
- package/esm/data/data-inflection.js +33 -32
- package/esm/data/data-inherit-from-parent.js +31 -29
- package/esm/data/data-job-trigger.js +87 -84
- package/esm/data/data-jsonb.js +27 -26
- package/esm/data/data-owned-fields.js +25 -23
- package/esm/data/data-ownership-in-entity.js +21 -21
- package/esm/data/data-peoplestamps.js +19 -19
- package/esm/data/data-publishable.js +16 -16
- package/esm/data/data-slug.js +21 -19
- package/esm/data/data-soft-delete.js +14 -14
- package/esm/data/data-status-field.js +32 -31
- package/esm/data/data-tags.js +23 -22
- package/esm/data/data-timestamps.js +15 -15
- package/esm/data/index.d.ts +17 -17
- package/esm/data/index.js +17 -17
- package/esm/data/search-bm25.js +34 -33
- package/esm/data/search-full-text.js +49 -47
- package/esm/data/search-spatial-aggregate.js +77 -74
- package/esm/data/search-spatial.js +51 -50
- package/esm/data/search-trgm.js +20 -19
- package/esm/data/search-unified.js +170 -162
- package/esm/data/search-vector.js +104 -101
- package/esm/data/table-organization-settings.js +13 -13
- package/esm/data/table-user-profiles.js +13 -13
- package/esm/data/table-user-settings.js +13 -13
- package/esm/index.d.ts +3 -3
- package/esm/index.js +3 -3
- package/esm/module-presets/auth-email-magic.js +2 -2
- package/esm/module-presets/auth-email.js +8 -8
- package/esm/module-presets/auth-passkey.js +4 -4
- package/esm/module-presets/auth-sso.js +7 -7
- package/esm/module-presets/full.js +1 -1
- package/esm/module-presets/index.d.ts +5 -5
- package/esm/module-presets/index.js +4 -4
- package/esm/relation/index.d.ts +1 -1
- package/esm/relation/index.js +1 -1
- package/esm/relation/relation-belongs-to.js +41 -40
- package/esm/relation/relation-has-many.js +42 -41
- package/esm/relation/relation-has-one.js +42 -41
- package/esm/relation/relation-many-to-many.js +70 -68
- package/esm/relation/relation-spatial.js +54 -54
- package/esm/view/index.d.ts +3 -3
- package/esm/view/index.js +3 -3
- package/esm/view/view-aggregated.js +50 -48
- package/esm/view/view-composite.js +18 -18
- package/esm/view/view-filtered-table.js +37 -36
- package/esm/view/view-joined-tables.js +65 -61
- package/esm/view/view-table-projection.js +29 -28
- package/index.d.ts +3 -3
- package/index.js +3 -3
- package/module-presets/auth-email-magic.js +2 -2
- package/module-presets/auth-email.js +8 -8
- package/module-presets/auth-passkey.js +4 -4
- package/module-presets/auth-sso.js +7 -7
- package/module-presets/full.js +1 -1
- package/module-presets/index.d.ts +5 -5
- package/module-presets/index.js +7 -7
- package/package.json +2 -2
- package/relation/index.d.ts +1 -1
- package/relation/index.js +3 -3
- package/relation/relation-belongs-to.js +41 -40
- package/relation/relation-has-many.js +42 -41
- package/relation/relation-has-one.js +42 -41
- package/relation/relation-many-to-many.js +70 -68
- package/relation/relation-spatial.js +54 -54
- package/view/index.d.ts +3 -3
- package/view/index.js +7 -7
- package/view/view-aggregated.js +50 -48
- package/view/view-composite.js +18 -18
- package/view/view-filtered-table.js +37 -36
- package/view/view-joined-tables.js +65 -61
- package/view/view-table-projection.js +29 -28
package/esm/data/data-slug.js
CHANGED
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
export const DataSlug = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
+
required: [
|
|
22
|
+
'field_name'
|
|
21
23
|
]
|
|
22
24
|
},
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
tags: [
|
|
26
|
+
'transform',
|
|
27
|
+
'behavior'
|
|
26
28
|
]
|
|
27
29
|
};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
export const DataSoftDelete = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
18
|
-
|
|
17
|
+
tags: [
|
|
18
|
+
'schema'
|
|
19
19
|
]
|
|
20
20
|
};
|
|
@@ -1,42 +1,43 @@
|
|
|
1
1
|
export const DataStatusField = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
type: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
description: 'Column type (text or citext)',
|
|
19
|
+
default: 'text'
|
|
19
20
|
},
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
default_value: {
|
|
22
|
+
type: 'string',
|
|
23
|
+
description: 'Default value expression (e.g., active)'
|
|
23
24
|
},
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
is_required: {
|
|
26
|
+
type: 'boolean',
|
|
27
|
+
description: 'Whether the column has a NOT NULL constraint',
|
|
28
|
+
default: true
|
|
28
29
|
},
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
allowed_values: {
|
|
31
|
+
type: 'array',
|
|
32
|
+
items: {
|
|
33
|
+
type: 'string'
|
|
33
34
|
},
|
|
34
|
-
|
|
35
|
+
description: 'If provided, creates a CHECK constraint restricting the column to these values'
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
38
|
},
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
tags: [
|
|
40
|
+
'status',
|
|
41
|
+
'schema'
|
|
41
42
|
]
|
|
42
43
|
};
|
package/esm/data/data-tags.js
CHANGED
|
@@ -1,30 +1,31 @@
|
|
|
1
1
|
export const DataTags = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
default_value: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
description: 'Default value expression for the tags column'
|
|
18
19
|
},
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
tags: [
|
|
28
|
+
'tags',
|
|
29
|
+
'schema'
|
|
29
30
|
]
|
|
30
31
|
};
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
export const DataTimestamps = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
tags: [
|
|
18
|
+
'timestamps',
|
|
19
|
+
'schema'
|
|
20
20
|
]
|
|
21
21
|
};
|
package/esm/data/index.d.ts
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
export {
|
|
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 {
|
|
10
|
-
export {
|
|
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 {
|
|
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 {
|
|
21
|
-
export {
|
|
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 {
|
|
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 {
|
|
10
|
-
export {
|
|
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 {
|
|
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 {
|
|
21
|
-
export {
|
|
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/search-bm25.js
CHANGED
|
@@ -1,44 +1,45 @@
|
|
|
1
1
|
export const SearchBm25 = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
text_config: {
|
|
16
|
+
type: 'string',
|
|
17
|
+
description: 'PostgreSQL text search configuration for BM25',
|
|
18
|
+
default: 'english'
|
|
18
19
|
},
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
k1: {
|
|
21
|
+
type: 'number',
|
|
22
|
+
description: 'BM25 k1 parameter: term frequency saturation (typical: 1.2-2.0)',
|
|
23
|
+
default: null
|
|
23
24
|
},
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
search_score_weight: {
|
|
31
|
+
type: 'number',
|
|
32
|
+
description: 'Weight for this algorithm in composite searchScore',
|
|
33
|
+
default: 1
|
|
33
34
|
}
|
|
34
35
|
},
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
required: [
|
|
37
|
+
'field_name'
|
|
37
38
|
]
|
|
38
39
|
},
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
tags: [
|
|
41
|
+
'search',
|
|
42
|
+
'bm25',
|
|
43
|
+
'schema'
|
|
43
44
|
]
|
|
44
45
|
};
|
|
@@ -1,63 +1,65 @@
|
|
|
1
1
|
export const SearchFullText = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
weight: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
enum: [
|
|
29
|
+
'A',
|
|
30
|
+
'B',
|
|
31
|
+
'C',
|
|
32
|
+
'D'
|
|
31
33
|
],
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
description: 'tsvector weight class (A=highest, D=lowest)',
|
|
35
|
+
default: 'D'
|
|
34
36
|
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
lang: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'PostgreSQL text search configuration',
|
|
40
|
+
default: 'english'
|
|
39
41
|
}
|
|
40
42
|
},
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
required: [
|
|
44
|
+
'field'
|
|
43
45
|
]
|
|
44
46
|
},
|
|
45
|
-
|
|
47
|
+
description: 'Source columns that feed the tsvector. Each has a field name, weight (A-D), and language config.'
|
|
46
48
|
},
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
search_score_weight: {
|
|
50
|
+
type: 'number',
|
|
51
|
+
description: 'Weight for this algorithm in composite searchScore',
|
|
52
|
+
default: 1
|
|
51
53
|
}
|
|
52
54
|
},
|
|
53
|
-
|
|
54
|
-
|
|
55
|
+
required: [
|
|
56
|
+
'source_fields'
|
|
55
57
|
]
|
|
56
58
|
},
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
tags: [
|
|
60
|
+
'search',
|
|
61
|
+
'fts',
|
|
62
|
+
'tsvector',
|
|
63
|
+
'schema'
|
|
62
64
|
]
|
|
63
65
|
};
|