@burdenoff/microfe-timecampus 2026.719.4 → 2026.731.1

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 (33) hide show
  1. package/dist/generated/wspace-operations.d.ts +527 -0
  2. package/dist/generated/wspace-operations.d.ts.map +1 -1
  3. package/dist/generated/wspace-operations.js +1112 -880
  4. package/dist/generated/wspace-operations.js.map +1 -1
  5. package/dist/generated/wspace-types.d.ts +175 -0
  6. package/dist/generated/wspace-types.d.ts.map +1 -1
  7. package/dist/generated/wspace-types.js +5 -3
  8. package/dist/generated/wspace-types.js.map +1 -1
  9. package/dist/index.js +5 -5
  10. package/dist/timecampus/TimeCampusRoot.d.ts.map +1 -1
  11. package/dist/timecampus/TimeCampusRoot.js +81 -73
  12. package/dist/timecampus/TimeCampusRoot.js.map +1 -1
  13. package/dist/timecampus/TimeCampusRoutes.d.ts.map +1 -1
  14. package/dist/timecampus/TimeCampusRoutes.js +17 -13
  15. package/dist/timecampus/TimeCampusRoutes.js.map +1 -1
  16. package/dist/timecampus/components/StatusBadge.d.ts.map +1 -1
  17. package/dist/timecampus/components/StatusBadge.js.map +1 -1
  18. package/dist/timecampus/pages/invoicing/InvoicingPage.d.ts +2 -0
  19. package/dist/timecampus/pages/invoicing/InvoicingPage.d.ts.map +1 -0
  20. package/dist/timecampus/pages/invoicing/InvoicingPage.js +595 -0
  21. package/dist/timecampus/pages/invoicing/InvoicingPage.js.map +1 -0
  22. package/dist/timecampus/pages/lifetime/PersonalCorporatePage.d.ts.map +1 -1
  23. package/dist/timecampus/pages/lifetime/PersonalCorporatePage.js +88 -59
  24. package/dist/timecampus/pages/lifetime/PersonalCorporatePage.js.map +1 -1
  25. package/dist/timecampus/types/index.d.ts.map +1 -1
  26. package/dist/timecampus/utils/helpers.d.ts.map +1 -1
  27. package/dist/timecampus/utils/helpers.js +3 -1
  28. package/dist/timecampus/utils/helpers.js.map +1 -1
  29. package/dist/types/assistant.d.ts.map +1 -1
  30. package/dist/utils/pageContext.d.ts.map +1 -1
  31. package/dist/utils/pageContext.js +1 -0
  32. package/dist/utils/pageContext.js.map +1 -1
  33. package/package.json +1 -1
@@ -12968,6 +12968,30 @@ export type GenerateReportInput = {
12968
12968
  parameters?: InputMaybe<Scalars['JSON']['input']>;
12969
12969
  reportId: Scalars['ID']['input'];
12970
12970
  };
12971
+ export type GenerateTimeCampusInvoiceDraftInput = {
12972
+ clientAddress?: InputMaybe<Scalars['String']['input']>;
12973
+ clientEmail?: InputMaybe<Scalars['String']['input']>;
12974
+ clientName: Scalars['String']['input'];
12975
+ /**
12976
+ * Optional link to an existing client portal, so the portal can later expose
12977
+ * this invoice to the client. Not validated against portal permissions here.
12978
+ */
12979
+ clientPortalConfigId?: InputMaybe<Scalars['ID']['input']>;
12980
+ context?: InputMaybe<ContextInput>;
12981
+ currency?: InputMaybe<Scalars['String']['input']>;
12982
+ dueDate?: InputMaybe<Scalars['DateTime']['input']>;
12983
+ notes?: InputMaybe<Scalars['String']['input']>;
12984
+ periodEnd: Scalars['DateTime']['input'];
12985
+ periodStart: Scalars['DateTime']['input'];
12986
+ /**
12987
+ * Restrict aggregation to these projects. Omit to include every billable,
12988
+ * un-invoiced entry in the workspace for the period.
12989
+ */
12990
+ projectIds?: InputMaybe<Array<Scalars['ID']['input']>>;
12991
+ /** Flat percentage applied to the subtotal, e.g. 0.18 for 18%. Defaults to 0. */
12992
+ taxRate?: InputMaybe<Scalars['Float']['input']>;
12993
+ workspaceId: Scalars['ID']['input'];
12994
+ };
12971
12995
  /** AI-generated artifact */
12972
12996
  export type GeneratedArtifact = {
12973
12997
  __typename?: 'GeneratedArtifact';
@@ -19921,6 +19945,7 @@ export type Mutation = {
19921
19945
  deleteTemplate: Scalars['Boolean']['output'];
19922
19946
  deleteTimeCampusCaptureEvent: TimeCampusCaptureEvent;
19923
19947
  deleteTimeCampusConfiguration: TimeCampusConfiguration;
19948
+ deleteTimeCampusInvoiceDraft: Scalars['Boolean']['output'];
19924
19949
  deleteTimeCampusProject: TimeCampusProject;
19925
19950
  deleteTimeEntry: TimeEntry;
19926
19951
  /** Soft-delete a tunnel (stops it first if active, then sets deletedAt). */
@@ -20238,6 +20263,7 @@ export type Mutation = {
20238
20263
  generateMovethewheelsReport: GeneratedReport;
20239
20264
  generateMyRecommendations: Array<TimeCampusRecommendation>;
20240
20265
  generateReport: ReportRun;
20266
+ generateTimeCampusInvoiceDraft: TimeCampusInvoice;
20241
20267
  /** Grant permission on a file */
20242
20268
  grantFilePermission: FilePermission;
20243
20269
  /** Grant permission on a folder */
@@ -21682,6 +21708,7 @@ export type Mutation = {
21682
21708
  /** Update a template */
21683
21709
  updateTemplate: DashboardTemplate;
21684
21710
  updateTimeCampusConfiguration: TimeCampusConfiguration;
21711
+ updateTimeCampusInvoiceStatus: TimeCampusInvoice;
21685
21712
  updateTimeCampusProject: TimeCampusProject;
21686
21713
  updateTimeCampusUISession: TimeCampusUiSession;
21687
21714
  updateTimeEntry: TimeEntry;
@@ -25721,6 +25748,14 @@ export type MutationDeleteTimeCampusCaptureEventArgs = {
25721
25748
  export type MutationDeleteTimeCampusConfigurationArgs = {
25722
25749
  id: Scalars['ID']['input'];
25723
25750
  };
25751
+ /**
25752
+ * Base Mutation type with placeholder field.
25753
+ * Extended by individual mutation files.
25754
+ */
25755
+ export type MutationDeleteTimeCampusInvoiceDraftArgs = {
25756
+ id: Scalars['ID']['input'];
25757
+ workspaceId: Scalars['ID']['input'];
25758
+ };
25724
25759
  /**
25725
25760
  * Base Mutation type with placeholder field.
25726
25761
  * Extended by individual mutation files.
@@ -27072,6 +27107,13 @@ export type MutationGenerateMovethewheelsReportArgs = {
27072
27107
  export type MutationGenerateReportArgs = {
27073
27108
  input: GenerateReportInput;
27074
27109
  };
27110
+ /**
27111
+ * Base Mutation type with placeholder field.
27112
+ * Extended by individual mutation files.
27113
+ */
27114
+ export type MutationGenerateTimeCampusInvoiceDraftArgs = {
27115
+ input: GenerateTimeCampusInvoiceDraftInput;
27116
+ };
27075
27117
  /**
27076
27118
  * Base Mutation type with placeholder field.
27077
27119
  * Extended by individual mutation files.
@@ -32683,6 +32725,13 @@ export type MutationUpdateTimeCampusConfigurationArgs = {
32683
32725
  id: Scalars['ID']['input'];
32684
32726
  input: UpdateTimeCampusConfigurationInput;
32685
32727
  };
32728
+ /**
32729
+ * Base Mutation type with placeholder field.
32730
+ * Extended by individual mutation files.
32731
+ */
32732
+ export type MutationUpdateTimeCampusInvoiceStatusArgs = {
32733
+ input: UpdateTimeCampusInvoiceStatusInput;
32734
+ };
32686
32735
  /**
32687
32736
  * Base Mutation type with placeholder field.
32688
32737
  * Extended by individual mutation files.
@@ -37825,6 +37874,11 @@ export type Query = {
37825
37874
  timeCampusConfigurationByKey?: Maybe<TimeCampusConfiguration>;
37826
37875
  timeCampusConfigurationValue?: Maybe<Scalars['JSON']['output']>;
37827
37876
  timeCampusConfigurations: Array<TimeCampusConfiguration>;
37877
+ timeCampusInvoice?: Maybe<TimeCampusInvoice>;
37878
+ timeCampusInvoiceHtml: Scalars['String']['output'];
37879
+ timeCampusInvoicePdf: Scalars['String']['output'];
37880
+ timeCampusInvoiceStats: TimeCampusInvoiceStats;
37881
+ timeCampusInvoices: TimeCampusInvoiceListResponse;
37828
37882
  timeCampusProject?: Maybe<TimeCampusProject>;
37829
37883
  timeCampusProjectStats: ProjectStats;
37830
37884
  timeCampusProjects: TimeCampusProjectListResponse;
@@ -44756,6 +44810,46 @@ export type QueryTimeCampusConfigurationsArgs = {
44756
44810
  scope?: InputMaybe<TimeCampusConfigScope>;
44757
44811
  scopeId?: InputMaybe<Scalars['String']['input']>;
44758
44812
  };
44813
+ /**
44814
+ * Base Query type with placeholder field.
44815
+ * Extended by individual query files.
44816
+ */
44817
+ export type QueryTimeCampusInvoiceArgs = {
44818
+ id: Scalars['ID']['input'];
44819
+ workspaceId: Scalars['ID']['input'];
44820
+ };
44821
+ /**
44822
+ * Base Query type with placeholder field.
44823
+ * Extended by individual query files.
44824
+ */
44825
+ export type QueryTimeCampusInvoiceHtmlArgs = {
44826
+ id: Scalars['ID']['input'];
44827
+ workspaceId: Scalars['ID']['input'];
44828
+ };
44829
+ /**
44830
+ * Base Query type with placeholder field.
44831
+ * Extended by individual query files.
44832
+ */
44833
+ export type QueryTimeCampusInvoicePdfArgs = {
44834
+ id: Scalars['ID']['input'];
44835
+ workspaceId: Scalars['ID']['input'];
44836
+ };
44837
+ /**
44838
+ * Base Query type with placeholder field.
44839
+ * Extended by individual query files.
44840
+ */
44841
+ export type QueryTimeCampusInvoiceStatsArgs = {
44842
+ workspaceId: Scalars['ID']['input'];
44843
+ };
44844
+ /**
44845
+ * Base Query type with placeholder field.
44846
+ * Extended by individual query files.
44847
+ */
44848
+ export type QueryTimeCampusInvoicesArgs = {
44849
+ filter?: InputMaybe<TimeCampusInvoiceFilterInput>;
44850
+ pagination?: InputMaybe<PaginationInput>;
44851
+ workspaceId: Scalars['ID']['input'];
44852
+ };
44759
44853
  /**
44760
44854
  * Base Query type with placeholder field.
44761
44855
  * Extended by individual query files.
@@ -50770,6 +50864,82 @@ export type TimeCampusIngestCaptureEventsResult = {
50770
50864
  events: Array<TimeCampusCaptureEvent>;
50771
50865
  ingested: Scalars['Int']['output'];
50772
50866
  };
50867
+ export type TimeCampusInvoice = {
50868
+ __typename?: 'TimeCampusInvoice';
50869
+ clientAddress?: Maybe<Scalars['String']['output']>;
50870
+ clientEmail?: Maybe<Scalars['String']['output']>;
50871
+ clientName: Scalars['String']['output'];
50872
+ clientPortalConfigId?: Maybe<Scalars['ID']['output']>;
50873
+ context?: Maybe<Scalars['JSON']['output']>;
50874
+ createdAt: Scalars['DateTime']['output'];
50875
+ createdBy: Scalars['String']['output'];
50876
+ currency: Scalars['String']['output'];
50877
+ deletedAt?: Maybe<Scalars['DateTime']['output']>;
50878
+ dueDate?: Maybe<Scalars['DateTime']['output']>;
50879
+ id: Scalars['ID']['output'];
50880
+ invoiceNumber: Scalars['String']['output'];
50881
+ /**
50882
+ * True when the invoice is still SENT (not PAID) and past its due date.
50883
+ * Computed on every read rather than stored — see module header for why a
50884
+ * persisted OVERDUE status is deferred.
50885
+ */
50886
+ isOverdue: Scalars['Boolean']['output'];
50887
+ issueDate: Scalars['DateTime']['output'];
50888
+ lineItems: Array<TimeCampusInvoiceLineItem>;
50889
+ notes?: Maybe<Scalars['String']['output']>;
50890
+ onBehalfOf?: Maybe<Scalars['String']['output']>;
50891
+ paidAt?: Maybe<Scalars['DateTime']['output']>;
50892
+ periodEnd: Scalars['DateTime']['output'];
50893
+ periodStart: Scalars['DateTime']['output'];
50894
+ sentAt?: Maybe<Scalars['DateTime']['output']>;
50895
+ status: TimeCampusInvoiceStatus;
50896
+ subtotal: Scalars['Float']['output'];
50897
+ taxAmount: Scalars['Float']['output'];
50898
+ taxRate: Scalars['Float']['output'];
50899
+ total: Scalars['Float']['output'];
50900
+ updatedAt: Scalars['DateTime']['output'];
50901
+ updatedBy?: Maybe<Scalars['String']['output']>;
50902
+ workspaceId: Scalars['ID']['output'];
50903
+ };
50904
+ export type TimeCampusInvoiceFilterInput = {
50905
+ clientName?: InputMaybe<Scalars['String']['input']>;
50906
+ dateFrom?: InputMaybe<Scalars['DateTime']['input']>;
50907
+ dateTo?: InputMaybe<Scalars['DateTime']['input']>;
50908
+ status?: InputMaybe<TimeCampusInvoiceStatus>;
50909
+ };
50910
+ export type TimeCampusInvoiceLineItem = {
50911
+ __typename?: 'TimeCampusInvoiceLineItem';
50912
+ amount: Scalars['Float']['output'];
50913
+ description: Scalars['String']['output'];
50914
+ id: Scalars['ID']['output'];
50915
+ invoiceId: Scalars['ID']['output'];
50916
+ periodEnd?: Maybe<Scalars['DateTime']['output']>;
50917
+ periodStart?: Maybe<Scalars['DateTime']['output']>;
50918
+ projectId?: Maybe<Scalars['ID']['output']>;
50919
+ quantity: Scalars['Float']['output'];
50920
+ taskId?: Maybe<Scalars['ID']['output']>;
50921
+ unitRate: Scalars['Float']['output'];
50922
+ };
50923
+ export type TimeCampusInvoiceListResponse = {
50924
+ __typename?: 'TimeCampusInvoiceListResponse';
50925
+ hasMore: Scalars['Boolean']['output'];
50926
+ items: Array<TimeCampusInvoice>;
50927
+ total: Scalars['Int']['output'];
50928
+ };
50929
+ export type TimeCampusInvoiceStats = {
50930
+ __typename?: 'TimeCampusInvoiceStats';
50931
+ draftCount: Scalars['Int']['output'];
50932
+ paidCount: Scalars['Int']['output'];
50933
+ sentCount: Scalars['Int']['output'];
50934
+ totalInvoiced: Scalars['Float']['output'];
50935
+ totalOutstanding: Scalars['Float']['output'];
50936
+ totalPaid: Scalars['Float']['output'];
50937
+ };
50938
+ export declare enum TimeCampusInvoiceStatus {
50939
+ Draft = "DRAFT",
50940
+ Paid = "PAID",
50941
+ Sent = "SENT"
50942
+ }
50773
50943
  export type TimeCampusLifeBalance = {
50774
50944
  __typename?: 'TimeCampusLifeBalance';
50775
50945
  byDomain: Array<TimeCampusLifeDomainBalance>;
@@ -53945,6 +54115,11 @@ export type UpdateTimeCampusConfigurationInput = {
53945
54115
  isSecret?: InputMaybe<Scalars['Boolean']['input']>;
53946
54116
  value?: InputMaybe<Scalars['JSON']['input']>;
53947
54117
  };
54118
+ export type UpdateTimeCampusInvoiceStatusInput = {
54119
+ id: Scalars['ID']['input'];
54120
+ status: TimeCampusInvoiceStatus;
54121
+ workspaceId: Scalars['ID']['input'];
54122
+ };
53948
54123
  export type UpdateTimeCampusProjectInput = {
53949
54124
  budget?: InputMaybe<Scalars['Float']['input']>;
53950
54125
  clientId?: InputMaybe<Scalars['ID']['input']>;