@tuturuuu/utils 0.17.0 → 0.18.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.18.0](https://github.com/tutur3u/platform/compare/utils-v0.17.0...utils-v0.18.0) (2026-07-25)
4
+
5
+
6
+ ### Features
7
+
8
+ * **apps:** unify and redesign app catalog ([b679068](https://github.com/tutur3u/platform/commit/b679068339143a83b38610f363bec7f53ddc3706))
9
+ * **forms:** merge satellite migration ([e739f1b](https://github.com/tutur3u/platform/commit/e739f1bead568905458a42373ae24d13cd778907))
10
+ * **forms:** migrate product to satellite app ([51b9392](https://github.com/tutur3u/platform/commit/51b93928f1a12ebd4f4c753595fb33902ebfa66c))
11
+ * **inventory:** secure Square POS event checkout ([532b463](https://github.com/tutur3u/platform/commit/532b46372116ee0bebfd83ba2af762cc9f668c3c))
12
+ * **offline:** own service worker runtime and refresh dependencies ([ae44477](https://github.com/tutur3u/platform/commit/ae44477603c39f0513244514771653287338a89f))
13
+ * **reports:** add periodic reporting automation ([ec7bd5e](https://github.com/tutur3u/platform/commit/ec7bd5e10abb137e217d1dcf143624530276392f))
14
+
3
15
  ## [0.17.0](https://github.com/tutur3u/platform/compare/utils-v0.16.0...utils-v0.17.0) (2026-07-21)
4
16
 
5
17
 
package/biome.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "root": false,
3
- "$schema": "https://biomejs.dev/schemas/2.5.4/schema.json",
3
+ "$schema": "https://biomejs.dev/schemas/2.5.5/schema.json",
4
4
  "extends": "//"
5
5
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tuturuuu/utils",
3
3
  "license": "MIT",
4
- "version": "0.17.0",
4
+ "version": "0.18.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/tutur3u/platform",
@@ -19,25 +19,25 @@
19
19
  "@dnd-kit/core": "^6.3.1",
20
20
  "@noble/ciphers": "^2.2.0",
21
21
  "@noble/hashes": "^2.2.0",
22
- "@tanstack/react-query": "^5.101.2",
22
+ "@tanstack/react-query": "^5.101.4",
23
23
  "@tiptap/core": "3.28.0",
24
24
  "@tiptap/react": "3.28.0",
25
- "@tuturuuu/google": "0.0.3",
26
- "@tuturuuu/icons": "0.0.6",
27
- "@tuturuuu/internal-api": "0.20.0",
28
- "@tuturuuu/supabase": "0.4.1",
25
+ "@tuturuuu/google": "0.1.0",
26
+ "@tuturuuu/icons": "0.1.0",
27
+ "@tuturuuu/internal-api": "0.21.0",
28
+ "@tuturuuu/supabase": "0.5.0",
29
29
  "@upstash/ratelimit": "^2.0.8",
30
30
  "@upstash/redis": "^1.38.0",
31
31
  "clsx": "^2.1.1",
32
32
  "date-fns": "^4.4.0",
33
- "dayjs": "^1.11.20",
33
+ "dayjs": "^1.11.21",
34
34
  "diff": "^9.0.0",
35
35
  "effect": "^3.22.0",
36
36
  "moment": "^2.30.1",
37
- "next": "^16.3.0-preview.6",
37
+ "next": "^16.3.0-preview.9",
38
38
  "prosemirror-model": "^1.25.11",
39
- "react": "^19.2.7",
40
- "react-dom": "^19.2.7",
39
+ "react": "^19.2.8",
40
+ "react-dom": "^19.2.8",
41
41
  "tailwind-merge": "^3.6.0",
42
42
  "uuid": "^14.0.1",
43
43
  "y-prosemirror": "^1.3.7",
@@ -45,12 +45,12 @@
45
45
  "zod": "^4.4.3"
46
46
  },
47
47
  "devDependencies": {
48
- "@tuturuuu/types": "0.19.0",
48
+ "@tuturuuu/types": "0.20.0",
49
49
  "@tuturuuu/typescript-config": "0.1.1",
50
50
  "@types/diff": "^8.0.0",
51
51
  "@types/node": "^26.1.1",
52
52
  "@types/react": "^19.2.17",
53
- "@vitejs/plugin-react": "^6.0.3",
53
+ "@vitejs/plugin-react": "^6.0.4",
54
54
  "typescript": "7.0.2",
55
55
  "vite": "^8.1.5",
56
56
  "vitest": "^4.1.10"
@@ -296,6 +296,7 @@ describe('Portless app origin registry', () => {
296
296
  'https://drive.tuturuuu.localhost',
297
297
  'https://external.tuturuuu.localhost',
298
298
  'https://finance.tuturuuu.localhost',
299
+ 'https://forms.tuturuuu.localhost',
299
300
  'https://hive.tuturuuu.localhost',
300
301
  'https://realtime.hive.tuturuuu.localhost',
301
302
  'https://infra.tuturuuu.localhost',
@@ -108,6 +108,10 @@ export const PRODUCTION_INTERNAL_APP_DOMAINS = [
108
108
  name: 'contacts',
109
109
  url: 'https://contacts.tuturuuu.com',
110
110
  },
111
+ {
112
+ name: 'forms',
113
+ url: 'https://forms.tuturuuu.com',
114
+ },
111
115
  {
112
116
  name: 'hive',
113
117
  url: 'https://hive.tuturuuu.com',
@@ -215,6 +219,10 @@ export const PORTLESS_INTERNAL_APP_DOMAINS = [
215
219
  name: 'contacts',
216
220
  url: getTuturuuuPortlessAppOrigin('contacts'),
217
221
  },
222
+ {
223
+ name: 'forms',
224
+ url: getTuturuuuPortlessAppOrigin('forms'),
225
+ },
218
226
  {
219
227
  name: 'hive',
220
228
  url: getTuturuuuPortlessAppOrigin('hive'),
@@ -318,6 +326,10 @@ export const LOCALHOST_INTERNAL_APP_DOMAINS = [
318
326
  name: 'contacts',
319
327
  url: 'http://localhost:7827',
320
328
  },
329
+ {
330
+ name: 'forms',
331
+ url: 'http://localhost:7828',
332
+ },
321
333
  {
322
334
  name: 'hive',
323
335
  url: 'http://localhost:7814',
@@ -25,7 +25,13 @@ const teamWorkspace: LaunchableWorkspace = {
25
25
  describe('launchable apps', () => {
26
26
  it('resolves apps by slug, title, and aliases', () => {
27
27
  expect(getLaunchableApp('calendar')?.title).toBe('Calendar');
28
+ expect(getLaunchableApp('forms')).toMatchObject({
29
+ appRoot: 'apps/forms',
30
+ productionUrl: 'https://forms.tuturuuu.com',
31
+ title: 'Forms',
32
+ });
28
33
  expect(getLaunchableAppByTitle('Tuturuuu')?.slug).toBe('platform');
34
+ expect(getLaunchableAppByTitle('questionnaires')?.slug).toBe('forms');
29
35
  expect(getLaunchableAppByTitle('apps gateway')?.slug).toBe('apps');
30
36
  });
31
37
 
@@ -336,6 +336,19 @@ export const LAUNCHABLE_APPS = [
336
336
  title: 'Contacts',
337
337
  workspacePathResolver: workspaceRootPath,
338
338
  },
339
+ {
340
+ aliases: ['Surveys', 'Questionnaires', 'Responses', 'Form Builder'],
341
+ appRoot: 'apps/forms',
342
+ category: 'operations',
343
+ defaultPath: '/personal',
344
+ localhostOrigin: 'http://localhost:7828',
345
+ packageName: '@tuturuuu/forms',
346
+ portlessApp: 'forms',
347
+ productionUrl: 'https://forms.tuturuuu.com',
348
+ slug: 'forms',
349
+ title: 'Forms',
350
+ workspacePathResolver: workspaceRootPath,
351
+ },
339
352
  {
340
353
  aliases: ['Time Tracking', 'Timer'],
341
354
  appRoot: 'apps/track',
@@ -719,6 +719,26 @@ export const permissionGroups = ({
719
719
  disableOnProduction: false,
720
720
  disabled: false,
721
721
  },
722
+ {
723
+ id: 'manage_user_report_automation',
724
+ icon: <Settings2 />,
725
+ title: t('ws-roles.manage_user_report_automation'),
726
+ description: t(
727
+ 'ws-roles.manage_user_report_automation_description'
728
+ ),
729
+ disableOnProduction: false,
730
+ disabled: false,
731
+ },
732
+ {
733
+ id: 'send_user_group_report_emails',
734
+ icon: <Send />,
735
+ title: t('ws-roles.send_user_group_report_emails'),
736
+ description: t(
737
+ 'ws-roles.send_user_group_report_emails_description'
738
+ ),
739
+ disableOnProduction: false,
740
+ disabled: false,
741
+ },
722
742
  {
723
743
  id: 'approve_reports',
724
744
  icon: <ShieldCheck />,
@@ -877,6 +897,14 @@ export const permissionGroups = ({
877
897
  disableOnProduction: false,
878
898
  disabled: false,
879
899
  },
900
+ {
901
+ id: 'initiate_pos_checkout',
902
+ icon: <CreditCard />,
903
+ title: t('ws-roles.initiate_pos_checkout'),
904
+ description: t('ws-roles.initiate_pos_checkout_description'),
905
+ disableOnProduction: false,
906
+ disabled: false,
907
+ },
880
908
  {
881
909
  id: 'view_inventory_analytics',
882
910
  icon: <ChartBar />,
@@ -7,7 +7,7 @@ import {
7
7
 
8
8
  describe('platform release metadata', () => {
9
9
  it('uses the centralized shared browser app version', () => {
10
- expect(TUTURUUU_PLATFORM_VERSION).toBe('0.24.0'); // x-release-please-version
10
+ expect(TUTURUUU_PLATFORM_VERSION).toBe('0.26.0'); // x-release-please-version
11
11
  });
12
12
 
13
13
  it('preserves the source timestamp in builtAt and derives a short hash', () => {
@@ -1,6 +1,6 @@
1
1
  import { PLATFORM_BUILD_METADATA } from './generated/platform-build-metadata';
2
2
 
3
- export const TUTURUUU_PLATFORM_VERSION = '0.24.0'; // x-release-please-version
3
+ export const TUTURUUU_PLATFORM_VERSION = '0.26.0'; // x-release-please-version
4
4
 
5
5
  export type PlatformBuildMetadataInput = {
6
6
  /** ISO timestamp of the source commit used for the build, not deployment time. */
package/src/portless.ts CHANGED
@@ -15,6 +15,7 @@ export const TUTURUUU_PORTLESS_APP_ORIGINS = {
15
15
  drive: `https://drive.${TUTURUUU_PORTLESS_ROOT_HOST}`,
16
16
  external: `https://external.${TUTURUUU_PORTLESS_ROOT_HOST}`,
17
17
  finance: `https://finance.${TUTURUUU_PORTLESS_ROOT_HOST}`,
18
+ forms: `https://forms.${TUTURUUU_PORTLESS_ROOT_HOST}`,
18
19
  hive: `https://hive.${TUTURUUU_PORTLESS_ROOT_HOST}`,
19
20
  'hive-realtime': `https://realtime.hive.${TUTURUUU_PORTLESS_ROOT_HOST}`,
20
21
  infra: `https://infra.${TUTURUUU_PORTLESS_ROOT_HOST}`,