@rudderhq/shared 0.2.10-canary.8 → 0.2.10

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 (54) hide show
  1. package/dist/constants.d.ts +3 -1
  2. package/dist/constants.d.ts.map +1 -1
  3. package/dist/constants.js +5 -0
  4. package/dist/constants.js.map +1 -1
  5. package/dist/index.d.ts +4 -4
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +3 -3
  8. package/dist/index.js.map +1 -1
  9. package/dist/project-mentions.d.ts +19 -1
  10. package/dist/project-mentions.d.ts.map +1 -1
  11. package/dist/project-mentions.js +124 -3
  12. package/dist/project-mentions.js.map +1 -1
  13. package/dist/project-mentions.test.js +34 -3
  14. package/dist/project-mentions.test.js.map +1 -1
  15. package/dist/types/agent.d.ts +1 -0
  16. package/dist/types/agent.d.ts.map +1 -1
  17. package/dist/types/index.d.ts +2 -2
  18. package/dist/types/index.d.ts.map +1 -1
  19. package/dist/types/issue.d.ts +35 -0
  20. package/dist/types/issue.d.ts.map +1 -1
  21. package/dist/types/organization.d.ts +18 -0
  22. package/dist/types/organization.d.ts.map +1 -1
  23. package/dist/types/resource.d.ts +4 -1
  24. package/dist/types/resource.d.ts.map +1 -1
  25. package/dist/validators/automation.js +1 -1
  26. package/dist/validators/automation.test.js +2 -2
  27. package/dist/validators/automation.test.js.map +1 -1
  28. package/dist/validators/chat.js +1 -1
  29. package/dist/validators/chat.test.js +2 -2
  30. package/dist/validators/index.d.ts +3 -3
  31. package/dist/validators/index.d.ts.map +1 -1
  32. package/dist/validators/index.js +3 -3
  33. package/dist/validators/index.js.map +1 -1
  34. package/dist/validators/issue.d.ts +45 -0
  35. package/dist/validators/issue.d.ts.map +1 -1
  36. package/dist/validators/issue.js +16 -0
  37. package/dist/validators/issue.js.map +1 -1
  38. package/dist/validators/organization-portability.d.ts +16 -16
  39. package/dist/validators/organization-skill.d.ts +22 -22
  40. package/dist/validators/organization.d.ts +35 -0
  41. package/dist/validators/organization.d.ts.map +1 -1
  42. package/dist/validators/organization.js +13 -0
  43. package/dist/validators/organization.js.map +1 -1
  44. package/dist/validators/project.d.ts +58 -8
  45. package/dist/validators/project.d.ts.map +1 -1
  46. package/dist/validators/resource.d.ts +61 -3
  47. package/dist/validators/resource.d.ts.map +1 -1
  48. package/dist/validators/resource.js +46 -5
  49. package/dist/validators/resource.js.map +1 -1
  50. package/dist/validators/resource.test.d.ts +2 -0
  51. package/dist/validators/resource.test.d.ts.map +1 -0
  52. package/dist/validators/resource.test.js +79 -0
  53. package/dist/validators/resource.test.js.map +1 -0
  54. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/validators/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,8BAA8B,6DAAsC,CAAC;AAClF,eAAO,MAAM,mCAAmC,kFAA4C,CAAC;AAE7F,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;EAM3C,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;EAMlC,CAAC;AAEZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;EAKtC,CAAC;AAEZ,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAEzG,eAAO,MAAM,qCAAqC;;;;;;;;;;;;EAIvC,CAAC;AAEZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAInC,CAAC;AAEZ,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC"}
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/validators/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,8BAA8B,6DAAsC,CAAC;AAClF,eAAO,MAAM,oCAAoC,oCAA6C,CAAC;AAC/F,eAAO,MAAM,mCAAmC,kFAA4C,CAAC;AAoD7F,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EACE,CAAC;AAEhD,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOW,CAAC;AAEzD,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;EAKtC,CAAC;AAEZ,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAEzG,eAAO,MAAM,qCAAqC;;;;;;;;;;;;EAIvC,CAAC;AAEZ,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIU,CAAC;AAEzD,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC"}
@@ -1,21 +1,62 @@
1
1
  import { z } from "zod";
2
- import { ORGANIZATION_RESOURCE_KINDS, PROJECT_RESOURCE_ATTACHMENT_ROLES } from "../constants.js";
2
+ import { ORGANIZATION_RESOURCE_KINDS, ORGANIZATION_RESOURCE_SOURCE_TYPES, PROJECT_RESOURCE_ATTACHMENT_ROLES, } from "../constants.js";
3
3
  export const organizationResourceKindSchema = z.enum(ORGANIZATION_RESOURCE_KINDS);
4
+ export const organizationResourceSourceTypeSchema = z.enum(ORGANIZATION_RESOURCE_SOURCE_TYPES);
4
5
  export const projectResourceAttachmentRoleSchema = z.enum(PROJECT_RESOURCE_ATTACHMENT_ROLES);
5
- export const createOrganizationResourceSchema = z.object({
6
+ const LIBRARY_PATH_SCHEME_RE = /^[a-z][a-z0-9+.-]*:/i;
7
+ function isValidLibraryProjectPath(locator, kind) {
8
+ const trimmed = locator.trim();
9
+ if (!trimmed)
10
+ return false;
11
+ if (LIBRARY_PATH_SCHEME_RE.test(trimmed))
12
+ return false;
13
+ if (trimmed.startsWith("/") || trimmed.startsWith("\\") || trimmed.startsWith("~"))
14
+ return false;
15
+ if (trimmed.includes("\\"))
16
+ return false;
17
+ const parts = trimmed.split("/");
18
+ if (!parts.every((part) => part.length > 0 && part !== "." && part !== ".."))
19
+ return false;
20
+ if (parts[0] !== "projects")
21
+ return false;
22
+ return kind === "directory" ? parts.length >= 2 : parts.length >= 3;
23
+ }
24
+ function validateLibraryResourceContract(value, ctx) {
25
+ if (value.sourceType !== "library")
26
+ return;
27
+ if (value.kind !== undefined && value.kind !== "file" && value.kind !== "directory") {
28
+ ctx.addIssue({
29
+ code: z.ZodIssueCode.custom,
30
+ message: "Library resources must be file or directory resources.",
31
+ path: ["kind"],
32
+ });
33
+ }
34
+ if (value.locator !== undefined && !isValidLibraryProjectPath(value.locator, value.kind)) {
35
+ ctx.addIssue({
36
+ code: z.ZodIssueCode.custom,
37
+ message: "Library resource locator must be a normalized project Library path.",
38
+ path: ["locator"],
39
+ });
40
+ }
41
+ }
42
+ const createOrganizationResourceBaseSchema = z.object({
6
43
  name: z.string().min(1),
7
44
  kind: organizationResourceKindSchema,
45
+ sourceType: organizationResourceSourceTypeSchema.optional().default("external"),
8
46
  locator: z.string().min(1),
9
47
  description: z.string().optional().nullable(),
10
48
  metadata: z.record(z.unknown()).optional().nullable(),
11
49
  });
50
+ export const createOrganizationResourceSchema = createOrganizationResourceBaseSchema
51
+ .superRefine(validateLibraryResourceContract);
12
52
  export const updateOrganizationResourceSchema = z.object({
13
53
  name: z.string().min(1).optional(),
14
54
  kind: organizationResourceKindSchema.optional(),
55
+ sourceType: organizationResourceSourceTypeSchema.optional(),
15
56
  locator: z.string().min(1).optional(),
16
57
  description: z.string().optional().nullable(),
17
58
  metadata: z.record(z.unknown()).optional().nullable(),
18
- }).strict();
59
+ }).strict().superRefine(validateLibraryResourceContract);
19
60
  export const projectResourceAttachmentInputSchema = z.object({
20
61
  resourceId: z.string().uuid(),
21
62
  role: projectResourceAttachmentRoleSchema.optional(),
@@ -27,9 +68,9 @@ export const updateProjectResourceAttachmentSchema = z.object({
27
68
  note: z.string().optional().nullable(),
28
69
  sortOrder: z.number().int().nonnegative().optional(),
29
70
  }).strict();
30
- export const createProjectInlineResourceSchema = createOrganizationResourceSchema.extend({
71
+ export const createProjectInlineResourceSchema = createOrganizationResourceBaseSchema.extend({
31
72
  role: projectResourceAttachmentRoleSchema.optional(),
32
73
  note: z.string().optional().nullable(),
33
74
  sortOrder: z.number().int().nonnegative().optional(),
34
- }).strict();
75
+ }).strict().superRefine(validateLibraryResourceContract);
35
76
  //# sourceMappingURL=resource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/validators/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,2BAA2B,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AAEjG,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AAClF,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,8BAA8B;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,8BAA8B,CAAC,QAAQ,EAAE;IAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC,MAAM,EAAE,CAAC;AAIZ,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC7B,IAAI,EAAE,mCAAmC,CAAC,QAAQ,EAAE;IACpD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC,MAAM,EAAE,CAAC;AAIZ,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5D,IAAI,EAAE,mCAAmC,CAAC,QAAQ,EAAE;IACpD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC,MAAM,EAAE,CAAC;AAIZ,MAAM,CAAC,MAAM,iCAAiC,GAAG,gCAAgC,CAAC,MAAM,CAAC;IACvF,IAAI,EAAE,mCAAmC,CAAC,QAAQ,EAAE;IACpD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/validators/resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=resource.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.test.d.ts","sourceRoot":"","sources":["../../src/validators/resource.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,79 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { createOrganizationResourceSchema, updateOrganizationResourceSchema, } from "./resource.js";
3
+ describe("organization resource validators", () => {
4
+ it("accepts library resources with normalized relative locators", () => {
5
+ expect(createOrganizationResourceSchema.parse({
6
+ name: "Spec",
7
+ kind: "file",
8
+ sourceType: "library",
9
+ locator: "projects/product/spec.md",
10
+ })).toMatchObject({
11
+ sourceType: "library",
12
+ locator: "projects/product/spec.md",
13
+ });
14
+ });
15
+ it("accepts project Library root locators for directory resources", () => {
16
+ expect(createOrganizationResourceSchema.parse({
17
+ name: "Product folder",
18
+ kind: "directory",
19
+ sourceType: "library",
20
+ locator: "projects/product",
21
+ })).toMatchObject({
22
+ sourceType: "library",
23
+ locator: "projects/product",
24
+ });
25
+ });
26
+ it("rejects library resources that are not file or directory resources", () => {
27
+ expect(() => createOrganizationResourceSchema.parse({
28
+ name: "Website",
29
+ kind: "url",
30
+ sourceType: "library",
31
+ locator: "projects/product/spec.md",
32
+ })).toThrow(/file or directory/);
33
+ });
34
+ it.each([
35
+ "https://example.com/spec.md",
36
+ "/Users/acme/spec.md",
37
+ "../spec.md",
38
+ "docs/spec.md",
39
+ "projects/spec.md",
40
+ "docs/../spec.md",
41
+ "docs//spec.md",
42
+ "docs/./spec.md",
43
+ "docs\\spec.md",
44
+ "agents/builder--123/instructions/SOUL.md",
45
+ "artifacts/report.md",
46
+ "plans/project-plan.md",
47
+ "skills/writer/SKILL.md",
48
+ ])("rejects unsafe library locator %s", (locator) => {
49
+ expect(() => createOrganizationResourceSchema.parse({
50
+ name: "Spec",
51
+ kind: "file",
52
+ sourceType: "library",
53
+ locator,
54
+ })).toThrow(/normalized project Library path/);
55
+ });
56
+ it("validates library update patches when the updated fields are present", () => {
57
+ expect(() => updateOrganizationResourceSchema.parse({
58
+ sourceType: "library",
59
+ kind: "file",
60
+ locator: "../outside.md",
61
+ })).toThrow(/normalized project Library path/);
62
+ });
63
+ it("requires update patches to include a project child path unless they declare a directory resource", () => {
64
+ expect(() => updateOrganizationResourceSchema.parse({
65
+ sourceType: "library",
66
+ locator: "projects/spec.md",
67
+ })).toThrow(/normalized project Library path/);
68
+ expect(updateOrganizationResourceSchema.parse({
69
+ sourceType: "library",
70
+ kind: "directory",
71
+ locator: "projects/product",
72
+ })).toMatchObject({
73
+ sourceType: "library",
74
+ kind: "directory",
75
+ locator: "projects/product",
76
+ });
77
+ });
78
+ });
79
+ //# sourceMappingURL=resource.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.test.js","sourceRoot":"","sources":["../../src/validators/resource.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rudderhq/shared",
3
- "version": "0.2.10-canary.8",
3
+ "version": "0.2.10",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "homepage": "https://github.com/Undertone0809/rudder",
6
6
  "bugs": {