@prisma-next/mongo-contract 0.13.0-dev.32 → 0.13.0-dev.33
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/index.d.mts +26 -8
- package/dist/index.d.mts.map +1 -1
- package/package.json +8 -8
- package/src/contract-types.ts +34 -14
- package/src/exports/index.ts +2 -0
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Contract, ContractField, ContractModel,
|
|
1
|
+
import { Contract, ContractField, ContractModel, ContractValueObject, ContractValueObjectDefinitions, ControlPolicy, StorageBase, StorageHashBase } from "@prisma-next/contract/types";
|
|
2
2
|
import { Type } from "arktype";
|
|
3
|
-
import { IRNodeBase, Namespace, NamespaceBase, Storage } from "@prisma-next/framework-components/ir";
|
|
3
|
+
import { IRNodeBase, Namespace, NamespaceBase, Storage, UNBOUND_NAMESPACE_ID } from "@prisma-next/framework-components/ir";
|
|
4
4
|
import { CollationOptions } from "@prisma-next/mongo-value/mongodb-types";
|
|
5
5
|
|
|
6
6
|
//#region src/contract-schema.d.ts
|
|
@@ -477,12 +477,18 @@ type MongoStorageShape<THash extends string = string> = StorageBase<THash> & {
|
|
|
477
477
|
readonly entries: MongoNamespaceEntries$1;
|
|
478
478
|
}>;
|
|
479
479
|
};
|
|
480
|
-
type MongoContract<S extends MongoStorageShape = MongoStorageShape
|
|
481
|
-
/**
|
|
482
|
-
|
|
480
|
+
type MongoContract<S extends MongoStorageShape = MongoStorageShape> = Contract<S>;
|
|
481
|
+
/**
|
|
482
|
+
* Model map for the contract's sole (unbound) domain namespace. Mongo is
|
|
483
|
+
* structurally single-namespace, so its models live under
|
|
484
|
+
* {@link UNBOUND_NAMESPACE_ID} rather than in a flat cross-namespace union.
|
|
485
|
+
* Every Mongo type that needs the model map reads it through here, so none
|
|
486
|
+
* indexes the contract's namespaces directly.
|
|
487
|
+
*/
|
|
488
|
+
type MongoModelsMap<TContract extends MongoContract> = TContract['domain']['namespaces'][typeof UNBOUND_NAMESPACE_ID]['models'];
|
|
483
489
|
type RootModelName<TContract extends MongoContract, RootName extends keyof TContract['roots'] & string> = TContract['roots'][RootName] extends {
|
|
484
490
|
readonly model: infer M extends string;
|
|
485
|
-
} ? M & keyof
|
|
491
|
+
} ? M & keyof MongoModelsMap<TContract> : never;
|
|
486
492
|
type MongoTypeMaps<TCodecTypes extends Record<string, {
|
|
487
493
|
output: unknown;
|
|
488
494
|
}> = Record<string, {
|
|
@@ -506,6 +512,18 @@ type ExtractMongoFieldOutputTypes<T> = ExtractMongoTypeMaps<T> extends {
|
|
|
506
512
|
type ExtractMongoFieldInputTypes<T> = ExtractMongoTypeMaps<T> extends {
|
|
507
513
|
fieldInputTypes: infer F;
|
|
508
514
|
} ? F extends Record<string, Record<string, unknown>> ? F : Record<string, never> : Record<string, never>;
|
|
515
|
+
/**
|
|
516
|
+
* The per-model field-output map at the contract's unbound namespace. The
|
|
517
|
+
* framework emitter nests `FieldOutputTypes` by namespace id
|
|
518
|
+
* (`{ [ns]: { [model]: { [field]: <refined> } } }`); Mongo is structurally
|
|
519
|
+
* single-namespace, so its refined rows resolve the per-model map under
|
|
520
|
+
* {@link UNBOUND_NAMESPACE_ID}. A map without that coordinate (e.g. a contract
|
|
521
|
+
* carrying no type maps) resolves to `never`, which the row resolvers read as
|
|
522
|
+
* "no refined map" and fall back to codec-based inference.
|
|
523
|
+
*/
|
|
524
|
+
type MongoUnboundFieldOutputTypes<T> = ExtractMongoFieldOutputTypes<T> extends Record<typeof UNBOUND_NAMESPACE_ID, infer Inner> ? Inner : never;
|
|
525
|
+
/** Input-side counterpart of {@link MongoUnboundFieldOutputTypes}. */
|
|
526
|
+
type MongoUnboundFieldInputTypes<T> = ExtractMongoFieldInputTypes<T> extends Record<typeof UNBOUND_NAMESPACE_ID, infer Inner> ? Inner : never;
|
|
509
527
|
type ExtractValueObjects<TContract extends Contract> = ContractValueObjectDefinitions<TContract>;
|
|
510
528
|
type NormalizeContractFields<TFields> = { [K in keyof TFields]: TFields[K] extends ContractField ? TFields[K] : never };
|
|
511
529
|
type ExtractValueObjectFields<TValueObjects extends Record<string, ContractValueObject>, VOName extends keyof TValueObjects> = NormalizeContractFields<TValueObjects[VOName]['fields']>;
|
|
@@ -526,7 +544,7 @@ type InferFieldType<TField, TValueObjects extends Record<string, ContractValueOb
|
|
|
526
544
|
}>> = TField extends ContractField ? TField extends {
|
|
527
545
|
many: true;
|
|
528
546
|
} ? TField['nullable'] extends true ? InferFieldBaseType<TField['type'], TValueObjects, TCodecTypes>[] | null : InferFieldBaseType<TField['type'], TValueObjects, TCodecTypes>[] : TField['nullable'] extends true ? InferFieldBaseType<TField['type'], TValueObjects, TCodecTypes> | null : InferFieldBaseType<TField['type'], TValueObjects, TCodecTypes> : never;
|
|
529
|
-
type InferModelRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof
|
|
547
|
+
type InferModelRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, TFields extends Record<string, ContractField> = MongoModelsMap<TContract>[ModelName]['fields'], TCodecTypes extends Record<string, {
|
|
530
548
|
output: unknown;
|
|
531
549
|
}> = ExtractMongoCodecTypes<TContract>, TValueObjects extends Record<string, ContractValueObject> = ExtractValueObjects<TContract>> = { -readonly [FieldName in keyof TFields]: InferFieldType<TFields[FieldName], TValueObjects, TCodecTypes> };
|
|
532
550
|
//#endregion
|
|
@@ -587,5 +605,5 @@ declare function applyPolymorphicScopeToMongoIndex(index: MongoIndex, scope: Pol
|
|
|
587
605
|
//#region src/validate-storage.d.ts
|
|
588
606
|
declare function validateMongoStorage(contract: MongoContract): void;
|
|
589
607
|
//#endregion
|
|
590
|
-
export { type ApplyScopeResult, type ExtractMongoCodecTypes, type ExtractMongoFieldInputTypes, type ExtractMongoFieldOutputTypes, type ExtractMongoTypeMaps, type InferModelRow, MongoChangeStreamPreAndPostImagesOptions, type MongoChangeStreamPreAndPostImagesOptionsInput, type MongoClusteredCollectionKey, MongoClusteredCollectionOptions, type MongoClusteredCollectionOptionsInput, type MongoCollationAlternate, type MongoCollationCaseFirst, type MongoCollationMaxVariable, MongoCollationOptions, type MongoCollationOptionsInput, type MongoCollationStrength, MongoCollection, type MongoCollectionInput, MongoCollectionOptions, type MongoCollectionOptionsAuthoringInput, type MongoCollectionOptionsInput, type MongoContract, MongoContractSchema, type MongoContractWithTypeMaps, MongoIndex, type MongoIndexAuthoringInput, type MongoIndexFieldValue, type MongoIndexFields, type MongoIndexInput, type MongoIndexKey, type MongoIndexKeyDirection, MongoIndexOptionDefaults, type MongoIndexOptionDefaultsInput, MongoIndexOptions, type MongoIndexOptionsInput, type MongoJsonObject, type MongoJsonPrimitive, type MongoJsonValue, type MongoModelDefinition, type MongoModelStorage, type MongoModelsMap, type MongoNamespace, type MongoNamespaceEntries, MongoStorage, type MongoStorageCappedShape, type MongoStorageClusteredIndexShape, type MongoStorageInput, type MongoStorageShape, MongoTimeSeriesCollectionOptions, type MongoTimeSeriesCollectionOptionsInput, type MongoTimeSeriesGranularity, type MongoTypeMaps, type MongoTypeMapsPhantomKey, MongoUnboundNamespace, MongoValidator, type MongoValidatorInput, type MongoValidatorValidationAction, type MongoValidatorValidationLevel, type MongoWildcardProjection, type PolymorphicIndexScope, type RootModelName, applyPolymorphicScopeToMongoIndex, buildMongoNamespace, createMongoContractSchema, createMongoNamespaceEnvelopeSchema, defaultMongoDomainNamespaceId, defaultMongoStorageNamespaceId, validateMongoStorage };
|
|
608
|
+
export { type ApplyScopeResult, type ExtractMongoCodecTypes, type ExtractMongoFieldInputTypes, type ExtractMongoFieldOutputTypes, type ExtractMongoTypeMaps, type InferModelRow, MongoChangeStreamPreAndPostImagesOptions, type MongoChangeStreamPreAndPostImagesOptionsInput, type MongoClusteredCollectionKey, MongoClusteredCollectionOptions, type MongoClusteredCollectionOptionsInput, type MongoCollationAlternate, type MongoCollationCaseFirst, type MongoCollationMaxVariable, MongoCollationOptions, type MongoCollationOptionsInput, type MongoCollationStrength, MongoCollection, type MongoCollectionInput, MongoCollectionOptions, type MongoCollectionOptionsAuthoringInput, type MongoCollectionOptionsInput, type MongoContract, MongoContractSchema, type MongoContractWithTypeMaps, MongoIndex, type MongoIndexAuthoringInput, type MongoIndexFieldValue, type MongoIndexFields, type MongoIndexInput, type MongoIndexKey, type MongoIndexKeyDirection, MongoIndexOptionDefaults, type MongoIndexOptionDefaultsInput, MongoIndexOptions, type MongoIndexOptionsInput, type MongoJsonObject, type MongoJsonPrimitive, type MongoJsonValue, type MongoModelDefinition, type MongoModelStorage, type MongoModelsMap, type MongoNamespace, type MongoNamespaceEntries, MongoStorage, type MongoStorageCappedShape, type MongoStorageClusteredIndexShape, type MongoStorageInput, type MongoStorageShape, MongoTimeSeriesCollectionOptions, type MongoTimeSeriesCollectionOptionsInput, type MongoTimeSeriesGranularity, type MongoTypeMaps, type MongoTypeMapsPhantomKey, type MongoUnboundFieldInputTypes, type MongoUnboundFieldOutputTypes, MongoUnboundNamespace, MongoValidator, type MongoValidatorInput, type MongoValidatorValidationAction, type MongoValidatorValidationLevel, type MongoWildcardProjection, type PolymorphicIndexScope, type RootModelName, applyPolymorphicScopeToMongoIndex, buildMongoNamespace, createMongoContractSchema, createMongoNamespaceEnvelopeSchema, defaultMongoDomainNamespaceId, defaultMongoStorageNamespaceId, validateMongoStorage };
|
|
591
609
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/contract-schema.ts","../src/ir/mongo-collation-options.ts","../src/ir/mongo-index-options.ts","../src/ir/mongo-change-stream-pre-and-post-images-options.ts","../src/ir/mongo-clustered-collection-options.ts","../src/ir/mongo-index-option-defaults.ts","../src/ir/mongo-time-series-collection-options.ts","../src/ir/mongo-collection-options.ts","../src/ir/mongo-index.ts","../src/ir/mongo-validator.ts","../src/ir/mongo-collection.ts","../src/contract-types.ts","../src/default-namespace.ts","../src/ir/mongo-storage.ts","../src/ir/build-mongo-namespace.ts","../src/ir/mongo-unbound-namespace.ts","../src/polymorphic-index-scope.ts","../src/validate-storage.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/contract-schema.ts","../src/ir/mongo-collation-options.ts","../src/ir/mongo-index-options.ts","../src/ir/mongo-change-stream-pre-and-post-images-options.ts","../src/ir/mongo-clustered-collection-options.ts","../src/ir/mongo-index-option-defaults.ts","../src/ir/mongo-time-series-collection-options.ts","../src/ir/mongo-collection-options.ts","../src/ir/mongo-index.ts","../src/ir/mongo-validator.ts","../src/ir/mongo-collection.ts","../src/contract-types.ts","../src/default-namespace.ts","../src/ir/mongo-storage.ts","../src/ir/build-mongo-namespace.ts","../src/ir/mongo-unbound-namespace.ts","../src/polymorphic-index-scope.ts","../src/validate-storage.ts"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prisma-next/mongo-contract",
|
|
3
|
-
"version": "0.13.0-dev.
|
|
3
|
+
"version": "0.13.0-dev.33",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"description": "Contract types and validation for Prisma Next MongoDB support",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@prisma-next/contract": "0.13.0-dev.
|
|
10
|
-
"@prisma-next/framework-components": "0.13.0-dev.
|
|
11
|
-
"@prisma-next/mongo-value": "0.13.0-dev.
|
|
12
|
-
"@prisma-next/utils": "0.13.0-dev.
|
|
9
|
+
"@prisma-next/contract": "0.13.0-dev.33",
|
|
10
|
+
"@prisma-next/framework-components": "0.13.0-dev.33",
|
|
11
|
+
"@prisma-next/mongo-value": "0.13.0-dev.33",
|
|
12
|
+
"@prisma-next/utils": "0.13.0-dev.33",
|
|
13
13
|
"arktype": "^2.2.0",
|
|
14
14
|
"mongodb": "^7.2.0"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
|
-
"@prisma-next/test-utils": "0.13.0-dev.
|
|
18
|
-
"@prisma-next/tsconfig": "0.13.0-dev.
|
|
19
|
-
"@prisma-next/tsdown": "0.13.0-dev.
|
|
17
|
+
"@prisma-next/test-utils": "0.13.0-dev.33",
|
|
18
|
+
"@prisma-next/tsconfig": "0.13.0-dev.33",
|
|
19
|
+
"@prisma-next/tsdown": "0.13.0-dev.33",
|
|
20
20
|
"tsdown": "0.22.1",
|
|
21
21
|
"typescript": "5.9.3",
|
|
22
22
|
"vitest": "4.1.8"
|
package/src/contract-types.ts
CHANGED
|
@@ -2,12 +2,11 @@ import type {
|
|
|
2
2
|
Contract,
|
|
3
3
|
ContractField,
|
|
4
4
|
ContractModel,
|
|
5
|
-
ContractModelDefinitions,
|
|
6
5
|
ContractValueObject,
|
|
7
6
|
ContractValueObjectDefinitions,
|
|
8
7
|
StorageBase,
|
|
9
8
|
} from '@prisma-next/contract/types';
|
|
10
|
-
import type { Namespace } from '@prisma-next/framework-components/ir';
|
|
9
|
+
import type { Namespace, UNBOUND_NAMESPACE_ID } from '@prisma-next/framework-components/ir';
|
|
11
10
|
import type { MongoIndexOptionsInput } from './ir/mongo-index-options';
|
|
12
11
|
|
|
13
12
|
export type MongoIndexFieldValue = 1 | -1 | 'text' | '2dsphere' | '2d' | 'hashed';
|
|
@@ -73,19 +72,23 @@ export type MongoStorageShape<THash extends string = string> = StorageBase<THash
|
|
|
73
72
|
>;
|
|
74
73
|
};
|
|
75
74
|
|
|
76
|
-
export type MongoContract<
|
|
77
|
-
S extends MongoStorageShape = MongoStorageShape,
|
|
78
|
-
M extends Record<string, MongoModelDefinition> = Record<string, MongoModelDefinition>,
|
|
79
|
-
> = Contract<S, M>;
|
|
75
|
+
export type MongoContract<S extends MongoStorageShape = MongoStorageShape> = Contract<S>;
|
|
80
76
|
|
|
81
|
-
/**
|
|
82
|
-
|
|
77
|
+
/**
|
|
78
|
+
* Model map for the contract's sole (unbound) domain namespace. Mongo is
|
|
79
|
+
* structurally single-namespace, so its models live under
|
|
80
|
+
* {@link UNBOUND_NAMESPACE_ID} rather than in a flat cross-namespace union.
|
|
81
|
+
* Every Mongo type that needs the model map reads it through here, so none
|
|
82
|
+
* indexes the contract's namespaces directly.
|
|
83
|
+
*/
|
|
84
|
+
export type MongoModelsMap<TContract extends MongoContract> =
|
|
85
|
+
TContract['domain']['namespaces'][typeof UNBOUND_NAMESPACE_ID]['models'];
|
|
83
86
|
|
|
84
87
|
export type RootModelName<
|
|
85
88
|
TContract extends MongoContract,
|
|
86
89
|
RootName extends keyof TContract['roots'] & string,
|
|
87
90
|
> = TContract['roots'][RootName] extends { readonly model: infer M extends string }
|
|
88
|
-
? M & keyof
|
|
91
|
+
? M & keyof MongoModelsMap<TContract>
|
|
89
92
|
: never;
|
|
90
93
|
|
|
91
94
|
export type MongoTypeMaps<
|
|
@@ -135,6 +138,26 @@ export type ExtractMongoFieldInputTypes<T> =
|
|
|
135
138
|
: Record<string, never>
|
|
136
139
|
: Record<string, never>;
|
|
137
140
|
|
|
141
|
+
/**
|
|
142
|
+
* The per-model field-output map at the contract's unbound namespace. The
|
|
143
|
+
* framework emitter nests `FieldOutputTypes` by namespace id
|
|
144
|
+
* (`{ [ns]: { [model]: { [field]: <refined> } } }`); Mongo is structurally
|
|
145
|
+
* single-namespace, so its refined rows resolve the per-model map under
|
|
146
|
+
* {@link UNBOUND_NAMESPACE_ID}. A map without that coordinate (e.g. a contract
|
|
147
|
+
* carrying no type maps) resolves to `never`, which the row resolvers read as
|
|
148
|
+
* "no refined map" and fall back to codec-based inference.
|
|
149
|
+
*/
|
|
150
|
+
export type MongoUnboundFieldOutputTypes<T> =
|
|
151
|
+
ExtractMongoFieldOutputTypes<T> extends Record<typeof UNBOUND_NAMESPACE_ID, infer Inner>
|
|
152
|
+
? Inner
|
|
153
|
+
: never;
|
|
154
|
+
|
|
155
|
+
/** Input-side counterpart of {@link MongoUnboundFieldOutputTypes}. */
|
|
156
|
+
export type MongoUnboundFieldInputTypes<T> =
|
|
157
|
+
ExtractMongoFieldInputTypes<T> extends Record<typeof UNBOUND_NAMESPACE_ID, infer Inner>
|
|
158
|
+
? Inner
|
|
159
|
+
: never;
|
|
160
|
+
|
|
138
161
|
type ExtractValueObjects<TContract extends Contract> = ContractValueObjectDefinitions<TContract>;
|
|
139
162
|
|
|
140
163
|
type NormalizeContractFields<TFields> = {
|
|
@@ -187,11 +210,8 @@ type InferFieldType<
|
|
|
187
210
|
|
|
188
211
|
export type InferModelRow<
|
|
189
212
|
TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>,
|
|
190
|
-
ModelName extends string & keyof
|
|
191
|
-
TFields extends Record<
|
|
192
|
-
string,
|
|
193
|
-
ContractField
|
|
194
|
-
> = ContractModelDefinitions<TContract>[ModelName]['fields'],
|
|
213
|
+
ModelName extends string & keyof MongoModelsMap<TContract>,
|
|
214
|
+
TFields extends Record<string, ContractField> = MongoModelsMap<TContract>[ModelName]['fields'],
|
|
195
215
|
TCodecTypes extends Record<string, { output: unknown }> = ExtractMongoCodecTypes<TContract>,
|
|
196
216
|
TValueObjects extends Record<string, ContractValueObject> = ExtractValueObjects<TContract>,
|
|
197
217
|
> = {
|
package/src/exports/index.ts
CHANGED