@party-stack/foundry-ontology 0.18.0 → 0.19.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/README.md +19 -0
- package/lib/adapter/convertLoadSubsetOptions.d.ts +2 -0
- package/lib/adapter/convertLoadSubsetOptions.d.ts.map +1 -1
- package/lib/adapter/convertLoadSubsetOptions.js +158 -191
- package/lib/adapter/convertLoadSubsetOptions.js.map +1 -1
- package/lib/adapter/createFoundryOntologyBackendAdapter.d.ts +17 -15
- package/lib/adapter/createFoundryOntologyBackendAdapter.d.ts.map +1 -1
- package/lib/adapter/createFoundryOntologyBackendAdapter.js +288 -400
- package/lib/adapter/createFoundryOntologyBackendAdapter.js.map +1 -1
- package/lib/adapter/foundryActionValidation.d.ts +17 -15
- package/lib/adapter/foundryActionValidation.d.ts.map +1 -1
- package/lib/adapter/foundryActionValidation.js +206 -305
- package/lib/adapter/foundryActionValidation.js.map +1 -1
- package/lib/adapter/foundryCodec.d.ts +10 -8
- package/lib/adapter/foundryCodec.d.ts.map +1 -1
- package/lib/adapter/foundryCodec.js +180 -287
- package/lib/adapter/foundryCodec.js.map +1 -1
- package/lib/adapter/foundryMediaId.d.ts +6 -4
- package/lib/adapter/foundryMediaId.d.ts.map +1 -1
- package/lib/adapter/foundryMediaId.js +31 -32
- package/lib/adapter/foundryMediaId.js.map +1 -1
- package/lib/adapter/index.d.ts +4 -4
- package/lib/adapter/index.js +4 -4
- package/lib/adapter/objectCollectionOptions.d.ts +18 -17
- package/lib/adapter/objectCollectionOptions.d.ts.map +1 -1
- package/lib/adapter/objectCollectionOptions.js +451 -538
- package/lib/adapter/objectCollectionOptions.js.map +1 -1
- package/lib/config/applyAttachmentConstraintOverrides.d.ts +6 -4
- package/lib/config/applyAttachmentConstraintOverrides.d.ts.map +1 -1
- package/lib/config/applyAttachmentConstraintOverrides.js +45 -49
- package/lib/config/applyAttachmentConstraintOverrides.js.map +1 -1
- package/lib/config/index.d.ts +17 -15
- package/lib/config/index.d.ts.map +1 -1
- package/lib/config/index.js +56 -81
- package/lib/config/index.js.map +1 -1
- package/lib/connection.d.ts +28 -26
- package/lib/connection.d.ts.map +1 -1
- package/lib/connection.js +183 -215
- package/lib/connection.js.map +1 -1
- package/lib/index.d.ts +9 -5
- package/lib/index.js +9 -5
- package/lib/installation/createFoundryBackendInstallation.d.ts +21 -20
- package/lib/installation/createFoundryBackendInstallation.d.ts.map +1 -1
- package/lib/installation/createFoundryBackendInstallation.js +52 -62
- package/lib/installation/createFoundryBackendInstallation.js.map +1 -1
- package/lib/installation/index.d.ts +2 -2
- package/lib/installation/index.js +1 -2
- package/lib/meta/actionTypeCollectionOptions.d.ts +8 -6
- package/lib/meta/actionTypeCollectionOptions.d.ts.map +1 -1
- package/lib/meta/actionTypeCollectionOptions.js +49 -49
- package/lib/meta/actionTypeCollectionOptions.js.map +1 -1
- package/lib/meta/convertActionTypeLoadSubsetOptions.d.ts +3 -1
- package/lib/meta/convertActionTypeLoadSubsetOptions.d.ts.map +1 -1
- package/lib/meta/convertActionTypeLoadSubsetOptions.js +69 -75
- package/lib/meta/convertActionTypeLoadSubsetOptions.js.map +1 -1
- package/lib/meta/convertMetaActionType.d.ts +7 -5
- package/lib/meta/convertMetaActionType.d.ts.map +1 -1
- package/lib/meta/convertMetaActionType.js +458 -581
- package/lib/meta/convertMetaActionType.js.map +1 -1
- package/lib/meta/convertMetaLinkType.d.ts +4 -2
- package/lib/meta/convertMetaLinkType.d.ts.map +1 -1
- package/lib/meta/convertMetaLinkType.js +37 -43
- package/lib/meta/convertMetaLinkType.js.map +1 -1
- package/lib/meta/convertMetaObjectType.d.ts +4 -2
- package/lib/meta/convertMetaObjectType.d.ts.map +1 -1
- package/lib/meta/convertMetaObjectType.js +34 -35
- package/lib/meta/convertMetaObjectType.js.map +1 -1
- package/lib/meta/convertMetaQueryFunctionType.d.ts +4 -2
- package/lib/meta/convertMetaQueryFunctionType.d.ts.map +1 -1
- package/lib/meta/convertMetaQueryFunctionType.js +113 -94
- package/lib/meta/convertMetaQueryFunctionType.js.map +1 -1
- package/lib/meta/convertMetaTypeDef.d.ts +4 -2
- package/lib/meta/convertMetaTypeDef.d.ts.map +1 -1
- package/lib/meta/convertMetaTypeDef.js +178 -176
- package/lib/meta/convertMetaTypeDef.js.map +1 -1
- package/lib/meta/convertMetaValueType.d.ts +4 -2
- package/lib/meta/convertMetaValueType.d.ts.map +1 -1
- package/lib/meta/convertMetaValueType.js +11 -7
- package/lib/meta/convertMetaValueType.js.map +1 -1
- package/lib/meta/convertOmsActionParameterMetadata.d.ts +4 -2
- package/lib/meta/convertOmsActionParameterMetadata.d.ts.map +1 -1
- package/lib/meta/convertOmsActionParameterMetadata.js +107 -163
- package/lib/meta/convertOmsActionParameterMetadata.js.map +1 -1
- package/lib/meta/createFoundryMetaOntologyBackendAdapter.d.ts +7 -5
- package/lib/meta/createFoundryMetaOntologyBackendAdapter.d.ts.map +1 -1
- package/lib/meta/createFoundryMetaOntologyBackendAdapter.js +39 -41
- package/lib/meta/createFoundryMetaOntologyBackendAdapter.js.map +1 -1
- package/lib/meta/entityCollectionOptions.d.ts +12 -10
- package/lib/meta/entityCollectionOptions.d.ts.map +1 -1
- package/lib/meta/entityCollectionOptions.js +59 -62
- package/lib/meta/entityCollectionOptions.js.map +1 -1
- package/lib/meta/foundryAttachmentMetadata.d.ts +2 -0
- package/lib/meta/foundryAttachmentMetadata.d.ts.map +1 -1
- package/lib/meta/foundryAttachmentMetadata.js +13 -14
- package/lib/meta/foundryAttachmentMetadata.js.map +1 -1
- package/lib/meta/index.d.ts +5 -5
- package/lib/meta/index.js +5 -5
- package/lib/meta/loadActionTypeOmsMetadata.d.ts +5 -3
- package/lib/meta/loadActionTypeOmsMetadata.d.ts.map +1 -1
- package/lib/meta/loadActionTypeOmsMetadata.js +102 -139
- package/lib/meta/loadActionTypeOmsMetadata.js.map +1 -1
- package/lib/meta/queryFunctionTypeCollectionOptions.d.ts +7 -5
- package/lib/meta/queryFunctionTypeCollectionOptions.d.ts.map +1 -1
- package/lib/meta/queryFunctionTypeCollectionOptions.js +47 -49
- package/lib/meta/queryFunctionTypeCollectionOptions.js.map +1 -1
- package/lib/stagedWrites.d.ts +26 -24
- package/lib/stagedWrites.d.ts.map +1 -1
- package/lib/stagedWrites.js +55 -66
- package/lib/stagedWrites.js.map +1 -1
- package/lib/users/createFoundryAdminOntologyRoute.d.ts +47 -17366
- package/lib/users/createFoundryAdminOntologyRoute.d.ts.map +1 -1
- package/lib/users/createFoundryAdminOntologyRoute.js +29 -37
- package/lib/users/createFoundryAdminOntologyRoute.js.map +1 -1
- package/lib/users/createFoundryUsersIntegration.d.ts +6 -4
- package/lib/users/createFoundryUsersIntegration.d.ts.map +1 -1
- package/lib/users/createFoundryUsersIntegration.js +28 -30
- package/lib/users/createFoundryUsersIntegration.js.map +1 -1
- package/lib/users/foundryUser.d.ts +4 -2
- package/lib/users/foundryUser.d.ts.map +1 -1
- package/lib/users/foundryUser.js +69 -74
- package/lib/users/foundryUser.js.map +1 -1
- package/lib/users/index.d.ts +5 -5
- package/lib/users/index.js +5 -5
- package/lib/users/userCollectionOptions.d.ts +13 -11
- package/lib/users/userCollectionOptions.d.ts.map +1 -1
- package/lib/users/userCollectionOptions.js +82 -100
- package/lib/users/userCollectionOptions.js.map +1 -1
- package/lib/utils/AsyncIterable.d.ts +2 -0
- package/lib/utils/AsyncIterable.d.ts.map +1 -1
- package/lib/utils/AsyncIterable.js +26 -34
- package/lib/utils/AsyncIterable.js.map +1 -1
- package/lib/utils/actionTypeName.d.ts +2 -0
- package/lib/utils/actionTypeName.d.ts.map +1 -1
- package/lib/utils/actionTypeName.js +9 -7
- package/lib/utils/actionTypeName.js.map +1 -1
- package/lib/utils/chunk.d.ts +2 -0
- package/lib/utils/chunk.d.ts.map +1 -1
- package/lib/utils/chunk.js +8 -6
- package/lib/utils/chunk.js.map +1 -1
- package/package.json +21 -27
- package/lib/adapter/convertLoadSubsetOptions.test.d.ts +0 -2
- package/lib/adapter/convertLoadSubsetOptions.test.d.ts.map +0 -1
- package/lib/adapter/convertLoadSubsetOptions.test.js +0 -213
- package/lib/adapter/convertLoadSubsetOptions.test.js.map +0 -1
- package/lib/adapter/createFoundryOntologyBackendAdapter.test.d.ts +0 -2
- package/lib/adapter/createFoundryOntologyBackendAdapter.test.d.ts.map +0 -1
- package/lib/adapter/createFoundryOntologyBackendAdapter.test.js +0 -628
- package/lib/adapter/createFoundryOntologyBackendAdapter.test.js.map +0 -1
- package/lib/adapter/foundryActionValidation.test.d.ts +0 -2
- package/lib/adapter/foundryActionValidation.test.d.ts.map +0 -1
- package/lib/adapter/foundryActionValidation.test.js +0 -243
- package/lib/adapter/foundryActionValidation.test.js.map +0 -1
- package/lib/adapter/foundryCodec.test.d.ts +0 -2
- package/lib/adapter/foundryCodec.test.d.ts.map +0 -1
- package/lib/adapter/foundryCodec.test.js +0 -137
- package/lib/adapter/foundryCodec.test.js.map +0 -1
- package/lib/adapter/foundryMediaId.test.d.ts +0 -2
- package/lib/adapter/foundryMediaId.test.d.ts.map +0 -1
- package/lib/adapter/foundryMediaId.test.js +0 -23
- package/lib/adapter/foundryMediaId.test.js.map +0 -1
- package/lib/adapter/index.d.ts.map +0 -1
- package/lib/adapter/index.js.map +0 -1
- package/lib/adapter/objectCollectionOptions.test.d.ts +0 -2
- package/lib/adapter/objectCollectionOptions.test.d.ts.map +0 -1
- package/lib/adapter/objectCollectionOptions.test.js +0 -1290
- package/lib/adapter/objectCollectionOptions.test.js.map +0 -1
- package/lib/config/connectionPull.test.d.ts +0 -2
- package/lib/config/connectionPull.test.d.ts.map +0 -1
- package/lib/config/connectionPull.test.js +0 -151
- package/lib/config/connectionPull.test.js.map +0 -1
- package/lib/config/index.test.d.ts +0 -2
- package/lib/config/index.test.d.ts.map +0 -1
- package/lib/config/index.test.js +0 -182
- package/lib/config/index.test.js.map +0 -1
- package/lib/connection.test.d.ts +0 -2
- package/lib/connection.test.d.ts.map +0 -1
- package/lib/connection.test.js +0 -162
- package/lib/connection.test.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/installation/createFoundryBackendInstallation.test.d.ts +0 -2
- package/lib/installation/createFoundryBackendInstallation.test.d.ts.map +0 -1
- package/lib/installation/createFoundryBackendInstallation.test.js +0 -83
- package/lib/installation/createFoundryBackendInstallation.test.js.map +0 -1
- package/lib/installation/index.d.ts.map +0 -1
- package/lib/installation/index.js.map +0 -1
- package/lib/meta/actionTypeCollectionOptions.test.d.ts +0 -2
- package/lib/meta/actionTypeCollectionOptions.test.d.ts.map +0 -1
- package/lib/meta/actionTypeCollectionOptions.test.js +0 -24
- package/lib/meta/actionTypeCollectionOptions.test.js.map +0 -1
- package/lib/meta/actionTypeIdQuery.test.d.ts +0 -2
- package/lib/meta/actionTypeIdQuery.test.d.ts.map +0 -1
- package/lib/meta/actionTypeIdQuery.test.js +0 -131
- package/lib/meta/actionTypeIdQuery.test.js.map +0 -1
- package/lib/meta/convertActionTypeLoadSubsetOptions.test.d.ts +0 -2
- package/lib/meta/convertActionTypeLoadSubsetOptions.test.d.ts.map +0 -1
- package/lib/meta/convertActionTypeLoadSubsetOptions.test.js +0 -138
- package/lib/meta/convertActionTypeLoadSubsetOptions.test.js.map +0 -1
- package/lib/meta/convertMetaActionType.test.d.ts +0 -2
- package/lib/meta/convertMetaActionType.test.d.ts.map +0 -1
- package/lib/meta/convertMetaActionType.test.js +0 -1565
- package/lib/meta/convertMetaActionType.test.js.map +0 -1
- package/lib/meta/convertMetaLinkType.test.d.ts +0 -2
- package/lib/meta/convertMetaLinkType.test.d.ts.map +0 -1
- package/lib/meta/convertMetaLinkType.test.js +0 -110
- package/lib/meta/convertMetaLinkType.test.js.map +0 -1
- package/lib/meta/convertMetaObjectType.test.d.ts +0 -2
- package/lib/meta/convertMetaObjectType.test.d.ts.map +0 -1
- package/lib/meta/convertMetaObjectType.test.js +0 -250
- package/lib/meta/convertMetaObjectType.test.js.map +0 -1
- package/lib/meta/convertMetaQueryFunctionType.test.d.ts +0 -2
- package/lib/meta/convertMetaQueryFunctionType.test.d.ts.map +0 -1
- package/lib/meta/convertMetaQueryFunctionType.test.js +0 -134
- package/lib/meta/convertMetaQueryFunctionType.test.js.map +0 -1
- package/lib/meta/createFoundryMetaOntologyBackendAdapter.test.d.ts +0 -2
- package/lib/meta/createFoundryMetaOntologyBackendAdapter.test.d.ts.map +0 -1
- package/lib/meta/createFoundryMetaOntologyBackendAdapter.test.js +0 -49
- package/lib/meta/createFoundryMetaOntologyBackendAdapter.test.js.map +0 -1
- package/lib/meta/entityCollectionOptions.test.d.ts +0 -2
- package/lib/meta/entityCollectionOptions.test.d.ts.map +0 -1
- package/lib/meta/entityCollectionOptions.test.js +0 -98
- package/lib/meta/entityCollectionOptions.test.js.map +0 -1
- package/lib/meta/index.d.ts.map +0 -1
- package/lib/meta/index.js.map +0 -1
- package/lib/meta/loadActionTypeOmsMetadata.test.d.ts +0 -2
- package/lib/meta/loadActionTypeOmsMetadata.test.d.ts.map +0 -1
- package/lib/meta/loadActionTypeOmsMetadata.test.js +0 -218
- package/lib/meta/loadActionTypeOmsMetadata.test.js.map +0 -1
- package/lib/stagedWrites.test.d.ts +0 -2
- package/lib/stagedWrites.test.d.ts.map +0 -1
- package/lib/stagedWrites.test.js +0 -71
- package/lib/stagedWrites.test.js.map +0 -1
- package/lib/users/createFoundryUsersIntegration.test.d.ts +0 -2
- package/lib/users/createFoundryUsersIntegration.test.d.ts.map +0 -1
- package/lib/users/createFoundryUsersIntegration.test.js +0 -32
- package/lib/users/createFoundryUsersIntegration.test.js.map +0 -1
- package/lib/users/foundryUser.test.d.ts +0 -2
- package/lib/users/foundryUser.test.d.ts.map +0 -1
- package/lib/users/foundryUser.test.js +0 -45
- package/lib/users/foundryUser.test.js.map +0 -1
- package/lib/users/index.d.ts.map +0 -1
- package/lib/users/index.js.map +0 -1
- package/lib/users/userCollectionOptions.test.d.ts +0 -2
- package/lib/users/userCollectionOptions.test.d.ts.map +0 -1
- package/lib/users/userCollectionOptions.test.js +0 -18
- package/lib/users/userCollectionOptions.test.js.map +0 -1
- package/lib/utils/AsyncIterable.test.d.ts +0 -2
- package/lib/utils/AsyncIterable.test.d.ts.map +0 -1
- package/lib/utils/AsyncIterable.test.js +0 -17
- package/lib/utils/AsyncIterable.test.js.map +0 -1
- package/lib/utils/actionTypeName.test.d.ts +0 -2
- package/lib/utils/actionTypeName.test.d.ts.map +0 -1
- package/lib/utils/actionTypeName.test.js +0 -30
- package/lib/utils/actionTypeName.test.js.map +0 -1
package/lib/stagedWrites.d.ts
CHANGED
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { InitialQueryBuilder } from "@tanstack/db";
|
|
2
|
+
import { OntologyIR, OntologyMutator, OntologyMutatorObjects, OntologyMutatorTx } from "@party-stack/ontology";
|
|
3
|
+
//#region src/stagedWrites.d.ts
|
|
3
4
|
/**
|
|
4
5
|
* Structural subset of Foundry's staged-write `WriteableClient`.
|
|
5
6
|
* Generated Foundry clients can be passed directly.
|
|
6
7
|
*/
|
|
7
8
|
export interface FoundryStagedWriteClient {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
create(objectType: unknown, object: Record<string, unknown>): Promise<unknown>;
|
|
10
|
+
update(object: {
|
|
11
|
+
$apiName: string;
|
|
12
|
+
$primaryKey: string | number;
|
|
13
|
+
}, changes: Record<string, unknown>): Promise<unknown>;
|
|
14
|
+
delete(object: {
|
|
15
|
+
$apiName: string;
|
|
16
|
+
$primaryKey: string | number;
|
|
17
|
+
}): Promise<unknown>;
|
|
18
|
+
query?<T>(build: (query: InitialQueryBuilder, objects: OntologyMutatorObjects) => unknown): Promise<T>;
|
|
18
19
|
}
|
|
19
20
|
export interface CreateFoundryStagedWriteMutatorTxOptions {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
client: FoundryStagedWriteClient;
|
|
22
|
+
/**
|
|
23
|
+
* Generated OSDK object type tokens, keyed by ontology API name. Required
|
|
24
|
+
* for creates when the client cannot accept an `$apiName` placeholder.
|
|
25
|
+
*/
|
|
26
|
+
objectTypes?: Record<string, unknown>;
|
|
26
27
|
}
|
|
27
28
|
export declare function createFoundryStagedWriteMutatorTx(options: CreateFoundryStagedWriteMutatorTxOptions): OntologyMutatorTx;
|
|
28
29
|
/**
|
|
@@ -30,11 +31,12 @@ export declare function createFoundryStagedWriteMutatorTx(options: CreateFoundry
|
|
|
30
31
|
* transaction. Foundry provides atomic commit/rollback and read-after-write.
|
|
31
32
|
*/
|
|
32
33
|
export declare function runFoundryOntologyMutator(options: {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
ir: OntologyIR;
|
|
35
|
+
client: FoundryStagedWriteClient;
|
|
36
|
+
mutator: OntologyMutator;
|
|
37
|
+
args: Record<string, unknown>;
|
|
38
|
+
context?: Record<string, unknown>;
|
|
39
|
+
objectTypes?: Record<string, unknown>;
|
|
39
40
|
}): Promise<void>;
|
|
41
|
+
//#endregion
|
|
40
42
|
//# sourceMappingURL=stagedWrites.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stagedWrites.d.ts","
|
|
1
|
+
{"version":3,"file":"stagedWrites.d.ts","names":[],"sources":["../src/stagedWrites.ts"],"mappings":";;;;;;;iBAaiB;EACb,OAAO,qBAAqB,QAAQ,0BAA0B;EAC9D,OACI;IACI;IACA;KAEJ,SAAS,0BACV;EACH,OAAO;IAAU;IAAkB;MAAiC;EACpE,OAAO,GAAG,QAAQ,OAAO,qBAAqB,SAAS,qCAAqC,QAAQ;;iBAGvF;EACb,QAAQ;;;;;EAKR,cAAc;;wBA0BF,kCACZ,SAAS,2CACV;;;;;wBAuDmB,0BAA0B;EAC5C,IAAI;EACJ,QAAQ;EACR,SAAS;EACT,MAAM;EACN,UAAU;EACV,cAAc;IACd"}
|
package/lib/stagedWrites.js
CHANGED
|
@@ -1,74 +1,63 @@
|
|
|
1
|
+
//#region src/stagedWrites.ts
|
|
1
2
|
function setPath(object, path, value) {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
target = target[segment];
|
|
11
|
-
}
|
|
12
|
-
target[path.at(-1)] = value;
|
|
3
|
+
let target = object;
|
|
4
|
+
for (const segment of path.slice(0, -1)) {
|
|
5
|
+
const existing = target[segment];
|
|
6
|
+
if (typeof existing !== "object" || existing === null || Array.isArray(existing)) target[segment] = {};
|
|
7
|
+
target = target[segment];
|
|
8
|
+
}
|
|
9
|
+
target[path.at(-1)] = value;
|
|
13
10
|
}
|
|
14
11
|
function changesToRecord(changes) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
setPath(record, change.path, change.value);
|
|
20
|
-
}
|
|
21
|
-
return record;
|
|
12
|
+
if (!Array.isArray(changes)) return changes;
|
|
13
|
+
const record = {};
|
|
14
|
+
for (const change of changes) setPath(record, change.path, change.value);
|
|
15
|
+
return record;
|
|
22
16
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
$apiName: objectType,
|
|
51
|
-
$primaryKey: key,
|
|
52
|
-
});
|
|
53
|
-
},
|
|
54
|
-
};
|
|
55
|
-
},
|
|
56
|
-
}),
|
|
57
|
-
};
|
|
17
|
+
function createFoundryStagedWriteMutatorTx(options) {
|
|
18
|
+
return {
|
|
19
|
+
query: async (build) => {
|
|
20
|
+
if (!options.client.query) throw new Error("Foundry staged-write mutator queries require a query adapter backed by the ambient staged-write client.");
|
|
21
|
+
return options.client.query(build);
|
|
22
|
+
},
|
|
23
|
+
mutate: new Proxy({}, { get: (_target, objectType) => {
|
|
24
|
+
if (typeof objectType !== "string") return;
|
|
25
|
+
return {
|
|
26
|
+
create: async (object) => {
|
|
27
|
+
await options.client.create(options.objectTypes?.[objectType] ?? { $apiName: objectType }, object);
|
|
28
|
+
},
|
|
29
|
+
update: async (key, changes) => {
|
|
30
|
+
await options.client.update({
|
|
31
|
+
$apiName: objectType,
|
|
32
|
+
$primaryKey: key
|
|
33
|
+
}, changesToRecord(changes));
|
|
34
|
+
},
|
|
35
|
+
delete: async (key) => {
|
|
36
|
+
await options.client.delete({
|
|
37
|
+
$apiName: objectType,
|
|
38
|
+
$primaryKey: key
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
} })
|
|
43
|
+
};
|
|
58
44
|
}
|
|
59
45
|
/**
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
46
|
+
* Run a Party Stack ontology mutator inside Foundry's ambient staged-write
|
|
47
|
+
* transaction. Foundry provides atomic commit/rollback and read-after-write.
|
|
48
|
+
*/
|
|
49
|
+
async function runFoundryOntologyMutator(options) {
|
|
50
|
+
const tx = createFoundryStagedWriteMutatorTx({
|
|
51
|
+
client: options.client,
|
|
52
|
+
objectTypes: options.objectTypes
|
|
53
|
+
});
|
|
54
|
+
await options.mutator({
|
|
55
|
+
tx,
|
|
56
|
+
args: options.args,
|
|
57
|
+
context: options.context ?? {}
|
|
58
|
+
});
|
|
73
59
|
}
|
|
60
|
+
//#endregion
|
|
61
|
+
export { createFoundryStagedWriteMutatorTx, runFoundryOntologyMutator };
|
|
62
|
+
|
|
74
63
|
//# sourceMappingURL=stagedWrites.js.map
|
package/lib/stagedWrites.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stagedWrites.js","
|
|
1
|
+
{"version":3,"file":"stagedWrites.js","names":[],"sources":["../src/stagedWrites.ts"],"sourcesContent":["import type {\n OntologyIR,\n OntologyMutator,\n OntologyMutatorObjects,\n OntologyMutatorTx,\n OntologyPropertyChange,\n} from \"@party-stack/ontology\";\nimport type { InitialQueryBuilder } from \"@tanstack/db\";\n\n/**\n * Structural subset of Foundry's staged-write `WriteableClient`.\n * Generated Foundry clients can be passed directly.\n */\nexport interface FoundryStagedWriteClient {\n create(objectType: unknown, object: Record<string, unknown>): Promise<unknown>;\n update(\n object: {\n $apiName: string;\n $primaryKey: string | number;\n },\n changes: Record<string, unknown>\n ): Promise<unknown>;\n delete(object: { $apiName: string; $primaryKey: string | number }): Promise<unknown>;\n query?<T>(build: (query: InitialQueryBuilder, objects: OntologyMutatorObjects) => unknown): Promise<T>;\n}\n\nexport interface CreateFoundryStagedWriteMutatorTxOptions {\n client: FoundryStagedWriteClient;\n /**\n * Generated OSDK object type tokens, keyed by ontology API name. Required\n * for creates when the client cannot accept an `$apiName` placeholder.\n */\n objectTypes?: Record<string, unknown>;\n}\n\nfunction setPath(object: Record<string, unknown>, path: string[], value: unknown): void {\n let target = object;\n for (const segment of path.slice(0, -1)) {\n const existing = target[segment];\n if (typeof existing !== \"object\" || existing === null || Array.isArray(existing)) {\n target[segment] = {};\n }\n target = target[segment] as Record<string, unknown>;\n }\n target[path.at(-1)!] = value;\n}\n\nfunction changesToRecord(\n changes: Record<string, unknown> | OntologyPropertyChange[]\n): Record<string, unknown> {\n if (!Array.isArray(changes)) return changes;\n const record: Record<string, unknown> = {};\n for (const change of changes) {\n setPath(record, change.path, change.value);\n }\n return record;\n}\n\nexport function createFoundryStagedWriteMutatorTx(\n options: CreateFoundryStagedWriteMutatorTxOptions\n): OntologyMutatorTx {\n return {\n query: async (build) => {\n if (!options.client.query) {\n throw new Error(\n \"Foundry staged-write mutator queries require a query adapter backed by the ambient staged-write client.\"\n );\n }\n return options.client.query(build);\n },\n mutate: new Proxy(\n {},\n {\n get: (_target, objectType) => {\n if (typeof objectType !== \"string\") {\n return undefined;\n }\n return {\n create: async (object: Record<string, unknown>) => {\n await options.client.create(\n options.objectTypes?.[objectType] ?? {\n $apiName: objectType,\n },\n object\n );\n },\n update: async (\n key: string | number,\n changes: Record<string, unknown> | OntologyPropertyChange[]\n ) => {\n await options.client.update(\n {\n $apiName: objectType,\n $primaryKey: key,\n },\n changesToRecord(changes)\n );\n },\n delete: async (key: string | number) => {\n await options.client.delete({\n $apiName: objectType,\n $primaryKey: key,\n });\n },\n };\n },\n }\n ),\n };\n}\n\n/**\n * Run a Party Stack ontology mutator inside Foundry's ambient staged-write\n * transaction. Foundry provides atomic commit/rollback and read-after-write.\n */\nexport async function runFoundryOntologyMutator(options: {\n ir: OntologyIR;\n client: FoundryStagedWriteClient;\n mutator: OntologyMutator;\n args: Record<string, unknown>;\n context?: Record<string, unknown>;\n objectTypes?: Record<string, unknown>;\n}): Promise<void> {\n const tx = createFoundryStagedWriteMutatorTx({\n client: options.client,\n objectTypes: options.objectTypes,\n });\n await options.mutator({\n tx,\n args: options.args,\n context: options.context ?? {},\n });\n}\n"],"mappings":";AAmCA,SAAS,QAAQ,QAAiC,MAAgB,OAAsB;CACpF,IAAI,SAAS;CACb,KAAK,MAAM,WAAW,KAAK,MAAM,GAAG,EAAE,GAAG;EACrC,MAAM,WAAW,OAAO;EACxB,IAAI,OAAO,aAAa,YAAY,aAAa,QAAQ,MAAM,QAAQ,QAAQ,GAC3E,OAAO,WAAW,CAAC;EAEvB,SAAS,OAAO;CACpB;CACA,OAAO,KAAK,GAAG,EAAE,KAAM;AAC3B;AAEA,SAAS,gBACL,SACuB;CACvB,IAAI,CAAC,MAAM,QAAQ,OAAO,GAAG,OAAO;CACpC,MAAM,SAAkC,CAAC;CACzC,KAAK,MAAM,UAAU,SACjB,QAAQ,QAAQ,OAAO,MAAM,OAAO,KAAK;CAE7C,OAAO;AACX;AAEA,SAAgB,kCACZ,SACiB;CACjB,OAAO;EACH,OAAO,OAAO,UAAU;GACpB,IAAI,CAAC,QAAQ,OAAO,OAChB,MAAM,IAAI,MACN,yGACJ;GAEJ,OAAO,QAAQ,OAAO,MAAM,KAAK;EACrC;EACA,QAAQ,IAAI,MACR,CAAC,GACD,EACI,MAAM,SAAS,eAAe;GAC1B,IAAI,OAAO,eAAe,UACtB;GAEJ,OAAO;IACH,QAAQ,OAAO,WAAoC;KAC/C,MAAM,QAAQ,OAAO,OACjB,QAAQ,cAAc,eAAe,EACjC,UAAU,WACd,GACA,MACJ;IACJ;IACA,QAAQ,OACJ,KACA,YACC;KACD,MAAM,QAAQ,OAAO,OACjB;MACI,UAAU;MACV,aAAa;KACjB,GACA,gBAAgB,OAAO,CAC3B;IACJ;IACA,QAAQ,OAAO,QAAyB;KACpC,MAAM,QAAQ,OAAO,OAAO;MACxB,UAAU;MACV,aAAa;KACjB,CAAC;IACL;GACJ;EACJ,EACJ,CACJ;CACJ;AACJ;;;;;AAMA,eAAsB,0BAA0B,SAO9B;CACd,MAAM,KAAK,kCAAkC;EACzC,QAAQ,QAAQ;EAChB,aAAa,QAAQ;CACzB,CAAC;CACD,MAAM,QAAQ,QAAQ;EAClB;EACA,MAAM,QAAQ;EACd,SAAS,QAAQ,WAAW,CAAC;CACjC,CAAC;AACL"}
|