node-type-registry 0.19.0 → 0.21.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 +44 -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 +67 -55
  14. package/authz/authz-related-member-list.js +35 -32
  15. package/authz/authz-related-peer-ownership.js +63 -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 +44 -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 +67 -55
  65. package/esm/authz/authz-related-member-list.js +35 -32
  66. package/esm/authz/authz-related-peer-ownership.js +63 -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,112 +1,115 @@
1
1
  export const DataJobTrigger = {
2
- "name": "DataJobTrigger",
3
- "slug": "data_job_trigger",
4
- "category": "data",
5
- "display_name": "Job Trigger",
6
- "description": "Dynamically creates PostgreSQL triggers that enqueue jobs via app_jobs.add_job() when table rows are inserted, updated, or deleted. Supports configurable payload strategies (full row, row ID, selected fields, or custom mapping), conditional firing via WHEN clauses, watched field changes, and extended job options (queue, priority, delay, max attempts).",
7
- "parameter_schema": {
8
- "type": "object",
9
- "properties": {
10
- "task_identifier": {
11
- "type": "string",
12
- "description": "Job task identifier passed to add_job (e.g., process_invoice, sync_to_stripe)"
2
+ name: 'DataJobTrigger',
3
+ slug: 'data_job_trigger',
4
+ category: 'data',
5
+ display_name: 'Job Trigger',
6
+ description: 'Dynamically creates PostgreSQL triggers that enqueue jobs via app_jobs.add_job() when table rows are inserted, updated, or deleted. Supports configurable payload strategies (full row, row ID, selected fields, or custom mapping), conditional firing via WHEN clauses, watched field changes, and extended job options (queue, priority, delay, max attempts).',
7
+ parameter_schema: {
8
+ type: 'object',
9
+ properties: {
10
+ task_identifier: {
11
+ type: 'string',
12
+ description: 'Job task identifier passed to add_job (e.g., process_invoice, sync_to_stripe)'
13
13
  },
14
- "payload_strategy": {
15
- "type": "string",
16
- "enum": [
17
- "row",
18
- "row_id",
19
- "fields",
20
- "custom"
14
+ payload_strategy: {
15
+ type: 'string',
16
+ enum: [
17
+ 'row',
18
+ 'row_id',
19
+ 'fields',
20
+ 'custom'
21
21
  ],
22
- "description": "How to build the job payload: row (full NEW/OLD), row_id (just id), fields (selected columns), custom (mapped columns)",
23
- "default": "row_id"
22
+ description: 'How to build the job payload: row (full NEW/OLD), row_id (just id), fields (selected columns), custom (mapped columns)',
23
+ default: 'row_id'
24
24
  },
25
- "payload_fields": {
26
- "type": "array",
27
- "items": {
28
- "type": "string"
25
+ payload_fields: {
26
+ type: 'array',
27
+ items: {
28
+ type: 'string',
29
+ format: 'column-ref'
29
30
  },
30
- "description": "Column names to include in payload (only for fields strategy)"
31
+ description: 'Column names to include in payload (only for fields strategy)'
31
32
  },
32
- "payload_custom": {
33
- "type": "object",
34
- "additionalProperties": {
35
- "type": "string"
33
+ payload_custom: {
34
+ type: 'object',
35
+ additionalProperties: {
36
+ type: 'string'
36
37
  },
37
- "description": "Key-to-column mapping for custom payload (e.g., {\"invoice_id\": \"id\", \"total\": \"amount\"})"
38
+ description: 'Key-to-column mapping for custom payload (e.g., {"invoice_id": "id", "total": "amount"})'
38
39
  },
39
- "events": {
40
- "type": "array",
41
- "items": {
42
- "type": "string",
43
- "enum": [
44
- "INSERT",
45
- "UPDATE",
46
- "DELETE"
40
+ events: {
41
+ type: 'array',
42
+ items: {
43
+ type: 'string',
44
+ enum: [
45
+ 'INSERT',
46
+ 'UPDATE',
47
+ 'DELETE'
47
48
  ]
48
49
  },
49
- "description": "Trigger events to create",
50
- "default": [
51
- "INSERT",
52
- "UPDATE"
50
+ description: 'Trigger events to create',
51
+ default: [
52
+ 'INSERT',
53
+ 'UPDATE'
53
54
  ]
54
55
  },
55
- "include_old": {
56
- "type": "boolean",
57
- "description": "Include OLD row in payload (for UPDATE triggers)",
58
- "default": false
56
+ include_old: {
57
+ type: 'boolean',
58
+ description: 'Include OLD row in payload (for UPDATE triggers)',
59
+ default: false
59
60
  },
60
- "include_meta": {
61
- "type": "boolean",
62
- "description": "Include table/schema metadata in payload",
63
- "default": false
61
+ include_meta: {
62
+ type: 'boolean',
63
+ description: 'Include table/schema metadata in payload',
64
+ default: false
64
65
  },
65
- "condition_field": {
66
- "type": "string",
67
- "description": "Column name for conditional WHEN clause (fires only when field equals condition_value)"
66
+ condition_field: {
67
+ type: 'string',
68
+ format: 'column-ref',
69
+ description: 'Column name for conditional WHEN clause (fires only when field equals condition_value)'
68
70
  },
69
- "condition_value": {
70
- "type": "string",
71
- "description": "Value to compare against condition_field in WHEN clause"
71
+ condition_value: {
72
+ type: 'string',
73
+ description: 'Value to compare against condition_field in WHEN clause'
72
74
  },
73
- "watch_fields": {
74
- "type": "array",
75
- "items": {
76
- "type": "string"
75
+ watch_fields: {
76
+ type: 'array',
77
+ items: {
78
+ type: 'string',
79
+ format: 'column-ref'
77
80
  },
78
- "description": "For UPDATE triggers, only fire when these fields change (uses DISTINCT FROM)"
81
+ description: 'For UPDATE triggers, only fire when these fields change (uses DISTINCT FROM)'
79
82
  },
80
- "job_key": {
81
- "type": "string",
82
- "description": "Static job key for upsert semantics (prevents duplicate jobs)"
83
+ job_key: {
84
+ type: 'string',
85
+ description: 'Static job key for upsert semantics (prevents duplicate jobs)'
83
86
  },
84
- "queue_name": {
85
- "type": "string",
86
- "description": "Job queue name for routing to specific workers"
87
+ queue_name: {
88
+ type: 'string',
89
+ description: 'Job queue name for routing to specific workers'
87
90
  },
88
- "priority": {
89
- "type": "integer",
90
- "description": "Job priority (lower = higher priority)",
91
- "default": 0
91
+ priority: {
92
+ type: 'integer',
93
+ description: 'Job priority (lower = higher priority)',
94
+ default: 0
92
95
  },
93
- "run_at_delay": {
94
- "type": "string",
95
- "description": "Delay before job runs as PostgreSQL interval (e.g., 30 seconds, 5 minutes)"
96
+ run_at_delay: {
97
+ type: 'string',
98
+ description: 'Delay before job runs as PostgreSQL interval (e.g., 30 seconds, 5 minutes)'
96
99
  },
97
- "max_attempts": {
98
- "type": "integer",
99
- "description": "Maximum retry attempts for the job",
100
- "default": 25
100
+ max_attempts: {
101
+ type: 'integer',
102
+ description: 'Maximum retry attempts for the job',
103
+ default: 25
101
104
  }
102
105
  },
103
- "required": [
104
- "task_identifier"
106
+ required: [
107
+ 'task_identifier'
105
108
  ]
106
109
  },
107
- "tags": [
108
- "jobs",
109
- "triggers",
110
- "async"
110
+ tags: [
111
+ 'jobs',
112
+ 'triggers',
113
+ 'async'
111
114
  ]
112
115
  };
@@ -1,35 +1,36 @@
1
1
  export const DataJsonb = {
2
- "name": "DataJsonb",
3
- "slug": "data_jsonb",
4
- "category": "data",
5
- "display_name": "JSONB Field",
6
- "description": "Adds a JSONB column with optional GIN index for containment queries (@>, ?, ?|, ?&). Standard pattern for semi-structured metadata.",
7
- "parameter_schema": {
8
- "type": "object",
9
- "properties": {
10
- "field_name": {
11
- "type": "string",
12
- "description": "Column name for the JSONB field",
13
- "default": "metadata"
2
+ name: 'DataJsonb',
3
+ slug: 'data_jsonb',
4
+ category: 'data',
5
+ display_name: 'JSONB Field',
6
+ description: 'Adds a JSONB column with optional GIN index for containment queries (@>, ?, ?|, ?&). Standard pattern for semi-structured metadata.',
7
+ parameter_schema: {
8
+ type: 'object',
9
+ properties: {
10
+ field_name: {
11
+ type: 'string',
12
+ format: 'column-ref',
13
+ description: 'Column name for the JSONB field',
14
+ default: 'metadata'
14
15
  },
15
- "default_value": {
16
- "type": "string",
17
- "description": "Default value expression"
16
+ default_value: {
17
+ type: 'string',
18
+ description: 'Default value expression'
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
- "create_index": {
25
- "type": "boolean",
26
- "description": "Whether to create a GIN index",
27
- "default": true
25
+ create_index: {
26
+ type: 'boolean',
27
+ description: 'Whether to create a GIN index',
28
+ default: true
28
29
  }
29
30
  }
30
31
  },
31
- "tags": [
32
- "jsonb",
33
- "schema"
32
+ tags: [
33
+ 'jsonb',
34
+ 'schema'
34
35
  ]
35
36
  };
@@ -1,32 +1,34 @@
1
1
  export const DataOwnedFields = {
2
- "name": "DataOwnedFields",
3
- "slug": "data_owned_fields",
4
- "category": "data",
5
- "display_name": "Owned Fields",
6
- "description": "Restricts which user can modify specific columns in shared objects. Creates an AFTER UPDATE trigger that throws OWNED_PROPS when a non-owner tries to change protected fields. References fields by name in data jsonb.",
7
- "parameter_schema": {
8
- "type": "object",
9
- "properties": {
10
- "role_key_field_name": {
11
- "type": "string",
12
- "description": "Name of the field identifying the owner (e.g. sender_id)"
2
+ name: 'DataOwnedFields',
3
+ slug: 'data_owned_fields',
4
+ category: 'data',
5
+ display_name: 'Owned Fields',
6
+ description: 'Restricts which user can modify specific columns in shared objects. Creates an AFTER UPDATE trigger that throws OWNED_PROPS when a non-owner tries to change protected fields. References fields by name in data jsonb.',
7
+ parameter_schema: {
8
+ type: 'object',
9
+ properties: {
10
+ role_key_field_name: {
11
+ type: 'string',
12
+ format: 'column-ref',
13
+ description: 'Name of the field identifying the owner (e.g. sender_id)'
13
14
  },
14
- "protected_field_names": {
15
- "type": "array",
16
- "items": {
17
- "type": "string"
15
+ protected_field_names: {
16
+ type: 'array',
17
+ items: {
18
+ type: 'string',
19
+ format: 'column-ref'
18
20
  },
19
- "description": "Names of fields only this owner can modify"
21
+ description: 'Names of fields only this owner can modify'
20
22
  }
21
23
  },
22
- "required": [
23
- "role_key_field_name",
24
- "protected_field_names"
24
+ required: [
25
+ 'role_key_field_name',
26
+ 'protected_field_names'
25
27
  ]
26
28
  },
27
- "tags": [
28
- "ownership",
29
- "constraint",
30
- "behavior"
29
+ tags: [
30
+ 'ownership',
31
+ 'constraint',
32
+ 'behavior'
31
33
  ]
32
34
  };
@@ -1,28 +1,28 @@
1
1
  export const DataOwnershipInEntity = {
2
- "name": "DataOwnershipInEntity",
3
- "slug": "data_ownership_in_entity",
4
- "category": "data",
5
- "display_name": "Ownership In Entity",
6
- "description": "Combines direct ownership with entity scoping. Adds both owner_id and entity_id columns. Enables AuthzDirectOwner, AuthzEntityMembership, and AuthzOrgHierarchy authorization. Particularly useful for OrgHierarchy where a user owns a row (owner_id) within an entity (entity_id), and managers above can see subordinate-owned records via the hierarchy closure table.",
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: 'DataOwnershipInEntity',
3
+ slug: 'data_ownership_in_entity',
4
+ category: 'data',
5
+ display_name: 'Ownership In Entity',
6
+ description: 'Combines direct ownership with entity scoping. Adds both owner_id and entity_id columns. Enables AuthzDirectOwner, AuthzEntityMembership, and AuthzOrgHierarchy authorization. Particularly useful for OrgHierarchy where a user owns a row (owner_id) within an entity (entity_id), and managers above can see subordinate-owned records via the hierarchy closure table.',
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
- "include_user_fk": {
16
- "type": "boolean",
17
- "description": "If true, adds foreign key constraints from owner_id and entity_id to the users table",
18
- "default": true
15
+ include_user_fk: {
16
+ type: 'boolean',
17
+ description: 'If true, adds foreign key constraints from owner_id and entity_id to the users table',
18
+ default: true
19
19
  }
20
20
  }
21
21
  },
22
- "tags": [
23
- "ownership",
24
- "membership",
25
- "hierarchy",
26
- "schema"
22
+ tags: [
23
+ 'ownership',
24
+ 'membership',
25
+ 'hierarchy',
26
+ 'schema'
27
27
  ]
28
28
  };
@@ -1,26 +1,26 @@
1
1
  export const DataPeoplestamps = {
2
- "name": "DataPeoplestamps",
3
- "slug": "data_peoplestamps",
4
- "category": "data",
5
- "display_name": "Peoplestamps",
6
- "description": "Adds user tracking for creates/updates with created_by and updated_by 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: 'DataPeoplestamps',
3
+ slug: 'data_peoplestamps',
4
+ category: 'data',
5
+ display_name: 'Peoplestamps',
6
+ description: 'Adds user tracking for creates/updates with created_by and updated_by 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
- "include_user_fk": {
16
- "type": "boolean",
17
- "description": "If true, adds foreign key constraints from created_by and updated_by to the users table",
18
- "default": false
15
+ include_user_fk: {
16
+ type: 'boolean',
17
+ description: 'If true, adds foreign key constraints from created_by and updated_by to the users table',
18
+ default: false
19
19
  }
20
20
  }
21
21
  },
22
- "tags": [
23
- "timestamps",
24
- "schema"
22
+ tags: [
23
+ 'timestamps',
24
+ 'schema'
25
25
  ]
26
26
  };
@@ -1,22 +1,22 @@
1
1
  export const DataPublishable = {
2
- "name": "DataPublishable",
3
- "slug": "data_publishable",
4
- "category": "data",
5
- "display_name": "Publishable",
6
- "description": "Adds publish state columns (is_published, published_at) for content visibility. Enables AuthzPublishable and AuthzTemporal authorization.",
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: 'DataPublishable',
3
+ slug: 'data_publishable',
4
+ category: 'data',
5
+ display_name: 'Publishable',
6
+ description: 'Adds publish state columns (is_published, published_at) for content visibility. Enables AuthzPublishable and AuthzTemporal authorization.',
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
- "publishing",
19
- "temporal",
20
- "schema"
17
+ tags: [
18
+ 'publishing',
19
+ 'temporal',
20
+ 'schema'
21
21
  ]
22
22
  };
@@ -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
  };