@lightdash/common 0.1610.0 → 0.1610.2

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.
@@ -7,12 +7,14 @@ export declare enum PromotionAction {
7
7
  UPDATE = "update",
8
8
  DELETE = "delete"
9
9
  }
10
- export type PromotedSpace = Omit<SpaceSummary, 'userAccess' | 'parentSpaceUuid' | 'path'>;
10
+ export type PromotedSpace = Omit<SpaceSummary, 'userAccess'>;
11
11
  export type PromotedDashboard = DashboardDAO & {
12
12
  spaceSlug: string;
13
+ spacePath: string;
13
14
  };
14
15
  export type PromotedChart = SavedChartDAO & {
15
16
  spaceSlug: string;
17
+ spacePath: string;
16
18
  oldUuid: string;
17
19
  };
18
20
  export type PromotionChanges = {
@@ -1 +1 @@
1
- {"version":3,"file":"promotion.d.ts","sourceRoot":"","sources":["../../../src/types/promotion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,oBAAY,eAAe;IACvB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAC5B,YAAY,EACZ,YAAY,GAAG,iBAAiB,GAAG,MAAM,CAC5C,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG;IAC3C,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,MAAM,EAAE;QACJ,MAAM,EAAE,eAAe,CAAC;QACxB,IAAI,EAAE,aAAa,CAAC;KACvB,EAAE,CAAC;IACJ,UAAU,EAAE;QACR,MAAM,EAAE,eAAe,CAAC;QACxB,IAAI,EAAE,iBAAiB,CAAC;KAC3B,EAAE,CAAC;IACJ,MAAM,EAAE;QACJ,MAAM,EAAE,eAAe,CAAC;QACxB,IAAI,EAAE,aAAa,CAAC;KACvB,EAAE,CAAC;CACP,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACtC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACtC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;CAC7B,CAAC"}
1
+ {"version":3,"file":"promotion.d.ts","sourceRoot":"","sources":["../../../src/types/promotion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,oBAAY,eAAe;IACvB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,MAAM,EAAE;QACJ,MAAM,EAAE,eAAe,CAAC;QACxB,IAAI,EAAE,aAAa,CAAC;KACvB,EAAE,CAAC;IACJ,UAAU,EAAE;QACR,MAAM,EAAE,eAAe,CAAC;QACxB,IAAI,EAAE,iBAAiB,CAAC;KAC3B,EAAE,CAAC;IACJ,MAAM,EAAE;QACJ,MAAM,EAAE,eAAe,CAAC;QACxB,IAAI,EAAE,aAAa,CAAC;KACvB,EAAE,CAAC;CACP,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACtC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACtC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;CAC7B,CAAC"}
@@ -39,73 +39,93 @@ describe('Slug', () => {
39
39
  // Handle japanese characters
40
40
  expect((0, slugs_1.generateSlug)('ライトダッシュ').length).toEqual(5);
41
41
  });
42
- describe('getSlugsWithHierarchy', () => {
43
- test('should return array with single slug for non-hierarchical slug', () => {
44
- expect((0, slugs_1.getSlugsWithHierarchy)('my-space')).toEqual(['my-space']);
45
- });
46
- test('should return array with hierarchical slugs', () => {
47
- expect((0, slugs_1.getSlugsWithHierarchy)('parent-space/child-space')).toEqual([
48
- 'parent-space',
49
- 'parent-space/child-space',
50
- ]);
51
- });
52
- test('should handle multiple levels of hierarchy', () => {
53
- expect((0, slugs_1.getSlugsWithHierarchy)('grandparent-space/parent-space/child-space')).toEqual([
54
- 'grandparent-space',
55
- 'grandparent-space/parent-space',
56
- 'grandparent-space/parent-space/child-space',
57
- ]);
58
- });
59
- });
60
- describe('getParentSlug', () => {
61
- test('should return empty string for non-hierarchical slug', () => {
62
- expect((0, slugs_1.getParentSlug)('my-space')).toEqual('');
63
- });
64
- test('should return parent slug for hierarchical slug', () => {
65
- expect((0, slugs_1.getParentSlug)('parent-space/child-space')).toEqual('parent-space');
66
- });
67
- test('should return parent path for deeply nested slug', () => {
68
- expect((0, slugs_1.getParentSlug)('grandparent-space/parent-space/child-space')).toEqual('grandparent-space/parent-space');
69
- });
70
- });
71
- describe('getLabelFromSlug', () => {
72
- test('should return same slug for non-hierarchical slug', () => {
73
- expect((0, slugs_1.getLabelFromSlug)('my-space')).toEqual('my-space');
74
- });
75
- test('should return last part of hierarchical slug', () => {
76
- expect((0, slugs_1.getLabelFromSlug)('parent-space/child-space')).toEqual('child-space');
77
- });
78
- test('should return last part of deeply nested slug', () => {
79
- expect((0, slugs_1.getLabelFromSlug)('grandparent-space/parent-space/child-space')).toEqual('child-space');
80
- });
81
- });
82
42
  describe('getLtreePathFromSlug', () => {
83
- test('should convert simple slug to ltree path', () => {
43
+ test('should return ltree path from slug', () => {
84
44
  expect((0, slugs_1.getLtreePathFromSlug)('my-space')).toEqual('my_space');
85
45
  });
86
- test('should convert hierarchical slug to ltree path', () => {
87
- expect((0, slugs_1.getLtreePathFromSlug)('parent-space/child-space')).toEqual('parent_space.child_space');
88
- });
89
- test('should handle deeply nested slugs', () => {
90
- expect((0, slugs_1.getLtreePathFromSlug)('grandparent-space/parent-space/child-space')).toEqual('grandparent_space.parent_space.child_space');
91
- });
92
- test('should remove non-alphanumeric characters except underscores', () => {
93
- expect((0, slugs_1.getLtreePathFromSlug)('my!space@name')).toEqual('my_space_name');
94
- expect((0, slugs_1.getLtreePathFromSlug)('my space name')).toEqual('my_space_name');
95
- expect((0, slugs_1.getLtreePathFromSlug)('my_space_name')).toEqual('my_space_name');
96
- });
97
- test('should handle mixed case slugs', () => {
98
- expect((0, slugs_1.getLtreePathFromSlug)('MySpace/ChildSpace')).toEqual('myspace.childspace');
99
- });
100
- test('should handle empty slug', () => {
101
- expect((0, slugs_1.getLtreePathFromSlug)('')).toEqual('');
46
+ test('should return ltree path from legacy hierarchical slug', () => {
47
+ expect((0, slugs_1.getLtreePathFromSlug)('parent-space/child-space')).toEqual('parent_space___child_space');
102
48
  });
103
49
  test('should not trim hyphens from slug', () => {
104
50
  expect((0, slugs_1.getLtreePathFromSlug)('-my-space-name-with-hyphens-')).toEqual('_my_space_name_with_hyphens_');
105
51
  });
106
52
  test('should not trim hyphens from deeply nested slug', () => {
107
- expect((0, slugs_1.getLtreePathFromSlug)('grandparent-space-/-parent-space/child-space-')).toEqual('grandparent_space_._parent_space.child_space_');
53
+ expect((0, slugs_1.getLtreePathFromSlug)('grandparent-space-/-parent-space/child-space-')).toEqual('grandparent_space_____parent_space___child_space_');
108
54
  });
109
55
  });
110
56
  });
57
+ describe('getLtreePathFromContentAsCodePath', () => {
58
+ test('root', () => {
59
+ expect((0, slugs_1.getLtreePathFromContentAsCodePath)('my-space')).toEqual('my_space');
60
+ });
61
+ test('nested', () => {
62
+ expect((0, slugs_1.getLtreePathFromContentAsCodePath)('parent/child/-grandchild/final-child')).toEqual('parent.child._grandchild.final_child');
63
+ expect((0, slugs_1.getLtreePathFromContentAsCodePath)('-parent-/-child-')).toEqual('_parent_._child_');
64
+ });
65
+ test('new slugs', () => {
66
+ expect((0, slugs_1.getLtreePathFromContentAsCodePath)('-foo/-foo___bar/-foo___bar___boo')).toEqual('_foo._foo___bar._foo___bar___boo');
67
+ });
68
+ });
69
+ describe('getContentAsCodePathFromLtreePath', () => {
70
+ test('root', () => {
71
+ expect((0, slugs_1.getContentAsCodePathFromLtreePath)('my_space')).toEqual('my-space');
72
+ expect((0, slugs_1.getContentAsCodePathFromLtreePath)('_my_space')).toEqual('-my-space');
73
+ });
74
+ test('nested', () => {
75
+ expect((0, slugs_1.getContentAsCodePathFromLtreePath)('parent.child._grandchild.final_child')).toEqual('parent/child/-grandchild/final-child');
76
+ });
77
+ test('new slugs', () => {
78
+ expect((0, slugs_1.getContentAsCodePathFromLtreePath)('_foo._foo___bar._foo___bar___boo')).toEqual('-foo/-foo---bar/-foo---bar---boo');
79
+ });
80
+ });
81
+ describe('getContentAsCodePathFromLtreePath + getLtreePathFromContentAsCodePath', () => {
82
+ test('should be the inverse of each other', () => {
83
+ expect((0, slugs_1.getContentAsCodePathFromLtreePath)((0, slugs_1.getLtreePathFromContentAsCodePath)('my-space'))).toEqual('my-space');
84
+ expect((0, slugs_1.getLtreePathFromContentAsCodePath)((0, slugs_1.getContentAsCodePathFromLtreePath)('__my_space_'))).toEqual('__my_space_');
85
+ expect((0, slugs_1.getLtreePathFromContentAsCodePath)((0, slugs_1.getContentAsCodePathFromLtreePath)('__my_space_.foo.bar'))).toEqual('__my_space_.foo.bar');
86
+ });
87
+ });
88
+ describe('getDeepestPaths', () => {
89
+ test('should return the deepest paths', () => {
90
+ expect((0, slugs_1.getDeepestPaths)([
91
+ 'dash',
92
+ 'charts',
93
+ 'charts2',
94
+ 'charts2.charts2_child',
95
+ ])).toEqual(['dash', 'charts', 'charts2.charts2_child']);
96
+ expect((0, slugs_1.getDeepestPaths)([
97
+ 'jaffle_shop.dashboards.dashboards_marketing',
98
+ 'jaffle_shop.sub_charts_2.sub_charts_2_child',
99
+ 'jaffle_shop.dashboards',
100
+ 'jaffle_shop.sub_charts',
101
+ 'jaffle_shop.sub_charts_2',
102
+ ])).toEqual([
103
+ 'jaffle_shop.dashboards.dashboards_marketing',
104
+ 'jaffle_shop.sub_charts_2.sub_charts_2_child',
105
+ 'jaffle_shop.sub_charts',
106
+ ]);
107
+ expect((0, slugs_1.getDeepestPaths)([
108
+ 'a.b.c.d',
109
+ 'a.b.c',
110
+ 'a.b.c.d.e',
111
+ 'a.b.c.d.e.f',
112
+ 'a.b.c.d.e.f.g',
113
+ 'a.b.c.d.e.f.g.h',
114
+ 'a.b.c.d.e.f.g.h.i',
115
+ 'foo',
116
+ 'bar',
117
+ ])).toEqual(['a.b.c.d.e.f.g.h.i', 'foo', 'bar']);
118
+ expect((0, slugs_1.getDeepestPaths)(['a'])).toEqual(['a']);
119
+ expect((0, slugs_1.getDeepestPaths)(['a', 'b'])).toEqual(['a', 'b']);
120
+ });
121
+ });
122
+ describe('isSubpath', () => {
123
+ test('should return true if the path is a subpath of the other path', () => {
124
+ expect((0, slugs_1.isSubPath)('a.b.c', 'a.b')).toEqual(false);
125
+ expect((0, slugs_1.isSubPath)('a.b.c', 'a.b.c')).toEqual(false);
126
+ expect((0, slugs_1.isSubPath)('a.b.c', 'a.b.c.d')).toEqual(true);
127
+ expect((0, slugs_1.isSubPath)('a', 'a')).toEqual(false);
128
+ expect((0, slugs_1.isSubPath)('a', 'a.b')).toEqual(true);
129
+ });
130
+ });
111
131
  //# sourceMappingURL=slug.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slug.test.js","sourceRoot":"","sources":["../../../src/utils/slug.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slug.test.js","sourceRoot":"","sources":["../../../src/utils/slug.test.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,7 @@
1
1
  export declare const generateSlug: (name: string) => string;
2
- /**
3
- * Get all slugs with hierarchy for a given slug
4
- * For example, "parent-space/child-space" will return ["parent-space", "parent-space/child-space"]
5
- * @param slug - The slug to get the hierarchy for
6
- * @returns An array of slugs with hierarchy
7
- */
8
- export declare const getSlugsWithHierarchy: (slug: string) => string[];
9
- /**
10
- * Get the parent slug from a slug with hierarchy
11
- * For example, "parent-space/child-space" will return "parent-space"
12
- * @param slug - The slug to get the parent slug from
13
- * @returns The parent slug
14
- */
15
- export declare const getParentSlug: (slug: string) => string;
16
- /**
17
- * Get the label from a slug with hierarchy
18
- * For example, "parent-space/child-space" will return "child-space"
19
- * @param slug - The slug to get the label from
20
- * @returns The label
21
- */
22
- export declare const getLabelFromSlug: (slug: string) => string;
23
- /**
24
- * Get the ltree path from a slug with hierarchy
25
- * For example, "parent-space/child-space" will return "parent_space.child_space"
26
- * Verifies that each slug is a valid PostgreSQL ltree label (A-Za-z0-9_)
27
- * @param slug - The slug to get the ltree path from
28
- * @returns The ltree path
29
- */
30
2
  export declare const getLtreePathFromSlug: (slug: string) => string;
3
+ export declare const getLtreePathFromContentAsCodePath: (path: string) => string;
4
+ export declare const getContentAsCodePathFromLtreePath: (path: string) => string;
5
+ export declare const getDeepestPaths: (paths: string[]) => string[];
6
+ export declare const isSubPath: (path: string, subPath: string) => boolean;
31
7
  //# sourceMappingURL=slugs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slugs.d.ts","sourceRoot":"","sources":["../../../src/utils/slugs.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,YAAY,SAAU,MAAM,WAQxC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,SAAU,MAAM,aAMxC,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,aAAa,SAAU,MAAM,WACA,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,SAAU,MAAM,WAAkC,CAAC;AAEhF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,SAAU,MAAM,WAKhD,CAAC"}
1
+ {"version":3,"file":"slugs.d.ts","sourceRoot":"","sources":["../../../src/utils/slugs.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,YAAY,SAAU,MAAM,WAQxC,CAAC;AAEF,eAAO,MAAM,oBAAoB,SAAU,MAAM,WAQhD,CAAC;AAEF,eAAO,MAAM,iCAAiC,SAAU,MAAM,WACf,CAAC;AAEhD,eAAO,MAAM,iCAAiC,SAAU,MAAM,WACf,CAAC;AAEhD,eAAO,MAAM,eAAe,UAAW,MAAM,EAAE,KAAG,MAAM,EA4BvD,CAAC;AAEF,eAAO,MAAM,SAAS,SAAU,MAAM,WAAW,MAAM,YACK,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLtreePathFromSlug = exports.getLabelFromSlug = exports.getParentSlug = exports.getSlugsWithHierarchy = exports.generateSlug = void 0;
3
+ exports.isSubPath = exports.getDeepestPaths = exports.getContentAsCodePathFromLtreePath = exports.getLtreePathFromContentAsCodePath = exports.getLtreePathFromSlug = exports.generateSlug = void 0;
4
4
  const sanitizeSlug = (slug, trimHyphens = true) => {
5
5
  let sanitizedSlug = slug
6
6
  .toLowerCase()
@@ -22,46 +22,43 @@ const generateSlug = (name) => {
22
22
  return sanitizedSlug;
23
23
  };
24
24
  exports.generateSlug = generateSlug;
25
- /**
26
- * Get all slugs with hierarchy for a given slug
27
- * For example, "parent-space/child-space" will return ["parent-space", "parent-space/child-space"]
28
- * @param slug - The slug to get the hierarchy for
29
- * @returns An array of slugs with hierarchy
30
- */
31
- const getSlugsWithHierarchy = (slug) => slug.split('/').reduce((acc, s) => {
32
- if (acc.length === 0) {
33
- return [s];
34
- }
35
- return [...acc, `${acc[acc.length - 1]}/${s}`];
36
- }, []);
37
- exports.getSlugsWithHierarchy = getSlugsWithHierarchy;
38
- /**
39
- * Get the parent slug from a slug with hierarchy
40
- * For example, "parent-space/child-space" will return "parent-space"
41
- * @param slug - The slug to get the parent slug from
42
- * @returns The parent slug
43
- */
44
- const getParentSlug = (slug) => slug.split('/').slice(0, -1).join('/');
45
- exports.getParentSlug = getParentSlug;
46
- /**
47
- * Get the label from a slug with hierarchy
48
- * For example, "parent-space/child-space" will return "child-space"
49
- * @param slug - The slug to get the label from
50
- * @returns The label
51
- */
52
- const getLabelFromSlug = (slug) => slug.split('/').pop() ?? slug;
53
- exports.getLabelFromSlug = getLabelFromSlug;
54
- /**
55
- * Get the ltree path from a slug with hierarchy
56
- * For example, "parent-space/child-space" will return "parent_space.child_space"
57
- * Verifies that each slug is a valid PostgreSQL ltree label (A-Za-z0-9_)
58
- * @param slug - The slug to get the ltree path from
59
- * @returns The ltree path
60
- */
61
25
  const getLtreePathFromSlug = (slug) => {
62
- const slugs = slug.split('/');
63
- const sanitizedSlugs = slugs.map((s) => sanitizeSlug(s, false));
64
- return sanitizedSlugs.join('.').replace(/-/g, '_');
26
+ let path = slug;
27
+ // This is for backwards compatibility with the old slug format that contained hierarchy
28
+ if (path.includes('/')) {
29
+ path = path.split('/').join('___');
30
+ }
31
+ return path.replace(/-/g, '_');
65
32
  };
66
33
  exports.getLtreePathFromSlug = getLtreePathFromSlug;
34
+ const getLtreePathFromContentAsCodePath = (path) => path.replace(/-/g, '_').replace(/\//g, '.');
35
+ exports.getLtreePathFromContentAsCodePath = getLtreePathFromContentAsCodePath;
36
+ const getContentAsCodePathFromLtreePath = (path) => path.replace(/_/g, '-').replace(/\./g, '/');
37
+ exports.getContentAsCodePathFromLtreePath = getContentAsCodePathFromLtreePath;
38
+ const getDeepestPaths = (paths) => {
39
+ const uniquePaths = Array.from(new Set(paths));
40
+ const result = [];
41
+ for (const path of uniquePaths) {
42
+ const pathSegments = path.split('.');
43
+ const isPrefix = uniquePaths.some((otherPath) => {
44
+ if (path === otherPath)
45
+ return false;
46
+ const otherSegments = otherPath.split('.');
47
+ if (pathSegments.length < otherSegments.length) {
48
+ const potentialPrefix = otherSegments
49
+ .slice(0, pathSegments.length)
50
+ .join('.');
51
+ return potentialPrefix === path;
52
+ }
53
+ return false;
54
+ });
55
+ if (!isPrefix) {
56
+ result.push(path);
57
+ }
58
+ }
59
+ return result;
60
+ };
61
+ exports.getDeepestPaths = getDeepestPaths;
62
+ const isSubPath = (path, subPath) => subPath.startsWith(path) && subPath[path.length] === '.';
63
+ exports.isSubPath = isSubPath;
67
64
  //# sourceMappingURL=slugs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slugs.js","sourceRoot":"","sources":["../../../src/utils/slugs.ts"],"names":[],"mappings":";;;AAAA,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,WAAW,GAAG,IAAI,EAAE,EAAE;IACtD,IAAI,aAAa,GAAG,IAAI;SACnB,WAAW,EAAE;QACd,kEAAkE;SACjE,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAEjC,IAAI,WAAW,EAAE,CAAC;QACd,oCAAoC;QACpC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;IACzC,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,qCAAqC;QACrC,sDAAsD;QACtD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AARW,QAAA,YAAY,gBAQvB;AAEF;;;;;GAKG;AACI,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,EAAE,CAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAW,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;IACxC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,CAAC,CAAC,CAAC,CAAC;IACf,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC,EAAE,EAAE,CAAC,CAAC;AANE,QAAA,qBAAqB,yBAMvB;AAEX;;;;;GAKG;AACI,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE,CAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAD9B,QAAA,aAAa,iBACiB;AAE3C;;;;;GAKG;AACI,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;AAAnE,QAAA,gBAAgB,oBAAmD;AAEhF;;;;;;GAMG;AACI,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,EAAE;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAEhE,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC,CAAC;AALW,QAAA,oBAAoB,wBAK/B"}
1
+ {"version":3,"file":"slugs.js","sourceRoot":"","sources":["../../../src/utils/slugs.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,14 @@ export declare enum PromotionAction {
7
7
  UPDATE = "update",
8
8
  DELETE = "delete"
9
9
  }
10
- export type PromotedSpace = Omit<SpaceSummary, 'userAccess' | 'parentSpaceUuid' | 'path'>;
10
+ export type PromotedSpace = Omit<SpaceSummary, 'userAccess'>;
11
11
  export type PromotedDashboard = DashboardDAO & {
12
12
  spaceSlug: string;
13
+ spacePath: string;
13
14
  };
14
15
  export type PromotedChart = SavedChartDAO & {
15
16
  spaceSlug: string;
17
+ spacePath: string;
16
18
  oldUuid: string;
17
19
  };
18
20
  export type PromotionChanges = {
@@ -1 +1 @@
1
- {"version":3,"file":"promotion.d.ts","sourceRoot":"","sources":["../../../src/types/promotion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,oBAAY,eAAe;IACvB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAC5B,YAAY,EACZ,YAAY,GAAG,iBAAiB,GAAG,MAAM,CAC5C,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG;IAC3C,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,MAAM,EAAE;QACJ,MAAM,EAAE,eAAe,CAAC;QACxB,IAAI,EAAE,aAAa,CAAC;KACvB,EAAE,CAAC;IACJ,UAAU,EAAE;QACR,MAAM,EAAE,eAAe,CAAC;QACxB,IAAI,EAAE,iBAAiB,CAAC;KAC3B,EAAE,CAAC;IACJ,MAAM,EAAE;QACJ,MAAM,EAAE,eAAe,CAAC;QACxB,IAAI,EAAE,aAAa,CAAC;KACvB,EAAE,CAAC;CACP,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACtC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACtC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;CAC7B,CAAC"}
1
+ {"version":3,"file":"promotion.d.ts","sourceRoot":"","sources":["../../../src/types/promotion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,oBAAY,eAAe;IACvB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,MAAM,EAAE;QACJ,MAAM,EAAE,eAAe,CAAC;QACxB,IAAI,EAAE,aAAa,CAAC;KACvB,EAAE,CAAC;IACJ,UAAU,EAAE;QACR,MAAM,EAAE,eAAe,CAAC;QACxB,IAAI,EAAE,iBAAiB,CAAC;KAC3B,EAAE,CAAC;IACJ,MAAM,EAAE;QACJ,MAAM,EAAE,eAAe,CAAC;QACxB,IAAI,EAAE,aAAa,CAAC;KACvB,EAAE,CAAC;CACP,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACtC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACtC,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;CAC7B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { generateSlug, getLabelFromSlug, getLtreePathFromSlug, getParentSlug, getSlugsWithHierarchy, } from './slugs';
1
+ import { generateSlug, getContentAsCodePathFromLtreePath, getDeepestPaths, getLtreePathFromContentAsCodePath, getLtreePathFromSlug, isSubPath, } from './slugs';
2
2
  describe('Slug', () => {
3
3
  test('should generate space slugs', async () => {
4
4
  expect(generateSlug('my space name')).toEqual('my-space-name');
@@ -37,73 +37,93 @@ describe('Slug', () => {
37
37
  // Handle japanese characters
38
38
  expect(generateSlug('ライトダッシュ').length).toEqual(5);
39
39
  });
40
- describe('getSlugsWithHierarchy', () => {
41
- test('should return array with single slug for non-hierarchical slug', () => {
42
- expect(getSlugsWithHierarchy('my-space')).toEqual(['my-space']);
43
- });
44
- test('should return array with hierarchical slugs', () => {
45
- expect(getSlugsWithHierarchy('parent-space/child-space')).toEqual([
46
- 'parent-space',
47
- 'parent-space/child-space',
48
- ]);
49
- });
50
- test('should handle multiple levels of hierarchy', () => {
51
- expect(getSlugsWithHierarchy('grandparent-space/parent-space/child-space')).toEqual([
52
- 'grandparent-space',
53
- 'grandparent-space/parent-space',
54
- 'grandparent-space/parent-space/child-space',
55
- ]);
56
- });
57
- });
58
- describe('getParentSlug', () => {
59
- test('should return empty string for non-hierarchical slug', () => {
60
- expect(getParentSlug('my-space')).toEqual('');
61
- });
62
- test('should return parent slug for hierarchical slug', () => {
63
- expect(getParentSlug('parent-space/child-space')).toEqual('parent-space');
64
- });
65
- test('should return parent path for deeply nested slug', () => {
66
- expect(getParentSlug('grandparent-space/parent-space/child-space')).toEqual('grandparent-space/parent-space');
67
- });
68
- });
69
- describe('getLabelFromSlug', () => {
70
- test('should return same slug for non-hierarchical slug', () => {
71
- expect(getLabelFromSlug('my-space')).toEqual('my-space');
72
- });
73
- test('should return last part of hierarchical slug', () => {
74
- expect(getLabelFromSlug('parent-space/child-space')).toEqual('child-space');
75
- });
76
- test('should return last part of deeply nested slug', () => {
77
- expect(getLabelFromSlug('grandparent-space/parent-space/child-space')).toEqual('child-space');
78
- });
79
- });
80
40
  describe('getLtreePathFromSlug', () => {
81
- test('should convert simple slug to ltree path', () => {
41
+ test('should return ltree path from slug', () => {
82
42
  expect(getLtreePathFromSlug('my-space')).toEqual('my_space');
83
43
  });
84
- test('should convert hierarchical slug to ltree path', () => {
85
- expect(getLtreePathFromSlug('parent-space/child-space')).toEqual('parent_space.child_space');
86
- });
87
- test('should handle deeply nested slugs', () => {
88
- expect(getLtreePathFromSlug('grandparent-space/parent-space/child-space')).toEqual('grandparent_space.parent_space.child_space');
89
- });
90
- test('should remove non-alphanumeric characters except underscores', () => {
91
- expect(getLtreePathFromSlug('my!space@name')).toEqual('my_space_name');
92
- expect(getLtreePathFromSlug('my space name')).toEqual('my_space_name');
93
- expect(getLtreePathFromSlug('my_space_name')).toEqual('my_space_name');
94
- });
95
- test('should handle mixed case slugs', () => {
96
- expect(getLtreePathFromSlug('MySpace/ChildSpace')).toEqual('myspace.childspace');
97
- });
98
- test('should handle empty slug', () => {
99
- expect(getLtreePathFromSlug('')).toEqual('');
44
+ test('should return ltree path from legacy hierarchical slug', () => {
45
+ expect(getLtreePathFromSlug('parent-space/child-space')).toEqual('parent_space___child_space');
100
46
  });
101
47
  test('should not trim hyphens from slug', () => {
102
48
  expect(getLtreePathFromSlug('-my-space-name-with-hyphens-')).toEqual('_my_space_name_with_hyphens_');
103
49
  });
104
50
  test('should not trim hyphens from deeply nested slug', () => {
105
- expect(getLtreePathFromSlug('grandparent-space-/-parent-space/child-space-')).toEqual('grandparent_space_._parent_space.child_space_');
51
+ expect(getLtreePathFromSlug('grandparent-space-/-parent-space/child-space-')).toEqual('grandparent_space_____parent_space___child_space_');
106
52
  });
107
53
  });
108
54
  });
55
+ describe('getLtreePathFromContentAsCodePath', () => {
56
+ test('root', () => {
57
+ expect(getLtreePathFromContentAsCodePath('my-space')).toEqual('my_space');
58
+ });
59
+ test('nested', () => {
60
+ expect(getLtreePathFromContentAsCodePath('parent/child/-grandchild/final-child')).toEqual('parent.child._grandchild.final_child');
61
+ expect(getLtreePathFromContentAsCodePath('-parent-/-child-')).toEqual('_parent_._child_');
62
+ });
63
+ test('new slugs', () => {
64
+ expect(getLtreePathFromContentAsCodePath('-foo/-foo___bar/-foo___bar___boo')).toEqual('_foo._foo___bar._foo___bar___boo');
65
+ });
66
+ });
67
+ describe('getContentAsCodePathFromLtreePath', () => {
68
+ test('root', () => {
69
+ expect(getContentAsCodePathFromLtreePath('my_space')).toEqual('my-space');
70
+ expect(getContentAsCodePathFromLtreePath('_my_space')).toEqual('-my-space');
71
+ });
72
+ test('nested', () => {
73
+ expect(getContentAsCodePathFromLtreePath('parent.child._grandchild.final_child')).toEqual('parent/child/-grandchild/final-child');
74
+ });
75
+ test('new slugs', () => {
76
+ expect(getContentAsCodePathFromLtreePath('_foo._foo___bar._foo___bar___boo')).toEqual('-foo/-foo---bar/-foo---bar---boo');
77
+ });
78
+ });
79
+ describe('getContentAsCodePathFromLtreePath + getLtreePathFromContentAsCodePath', () => {
80
+ test('should be the inverse of each other', () => {
81
+ expect(getContentAsCodePathFromLtreePath(getLtreePathFromContentAsCodePath('my-space'))).toEqual('my-space');
82
+ expect(getLtreePathFromContentAsCodePath(getContentAsCodePathFromLtreePath('__my_space_'))).toEqual('__my_space_');
83
+ expect(getLtreePathFromContentAsCodePath(getContentAsCodePathFromLtreePath('__my_space_.foo.bar'))).toEqual('__my_space_.foo.bar');
84
+ });
85
+ });
86
+ describe('getDeepestPaths', () => {
87
+ test('should return the deepest paths', () => {
88
+ expect(getDeepestPaths([
89
+ 'dash',
90
+ 'charts',
91
+ 'charts2',
92
+ 'charts2.charts2_child',
93
+ ])).toEqual(['dash', 'charts', 'charts2.charts2_child']);
94
+ expect(getDeepestPaths([
95
+ 'jaffle_shop.dashboards.dashboards_marketing',
96
+ 'jaffle_shop.sub_charts_2.sub_charts_2_child',
97
+ 'jaffle_shop.dashboards',
98
+ 'jaffle_shop.sub_charts',
99
+ 'jaffle_shop.sub_charts_2',
100
+ ])).toEqual([
101
+ 'jaffle_shop.dashboards.dashboards_marketing',
102
+ 'jaffle_shop.sub_charts_2.sub_charts_2_child',
103
+ 'jaffle_shop.sub_charts',
104
+ ]);
105
+ expect(getDeepestPaths([
106
+ 'a.b.c.d',
107
+ 'a.b.c',
108
+ 'a.b.c.d.e',
109
+ 'a.b.c.d.e.f',
110
+ 'a.b.c.d.e.f.g',
111
+ 'a.b.c.d.e.f.g.h',
112
+ 'a.b.c.d.e.f.g.h.i',
113
+ 'foo',
114
+ 'bar',
115
+ ])).toEqual(['a.b.c.d.e.f.g.h.i', 'foo', 'bar']);
116
+ expect(getDeepestPaths(['a'])).toEqual(['a']);
117
+ expect(getDeepestPaths(['a', 'b'])).toEqual(['a', 'b']);
118
+ });
119
+ });
120
+ describe('isSubpath', () => {
121
+ test('should return true if the path is a subpath of the other path', () => {
122
+ expect(isSubPath('a.b.c', 'a.b')).toEqual(false);
123
+ expect(isSubPath('a.b.c', 'a.b.c')).toEqual(false);
124
+ expect(isSubPath('a.b.c', 'a.b.c.d')).toEqual(true);
125
+ expect(isSubPath('a', 'a')).toEqual(false);
126
+ expect(isSubPath('a', 'a.b')).toEqual(true);
127
+ });
128
+ });
109
129
  //# sourceMappingURL=slug.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slug.test.js","sourceRoot":"","sources":["../../../src/utils/slug.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slug.test.js","sourceRoot":"","sources":["../../../src/utils/slug.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,iCAAiC,EACjC,eAAe,EACf,iCAAiC,EACjC,oBAAoB,EACpB,SAAS,GACZ,MAAM,SAAS,CAAC;AAEjB,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IAClB,IAAI,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAE/D,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAE/D,MAAM,CACF,YAAY,CAAC,8CAA8C,CAAC,CAC/D,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;QAEzD,MAAM,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAChD,oBAAoB,CACvB,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,CACF,YAAY,CAAC,8CAA8C,CAAC,CAC/D,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAEvE,MAAM,CACF,YAAY,CAAC,kDAAkD,CAAC,CACnE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,8CAA8C;QAC9C,MAAM,CAAC,YAAY,CAAC,sCAAsC,CAAC,CAAC,CAAC,OAAO,CAChE,0BAA0B,CAC7B,CAAC;QAEF,wBAAwB;QACxB,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEhE,0DAA0D;QAC1D,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACvE,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAEjE,sBAAsB;QACtB,MAAM,CAAC,YAAY,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,CACxD,qBAAqB,CACxB,CAAC;QAEF,6BAA6B;QAC7B,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE9D,kEAAkE;QAClE,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE/C,6CAA6C;QAC7C,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE/C,6BAA6B;QAC7B,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,MAAM,CAAC,oBAAoB,CAAC,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAC5D,4BAA4B,CAC/B,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,CACF,oBAAoB,CAAC,8BAA8B,CAAC,CACvD,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,CACF,oBAAoB,CAChB,+CAA+C,CAClD,CACJ,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC/C,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QACd,MAAM,CAAC,iCAAiC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CACzD,UAAU,CACb,CAAC;IACN,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;QAChB,MAAM,CACF,iCAAiC,CAC7B,sCAAsC,CACzC,CACJ,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QAClD,MAAM,CAAC,iCAAiC,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CACjE,kBAAkB,CACrB,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;QACnB,MAAM,CACF,iCAAiC,CAC7B,kCAAkC,CACrC,CACJ,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC/C,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QACd,MAAM,CAAC,iCAAiC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CACzD,UAAU,CACb,CAAC;QACF,MAAM,CAAC,iCAAiC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAC1D,WAAW,CACd,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;QAChB,MAAM,CACF,iCAAiC,CAC7B,sCAAsC,CACzC,CACJ,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;QACnB,MAAM,CACF,iCAAiC,CAC7B,kCAAkC,CACrC,CACJ,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uEAAuE,EAAE,GAAG,EAAE;IACnF,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CACF,iCAAiC,CAC7B,iCAAiC,CAAC,UAAU,CAAC,CAChD,CACJ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEtB,MAAM,CACF,iCAAiC,CAC7B,iCAAiC,CAAC,aAAa,CAAC,CACnD,CACJ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAEzB,MAAM,CACF,iCAAiC,CAC7B,iCAAiC,CAAC,qBAAqB,CAAC,CAC3D,CACJ,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CACF,eAAe,CAAC;YACZ,MAAM;YACN,QAAQ;YACR,SAAS;YACT,uBAAuB;SAC1B,CAAC,CACL,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAEvD,MAAM,CACF,eAAe,CAAC;YACZ,6CAA6C;YAC7C,6CAA6C;YAC7C,wBAAwB;YACxB,wBAAwB;YACxB,0BAA0B;SAC7B,CAAC,CACL,CAAC,OAAO,CAAC;YACN,6CAA6C;YAC7C,6CAA6C;YAC7C,wBAAwB;SAC3B,CAAC,CAAC;QAEH,MAAM,CACF,eAAe,CAAC;YACZ,SAAS;YACT,OAAO;YACP,WAAW;YACX,aAAa;YACb,eAAe;YACf,iBAAiB;YACjB,mBAAmB;YACnB,KAAK;YACL,KAAK;SACR,CAAC,CACL,CAAC,OAAO,CAAC,CAAC,mBAAmB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAE/C,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE9C,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,IAAI,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,31 +1,7 @@
1
1
  export declare const generateSlug: (name: string) => string;
2
- /**
3
- * Get all slugs with hierarchy for a given slug
4
- * For example, "parent-space/child-space" will return ["parent-space", "parent-space/child-space"]
5
- * @param slug - The slug to get the hierarchy for
6
- * @returns An array of slugs with hierarchy
7
- */
8
- export declare const getSlugsWithHierarchy: (slug: string) => string[];
9
- /**
10
- * Get the parent slug from a slug with hierarchy
11
- * For example, "parent-space/child-space" will return "parent-space"
12
- * @param slug - The slug to get the parent slug from
13
- * @returns The parent slug
14
- */
15
- export declare const getParentSlug: (slug: string) => string;
16
- /**
17
- * Get the label from a slug with hierarchy
18
- * For example, "parent-space/child-space" will return "child-space"
19
- * @param slug - The slug to get the label from
20
- * @returns The label
21
- */
22
- export declare const getLabelFromSlug: (slug: string) => string;
23
- /**
24
- * Get the ltree path from a slug with hierarchy
25
- * For example, "parent-space/child-space" will return "parent_space.child_space"
26
- * Verifies that each slug is a valid PostgreSQL ltree label (A-Za-z0-9_)
27
- * @param slug - The slug to get the ltree path from
28
- * @returns The ltree path
29
- */
30
2
  export declare const getLtreePathFromSlug: (slug: string) => string;
3
+ export declare const getLtreePathFromContentAsCodePath: (path: string) => string;
4
+ export declare const getContentAsCodePathFromLtreePath: (path: string) => string;
5
+ export declare const getDeepestPaths: (paths: string[]) => string[];
6
+ export declare const isSubPath: (path: string, subPath: string) => boolean;
31
7
  //# sourceMappingURL=slugs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slugs.d.ts","sourceRoot":"","sources":["../../../src/utils/slugs.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,YAAY,SAAU,MAAM,WAQxC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,SAAU,MAAM,aAMxC,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,aAAa,SAAU,MAAM,WACA,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,SAAU,MAAM,WAAkC,CAAC;AAEhF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,SAAU,MAAM,WAKhD,CAAC"}
1
+ {"version":3,"file":"slugs.d.ts","sourceRoot":"","sources":["../../../src/utils/slugs.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,YAAY,SAAU,MAAM,WAQxC,CAAC;AAEF,eAAO,MAAM,oBAAoB,SAAU,MAAM,WAQhD,CAAC;AAEF,eAAO,MAAM,iCAAiC,SAAU,MAAM,WACf,CAAC;AAEhD,eAAO,MAAM,iCAAiC,SAAU,MAAM,WACf,CAAC;AAEhD,eAAO,MAAM,eAAe,UAAW,MAAM,EAAE,KAAG,MAAM,EA4BvD,CAAC;AAEF,eAAO,MAAM,SAAS,SAAU,MAAM,WAAW,MAAM,YACK,CAAC"}