@burdenoff/microfe-crewfoundry 2026.1029.2 → 2026.1030.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.
- package/dist/crewfoundry/components/EmployeeSkillsPanel.d.ts +12 -0
- package/dist/crewfoundry/components/EmployeeSkillsPanel.d.ts.map +1 -0
- package/dist/crewfoundry/components/EmployeeSkillsPanel.js +168 -0
- package/dist/crewfoundry/components/EmployeeSkillsPanel.js.map +1 -0
- package/dist/crewfoundry/lib/useFocusedRecordParam.d.ts +51 -0
- package/dist/crewfoundry/lib/useFocusedRecordParam.d.ts.map +1 -0
- package/dist/crewfoundry/lib/useFocusedRecordParam.js +38 -0
- package/dist/crewfoundry/lib/useFocusedRecordParam.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +119 -112
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +78 -71
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +88 -81
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +133 -126
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +150 -143
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +110 -103
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrEmployeeProfilePagePage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/HrEmployeeProfilePagePage.js +124 -134
- package/dist/crewfoundry/pages/HrEmployeeProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +173 -162
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrPayrollPagePage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/HrPayrollPagePage.js +169 -158
- package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +179 -163
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
- package/dist/crewfoundry/store/crewfoundryStore.d.ts +22 -0
- package/dist/crewfoundry/store/crewfoundryStore.d.ts.map +1 -1
- package/dist/crewfoundry/store/crewfoundryStore.js +158 -129
- package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -1
- package/dist/utils/pageContext.d.ts +43 -4
- package/dist/utils/pageContext.d.ts.map +1 -1
- package/dist/utils/pageContext.js +10 -3
- package/dist/utils/pageContext.js.map +1 -1
- package/package.json +3 -2
|
@@ -10,7 +10,17 @@ interface ConversationContextShape {
|
|
|
10
10
|
activeTab?: string;
|
|
11
11
|
metadata?: Record<string, unknown>;
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* What the assistant is told about the page.
|
|
15
|
+
*
|
|
16
|
+
* A `type` alias rather than an interface so it stays assignable to the shared
|
|
17
|
+
* transport's index-signature `PageContext`. Every key here is on the agent's
|
|
18
|
+
* `ALLOWED_CONTEXT_KEYS` list (ai-assistant `src/context-loader.ts`); keys off
|
|
19
|
+
* that list are transmitted and then dropped, so the platform contract
|
|
20
|
+
* (HOW_TO_INTEGRATE_AI_ASSISTANT.md, Step 3) forbids sending `userAgent`,
|
|
21
|
+
* `timestamp` or anything else that would not be logged.
|
|
22
|
+
*/
|
|
23
|
+
export type PageContext = {
|
|
14
24
|
currentUrl: string;
|
|
15
25
|
currentPage: string;
|
|
16
26
|
entityType?: string;
|
|
@@ -18,10 +28,39 @@ export interface PageContext {
|
|
|
18
28
|
platform: string;
|
|
19
29
|
version: string;
|
|
20
30
|
viewportSize: string;
|
|
21
|
-
|
|
22
|
-
timestamp: string;
|
|
23
|
-
}
|
|
31
|
+
};
|
|
24
32
|
export declare function gatherPageContext(): PageContext;
|
|
33
|
+
/**
|
|
34
|
+
* Every page-context entity type the assistant can receive from CrewFoundry.
|
|
35
|
+
*
|
|
36
|
+
* Each one is a record `wspace-crewfoundry-svc` owns, with a single-record
|
|
37
|
+
* read the assistant's CrewFoundry guide names (ai-assistant
|
|
38
|
+
* `context/api-calls/products/crewfoundry.md`, "Page context"). Keep the two in
|
|
39
|
+
* step: the guide's tests pin this exact list.
|
|
40
|
+
*/
|
|
41
|
+
export declare const CREWFOUNDRY_ENTITY_TYPES: readonly ["CREWFOUNDRY_JOB_POSTING", "CREWFOUNDRY_CANDIDATE", "CREWFOUNDRY_INTERVIEW", "CREWFOUNDRY_EMPLOYEE", "CREWFOUNDRY_DEPARTMENT", "CREWFOUNDRY_TEAM", "CREWFOUNDRY_PROJECT", "CREWFOUNDRY_LEAVE_REQUEST", "CREWFOUNDRY_TIME_ENTRY", "CREWFOUNDRY_PAYROLL_RECORD", "CREWFOUNDRY_CLIENT", "CREWFOUNDRY_VENDOR", "CREWFOUNDRY_ANNOUNCEMENT", "CREWFOUNDRY_COURSE", "CREWFOUNDRY_SERVICE"];
|
|
42
|
+
export type CrewFoundryEntityType = (typeof CREWFOUNDRY_ENTITY_TYPES)[number];
|
|
43
|
+
/**
|
|
44
|
+
* Pages that identify a single record, keyed by their `<section>/<page>` route.
|
|
45
|
+
*
|
|
46
|
+
* Every route in `CrewFoundryRoutes` is a flat two-segment path with the record
|
|
47
|
+
* id in the `id` SEARCH PARAM, never a path segment:
|
|
48
|
+
*
|
|
49
|
+
* - detail pages read it (`hiring/job-details-page?id=…`);
|
|
50
|
+
* - list pages write it while a record is focused in place — a selected row or
|
|
51
|
+
* an open edit dialog — through `useFocusedRecordParam`
|
|
52
|
+
* (`src/crewfoundry/lib/useFocusedRecordParam.ts`).
|
|
53
|
+
*
|
|
54
|
+
* Matching is done on the last two path segments rather than an absolute path
|
|
55
|
+
* so the mapping survives the shell mounting the MFE under a different
|
|
56
|
+
* `basePath`.
|
|
57
|
+
*
|
|
58
|
+
* `CREWFOUNDRY_COURSE` is a `CrewTrainingCourse` and `CREWFOUNDRY_SERVICE` a
|
|
59
|
+
* `CrewServiceListing`: both are owned by the service's Learning and
|
|
60
|
+
* talent-marketplace modules since BOFF-4201/BOFF-4203 (BOFF-3401 retired the
|
|
61
|
+
* mocked surfaces that used to sit on these routes).
|
|
62
|
+
*/
|
|
63
|
+
export declare const ENTITY_ROUTES: ReadonlyArray<readonly [route: string, entityType: CrewFoundryEntityType]>;
|
|
25
64
|
export declare function resolveCrewFoundryConversationContext(pathname: string, search: string): ConversationContextShape;
|
|
26
65
|
export {};
|
|
27
66
|
//# sourceMappingURL=pageContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pageContext.d.ts","sourceRoot":"","sources":["../../src/utils/pageContext.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,UAAU,wBAAwB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"pageContext.d.ts","sourceRoot":"","sources":["../../src/utils/pageContext.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,UAAU,wBAAwB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GAAG;IAExB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,iBAAiB,IAAI,WAAW,CAkB/C;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,+XAgB3B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,aAAa,EAAE,aAAa,CACvC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAkB5D,CAAC;AAEF,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,wBAAwB,CA2B1B"}
|
|
@@ -8,17 +8,24 @@ function e() {
|
|
|
8
8
|
entityId: r.entityId,
|
|
9
9
|
platform: "crewfoundry",
|
|
10
10
|
version: "2026.704.1",
|
|
11
|
-
viewportSize: `${window.innerWidth}x${window.innerHeight}
|
|
12
|
-
userAgent: navigator.userAgent,
|
|
13
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
11
|
+
viewportSize: `${window.innerWidth}x${window.innerHeight}`
|
|
14
12
|
};
|
|
15
13
|
}
|
|
16
14
|
var t = [
|
|
17
15
|
["hiring/job-details-page", "CREWFOUNDRY_JOB_POSTING"],
|
|
16
|
+
["hiring/candidates-page", "CREWFOUNDRY_CANDIDATE"],
|
|
17
|
+
["hiring/interviews-page", "CREWFOUNDRY_INTERVIEW"],
|
|
18
18
|
["hr/employee-profile-page", "CREWFOUNDRY_EMPLOYEE"],
|
|
19
|
+
["hr/departments-page", "CREWFOUNDRY_DEPARTMENT"],
|
|
20
|
+
["hr/leave-management-page", "CREWFOUNDRY_LEAVE_REQUEST"],
|
|
21
|
+
["hr/time-tracking-page", "CREWFOUNDRY_TIME_ENTRY"],
|
|
22
|
+
["hr/payroll-page", "CREWFOUNDRY_PAYROLL_RECORD"],
|
|
19
23
|
["teams/team-detail-page", "CREWFOUNDRY_TEAM"],
|
|
20
24
|
["teams/team-settings-page", "CREWFOUNDRY_TEAM"],
|
|
21
25
|
["projects/project-details-page", "CREWFOUNDRY_PROJECT"],
|
|
26
|
+
["company/client-management-page", "CREWFOUNDRY_CLIENT"],
|
|
27
|
+
["company/vendor-management-page", "CREWFOUNDRY_VENDOR"],
|
|
28
|
+
["communications/announcements-page", "CREWFOUNDRY_ANNOUNCEMENT"],
|
|
22
29
|
["learning/course-details-page", "CREWFOUNDRY_COURSE"],
|
|
23
30
|
["marketplace/service-details-page", "CREWFOUNDRY_SERVICE"]
|
|
24
31
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pageContext.js","names":[],"sources":["../../src/utils/pageContext.ts"],"sourcesContent":["/**\n * Page context gathering for CrewFoundry.\n *\n * Captures the user's current browser context to be sent alongside every\n * assistant prompt for better AI awareness.\n */\n\ninterface ConversationContextShape {\n entityType?: string;\n entityId?: string;\n activeTab?: string;\n metadata?: Record<string, unknown>;\n}\n\
|
|
1
|
+
{"version":3,"file":"pageContext.js","names":[],"sources":["../../src/utils/pageContext.ts"],"sourcesContent":["/**\n * Page context gathering for CrewFoundry.\n *\n * Captures the user's current browser context to be sent alongside every\n * assistant prompt for better AI awareness.\n */\n\ninterface ConversationContextShape {\n entityType?: string;\n entityId?: string;\n activeTab?: string;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * What the assistant is told about the page.\n *\n * A `type` alias rather than an interface so it stays assignable to the shared\n * transport's index-signature `PageContext`. Every key here is on the agent's\n * `ALLOWED_CONTEXT_KEYS` list (ai-assistant `src/context-loader.ts`); keys off\n * that list are transmitted and then dropped, so the platform contract\n * (HOW_TO_INTEGRATE_AI_ASSISTANT.md, Step 3) forbids sending `userAgent`,\n * `timestamp` or anything else that would not be logged.\n */\nexport type PageContext = {\n // `currentUrl` matches the agent's allowed-context-key contract.\n currentUrl: string;\n currentPage: string;\n entityType?: string;\n entityId?: string;\n platform: string;\n version: string;\n viewportSize: string;\n};\n\nexport function gatherPageContext(): PageContext {\n const url = window.location.href;\n const pathSegments = window.location.pathname.split('/').filter(Boolean);\n const currentPage = pathSegments.slice(0, 3).join('/') || 'home';\n const entity = resolveCrewFoundryConversationContext(\n window.location.pathname,\n window.location.search\n );\n\n return {\n currentUrl: url,\n currentPage,\n entityType: entity.entityType,\n entityId: entity.entityId,\n platform: 'crewfoundry',\n version: import.meta.env.VITE_APP_VERSION ?? '2026.704.1',\n viewportSize: `${window.innerWidth}x${window.innerHeight}`,\n };\n}\n\n/**\n * Every page-context entity type the assistant can receive from CrewFoundry.\n *\n * Each one is a record `wspace-crewfoundry-svc` owns, with a single-record\n * read the assistant's CrewFoundry guide names (ai-assistant\n * `context/api-calls/products/crewfoundry.md`, \"Page context\"). Keep the two in\n * step: the guide's tests pin this exact list.\n */\nexport const CREWFOUNDRY_ENTITY_TYPES = [\n 'CREWFOUNDRY_JOB_POSTING',\n 'CREWFOUNDRY_CANDIDATE',\n 'CREWFOUNDRY_INTERVIEW',\n 'CREWFOUNDRY_EMPLOYEE',\n 'CREWFOUNDRY_DEPARTMENT',\n 'CREWFOUNDRY_TEAM',\n 'CREWFOUNDRY_PROJECT',\n 'CREWFOUNDRY_LEAVE_REQUEST',\n 'CREWFOUNDRY_TIME_ENTRY',\n 'CREWFOUNDRY_PAYROLL_RECORD',\n 'CREWFOUNDRY_CLIENT',\n 'CREWFOUNDRY_VENDOR',\n 'CREWFOUNDRY_ANNOUNCEMENT',\n 'CREWFOUNDRY_COURSE',\n 'CREWFOUNDRY_SERVICE',\n] as const;\n\nexport type CrewFoundryEntityType = (typeof CREWFOUNDRY_ENTITY_TYPES)[number];\n\n/**\n * Pages that identify a single record, keyed by their `<section>/<page>` route.\n *\n * Every route in `CrewFoundryRoutes` is a flat two-segment path with the record\n * id in the `id` SEARCH PARAM, never a path segment:\n *\n * - detail pages read it (`hiring/job-details-page?id=…`);\n * - list pages write it while a record is focused in place — a selected row or\n * an open edit dialog — through `useFocusedRecordParam`\n * (`src/crewfoundry/lib/useFocusedRecordParam.ts`).\n *\n * Matching is done on the last two path segments rather than an absolute path\n * so the mapping survives the shell mounting the MFE under a different\n * `basePath`.\n *\n * `CREWFOUNDRY_COURSE` is a `CrewTrainingCourse` and `CREWFOUNDRY_SERVICE` a\n * `CrewServiceListing`: both are owned by the service's Learning and\n * talent-marketplace modules since BOFF-4201/BOFF-4203 (BOFF-3401 retired the\n * mocked surfaces that used to sit on these routes).\n */\nexport const ENTITY_ROUTES: ReadonlyArray<\n readonly [route: string, entityType: CrewFoundryEntityType]\n> = [\n ['hiring/job-details-page', 'CREWFOUNDRY_JOB_POSTING'],\n ['hiring/candidates-page', 'CREWFOUNDRY_CANDIDATE'],\n ['hiring/interviews-page', 'CREWFOUNDRY_INTERVIEW'],\n ['hr/employee-profile-page', 'CREWFOUNDRY_EMPLOYEE'],\n ['hr/departments-page', 'CREWFOUNDRY_DEPARTMENT'],\n ['hr/leave-management-page', 'CREWFOUNDRY_LEAVE_REQUEST'],\n ['hr/time-tracking-page', 'CREWFOUNDRY_TIME_ENTRY'],\n ['hr/payroll-page', 'CREWFOUNDRY_PAYROLL_RECORD'],\n ['teams/team-detail-page', 'CREWFOUNDRY_TEAM'],\n ['teams/team-settings-page', 'CREWFOUNDRY_TEAM'],\n ['projects/project-details-page', 'CREWFOUNDRY_PROJECT'],\n ['company/client-management-page', 'CREWFOUNDRY_CLIENT'],\n ['company/vendor-management-page', 'CREWFOUNDRY_VENDOR'],\n ['communications/announcements-page', 'CREWFOUNDRY_ANNOUNCEMENT'],\n ['learning/course-details-page', 'CREWFOUNDRY_COURSE'],\n ['marketplace/service-details-page', 'CREWFOUNDRY_SERVICE'],\n];\n\nexport function resolveCrewFoundryConversationContext(\n pathname: string,\n search: string\n): ConversationContextShape {\n const params = new URLSearchParams(search);\n const segments = pathname.split('/').filter(Boolean);\n const route = segments.slice(-2).join('/');\n const entityId = params.get('id');\n\n if (entityId) {\n const matched = ENTITY_ROUTES.find(([candidateRoute]) => candidateRoute === route);\n if (matched) {\n return {\n entityType: matched[1],\n entityId,\n metadata: { route },\n };\n }\n }\n\n const activeTab =\n params.get('tab') ?? (segments.length > 2 ? segments[segments.length - 1] : undefined);\n\n return {\n activeTab: activeTab ?? undefined,\n metadata: {\n ...(activeTab ? { activeTab } : {}),\n ...(params.get('selectedId') ? { selectedId: params.get('selectedId') } : {}),\n },\n };\n}\n"],"mappings":";AAmCA,SAAgB,IAAiC;CAC/C,IAAM,IAAM,OAAO,SAAS,MAEtB,IADe,OAAO,SAAS,SAAS,MAAM,IAAI,CAAC,OAAO,QAAQ,CACvC,MAAM,GAAG,EAAE,CAAC,KAAK,IAAI,IAAI,QACpD,IAAS,EACb,OAAO,SAAS,UAChB,OAAO,SAAS,OACjB;AAED,QAAO;EACL,YAAY;EACZ;EACA,YAAY,EAAO;EACnB,UAAU,EAAO;EACjB,UAAU;EACV,SAA6C;EAC7C,cAAc,GAAG,OAAO,WAAW,GAAG,OAAO;EAC9C;;AAmDH,IAAa,IAET;CACF,CAAC,2BAA2B,0BAA0B;CACtD,CAAC,0BAA0B,wBAAwB;CACnD,CAAC,0BAA0B,wBAAwB;CACnD,CAAC,4BAA4B,uBAAuB;CACpD,CAAC,uBAAuB,yBAAyB;CACjD,CAAC,4BAA4B,4BAA4B;CACzD,CAAC,yBAAyB,yBAAyB;CACnD,CAAC,mBAAmB,6BAA6B;CACjD,CAAC,0BAA0B,mBAAmB;CAC9C,CAAC,4BAA4B,mBAAmB;CAChD,CAAC,iCAAiC,sBAAsB;CACxD,CAAC,kCAAkC,qBAAqB;CACxD,CAAC,kCAAkC,qBAAqB;CACxD,CAAC,qCAAqC,2BAA2B;CACjE,CAAC,gCAAgC,qBAAqB;CACtD,CAAC,oCAAoC,sBAAsB;CAC5D;AAED,SAAgB,EACd,GACA,GAC0B;CAC1B,IAAM,IAAS,IAAI,gBAAgB,EAAO,EACpC,IAAW,EAAS,MAAM,IAAI,CAAC,OAAO,QAAQ,EAC9C,IAAQ,EAAS,MAAM,GAAG,CAAC,KAAK,IAAI,EACpC,IAAW,EAAO,IAAI,KAAK;AAEjC,KAAI,GAAU;EACZ,IAAM,IAAU,EAAc,MAAM,CAAC,OAAoB,MAAmB,EAAM;AAClF,MAAI,EACF,QAAO;GACL,YAAY,EAAQ;GACpB;GACA,UAAU,EAAE,UAAO;GACpB;;CAIL,IAAM,IACJ,EAAO,IAAI,MAAM,KAAK,EAAS,SAAS,IAAI,EAAS,EAAS,SAAS,KAAK,KAAA;AAE9E,QAAO;EACL,WAAW,KAAa,KAAA;EACxB,UAAU;GACR,GAAI,IAAY,EAAE,cAAW,GAAG,EAAE;GAClC,GAAI,EAAO,IAAI,aAAa,GAAG,EAAE,YAAY,EAAO,IAAI,aAAa,EAAE,GAAG,EAAE;GAC7E;EACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@burdenoff/microfe-crewfoundry",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.1030.2",
|
|
4
4
|
"description": "Burdenoff CrewFoundry Microfrontend",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -31,7 +31,8 @@
|
|
|
31
31
|
"lint:sanity": "if [ \"${CI:-}\" = \"true\" ]; then bun run lint; else bun run lint -- --cache --cache-location .eslintcache; fi",
|
|
32
32
|
"format": "prettier --write \"src/**/*.{ts,tsx}\"",
|
|
33
33
|
"type:check": "bash scripts/build-limits.sh tsc --noEmit",
|
|
34
|
-
"
|
|
34
|
+
"test": "bun test ./tests",
|
|
35
|
+
"sanity": "bash scripts/build-limits.sh --gate bash -c 'bun run codegen && bun run lint:sanity && bun run format && bun run type:check && bun run test && bun run build'",
|
|
35
36
|
"schema:pull": "graphql-codegen --project schema-wspace && graphql-codegen --project schema-global",
|
|
36
37
|
"codegen": "graphql-codegen --project wspace && graphql-codegen --project global",
|
|
37
38
|
"codegen:all": "bun run schema:pull && bun run codegen",
|