@rubydogjp/openkk-client-domain 26.1.8

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 (149) hide show
  1. package/dist/archive/fiscal-period-archive.d.ts +38 -0
  2. package/dist/archive/fiscal-period-archive.d.ts.map +1 -0
  3. package/dist/archive/fiscal-period-archive.js +276 -0
  4. package/dist/archive/fiscal-period-archive.js.map +1 -0
  5. package/dist/assist/fixed-asset-data.d.ts +32 -0
  6. package/dist/assist/fixed-asset-data.d.ts.map +1 -0
  7. package/dist/assist/fixed-asset-data.js +2 -0
  8. package/dist/assist/fixed-asset-data.js.map +1 -0
  9. package/dist/assist/fixed-asset-depreciation.d.ts +27 -0
  10. package/dist/assist/fixed-asset-depreciation.d.ts.map +1 -0
  11. package/dist/assist/fixed-asset-depreciation.js +66 -0
  12. package/dist/assist/fixed-asset-depreciation.js.map +1 -0
  13. package/dist/assist/opening-carryover.d.ts +21 -0
  14. package/dist/assist/opening-carryover.d.ts.map +1 -0
  15. package/dist/assist/opening-carryover.js +2 -0
  16. package/dist/assist/opening-carryover.js.map +1 -0
  17. package/dist/entries/default-master-data.d.ts +3 -0
  18. package/dist/entries/default-master-data.d.ts.map +1 -0
  19. package/dist/entries/default-master-data.js +17 -0
  20. package/dist/entries/default-master-data.js.map +1 -0
  21. package/dist/entries/entries-types.d.ts +30 -0
  22. package/dist/entries/entries-types.d.ts.map +1 -0
  23. package/dist/entries/entries-types.js +2 -0
  24. package/dist/entries/entries-types.js.map +1 -0
  25. package/dist/entries/entry-record.d.ts +53 -0
  26. package/dist/entries/entry-record.d.ts.map +1 -0
  27. package/dist/entries/entry-record.js +180 -0
  28. package/dist/entries/entry-record.js.map +1 -0
  29. package/dist/entries/example-entries.d.ts +7 -0
  30. package/dist/entries/example-entries.d.ts.map +1 -0
  31. package/dist/entries/example-entries.js +97 -0
  32. package/dist/entries/example-entries.js.map +1 -0
  33. package/dist/entries/generated-master-data.d.ts +26 -0
  34. package/dist/entries/generated-master-data.d.ts.map +1 -0
  35. package/dist/entries/generated-master-data.js +2211 -0
  36. package/dist/entries/generated-master-data.js.map +1 -0
  37. package/dist/entries/import-export.d.ts +13 -0
  38. package/dist/entries/import-export.d.ts.map +1 -0
  39. package/dist/entries/import-export.js +319 -0
  40. package/dist/entries/import-export.js.map +1 -0
  41. package/dist/entries/quick-guide-data.d.ts +32 -0
  42. package/dist/entries/quick-guide-data.d.ts.map +1 -0
  43. package/dist/entries/quick-guide-data.js +513 -0
  44. package/dist/entries/quick-guide-data.js.map +1 -0
  45. package/dist/entries/virtual-entries.d.ts +58 -0
  46. package/dist/entries/virtual-entries.d.ts.map +1 -0
  47. package/dist/entries/virtual-entries.js +414 -0
  48. package/dist/entries/virtual-entries.js.map +1 -0
  49. package/dist/index.d.ts +34 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +34 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/print/examples/financial-statements-example.d.ts +5 -0
  54. package/dist/print/examples/financial-statements-example.d.ts.map +1 -0
  55. package/dist/print/examples/financial-statements-example.js +246 -0
  56. package/dist/print/examples/financial-statements-example.js.map +1 -0
  57. package/dist/print/examples/general-ledger-example.d.ts +5 -0
  58. package/dist/print/examples/general-ledger-example.d.ts.map +1 -0
  59. package/dist/print/examples/general-ledger-example.js +10 -0
  60. package/dist/print/examples/general-ledger-example.js.map +1 -0
  61. package/dist/print/examples/journal-example.d.ts +4 -0
  62. package/dist/print/examples/journal-example.d.ts.map +1 -0
  63. package/dist/print/examples/journal-example.js +16 -0
  64. package/dist/print/examples/journal-example.js.map +1 -0
  65. package/dist/print/financial-statements-print.d.ts +10 -0
  66. package/dist/print/financial-statements-print.d.ts.map +1 -0
  67. package/dist/print/financial-statements-print.js +223 -0
  68. package/dist/print/financial-statements-print.js.map +1 -0
  69. package/dist/print/fs-data.d.ts +37 -0
  70. package/dist/print/fs-data.d.ts.map +1 -0
  71. package/dist/print/fs-data.js +348 -0
  72. package/dist/print/fs-data.js.map +1 -0
  73. package/dist/print/general-ledger-print.d.ts +10 -0
  74. package/dist/print/general-ledger-print.d.ts.map +1 -0
  75. package/dist/print/general-ledger-print.js +250 -0
  76. package/dist/print/general-ledger-print.js.map +1 -0
  77. package/dist/print/journal-print.d.ts +4 -0
  78. package/dist/print/journal-print.d.ts.map +1 -0
  79. package/dist/print/journal-print.js +126 -0
  80. package/dist/print/journal-print.js.map +1 -0
  81. package/dist/print/print-shell.d.ts +9 -0
  82. package/dist/print/print-shell.d.ts.map +1 -0
  83. package/dist/print/print-shell.js +28 -0
  84. package/dist/print/print-shell.js.map +1 -0
  85. package/dist/shared/app-error.d.ts +25 -0
  86. package/dist/shared/app-error.d.ts.map +1 -0
  87. package/dist/shared/app-error.js +115 -0
  88. package/dist/shared/app-error.js.map +1 -0
  89. package/dist/shared/bootstrap-data.d.ts +15 -0
  90. package/dist/shared/bootstrap-data.d.ts.map +1 -0
  91. package/dist/shared/bootstrap-data.js +150 -0
  92. package/dist/shared/bootstrap-data.js.map +1 -0
  93. package/dist/shared/brand-config.d.ts +6 -0
  94. package/dist/shared/brand-config.d.ts.map +1 -0
  95. package/dist/shared/brand-config.js +2 -0
  96. package/dist/shared/brand-config.js.map +1 -0
  97. package/dist/shared/demo-data.d.ts +15 -0
  98. package/dist/shared/demo-data.d.ts.map +1 -0
  99. package/dist/shared/demo-data.js +150 -0
  100. package/dist/shared/demo-data.js.map +1 -0
  101. package/dist/shared/models.d.ts +52 -0
  102. package/dist/shared/models.d.ts.map +1 -0
  103. package/dist/shared/models.js +2 -0
  104. package/dist/shared/models.js.map +1 -0
  105. package/dist/shared/openkk-config.d.ts +41 -0
  106. package/dist/shared/openkk-config.d.ts.map +1 -0
  107. package/dist/shared/openkk-config.js +15 -0
  108. package/dist/shared/openkk-config.js.map +1 -0
  109. package/dist/shared/parse-utils.d.ts +7 -0
  110. package/dist/shared/parse-utils.d.ts.map +1 -0
  111. package/dist/shared/parse-utils.js +43 -0
  112. package/dist/shared/parse-utils.js.map +1 -0
  113. package/dist/shared/period-lock.d.ts +9 -0
  114. package/dist/shared/period-lock.d.ts.map +1 -0
  115. package/dist/shared/period-lock.js +41 -0
  116. package/dist/shared/period-lock.js.map +1 -0
  117. package/dist/shared/sample-data.d.ts +15 -0
  118. package/dist/shared/sample-data.d.ts.map +1 -0
  119. package/dist/shared/sample-data.js +161 -0
  120. package/dist/shared/sample-data.js.map +1 -0
  121. package/dist/shared/user.d.ts +20 -0
  122. package/dist/shared/user.d.ts.map +1 -0
  123. package/dist/shared/user.js +13 -0
  124. package/dist/shared/user.js.map +1 -0
  125. package/dist/steps/next-fiscal-period.d.ts +32 -0
  126. package/dist/steps/next-fiscal-period.d.ts.map +1 -0
  127. package/dist/steps/next-fiscal-period.js +128 -0
  128. package/dist/steps/next-fiscal-period.js.map +1 -0
  129. package/dist/steps/period-check.d.ts +9 -0
  130. package/dist/steps/period-check.d.ts.map +1 -0
  131. package/dist/steps/period-check.js +23 -0
  132. package/dist/steps/period-check.js.map +1 -0
  133. package/dist/steps/step-derivation.d.ts +15 -0
  134. package/dist/steps/step-derivation.d.ts.map +1 -0
  135. package/dist/steps/step-derivation.js +38 -0
  136. package/dist/steps/step-derivation.js.map +1 -0
  137. package/dist/steps/step-trend.d.ts +17 -0
  138. package/dist/steps/step-trend.d.ts.map +1 -0
  139. package/dist/steps/step-trend.js +30 -0
  140. package/dist/steps/step-trend.js.map +1 -0
  141. package/dist/steps/summary.d.ts +24 -0
  142. package/dist/steps/summary.d.ts.map +1 -0
  143. package/dist/steps/summary.js +69 -0
  144. package/dist/steps/summary.js.map +1 -0
  145. package/dist/steps/year-month.d.ts +10 -0
  146. package/dist/steps/year-month.d.ts.map +1 -0
  147. package/dist/steps/year-month.js +26 -0
  148. package/dist/steps/year-month.js.map +1 -0
  149. package/package.json +38 -0
@@ -0,0 +1,150 @@
1
+ import { DEFAULT_BOOK_ACCOUNTS } from "../entries/default-master-data";
2
+ function bookAccountIdByName(name) {
3
+ return DEFAULT_BOOK_ACCOUNTS.find((acc) => acc.name === name)?.id ?? name;
4
+ }
5
+ function buildDemoOpeningJournals(fiscalPeriodId) {
6
+ const fiscalYear = fiscalPeriodId.slice(3, 7);
7
+ const date = `${fiscalYear}-01-01`;
8
+ const demoRows = [
9
+ {
10
+ description: "期首再振替 売掛金",
11
+ debit: "売掛金",
12
+ credit: "売上",
13
+ amount: 240000,
14
+ partner: "",
15
+ biz: "",
16
+ },
17
+ {
18
+ description: "期首再振替 未収入金",
19
+ debit: "未収入金",
20
+ credit: "雑収入",
21
+ amount: 64000,
22
+ partner: "",
23
+ biz: "",
24
+ },
25
+ {
26
+ description: "期首再振替 商品",
27
+ debit: "商品",
28
+ credit: "仕入",
29
+ amount: 150000,
30
+ partner: "",
31
+ biz: "",
32
+ },
33
+ {
34
+ description: "期首再振替 貯蔵品",
35
+ debit: "消耗品費",
36
+ credit: "貯蔵品",
37
+ amount: 28000,
38
+ partner: "",
39
+ biz: "",
40
+ },
41
+ {
42
+ description: "期首再振替 未払金",
43
+ debit: "地代家賃",
44
+ credit: "未払金",
45
+ amount: 120000,
46
+ partner: "共同オフィスA",
47
+ biz: "",
48
+ },
49
+ {
50
+ description: "期首再振替 前受金",
51
+ debit: "前受金",
52
+ credit: "売上",
53
+ amount: 48000,
54
+ partner: "",
55
+ biz: "第5種(サービス業等)",
56
+ },
57
+ ];
58
+ return demoRows.map((row, index) => {
59
+ const id = `oc-${fiscalPeriodId}-${index + 1}`;
60
+ return {
61
+ id,
62
+ date,
63
+ description: row.description,
64
+ businessRate: 1,
65
+ lines: [
66
+ {
67
+ id: `${id}-d`,
68
+ side: "debit",
69
+ bookAccountId: bookAccountIdByName(row.debit),
70
+ amount: row.amount,
71
+ partnerName: row.partner,
72
+ taxCategoryId: "対象外",
73
+ businessCategoryId: row.biz,
74
+ },
75
+ {
76
+ id: `${id}-c`,
77
+ side: "credit",
78
+ bookAccountId: bookAccountIdByName(row.credit),
79
+ amount: row.amount,
80
+ partnerName: row.partner,
81
+ taxCategoryId: "対象外",
82
+ businessCategoryId: row.biz,
83
+ },
84
+ ],
85
+ };
86
+ });
87
+ }
88
+ export const demoOpeningBalanceLines = [
89
+ { id: "cash", accountId: "a:現金", amount: 320000 },
90
+ { id: "bank", accountId: "a:その他の預金", amount: 1800000 },
91
+ { id: "receivable", accountId: "a:売掛金", amount: 240000 },
92
+ { id: "accrued_revenue", accountId: "a:未収入金", amount: 64000 },
93
+ { id: "inventory", accountId: "a:棚卸資産", amount: 150000 },
94
+ { id: "stored_supplies", accountId: "a:貯蔵品", amount: 28000 },
95
+ { id: "payable", accountId: "l:買掛金", amount: 120000 },
96
+ { id: "advance_received", accountId: "l:前受金", amount: 48000 },
97
+ { id: "borrowing", accountId: "l:借入金", amount: 600000 },
98
+ { id: "capital", accountId: "l:元入金", amount: 1834000 },
99
+ ];
100
+ export const demoOpeningDebitTotal = demoOpeningBalanceLines
101
+ .filter((line) => line.accountId.startsWith("a:"))
102
+ .reduce((sum, line) => sum + line.amount, 0);
103
+ export const demoOpeningCreditTotal = demoOpeningBalanceLines
104
+ .filter((line) => line.accountId.startsWith("l:"))
105
+ .reduce((sum, line) => sum + line.amount, 0);
106
+ function buildDemoFiscalPeriod2026(userId, name, progress) {
107
+ const isInProgress = progress === "in-progress";
108
+ return {
109
+ id: "fp-2026",
110
+ userId,
111
+ name,
112
+ startDate: "2026-01-01",
113
+ endDate: "2026-12-31",
114
+ phase: isInProgress ? "journalizing" : "pre_opening",
115
+ archiveStatus: "active",
116
+ archiveDataAvailable: true,
117
+ settingsCompleted: isInProgress,
118
+ openingBalancesCompleted: isInProgress,
119
+ documentsReceivedCompleted: false,
120
+ openingDebitTotal: demoOpeningDebitTotal,
121
+ openingCreditTotal: demoOpeningCreditTotal,
122
+ createdAt: DEMO_FISCAL_PERIOD_TIMESTAMP,
123
+ updatedAt: DEMO_FISCAL_PERIOD_TIMESTAMP,
124
+ opening: {
125
+ id: "opening-fp-2026",
126
+ userId,
127
+ fiscalPeriodId: "fp-2026",
128
+ createdAt: DEMO_FISCAL_PERIOD_TIMESTAMP,
129
+ updatedAt: DEMO_FISCAL_PERIOD_TIMESTAMP,
130
+ openingBalanceLines: demoOpeningBalanceLines,
131
+ openingJournals: isInProgress ? buildDemoOpeningJournals("fp-2026") : [],
132
+ },
133
+ };
134
+ }
135
+ const DEMO_FISCAL_PERIOD_TIMESTAMP = new Date(0).toISOString();
136
+ export function buildBootstrapUser(config) {
137
+ return config.authMode === "embedded" ? config.embeddedUser : null;
138
+ }
139
+ export function buildBootstrapFiscalPeriods(config) {
140
+ return [
141
+ buildDemoFiscalPeriod2026(config.mockUserId, "2026年分", "in-progress"),
142
+ ];
143
+ }
144
+ export function buildBootstrapFiscalPeriodId(config) {
145
+ return config.initialMockFiscalPeriodId;
146
+ }
147
+ export function buildSignedOutFiscalPeriodId(config) {
148
+ return config.mode === "dev" ? config.initialMockFiscalPeriodId : null;
149
+ }
150
+ //# sourceMappingURL=demo-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-data.js","sourceRoot":"","sources":["../../src/shared/demo-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { OpenkkUser } from "./user";
2
+ export type Session = {
3
+ user: OpenkkUser;
4
+ };
5
+ export type FiscalPeriodPhase = "pre_opening" | "journalizing" | "pre_closing" | "post_closing";
6
+ export type FiscalPeriodArchiveStatus = "active" | "archived";
7
+ export type FiscalPeriod = {
8
+ id: string;
9
+ userId: string;
10
+ name: string;
11
+ startDate: string;
12
+ endDate: string;
13
+ phase: FiscalPeriodPhase;
14
+ archiveStatus: FiscalPeriodArchiveStatus;
15
+ archiveDataAvailable: boolean;
16
+ archivedAt?: string | null;
17
+ settingsCompleted: boolean;
18
+ openingBalancesCompleted: boolean;
19
+ documentsReceivedCompleted: boolean;
20
+ openingDebitTotal: number;
21
+ openingCreditTotal: number;
22
+ createdAt: string;
23
+ updatedAt: string;
24
+ opening?: {
25
+ id: string;
26
+ userId: string;
27
+ fiscalPeriodId: string;
28
+ createdAt: string;
29
+ updatedAt: string;
30
+ openingBalanceLines: Array<{
31
+ id: string;
32
+ accountId: string;
33
+ amount: number;
34
+ }>;
35
+ openingJournals: Array<{
36
+ id: string;
37
+ date: string;
38
+ description: string;
39
+ businessRate: number;
40
+ lines: Array<{
41
+ id: string;
42
+ side: "debit" | "credit";
43
+ bookAccountId: string;
44
+ amount: number;
45
+ partnerName: string;
46
+ taxCategoryId: string;
47
+ businessCategoryId: string;
48
+ }>;
49
+ }>;
50
+ };
51
+ };
52
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/shared/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB,aAAa,GACb,cAAc,GACd,aAAa,GACb,cAAc,CAAC;AAEnB,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,iBAAiB,CAAC;IACzB,aAAa,EAAE,yBAAyB,CAAC;IACzC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wBAAwB,EAAE,OAAO,CAAC;IAClC,0BAA0B,EAAE,OAAO,CAAC;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,mBAAmB,EAAE,KAAK,CAAC;YACzB,EAAE,EAAE,MAAM,CAAC;YACX,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;QACH,eAAe,EAAE,KAAK,CAAC;YACrB,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,YAAY,EAAE,MAAM,CAAC;YACrB,KAAK,EAAE,KAAK,CAAC;gBACX,EAAE,EAAE,MAAM,CAAC;gBACX,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;gBACzB,aAAa,EAAE,MAAM,CAAC;gBACtB,MAAM,EAAE,MAAM,CAAC;gBACf,WAAW,EAAE,MAAM,CAAC;gBACpB,aAAa,EAAE,MAAM,CAAC;gBACtB,kBAAkB,EAAE,MAAM,CAAC;aAC5B,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC;CACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/shared/models.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import type { EmbeddedUser } from "./user";
2
+ export type OpenkkEnv = "dev" | "stg" | "prod";
3
+ export type OpenkkAuthMode = "embedded" | "custom";
4
+ export type FiscalPeriodArchiveRetention = "persistent" | "ephemeral";
5
+ export type FiscalPeriodPolicy = {
6
+ maxActivePeriods: number | null;
7
+ archiveRetention: FiscalPeriodArchiveRetention;
8
+ ephemeralArchiveWarning?: {
9
+ title?: string;
10
+ body?: string;
11
+ confirmLabel?: string;
12
+ };
13
+ allowArchiveImport?: boolean;
14
+ };
15
+ export declare const DEFAULT_FISCAL_PERIOD_POLICY: FiscalPeriodPolicy;
16
+ export type OpenkkEditingPolicy = {
17
+ locked?: boolean;
18
+ lockedNotice?: string;
19
+ };
20
+ export interface OpenkkConfig {
21
+ today: Date;
22
+ env: OpenkkEnv;
23
+ bundleLabel: string;
24
+ isMockMode: boolean;
25
+ authMode: OpenkkAuthMode;
26
+ embeddedUser: EmbeddedUser;
27
+ mockUserId: string;
28
+ initialMockUserId: string | null;
29
+ initialMockFiscalPeriodId: string | null;
30
+ sessionStorageKey: string;
31
+ fiscalPeriodStorageKey: string;
32
+ fiscalPeriodPolicy?: FiscalPeriodPolicy;
33
+ editingPolicy?: OpenkkEditingPolicy;
34
+ debugRoutesEnabled?: boolean;
35
+ }
36
+ export declare function resolveEditingPolicy(config: Pick<OpenkkConfig, "editingPolicy">): {
37
+ locked: boolean;
38
+ lockedNotice?: string;
39
+ };
40
+ export declare function resolveFiscalPeriodPolicy(config: Pick<OpenkkConfig, "fiscalPeriodPolicy">): FiscalPeriodPolicy;
41
+ //# sourceMappingURL=openkk-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openkk-config.d.ts","sourceRoot":"","sources":["../../src/shared/openkk-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAE/C,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnD,MAAM,MAAM,4BAA4B,GAAG,YAAY,GAAG,WAAW,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,4BAA4B,CAAC;IAC/C,uBAAuB,CAAC,EAAE;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,kBAI1C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,IAAI,CAAC;IACZ,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,GAC1C;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAK5C;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,GAC/C,kBAAkB,CAEpB"}
@@ -0,0 +1,15 @@
1
+ export const DEFAULT_FISCAL_PERIOD_POLICY = {
2
+ maxActivePeriods: null,
3
+ archiveRetention: "persistent",
4
+ allowArchiveImport: true,
5
+ };
6
+ export function resolveEditingPolicy(config) {
7
+ return {
8
+ locked: config.editingPolicy?.locked ?? false,
9
+ lockedNotice: config.editingPolicy?.lockedNotice,
10
+ };
11
+ }
12
+ export function resolveFiscalPeriodPolicy(config) {
13
+ return config.fiscalPeriodPolicy ?? DEFAULT_FISCAL_PERIOD_POLICY;
14
+ }
15
+ //# sourceMappingURL=openkk-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openkk-config.js","sourceRoot":"","sources":["../../src/shared/openkk-config.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,4BAA4B,GAAuB;IAC9D,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,YAAY;IAC9B,kBAAkB,EAAE,IAAI;CACzB,CAAC;AAwBF,MAAM,UAAU,oBAAoB,CAClC,MAA2C;IAE3C,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,KAAK;QAC7C,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,YAAY;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,MAAgD;IAEhD,OAAO,MAAM,CAAC,kBAAkB,IAAI,4BAA4B,CAAC;AACnE,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare function parseAmount(value: string | number): number;
2
+ export declare function parseBusinessRate(value: string): number;
3
+ export declare function parseIsoLocalDate(value: string): Date | null;
4
+ export declare function formatIsoLocalDate(date: Date): string;
5
+ export declare const WEEKDAY_LABELS_JA: string[];
6
+ export declare function weekdayJa(dateText: string): string;
7
+ //# sourceMappingURL=parse-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-utils.d.ts","sourceRoot":"","sources":["../../src/shared/parse-utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAK1D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAc5D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAMrD;AAED,eAAO,MAAM,iBAAiB,UAAsC,CAAC;AAErE,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIlD"}
@@ -0,0 +1,43 @@
1
+ export function parseAmount(value) {
2
+ if (typeof value === "number")
3
+ return Number.isFinite(value) ? Math.round(value) : 0;
4
+ const parsed = Number(value.replaceAll(",", ""));
5
+ return Number.isFinite(parsed) ? Math.round(parsed) : 0;
6
+ }
7
+ export function parseBusinessRate(value) {
8
+ if (value.trim() === "")
9
+ return 1;
10
+ const n = Number(value);
11
+ if (!Number.isFinite(n))
12
+ return 1;
13
+ return Math.max(0, Math.min(100, n)) / 100;
14
+ }
15
+ export function parseIsoLocalDate(value) {
16
+ const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value);
17
+ if (match == null)
18
+ return null;
19
+ const year = Number(match[1]);
20
+ const month = Number(match[2]) - 1;
21
+ const day = Number(match[3]);
22
+ const date = new Date(year, month, day);
23
+ if (date.getFullYear() !== year ||
24
+ date.getMonth() !== month ||
25
+ date.getDate() !== day)
26
+ return null;
27
+ return date;
28
+ }
29
+ export function formatIsoLocalDate(date) {
30
+ return [
31
+ date.getFullYear(),
32
+ String(date.getMonth() + 1).padStart(2, "0"),
33
+ String(date.getDate()).padStart(2, "0"),
34
+ ].join("-");
35
+ }
36
+ export const WEEKDAY_LABELS_JA = ["日", "月", "火", "水", "木", "金", "土"];
37
+ export function weekdayJa(dateText) {
38
+ const date = parseIsoLocalDate(dateText);
39
+ if (date == null)
40
+ return "";
41
+ return WEEKDAY_LABELS_JA[date.getDay()] ?? "";
42
+ }
43
+ //# sourceMappingURL=parse-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-utils.js","sourceRoot":"","sources":["../../src/shared/parse-utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,KAAsB;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,KAAK,GAAG,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,IACE,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI;QAC3B,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK;QACzB,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG;QAEtB,OAAO,IAAI,CAAC;IACd,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAU;IAC3C,OAAO;QACL,IAAI,CAAC,WAAW,EAAE;QAClB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;KACxC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAErE,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC5B,OAAO,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { FiscalPeriod } from "./models";
2
+ export declare function isJournalizingActive(period: FiscalPeriod | null | undefined): boolean;
3
+ export declare function isArchivedStub(period: FiscalPeriod | null | undefined): boolean;
4
+ export type PeriodLockMessage = {
5
+ title: string;
6
+ description: string;
7
+ };
8
+ export declare function buildPeriodLockMessage(period: FiscalPeriod | null | undefined, subjectVerb?: string): PeriodLockMessage | null;
9
+ //# sourceMappingURL=period-lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"period-lock.d.ts","sourceRoot":"","sources":["../../src/shared/period-lock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GACtC,OAAO,CAGT;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GACtC,OAAO,CAKT;AAED,MAAM,MAAM,iBAAiB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,EACvC,WAAW,GAAE,MAAiB,GAC7B,iBAAiB,GAAG,IAAI,CA6B1B"}
@@ -0,0 +1,41 @@
1
+ export function isJournalizingActive(period) {
2
+ if (period == null)
3
+ return false;
4
+ return period.archiveStatus === "active" && period.phase === "journalizing";
5
+ }
6
+ export function isArchivedStub(period) {
7
+ if (period == null)
8
+ return false;
9
+ return (period.archiveStatus === "archived" && period.archiveDataAvailable === false);
10
+ }
11
+ export function buildPeriodLockMessage(period, subjectVerb = "編集できます") {
12
+ if (period == null) {
13
+ return { title: "ロックされています", description: "期間が未選択です" };
14
+ }
15
+ if (period.archiveStatus === "archived") {
16
+ return {
17
+ title: "圧縮保存済みです",
18
+ description: "圧縮保存済みの会計期間は編集できません",
19
+ };
20
+ }
21
+ if (period.phase === "pre_opening") {
22
+ return {
23
+ title: "ロックされています",
24
+ description: `期間を開始後に${subjectVerb}`,
25
+ };
26
+ }
27
+ if (period.phase === "post_closing") {
28
+ return {
29
+ title: "ロックされています",
30
+ description: "本締め以降は編集できません",
31
+ };
32
+ }
33
+ if (period.phase === "pre_closing") {
34
+ return {
35
+ title: "ロックされています",
36
+ description: "仮締め以降は編集できません",
37
+ };
38
+ }
39
+ return null;
40
+ }
41
+ //# sourceMappingURL=period-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"period-lock.js","sourceRoot":"","sources":["../../src/shared/period-lock.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAClC,MAAuC;IAEvC,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,cAAc,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAuC;IAEvC,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO,CACL,MAAM,CAAC,aAAa,KAAK,UAAU,IAAI,MAAM,CAAC,oBAAoB,KAAK,KAAK,CAC7E,CAAC;AACJ,CAAC;AAID,MAAM,UAAU,sBAAsB,CACpC,MAAuC,EACvC,cAAsB,QAAQ;IAE9B,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO;YACL,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,qBAAqB;SACnC,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;QACnC,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,UAAU,WAAW,EAAE;SACrC,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,cAAc,EAAE,CAAC;QACpC,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,eAAe;SAC7B,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;QACnC,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,eAAe;SAC7B,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { OpenkkConfig } from "./openkk-config";
2
+ import type { FiscalPeriod, Session } from "./models";
3
+ export declare const sampleOpeningBalanceLines: {
4
+ id: string;
5
+ accountId: string;
6
+ amount: number;
7
+ }[];
8
+ export declare const sampleOpeningDebitTotal: number;
9
+ export declare const sampleOpeningCreditTotal: number;
10
+ export declare function buildSampleSession(config: OpenkkConfig, userId?: string): Session;
11
+ export declare function buildBootstrapFiscalPeriods(config: OpenkkConfig): FiscalPeriod[];
12
+ export declare function buildBootstrapSessionUserId(config: OpenkkConfig): string | null;
13
+ export declare function buildBootstrapFiscalPeriodId(config: OpenkkConfig): string | null;
14
+ export declare function buildSignedOutFiscalPeriodId(config: OpenkkConfig): string | null;
15
+ //# sourceMappingURL=sample-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample-data.d.ts","sourceRoot":"","sources":["../../src/shared/sample-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AA2FtD,eAAO,MAAM,yBAAyB;;;;GAWrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAEU,CAAC;AAE/C,eAAO,MAAM,wBAAwB,QAES,CAAC;AAmC/C,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAWT;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,YAAY,GACnB,YAAY,EAAE,CAgBhB;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,YAAY,GACnB,MAAM,GAAG,IAAI,CAEf;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,YAAY,GACnB,MAAM,GAAG,IAAI,CAEf;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,YAAY,GACnB,MAAM,GAAG,IAAI,CAEf"}
@@ -0,0 +1,161 @@
1
+ import { DEFAULT_BOOK_ACCOUNTS } from "../entries/default-master-data";
2
+ function bookAccountIdByName(name) {
3
+ return DEFAULT_BOOK_ACCOUNTS.find((acc) => acc.name === name)?.id ?? name;
4
+ }
5
+ function buildSampleCarryoverJournals(fiscalPeriodId) {
6
+ const fiscalYear = fiscalPeriodId.slice(3, 7);
7
+ const date = `${fiscalYear}-01-01`;
8
+ const sample = [
9
+ {
10
+ description: "期首再振替 売掛金",
11
+ debit: "売掛金",
12
+ credit: "売上",
13
+ amount: 240000,
14
+ partner: "",
15
+ biz: "",
16
+ },
17
+ {
18
+ description: "期首再振替 未収入金",
19
+ debit: "未収入金",
20
+ credit: "雑収入",
21
+ amount: 64000,
22
+ partner: "",
23
+ biz: "",
24
+ },
25
+ {
26
+ description: "期首再振替 商品",
27
+ debit: "商品",
28
+ credit: "仕入",
29
+ amount: 150000,
30
+ partner: "",
31
+ biz: "",
32
+ },
33
+ {
34
+ description: "期首再振替 貯蔵品",
35
+ debit: "消耗品費",
36
+ credit: "貯蔵品",
37
+ amount: 28000,
38
+ partner: "",
39
+ biz: "",
40
+ },
41
+ {
42
+ description: "期首再振替 未払金",
43
+ debit: "地代家賃",
44
+ credit: "未払金",
45
+ amount: 120000,
46
+ partner: "共同オフィスA",
47
+ biz: "",
48
+ },
49
+ {
50
+ description: "期首再振替 前受金",
51
+ debit: "前受金",
52
+ credit: "売上",
53
+ amount: 48000,
54
+ partner: "",
55
+ biz: "第5種(サービス業等)",
56
+ },
57
+ ];
58
+ return sample.map((s, index) => {
59
+ const id = `oc-${fiscalPeriodId}-${index + 1}`;
60
+ return {
61
+ id,
62
+ date,
63
+ description: s.description,
64
+ businessRate: 1,
65
+ lines: [
66
+ {
67
+ id: `${id}-d`,
68
+ side: "debit",
69
+ bookAccountId: bookAccountIdByName(s.debit),
70
+ amount: s.amount,
71
+ partnerName: s.partner,
72
+ taxCategoryName: "対象外",
73
+ businessCategoryName: s.biz,
74
+ },
75
+ {
76
+ id: `${id}-c`,
77
+ side: "credit",
78
+ bookAccountId: bookAccountIdByName(s.credit),
79
+ amount: s.amount,
80
+ partnerName: s.partner,
81
+ taxCategoryName: "対象外",
82
+ businessCategoryName: s.biz,
83
+ },
84
+ ],
85
+ };
86
+ });
87
+ }
88
+ export const sampleOpeningBalanceLines = [
89
+ { id: "cash", accountId: "a:現金", amount: 320000 },
90
+ { id: "bank", accountId: "a:その他の預金", amount: 1800000 },
91
+ { id: "receivable", accountId: "a:売掛金", amount: 240000 },
92
+ { id: "accrued_revenue", accountId: "a:未収入金", amount: 64000 },
93
+ { id: "inventory", accountId: "a:棚卸資産", amount: 150000 },
94
+ { id: "stored_supplies", accountId: "a:貯蔵品", amount: 28000 },
95
+ { id: "payable", accountId: "l:買掛金", amount: 120000 },
96
+ { id: "advance_received", accountId: "l:前受金", amount: 48000 },
97
+ { id: "borrowing", accountId: "l:借入金", amount: 600000 },
98
+ { id: "capital", accountId: "l:元入金", amount: 1834000 },
99
+ ];
100
+ export const sampleOpeningDebitTotal = sampleOpeningBalanceLines
101
+ .filter((line) => line.accountId.startsWith("a:"))
102
+ .reduce((sum, line) => sum + line.amount, 0);
103
+ export const sampleOpeningCreditTotal = sampleOpeningBalanceLines
104
+ .filter((line) => line.accountId.startsWith("l:"))
105
+ .reduce((sum, line) => sum + line.amount, 0);
106
+ function buildSampleFiscalPeriod2026(userId, name, progress) {
107
+ const isInProgress = progress === "in-progress";
108
+ return {
109
+ id: "fp-2026",
110
+ name,
111
+ startDate: "2026-01-01",
112
+ endDate: "2026-12-31",
113
+ stage: isInProgress ? "journalizing" : "pre_opening",
114
+ archived: false,
115
+ provisionalClosingCompleted: false,
116
+ settingsCompleted: isInProgress,
117
+ openingBalancesCompleted: isInProgress,
118
+ documentsReceivedCompleted: false,
119
+ openingDebitTotal: sampleOpeningDebitTotal,
120
+ openingCreditTotal: sampleOpeningCreditTotal,
121
+ opening: {
122
+ id: "opening-fp-2026",
123
+ userId,
124
+ fiscalPeriodId: "fp-2026",
125
+ openingBalanceLines: sampleOpeningBalanceLines,
126
+ carryoverJournals: isInProgress
127
+ ? buildSampleCarryoverJournals("fp-2026")
128
+ : [],
129
+ },
130
+ };
131
+ }
132
+ export function buildSampleSession(config, userId) {
133
+ return {
134
+ userId: userId ?? config.mockUserId,
135
+ displayName: config.mode === "demo"
136
+ ? "デモユーザー"
137
+ : config.mode === "dev"
138
+ ? "開発ユーザー"
139
+ : "このPCに保存",
140
+ email: "サインインなし",
141
+ };
142
+ }
143
+ export function buildBootstrapFiscalPeriods(config) {
144
+ return config.mode === "demo"
145
+ ? [
146
+ buildSampleFiscalPeriod2026(config.mockUserId, "デモ期間2026年分", "fresh"),
147
+ ]
148
+ : [
149
+ buildSampleFiscalPeriod2026(config.mockUserId, "2026年分", "in-progress"),
150
+ ];
151
+ }
152
+ export function buildBootstrapSessionUserId(config) {
153
+ return config.initialMockUserId;
154
+ }
155
+ export function buildBootstrapFiscalPeriodId(config) {
156
+ return config.initialMockFiscalPeriodId;
157
+ }
158
+ export function buildSignedOutFiscalPeriodId(config) {
159
+ return config.mode === "dev" ? config.initialMockFiscalPeriodId : null;
160
+ }
161
+ //# sourceMappingURL=sample-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample-data.js","sourceRoot":"","sources":["../../src/shared/sample-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export type OpenkkUserKind = "embedded" | "custom";
2
+ export type EmbeddedUser = {
3
+ kind: "embedded";
4
+ id: string;
5
+ displayName: string;
6
+ };
7
+ export type CustomUser = {
8
+ kind: "custom";
9
+ id: string;
10
+ displayName: string;
11
+ email: string;
12
+ iconUrl: string | null;
13
+ authProvider: string;
14
+ };
15
+ export type OpenkkUser = EmbeddedUser | CustomUser;
16
+ export declare function isEmbeddedUser(user: OpenkkUser): user is EmbeddedUser;
17
+ export declare function isCustomUser(user: OpenkkUser): user is CustomUser;
18
+ export declare function userCanSignOut(user: OpenkkUser): boolean;
19
+ export declare function userEmail(user: OpenkkUser): string;
20
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/shared/user.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;AAEnD,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,IAAI,YAAY,CAErE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,IAAI,UAAU,CAEjE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAExD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAElD"}
@@ -0,0 +1,13 @@
1
+ export function isEmbeddedUser(user) {
2
+ return user.kind === "embedded";
3
+ }
4
+ export function isCustomUser(user) {
5
+ return user.kind === "custom";
6
+ }
7
+ export function userCanSignOut(user) {
8
+ return user.kind === "custom";
9
+ }
10
+ export function userEmail(user) {
11
+ return user.kind === "custom" ? user.email : "";
12
+ }
13
+ //# sourceMappingURL=user.js.map