@astrale-domains/issues 0.1.7 → 0.1.8

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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.8](https://github.com/astrale-os/domains/compare/issues-v0.1.7...issues-v0.1.8) (2026-08-30)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **domains:** adopt function requirements ([#141](https://github.com/astrale-os/domains/issues/141)) ([29710c9](https://github.com/astrale-os/domains/commit/29710c9ee057e4c6a50901b3c54e42c3694d143e))
9
+
3
10
  ## [0.1.7](https://github.com/astrale-os/domains/compare/issues-v0.1.6...issues-v0.1.7) (2026-08-30)
4
11
 
5
12
 
@@ -1,17 +1,16 @@
1
1
  import { policy } from '@astrale-os/sdk/schema';
2
2
  import { Issue, project_contains_issue } from '../../issue/index.js';
3
3
  import { Project, project_has_member, project_owned_by } from '../../project/index.js';
4
- import { comment_authored_by } from '../classes/comment-authored-by.js';
5
4
  import { issue_has_comment } from '../classes/issue-has-comment.js';
6
5
  export const TraverseCommentRelationship = policy({
7
6
  description: 'The caller owns or belongs to the Project containing the source Comment.',
8
- match: ({ allOf, anyOf, edge, exists, source, subject, target }) => anyOf(exists(({ node }) => {
7
+ match: ({ allOf, anyOf, edge, exists, subject, target }) => anyOf(exists(({ node }) => {
9
8
  const issue = node(() => Issue);
10
9
  const project = node(() => Project);
11
- return allOf(edge({ source, class: () => comment_authored_by, target }), edge({ source: issue, class: () => issue_has_comment, target }), edge({ source: project, class: () => project_contains_issue, target: issue }), edge({ source: subject, class: () => project_owned_by, target: project }));
10
+ return allOf(edge({ source: issue, class: () => issue_has_comment, target }), edge({ source: project, class: () => project_contains_issue, target: issue }), edge({ source: subject, class: () => project_owned_by, target: project }));
12
11
  }), exists(({ node }) => {
13
12
  const issue = node(() => Issue);
14
13
  const project = node(() => Project);
15
- return allOf(edge({ source, class: () => comment_authored_by, target }), edge({ source: issue, class: () => issue_has_comment, target }), edge({ source: project, class: () => project_contains_issue, target: issue }), edge({ source: subject, class: () => project_has_member, target: project }));
14
+ return allOf(edge({ source: issue, class: () => issue_has_comment, target }), edge({ source: project, class: () => project_contains_issue, target: issue }), edge({ source: subject, class: () => project_has_member, target: project }));
16
15
  })),
17
16
  });
@@ -1,14 +1,13 @@
1
1
  import { policy } from '@astrale-os/sdk/schema';
2
2
  import { project_contains_issue } from '../../issue/index.js';
3
3
  import { Project, project_has_member, project_owned_by } from '../../project/index.js';
4
- import { issue_has_comment } from '../classes/issue-has-comment.js';
5
4
  export const TraverseIssueComment = policy({
6
5
  description: 'Issue Comment containment is visible only inside the containing Project.',
7
- match: ({ allOf, anyOf, edge, exists, source, subject, target }) => anyOf(exists(({ node }) => {
6
+ match: ({ allOf, anyOf, edge, exists, source, subject }) => anyOf(exists(({ node }) => {
8
7
  const project = node(() => Project);
9
- return allOf(edge({ source, class: () => issue_has_comment, target }), edge({ source: project, class: () => project_contains_issue, target: source }), edge({ source: subject, class: () => project_owned_by, target: project }));
8
+ return allOf(edge({ source: project, class: () => project_contains_issue, target: source }), edge({ source: subject, class: () => project_owned_by, target: project }));
10
9
  }), exists(({ node }) => {
11
10
  const project = node(() => Project);
12
- return allOf(edge({ source, class: () => issue_has_comment, target }), edge({ source: project, class: () => project_contains_issue, target: source }), edge({ source: subject, class: () => project_has_member, target: project }));
11
+ return allOf(edge({ source: project, class: () => project_contains_issue, target: source }), edge({ source: subject, class: () => project_has_member, target: project }));
13
12
  })),
14
13
  });
@@ -1,14 +1,13 @@
1
1
  import { policy } from '@astrale-os/sdk/schema';
2
2
  import { Project, project_has_member, project_owned_by } from '../../project/index.js';
3
- import { issue_assigned_to } from '../classes/issue-assigned-to.js';
4
3
  import { project_contains_issue } from '../classes/project-contains-issue.js';
5
4
  export const TraverseIssueAssignee = policy({
6
5
  description: 'Issue assignment relationships are visible only inside the containing Project.',
7
- match: ({ allOf, anyOf, edge, exists, source, subject, target }) => anyOf(exists(({ node }) => {
6
+ match: ({ allOf, anyOf, edge, exists, subject, target }) => anyOf(exists(({ node }) => {
8
7
  const project = node(() => Project);
9
- return allOf(edge({ source, class: () => issue_assigned_to, target }), edge({ source: project, class: () => project_contains_issue, target }), edge({ source: subject, class: () => project_owned_by, target: project }));
8
+ return allOf(edge({ source: project, class: () => project_contains_issue, target }), edge({ source: subject, class: () => project_owned_by, target: project }));
10
9
  }), exists(({ node }) => {
11
10
  const project = node(() => Project);
12
- return allOf(edge({ source, class: () => issue_assigned_to, target }), edge({ source: project, class: () => project_contains_issue, target }), edge({ source: subject, class: () => project_has_member, target: project }));
11
+ return allOf(edge({ source: project, class: () => project_contains_issue, target }), edge({ source: subject, class: () => project_has_member, target: project }));
13
12
  })),
14
13
  });
@@ -1,14 +1,13 @@
1
1
  import { policy } from '@astrale-os/sdk/schema';
2
2
  import { Project, project_has_member, project_owned_by } from '../../project/index.js';
3
- import { issue_subtask_of } from '../classes/issue-subtask-of.js';
4
3
  import { project_contains_issue } from '../classes/project-contains-issue.js';
5
4
  export const TraverseIssueParent = policy({
6
5
  description: 'Issue parent relationships are visible only inside the containing Project.',
7
- match: ({ allOf, anyOf, edge, exists, source, subject, target }) => anyOf(exists(({ node }) => {
6
+ match: ({ allOf, anyOf, edge, exists, source, subject }) => anyOf(exists(({ node }) => {
8
7
  const project = node(() => Project);
9
- return allOf(edge({ source, class: () => issue_subtask_of, target }), edge({ source: project, class: () => project_contains_issue, target: source }), edge({ source: subject, class: () => project_owned_by, target: project }));
8
+ return allOf(edge({ source: project, class: () => project_contains_issue, target: source }), edge({ source: subject, class: () => project_owned_by, target: project }));
10
9
  }), exists(({ node }) => {
11
10
  const project = node(() => Project);
12
- return allOf(edge({ source, class: () => issue_subtask_of, target }), edge({ source: project, class: () => project_contains_issue, target: source }), edge({ source: subject, class: () => project_has_member, target: project }));
11
+ return allOf(edge({ source: project, class: () => project_contains_issue, target: source }), edge({ source: subject, class: () => project_has_member, target: project }));
13
12
  })),
14
13
  });
@@ -1,14 +1,13 @@
1
1
  import { policy } from '@astrale-os/sdk/schema';
2
2
  import { Project, project_has_member, project_owned_by } from '../../project/index.js';
3
- import { issue_reported_by } from '../classes/issue-reported-by.js';
4
3
  import { project_contains_issue } from '../classes/project-contains-issue.js';
5
4
  export const TraverseIssueReporter = policy({
6
5
  description: 'Issue reporter relationships are visible only inside the containing Project.',
7
- match: ({ allOf, anyOf, edge, exists, source, subject, target }) => anyOf(exists(({ node }) => {
6
+ match: ({ allOf, anyOf, edge, exists, subject, target }) => anyOf(exists(({ node }) => {
8
7
  const project = node(() => Project);
9
- return allOf(edge({ source, class: () => issue_reported_by, target }), edge({ source: project, class: () => project_contains_issue, target }), edge({ source: subject, class: () => project_owned_by, target: project }));
8
+ return allOf(edge({ source: project, class: () => project_contains_issue, target }), edge({ source: subject, class: () => project_owned_by, target: project }));
10
9
  }), exists(({ node }) => {
11
10
  const project = node(() => Project);
12
- return allOf(edge({ source, class: () => issue_reported_by, target }), edge({ source: project, class: () => project_contains_issue, target }), edge({ source: subject, class: () => project_has_member, target: project }));
11
+ return allOf(edge({ source: project, class: () => project_contains_issue, target }), edge({ source: subject, class: () => project_has_member, target: project }));
13
12
  })),
14
13
  });
@@ -1,7 +1,6 @@
1
1
  import { policy } from '@astrale-os/sdk/schema';
2
2
  import { project_has_member, project_owned_by } from '../../project/index.js';
3
- import { project_contains_issue } from '../classes/project-contains-issue.js';
4
3
  export const TraverseProjectIssue = policy({
5
4
  description: 'Project Issue containment is visible only to that Project owner and members.',
6
- match: ({ allOf, anyOf, edge, source, subject, target }) => anyOf(allOf(edge({ source, class: () => project_contains_issue, target }), edge({ source: subject, class: () => project_owned_by, target: source })), allOf(edge({ source, class: () => project_contains_issue, target }), edge({ source: subject, class: () => project_has_member, target: source }))),
5
+ match: ({ anyOf, edge, source, subject }) => anyOf(edge({ source: subject, class: () => project_owned_by, target: source }), edge({ source: subject, class: () => project_has_member, target: source })),
7
6
  });
@@ -3,5 +3,5 @@ import { project_has_member } from '../classes/project-has-member.js';
3
3
  import { project_owned_by } from '../classes/project-owned-by.js';
4
4
  export const TraverseProjectMember = policy({
5
5
  description: 'Project membership is visible only to that Project owner and members.',
6
- match: ({ allOf, anyOf, edge, source, subject, target }) => anyOf(allOf(edge({ source, class: () => project_has_member, target }), edge({ source: subject, class: () => project_owned_by, target })), allOf(edge({ source, class: () => project_has_member, target }), edge({ source: subject, class: () => project_has_member, target }))),
6
+ match: ({ anyOf, edge, subject, target }) => anyOf(edge({ source: subject, class: () => project_owned_by, target }), edge({ source: subject, class: () => project_has_member, target })),
7
7
  });
@@ -3,5 +3,5 @@ import { project_has_member } from '../classes/project-has-member.js';
3
3
  import { project_owned_by } from '../classes/project-owned-by.js';
4
4
  export const TraverseProjectOwner = policy({
5
5
  description: 'Project ownership is visible only to that Project owner and members.',
6
- match: ({ allOf, anyOf, edge, source, subject, target }) => anyOf(allOf(edge({ source, class: () => project_owned_by, target }), edge({ source: subject, class: () => project_owned_by, target })), allOf(edge({ source, class: () => project_owned_by, target }), edge({ source: subject, class: () => project_has_member, target }))),
6
+ match: ({ anyOf, edge, subject, target }) => anyOf(edge({ source: subject, class: () => project_owned_by, target }), edge({ source: subject, class: () => project_has_member, target })),
7
7
  });
@@ -1,14 +1,13 @@
1
1
  import { policy } from '@astrale-os/sdk/schema';
2
2
  import { project_contains_issue } from '../../issue/index.js';
3
3
  import { Project, project_has_member, project_owned_by } from '../../project/index.js';
4
- import { issue_tagged_with } from '../classes/issue-tagged-with.js';
5
4
  export const TraverseIssueTag = policy({
6
5
  description: 'Issue Tag relationships are visible only inside the containing Project.',
7
- match: ({ allOf, anyOf, edge, exists, source, subject, target }) => anyOf(exists(({ node }) => {
6
+ match: ({ allOf, anyOf, edge, exists, source, subject }) => anyOf(exists(({ node }) => {
8
7
  const project = node(() => Project);
9
- return allOf(edge({ source, class: () => issue_tagged_with, target }), edge({ source: project, class: () => project_contains_issue, target: source }), edge({ source: subject, class: () => project_owned_by, target: project }));
8
+ return allOf(edge({ source: project, class: () => project_contains_issue, target: source }), edge({ source: subject, class: () => project_owned_by, target: project }));
10
9
  }), exists(({ node }) => {
11
10
  const project = node(() => Project);
12
- return allOf(edge({ source, class: () => issue_tagged_with, target }), edge({ source: project, class: () => project_contains_issue, target: source }), edge({ source: subject, class: () => project_has_member, target: project }));
11
+ return allOf(edge({ source: project, class: () => project_contains_issue, target: source }), edge({ source: subject, class: () => project_has_member, target: project }));
13
12
  })),
14
13
  });
@@ -1,7 +1,6 @@
1
1
  import { policy } from '@astrale-os/sdk/schema';
2
2
  import { project_has_member, project_owned_by } from '../../project/index.js';
3
- import { project_contains_tag } from '../classes/project-contains-tag.js';
4
3
  export const TraverseProjectTag = policy({
5
4
  description: 'Project Tag containment is visible only to that Project owner and members.',
6
- match: ({ allOf, anyOf, edge, source, subject, target }) => anyOf(allOf(edge({ source, class: () => project_contains_tag, target }), edge({ source: subject, class: () => project_owned_by, target: source })), allOf(edge({ source, class: () => project_contains_tag, target }), edge({ source: subject, class: () => project_has_member, target: source }))),
5
+ match: ({ anyOf, edge, source, subject }) => anyOf(edge({ source: subject, class: () => project_owned_by, target: source }), edge({ source: subject, class: () => project_has_member, target: source })),
7
6
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astrale-domains/issues",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/astrale-os/domains.git",
@@ -29,11 +29,11 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@astrale-domains/shell": "0.1.0-beta.17",
32
- "@astrale-os/sdk": "0.5.0-beta.82",
33
- "zod": "^4.4.3"
32
+ "@astrale-os/sdk": "0.5.0-beta.95",
33
+ "zod": "4.4.3"
34
34
  },
35
35
  "devDependencies": {
36
- "@astrale-os/adapter-cloudflare": "0.5.0-beta.85",
36
+ "@astrale-os/adapter-cloudflare": "0.5.0-beta.98",
37
37
  "@astrale-os/ox": ">=0.1.4 <1.0.0",
38
38
  "@astrale-os/shell": "0.4.2-beta.8",
39
39
  "@astrale-os/shell-react": "0.3.2-beta.5",