@mj-biz-apps/contracts-core-entities-server 0.7.2 → 0.8.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/dist/ContractEntityServer.d.ts +66 -17
- package/dist/ContractEntityServer.d.ts.map +1 -1
- package/dist/ContractEntityServer.js +128 -43
- package/dist/ContractEntityServer.js.map +1 -1
- package/dist/ContractTemplateModificationEntityServer.d.ts +12 -1
- package/dist/ContractTemplateModificationEntityServer.d.ts.map +1 -1
- package/dist/ContractTemplateModificationEntityServer.js +63 -24
- package/dist/ContractTemplateModificationEntityServer.js.map +1 -1
- package/dist/ContractTypeEntityServers.d.ts +3 -3
- package/dist/ContractTypeEntityServers.d.ts.map +1 -1
- package/dist/ContractTypeEntityServers.js +3 -3
- package/dist/ContractTypeEntityServers.js.map +1 -1
- package/dist/index.js +5 -5
- package/package.json +10 -6
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module @mj-biz-apps/contracts-core-entities-server
|
|
9
9
|
*/
|
|
10
|
-
import { BaseEntity, type EntityDeleteOptions, ValidationResult } from '@memberjunction/core';
|
|
10
|
+
import { BaseEntity, type EntityDeleteOptions, type PlatformSQL, ValidationResult } from '@memberjunction/core';
|
|
11
11
|
import { ContractEntity } from '@mj-biz-apps/contracts-entities';
|
|
12
12
|
/**
|
|
13
13
|
* The template a contract being CREATED should carry when its creator named none, or null to leave
|
|
@@ -25,7 +25,8 @@ import { ContractEntity } from '@mj-biz-apps/contracts-entities';
|
|
|
25
25
|
* supplied is never replaced.
|
|
26
26
|
*
|
|
27
27
|
* NO CANDIDATE IS NOT AN ERROR HERE. It returns null, the field stays empty, and `ValidateAsync`
|
|
28
|
-
* refuses the save
|
|
28
|
+
* refuses the save — the same outcome as before this default existed, with a message
|
|
29
|
+
* ({@link TemplateRequiredMessage}) that says no usable template exists rather than asking for a choice.
|
|
29
30
|
*
|
|
30
31
|
* Takes its two reads as callbacks so a unit test can assert which of them run without a provider.
|
|
31
32
|
* The type is read only when the field is writable, so a saved contract pays nothing.
|
|
@@ -35,6 +36,19 @@ export declare function ResolveServerDefaultTemplate(state: {
|
|
|
35
36
|
contractTypeID: string | null | undefined;
|
|
36
37
|
currentTemplateID: string | null | undefined;
|
|
37
38
|
}, readTemplateRequired: () => Promise<boolean>, readCurrentTemplateID: () => Promise<string | null>): Promise<string | null>;
|
|
39
|
+
/**
|
|
40
|
+
* The R-4 refusal for a contract whose type requires a template and carries none.
|
|
41
|
+
*
|
|
42
|
+
* WHY TWO MESSAGES. A fresh install ships no template — `metadata/` carries template TYPES, never one
|
|
43
|
+
* organisation's agreement (docs/database-migrations.md) — so until someone publishes one, every
|
|
44
|
+
* contract of a template-requiring type is refused, including one created by another app with no form
|
|
45
|
+
* to choose from. "Choose the template" names a choice that does not exist; the message has to say
|
|
46
|
+
* what to set up instead (#95).
|
|
47
|
+
*
|
|
48
|
+
* `usableTemplateExists` is the same question the server default asks: is there a Published template
|
|
49
|
+
* with a document or source URL.
|
|
50
|
+
*/
|
|
51
|
+
export declare function TemplateRequiredMessage(typeName: string, usableTemplateExists: boolean): string;
|
|
38
52
|
/**
|
|
39
53
|
* Whether a foreign key is being CHOSEN right now, as opposed to merely being present.
|
|
40
54
|
*
|
|
@@ -53,15 +67,49 @@ export declare function ResolveServerDefaultTemplate(state: {
|
|
|
53
67
|
* would report a change on a record nobody touched.
|
|
54
68
|
*/
|
|
55
69
|
export declare function IsNewlySelected(entity: BaseEntity, fieldName: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* The call that mints a contract number, one form per database.
|
|
72
|
+
*
|
|
73
|
+
* SQL Server: `spAssignNextContractNumber` is a procedure with one OUTPUT parameter, which only a
|
|
74
|
+
* T-SQL batch can read — DECLARE, EXEC … OUTPUT, SELECT.
|
|
75
|
+
*
|
|
76
|
+
* PostgreSQL: a function of the same name, taking nothing and returning the formatted number, ships
|
|
77
|
+
* in the PostgreSQL baseline (`migrations-pg/`). A PostgreSQL function is called from a SELECT, so
|
|
78
|
+
* the call shape differs even though the object and its contract do not. The schema is unquoted and
|
|
79
|
+
* the function name quoted, the converter's convention: it folds the schema to lowercase and keeps
|
|
80
|
+
* object names' case. The alias is quoted so the row key keeps its case instead of folding to
|
|
81
|
+
* `contractnumber`.
|
|
82
|
+
*/
|
|
83
|
+
export declare const ASSIGN_CONTRACT_NUMBER_SQL: PlatformSQL;
|
|
84
|
+
/**
|
|
85
|
+
* The R-3 cycle probe: walk up `column` from `startID` and return the chain if it reaches `selfID`.
|
|
86
|
+
*
|
|
87
|
+
* Same walk on both databases; PostgreSQL needs `WITH RECURSIVE`, `||` for concatenation, `LIMIT 1`
|
|
88
|
+
* and quoted identifiers (the converter quotes table and column names). The aliases are quoted so the
|
|
89
|
+
* row keys stay `Chain` and `Depth` instead of folding to lowercase.
|
|
90
|
+
*
|
|
91
|
+
* Callers check both IDs against `UUID_SHAPE` first; `column` comes from a fixed internal list.
|
|
92
|
+
*/
|
|
93
|
+
export declare function lineageProbeSQL(column: 'ParentContractID' | 'SupersededByContractID', startID: string, selfID: string): PlatformSQL;
|
|
94
|
+
/**
|
|
95
|
+
* The R-4 count: how many of `contractID`'s modifications cite a provision of `templateID`.
|
|
96
|
+
*
|
|
97
|
+
* A `RunView` cannot replace this: the modifications view carries no template column, so the filter
|
|
98
|
+
* needs a subquery, and that subquery would be dialect-specific too. `COUNT(*)` comes back as a
|
|
99
|
+
* string from the PostgreSQL driver (it is a bigint), which the caller's `Number()` handles.
|
|
100
|
+
*
|
|
101
|
+
* Callers check both IDs against `UUID_SHAPE` first.
|
|
102
|
+
*/
|
|
103
|
+
export declare function modificationsAgainstTemplateSQL(contractID: string, templateID: string): PlatformSQL;
|
|
56
104
|
export declare class ContractEntityServer extends ContractEntity {
|
|
57
105
|
/**
|
|
58
106
|
* Mint `ContractNumber` on first save, default an empty `ContractTemplateID` when the type requires
|
|
59
107
|
* one (see {@link ResolveServerDefaultTemplate}), then persist.
|
|
60
108
|
*
|
|
61
|
-
* WHY THE NUMBER IS MINTED HERE and not defaulted in SQL. It comes from
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* with it.
|
|
109
|
+
* WHY THE NUMBER IS MINTED HERE and not defaulted in SQL. It comes from the `seq_ContractNumber`
|
|
110
|
+
* sequence through `spAssignNextContractNumber` (see {@link assignContractNumber}), and a column
|
|
111
|
+
* default cannot be used: it stops spCreateContract from compiling (MJ#4000). A client cannot be
|
|
112
|
+
* trusted with it.
|
|
65
113
|
*
|
|
66
114
|
* Contracts needs no `SkipRelatedCollections` dance, unlike orders: nothing here prepares child
|
|
67
115
|
* rows before the graph executor runs, so the plain save carries `Modifications` with it.
|
|
@@ -102,7 +150,7 @@ export declare class ContractEntityServer extends ContractEntity {
|
|
|
102
150
|
* column whose values INVERT the rule when read in the wrong order is a column that will
|
|
103
151
|
* eventually be read in the wrong order. Now two booleans, mutually exclusive by
|
|
104
152
|
* `CK_ContractType_RootOrChild`, and "both false" means unrestricted — a real and in fact majority
|
|
105
|
-
* state
|
|
153
|
+
* state.
|
|
106
154
|
*
|
|
107
155
|
* Both placement directions are enforced, because a rule that only ever checks one of them is half
|
|
108
156
|
* decoration: `MustBeChild` refuses a missing parent (a change order that amends nothing would
|
|
@@ -379,23 +427,24 @@ export declare class ContractEntityServer extends ContractEntity {
|
|
|
379
427
|
* number, and the collision would surface later as a unique-index violation on the insert rather
|
|
380
428
|
* than as a serialised wait.
|
|
381
429
|
*
|
|
382
|
-
* So the
|
|
383
|
-
* `spAssignNextContractNumber`
|
|
384
|
-
* method is one
|
|
385
|
-
* `SequenceService.ts` there keeps `spAssignNextJournalEntryNumber` at DB
|
|
386
|
-
* stated reason. Orders still inlines the same UPDATE in four places, which is what this stops
|
|
430
|
+
* So the numbering stays in the database, in a DATABASE OBJECT rather than a TypeScript string.
|
|
431
|
+
* `spAssignNextContractNumber` takes `NEXT VALUE FOR seq_ContractNumber`, which is atomic and needs
|
|
432
|
+
* no lock, and applies the format; this method is one call. That is accounting's pattern, adopted
|
|
433
|
+
* rather than invented — `SequenceService.ts` there keeps `spAssignNextJournalEntryNumber` at DB
|
|
434
|
+
* level for the same stated reason. Orders still inlines the same UPDATE in four places, which is what this stops
|
|
387
435
|
* doing.
|
|
388
436
|
*
|
|
389
|
-
*
|
|
390
|
-
*
|
|
437
|
+
* The PostgreSQL port keeps the name and the contract but not the call: a procedure's OUTPUT
|
|
438
|
+
* parameter is read through a T-SQL batch, and a PostgreSQL function through a SELECT. So the
|
|
439
|
+
* provider picks the form (`ASSIGN_CONTRACT_NUMBER_SQL`, resolved by `PlatformKey`) — sending the
|
|
440
|
+
* T-SQL batch to PostgreSQL is what failed every new contract's save there (#88).
|
|
391
441
|
*
|
|
392
442
|
* `isMutation: true` matters and was missing while this was inline: MJ's SQL-statement logging
|
|
393
443
|
* uses it to know a statement CHANGED data, which is what lets a logging session capture the
|
|
394
444
|
* mutation. `description` names the operation in that log.
|
|
395
445
|
*
|
|
396
|
-
* ⚠ NOT gap-free.
|
|
397
|
-
*
|
|
398
|
-
* unique index is the real guard.
|
|
446
|
+
* ⚠ NOT gap-free. A sequence value is spent when it is taken, and a rollback does not return it,
|
|
447
|
+
* so a save that fails after minting leaves a gap. The unique index is the real guard.
|
|
399
448
|
*/
|
|
400
449
|
private assignContractNumber;
|
|
401
450
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContractEntityServer.d.ts","sourceRoot":"","sources":["../src/ContractEntityServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EACH,UAAU,EAEV,KAAK,mBAAmB,
|
|
1
|
+
{"version":3,"file":"ContractEntityServer.d.ts","sourceRoot":"","sources":["../src/ContractEntityServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EACH,UAAU,EAEV,KAAK,mBAAmB,EAExB,KAAK,WAAW,EAGhB,gBAAgB,EACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,cAAc,EAKjB,MAAM,iCAAiC,CAAC;AAGzC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,4BAA4B,CAC9C,KAAK,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,EACpH,oBAAoB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAC5C,qBAAqB,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GACpD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,GAAG,MAAM,CAW/F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAK9E;AAqBD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAKxC,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC3B,MAAM,EAAE,kBAAkB,GAAG,wBAAwB,EACrD,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACf,WAAW,CA6Bb;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAWnG;AAED,qBACa,oBAAqB,SAAQ,cAAc;IACpD;;;;;;;;;;;OAWG;IACmB,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAoC9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACmB,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAiFhE;;;;;;;;;;;;OAYG;IACmB,MAAM,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAiC7E;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;YACW,uBAAuB;IAmCrC;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;;;;OAOG;YACW,mBAAmB;IA6BjC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;YACW,mBAAmB;IA4CjC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,oBAAoB;IAY5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH;;;;;;;;;;;;;;;;OAgBG;YACW,+BAA+B;YAqC/B,4BAA4B;IA6D1C;;;;;;;;;;;OAWG;YACW,kBAAkB;IAchC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,KAAK,EAAE,GAEb;IAED;;;;OAIG;YACW,qBAAqB;IAkBnC;;;;;;OAMG;YACW,QAAQ;IAkBtB;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAAkD;IAExE;;;;;OAKG;YACW,iBAAiB;IAoB/B;;;;;;;;;;;;;;;;;;;OAmBG;YACW,sBAAsB;IAuDpC;;;;;;;;;;;;;;;OAeG;YACW,iCAAiC;IA0B/C,wFAAwF;YAC1E,4BAA4B;IAa1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;YACW,oBAAoB;CAuBrC;AAED,yDAAyD;AACzD,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
|
|
@@ -33,7 +33,8 @@ import { GuardedDelete, plural } from './delete-guard.js';
|
|
|
33
33
|
* supplied is never replaced.
|
|
34
34
|
*
|
|
35
35
|
* NO CANDIDATE IS NOT AN ERROR HERE. It returns null, the field stays empty, and `ValidateAsync`
|
|
36
|
-
* refuses the save
|
|
36
|
+
* refuses the save — the same outcome as before this default existed, with a message
|
|
37
|
+
* ({@link TemplateRequiredMessage}) that says no usable template exists rather than asking for a choice.
|
|
37
38
|
*
|
|
38
39
|
* Takes its two reads as callbacks so a unit test can assert which of them run without a provider.
|
|
39
40
|
* The type is read only when the field is writable, so a saved contract pays nothing.
|
|
@@ -48,6 +49,26 @@ export async function ResolveServerDefaultTemplate(state, readTemplateRequired,
|
|
|
48
49
|
return null;
|
|
49
50
|
return (await readCurrentTemplateID()) ?? null;
|
|
50
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* The R-4 refusal for a contract whose type requires a template and carries none.
|
|
54
|
+
*
|
|
55
|
+
* WHY TWO MESSAGES. A fresh install ships no template — `metadata/` carries template TYPES, never one
|
|
56
|
+
* organisation's agreement (docs/database-migrations.md) — so until someone publishes one, every
|
|
57
|
+
* contract of a template-requiring type is refused, including one created by another app with no form
|
|
58
|
+
* to choose from. "Choose the template" names a choice that does not exist; the message has to say
|
|
59
|
+
* what to set up instead (#95).
|
|
60
|
+
*
|
|
61
|
+
* `usableTemplateExists` is the same question the server default asks: is there a Published template
|
|
62
|
+
* with a document or source URL.
|
|
63
|
+
*/
|
|
64
|
+
export function TemplateRequiredMessage(typeName, usableTemplateExists) {
|
|
65
|
+
if (usableTemplateExists) {
|
|
66
|
+
return (`A ${typeName} must reference the agreement version it incorporates. Choose the template ` +
|
|
67
|
+
`whose standard terms this contract is written against.`);
|
|
68
|
+
}
|
|
69
|
+
return (`A ${typeName} must reference the agreement version it incorporates, and no Published template ` +
|
|
70
|
+
`with a document or source URL exists yet. Publish one under Templates, then save again.`);
|
|
71
|
+
}
|
|
51
72
|
/**
|
|
52
73
|
* Whether a foreign key is being CHOSEN right now, as opposed to merely being present.
|
|
53
74
|
*
|
|
@@ -77,6 +98,85 @@ export function IsNewlySelected(entity, fieldName) {
|
|
|
77
98
|
const RETIRED = 'Inactive';
|
|
78
99
|
/** Guards an ID before it is interpolated into the R-3 lineage walk. */
|
|
79
100
|
const UUID_SHAPE = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
|
|
101
|
+
/**
|
|
102
|
+
* The call that mints a contract number, one form per database.
|
|
103
|
+
*
|
|
104
|
+
* SQL Server: `spAssignNextContractNumber` is a procedure with one OUTPUT parameter, which only a
|
|
105
|
+
* T-SQL batch can read — DECLARE, EXEC … OUTPUT, SELECT.
|
|
106
|
+
*
|
|
107
|
+
* PostgreSQL: a function of the same name, taking nothing and returning the formatted number, ships
|
|
108
|
+
* in the PostgreSQL baseline (`migrations-pg/`). A PostgreSQL function is called from a SELECT, so
|
|
109
|
+
* the call shape differs even though the object and its contract do not. The schema is unquoted and
|
|
110
|
+
* the function name quoted, the converter's convention: it folds the schema to lowercase and keeps
|
|
111
|
+
* object names' case. The alias is quoted so the row key keeps its case instead of folding to
|
|
112
|
+
* `contractnumber`.
|
|
113
|
+
*/
|
|
114
|
+
export const ASSIGN_CONTRACT_NUMBER_SQL = {
|
|
115
|
+
default: `DECLARE @contractNumber NVARCHAR(50);
|
|
116
|
+
EXEC __mj_BizAppsContracts.spAssignNextContractNumber @ContractNumber = @contractNumber OUTPUT;
|
|
117
|
+
SELECT @contractNumber AS ContractNumber;`,
|
|
118
|
+
postgresql: `SELECT __mj_BizAppsContracts."spAssignNextContractNumber"() AS "ContractNumber";`,
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* The R-3 cycle probe: walk up `column` from `startID` and return the chain if it reaches `selfID`.
|
|
122
|
+
*
|
|
123
|
+
* Same walk on both databases; PostgreSQL needs `WITH RECURSIVE`, `||` for concatenation, `LIMIT 1`
|
|
124
|
+
* and quoted identifiers (the converter quotes table and column names). The aliases are quoted so the
|
|
125
|
+
* row keys stay `Chain` and `Depth` instead of folding to lowercase.
|
|
126
|
+
*
|
|
127
|
+
* Callers check both IDs against `UUID_SHAPE` first; `column` comes from a fixed internal list.
|
|
128
|
+
*/
|
|
129
|
+
export function lineageProbeSQL(column, startID, selfID) {
|
|
130
|
+
return {
|
|
131
|
+
default: `WITH lineage AS (
|
|
132
|
+
SELECT [ID], [${column}], 1 AS Depth,
|
|
133
|
+
CAST([ContractNumber] AS NVARCHAR(MAX)) AS Chain
|
|
134
|
+
FROM __mj_BizAppsContracts.[Contract]
|
|
135
|
+
WHERE [ID] = '${startID}'
|
|
136
|
+
UNION ALL
|
|
137
|
+
SELECT c.[ID], c.[${column}], l.Depth + 1,
|
|
138
|
+
CAST(l.Chain + N' -> ' + c.[ContractNumber] AS NVARCHAR(MAX))
|
|
139
|
+
FROM __mj_BizAppsContracts.[Contract] c
|
|
140
|
+
JOIN lineage l ON c.[ID] = l.[${column}]
|
|
141
|
+
WHERE l.Depth < 50
|
|
142
|
+
)
|
|
143
|
+
SELECT TOP 1 Chain, Depth FROM lineage WHERE [ID] = '${selfID}' ORDER BY Depth;`,
|
|
144
|
+
postgresql: `WITH RECURSIVE lineage AS (
|
|
145
|
+
SELECT "ID", "${column}", 1 AS "Depth",
|
|
146
|
+
"ContractNumber"::text AS "Chain"
|
|
147
|
+
FROM __mj_BizAppsContracts."Contract"
|
|
148
|
+
WHERE "ID" = '${startID}'
|
|
149
|
+
UNION ALL
|
|
150
|
+
SELECT c."ID", c."${column}", l."Depth" + 1,
|
|
151
|
+
l."Chain" || ' -> ' || c."ContractNumber"
|
|
152
|
+
FROM __mj_BizAppsContracts."Contract" c
|
|
153
|
+
JOIN lineage l ON c."ID" = l."${column}"
|
|
154
|
+
WHERE l."Depth" < 50
|
|
155
|
+
)
|
|
156
|
+
SELECT "Chain", "Depth" FROM lineage WHERE "ID" = '${selfID}' ORDER BY "Depth" LIMIT 1;`,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* The R-4 count: how many of `contractID`'s modifications cite a provision of `templateID`.
|
|
161
|
+
*
|
|
162
|
+
* A `RunView` cannot replace this: the modifications view carries no template column, so the filter
|
|
163
|
+
* needs a subquery, and that subquery would be dialect-specific too. `COUNT(*)` comes back as a
|
|
164
|
+
* string from the PostgreSQL driver (it is a bigint), which the caller's `Number()` handles.
|
|
165
|
+
*
|
|
166
|
+
* Callers check both IDs against `UUID_SHAPE` first.
|
|
167
|
+
*/
|
|
168
|
+
export function modificationsAgainstTemplateSQL(contractID, templateID) {
|
|
169
|
+
return {
|
|
170
|
+
default: `SELECT COUNT(*) AS Hits
|
|
171
|
+
FROM __mj_BizAppsContracts.[ContractTemplateModification] m
|
|
172
|
+
JOIN __mj_BizAppsContracts.[ContractTemplateProvision] p ON p.[ID] = m.[ContractTemplateProvisionID]
|
|
173
|
+
WHERE m.[ContractID] = '${contractID}' AND p.[ContractTemplateID] = '${templateID}';`,
|
|
174
|
+
postgresql: `SELECT COUNT(*) AS "Hits"
|
|
175
|
+
FROM __mj_BizAppsContracts."ContractTemplateModification" m
|
|
176
|
+
JOIN __mj_BizAppsContracts."ContractTemplateProvision" p ON p."ID" = m."ContractTemplateProvisionID"
|
|
177
|
+
WHERE m."ContractID" = '${contractID}' AND p."ContractTemplateID" = '${templateID}';`,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
80
180
|
let ContractEntityServer = class ContractEntityServer extends ContractEntity {
|
|
81
181
|
constructor() {
|
|
82
182
|
super(...arguments);
|
|
@@ -91,10 +191,10 @@ let ContractEntityServer = class ContractEntityServer extends ContractEntity {
|
|
|
91
191
|
* Mint `ContractNumber` on first save, default an empty `ContractTemplateID` when the type requires
|
|
92
192
|
* one (see {@link ResolveServerDefaultTemplate}), then persist.
|
|
93
193
|
*
|
|
94
|
-
* WHY THE NUMBER IS MINTED HERE and not defaulted in SQL. It comes from
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
* with it.
|
|
194
|
+
* WHY THE NUMBER IS MINTED HERE and not defaulted in SQL. It comes from the `seq_ContractNumber`
|
|
195
|
+
* sequence through `spAssignNextContractNumber` (see {@link assignContractNumber}), and a column
|
|
196
|
+
* default cannot be used: it stops spCreateContract from compiling (MJ#4000). A client cannot be
|
|
197
|
+
* trusted with it.
|
|
98
198
|
*
|
|
99
199
|
* Contracts needs no `SkipRelatedCollections` dance, unlike orders: nothing here prepares child
|
|
100
200
|
* rows before the graph executor runs, so the plain save carries `Modifications` with it.
|
|
@@ -103,7 +203,7 @@ let ContractEntityServer = class ContractEntityServer extends ContractEntity {
|
|
|
103
203
|
try {
|
|
104
204
|
// MINT WHENEVER THE INCOMING VALUE IS ABSENT, and treat blank as absent.
|
|
105
205
|
//
|
|
106
|
-
// The column is NULLABLE
|
|
206
|
+
// The column is NULLABLE (baseline) — MJ cannot express "NOT NULL, assigned by the
|
|
107
207
|
// server on insert" (MJ#4001), and both workarounds broke creation: a DB DEFAULT stops
|
|
108
208
|
// spCreateContract from compiling (MJ#4000), and marking the field read-only drops it from
|
|
109
209
|
// the insert payload entirely. So the database no longer holds this invariant and THIS LINE
|
|
@@ -166,7 +266,7 @@ let ContractEntityServer = class ContractEntityServer extends ContractEntity {
|
|
|
166
266
|
* column whose values INVERT the rule when read in the wrong order is a column that will
|
|
167
267
|
* eventually be read in the wrong order. Now two booleans, mutually exclusive by
|
|
168
268
|
* `CK_ContractType_RootOrChild`, and "both false" means unrestricted — a real and in fact majority
|
|
169
|
-
* state
|
|
269
|
+
* state.
|
|
170
270
|
*
|
|
171
271
|
* Both placement directions are enforced, because a rule that only ever checks one of them is half
|
|
172
272
|
* decoration: `MustBeChild` refuses a missing parent (a change order that amends nothing would
|
|
@@ -184,7 +284,7 @@ let ContractEntityServer = class ContractEntityServer extends ContractEntity {
|
|
|
184
284
|
if (this.ContractTypeID) {
|
|
185
285
|
const rule = await this.typeRule();
|
|
186
286
|
// R-4 — WHERE IN THE TREE this type may sit. Two booleans replacing the three-state
|
|
187
|
-
// `ParentStatusRequirement` string
|
|
287
|
+
// `ParentStatusRequirement` string. Both false = unrestricted, which is what
|
|
188
288
|
// two of the four seeded types want, and the CHECK guarantees they are never both true.
|
|
189
289
|
if (rule?.MustBeChild && !this.ParentContractID) {
|
|
190
290
|
result.Success = false;
|
|
@@ -201,10 +301,11 @@ let ContractEntityServer = class ContractEntityServer extends ContractEntity {
|
|
|
201
301
|
// R-4 — DOES THIS TYPE NEED ITS OWN PAPER. A separate axis from placement: a type could
|
|
202
302
|
// want any combination, which is why `TemplateRequired` is its own column rather than
|
|
203
303
|
// inferred from the flags above.
|
|
304
|
+
//
|
|
305
|
+
// The current-template read runs only on this refusal path, so a save that passes pays nothing.
|
|
204
306
|
if (rule?.TemplateRequired && !this.ContractTemplateID) {
|
|
205
307
|
result.Success = false;
|
|
206
|
-
result.Errors.push(new ValidationErrorInfo('ContractTemplateID',
|
|
207
|
-
`whose standard terms this contract is written against.`, this.ContractTemplateID, ValidationErrorType.Failure));
|
|
308
|
+
result.Errors.push(new ValidationErrorInfo('ContractTemplateID', TemplateRequiredMessage(rule.Name, !!(await this.currentTemplateID())), this.ContractTemplateID, ValidationErrorType.Failure));
|
|
208
309
|
}
|
|
209
310
|
}
|
|
210
311
|
await this.refuseClearingAReferencedTemplate(result);
|
|
@@ -572,19 +673,7 @@ let ContractEntityServer = class ContractEntityServer extends ContractEntity {
|
|
|
572
673
|
if (!UUID_SHAPE.test(startID) || !UUID_SHAPE.test(this.ID)) {
|
|
573
674
|
throw new Error(`Refusing to walk the ${column} lineage: '${startID}' or '${this.ID}' is not a UUID.`);
|
|
574
675
|
}
|
|
575
|
-
const rows = await this.db.ExecuteSQL(`
|
|
576
|
-
SELECT [ID], [${column}], 1 AS Depth,
|
|
577
|
-
CAST([ContractNumber] AS NVARCHAR(MAX)) AS Chain
|
|
578
|
-
FROM __mj_BizAppsContracts.[Contract]
|
|
579
|
-
WHERE [ID] = '${startID}'
|
|
580
|
-
UNION ALL
|
|
581
|
-
SELECT c.[ID], c.[${column}], l.Depth + 1,
|
|
582
|
-
CAST(l.Chain + N' -> ' + c.[ContractNumber] AS NVARCHAR(MAX))
|
|
583
|
-
FROM __mj_BizAppsContracts.[Contract] c
|
|
584
|
-
JOIN lineage l ON c.[ID] = l.[${column}]
|
|
585
|
-
WHERE l.Depth < 50
|
|
586
|
-
)
|
|
587
|
-
SELECT TOP 1 Chain, Depth FROM lineage WHERE [ID] = '${this.ID}' ORDER BY Depth;`, undefined, { isMutation: false, description: `R-3 ${column} cycle probe` }, this.ContextCurrentUser);
|
|
676
|
+
const rows = await this.db.ExecuteSQL(this.db.ResolveSQL(lineageProbeSQL(column, startID, this.ID)), undefined, { isMutation: false, description: `R-3 ${column} cycle probe` }, this.ContextCurrentUser);
|
|
588
677
|
const hit = rows?.[0];
|
|
589
678
|
return hit ? `${this.ContractNumber ?? this.ID} -> ${hit.Chain}` : null;
|
|
590
679
|
}
|
|
@@ -711,7 +800,7 @@ let ContractEntityServer = class ContractEntityServer extends ContractEntity {
|
|
|
711
800
|
`terms it names — a contract cannot incorporate terms that are not available. Add a URL or ` +
|
|
712
801
|
`attach the agreement document to that template first.`, this.ContractTemplateID, ValidationErrorType.Failure));
|
|
713
802
|
}
|
|
714
|
-
//
|
|
803
|
+
// And the version must be PUBLISHED. A draft is still being authored: its
|
|
715
804
|
// provisions can be added to, edited and removed freely, so a contract pointing at one would
|
|
716
805
|
// have its standard terms change underneath it. This is the other half of what makes the
|
|
717
806
|
// publication freeze meaningful — the freeze protects referenced versions, and this ensures a
|
|
@@ -767,10 +856,7 @@ let ContractEntityServer = class ContractEntityServer extends ContractEntity {
|
|
|
767
856
|
if (!UUID_SHAPE.test(templateID) || !UUID_SHAPE.test(this.ID)) {
|
|
768
857
|
throw new Error(`Refusing to count modifications: '${templateID}' or '${this.ID}' is not a UUID.`);
|
|
769
858
|
}
|
|
770
|
-
const rows = await this.db.ExecuteSQL(
|
|
771
|
-
FROM __mj_BizAppsContracts.[ContractTemplateModification] m
|
|
772
|
-
JOIN __mj_BizAppsContracts.[ContractTemplateProvision] p ON p.[ID] = m.[ContractTemplateProvisionID]
|
|
773
|
-
WHERE m.[ContractID] = '${this.ID}' AND p.[ContractTemplateID] = '${templateID}';`, undefined, { isMutation: false, description: 'R-4 modifications-against-template count' }, this.ContextCurrentUser);
|
|
859
|
+
const rows = await this.db.ExecuteSQL(this.db.ResolveSQL(modificationsAgainstTemplateSQL(this.ID, templateID)), undefined, { isMutation: false, description: 'R-4 modifications-against-template count' }, this.ContextCurrentUser);
|
|
774
860
|
return Number(rows?.[0]?.Hits ?? 0);
|
|
775
861
|
}
|
|
776
862
|
/**
|
|
@@ -783,29 +869,28 @@ let ContractEntityServer = class ContractEntityServer extends ContractEntity {
|
|
|
783
869
|
* number, and the collision would surface later as a unique-index violation on the insert rather
|
|
784
870
|
* than as a serialised wait.
|
|
785
871
|
*
|
|
786
|
-
* So the
|
|
787
|
-
* `spAssignNextContractNumber`
|
|
788
|
-
* method is one
|
|
789
|
-
* `SequenceService.ts` there keeps `spAssignNextJournalEntryNumber` at DB
|
|
790
|
-
* stated reason. Orders still inlines the same UPDATE in four places, which is what this stops
|
|
872
|
+
* So the numbering stays in the database, in a DATABASE OBJECT rather than a TypeScript string.
|
|
873
|
+
* `spAssignNextContractNumber` takes `NEXT VALUE FOR seq_ContractNumber`, which is atomic and needs
|
|
874
|
+
* no lock, and applies the format; this method is one call. That is accounting's pattern, adopted
|
|
875
|
+
* rather than invented — `SequenceService.ts` there keeps `spAssignNextJournalEntryNumber` at DB
|
|
876
|
+
* level for the same stated reason. Orders still inlines the same UPDATE in four places, which is what this stops
|
|
791
877
|
* doing.
|
|
792
878
|
*
|
|
793
|
-
*
|
|
794
|
-
*
|
|
879
|
+
* The PostgreSQL port keeps the name and the contract but not the call: a procedure's OUTPUT
|
|
880
|
+
* parameter is read through a T-SQL batch, and a PostgreSQL function through a SELECT. So the
|
|
881
|
+
* provider picks the form (`ASSIGN_CONTRACT_NUMBER_SQL`, resolved by `PlatformKey`) — sending the
|
|
882
|
+
* T-SQL batch to PostgreSQL is what failed every new contract's save there (#88).
|
|
795
883
|
*
|
|
796
884
|
* `isMutation: true` matters and was missing while this was inline: MJ's SQL-statement logging
|
|
797
885
|
* uses it to know a statement CHANGED data, which is what lets a logging session capture the
|
|
798
886
|
* mutation. `description` names the operation in that log.
|
|
799
887
|
*
|
|
800
|
-
* ⚠ NOT gap-free.
|
|
801
|
-
*
|
|
802
|
-
* unique index is the real guard.
|
|
888
|
+
* ⚠ NOT gap-free. A sequence value is spent when it is taken, and a rollback does not return it,
|
|
889
|
+
* so a save that fails after minting leaves a gap. The unique index is the real guard.
|
|
803
890
|
*/
|
|
804
891
|
async assignContractNumber() {
|
|
805
|
-
const rows = await this.db.ExecuteSQL(
|
|
806
|
-
|
|
807
|
-
SELECT @contractNumber AS ContractNumber;`,
|
|
808
|
-
// No parameters: the sproc takes only an OUTPUT, declared in the batch above. Accounting
|
|
892
|
+
const rows = await this.db.ExecuteSQL(this.db.ResolveSQL(ASSIGN_CONTRACT_NUMBER_SQL),
|
|
893
|
+
// No parameters: the sproc takes only an OUTPUT, declared in the batch. Accounting
|
|
809
894
|
// passes an OBJECT here because its sprocs take inputs and `ExecuteSQL` binds objects BY
|
|
810
895
|
// NAME while an array binds positionally as @p0 — worth knowing before adding a parameter
|
|
811
896
|
// to this call, and worth noting that the object form needs the SQLServerDataProvider type
|
|
@@ -814,7 +899,7 @@ let ContractEntityServer = class ContractEntityServer extends ContractEntity {
|
|
|
814
899
|
const assigned = rows?.[0]?.ContractNumber;
|
|
815
900
|
if (!assigned) {
|
|
816
901
|
throw new Error(`Could not obtain the next contract number — spAssignNextContractNumber returned nothing. ` +
|
|
817
|
-
`The number comes from the schema-owned SQL sequence seq_ContractNumber
|
|
902
|
+
`The number comes from the schema-owned SQL sequence seq_ContractNumber; ` +
|
|
818
903
|
`check that the sequence and the procedure both exist in __mj_BizAppsContracts.`);
|
|
819
904
|
}
|
|
820
905
|
return assigned;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContractEntityServer.js","sourceRoot":"","sources":["../src/ContractEntityServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ContractEntityServer.js","sourceRoot":"","sources":["../src/ContractEntityServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,19 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @module @mj-biz-apps/contracts-core-entities-server
|
|
11
11
|
*/
|
|
12
|
-
import { ValidationResult } from '@memberjunction/core';
|
|
12
|
+
import { type PlatformSQL, ValidationResult } from '@memberjunction/core';
|
|
13
13
|
import { ContractTemplateModificationEntity } from '@mj-biz-apps/contracts-entities';
|
|
14
|
+
/**
|
|
15
|
+
* The provision's template against the templates on the contract's ancestor chain, one form per
|
|
16
|
+
* database.
|
|
17
|
+
*
|
|
18
|
+
* PostgreSQL needs `WITH RECURSIVE` and quoted identifiers. Its aliases are quoted too: unquoted,
|
|
19
|
+
* `InTree` would come back as `intree`, the caller's `row.InTree === 1` would never hold, and every
|
|
20
|
+
* modification under a templated tree would be refused.
|
|
21
|
+
*
|
|
22
|
+
* Callers check both IDs against `UUID_SHAPE` first.
|
|
23
|
+
*/
|
|
24
|
+
export declare function provisionTemplateCheckSQL(contractID: string, provisionID: string): PlatformSQL;
|
|
14
25
|
export declare class ContractTemplateModificationEntityServer extends ContractTemplateModificationEntity {
|
|
15
26
|
/**
|
|
16
27
|
* THE PROVISION MUST BELONG TO A TEMPLATE AT OR ABOVE THIS CONTRACT IN THE TREE (R-4).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContractTemplateModificationEntityServer.d.ts","sourceRoot":"","sources":["../src/ContractTemplateModificationEntityServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"ContractTemplateModificationEntityServer.d.ts","sourceRoot":"","sources":["../src/ContractTemplateModificationEntityServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAKH,KAAK,WAAW,EAGhB,gBAAgB,EACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAkB,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AAKrG;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,WAAW,CAmD9F;AASD,qBACa,wCAAyC,SAAQ,kCAAkC;IAC5F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACmB,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAqChE;;;;;;;;;;;;;;OAcG;YACW,qBAAqB;IAuBnC;;;;;;;;;;;;;;OAcG;IACmB,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAe9C;;;;;;;;;;;;;;;OAeG;YACW,eAAe;IAkB7B;;;;;;;;;;;;;;OAcG;YACW,gCAAgC;IA2B9C,gGAAgG;IAChG,OAAO,KAAK,EAAE,GAEb;CACJ;AAED,yDAAyD;AACzD,wBAAgB,4CAA4C,IAAI,IAAI,CAEnE"}
|
|
@@ -20,6 +20,68 @@ import { RegisterClass } from '@memberjunction/global';
|
|
|
20
20
|
import { ContractTemplateModificationEntity } from '@mj-biz-apps/contracts-entities';
|
|
21
21
|
/** Guards an ID before it is interpolated into the ancestor walk. */
|
|
22
22
|
const UUID_SHAPE = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
|
|
23
|
+
/**
|
|
24
|
+
* The provision's template against the templates on the contract's ancestor chain, one form per
|
|
25
|
+
* database.
|
|
26
|
+
*
|
|
27
|
+
* PostgreSQL needs `WITH RECURSIVE` and quoted identifiers. Its aliases are quoted too: unquoted,
|
|
28
|
+
* `InTree` would come back as `intree`, the caller's `row.InTree === 1` would never hold, and every
|
|
29
|
+
* modification under a templated tree would be refused.
|
|
30
|
+
*
|
|
31
|
+
* Callers check both IDs against `UUID_SHAPE` first.
|
|
32
|
+
*/
|
|
33
|
+
export function provisionTemplateCheckSQL(contractID, provisionID) {
|
|
34
|
+
return {
|
|
35
|
+
default: `WITH ancestry AS (
|
|
36
|
+
SELECT [ID], [ParentContractID], [ContractTemplateID], 1 AS Depth
|
|
37
|
+
FROM __mj_BizAppsContracts.[Contract]
|
|
38
|
+
WHERE [ID] = '${contractID}'
|
|
39
|
+
UNION ALL
|
|
40
|
+
SELECT c.[ID], c.[ParentContractID], c.[ContractTemplateID], a.Depth + 1
|
|
41
|
+
FROM __mj_BizAppsContracts.[Contract] c
|
|
42
|
+
JOIN ancestry a ON c.[ID] = a.[ParentContractID]
|
|
43
|
+
WHERE a.Depth < 50
|
|
44
|
+
),
|
|
45
|
+
tmpl AS (
|
|
46
|
+
SELECT DISTINCT t.[ID], t.[Name]
|
|
47
|
+
FROM ancestry a
|
|
48
|
+
JOIN __mj_BizAppsContracts.[ContractTemplate] t ON t.[ID] = a.[ContractTemplateID]
|
|
49
|
+
)
|
|
50
|
+
SELECT
|
|
51
|
+
CAST(pt.[ID] AS NVARCHAR(36)) AS ProvisionTemplateID,
|
|
52
|
+
pt.[Name] AS ProvisionTemplate,
|
|
53
|
+
(SELECT STRING_AGG(x.[Name], N', ') FROM tmpl x) AS AncestorTemplates,
|
|
54
|
+
CASE WHEN EXISTS (SELECT 1 FROM tmpl x WHERE x.[ID] = pt.[ID])
|
|
55
|
+
THEN 1 ELSE 0 END AS InTree
|
|
56
|
+
FROM __mj_BizAppsContracts.[ContractTemplateProvision] p
|
|
57
|
+
JOIN __mj_BizAppsContracts.[ContractTemplate] pt ON pt.[ID] = p.[ContractTemplateID]
|
|
58
|
+
WHERE p.[ID] = '${provisionID}';`,
|
|
59
|
+
postgresql: `WITH RECURSIVE ancestry AS (
|
|
60
|
+
SELECT "ID", "ParentContractID", "ContractTemplateID", 1 AS "Depth"
|
|
61
|
+
FROM __mj_BizAppsContracts."Contract"
|
|
62
|
+
WHERE "ID" = '${contractID}'
|
|
63
|
+
UNION ALL
|
|
64
|
+
SELECT c."ID", c."ParentContractID", c."ContractTemplateID", a."Depth" + 1
|
|
65
|
+
FROM __mj_BizAppsContracts."Contract" c
|
|
66
|
+
JOIN ancestry a ON c."ID" = a."ParentContractID"
|
|
67
|
+
WHERE a."Depth" < 50
|
|
68
|
+
),
|
|
69
|
+
tmpl AS (
|
|
70
|
+
SELECT DISTINCT t."ID", t."Name"
|
|
71
|
+
FROM ancestry a
|
|
72
|
+
JOIN __mj_BizAppsContracts."ContractTemplate" t ON t."ID" = a."ContractTemplateID"
|
|
73
|
+
)
|
|
74
|
+
SELECT
|
|
75
|
+
pt."ID"::text AS "ProvisionTemplateID",
|
|
76
|
+
pt."Name" AS "ProvisionTemplate",
|
|
77
|
+
(SELECT STRING_AGG(x."Name", ', ') FROM tmpl x) AS "AncestorTemplates",
|
|
78
|
+
CASE WHEN EXISTS (SELECT 1 FROM tmpl x WHERE x."ID" = pt."ID")
|
|
79
|
+
THEN 1 ELSE 0 END AS "InTree"
|
|
80
|
+
FROM __mj_BizAppsContracts."ContractTemplateProvision" p
|
|
81
|
+
JOIN __mj_BizAppsContracts."ContractTemplate" pt ON pt."ID" = p."ContractTemplateID"
|
|
82
|
+
WHERE p."ID" = '${provisionID}';`,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
23
85
|
/*
|
|
24
86
|
* EXTENDS THE SHARED SUBCLASS, not the generated one. It used to extend the generated class directly,
|
|
25
87
|
* which meant the server was the one tier that did NOT get the shared class's rules: a modification
|
|
@@ -193,30 +255,7 @@ let ContractTemplateModificationEntityServer = class ContractTemplateModificatio
|
|
|
193
255
|
throw new Error(`Refusing to check the provision's template: '${this.ContractID}' or ` +
|
|
194
256
|
`'${this.ContractTemplateProvisionID}' is not a UUID.`);
|
|
195
257
|
}
|
|
196
|
-
const rows = await this.db.ExecuteSQL(
|
|
197
|
-
SELECT [ID], [ParentContractID], [ContractTemplateID], 1 AS Depth
|
|
198
|
-
FROM __mj_BizAppsContracts.[Contract]
|
|
199
|
-
WHERE [ID] = '${this.ContractID}'
|
|
200
|
-
UNION ALL
|
|
201
|
-
SELECT c.[ID], c.[ParentContractID], c.[ContractTemplateID], a.Depth + 1
|
|
202
|
-
FROM __mj_BizAppsContracts.[Contract] c
|
|
203
|
-
JOIN ancestry a ON c.[ID] = a.[ParentContractID]
|
|
204
|
-
WHERE a.Depth < 50
|
|
205
|
-
),
|
|
206
|
-
tmpl AS (
|
|
207
|
-
SELECT DISTINCT t.[ID], t.[Name]
|
|
208
|
-
FROM ancestry a
|
|
209
|
-
JOIN __mj_BizAppsContracts.[ContractTemplate] t ON t.[ID] = a.[ContractTemplateID]
|
|
210
|
-
)
|
|
211
|
-
SELECT
|
|
212
|
-
CAST(pt.[ID] AS NVARCHAR(36)) AS ProvisionTemplateID,
|
|
213
|
-
pt.[Name] AS ProvisionTemplate,
|
|
214
|
-
(SELECT STRING_AGG(x.[Name], N', ') FROM tmpl x) AS AncestorTemplates,
|
|
215
|
-
CASE WHEN EXISTS (SELECT 1 FROM tmpl x WHERE x.[ID] = pt.[ID])
|
|
216
|
-
THEN 1 ELSE 0 END AS InTree
|
|
217
|
-
FROM __mj_BizAppsContracts.[ContractTemplateProvision] p
|
|
218
|
-
JOIN __mj_BizAppsContracts.[ContractTemplate] pt ON pt.[ID] = p.[ContractTemplateID]
|
|
219
|
-
WHERE p.[ID] = '${this.ContractTemplateProvisionID}';`, undefined, { isMutation: false, description: 'R-4 provision-in-ancestor-templates check' }, this.ContextCurrentUser);
|
|
258
|
+
const rows = await this.db.ExecuteSQL(this.db.ResolveSQL(provisionTemplateCheckSQL(this.ContractID, this.ContractTemplateProvisionID)), undefined, { isMutation: false, description: 'R-4 provision-in-ancestor-templates check' }, this.ContextCurrentUser);
|
|
220
259
|
const row = rows?.[0];
|
|
221
260
|
// No provision row, or it is inside the tree: nothing to say.
|
|
222
261
|
if (!row || row.InTree === 1)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContractTemplateModificationEntityServer.js","sourceRoot":"","sources":["../src/ContractTemplateModificationEntityServer.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACH,UAAU,EAEV,QAAQ,EACR,QAAQ,
|
|
1
|
+
{"version":3,"file":"ContractTemplateModificationEntityServer.js","sourceRoot":"","sources":["../src/ContractTemplateModificationEntityServer.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACH,UAAU,EAEV,QAAQ,EACR,QAAQ,EAER,mBAAmB,EACnB,mBAAmB,GAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAkB,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AAErG,qEAAqE;AACrE,MAAM,UAAU,GAAG,+EAA+E,CAAC;AAEnG;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CAAC,UAAkB,EAAE,WAAmB;IAC7E,OAAO;QACH,OAAO,EAAE;;;kCAGiB,UAAU;;;;;;;;;;;;;;;;;;;;gCAoBZ,WAAW,IAAI;QACvC,UAAU,EAAE;;;kCAGc,UAAU;;;;;;;;;;;;;;;;;;;;gCAoBZ,WAAW,IAAI;KAC1C,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AAEI,IAAM,wCAAwC,GAA9C,MAAM,wCAAyC,SAAQ,kCAAkC;IAC5F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACa,KAAK,CAAC,aAAa;QAC/B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;QAE3C,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gCAAgC,EAAE,CAAC;YAC/D,IAAI,QAAQ,EAAE,CAAC;gBACX,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;gBACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CACd,IAAI,mBAAmB,CACnB,6BAA6B,EAC7B,8BAA8B,QAAQ,CAAC,iBAAiB,+BAA+B;oBACnF,sBAAsB,QAAQ,CAAC,gBAAgB,4CAA4C;oBAC3F,sEAAsE,EAC1E,IAAI,CAAC,2BAA2B,EAChC,mBAAmB,CAAC,OAAO,CAC9B,CACJ,CAAC;YACN,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,2BAA2B,IAAI,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC;YAC9F,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CACd,IAAI,mBAAmB,CACnB,6BAA6B,EAC7B,yFAAyF;gBACrF,sFAAsF;gBACtF,sBAAsB,EAC1B,IAAI,CAAC,2BAA2B,EAChC,mBAAmB,CAAC,OAAO,CAC9B,CACJ,CAAC;QACN,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,KAAK,CAAC,qBAAqB;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAClD;YACI,UAAU,EAAE,uDAAuD;YACnE,WAAW,EACP,iBAAiB,IAAI,CAAC,UAAU,IAAI;gBACpC,sCAAsC,IAAI,CAAC,2BAA2B,IAAI;gBAC1E,cAAc,IAAI,CAAC,EAAE,GAAG;YAC5B,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,CAAC,kBAAkB,CAC1B,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACnB,2FAA2F;YAC3F,mEAAmE;YACnE,MAAM,IAAI,KAAK,CACX,kEAAkE;gBAC9D,GAAG,MAAM,EAAE,YAAY,IAAI,eAAe,GAAG,CACpD,CAAC;QACN,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACa,KAAK,CAAC,IAAI;QACtB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YACjC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,QAAQ,CACJ,gBAAgB,IAAI,CAAC,EAAE,yDAAyD;oBAC5E,GAAG,IAAI,CAAC,UAAU,KAAK,GAAG,EAAE,CACnC,CAAC;YACN,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACK,KAAK,CAAC,eAAe;QACzB,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,+FAA+F;QAC/F,+FAA+F;QAC/F,gDAAgD;QAChD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,eAAe,CAAiB,iCAAiC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtH,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,UAAU,sBAAsB,CAAC,CAAC;QACvE,CAAC;QACD,4FAA4F;QAC5F,yBAAyB;QACzB,IAAI,QAAQ,CAAC,gBAAgB,KAAK,IAAI;YAAE,OAAO;QAC/C,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,IAAI,qBAAqB,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,KAAK,CAAC,gCAAgC;QAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC;YAC1F,MAAM,IAAI,KAAK,CACX,gDAAgD,IAAI,CAAC,UAAU,OAAO;gBAClE,IAAI,IAAI,CAAC,2BAA2B,kBAAkB,CAC7D,CAAC;QACN,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAMjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC,EAChG,SAAS,EACT,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,2CAA2C,EAAE,EAC/E,IAAI,CAAC,kBAAkB,CAC1B,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACtB,8DAA8D;QAC9D,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,2EAA2E;QAC3E,IAAI,CAAC,GAAG,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC;QACxC,OAAO,EAAE,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,CAAC,iBAAiB,EAAE,CAAC;IACjG,CAAC;IAED,gGAAgG;IAChG,IAAY,EAAE;QACV,OAAO,IAAI,CAAC,aAAgD,CAAC;IACjE,CAAC;CACJ,CAAA;AA3NY,wCAAwC;IADpD,aAAa,CAAC,UAAU,EAAE,uDAAuD,CAAC;GACtE,wCAAwC,CA2NpD;;AAED,yDAAyD;AACzD,MAAM,UAAU,4CAA4C;IACxD,KAAK,wCAAwC,CAAC;AAClD,CAAC"}
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
* @module @mj-biz-apps/contracts-core-entities-server
|
|
17
17
|
*/
|
|
18
18
|
import { type EntityDeleteOptions } from '@memberjunction/core';
|
|
19
|
-
import {
|
|
20
|
-
export declare class ContractTypeEntityServer extends
|
|
19
|
+
import { ContractTemplateTypeEntity, ContractTypeEntity } from '@mj-biz-apps/contracts-entities';
|
|
20
|
+
export declare class ContractTypeEntityServer extends ContractTypeEntity {
|
|
21
21
|
Delete(options?: EntityDeleteOptions): Promise<boolean>;
|
|
22
22
|
}
|
|
23
|
-
export declare class ContractTemplateTypeEntityServer extends
|
|
23
|
+
export declare class ContractTemplateTypeEntityServer extends ContractTemplateTypeEntity {
|
|
24
24
|
Delete(options?: EntityDeleteOptions): Promise<boolean>;
|
|
25
25
|
}
|
|
26
26
|
/** Anti-tree-shake anchor — see the note in index.ts. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContractTypeEntityServers.d.ts","sourceRoot":"","sources":["../src/ContractTypeEntityServers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAc,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"ContractTypeEntityServers.d.ts","sourceRoot":"","sources":["../src/ContractTypeEntityServers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAc,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,OAAO,EACH,0BAA0B,EAC1B,kBAAkB,EACrB,MAAM,iCAAiC,CAAC;AAMzC,qBACa,wBAAyB,SAAQ,kBAAkB;IACtC,MAAM,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CAehF;AAED,qBACa,gCAAiC,SAAQ,0BAA0B;IACtD,MAAM,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CAehF;AAED,yDAAyD;AACzD,wBAAgB,6BAA6B,IAAI,IAAI,CAGpD"}
|
|
@@ -23,11 +23,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
23
23
|
*/
|
|
24
24
|
import { BaseEntity } from '@memberjunction/core';
|
|
25
25
|
import { RegisterClass } from '@memberjunction/global';
|
|
26
|
-
import {
|
|
26
|
+
import { ContractTemplateTypeEntity, ContractTypeEntity, } from '@mj-biz-apps/contracts-entities';
|
|
27
27
|
import { GuardedDelete, plural } from './delete-guard.js';
|
|
28
28
|
/** How to retire instead of deleting — the same advice in both messages, written once. */
|
|
29
29
|
const RETIRE_INSTEAD = `Retiring is what you want: set Status to Inactive, which stops it being offered for new records and leaves the existing ones working.`;
|
|
30
|
-
let ContractTypeEntityServer = class ContractTypeEntityServer extends
|
|
30
|
+
let ContractTypeEntityServer = class ContractTypeEntityServer extends ContractTypeEntity {
|
|
31
31
|
async Delete(options) {
|
|
32
32
|
return GuardedDelete(this, options, `Contract type "${this.Name ?? this.ID}" cannot be deleted.`, [
|
|
33
33
|
{
|
|
@@ -42,7 +42,7 @@ ContractTypeEntityServer = __decorate([
|
|
|
42
42
|
RegisterClass(BaseEntity, 'MJ_BizApps_Contracts: Contract Types')
|
|
43
43
|
], ContractTypeEntityServer);
|
|
44
44
|
export { ContractTypeEntityServer };
|
|
45
|
-
let ContractTemplateTypeEntityServer = class ContractTemplateTypeEntityServer extends
|
|
45
|
+
let ContractTemplateTypeEntityServer = class ContractTemplateTypeEntityServer extends ContractTemplateTypeEntity {
|
|
46
46
|
async Delete(options) {
|
|
47
47
|
return GuardedDelete(this, options, `Template type "${this.Name ?? this.ID}" cannot be deleted.`, [
|
|
48
48
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContractTypeEntityServers.js","sourceRoot":"","sources":["../src/ContractTypeEntityServers.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,UAAU,EAA4B,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"ContractTypeEntityServers.js","sourceRoot":"","sources":["../src/ContractTypeEntityServers.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,UAAU,EAA4B,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACH,0BAA0B,EAC1B,kBAAkB,GACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE1D,0FAA0F;AAC1F,MAAM,cAAc,GAAG,uIAAuI,CAAC;AAGxJ,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,kBAAkB;IAC5C,KAAK,CAAC,MAAM,CAAC,OAA6B;QACtD,OAAO,aAAa,CAChB,IAAI,EACJ,OAAO,EACP,kBAAkB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,sBAAsB,EAC5D;YACI;gBACI,UAAU,EAAE,iCAAiC;gBAC7C,MAAM,EAAE,qBAAqB,IAAI,CAAC,EAAE,GAAG;gBACvC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB,cAAc,EAAE;aACxG;SACJ,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CACzB,CAAC;IACN,CAAC;CACJ,CAAA;AAhBY,wBAAwB;IADpC,aAAa,CAAC,UAAU,EAAE,sCAAsC,CAAC;GACrD,wBAAwB,CAgBpC;;AAGM,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,0BAA0B;IAC5D,KAAK,CAAC,MAAM,CAAC,OAA6B;QACtD,OAAO,aAAa,CAChB,IAAI,EACJ,OAAO,EACP,kBAAkB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,sBAAsB,EAC5D;YACI;gBACI,UAAU,EAAE,0CAA0C;gBACtD,MAAM,EAAE,6BAA6B,IAAI,CAAC,EAAE,GAAG;gBAC/C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB,cAAc,EAAE;aACxG;SACJ,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CACzB,CAAC;IACN,CAAC;CACJ,CAAA;AAhBY,gCAAgC;IAD5C,aAAa,CAAC,UAAU,EAAE,+CAA+C,CAAC;GAC9D,gCAAgC,CAgB5C;;AAED,yDAAyD;AACzD,MAAM,UAAU,6BAA6B;IACzC,KAAK,wBAAwB,CAAC;IAC9B,KAAK,gCAAgC,CAAC;AAC1C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
* HARD dependency pinned to the same version (all app packages version together via changesets
|
|
12
12
|
* `fixed`); every @memberjunction/* package is a PEER (^X.Y.Z).
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* the contract number
|
|
18
|
-
*
|
|
14
|
+
* A SMALL SERVER SURFACE. v1 had nine server subclasses plus ContractsEngine, ChildCollection,
|
|
15
|
+
* BillingDraft and seven remote operations — the billing engine wholesale. v2 is a record-keeping app
|
|
16
|
+
* and MJ 6's graph save replaced the composition machinery, so what is left is the server subclasses
|
|
17
|
+
* loaded below (the contract number, server-side defaults, and the rules that need cross-entity
|
|
18
|
+
* reads) and ONE remote operation, `Contracts.Supersede` (`SupersedeOperation.ts`).
|
|
19
19
|
*/
|
|
20
20
|
import { LoadContractEntityServer } from './ContractEntityServer.js';
|
|
21
21
|
import { LoadContractTemplateEntityServer } from './ContractTemplateEntityServer.js';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mjdevManaged": "MJDEV-MANAGED: mjdev owns parts of this file — the \"packages/dev-apps/*\" workspaces glob, any dev-linked open-app dependencies (e.g. \"@mj-biz-apps/*\"), and the Angular \"overrides\" pin set. Do not hand-edit those; the tool wires and reverts them. They are left visible in git status, but the git-tree guard blocks committing them. See .mjdev-docs/MANAGED-FILES.md; revert with `mjdev git:stage-clean <slug> package.json`.",
|
|
3
3
|
"name": "@mj-biz-apps/contracts-core-entities-server",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.8.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Server-side entity subclass overrides (validation, computed fields, save hooks). TODO(template): rename.",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -12,15 +12,19 @@
|
|
|
12
12
|
},
|
|
13
13
|
"license": "BUSL-1.1",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@mj-biz-apps/contracts-entities": "^0.
|
|
15
|
+
"@mj-biz-apps/contracts-entities": "^0.8.0"
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
|
-
"@memberjunction/core": "
|
|
19
|
-
"@memberjunction/core-entities": "
|
|
20
|
-
"@memberjunction/global": "
|
|
21
|
-
"@memberjunction/sqlserver-dataprovider": "
|
|
18
|
+
"@memberjunction/core": "^6.1.6",
|
|
19
|
+
"@memberjunction/core-entities": "^6.1.6",
|
|
20
|
+
"@memberjunction/global": "^6.1.6",
|
|
21
|
+
"@memberjunction/sqlserver-dataprovider": "^6.1.6"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
+
"@memberjunction/core": "^6.1.6",
|
|
25
|
+
"@memberjunction/core-entities": "^6.1.6",
|
|
26
|
+
"@memberjunction/global": "^6.1.6",
|
|
27
|
+
"@memberjunction/sqlserver-dataprovider": "^6.1.6",
|
|
24
28
|
"typescript": "^5.9.3",
|
|
25
29
|
"vitest": "^4.0.18"
|
|
26
30
|
},
|