@workjournal/shared 2.5.0 → 2.7.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.
@@ -3,12 +3,12 @@ import { proposeWorkspaceNameFromEmail } from '../propose-workspace-name.js';
3
3
  import { MAX_NAME_LENGTH } from '../slug.js';
4
4
  describe('proposeWorkspaceNameFromEmail', () => {
5
5
  it('turns a plain email into dash-separated form', () => {
6
- // julius-at-example-com is 21 chars (over MAX_NAME_LENGTH=20), so it
7
- // trims at the last hyphen in the back half → julius-at-example.
6
+ // julius-at-example-com is 21 chars (over the 20-char suggestion cap),
7
+ // so it trims at the last hyphen in the back half → julius-at-example.
8
8
  expect(proposeWorkspaceNameFromEmail('julius@example.com')).toBe('julius-at-example');
9
9
  });
10
10
  it('turns a short email into the full dash-separated form', () => {
11
- // Fits within MAX_NAME_LENGTH=20: j-at-e-com = 11 chars.
11
+ // Fits within the 20-char suggestion cap: j-at-e-com = 11 chars.
12
12
  expect(proposeWorkspaceNameFromEmail('j@e.com')).toBe('j-at-e-com');
13
13
  });
14
14
  it('lowercases mixed-case input', () => {
@@ -41,9 +41,9 @@ describe('proposeWorkspaceNameFromEmail', () => {
41
41
  expect(result.length).toBeLessThanOrEqual(MAX_NAME_LENGTH);
42
42
  });
43
43
  it('prefers a hyphen boundary when truncating a long email', () => {
44
- // verylongusername-at-somelongdomain-com is 39 chars, way past 20.
45
- // We expect a trim at a hyphen boundary that lives in the back half
46
- // of the 20-char cap (i.e. index > 10), never a mid-word chop.
44
+ // verylongusername-at-somelongdomain-com is 39 chars, way past the
45
+ // 20-char suggestion cap. We expect a trim at a hyphen boundary that
46
+ // lives in the back half of the cap (i.e. index > 10), never a mid-word chop.
47
47
  const result = proposeWorkspaceNameFromEmail('verylongusername@somelongdomain.com');
48
48
  expect(result.length).toBeLessThanOrEqual(MAX_NAME_LENGTH);
49
49
  expect(result.endsWith('-')).toBe(false);
@@ -1 +1 @@
1
- {"version":3,"file":"propose-workspace-name.test.js","sourceRoot":"","sources":["../../src/__tests__/propose-workspace-name.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACvD,qEAAqE;QACrE,iEAAiE;QACjE,MAAM,CAAC,6BAA6B,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAChE,yDAAyD;QACzD,MAAM,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACvE,gEAAgE;QAChE,MAAM,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAG,6BAA6B,CAAC,qCAAqC,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QACjE,mEAAmE;QACnE,oEAAoE;QACpE,+DAA+D;QAC/D,MAAM,MAAM,GAAG,6BAA6B,CAAC,qCAAqC,CAAC,CAAC;QACpF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,wEAAwE;QACxE,oDAAoD;QACpD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC/D,qEAAqE;QACrE,mEAAmE;QACnE,MAAM,CAAC,6BAA6B,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,6BAA6B,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACzD,sEAAsE;QACtE,uEAAuE;QACvE,MAAM,CAAC,6BAA6B,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"propose-workspace-name.test.js","sourceRoot":"","sources":["../../src/__tests__/propose-workspace-name.test.ts"],"names":[],"mappings":"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"}
@@ -39,10 +39,10 @@ describe('slugify', () => {
39
39
  });
40
40
  it('does not use hyphen boundary when it would leave too little', () => {
41
41
  // Hyphen only in the first half → hard-cap without boundary
42
- const input = `x-${'y'.repeat(40)}`;
42
+ const input = `x-${'y'.repeat(50)}`;
43
43
  const result = slugify(input);
44
44
  expect(result.length).toBeLessThanOrEqual(MAX_SLUG_LENGTH);
45
- expect(result).toBe(`x-${'y'.repeat(28)}`);
45
+ expect(result).toBe(`x-${'y'.repeat(38)}`);
46
46
  });
47
47
  it('handles underscores as separators', () => {
48
48
  expect(slugify('snake_case_name')).toBe('snake-case-name');
@@ -51,6 +51,8 @@ export declare const WS_API_PATHS: {
51
51
  readonly exportJournal: (workspaceSlug: string, journalSlug: string) => string;
52
52
  readonly publicJournal: (slug: string) => string;
53
53
  readonly publicEntries: (slug: string) => string;
54
+ /** Shields.io endpoint-badge JSON for a public journal (name + entry count). */
55
+ readonly publicJournalBadge: (slug: string) => string;
54
56
  readonly publicEntry: (slug: string, index: number | string) => string;
55
57
  readonly sharedWithMeJournals: "/v1/shared-with-me/journals";
56
58
  readonly prompts: (workspaceSlug: string) => string;
@@ -112,9 +114,9 @@ export declare const MAX_SUMMARY_LENGTH = 500;
112
114
  export declare const MAX_TITLE_LENGTH = 80;
113
115
  export declare const MAX_PROMPT_NAME_LENGTH = 80;
114
116
  export declare const MAX_PROMPT_BODY_LENGTH = 10000;
115
- /** @deprecated Use `MAX_NAME_LENGTH` (20) from `./slug.ts`. Kept as an alias
117
+ /** @deprecated Use `MAX_NAME_LENGTH` (100) from `./slug.ts`. Kept as an alias
116
118
  * for backward compat until the breaking CLI/MCP releases (#176, #177) drop it. */
117
- export declare const MAX_JOURNAL_NAME_LENGTH = 20;
119
+ export declare const MAX_JOURNAL_NAME_LENGTH = 100;
118
120
  export declare const MAX_EMAIL_LENGTH = 320;
119
121
  export declare const DEFAULT_PAGE_LIMIT = 50;
120
122
  export declare const MAX_PAGE_LIMIT = 100;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,EAAG,IAAa,CAAC;AAEzC;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS;;;6BAGL,MAAM;;2BAER,MAAM;kCACC,MAAM;gCACR,MAAM,SAAS,MAAM,GAAG,MAAM;wCAEtB,MAAM;uCACP,MAAM;sCACP,MAAM,UAAU,MAAM;sCAEtB,MAAM;qCACP,MAAM,gBAAgB,MAAM;;wCAGzB,MAAM;mCACX,MAAM;mCACN,MAAM;iCACR,MAAM,SAAS,MAAM,GAAG,MAAM;CAEzC,CAAC;AAeX,eAAO,MAAM,YAAY;;;wCAGG,MAAM;;uCAEP,MAAM;sCACP,MAAM,eAAe,MAAM;+CAClB,MAAM;sCACf,MAAM,eAAe,MAAM;oCAE7B,MAAM,eAAe,MAAM,SAAS,MAAM,GAAG,MAAM;4CAE3C,MAAM,eAAe,MAAM;IAE1D;2EACuE;wCAC5C,MAAM,eAAe,MAAM;2CAExB,MAAM,eAAe,MAAM;0CAE5B,MAAM,eAAe,MAAM,UAAU,MAAM;0CAE3C,MAAM,eAAe,MAAM;yCAE5B,MAAM,eAAe,MAAM,gBAAgB,MAAM;+CAE3C,MAAM,eAAe,MAAM,gBAAgB,MAAM;;wCAGxD,MAAM;4CACF,MAAM,eAAe,MAAM;mCAEpC,MAAM;mCACN,MAAM;iCACR,MAAM,SAAS,MAAM,GAAG,MAAM;;sCAGzB,MAAM;qCACP,MAAM,cAAc,MAAM;IAElD,sFAAsF;6CACtD,MAAM,eAAe,MAAM;IAE3D;2EACuE;4CACxC,MAAM,eAAe,MAAM,cAAc,MAAM;mCAExD,MAAM;kCACP,MAAM,WAAW,MAAM;IAE5C,yDAAyD;wCAC9B,MAAM,eAAe,MAAM,WAAW,MAAM;6CAEvC,MAAM;IACtC,4EAA4E;;IAE5E,6EAA6E;2CAC/C,MAAM;IACpC;mFAC+E;iDAC3C,MAAM;IAC1C;gFAC4E;wDACjC,MAAM;IAEjD,+EAA+E;iDAC3C,MAAM;IAC1C;6EACyE;qDACjC,MAAM;CACrC,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAG,gBAAyB,CAAC;AAE7D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;CAkBd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEvE,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAC7C;mFACmF;AACnF,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAG,sCAA+C,CAAC;AAEjF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAG,SAAkB,CAAC;AAEtD;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAG,KAAc,CAAC;AAClD,eAAO,MAAM,uBAAuB,EAAG,KAAc,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,EAAG,IAAa,CAAC;AAEzC;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS;;;6BAGL,MAAM;;2BAER,MAAM;kCACC,MAAM;gCACR,MAAM,SAAS,MAAM,GAAG,MAAM;wCAEtB,MAAM;uCACP,MAAM;sCACP,MAAM,UAAU,MAAM;sCAEtB,MAAM;qCACP,MAAM,gBAAgB,MAAM;;wCAGzB,MAAM;mCACX,MAAM;mCACN,MAAM;iCACR,MAAM,SAAS,MAAM,GAAG,MAAM;CAEzC,CAAC;AAeX,eAAO,MAAM,YAAY;;;wCAGG,MAAM;;uCAEP,MAAM;sCACP,MAAM,eAAe,MAAM;+CAClB,MAAM;sCACf,MAAM,eAAe,MAAM;oCAE7B,MAAM,eAAe,MAAM,SAAS,MAAM,GAAG,MAAM;4CAE3C,MAAM,eAAe,MAAM;IAE1D;2EACuE;wCAC5C,MAAM,eAAe,MAAM;2CAExB,MAAM,eAAe,MAAM;0CAE5B,MAAM,eAAe,MAAM,UAAU,MAAM;0CAE3C,MAAM,eAAe,MAAM;yCAE5B,MAAM,eAAe,MAAM,gBAAgB,MAAM;+CAE3C,MAAM,eAAe,MAAM,gBAAgB,MAAM;;wCAGxD,MAAM;4CACF,MAAM,eAAe,MAAM;mCAEpC,MAAM;mCACN,MAAM;IAC5B,gFAAgF;wCACrD,MAAM;iCACb,MAAM,SAAS,MAAM,GAAG,MAAM;;sCAGzB,MAAM;qCACP,MAAM,cAAc,MAAM;IAElD,sFAAsF;6CACtD,MAAM,eAAe,MAAM;IAE3D;2EACuE;4CACxC,MAAM,eAAe,MAAM,cAAc,MAAM;mCAExD,MAAM;kCACP,MAAM,WAAW,MAAM;IAE5C,yDAAyD;wCAC9B,MAAM,eAAe,MAAM,WAAW,MAAM;6CAEvC,MAAM;IACtC,4EAA4E;;IAE5E,6EAA6E;2CAC/C,MAAM;IACpC;mFAC+E;iDAC3C,MAAM;IAC1C;gFAC4E;wDACjC,MAAM;IAEjD,+EAA+E;iDAC3C,MAAM;IAC1C;6EACyE;qDACjC,MAAM;CACrC,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAG,gBAAyB,CAAC;AAE7D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;CAkBd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEvE,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAC7C;mFACmF;AACnF,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAG,sCAA+C,CAAC;AAEjF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAG,SAAkB,CAAC;AAEtD;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAG,KAAc,CAAC;AAClD,eAAO,MAAM,uBAAuB,EAAG,KAAc,CAAC"}
package/dist/constants.js CHANGED
@@ -61,6 +61,8 @@ export const WS_API_PATHS = {
61
61
  exportJournal: (workspaceSlug, journalSlug) => `${jr(workspaceSlug, journalSlug)}/export`,
62
62
  publicJournal: (slug) => `/${API_VERSION}/public/${encodeURIComponent(slug)}`,
63
63
  publicEntries: (slug) => `/${API_VERSION}/public/${encodeURIComponent(slug)}/entries`,
64
+ /** Shields.io endpoint-badge JSON for a public journal (name + entry count). */
65
+ publicJournalBadge: (slug) => `/${API_VERSION}/public/${encodeURIComponent(slug)}/badge`,
64
66
  publicEntry: (slug, index) => `/${API_VERSION}/public/${encodeURIComponent(slug)}/entries/${encodeURIComponent(String(index))}`,
65
67
  sharedWithMeJournals: `/${API_VERSION}/shared-with-me/journals`,
66
68
  prompts: (workspaceSlug) => `${ws(workspaceSlug)}/prompts`,
@@ -121,9 +123,9 @@ export const MAX_SUMMARY_LENGTH = 500;
121
123
  export const MAX_TITLE_LENGTH = 80;
122
124
  export const MAX_PROMPT_NAME_LENGTH = 80;
123
125
  export const MAX_PROMPT_BODY_LENGTH = 10_000;
124
- /** @deprecated Use `MAX_NAME_LENGTH` (20) from `./slug.ts`. Kept as an alias
126
+ /** @deprecated Use `MAX_NAME_LENGTH` (100) from `./slug.ts`. Kept as an alias
125
127
  * for backward compat until the breaking CLI/MCP releases (#176, #177) drop it. */
126
- export const MAX_JOURNAL_NAME_LENGTH = 20;
128
+ export const MAX_JOURNAL_NAME_LENGTH = 100;
127
129
  export const MAX_EMAIL_LENGTH = 320;
128
130
  export const DEFAULT_PAGE_LIMIT = 50;
129
131
  export const MAX_PAGE_LIMIT = 100;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Suggest a workspace name from the user's email as a sign-up default.
3
3
  * `julius@example.com` → `julius-at-example-com`, truncated to
4
- * `MAX_NAME_LENGTH` (20 chars) if longer. Always returns a non-empty
4
+ * `SUGGESTION_MAX_LENGTH` (20 chars) if longer. Always returns a non-empty
5
5
  * string even if the input is missing or malformed — callers are using
6
6
  * this to prefill a form, so a sensible default beats an empty field.
7
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"propose-workspace-name.d.ts","sourceRoot":"","sources":["../src/propose-workspace-name.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAiBtF"}
1
+ {"version":3,"file":"propose-workspace-name.d.ts","sourceRoot":"","sources":["../src/propose-workspace-name.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAiBtF"}
@@ -1,8 +1,16 @@
1
- import { MAX_NAME_LENGTH, slugify } from './slug.js';
1
+ import { slugify } from './slug.js';
2
+ /**
3
+ * Aesthetic cap for the email-derived sign-up suggestion. Deliberately
4
+ * decoupled from `MAX_NAME_LENGTH` (the hard 100-char limit): a 100-char
5
+ * workspace name auto-derived from an email would be ugly, so the prefilled
6
+ * default stays short. Users can type a longer name afterwards up to the
7
+ * hard limit.
8
+ */
9
+ const SUGGESTION_MAX_LENGTH = 20;
2
10
  /**
3
11
  * Suggest a workspace name from the user's email as a sign-up default.
4
12
  * `julius@example.com` → `julius-at-example-com`, truncated to
5
- * `MAX_NAME_LENGTH` (20 chars) if longer. Always returns a non-empty
13
+ * `SUGGESTION_MAX_LENGTH` (20 chars) if longer. Always returns a non-empty
6
14
  * string even if the input is missing or malformed — callers are using
7
15
  * this to prefill a form, so a sensible default beats an empty field.
8
16
  *
@@ -19,14 +27,14 @@ export function proposeWorkspaceNameFromEmail(email) {
19
27
  const dashed = slugify(raw.replace(/@/g, '-at-'));
20
28
  if (dashed.length === 0)
21
29
  return 'my-workspace';
22
- if (dashed.length <= MAX_NAME_LENGTH)
30
+ if (dashed.length <= SUGGESTION_MAX_LENGTH)
23
31
  return dashed;
24
- // Hyphen-boundary trim if possible, else hard cap. Workspace names cap
25
- // at MAX_NAME_LENGTH (20); slugify's built-in cap is the slug limit (30),
26
- // so we still need to trim down here.
27
- const capped = dashed.slice(0, MAX_NAME_LENGTH);
32
+ // Hyphen-boundary trim if possible, else hard cap. The suggestion caps
33
+ // at SUGGESTION_MAX_LENGTH (20); slugify's built-in cap is the slug limit
34
+ // (40), so we still need to trim down here.
35
+ const capped = dashed.slice(0, SUGGESTION_MAX_LENGTH);
28
36
  const lastHyphen = capped.lastIndexOf('-');
29
- if (lastHyphen > Math.floor(MAX_NAME_LENGTH / 2)) {
37
+ if (lastHyphen > Math.floor(SUGGESTION_MAX_LENGTH / 2)) {
30
38
  return capped.slice(0, lastHyphen);
31
39
  }
32
40
  return capped;
@@ -1 +1 @@
1
- {"version":3,"file":"propose-workspace-name.js","sourceRoot":"","sources":["../src/propose-workspace-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAgC;IAC7E,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IAE5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IAC/C,IAAI,MAAM,CAAC,MAAM,IAAI,eAAe;QAAE,OAAO,MAAM,CAAC;IAEpD,uEAAuE;IACvE,0EAA0E;IAC1E,sCAAsC;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"propose-workspace-name.js","sourceRoot":"","sources":["../src/propose-workspace-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAgC;IAC7E,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IAE5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC;IAC/C,IAAI,MAAM,CAAC,MAAM,IAAI,qBAAqB;QAAE,OAAO,MAAM,CAAC;IAE1D,uEAAuE;IACvE,0EAA0E;IAC1E,4CAA4C;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
package/dist/slug.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export declare const MAX_NAME_LENGTH = 20;
2
- export declare const MAX_SLUG_LENGTH = 30;
1
+ export declare const MAX_NAME_LENGTH = 100;
2
+ export declare const MAX_SLUG_LENGTH = 40;
3
3
  /**
4
4
  * Slugs that would collide with route segments or endpoint names. The
5
5
  * application layer should reject these (or auto-suffix with -1/-2) rather
@@ -1 +1 @@
1
- {"version":3,"file":"slug.d.ts","sourceRoot":"","sources":["../src/slug.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CA2B7C,CAAC;AAEH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAgB7C"}
1
+ {"version":3,"file":"slug.d.ts","sourceRoot":"","sources":["../src/slug.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CA2B7C,CAAC;AAEH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAgB7C"}
package/dist/slug.js CHANGED
@@ -1,5 +1,5 @@
1
- export const MAX_NAME_LENGTH = 20;
2
- export const MAX_SLUG_LENGTH = 30;
1
+ export const MAX_NAME_LENGTH = 100;
2
+ export const MAX_SLUG_LENGTH = 40;
3
3
  /**
4
4
  * Slugs that would collide with route segments or endpoint names. The
5
5
  * application layer should reject these (or auto-suffix with -1/-2) rather
package/dist/slug.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"slug.js","sourceRoot":"","sources":["../src/slug.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAElC;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IAC1D,KAAK;IACL,UAAU;IACV,UAAU;IACV,SAAS;IACT,OAAO;IACP,QAAQ;IACR,gBAAgB;IAChB,SAAS;IACT,cAAc;IACd,aAAa;IACb,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,KAAK;IACL,MAAM;IACN,OAAO;IACP,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,SAAS;IACT,0EAA0E;IAC1E,2EAA2E;IAC3E,4DAA4D;IAC5D,SAAS;CACT,CAAC,CAAC;AAEH,MAAM,UAAU,cAAc,CAAC,IAAY;IAC1C,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa;IACpC,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAEnD,IAAI,OAAO,CAAC,MAAM,IAAI,eAAe;QAAE,OAAO,OAAO,CAAC;IAEtD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,sEAAsE;IACtE,6EAA6E;IAC7E,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"slug.js","sourceRoot":"","sources":["../src/slug.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAElC;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IAC1D,KAAK;IACL,UAAU;IACV,UAAU;IACV,SAAS;IACT,OAAO;IACP,QAAQ;IACR,gBAAgB;IAChB,SAAS;IACT,cAAc;IACd,aAAa;IACb,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,KAAK;IACL,MAAM;IACN,OAAO;IACP,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,SAAS;IACT,0EAA0E;IAC1E,2EAA2E;IAC3E,4DAA4D;IAC5D,SAAS;CACT,CAAC,CAAC;AAEH,MAAM,UAAU,cAAc,CAAC,IAAY;IAC1C,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa;IACpC,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAEnD,IAAI,OAAO,CAAC,MAAM,IAAI,eAAe;QAAE,OAAO,OAAO,CAAC;IAEtD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,sEAAsE;IACtE,6EAA6E;IAC7E,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workjournal/shared",
3
- "version": "2.5.0",
3
+ "version": "2.7.0",
4
4
  "description": "Shared types, constants, and credential helpers for the Workjournal CLI and MCP server.",
5
5
  "license": "MIT",
6
6
  "type": "module",